346 Commits

Author SHA1 Message Date
mm
24a0f968ca Upgrade of base gcc and libstdc++ to the last GPLv2-licensed revision
(rev. 127959 of gcc-4_2-branch).

Resolved GCC bugs:
	c++: 17763, 29365, 30535, 30917, 31337, 31941, 32108, 32112, 32346,
	     32898, 32992
	debug: 32610, 32914
	libstdc++: 33084, 33128
	middle-end: 32563
	rtl-optimization: 33148
	tree-optimization: 25413, 32723
	target: 32218

Tested by:	pointyhat (miwi)
Obtained from:	gcc (gcc-4_2-branch up to rev. 127959)
PR:		gnu/153298, gnu/153959, gnu/154385
MFC after:	1 month
2011-03-29 20:53:51 +00:00
mm
1aee4516fc Backport missing tunings for -march=core2:
- enable extra 80387 mathematical constants (ext_80387_constants) [1]
- enable compare and exchange 16 bytes (cmpxchg16b) [2]

Verified against llvm-gcc (and apple gcc)

Obtained from:	gcc-4.3 (ref. svn revs. 119260 [1], 121140 [2]; GPLv2)
MFC after:	2 weeks
2011-03-17 09:44:33 +00:00
mm
0ef0516836 Fix -march/-mtune=native autodetection for Intel Core 2 CPUs
Obtained from:	gcc 4.3 (partial rev. 119454; GPLv2)
MFC after:	2 weeks
2011-03-16 12:40:58 +00:00
mm
36f9eb3065 Backport SSSE3 instruction set support to base gcc.
Enabled by default for -march=core2

Obtained from:	gcc 4.3 (rev. 117958, 121687, 121726, 123639; GPLv2)
MFC after:	2 weeks
2011-03-14 13:31:34 +00:00
marius
dd7c472938 Now that TLS is supported for sparc64 by both binutils 2.17.50 committed
in r218822 and rtld(1) committed in r219533 turn on TLS support in GCC.
2011-03-11 21:24:02 +00:00
mm
6be340ca74 Backport Intel Core 2 and AMD Geode CPU types from gcc-4.3 (GPLv2)
These options are supported in this shape in all newer GCC versions.

PR:		gnu/155308
Obtained from:	gcc 4.3 (rev. 118090, 118973, 120846; GPLv2)
MFC after:	2 weeks
2011-03-07 14:48:22 +00:00
mm
e970f17028 Backport svn r124339 from gcc 4.3 and add opteron-sse3, athlon64-sse3
and k8-sse3 cpu-types for -march=/-mtune= gcc options.
These new cpu-types include the SSE3 instruction set that is supported
by all newer AMD Athlon 64 and Opteron processors.
All three cpu-types are supported by clang and all gcc versions
starting with 4.3 SVN rev 124339 (at that time GPLv2 licensed).

PR:		gnu/154906
Discussed with:	kib, kan, dim
Obtained from:	gcc 4.3 (r124339, GPLv2 licensed)
MFC after:	2 weeks
2011-02-20 22:25:23 +00:00
nwhitehorn
699ef3129b Turn off default generation of userland dot symbols on powerpc64 now that
we have a binutils that supports it. Kernel dot symbols remain on to assist
DDB.
2011-02-18 21:44:53 +00:00
kib
683e780876 Configure gcc to emit .note.GNU-stack for both 32 and 64 bits PowerPC.
Mark gcc-provided asm files as not requiring executable stack.

It seems that non-FreeBSD ABIs for powerpc64 claim stack non-executable.
Due to this, rs6000_elf_end_indicate_exec_stack() only emit the note for
32 bit target. I decided not to change FreeBSD ABI and patch
emit the notes for both variants.

Reviewed and tested by:	nwhitehorn
2011-01-14 11:31:22 +00:00
kib
4fe990ef1e Make gcc emit the .note.GNU-stack section into the assembler files.
Reviewed by:	kan
2011-01-07 14:24:24 +00:00
dim
d54dd9f21a Now that the fix for gcc PR 20218 is applied, and hidden attributes
actually work, linking of libgcc_s.so.1 on ia64 will fail with:

