Commit graph

590 commits

Author SHA1 Message Date
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
Gerald Pfeifer
ba012b601b Work around ports infrastructure breakage introduced with staging and
remove info/gcc46 ourselves.

Reported by:	QAT, amdmi3, mandree, bf, dbn
PR:		184178
2013-11-23 00:24:00 +00:00
Gerald Pfeifer
d74c35c903 Update to GCC 4.6.4 which, among others, addresses document building
with new versions of texinfo. [1]

Adopt the new LIB_DEPENDS standard and replace USE_GMAKE by USES=gmake.

Remove an obsolete dependency on bison. [2]

STAGEify.

PR:		183342 [1]
Reported by:	Christoph Moench-Tegeder <cmt@burggraben.net> [1], marino [2]
2013-11-02 23:20:14 +00:00
Gerald Pfeifer
3be3e90f93 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
 - 0^0, which returned (NaN,NaN) previously, now returns (1,+0).
 - Removed compatibility with K&R compilers, which was untestable due
   to lack of such compilers.
 - New functions
   . mpc_log10
   . mpc_mul_2si, mpc_div_2si
 - Speed-ups
   . mpc_fma
 - Bug fixes
   . mpc_div and mpc_norm now return a value indicating the effective
     rounding direction, as the other functions.
   . mpc_mul, mpc_sqr and mpc_norm now return correct results even if
     there are over- or underflows during the computation.
   . mpc_asin, mpc_proj, mpc_sqr: Wrong result when input variable has
     infinite part and equals output variable is corrected.
   . mpc_fr_sub: Wrong return value for imaginary part is corrected.

Convert to the new LIB_DEPENDS standard and remove hard-coded
.so versions from a couple of dependent ports.

Bump PORTREVISIONS of all dependent ports.

PR:		183141
Approved by:	portmgr (bdrewery)
2013-10-26 00:52:33 +00:00
Baptiste Daroussin
888ab73a81 Add NO_STAGE all over the place in preparation for the staging support (cat: lang) 2013-09-20 19:53:09 +00:00
Bryan Drewery
c93dfc2e9f 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
symbols.

Many thanks to jlh@ for this as he had many years of patience in getting
all of the necessary pieces [1][2] in.

[1] http://svnweb.freebsd.org/base/head/lib/libc/libc.ldscript?revision=251668&view=markup

PR:		ports/138228 [2]
Submitted by:	jlh (bsd.ssp.mk based on)
Reviewed by:	bapt
With hat:	portmgr
exp-runs done:	37 over a month on 91i386,91amd64,10i386,10amd64
2013-09-20 12:54:54 +00:00
Baptiste Daroussin
9f48528e6e Convert to new perl framework
Convert from USE_GMAKE to USES=gmake
2013-09-17 06:51:04 +00:00
John Marino
9518965c21 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
2013-09-12 10:20:45 +00:00
Gerald Pfeifer
effa8d89e1 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.

libstdc++ does not seem to require adjustments, so PR 161417 may not
be relevant in full.

PR:		161417
2013-09-05 22:26:42 +00:00
Boris Samorodov
9f7e7e1326 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)
2013-09-04 20:01:05 +00:00
Gerald Pfeifer
636df1c02d Replace VERSIONSTRING by DISTVERSION.
Replace USE_GMAKE by USES=gmake.
2013-08-25 12:30:09 +00:00
Alex Kozlov
d4041784dc - Remove MAKE_JOBS_SAFE variable
Approved by:	portmgr (bdrewery)
2013-08-14 22:35:50 +00:00
Gerald Pfeifer
1cfeb1945a 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.

(When bootstrapping, use bootstrap-lean instead of default/vanilla
bootstrap to save on disk space.)

Remove redundant setting of DISTNAME.
2013-06-16 14:13:25 +00:00
Marcus von Appen
a3a0715f38 - Convert USE_ICONV=yes to USES=iconv
- Change USE_GNOME=pkgconfig|gnomehack to USES=pathfix|pkgconfig while here

Reviewed by:	zeising
2013-04-27 11:59:28 +00:00
Baptiste Daroussin
9250d94365 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
2013-03-08 11:32:11 +00:00
Gerald Pfeifer
dc899c25ce 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.

