GCC, the GNU Compiler Collection, supports a number of languages. This
port installs the C, C++, and Fortran front ends as gcc46, g++46, and
gfortran46, respectively.
WWW: https://gcc.gnu.org
Gerald Pfeifer <gerald@FreeBSD.org>
===> The following configuration options are available for gcc46-4.6.4_9,1:
BOOTSTRAP=off: Build using a full bootstrap
===> Use 'make config' to modify these settings
Remove expired ports:
2017-11-30 www/p5-Yahoo-Lifestyle: This service has been shut down
2017-11-30 games/linux-rtcw: Use the native and open source games/iortcw instead
2017-11-30 java/bootstrap-openjdk: superseded by java/bootstrap-openjdk[68]
2017-11-30 lang/gcc46: Unsupported by upstream. Use GCC 6 or newer instead.
Given that GCC 5 has gone end-of-life now, recommend GCC 6 or later
instead of GCC 5 or later in the deprecation messages for lang/gcc46
to lang/gcc49.
While this port is marked for expiration and removal, there is one aspect
we still ought to fix for any remaining users:
Remove headers being created by GCC's fixincludes machinery from the
installation / packaging to avoid breakage when FreeBSD's headers are
changing afterwards.
Mark DEPRECATED with an EXPIRATION_DATE of 2017-11-30 [1] since this
version of GCC has not been maintained upstream for nearly four-and-a-half
years and is not used anywhere in the tree.
Move ONLY_FOR_ARCHS to its appropriate place.
PR: 222373 [1]
Submitted by: Yasuhiro KIMURA <yasu@utahime.org> [1]
Remove traces of ia64 support (ONLY_FOR_ARCHS and files/patch-unwind-ia64.h)
which has not been present in most other GCC ports for a long while.
While at it, simplify the setting of INFO.
Remove Java support (the JAVA option and CATEGORY) from this port.
Four years after GCC 4.6 went end-of-life upstream there isn't really
much use of that any more since newer ports still carry it, and it
speeds up build and simplifies this port significantly.
In addition to the expected changes to Makefile, pkg-plist, and pkg-descr
this also gets rid of files/java-patch-hier.
Completely remove DIST_VERSION that mat introduced in revision
438272 to avoid DISTVERSION in this port .
On the way also drop the definition of DISTNAME (where the
default now works) and simplify the definition of GCC_VERSION;
both of these are possible since GCC 4.6 is EOL.
Make defining both PORTVERSION and DISTVERSION a DEV_ERROR.
There are two cases:
- The upstream versionning is compatible with our versionning, or using
DISTVERSION's magic leads to a compatible PORTVERSION, use
DISTVERSION. If it is possible to use DISTVERSIONPREFIX and
DISTVERSIONSUFFIX to make it compatible, use them.
- The upstream versionning is not compatible with our versionning, and
DISTVERSION's magic does not lead to a correct PORTVERSION, then set
PORTVERSION to the equivalent of our versionning, and set DISTNAME.
It is possible to use a third variable where you store upstream's
version and use it to compute PORTVERSION and/or DISTNAME, like the
dns/bind9* ports do.
Sponsored by: Absolight
Apply the following to all common GCC ports based on end-of-life versions
of GCC including lang/gcc:
Only override CONFIGURE_TARGET for amd64 which is x86-64/x86_64 for the
rest of the world including GNU and GCC. For all other architectures
it already defaults to the value we were setting.
Remove UNIQUENAME and LATEST_LINK.
UNIQUENAME was never unique, it was only used by USE_LDCONFIG and now,
we won't have conflicts there.
Use PKGBASE instead of LATEST_LINK in PKGLATESTFILE, the *only* consumer
is pkg-devel, and it works just fine without LATEST_LINK as pkg-devel
has the correct PKGNAME anyway.
Now that UNIQUENAME is gone, OPTIONSFILE is too. (it's been called
OPTIONS_FILE now.)
Reviewed by: antoine, bapt
Exp-run by: antoine
Sponsored by: Absolight
Differential Revision: https://reviews.freebsd.org/D3336
lang/gcc(46,47,48,49,5): Use OPTIONS_EXCLUDE_DragonFly to block JAVA
The JAVA frontend doesn't build on DragonFly on any release. The new
OPTIONS_EXCLUDE_${OPSYS} feature is a nice way to avoid the use of
Makefile.DragonFly (most are in dports, but one is in lang/gcc5).
The recent addition of CXXFLAGS to lang/gcc5 prevents Makefile.DragonFly
on lang/gcc5 from being removed outright. There are a couple of options
available to allow its removal, but I'll need to discuss with Gerald.
Approved by: DragonFly blanket
Fix UNIQUENAME not being unique after recent PORTNAME shuffle.
This was causing the gcc packages to be generated with a
/usr/local/libdata/ldconfig/gcc file. All were conflicting. Bump
PORTREVISION to fix packages built during this time.
With hat: portmgr
Reported by: sunpoet
When building the gcc ports using a full bootstrap, tell the configure
script to assume the BUILD_CONFIG is set to bootstrap-debug, instead of
letting it auto-detect.
With clang 3.5.0 this auto-detection can fail, due to a discrepancy [1]
[2] in its debug information, when objects are produced with and without
-g. When the auto-detection fails, gcc will compare objects with full
debug information during the stage comparisons, and this sometimes
causes those stage comparisons to fail unexpectedly.
[1]
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141222/250134.html
[2] http://llvm.org/PR22046
Approved by: gerald (maintainer)
Convert GMAKE to MAKE_CMD
Please note that lots of invocation of MAKE_CMD here are wrong as they do not
properly respect MAKE_ENV and friends
With hat: portmgr
Convert all :U to :tu and :L to :tl
Since FreeBSD 8.4 and FreeBSD 9.1 make(1) do support :tu and :tl as a
replacement for :U and :L (which has been marked as deprecated)
bmake which is the default on FreeBSD 10+ only support by default
:tu/:tl a hack has been added at the time to support :U and :L to ease
migration. This hack is now not necessary anymore
Note that this makes the ports tree incompatible with make(1) from
FreeBSD 8.3 or earlier
With hat: portmgr
Remove an (obsolete) CONFLICTS with a former state of lang/gcc.
Replace USE_BZIP2 by USES=tar:bzip2.
Extend full-regression-test by running contrib/test_summary.
No longer install rebuild-gcj-db46 (which requires bash among others)
and its man page.
No longer add -I${LOCALBASE}/include to CFLAGS.
Since we now configure with --with-gmp=${LOCALBASE} this is no longer
necessary, and due to bugs in binutils (which should not install ansidecl.h
into ${PREFIX}/include, fixed with revision 336642 [1]) and GCC (which
should search its own include directories with higher priority) could
lead to build failures.
Set the license to a combination of GPLv3 (for the compiler itself) and
GPLv3 with GCC Runtime Library Exception (for the runtime).
PR: 184327 [1]
Remove the man7 pages, which we are not packaging, from the staging
area to silence some warnings some are concerned about. [1]
No longer run ccache-update-links as part of post-install which, in
the world of staging, no longer is what it used to be. Rely on the
existing @exec and @unexec in pkg-plist instead. [2]
Submitted by: miwi [1]
Discussed with: antoine [1][2]
Revert revision 334619 from 2013-11-22 that worked around a problem with
the staging infrastructure and had us remove info/gcc46 ourselves. [1]
This has now been addressed in the general infrastructure and actually
causes warnings in some cases. [2]
PR: 184178 [1]
Reported by: amdmi3 [2]
Change PORTNAME for lang/gcc46 from gcc to gcc46 to match the actual
name of this port and avoid a package name collision with other GCC
ports. This also allows us to remove LATEST_LINK.
And it finally allows for a simple and proper CONFLICTS between
lang/gcc and lang/gcc46.
Update to libmpc version 1.0.1 which brings the following fixes:
- Switched to automake 1.11.6, see CVE-2012-3386.
- #14669: Fixed extraction of CC from gmp.h.
- Fixed case of intermediate zero real or imaginary part in mpc_fma,
found by hydra with GMP_CHECK_RANDOMIZE=1346362345.
This is on top of the following changes from version 1.0
- Licence change towards LGPLv3+ for the code and GFDLv1.3+ (with no
invariant sections) for the documentation.
- 100% of all lines are covered by tests
- Renamed functions
. mpc_mul_2exp to mpc_mul_2ui
. mpc_div_2exp to mpc_div_2ui
(Only the first 15 lines of the commit message are shown above )
SSP support has been added to ports with WITH_SSP for i386 and amd64
on FreeBSD 10, and amd64 on earlier versions.
SSP_UNSAFE is added to disable in a port if it fails to build, but
this should only be used in rare circumstances such as kernel modules.
Otherwise, the port may just be failing due to lack of respecting
LDFLAGS.
On FreeBSD 10, this uses an ldscript in /usr/lib/libc.so to pull in
libssp_nonshared.a to address issues linking on i386 [1].
On earlier FreeBSD versions the WITH_SSP knob will add -lssp_nonshared
to LDFLAGS on i386. This is not needed on amd64. However, several hundred
ports do not currently respect LDFLAGS, so this support is disabled currently
as it causes build failures if a dependency is looking for the stack_chk
(Only the first 15 lines of the commit message are shown above )
lang/gcc*: define CONFIGURE_TARGET genericly (8 ports)
Instead of hardcoding the compiler target as FreeBSD, use the OPSYS
variable to it. This makes no practical difference for FreeBSD, but
it helps DragonFly get properly configured.
Approved by: gerald
Work around a bug in libcpp that pulls in the optional system iconv
if present instead of relying on the port we actually depend on.
The issue is that /usr/include/iconv.h has #include <stdbool.h> which
in turn, since both are included very late in the game, conflicts with
similar definintions by libcpp itself.
Interestingly enough, lang/gcc46 and lang/gcc48 did not fail under the
same test scenarios and libstdc++ does not seem to require adjustments,
so PR 161417 may not be relevant in full.
PR: 161417
Introduce ICONV_CONFIGURE_ARG variable defined at Uses/iconv.mk.
It's value is "--with-libiconv-prefix=/usr/local" for systems
before 100043 with ports libiconv and to use at systems post
100043 with base iconv it's value is "" (NULL).
Co-authors: bapt, madpilot and bsam (me)
Update to GCC 4.6.4, the final release and end of the GCC 4.6 branch.
(This requires an EPOCH bump due to how snapshots are labeled.)
Introduce a new option BOOTSTRAP that allows for doing a full
bootstrap of GCC, as opposed to just running a simple build.
Bootstrapping is actually the default upstream, we disable it
by default for the stable flavors of GCC since that is a huge
win in terms of build time of the port. No change in default
behavior for this port.
Convert USE_BISON to USES= bison
It brings bison as a build dependency in case it is set the following way:
USES= bison or USES= bison:build
it brings bison as a run dependency in case it is set the following way:
USES= bison:run
it brings bison both as a run and build dependency in case it the set the
following way:
USES= bison:both
While here trim some headers
Convert some USE_GNOME= gnomehack to USES= pathfix
Use the new lang/gcc-ecj45 port when building the Java frontend
instead of including a pre-built version of the Eclipse Java Compiler
(ECJ) ourselves. [1]
Replace the use of DISTFILES by DISTNAME, since we are now down to
one in all cases.
On the way, update to the 20130125 of GCC 4.6.4.
PR: 175072 [1]
Make binutils a build dependency as well (not just a run-time dependency).
Without this, the libiberty build fails locating ar.
Also update to the 20121123 snapshot of 4.6.4.
Feature safe: yes
Given how stable the GCC 4.6 branch is these days, like with lang/gcc
just build, do not bootstrap, when building this port. This speeds
up a full port/package test cycle by 31% on a 4-core system; a simple
build/install will benefit even more.
(This may impact compile time by this compiler a bit, depending on
how well the system compiler optimizes this codebase. And we only
should do this for stable, established versions of GCC.)
On the way, update to the 20121102 snapshot of GCC 4.6.4.
Feature safe: yes
Revamp the handling of different languages (frontends, run-times)
by GCC to allow for orthogonal setting them in the future. [1]
Print the list of languages being built as part of pre-everything
and shorten the output of operating system and version there.
Inspired by: jkim [1]
Update to the 20120309 snapshot of GCC 4.6.4.
Increase CONFLICTS to also cover GCC 4.6.3 now, in anticipation of
a forthcoming update of lang/gcc to GCC 4.6.3.
Feature safe: yes
Update to the 20111104 snapshot of GCC 4.6.3.
On the way, extend the conflict wth GCC 4.6.1 to also cover
GCC 4.6.2 since that is what the stable lang/gcc port is going
to move to soon.
Prepare for the inclusion of lang/gcc, which is going to track our
preferred version of GCC (usually based on a release) starting with
GCC 4.6.1, and add a proper CONFLICTS.
On the way rename %%GCC_VER%% in pkg-plist to %%GCC_VERSION%% and
make the Makefile machinery a bit more generic to minimize differences
between lang/gcc ports based on releases and those based on snapshots.
PR: 156857
Also update ccache links (when appropriate) in case of package
installation and deinstallation.
My code for handling the port installation case sneaked in via
the previous commit.
PR: 155568
Submitted by: ehaupt