Commit graph

646 commits

Author SHA1 Message Date
Gerald Pfeifer
ea8c8ec7da Bump PORTREVISION for ports depending on the canonical version of GCC
as defined in Mk/bsd.default-versions.mk which has moved from GCC 8.3
to GCC 9.1 under most circumstances now after revision 507371.

This includes ports
 - with USE_GCC=yes or USE_GCC=any,
 - with USES=fortran,
 - using Mk/bsd.octave.mk which in turn features USES=fortran, and
 - with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
   c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, everything INDEX-11 shows with a dependency on lang/gcc9 now.

PR:		238330
2019-07-26 20:46:53 +00:00
Gerald Pfeifer
a9f015d155 Bump PORTREVISION for ports depending on the canonical version of GCC
defined via Mk/bsd.default-versions.mk which has moved from GCC 7.4 t
GCC 8.2 under most circumstances.

This includes ports
 - with USE_GCC=yes or USE_GCC=any,
 - with USES=fortran,
 - using Mk/bsd.octave.mk which in turn features USES=fortran, and
 - with USES=compiler specifying openmp, nestedfct, c11, c++0x, c++11-lang,
   c++11-lib, c++14-lang, c++17-lang, or gcc-c++11-lib
plus, as a double check, everything INDEX-11 showed depending on lang/gcc7.

PR:		231590
2018-12-12 01:35:33 +00:00
Gerald Pfeifer
d475e1a537 Bump PORTREVISION for the change to pkg-descr in r481962.
PR:		232162
2018-10-13 07:23:37 +00:00
Gerald Pfeifer
bb2cd7e5d9 Avoid referencing the concrete version number of the port pulled in
via this meta-port.

PR:		232162
Submitted by:	freebsd@mcwest.org
2018-10-13 07:16:57 +00:00
Gerald Pfeifer
c2a92a1aea Bump PORTREVISIONs of all users of math/mpc that we just updated to
version 1.1.0 (via revision 464079).
2018-03-10 17:46:04 +00:00
Gerald Pfeifer
43bb9124f0 Remove the additional java category from this port. lang/gcc6, which
this pulls in by default, still provides GCJ/libgcj (as the last GCC-based
port doing so), but unlike C, C++, or Fortran we do not create any symlink
for Java and users may also change the default version of GCC, so really
nothing Java-specific here.
2017-12-05 12:45:08 +00:00
Gerald Pfeifer
dadf9b1fa7 Ensure our dependencies also work properly when GCC_DEFAULT is one of
the older versions, in particular 4.9 which is the last working on SPARC.

Reported by:	linimon
2017-12-03 13:59:53 +00:00
Gerald Pfeifer
0f5f9d33e8 Replace the hard-coded PORTVERSION by GCC_DEFAULT now that we did dump
the major version (so this does not result in a need for PORTEPOCH).

PR:		219275
Reported by:	jbeich
2017-09-11 14:54:12 +00:00
Gerald Pfeifer
a086ab745c Also bump PORTREVISION of lang/gcc which now refers to lang/gcc6 by
default.

PR:		219275
Reported by:	rakuco
2017-09-11 11:24:44 +00:00
Gerald Pfeifer
d079c47acc Switch web reference (WWW) from http to https. 2017-07-08 07:30:19 +00:00
Gerald Pfeifer
7b643948d8 Fix RUN_DEPENDS.
Reported by:	pkg-fallout, Matthew D. Fuller <fullermd@over-yonder.net>
2017-05-28 08:28:36 +00:00
Gerald Pfeifer
868420635b Essentially replace (or rather reinvent) the lang/gcc port, which more
or less ended up identical to lang/gcc5 now that we differentiate between
lang/gccX-devel and lang/gccX ports, by (or as) a meta-port that pulls in
the respective lang/gccX port (based on the setting of $GCC_DEFAULT) and
defines gcc, g++, and gfortran as symlinks to the respective versioned
binaries.

This is the end of a long journey establishing this infrastructure
which is now similar to the one of the python ports, for example,
and makes upgrading the default as well as adjusting the default
locally a lot easier.

(PORTVERSION remains at 5.4.0 for now to avoid PORTEPOCH, but
PORTREVISION gets a bump.)

Suggested by:	tijl (a while ago)
2017-05-27 23:27:21 +00:00
Martin Wilke
0af18a4496 - Fix shebang
Approved by:	gerald (maintainer via mail)
2017-04-14 20:50:32 +00:00
Andreas Tobler
2f4835ed3d Define WCHAR_T for aarch64 on all active gcc (gcc/gcc5 and gcc6) releases.
This define is already in upstream.
The gcc*-devel ports will pickup the commit from upstream.

Submitted by:	kan@
Approved by:	gerald@ (maintainer)
2017-04-08 18:55:35 +00:00
Gerald Pfeifer
d6e7f724ca Copy over files/patch-disable-armvhf-config.gcc from lang/gcc5 to
fix the armv6 bootstrap.

