Commit Graph

75 Commits

Author SHA1 Message Date
Gerald Pfeifer
50ca7c0fc2 Do not just rely on the version number of FreeBSD in deciding whether
a certain version of GCC is in the base, but also check the existence
of /usr/bin/gcc.

This unbreaks systems where GCC is not built as part of the world, and
instead relies on versions of GCC in the Ports Collection there.

PR:		175252
Submitted by:	Yamaya Takashi <yamayan@kbh.biglobe.ne.jp>
2013-03-03 03:21:29 +00:00
Gerald Pfeifer
e819edf526 Remove a bogus old check that assumes that every version of FreeBSD has
GCC in the base.

Adjust a comment, now describing the real purpose of the code remaining
in that block.

PR:		175252
2013-03-02 01:06:15 +00:00
Baptiste Daroussin
7308d3ed8e Fix when bsd.gcc.mk is included and USE_GCC is undefined for example in case a
port use USE_FORTRAN
2012-12-22 23:25:02 +00:00
Gerald Pfeifer
4de6b07579 Add a new form of USE_GCC, USE_GCC=yes, which generically requests
a current version of GCC.  This reduces churn for individual ports
and further increases consistency (in line with a canonical version
that we introduced with GCC_DEFAULT_VERSION earlier on and the older
USE_FORTRAN=yes).

On the way, make some comments more consistent.

Discussed with:	linimon
2012-12-22 21:35:35 +00:00
Gerald Pfeifer
c3b86ec308 In addition to CFLAGS and LDFLAGS now also CXXFLAGS set an rpath to
the GCC run-time.

This extends revision r246991 (2010-01-02) and should not be necessary
in most cases since LDFLAGS already covers linking, but one can always
compile and link in one swoop, and this makes things consistent between
C and C++.

Feature safe:	yes
2012-11-06 00:23:43 +00:00
Mark Linimon
c220f202a9 Introduce the new semantic USE_GCC=any, which can be set in any port
Makefile.  For systems where CC is gcc, this has no effect.  For systems
where CC is clang, this forces the use of the base GCC suite.  (Some
forward compatibility is also covered in the patch.)

Confirmed to have no ill-effects via multiple runs with gcc as CC:

  http://pointyhat-west.isc.freebsd.org/errorlogs/amd64-errorlogs/e.8-exp-bcm.20121006012556.pointyhat-west/

and clang as CC:

  http://pointyhat-west.isc.freebsd.org/errorlogs/amd64-errorlogs/e.9-exp-clang.20121005165436.pointyhat-west/

This change is necessary (but insufficient) for the upcoming switch to
clang as CC for the tier-1 architectures.

Finally, accept FORCE_BASE_CC_FOR_TESTING as an override for USE_GCC,
for those who wish to help debug ports with clang.  It is an absolute
override; it overrides not only the value "any" but also any value such
as "4.4+".

Reviewed by:	brooks, gerald
Approved by:	maintainer (gerald)
2012-10-07 19:33:19 +00:00
Gerald Pfeifer
7926c3c909 Introduce _GCC_RUNTIME, to be used by ports in need of knowing the
run-time directory of the version of GCC in use.

As a side effect this fixes the inclusion of said directory into
CFLAGS and LDFLAGS (and FFLAGS where applicable). [1]

Reported by:	Scott Allendorf <scott-allendorf@uiowa.edu> [1]
2012-08-03 21:23:04 +00:00
Gerald Pfeifer
be24e56570 Add support for USE_GCC=4.8, USE_GCC=4.8+, and generally detect
and consider lang/gcc48 if present.

Submitted by:	kwm
2012-08-03 16:23:13 +00:00
Gerald Pfeifer
336cf4f81e Use the stable, slow moving lang/gcc instead of lang/gcc46 for
USE_GCC=4.6 and USE_GCC=4.6+ and generally whenever the default
version of GCC is employed.

This will significantly benefit tinderboxes and the larger, reasonably
conservative user base by reducing the amount of rebuilds.

Rename _GCC_BUILD_DEPENDS to _GCC_PORT, but still set _GCC_BUILD_DEPENDS
in the end for the sake of some ports relying on that.

