1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-16 03:24:07 +00:00
Commit Graph

624 Commits

Author SHA1 Message Date
Gerald Pfeifer
fef1dabba2 Remove gcc/files/patch-libcpp which has not been present on lang/gcc49
and lang/gcc48, but is something we have in lang/gcc47 and that lang/gcc
carried over from the days it was about GCC 4.7 (so surviving both the
transitions to GCC 4.8 and recently GCC 4.9).

The underlying issue was addressed upstream 2014-10-24 with r216679,
and in FreeBSD head 2013-09-06 by theraven@ who fixed fixed our
iconv.h to not include stdbool.h.

PR:		161417
2016-12-05 01:04:08 +00:00
Dimitry Andric
80aba3f55c Fix build of lang/gcc with libc++ 3.9.0, similar to r421625:
While testing the clang390-import branch, I ran into the following
errors building lang/gcc49:

In file included from /wrkdirs/usr/ports/lang/gcc49/work/gcc-4.9.4/gcc/c/c-objc-common.c:33:
In file included from /usr/include/c++/v1/new:70:
/usr/include/c++/v1/exception:267:5: error: no member named 'fancy_abort' in namespace 'std::__1'; did you mean simply 'fancy_abort'?
    _VSTD::abort();
    ^~~~~~~
/usr/include/c++/v1/__config:451:15: note: expanded from macro '_VSTD'
#define _VSTD std::_LIBCPP_NAMESPACE
              ^
/wrkdirs/usr/ports/lang/gcc49/work/gcc-4.9.4/gcc/system.h:685:13: note: 'fancy_abort' declared here
extern void fancy_abort (const char *, int, const char *) ATTRIBUTE_NORETURN;
            ^
1 error generated.

What is happening here, is that the source file includes gcc/system.h,
which defines abort to fancy_abort, and then the source file includes
<new>, which attempts to call _VSTD::abort() (the _VSTD is a libc++
alias for std::).  The macro definition then causes the above breakage.

Newer gcc ports, such as gcc5 and gcc6 don't show this issue, because
upstream gcc first added an include of <algorithm> (which indirectly
includes <new>) in r217348 [1], and later even add a direct include of
<new> in r232736 [2].

Fix it for this version, by adding the direct include of <new> to
gcc/system.h.  This makes the 'second' includes of <new> in some .c
files superfluous, but at least they won't result in errors.

[1] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=217348
[2] https://gcc.gnu.org/viewcvs/gcc?view=revision&revision=232736

Approved by:	portmgr (antoine)
PR:		212465
2016-11-25 12:54:01 +00:00
Gerald Pfeifer
0d233311bb Pet portlint re patch format. 2016-11-23 22:43:56 +00:00
Gerald Pfeifer
64bbcf8b75 Long awaited, finally update the default version of GCC in the Ports
Collection as well as the lang/gcc port from GCC 4.8.5 to GCC 4.9.4!

See http://gcc.gnu.org/gcc-4.9/changes.html for an extensive list of
changes and http://gcc.gnu.org/gcc-4.9/porting_to.html for information
on how to port to that new version (if necessary).

files/java-patch-hier required adjustments, gcc/files/patch-arm-libcpp
is not needed any longer (merged upstream), and we're also loosing the
local Stack Protector patches/backports.

PR:		196712
Tested by:	antoine (-exp runs)
Supported by:	antoine, kwm, and others
2016-11-20 09:15:19 +00:00
Mathieu Arnold
eabbfd75e3 ${RM} already has -f.
PR:		213570
Submitted by:	mat
Exp-run by:	antoine
Sponsored by:	Absolight
2016-10-21 12:51:40 +00:00
Gerald Pfeifer
6b22666b98 Revert previous commit (which should have gone into lang/gcc48),
restoring OPTIONS_DEFAULT_powerpc64=BOOTSTRAP.
2016-08-24 20:10:11 +00:00
Gerald Pfeifer
7483e9cfdd Remove OPTIONS_DEFAULT_powerpc64=BOOTSTRAP which is redundant with
OPTIONS_DEFAULT.
2016-08-24 20:08:09 +00:00
Gerald Pfeifer
f7939668a6 Default powerpc64 to bootstrapping (option BOOTSTRAP) since otherwise
GCC can be mis-built, leading to an internal compiler error building
libgcc/libgcov.c, at least on FreeBSD 11.

