1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-12-05 01:55:52 +00:00
Commit Graph

584 Commits

Author SHA1 Message Date
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
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
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
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
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
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
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
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
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