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
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
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)
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.
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
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]
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
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.
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
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]
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]
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.
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]