Adjust OPTIONS_DEFINE_powerpc64 and OPTIONS_DEFAULT_powerpc64
incrementally (with +=) to avoid overwriting settings defined
at the top of the Makefile (or child ports). [1]

Submitted by:	swills [1]
Reported by:	swills
2016-08-24 20:05:40 +00:00
Gerald Pfeifer
4d04d16b49 GCC uses an AWK script to generate source code that helps process
command-line options.  According to POSIX, string comparisons (and
hence sorting) are to be performed based on the locale's collating
order.  Alas GNU AWK only does so in POSIX mode, whereas starting
with FreeBSD 11 we do so by default, running into a bug (or false
assumption) with that script used by GCC.

Setting MAKE_ARGS such that AWK is always invoked in the C locale
works around this bug.

PR:		210122, 211742
Submitted by:	jkim
2016-08-14 07:28:13 +00:00
Andreas Tobler
fdbf4ee15e Skip armv6hf support and move it into armv6.
Discussed with: gerald@
2016-06-03 21:24:41 +00:00
Gerald Pfeifer
baabf138fa 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.
2016-05-06 23:00:26 +00:00
Gerald Pfeifer
0175374736 Make MULTILIB_DESC consistent and more logical also for the lang/gcc
and lang/gcc48 ports, now in line across all lang/gcc* ports.
2016-05-03 20:17:47 +00:00
Jan Beich
70267d209b lang/gcc*: convert to CONFIGURE_OUTSOURCE
PR:		208294, 208309
Exp-run by:	antoine
Approved by:	gerald (maintainer)
Differential Revision:	https://reviews.freebsd.org/D4157
2016-04-13 10:40:58 +00:00
Mathieu Arnold
a9dcad2fff Remove ${PORTSDIR}/ from dependencies, categories h, i, j, k, and l.
With hat:	portmgr
Sponsored by:	Absolight
2016-04-01 14:08:37 +00:00
Gerald Pfeifer
eff1ffb544 This being the generic GCC port, add gfortran, gcc, and g++ as links
to the versioned executable (gfortran48, gcc48, and g++48).

These standard names are going to remain in place in case of version
upgrades and constitute the default, and expected by users, names.

Suggested by:	db
Reviewed by:	db
2015-11-24 10:19:22 +00:00
Julio Merino
dad9e883dd Add a MULTILIB option to gcc{,48,49,5} for powerpc64
This change is the same as r400632, which updated gcc[56]-devel, but now
for gcc{,48,49,5}.  This change is the second attempt at doing this: the
first attempt went in r401072 and was reverted in r401074 because the diff
was bogus and enabled the new MULTILIB option under all platforms instead
of just powerpc64.

This fixes the build of gcc{,48,49,5} under powerpc64 when the system
is built without the lib32 libraries.

More in detail:

If the system is built with lib32 support (WITH_LIB32, which is the default),
building gcc from ports results in a compiler that can target both 64-bit and
32-bit binaries on powerpc64.  However, when lib32 support is disabled
(WITHOUT_LIB32), gcc should only be built with 64-bit support or otherwise
the build fails.

To fix this, explicitly disable 32-bit support when /usr/lib32 is not present
and add a MULTILIB option (which is only defined for powerpc64 when 32-bit
support is possible and defaults to yes to preserve the current behavior) to
allow the user to explicitly control this feature.

Approved by:    gerald (maintainer), bdrewery (mentor), andreast
Differential Revision:  https://reviews.freebsd.org/D3952
2015-11-22 21:06:54 +00:00
Gerald Pfeifer
5fea0d9894 "Backport" the -fstack-protector-strong patchset from lang/gcc48 to
lang/gcc.

PR:		203751, 186852 [1]
Submitted by:	software-freebsd@interfasys.ch [1]
2015-11-09 08:27:41 +00:00
Julio Merino
c7f5a2f84d Revert r401072.
I'm not sure what happened exactly but I think I committed the change from
the wrong client.  The applied change enabled the MULTILIB option for all
architectures and not only powerpc64.  Let's just revert the commit and do
it properly from scratch; other things might be wrong so I wanna take a
closer look, and it's best to just revert quickly.
2015-11-08 20:31:51 +00:00
Julio Merino
c6b41d9541 Add a MULTILIB option to gcc{,48,49,5} for powerpc64
This change is the same as r400632, which updated gcc[56]-devel, but now
for gcc{,48,49,5}.  Waited a week to ensure the change caused nothing to go
horribly wrong but this change is very low risk because it only affects
powerpc64.