PR:		169449
Discussed with:	bf
2012-08-03 02:28:37 +00:00
Sunpoet Po-Chuan Hsieh
83b5f64d38 - Revert accidental commit 2012-06-26 13:54:59 +00:00
Sunpoet Po-Chuan Hsieh
8ae901c16d - Add shared TLS description 2012-06-26 13:42:52 +00:00
Martin Wilke
61d8acdb49 - Remove emacs mode, -*- mode: ...; -*- [1]
- Comments for BUILD_ and RUN_DEPENDS fail to mention alternate means to specify dependencie [2]
- Fix make reinstall [3]
- Trivial comment change for PORTDATA [4]

PR:		151954 [1]
		161314 [2]
		167085 [3]
		167465 [4]
Submitted by:	Anonymous <swell.k@gmail.com> [1]
		dougb@ and Chris Rees <utisoft@gmail.com> [2]
		Garrett Cooper <yanegomi@gmail.com> [3]
		"Bryan Drewery" <bryan@shatow.net> [4]
Tested via:	phw
2012-05-23 08:17:49 +00:00
Gerald Pfeifer
3f541389e9 Remove last reference to GCC 4.5 now that no port refers to it any more. 2012-04-29 12:20:17 +00:00
Gerald Pfeifer
9ce9cd0961 Disconnect GCC 4.5 alias lang/gcc45.
No ports uses this directly any more via USE_GCC=4.5 and for the sake
of those nine that have USE_GCC=4.5+ we transparently rewrite this to
USE_GCC=4.6+ which has already happened for weeks for tinderbox builds.

Feature safe:	yes
2011-11-12 22:03:55 +00:00
Gerald Pfeifer
4bf3e880f0 Fix mis-applied patch from revision 1.59 (moving the new code one
conditional up).

Discussed with:	bf
2011-10-30 20:58:22 +00:00
Gerald Pfeifer
1be81e083d Refer to GCC 4.7 instead of GCC 4.5. Mark the part that should not see
changes based on GCC changes more clearly.
2011-10-30 15:51:09 +00:00
Gerald Pfeifer
af5f25332e When USE_GCC=X.Y+ has been specified, prefer the default version of
GCC (the one which also USE_FORTRAN=yes chooses) in case we do have
to install GCC in any case.  Only if an acceptable version of GCC
is already present use that one.

This will ease the load on tinderboxes, further the use of current
versions of GCC, and minimize the need to download/carry several
versions of GCC for users of pre-built packages.

PR:		160507
Submitted by:	bf
2011-10-30 01:34:38 +00:00
Gerald Pfeifer
f8f617d71c Fix the previous commit for the case where USE_FORTRAN is undefined.
Pointy hat to:	self, bf
2011-10-08 08:17:16 +00:00
Gerald Pfeifer
0e5f319fdb Reference the GCC run-time libraries via FFLAGS, too, in addition to
CFLAGS and LDFLAGS, if USE_FORTRAN=yes has been specified.

Submitted by:	bf
2011-10-08 07:37:53 +00:00
Gerald Pfeifer
8fec0a2dbc Make USE_FORTRAN=yes imply the use of GCC 4.6 over GCC 4.5 so far.
Exp-run by:	pav
Thanks to:	pav, bf (for fixing several ports)
2011-09-19 00:40:21 +00:00
Gerald Pfeifer
610afbf497 Cater to versions of FreeBSD greater than 9 (up to 99). [1]
Tweak the representation of versions of GCC that newer appeared in base.

Submitted by:	bf [1]
2011-09-10 12:10:37 +00:00
Gerald Pfeifer
cbb4e03279 Refer to GCC 4.2+ instead of GCC 3.4+ in a comment, since the latter is
not in any supported release of FreeBSD any more.
2011-09-04 16:56:11 +00:00
Gerald Pfeifer
bb4e46d8f0 Clean up after revision 1.51 and adjust comments to the new reality of us
not caring about FreeBSD <= 6 any more (and thus no g77 in base ever).
2011-07-31 22:40:39 +00:00
Gerald Pfeifer
be59813462 Add support for USE_GCC=4.7, USE_GCC=4.7+ and notably an installation of
lang/gcc47 being used when USE_GCC=4.5+ or the like is specified.

