Commit graph

102 commits

Author SHA1 Message Date
Mathieu Arnold
0761532ec5 Always include bsd.default-versions.mk in bsd.port.mk.
The variable defined in it are now always available after including
bsd.port.pre.mk.

PR:		210666
Submitted by:	mat
Exp-run by:	antoine
Sponsored by:	Absolight
Differential Revision:	https://reviews.freebsd.org/D6933
2016-08-03 12:09:37 +00:00
Gerald Pfeifer
056ab1b504 Now that lang/gcc6 has landed (which carries official GCC 6.x releases),
add support for USE_GCC=6 and USE_GCC=6+.
2016-06-10 09:11:25 +00:00
Mathieu Arnold
9097255acf Try to be more helpful to our users, and keep all the possible versions
close to their default value in Mk/bsd.default-versions.mk.

Sponsored by:	Absolight
2016-04-14 13:34:25 +00:00
Baptiste Daroussin
421767bd88 Remove the now unneeded ${PORTSDIR} from dependency definition in
The infrastructure Makefiles

PR:		206569
Exp run by:	antoine
Differential Revision:	D5047
2016-03-27 01:23:25 +00:00
Gerald Pfeifer
e7ac27ee6a Since there is not going to be any new version of GCC in the FreeBSD
base system ever again, simplify the GCCVERSION table and logic to not
worry about minimum system versions carrying a certain version of GCC.

This also removes the _GCCVERSION_${v}_R variables and simplifies some
logic and debug output.
2015-04-22 21:29:21 +00:00
Gerald Pfeifer
75339eed28 Move LANG_GCC_IS from bsd.gcc.mk to bsd.default-versions.mk and use
this and GCC_DEFAULT instead of hard-coding the version of GCC used
by lang/gcc in Uses/fortran.mk.

Approved by:	portmgr (antoine)
2015-01-26 00:03:46 +00:00
Gerald Pfeifer
6774a64d23 Rename the somewhat confusingly named GCC_DEFAULT_V to LANG_GCC_IS.
(The regular GCC_DEFAULT is still set in bsd.default-versions.mk.)
2015-01-04 09:29:49 +00:00
Gerald Pfeifer
65136b1b45 Update examples to use GCC 4.9 instead of 4.8, since the latter is now
the default version anyway.
2014-11-07 14:25:20 +00:00
Gerald Pfeifer
742ef83709 Add support for USE_GCC=5 and its preferred form USE_GCC=5+.
PR:		194676
2014-11-02 21:15:21 +00:00
Tijl Coosemans
6defc67c4d Depend on lang/gccXY if users wish to use a different version of gcc by
default than lang/gcc (currently 4.8).

(I don't fully agree with this implementation but this makes something
like DEFAULT_VERSIONS+=gcc=4.9 in make.conf work correctly.)

Reported by:	Luca Pizzamiglio <luca.pizzamiglio@gmail.com>
Approved by:	gerald
2014-09-26 16:00:41 +00:00
Gerald Pfeifer
4c5c0a2c9f Refer to bsd.default-versions.mk for the canonical version of GCC; no
longer duplicate version information related to that.
2014-03-16 00:45:55 +00:00
Gerald Pfeifer
04bfaa8ecd Update the default version of GCC used in the Ports Collection from
GCC 4.6.4 to GCC 4.7.3.  This entails updating the lang/gcc port as
well as changing the default in Mk/bsd.default-versions.mk.

This adds powerpc64 as a supported architecture (and removes ia64,
though it can be supported by manually installing lang/gcc48).

New binaries %%GNU_HOST%%-gcc-ar47, %%GNU_HOST%%-gcc-nm47, and
%%GNU_HOST%%-gcc-ranlib47 are provided to support link-time
optimization (LTO) which scales significantly better.

And it adds support for indirect functions (IFUNCS), experimental
support for transactional memory in the compiler as well as a supporting
run-time library called libitm, a new string length optimization pass,
and support for atomic operations specifying the C++11/C11 memory model.

Version 3.1 of the OpenMP specification is now supported for the C,
C++, and Fortran compilers.

GCC accepts the options -std=c11 and -std=gnu11 for the C11 revision
of the ISO C standard which inlcude support for unicode strings,
nonreturning functions (_Noreturn and <stdnoreturn.h>), alignment
support (_Alignas, _Alignof, max_align_t, <stdalign.h>), and a
__builtin_complex built-in function.

The C++ frontend now accepts the -std=c++11, -std=gnu++11, and
-Wc++11-compat options and implements many C++11 features of the
language including extended friends syntax, explicit override
control, non-static data member initializers, user-defined literals,
alias declarations, delegating constructors, atomic classes, and more.

The C++ standard library and Fortran frontend have received many
improvements.  See http://gcc.gnu.org/gcc-4.7/changes.html for an
extense list of changes; http://gcc.gnu.org/gcc-4.7/porting_to.html
for information on how to port to that new version.