This fixes the build of gcc{,48,49,5} under powerpc64 when the system
is built without the lib32 libraries.

More in detail:

If the system is built with lib32 support (WITH_LIB32, which is the default),
building gcc from ports results in a compiler that can target both 64-bit and
32-bit binaries on powerpc64.  However, when lib32 support is disabled
(WITHOUT_LIB32), gcc should only be built with 64-bit support or otherwise
the build fails.

To fix this, explicitly disable 32-bit support when /usr/lib32 is not present
and add a MULTILIB option (which is only defined for powerpc64 when 32-bit
support is possible and defaults to yes to preserve the current behavior) to
allow the user to explicitly control this feature.

Approved by:    gerald (maintainer), bdrewery (mentor), andreast
Differential Revision:  https://reviews.freebsd.org/D3952
2015-11-08 20:09:59 +00:00
Antoine Brodin
6269ce33ed Add missing USES=compiler, needed for ${COMPILER_TYPE} checks
PR:		203540
2015-10-05 16:59:50 +00:00
Antoine Brodin
67ad2d2460 Remove deprecated @exec/@unexec from ports using ccache-update-links 2015-09-26 11:03:19 +00:00
Gerald Pfeifer
f37cc2145c Update to GCC 4.8.5. Mostly bug fixes, a very conservative update. 2015-07-17 08:45:45 +00:00
Gerald Pfeifer
4ba8851f63 Merge MASTER_SITES and MASTER_SITE_SUBDIR into just the former.
Suggested by:	mat
2015-05-01 18:54:47 +00:00
Baptiste Daroussin
94b7441dd6 Bump portrevision after revert as some people did managed to build the _2 version 2015-04-27 14:15:24 +00:00
Baptiste Daroussin
d0c27c0faf Reverting temporary r384814
While the feature has a great value, it is right now breaking the build of
lang/gcc. Given the importance of lang/gcc it is better to revert now and
reapply the patch once it has been fixed and passes an exp-run on all supported
version

With hat:	portmgr
2015-04-27 14:03:51 +00:00
Adrian Chadd
b359a55a82 Implement the FreeBSD specific pieces for thread affinity for OpenMP.
Upstream gcc 4.8 doesn't have support for this - it'll create threads,
but it won't do any of the thread affinity stuff for FreeBSD.

This allows for OMP_PROC_BIND=true to bind threads to their initial
CPUs, leading to some pretty drastic improvements in performance
for certain NUMA workloads.

Approved by:	gerald
2015-04-27 04:08:01 +00:00
Gerald Pfeifer
5d1a82f687 Remove unnecesssary UNIQUENAME. 2015-04-06 15:36:43 +00:00
John Marino
31c3d6fe0e lang/gcc: Use OPTIONS_EXCLUDE_DragonFly to block JAVA
Adjust lang/gcc as was done for gcc46+

Approved by:	DragonFly blanket
2015-03-26 20:43:08 +00:00
Bryan Drewery
01f8b6d7d7 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
2015-03-23 18:56:10 +00:00
Gerald Pfeifer
c5d867acb6 Add CPE information.
PR:		198249
Submitted by:	shun.fbsd.pr@dropcut.net
2015-03-22 01:44:19 +00:00
Gerald Pfeifer
b43ca1a81f Tweak a comment and fix whitespace in the new ARM support. 2015-01-12 04:16:23 +00:00
Andreas Tobler
90b138a17e Add support for armv6*-*-freebsd*.
The larger part of the patch is a backport from gcc trunk which is sent
upstream for approval.

Thanks to Sean Bruno for testing, Andrew Turner for explaining me fine details
and Gerald for approving.

