27 Commits

Author SHA1 Message Date
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
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
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
kan
ce13d58119 Update configuration files for GCC 4.2. 2007-05-19 02:30:20 +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
obrien
6678b4722a Catch up with FreeBSD 7. 2005-10-29 09:13:31 +00:00
rodrigc
cb365428c9 Submitted following patch to FSF GCC:
* freebsd-spec.h (FBSD_TARGET_OS_CPP_BUILTINS):
	  Use builtin_define_with_int_value() instead of
	  adding a new check for every new major FreeBSD version.

Motivated by:	simon
Discussed with:	obrien, kan
2005-10-27 23:57:55 +00:00
kan
17d0aa6eb2 Merge conflicts for GCC 3.4.4. 2005-06-03 04:02:20 +00:00
obrien
84cd481c4b Enter the long awaited start of FreeBSD 6.0! 2004-08-21 03:58:39 +00:00
kan
2d2a84288c Update for GCC 3.4.2. Bump __FreeBSD_cc_version_ and use correct ELF
interpreter on FreeBSD 5.x series.
2004-07-28 04:31:47 +00:00
deischen
8eb1230107 Make gcc -pthread link to -lpthread instead of -lc_r. 2004-01-30 12:14:19 +00:00
deischen
5563abd4bb Remove a comment stating that -pthread isn't supported. 2003-11-10 18:52:57 +00:00
deischen
4d5be91935 The ports freeze may take longer than anticipated. Instead of
waiting for it to be delayed, temporarily back out the -pthread
removal until the freeze is lifted.

Freeze possibly taking longer than necessary:	will
Requested by:	kris
2003-09-21 07:59:16 +00:00
obrien
67fad005f3 Bump __FreeBSD_cc_version for (1) 5.1 (post-mortem) (2) -pthread changes. 2003-09-12 19:19:10 +00:00
deischen
6a3d4cfc63 Remove the -pthread option (in FreeBSD versions 500016 and greater) as
threatened over 2 years ago.

Why?  -pthread was a hack to prevent linking to both libc and libc_r
and became unecessary when libc_r became free of libc.  Now that we
have multiple thread libraries from which to choose, it is more confusing
because you can't link to more than one threads library at a time.
Things like autoconf and libtool sometimes detect -pthread and
also -lc_r, and in conjunction with ports usage of ${PTHREAD_LIBS},
really wacky things ensue when PTHREAD_LIBS is set to another
threads library.  This might not be so bad if the build broke
when this happens, but it doesn't and you don't know it until
funny things happen when you run the application (or use an
affected library).

Reviewed by:    obrien
2003-09-03 15:44:34 +00:00
deischen
591fec46c4 Backout rev 1.10.
Requested by:	obrien
2003-09-01 05:31:33 +00:00
deischen
2ab4d8bc05 Remove -pthread as a compiler option. It was deprecated 2.5 years
ago, but not removed.

No reply from:	threads, kan, obrien
2003-08-31 22:38:52 +00:00
obrien
f02f882874 Reformat FBSD_{START,END}FILE_SPEC to FSF coding standards.
Use these in our i386, amd64, and alpha platforms.
2003-08-24 16:56:31 +00:00
kan
8b2cc597a6 Update for GCC 3.3.1-prerelease. 2003-07-11 05:09:19 +00:00
obrien
a6fad761ac Add spaces around FBSD_ENDFILE_SPEC as it is used in string concatenation.
Approved by:	re(bmah)
2002-12-03 04:31:19 +00:00
obrien
fa7971ab70 Remove our custom mixed ELF/a.out support. This means the base compiler
now only produce ELF objects.  It also makes us closer to stock GCC, and
simplifies the set of changes we still need from stock GCC on every import.

Applauded by:	peter
Approved by:	re
2002-11-26 18:25:20 +00:00
obrien
98ab8a7d26 Remove some debugging cruft I accidently committed with rev 1.4. 2002-09-12 16:10:21 +00:00
obrien
77b0cabe7f Try to detect support for the `long long' type so that ANSI-C[89] clean
code will know not to try to use `long long'.
Unfortunately the GCC spec parser will not allow us to properly detect the
"iso9899:1990" and "iso9899:199409" forms of the acceptable -std= arguments,
because of the ':' in the -std argument.  :-(  I have left them in the spec
as a place holder in hopes someone knows a way to make the detection of
them work.

Desired by:	wollman
2002-09-12 16:05:56 +00:00
obrien
d630de954b Bump __FreeBSD_cc_version for gcc 3.1-prerelease -> 3.2.1-snap upgrade. 2002-09-09 06:56:29 +00:00
obrien
f4aad0fe00 Add tweaks needed when using as the system compiler. 2002-05-10 19:05:07 +00:00
obrien
c9ab9ae440 Enlist the FreeBSD-CURRENT users as testers of what is to become Gcc 3.1.0.
These bits are taken from the FSF anoncvs repo on 1-Feb-2002 08:20 PST.
2002-02-01 18:16:02 +00:00