aboutsummaryrefslogtreecommitdiff
path: root/Mk/bsd.gcc.mk
Commit message (Collapse)AuthorAgeFilesLines
* framework: Remove $FreeBSD$Mathieu Arnold2021-04-061-2/+0
| | | | Where appropriate fiddle with a few other things.
* In some cases one may want to use GCC to build something when itsGerald Pfeifer2021-01-301-0/+32
| | | | | | | | | | | | | | | | | runtimes or GCC at runtime are not required. Introduce an optional argument for USE_GCC that indicates GCC is only required at build time. Examples for the new syntax are USE_GCC=yes:build, USE_GCC=9:build, or USE_GCC=11+:build. Submitted by: Fabian Freyer <fabian.freyer@physik.tu-berlin.de> PR: 211154 Differential Revision: https://reviews.freebsd.org/D7223 Notes: svn path=/head/; revision=563416
* Simplify a comment after r531883 | gerald | 2020-04-16 (which in turnGerald Pfeifer2020-06-201-2/+2
| | | | | | | simplified the structure of Mk/bsd.gcc.mk). Notes: svn path=/head/; revision=539753
* Now that GCC 10.1 has been released and lang/gcc10 arrived to trackGerald Pfeifer2020-06-021-2/+2
| | | | | | | | | | | | | GCC 10 releases, switch to that over lang/gcc10-devel when GCC 10 is requested. Use lang/gcc11-devel when GCC 11 is requested, but note that this is absolutely experimental and subject to constant change and likely breakage over the next half year at least before that release series enters stabilization. Use at your own risk. Notes: svn path=/head/; revision=537529
* Add support for GCC 10. That is in the release phase and has not seenGerald Pfeifer2020-04-261-1/+5
| | | | | | | | | | | an upstream release yet, so we need to leverage the gcc10-devel port which we'll replace by gcc10 once that exists. This is not intended for production use, but to allow for an -exp run and preparing other ports. Notes: svn path=/head/; revision=533066
* Finalize the streamlining of data structures holding version-specificGerald Pfeifer2020-04-161-9/+3
| | | | | | | | information in the light of us only encountering at most one version (GCC 4.2) in the base system these days. Notes: svn path=/head/; revision=531883
* Simplify the logic by removing a variable (_GCC_PORT_DEPENDS) andGerald Pfeifer2020-04-091-6/+5
| | | | | | | instead use two equivalent ones (depending on the circumstances). Notes: svn path=/head/; revision=531271
* Refactor the handling of USE_GCC=any so that it essentially becomes aGerald Pfeifer2020-04-031-59/+28
| | | | | | | | | | | | | block of its own as opposed to touching bits and pieces throughout. Use the opportunity to simplify various aspects, such as the static tables describing versions of GCC we support and their initialization. Overall this sheds another 30 lines off what used to me more tricky Makefile code. It should not change behavior. Notes: svn path=/head/; revision=530527
* Streamline two comments and remove debugging output we hardly need anyGerald Pfeifer2020-03-121-7/+2
| | | | | | | longer (and will need even less shortly). Notes: svn path=/head/; revision=528279
* Significantly simplify the logic to determine which port (or base version)Gerald Pfeifer2020-02-221-37/+10
| | | | | | | | | | | | | | | | | | | of GCC to use based on the specification of USE_GCC. This is based on the observation that we now only have a single version of GCC in base, namely GCC 4.2, which is not in ports any longer. And we limit our choice to either the specific version requested or the default version of GCC in the ports tree; i.e., we no longer consider an installed port of any version in between (which is a fringe case extremely few, if any, users would have experienced, and then only outside a clean build environment in any case). Streamline some debugging output accordingly. Overall this removes some 25 lines of largely complex logic. Notes: svn path=/head/; revision=526751
* With print/pdftk which required GCJ (GNU Java) updated, the lastGerald Pfeifer2019-12-311-4/+3
| | | | | | | | | | | | | | | dependency on GCC 6 in the Ports Collection is gone, so we can remove support for USE_GCC=6 and USE_GCC=6+. [1] This does not remove lang/gcc6 yet, but helps avoid new dependencies, and GCC 6 has been unmaintained upstream for more than a year. On the way update two examples to use more current versions of GCC. Thanks to: tobik [1] Notes: svn path=/head/; revision=521584
* Add support for GCC 9 via the new lang/gcc9 port. USE_GCC=9+ andGerald Pfeifer2019-06-021-1/+2
| | | | | | | | USE_GCC=9 (the latter of which should only be used if unavoidable) are now supported. Notes: svn path=/head/; revision=503289
* Now that the last dependency on GCC 5 (and lang/gcc5) in the PortsGerald Pfeifer2019-05-181-3/+2
| | | | | | | | | | | Collection is gone, remove USE_GCC=5 as an option. This does not remove lang/gcc5 as such, but helps avoid new dependencies creeping in, in particular since GCC 5 has been unmaintained upstream for a while. Notes: svn path=/head/; revision=501916
* Remove support for USE_GCC=4.9+ and USE_GCC=4.9 from the tree. NothingGerald Pfeifer2019-02-231-2/+1
| | | | | | | | depends on it any longer (and has for a while) and GCC 4.9 went end of life upstream in summer 2016. Notes: svn path=/head/; revision=493645
* Fix build of GCC on powerpc64.Andreas Tobler2018-12-291-0/+7
| | | | | | | | | | | | | While building GCC itself we have to use the built GCC libraries to configure additional parts of GCC and not the libraires from the host. Install the built 32-bit libraries. This was not done up to now. PR: 231804 Approved by: gerald@ Notes: svn path=/head/; revision=488673
* Filter -mretpoline, which is specific to clang and not supported byGerald Pfeifer2018-08-051-0/+4
| | | | | | | | | | | | | GCC, from CFLAGS and CXXFLAGS. This also establishes a good place where to add any additional such cases in the future. PR: 230200 Submitted by: rozhuk.im@gmail.com Notes: svn path=/head/; revision=476413
* Add CXXFLAGS to the debugging output provided by test-gcc and put that,Gerald Pfeifer2018-08-051-1/+3
| | | | | | | | as well as the existing output for CFLAGS, on a line of its own to make this easier to parse. Notes: svn path=/head/; revision=476411
* Add support for GCC 8 (and the newly added lang/gcc8 port). USE_GCC=8+Gerald Pfeifer2018-07-151-1/+2
| | | | | | | | | | is now feasible, for example. PR: 229681 Submitted by: mi Notes: svn path=/head/; revision=474663
* Document the form USE_GCC=X+ instead of the older form USE_GCC=X.Y+Gerald Pfeifer2018-06-021-4/+4
| | | | | | | | | | | that has been necessary for the GCC 4.x series and should not see any new usage anways. Use more current versions of GCC in examples, choosing the two most realistic options. Notes: svn path=/head/; revision=471347
* Connect the new lang/gcc7 port into the infrastructure of Mk/bsd.gcc.mkGerald Pfeifer2017-08-151-1/+2
| | | | | | | | | (providing USE_GCC) and Mk/bsd.default-versions.mk. PR: 220794 Notes: svn path=/head/; revision=447982
* Remove support for USE_GCC=4.7 and USE_GCC=4.7+. Nothing in the treeGerald Pfeifer2017-06-051-2/+1
| | | | | | | | | uses it and GCC 4.7 has been end-of-lifed upstream years ago. The lang/gcc47 port itself is still in place and can be used. Notes: svn path=/head/; revision=442601
* As of today, USE_GCC=yes (and USE_GCC=any in most circumstances)Gerald Pfeifer2017-05-021-4/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | and consequently many of the USES=compiler flavors use the canonical version of GCC as defined in Mk/bsd.default-versions.mk as well as the lang/gcc port With the "new" setup starting with GCC 5 where I have introduced lang/gcc5-devel for regular snapshots and lang/gcc5 for releases, and similarly for GCC 6 and onward, we can now leverage lang/gcc5 (and later) for most of the role that lang/gcc used to play -- and indeed as of today lang/gcc and lang/gcc5 are nearly identical short of symlinks for gcc, g++, and gfortran binaries that the former provides. So now use lang/gcc5 instead of lang/gcc whenever requested via the USE_GCC framework directly or indirectly. This is similar to how the python ports work, for example, and it allows simplifications in Mk/bsd.gcc.mk and Mk/Uses/fortran.mk and dropping LANG_GCC_IS from Mk/bsd.default-versions.mk. As a next step lang/gcc is going to become a "hull" essentially only providing those symlinks and requiring lang/gcc5 (or whatever has been set as default in Mk/bsd.default-versions.mk). Notes: svn path=/head/; revision=439929
* Use USE_GCC=6+ as example for the "+" flavor of USE_GCC instead ofGerald Pfeifer2017-02-011-1/+1
| | | | | | | | USE_GCC=4.9+. Among others, this adds an example for the new, single digit GCC versions. Notes: svn path=/head/; revision=433084
* Remove 4.6 as a valid option for USE_GCC and GCC_DEFAULT; it has notGerald Pfeifer2017-01-281-2/+1
| | | | | | | | been used in the Ports Collection for quarters and hardly would make sense (or even work) as default GCC version. Notes: svn path=/head/; revision=432693
* Always include bsd.default-versions.mk in bsd.port.mk.Mathieu Arnold2016-08-031-2/+0
| | | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=419511
* Now that lang/gcc6 has landed (which carries official GCC 6.x releases),Gerald Pfeifer2016-06-101-1/+2
| | | | | | | add support for USE_GCC=6 and USE_GCC=6+. Notes: svn path=/head/; revision=416663
* Try to be more helpful to our users, and keep all the possible versionsMathieu Arnold2016-04-141-0/+2
| | | | | | | | | close to their default value in Mk/bsd.default-versions.mk. Sponsored by: Absolight Notes: svn path=/head/; revision=413261
* Remove the now unneeded ${PORTSDIR} from dependency definition inBaptiste Daroussin2016-03-271-2/+2
| | | | | | | | | | | The infrastructure Makefiles PR: 206569 Exp run by: antoine Differential Revision: D5047 Notes: svn path=/head/; revision=411970
* Since there is not going to be any new version of GCC in the FreeBSDGerald Pfeifer2015-04-221-16/+13
| | | | | | | | | | | 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. Notes: svn path=/head/; revision=384521
* Move LANG_GCC_IS from bsd.gcc.mk to bsd.default-versions.mk and useGerald Pfeifer2015-01-261-3/+0
| | | | | | | | | | this and GCC_DEFAULT instead of hard-coding the version of GCC used by lang/gcc in Uses/fortran.mk. Approved by: portmgr (antoine) Notes: svn path=/head/; revision=377909
* Rename the somewhat confusingly named GCC_DEFAULT_V to LANG_GCC_IS.Gerald Pfeifer2015-01-041-2/+2
| | | | | | | (The regular GCC_DEFAULT is still set in bsd.default-versions.mk.) Notes: svn path=/head/; revision=376187
* Update examples to use GCC 4.9 instead of 4.8, since the latter is nowGerald Pfeifer2014-11-071-2/+2
| | | | | | | the default version anyway. Notes: svn path=/head/; revision=372268
* Add support for USE_GCC=5 and its preferred form USE_GCC=5+.Gerald Pfeifer2014-11-021-1/+2
| | | | | | | PR: 194676 Notes: svn path=/head/; revision=372091
* Depend on lang/gccXY if users wish to use a different version of gcc byTijl Coosemans2014-09-261-2/+3
| | | | | | | | | | | | | 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 Notes: svn path=/head/; revision=369328
* Refer to bsd.default-versions.mk for the canonical version of GCC; noGerald Pfeifer2014-03-161-3/+2
| | | | | | | longer duplicate version information related to that. Notes: svn path=/head/; revision=348390
* Update the default version of GCC used in the Ports Collection fromGerald Pfeifer2014-03-101-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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) Notes: svn path=/head/; revision=347808
* Revert bogus parts of revision 345909.Gerald Pfeifer2014-02-251-1/+1
| | | | Notes: svn path=/head/; revision=345910
* Reword the documentation at the top of this file.Gerald Pfeifer2014-02-251-1/+1
| | | | | | | Sort the FPC_DEFAULT and GCC_DEFAULT entries. Notes: svn path=/head/; revision=345909
* Replace all uses of GCC_DEFAULT_VERSION by GCC_DEFAULT, remove theGerald Pfeifer2014-02-241-6/+7
| | | | | | | | | | | 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. Notes: svn path=/head/; revision=345903
* Remove the _GCC_BUILD_DEPENDS variable which we had kept for the sakeGerald Pfeifer2014-02-231-3/+0
| | | | | | | | | | | | 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! Notes: svn path=/head/; revision=345690
* Convert all USE_FORTRAN=yes to "USES=fortran, USE_GCC=yes". In most casesTijl Coosemans2014-02-161-49/+1
| | | | | | | | | | | | | | 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) Notes: svn path=/head/; revision=344614
* Unregister lang/gcc44 now that it is no longer used by any port.Rene Ladan2014-01-261-2/+1
| | | | | | | Approved by: gerald Notes: svn path=/head/; revision=341241
* Disconnect lang/gcc34 from bsd.gcc.mk, it is not used by any port anymore.Rene Ladan2014-01-041-12/+1
| | | | | | | | | | | 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) Notes: svn path=/head/; revision=338649
* Explicitly include the GCC run time directory in LDFLAGS. This shouldGerald Pfeifer2013-12-071-1/+1
| | | | | | | | | | not be necessary when linking with GCC, but that's not the only way the link process can be invoked. PR: 182136 Notes: svn path=/head/; revision=335855
* Unbreak USE_GCC=any. We do need to keep GCC 4.2 in our internal tablesGerald Pfeifer2013-11-231-1/+2
| | | | | | | | | | | 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 Notes: svn path=/head/; revision=334653
* Bye, bye lang/gcc42 aka GCC 4.2. As a port you have served us well,Gerald Pfeifer2013-11-231-5/+2
| | | | | | | | | | | | 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] Notes: svn path=/head/; revision=334629
* Document USE_GCC=any. Reformat the description a bit and use newerGerald Pfeifer2013-11-101-5/+11
| | | | | | | versions of GCC for reference. Notes: svn path=/head/; revision=333442
* Add support for USE_GCC=4.9 and USE_GCC=4.9+.Gerald Pfeifer2013-10-131-1/+2
| | | | | | | | | | 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 Notes: svn path=/head/; revision=330254
* Merge two loops and initialize _GCC_FOUND${v} and check whether USE_GCCGerald Pfeifer2013-03-291-14/+9
| | | | | | | points to a valid version in parallel. Notes: svn path=/head/; revision=315538
* When the same version of GCC is present as a port and in base, preferGerald Pfeifer2013-03-191-4/+2
| | | | | | | | | the former. Improve consistency of the code in on place. Notes: svn path=/head/; revision=314673