PR:		159036
Submitted by:	kalten@gmx.at
2011-07-19 21:16:39 +00:00
Florent Thoumie
c406a95c53 Latest round of infrastructure changes.
- bsd.port.mk: add INDEX_PORTS, to support INDEX creation for a subset of the ports tree [1]
- bsd.port.mk: call target "install-rc-script" before "post-install" [2]
- [patch] ports/Mk bsd.port.mk order if groups/users are created by package [3]
- [bsd.port.mk] [patch] reaper of the dead: md5 has been in /sbin for a while [4]
- [bsd.port.mk] [patch] remove support for pre 7.x systems (b.*.m) [5]
- [patch] [bsd.port.mk] reaper of the dead: are three variable defintions needed [6]

PR:		ports/156575 [1],
		ports/139116 [2],
		ports/152498 [3],
		ports/155983 [4],
		ports/155510 [5],
		ports/156340 [6]
Submitted by:	Florent Thoumie <flz@xbsd.org> [1],
		Sergey Skvortsov <skv@freebsd.org> [2],
		Olli Hauer <ohauer@FreeBSD.org> [3],
		Eitan Adler <lists@eitanadler.com> [4],
		Eitan Adler <lists@eitanadler.com> [5],
		Eitan Adler <lists@eitanadler.com> [6]
2011-05-04 22:33:13 +00:00
Gerald Pfeifer
53b59d25b9 lang/gcc44 and later depend on the devel/binutils port. Leverage that
and USE_BINUTILS for every port we are building with this combo.  That
way all the tools in binutils may be used.

Suggested by:	bf
Feature safe:	yes
2011-02-01 01:41:19 +00:00
Gerald Pfeifer
ce32945194 Simplify the case of USE_FORTRAN=g77. Update a comment.
Discussed with:	bf
2010-10-17 11:24:50 +00:00
Gerald Pfeifer
ac147fb18c In addition to CC and CXX now also set CPP with USE_GCC. Add the output
of CPP to the test-gcc target.

Submitted by:	bf
2010-09-28 02:48:29 +00:00
Gerald Pfeifer
478a268d25 USE_FORTRAN=yes now implies lang/gcc45 up from lang/gcc44.
cad/salome and math/freemat needed some adjustments, apart from these
this looks like a far more easy upgrade than previous ones and according
to the upstream developers we do not even need to bump dependent ports
since GNU Fortran 4.4 and 4.5 are sufficiently compatible.

Tested by:	erwin (and pointyhat)
2010-09-24 23:14:46 +00:00
Gerald Pfeifer
7cce6f025f Remove the transparent rewriting of USE_GCC=4.3+ to USE_GCC=4.4+. 2010-09-04 17:08:27 +00:00
Gerald Pfeifer
c7e5571fb1 Disconnect lang/gcc43, that is, USE_GCC=4.3 is not supported any longer. 2010-08-07 10:56:01 +00:00
Gerald Pfeifer
3313b35c77 Extend and clarify the documentation for USE_GCC, making it explicit
that the form requesting a minimum version is preferred over the one
requesting just one version (as I had enhanced portlint to advise a
while ago).
2010-06-11 21:06:18 +00:00
Gerald Pfeifer
992a6ce56c Tweak a conditional added in the previous commit that apparently causes
troubles in some cases.
2010-06-06 19:15:03 +00:00
Gerald Pfeifer
6c6e96d736 USE_GCC=4.3 is deprecated (and no port uses it anymore). USE_GCC=4.3+
is transparently rewritten to USE_GCC=4.4+ and lang/gcc43 will be
disconnected from the USE_GCC infrastructure soon.
2010-06-06 17:17:04 +00:00
Gerald Pfeifer
188695d67d Add support for early GCC 4.6 snapshots (lang/gcc46) via USE_GCC=4.6
and USE_GCC=4.6+.  This version of GCC is in its very early development
stages and use thereof highly experimental.  Use at your own risk.
2010-05-02 17:39:06 +00:00
Gerald Pfeifer
9451233322 Replace the use of GCC 4.3 in a comment/example by GCC 4.5 since the
former will be gone soon.
2010-05-02 14:44:59 +00:00
Gerald Pfeifer
d34293c411 Locate the GCC run-time libraries under ${LOCALBASE}, where the GCC
ports are installed/assumed, instead of ${PREFIX} where a dependent
port is installed.

