we still need significant work on these ports:
- mips*
- powerpc
- sh*
- vax
- m68k*
the x86 platforms are probably ready to switch, but i'm not in a good
position to test them. these platforms are probably ready to switch,
as they're still mostly in bringup mode anyway:
- powerpc64
- coldfire
- ia64
and netbsd-elf.h on powerpc64-netbsd.
port netbsd64.h forward from GCC changes. (it's a pity that
a vast portion of linux64.h isn't in some common header that
netbsd64.h and freebsd64.h could also used. there's 100s of
lines of copypasta here, oh well.)
- set GNUHOSTDIST
- move gthr-default.h to BUILDINCS, and add glue to add it to COPYHEADERS
- adjust COPYHEADERS to cope with files outside of dist/libstdc++-v3/.
# XXX these rules don't always work if the ${.TARGET} ends up being the
# copy in ../../arch/$arch/ and that version is older. (but will
# only break read-only source builds.)
highlights from: http://gcc.gnu.org/gcc-4.6/changes.html
GCC now has stricter checks for invalid command-line options
New -Wunused-but-set-variable and -Wunused-but-set-parameter
warnings
Many platforms have been obsoleted
Link-time optimization improvements
A new switch -fstack-usage has been added
A new function attribute leaf was introduced
A new warning, enabled by -Wdouble-promotion
Support for selectively enabling and disabling warnings via
#pragma GCC diagnostic has been added
There is now experimental support for some features from the
upcoming C1X revision of the ISO C standard
Improved experimental support for the upcoming C++0x ISO C++
standard
G++ now issues clearer diagnostics in several cases
Updates for ARM, x86, MIPS, PPC/PPC64, SPARC
Darwin, FreeBSD, Solaris 2, MinGW and Cygwin now all support
__float128 on 32-bit and 64-bit x86 targets. [*1]
highlights from: http://gcc.gnu.org/gcc-4.7/changes.html
The -fconserve-space flag has been deprecated
Support for a new parameter --param case-values-threshold=n
was added
Interprocedural and Link-time optimization improvements
A new built-in, __builtin_assume_aligned, has been added
A new warning option -Wunused-local-typedefs was added
A new experimental command-line option -ftrack-macro-expansion
was added
Support for atomic operations specifying the C++11/C11 memory
model has been added
There is support for some more features from the C11 revision
of the ISO C standard
Improved experimental support for the new ISO C++ standard,
C++11
Updates for ARM, x86, MIPS, PPC/PPC64, SH, SPARC, TILE*
A new option (-grecord-gcc-switches) was added
highlights from: http://gcc.gnu.org/gcc-4.8/changes.html
GCC now uses C++ as its implementation language. This means
that to build GCC from sources, you will need a C++
compiler that understands C++ 2003
DWARF4 is now the default when generating DWARF debug
information
A new general optimization level, -Og, has been introduced
A new option -ftree-partial-pre was added
The option -fconserve-space has been removed
The command-line options -fipa-struct-reorg and
-fipa-matrix-reorg have been removed
Interprocedural and Link-time optimization improvements
AddressSanitizer, a fast memory error detector, has been
added [*2]
A new -Wsizeof-pointer-memaccess warning has been added
G++ now supports a -std=c++1y option for experimentation
with features proposed for the next revision of the
standard, expected around 2014
Improved experimental support for the new ISO C++ standard,
C++11
A new port has been added to support AArch64
Updates for ARM, x86, MIPS, PPC/PPC64, SH, SPARC, TILE*
[*1] we should support this too!
[*2] we should look into this.
https://code.google.com/p/address-sanitizer/
- convert to using ${EXTERNAL_GCC_SUBDIR}
- define base-external-gpl3-gcc* subdir as GCC_SUBDIR
- use <bsd.init.mk> over <bsd.own.mk> for a bunch of places; mostly
because it arranges for ../Makefile.inc to be included earlier, and
don't bother including the latter if the former is already included.
- move all .PATH: settings after <bsd.{own,lib}.mk> so that all
valid variables are set before it is evaluated
- rename mknative-gcc* to match their subdir name.
XXX the relationship between the Makefile.inc/Makefile.gcc_path files
is kind of sketchy, it would be great if this was fixed.
upgrading the normal GCC to 4.8.
this tree has had ChangeLog entries removed, as well as all the
other components we delete, and "only" weighs in around 140MB now.
assumption that .text code comes first in kernels about bootblock so
that the first symbol defined becomes the start address. This change
puts .text before other .text like sections.
Add a "mem_noofs_operand" predicate and corresponding "w" constraint.
Use those instead of "memory_reg_operand"/"m" for some atomic instrinsic
patterns: casx (and friends) do not accept an offset from the pointer
register (they are synthetic instructions mapping to e.g. casxa [..]
ASI_P, ... and the opcode space encoding offsets in other instructions
is needed to encode the ASI here).
This fixes the build of gtk+-3.10.6 from pkgsrc on sparc64.