Make binutils a build dependency as well (not just a run-time dependency).

PR:		175072 [1]
2013-03-03 15:22:18 +00:00
Gerald Pfeifer
753449006e For releases, libquadmath.info is always installed, even on
architectures where the library is not supported. [1]

Revamp the handling of different languages (frontends, run-times)
by GCC to allow for orthogonal setting them in the future. [2]

Print the list of languages being built as part of pre-everything
and shorten the output of operating system and version there.

Reported by:	linimon [1]
Inspired by:	jkim [2]
Feature safe:	yes
2012-10-12 15:18:02 +00:00
Gerald Pfeifer
3b642da545 Convert to the new options framework.
Remove now deprecated comments at the top of Makefile.
2012-09-01 20:46:57 +00:00
Gerald Pfeifer
4d3e133549 Just build, do not bootstrap, this stable, default version of GCC
in our ports tree.  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.)

Remove ABI version numbers for all library dependencies.
2012-08-05 01:56:58 +00:00
Gerald Pfeifer
af014397df Update to the release of GCC 4.6.3. This now supports FreeBSD 10
and later out of the box, no more extra patches necessary.

Feature safe:	yes
2012-03-10 22:48:35 +00:00
Gerald Pfeifer
49eb054f5f Fix the build on FreeBSD 10 and later.
Tested by:	avg, kargl
2011-12-20 12:34:20 +00:00
Gerald Pfeifer
85686f2a84 Enable the Objective-C front end and accordingly also the run-time.
Feature safe:	yes
2011-12-13 10:53:44 +00:00
Gerald Pfeifer
05685771fd Update to the GCC 4.6.2 release with a fair amount of bug fixes all
across the board, cf.
http://gcc.gnu.org/bugzilla/buglist.cgi?bug_status=RESOLVED&resolution=FIXED&target_milestone=4.6.
for details.

Feature safe:	yes
2011-11-12 13:39:15 +00:00
Gerald Pfeifer
b41b914946 Omit LATEST_LINK to disambiguate this port from the original lang/gcc46.
Discussed with:	erwin
2011-09-27 21:26:13 +00:00
Gerald Pfeifer
659ec95f4a Welcome the new lang/gcc port! This shall track our preferred version
of GCC (usually an upstream release).  It starts out as GCC 4.6.1 and
is thus in conflict with lang/gcc46 and will move towards later minor
versions of GCC 4.6 and then on to GCC 4.7.

lang/gcc will provide gcc46, g++46, gfortran46 etc. exactly like
lang/gcc46 with which it is interchangible.

This is also planned to be in sync with our existing USE_FORTRAN knob
so that users have the option of using this port, rarely updated, or
the corresponding lang/gcc46 which follows weekly upstream snapshots.

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
2011-09-26 00:54:37 +00:00
Gerald Pfeifer
092a6c2af1 Update to the 20110916 snapshot of GCC 4.6.2. 2011-09-17 23:37:12 +00:00
Gerald Pfeifer
713f39149d 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
2011-09-10 13:36:48 +00:00
Gerald Pfeifer
65b7a79418 Update to the 20110909 snapshot of GCC 4.6.2. 2011-09-10 12:34:51 +00:00
Gerald Pfeifer
64edecf19f Update to the 20110902 snapshot of GCC 4.6.2. 2011-09-04 20:29:32 +00:00
Gerald Pfeifer
f320fe3dbd Update to the 20110826 snapshot of GCC 4.6.2. 2011-08-27 23:35:23 +00:00
Gerald Pfeifer
2d747e087d Update to the 20110812 snapshot of GCC 4.6.2. 2011-08-15 21:44:17 +00:00
Gerald Pfeifer
60c97e82f2 Update to the 20110729 snapshot of GCC 4.6.2. 2011-07-31 22:28:46 +00:00
Gerald Pfeifer
713553940f Update to the 20110722 snapshot of GCC 4.6.2. 2011-07-23 12:00:57 +00:00
Gerald Pfeifer
fda7ee926e Update to the 20110715 snapshot of GCC 4.6.2. 2011-07-19 21:11:27 +00:00
Gerald Pfeifer
01af4ce679 Update to the 20110708 snapshot of GCC 4.6.2. 2011-07-11 08:20:33 +00:00