Reported by:	Rob Farmer <rfarmer@predatorlabs.net>
2010-02-14 22:36:50 +00:00
Gerald Pfeifer
dd0c5a8b14 Split the logic around USE_GCC in two parts. The first handles the
processing of USE_GCC directives, the second then takes a concrete
selection coming from the previous or the code handling USE_FORTRAN
via _USE_GCC.

The one user-visible change is that not just users of USE_FORTRAN,
but now also users of USE_GCC set an rpath via CFLAGS and LDFLAGS. [1]

PR:		129518, 142226 [1]
2010-01-02 13:51:33 +00:00
Gerald Pfeifer
e993d17822 Quote the output for BUILD_DEPENDS and RUN_DEPENDS in the test-gcc
target.  This is necessary to properly handle dependencies such as
libtool>=2.2:${PORTSDIR}/devel/libtool22.
2010-01-02 12:05:30 +00:00
Gerald Pfeifer
05145f810f Add a run-time dependency for all uses of lang/gcc* except for gcc34
which is subsumbed by later versions.  This is needed for libstdc++
and other core run-time libraries.

PR:		129518, 142226
2010-01-02 08:11:28 +00:00
Gerald Pfeifer
8962147d75 Add support for USE_GCC=4.5 and USE_GCC=4.5+. Improve the documentation
a bit.

Suggested by:	bsam
2009-10-10 11:45:30 +00:00
Gerald Pfeifer
7454e883a4 Have CFLAGS and LDFLAGS set an -rpath to the lang/gcc44 library directory
when building with USE_FORTRAN=yes.  This makes us use libstdc++.so.6
(and others) brought by this port as opposed to /usr/bin/libstdc++.so.6
that comes with our system compiler which is based on an older version
of GCC 4.2.  Newer version of GCC run-time libraries with the same soname
are always backwards compatible.

Feature safe:	yes
2009-09-26 01:02:01 +00:00
Gerald Pfeifer
62a1e74d3a Also print LDFLAGS as part of the test-gcc target. Print quotes around
CFLAGS and FFLAGS, too, to exactly see where we have whitespace.

Feature safe:	yes
2009-09-23 21:13:07 +00:00
Gerald Pfeifer
6919a81f81 USE_FORTRAN=yes now implies lang/gcc44 up from lang/gcc43. Remove one
explicit reference to the version number on the way.

Tested by:	pav (and pointyhat)
Thanks to:	pav, everyone who helped up fixing their ports
2009-09-12 18:07:51 +00:00
Gerald Pfeifer
fa26f08f74 Tweak some comments. The two non-whitespace changes are a fix from
/lang/gcc43 to lang/gcc43 and removing to notes that might be seen
as indicative of GCC only being needed at build time.
2009-07-12 22:35:13 +00:00
Gerald Pfeifer
312bfa10b8 Remove support for USE_GCC=2.95 after lang/gcc295 has been failing to
build for what must be 9+ months and we have removed all dependencies
the last couple of months.
2009-06-19 17:48:47 +00:00
Gerald Pfeifer
76ecd704b3 Remove GCC 2.8 from the list of options for USE_GCC; the lang/gcc28
port has been removed a while ago and no port has USE_GCC=2.8 in use.
2009-03-28 23:57:56 +00:00
Gerald Pfeifer
42d94d6424 Remove support for GCC 3.3. No port in the tree uses this any longer,
and lang/gcc33 has been deprecated for a month.
2009-03-07 19:17:44 +00:00
Gerald Pfeifer
7693744e77 Set CC and CXX to match the choice of GNU Fortran compilers for C and
C++, too, to avoid subtle compatibility problems.

Diagnose the case where an unexpected value is provided for USE_FORTRAN.

Fix the OSVERSION for which lang/gcc34 should be used foor USE_FORTRAN=g77
according to our Porters Handbook.

Add RUN_DEPENDS to the output of the test-gcc target.

PR:		131114
Submitted by:	bf2006a@yahoo.com
2009-02-02 01:45:13 +00:00
Gerald Pfeifer
c769462937 Add support for USE_GCC=4.4+ and remove USE_GCC=4.1+ (which is not used
by any other port at this point).
2009-01-18 03:10:19 +00:00