Approved by:	gerald (maintainer)
2015-01-04 19:09:32 +00:00
Gerald Pfeifer
30ead9df6c Update from the GCC 4.8.3 release to the GCC 4.8.4 release.
This fixes (at least) 87 bugs reported, cf.
https://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.8.4
for the full list.  No new features.
2015-01-04 08:38:22 +00:00
Dimitry Andric
0e14fd9299 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)
2014-12-30 19:19:43 +00:00
Gerald Pfeifer
d8914d01aa Remove all traces of @dirrm, both in pkg-plist directly and those that
are added dynamically via the Makefile.
2014-10-20 22:53:59 +00:00
Baptiste Daroussin
e95ace05e4 Comment out info/dir files
indexinfo is taking care of generating it at package installation time

Reported by:	peter
2014-10-06 18:13:15 +00:00
Tijl Coosemans
e101e71974 Add USES=libtool 2014-09-11 14:39:39 +00:00
Gerald Pfeifer
7e422e0825 Update the default version of GCC in the Ports Collection from GCC 4.7.4
to GCC 4.8.3.

This entails updating the lang/gcc port as well as changing the default
in Mk/bsd.default-versions.mk, and it replaces the CONFLICT between the
lang/gcc and lang/gcc47 ports by lang/gcc48.

GCC now uses C++ as its implementation language and performs more
aggressive loop analysis which can be disabled via the
-fno-aggressive-loop-optimizations command-line option.

Compilation of extremely large functions has been signficantly improved,
as have interprocedural optimizations.

A new optimization level -Og has been introduced.  It addresses the need
for fast compilation and a superior debugging experience while providing
a reasonable level of run-time performance.  This should be better
suitable for development than the default -O0.

A new local register allocator (LRA) has been implemented, which replaces
the 26 year old reload pass and improves generated code quality. For now
it is active on the x86 and x86-64 targets.

AddressSanitizer, a fast memory error detector, has been added and can be
enabled via -fsanitize=address.

Each diagnostic emitted now includes the original source line and a caret
indicating the column.

The new option -Wpedantic is an alias for -pedantic, which is now deprecated.

The C++ frontend and associated run-time library libstdc++ have gained
support for many additional C++11 features.  As with previous releases
the Fortrand frontend has seen many improvements as well.

Support for the AArch64 has been added, and there are many improvements
to the x86/x86-64 backend and others.

See http://gcc.gnu.org/gcc-4.8/changes.html for an extense list of changes;
http://gcc.gnu.org/gcc-4.8/porting_to.html for information on how to port
to that new version.

PR:		192025
Tested by:	antoine (-exp runs)
2014-09-10 19:09:58 +00:00
Gerald Pfeifer
5eb25eb500 Update to GCC 4.7.4, the latest (and final) release in the GCC 4.7
series that closes this branch.

Extend full-regression-test by running contrib/test_summary.

Also clean *.la files in LIBEXEC, and recursively so, there and for
TARGLIB.
2014-07-19 12:47:41 +00:00
Baptiste Daroussin
698f728a34 Fix build on system built WITHOUT_INFO
With hat:	portmgr
2014-06-25 08:58:09 +00:00
Baptiste Daroussin
a33191366c 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
2014-06-25 05:35:31 +00:00
Baptiste Daroussin
4a4ec28d37 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
2014-05-05 09:45:36 +00:00
Gerald Pfeifer
84c431b34d Merge updates from lang/gcc47 (and similarly lang/gcc48):
- Add pkg-message that references the need to use -Wl,-rpath=... . [1]

 - Replace USE_BZIP2 by USES=tar:bzip2.

 - No longer install rebuild-gcj-db47 (which requires bash among others)
   and its man page.

Bump PORTREVISION.

PR:		185902 [1]
2014-04-29 23:53:07 +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
95b9127ec0 Set the license to a combination of GPLv3 (for the compiler itself) and
GPLv3 with GCC Runtime Library Exception (for the runtime).
2014-02-22 12:27:20 +00:00
Gerald Pfeifer
ae1cee08f3 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]
2014-02-17 14:43:10 +00:00
Gerald Pfeifer
403125bff5 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.

PR:		184327 [1]
2014-02-15 19:18:01 +00:00
Baptiste Daroussin
e04b632220 Fix properties on pkg-plist 2014-01-21 23:40:21 +00:00
Gerald Pfeifer
7252e7c668 Revert revision 334627 from 2013-11-23 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]
2013-12-07 10:05:49 +00:00
Gerald Pfeifer
52640bd401 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.
2013-11-26 14:13:15 +00:00