Reported by:	andreast, jbeich
2017-04-08 06:27:14 +00:00
Gerald Pfeifer
63ca271a30 By default bootstrap on powerpc64 (option BOOTSTRAP), which avoids an
ICE on this architecture.

Reported by:	andreast
2017-04-07 21:50:19 +00:00
Gerald Pfeifer
571313a451 Add support for aarch64.
Submitted by:	andreast
2017-04-01 20:36:09 +00:00
Gerald Pfeifer
d39ad836d1 Update lang/gcc and hence the default version of GCC in the Ports
Collection (requested by USE_GCC=yes and various USES=compiler
invocations) from GCC 4.9.4 to GCC 5.4.

files/patch-arm-support and files/patch-gcc_system.h have become
obsolete.  New patches files/patch-arm-unwind-cxx-support and
files/patch-libc++ help support arm targets and new libc++ in base.

ONLY_FOR_ARCHS now also includes arm.

A new option GRAPHITE_DESC, off by default for now, adds support for
Graphite loop optimizations.

Finally, conflicts with other lang/gcc* ports are adjusted suitably.

In terms of changes for users, this upgrade brings the following:

The default mode for C is now -std=gnu11 instead of -std=gnu89.
New warning options -Wc90-c99-compat and -Wc99-c11-compat may
prove useful on that front.

The C++ front end now has full C++14 language support including
C++14 variable templates, C++14 aggregates with non-static data
member initializers, C++14 extended constexpr, and more.
The Standard C++ Library (libstdc++) has full C++11 support and
experimental full C++14 support.  It uses a new ABI by default.

There have been significant improvements to inter-procedural optimizations
and link-time optimization such as One Definition Rule based merging of C++
types as well as register allocation.

OpenMP 4.0 specification offloading features are now supported by the C,
C++, and Fortran compilers.  Cilk Plus, an extension to the C and C++
languages to support data and task parallelism, has been added as well.

New warning options -Wswitch-bool, -Wlogical-not-parentheses,
-Wbool-compare and -Wsizeof-array-argument may prove useful as
may new preprocessor directives __has_include, __has_include_next,
and __has_attribute.

GCC can now be built as a shared library for embedding in other processes
(such as interpreters), suitable for Just-In-Time compilation to machine
code.  This provides a C API and a C++ wrapper API.

Many code generation improvements for AArch64, ARM, support for
AVX-512{BW,DQ,VL,IFMA,VBMI} and Intel MPX on x86-64, and generally
improvements on many targets.

The Local Register Allocator (LRA) now contains a rematerialization
subpass and is able to reuse the PIC hard register on x86/x86-64 to
improve performance of position independent code.

https://gcc.gnu.org/gcc-5/changes.html has a more extensive set of
changes and https://gcc.gnu.org/gcc-5/porting_to.html has a solid
overview of issue you may encountering porting to this new version.

PR:             216707, 218125
Tested by:      antoine (-exp runs)
Supported by:   jbeich, tcberner, and others
2017-04-01 15:03:21 +00:00
Gerald Pfeifer
ba900c6b38 Remove files/patch-armv6-hf-support since armv6hf no longer exists as
an arch.

Reported by:	andreast
2017-04-01 13:19:20 +00:00
Gerald Pfeifer
f0653f1078 Use relative links for the generic g++, gcc, and gfortran.
Replace a shell for-loop with a bmake .for-loop on the way.

Reported by:	danfe
Reviewed by:	danfe
2017-03-26 20:01:07 +00:00
Gerald Pfeifer
f0c4451788 Remove traces of armv6hf which no longer exists as an arch. [1]
Remove an extraneous definition of DISTVERSION (which in general we
only need for ports tracking weekly GCC snapshots) and simplify the
definition of GCC_VERSION.

Reported by:	andreast [1]
2017-02-03 16:00:56 +00:00
Tijl Coosemans
02f27a83b4 The output of tools like awk, date, sort, tr,... depends on the current
locale set by the user.  Add LANG=C and LC_ALL=C at the beginning of
bsd.port.mk and export them so all commands are executed with the C locale.
LC_ALL=C overrides all other LC_* variables.  LANG is used by setlocale(3)
as default value for LC_* variables, so normally it isn't used when LC_ALL
is set, but there's code out there that looks at LANG directly so it's safer
to set it as well.  The only commands not captured by this are !=
assignments before any inclusion of bsd.port.*mk.

Introduce USE_LOCALE=<locale> that adds LANG=<locale> and LC_ALL=<locale> to
CONFIGURE_ENV and MAKE_ENV so upstream build systems can be executed with a
different locale (e.g. USE_LOCALE=en_US.UTF-8).

PR:		215882
Exp-run by:	antoine
Approved by:	portmgr (antoine)
2017-01-18 13:20:31 +00:00
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