unwind-ia64.So(.text+0x1762): In function `_Unwind_FindEnclosingFunction':
: undefined reference to `_Unwind_FindTableEntry'
unwind-ia64.So(.text+0x1d82): In function `uw_frame_state_for':
: undefined reference to `_Unwind_FindTableEntry'
/usr/bin/ld: libgcc_s.so.1: hidden symbol `_Unwind_FindTableEntry' isn't defined

Repair this by not hiding the _Unwind_FindTableEntry symbol; on FreeBSD,
it is in libc, not in libgcc.

Silence from:	current@
2010-11-25 20:35:49 +00:00
dim
5a38866f59 Apply backported fix for gcc PR 20218. This makes __attribute__
((visibility ("hidden"))) work properly, and fixes building devel/glib20
with newer binutils.

Silence from:	current@
2010-11-25 20:29:14 +00:00
nwhitehorn
2e85e3aced Check for NULL link registers as found in initial stack frames when doing
stack unwinding, instead of naively trying to check the instruction at
that location. This fixes signal handling in threaded applications after
recent changes regarding unwinding in libthr. While here, clean up our
MD_FROB_UPDATE_CONTEXT() implementation a little.
2010-09-26 14:20:09 +00:00
nwhitehorn
5d21d768b2 Teach our toolchain how to generate 64-bit PowerPC binaries. This fixes
a variety of bugs in binutils related to handling of 64-bit PPC ELF,
provides a GCC configuration for 64-bit PowerPC on FreeBSD, and
associated build systems tweaks.

Obtained from:	projects/ppc64
2010-07-10 02:29:22 +00:00
jmallett
ef36c6939e Add/improve mips64r2, Octeon, n32 and n64 support in the toolchain.
o) Add TARGET_ABI to the MIPS toolchain build process.  This sets the default
   ABI to one of o32, n32 or n64.  If it is not set, o32 is assumed as that is
   the current default.
o) Set the default GCC cpu type to any specified TARGET_CPUTYPE.  This is
   necessary to have a working "cc" if e.g. mips64 is specified, as binutils
   will refuse to link objects using different ISAs in some cases.
o) Add support for n32 and n64 ABIs to binutils and GCC.
o) Add additional required libgcc2 stubs for n32 and n64.
o) Add support for the "mips64r2" architecture to GCC.  Add the "octeon"
o) When static linking, wrap default libraries in --start-group and
   --end-group.  This is required for static linking to work on n64 with the
   interdependencies between libraries there.  This is what other OSes that
   support n64 seem to do, as well.
o) Fix our GCC spec to define __mips64 for 64-bit targets, not __mips64__, the
   former being what libgcc, etc., check and the latter seemingly being a
   misspelling of a hand merge from a Linux spec.
o) When no TARGET_CPUTYPE is specified at build time, make GCC take the default
   ISA from the ABI.  Our old defaults were too liberal and assumed that 64-bit
   ABIs should default to the MIPS64 ISA and that 32-bit ABIs should default to
   the MIPS32 ISA, when we are supporting or will support some systems based on
   earlier 32-bit and 64-bit ISAs, most notably MIPS-III.
o) Merge a new opcode file (and support code) from a later version of binutils
   and add flags and code necessary to support Octeon-specific instructions.
   This should also make merging opcodes for other modern architectures easier.

Reviewed by:	imp
2010-06-02 11:06:03 +00:00
imp
0c340bbf06 Tweak the linker spec a smidge.
Correct a typo.
2010-03-05 21:25:20 +00:00
imp
b1fc86a42d Add support for o32 (when it isn't the default), n32, n64, and o64 to
the linker spec.  Provide the ability to have a default ABI that's
different than o32 (again, for all 4).

Submitted by:	C. Jayachandran (JC) with tweaks for o64/o32 by me
2010-03-05 16:56:08 +00:00
imp
ea9ee1ed47 Also define _MIPS_ISA here.
Submitted by:	jmallet@
2010-03-03 02:44:20 +00:00
imp
8f72bf4ef0 Bring in more built-in defines from NetBSD
a few #defines from JC.

# tested only with o32 at the moment

Submitted by:	C. Jayachandran (CJ)
Obtained from:	NetBSD
2010-03-02 05:59:14 +00:00
imp
a8210f6c6c Merge r194519 from projects/mips to head by hand:
r194519 | gonzo | 2009-06-19 17:28:26 -0600 (Fri, 19 Jun 2009) | 3 lines
- set -mabicalls and -msoft-float as a default in order to
    simplify building ports
2010-01-08 23:37:30 +00:00
kib
0d2524b063 Properly support -fPIE by linking PIE binaries with specially-built
Scrt1.o instead of crt1.o, since the later is built as non-PIC.

Separate i386-elf crt1.c into the pure assembler part and C code,
supplying all data extracted by assembler stub as explicit parameters [1].
Hide and localize _start1 symbol used as an interface between asm and
C code.

In collaboration with:	kan
Inspired by:	PR i386/127387 [1]
Prodded and tested by:	rdivacky [1]
MFC after:	3 weeks
2009-12-02 16:34:20 +00:00
jhb
bc6b0275a0 Change gcc to assume a default machine architecture of 486 instead of 386
on "i386".  Doing it in the compiler is deemed to be less fragile then
attempting to provide a default -march setting via bsd.cpu.mk.  FreeBSD
itself has not supported plain 386 CPUs since 5.x.

Suggested by:	kan
Requested by:	rdivacky
MFC after:	1 month
2009-10-21 19:26:12 +00:00
kan
ef443476d9 Second attempt at eliminating .text relocations in shared libraries
compiled with stack protector.

Use libssp_nonshared library to pull __stack_chk_fail_local symbol into
each library that needs it instead of pulling it from libc. GCC
generates local calls to this function which result in absolute
relocations put into position-independent code segment, making dynamic
loader do extra work every time given shared library is being relocated
and making affected text pages non-shareable.

Reviewed by:        kib
Approved by:        re (kib)
2009-07-14 21:19:13 +00:00
obrien
5bde7108b7 If arm.h is going to define WCHAR_TYPE, don't assume WCHAR_TYPE_SIZE
doesn't already have a definition.

Reported by:	imp
2008-09-10 15:47:31 +00:00
obrien
34e07c5340 We're not quite ready for the full %(endian_spec). 2008-09-01 23:09:45 +00:00
obrien
188674d6ca Add __unix__. Tweak __KPRINTF_ATTRIBUTE__ while I'm here. 2008-09-01 22:22:44 +00:00
obrien
f18a1ee8d4 Add FreeBSD/MIPS support to GCC. 2008-09-01 18:46:03 +00:00
obrien
1da46bec02 Turn cc_tools/Makefile and Makefile.tgt into a "linear" read. Shared
parts of the configuration aren't duplicated, and arch-specific exceptions
are made "in-place".  Also clean up the FreeBSD/amd64 config a little.
2008-08-31 23:38:28 +00:00
das
84a5dbce41 Make -mfancy-math-387 the default on FreeBSD, as it is on most other
operating systems. Previously, gcc would inhibit the generation of
fsqrt, fsin, and several other floating point instructions, for the
benefit of the old in-kernel math emulator, which was removed over 5
years ago.
2008-08-10 19:02:57 +00:00
obrien
8f779d35ce White space fixes. 2008-06-28 15:28:17 +00:00
obrien
5537e363a7 Reduce diff to vendor. 2008-06-28 15:17:02 +00:00
marius
ef6adb6dc2 Allow the targeted CPU type to be set via -mcpu instead of
limiting to the hardcoded equivalent of -mcpu=ultrasparc.

PR:		109510
MFC after:	3 months
2007-12-09 17:41:47 +00:00
kan
e2c3cc81d7 Update locally changed files to GCC 4.2.1.
Approved by: re (kensmith)
2007-08-14 03:04:42 +00:00
kan
3cae63863e Merge files that are no longer carry FreeBSD local changes.
Approved by:	re (kensmith)
2007-08-14 03:02:26 +00:00
kan
f3fdf8c006 This commit was generated by cvs2svn to compensate for changes in r171825,
which included commits to RCS files with non-trunk default branches.
2007-08-14 02:45:23 +00:00
kan
d2ff90cc58 GCC 4.2.1 release. 2007-08-14 02:45:23 +00:00
cognet
ae26a6fdf6 FreeBSD expects VFP, so use that as the default FPU.
Reviewed by:	kan
2007-05-21 08:38:42 +00:00
kan
cd1d71d72c Merge arm-freebsd.h.diff directly into the target file. Maintaining
separate patch is much more painful than taking this file off the
vendor branch.
2007-05-19 03:11:26 +00:00
kan
8a2681fa7e Remove files that are no more part of GCC distribution from FSF branch. 2007-05-19 02:42:17 +00:00
kan
23d2c3da1f This commit was generated by cvs2svn to compensate for changes in r169708,
which included commits to RCS files with non-trunk default branches.
2007-05-19 02:42:17 +00:00
kan
fb9b6e57a1 Remove files that are not part of GCC distribution anymore. 2007-05-19 02:34:18 +00:00
kan
ce13d58119 Update configuration files for GCC 4.2. 2007-05-19 02:30:20 +00:00
kan
5d74891d60 Merge local FreeBSD changes for -mno-align-long-strings. 2007-05-19 02:26:26 +00:00
kan
cadd557b2c FreeBSD uses unchanged versions of this files. 2007-05-19 02:12:21 +00:00
kan
1f9ea4d0a4 GCC 4.2.0 release. 2007-05-19 01:19:51 +00:00
kan
d033934870 This commit was generated by cvs2svn to compensate for changes in r169689,
which included commits to RCS files with non-trunk default branches.
2007-05-19 01:19:51 +00:00
kan
d2e7ac2a73 Resolve conflicts after GCC 3.4.6 20060825 import. 2006-08-26 21:37:21 +00:00
kan
ab6c6e434e Gcc 3.4.6 as of 2006/08/25 #116475. 2006-08-26 21:29:10 +00:00
kan
5c84bed2e8 This commit was generated by cvs2svn to compensate for changes in r161651,
which included commits to RCS files with non-trunk default branches.
2006-08-26 21:29:10 +00:00
obrien
1d93f083bf Locate __FreeBSD_cc_version's value beside __FreeBSD__'s value to make it
easier to keep them in sync.
2005-10-30 19:04:47 +00:00