PR:		182136
Supported by:	Christoph Moench-Tegeder <cmt@burggraben.net> (fixing many ports)
Tested by:	bdrewery (two -exp runs)
2014-03-10 20:41:10 +00:00
Gerald Pfeifer
4a3b55d21d Revert bogus parts of revision 345909. 2014-02-25 00:36:48 +00:00
Gerald Pfeifer
260d6903c0 Reword the documentation at the top of this file.
Sort the FPC_DEFAULT and GCC_DEFAULT entries.
2014-02-25 00:32:09 +00:00
Gerald Pfeifer
fadcef2222 Replace all uses of GCC_DEFAULT_VERSION by GCC_DEFAULT, remove the
definition of the former from Mk/bsd.gcc.mk and add the latter --
still set to 4.6 -- to Mk/bsd.default-versions.mk.

Include Mk/bsd.default-versions.mk from Mk/bsd.gcc.mk to tie the
two together.
2014-02-24 22:15:32 +00:00
Gerald Pfeifer
a4c007fb28 Remove the _GCC_BUILD_DEPENDS variable which we had kept for the sake
of some ports using this unexpectedly.  There are no further instances
in the tree any more.

If there is an absolute need to refer to the GCC runtime directory that
cannot be covered by CFLAGS, LDFLAGS or the like, use _GCC_RUNTIME.
This hardly ever should be necessary, though.  Avoid whenever possible!
2014-02-23 02:20:02 +00:00
Tijl Coosemans
564a799c71 Convert all USE_FORTRAN=yes to "USES=fortran, USE_GCC=yes". In most cases
USE_GCC=yes has been omitted though.

Remove USE_FORTRAN handling from bsd.port.mk and bsd.gcc.mk.

Minor cleanups in some ports like USE_GMAKE, NOPORTDOCS,...

Exp-run:	bdrewery
Approved by:	portmgr (bdrewery)
2014-02-16 17:15:31 +00:00
Rene Ladan
0777385b68 Unregister lang/gcc44 now that it is no longer used by any port.
Approved by:	gerald
2014-01-26 16:33:53 +00:00
Rene Ladan
6151ec7beb Disconnect lang/gcc34 from bsd.gcc.mk, it is not used by any port anymore.
This also removes the g77 option of USE_FORTRAN, and USE_GCC now always
implies a dependency on binutils.

Reviewed by:	bapt
Approved by:	maintainer (gerald)
2014-01-04 15:49:15 +00:00
Gerald Pfeifer
e526b95449 Explicitly include the GCC run time directory in LDFLAGS. This should
not be necessary when linking with GCC, but that's not the only way the
link process can be invoked.

PR:		182136
2013-12-07 22:36:21 +00:00
Gerald Pfeifer
ef4727d7c1 Unbreak USE_GCC=any. We do need to keep GCC 4.2 in our internal tables
for that, even if lang/gcc42 is gone.

Tested on systems with and without GCC in base.

Reported by:	Terry Kennedy <TERRY@tmk.com>, dbn
2013-11-23 10:19:25 +00:00
Gerald Pfeifer
19fa1f1526 Bye, bye lang/gcc42 aka GCC 4.2. As a port you have served us well,
but six-and-a-half years after the upstream release of GCC 4.2.0 and
exactly two years after the removal of lang/gcc45 the time has come.

This reduces package name collisions around GCC related ports by 12.5%. [1]

Reported by:	bapt [1]
2013-11-23 01:21:00 +00:00
Gerald Pfeifer
cee7e50a71 Document USE_GCC=any. Reformat the description a bit and use newer
versions of GCC for reference.
2013-11-10 20:29:52 +00:00
Gerald Pfeifer
2a0337bd2e Add support for USE_GCC=4.9 and USE_GCC=4.9+.
Beware, this version of GCC is _not_ anywhere near ready for production
use.  Use at your own risk, and rather don't use it for regular ports.

Submitted by:	devzone.my@gmail.com
2013-10-13 21:23:35 +00:00
Gerald Pfeifer
6898d92506 Merge two loops and initialize _GCC_FOUND${v} and check whether USE_GCC
points to a valid version in parallel.
2013-03-29 11:26:14 +00:00
Gerald Pfeifer
ff526d783e When the same version of GCC is present as a port and in base, prefer
the former.

Improve consistency of the code in on place.
2013-03-19 18:37:30 +00:00
Gerald Pfeifer
bbd1d00f94 Simplify (and strictly speaking, though not practically given version
number schemes between FreeBSD and GCC, correct) the check for a valid
version specified by USE_GCC. [1]

If IGNORE is set, have test-gcc note that instead of showing its usual,
and in that case incorrect and useless, debugging output.

PR:		175252 [1]
Submitted by:	Yamaya Takashi <yamayan@kbh.biglobe.ne.jp> [1]
2013-03-16 13:01:12 +00:00
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