Commit graph

568 commits

Author SHA1 Message Date
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
Gerald Pfeifer
48d67602da Update to the 20110701 snapshot of GCC 4.6.2, which is practically
the GCC 4.6.1 release.
2011-07-04 10:56:11 +00:00
Gerald Pfeifer
b1bc7eea34 Update to the 20110610 snapshot of GCC 4.6.1. 2011-06-12 17:49:39 +00:00
Gerald Pfeifer
ea38501036 Oops, remove testing code (to force older version). 2011-06-04 11:06:27 +00:00
Gerald Pfeifer
17bb9a294d Oops, remove testing code (to force older version). 2011-06-04 10:05:31 +00:00
Gerald Pfeifer
264ddd020f Update to the 20110603 snapshot of GCC 4.6.1.
Enable c, c++, and fortran (and only these) explicitly by default, and
Java when/where available. [1]

Reported by:	Scott Allendorf <scott-allendorf@uiowa.edu> [1]
2011-06-04 10:00:41 +00:00
Gerald Pfeifer
c083471e66 Complete Java support by providing a pre-built copy of ecj.jar.
PR:		157115
Tested by:	joerg, mandree
2011-06-02 22:11:48 +00:00
Gerald Pfeifer
69f9107e9a Update to the 20110526 snapshot of GCC 4.6.1. Upstream now only provides
a single tarball, so this brings a number of changes around that.
2011-05-29 11:59:46 +00:00
Gerald Pfeifer
dfac060b47 Update to the 20110520 snapshot of GCC 4.6.1. 2011-05-21 12:09:23 +00:00
Gerald Pfeifer
c6abd83d17 Update to the 20110513 snapshot of GCC 4.6.1. 2011-05-14 02:01:47 +00:00
Gerald Pfeifer
45c7873b5e Update to the 20110506 snapshot of GCC 4.6.1. 2011-05-07 22:27:11 +00:00
Gerald Pfeifer
68e3769cbc Update to the 20110429 snapshot of GCC 4.6.1. 2011-04-30 18:38:51 +00:00
Gerald Pfeifer
27dd163872 Update to the 20110422 snapshot of GCC 4.6.1.
Replace the, now dysfunctional, post-patch target with a configure
option that marks this build of GCC as "FreeBSD Ports Collection". [1]

Reported by:	Bjoern Koenig <bkoenig@alpha-tierchen.de> [1]
2011-04-23 22:47:46 +00:00
Gerald Pfeifer
93f5415b7a Update to the 20110415 snapshot of GCC 4.6.1. 2011-04-17 00:46:15 +00:00
Gerald Pfeifer
915756b208 Update to the 20110408 snapshot of GCC 4.6.1. 2011-04-09 01:13:43 +00:00
Gerald Pfeifer
0cabdf9daa Update to the 20110401 snapshot of GCC 4.6.1. 2011-04-02 11:58:32 +00:00
Gerald Pfeifer
d55f0b8172 Update to the release of GCC 4.6.0 (basically). Really too many changes
to sensibly list here, but http://gcc.gnu.org/gcc-4.6/changes.html has a
nice overview.

Some highlights include

 - a new quad-precision library that's used by the Fortran frontend
   (on x86 and amd64);
 - new -Wunused-but-set-variable and -Wunused-but-set-parameter warnings
   for C family languages (enabled by -Wall and -Wall -Wextra, too);
 - new -Wdouble-promotion warning for implicit promotions to double;
 - a new general optimization level -Ofast combines -O3 with options that
   can affect standards compliance but result in better optimized code;
 - link-time optimizations (LTO) now scaling to large input sizes, using
   better heuristics, and optimizing more aggressively;
 - new command-line options -fstack-usage and -fstrict-volatile-bitfields
   (for precisely defining and accessing memory-mapped peripheral registers);
 - function attribute leaf that allows for more aggressive optimizations;
 - new data type __int128 for targets having wide enough machine-mode support;
 - support for selectively enabling and disabling warnings via
   #pragma GCC diagnostic has been added. For instance:

     #pragma GCC diagnostic error "-Wuninitialized"
       foo(a);			/* error is given for this one */
     #pragma GCC diagnostic push
     #pragma GCC diagnostic ignored "-Wuninitialized"
       foo(b);			/* no diagnostic for this one */
     #pragma GCC diagnostic pop
       foo(c);			/* error is given for this one */
     #pragma GCC diagnostic pop
      foo(d);			/* depends on command line options */

 - new command-line option-fmax-errors=N;
 - experimental support for some features from the upcoming ISO C1X;
 - similarly for ISO C++0x including constexpr, nullptr, noexcept,
   unrestricted unions, range-based for loops, opaque enums, implicitly
   deleted functions, and implicit move constructors;
 - default warning when integers are cast to larger pointer types,
   to disable via -Wno-int-to-pointer-cast;
 - signficiantly better diagnostics for C++ code;
 - loads and loads and loads of improvements to the Fortran frontend;
 - a new Go frontend and run-time library;
 - massive work on Objective-C and Objective-C++; notably extensive
   support for Objective-C 2.0  (not enabled by this port yet);
 - support for Intel Core 2 processors (-march=core2, -mtune=core2),
   Intel Core i3/i5/i7 processors /with AVS (-march=corei7, -mtune=corei7,
   -march=corei7-avx, -mtune=corei7-avx);
 - support for AMD Bobcat (fam 14) processors (-march=btver1, -mtune=btver1);

Caveat:

 - Most libstdc++ standard headers have been changed to no longer include
   the cstddef header as an implementation detail.
2011-03-26 01:33:11 +00:00
Gerald Pfeifer
2436065cf2 Add support for 32-bit powerpc.
Submitted by:	andreast
2011-03-20 23:01:09 +00:00
Gerald Pfeifer
d2ad6064f7 Update to the 20110318 snapshot of GCC 4.6.0.
Make the full-regression-test target conditional on MAINTAINER_MODE. [1]

Reported by:	andreast, marius [1]
2011-03-19 14:50:55 +00:00
Gerald Pfeifer
83bb53137b Update to the 20110312 snapshot of GCC 4.6.0. On the way, remove the
LTO option.  This is now the default, without any drawbacks or extra
dependencies.
2011-03-19 00:21:58 +00:00
Gerald Pfeifer
96b2c5d450 Update to the 20110305 snapshot of GCC 4.6.0. Remove the dependency
on libelf when building with link-time optimization (LTO) support which
is not needed any more.
2011-03-13 17:38:18 +00:00
Gerald Pfeifer
a74bb0926e Update to the 20110226 snapshot of GCC 4.6.0. The change for code
generation on i386 to default to i486 on FreeBSD 6 and above is now
upstream, too, so we can shed our specific patch.
2011-02-27 01:11:53 +00:00
Gerald Pfeifer
d5804fb6b8 Update to the 20110219 snapshot of GCC 4.6.0.
This addresses the pollution of common namespace by
share/python/aotcompile.py and share/python/classfile.py which are
now saved in version-specific directories.

By means of an extra patch default code generation on i386 now
defaults to i486 on FreeBSD 6 and above. [1]

Submitted by:	tijl [1]
Reported by:	Yuri Karaban <tech@askold.net> [1]
PR:		154364 [1]
2011-02-22 18:57:48 +00:00