Commit Graph

43 Commits

Author SHA1 Message Date
ru
8735fdbd4c Enable GCC stack protection (aka Propolice) for userland:
- It is opt-out for now so as to give it maximum testing, but it may be
  turned opt-in for stable branches depending on the consensus.  You
  can turn it off with WITHOUT_SSP.
- WITHOUT_SSP was previously used to disable the build of GNU libssp.
  It is harmless to steal the knob as SSP symbols have been provided
  by libc for a long time, GNU libssp should not have been much used.
- SSP is disabled in a few corners such as system bootstrap programs
  (sys/boot), process bootstrap code (rtld, csu) and SSP symbols themselves.
- It should be safe to use -fstack-protector-all to build world, however
  libc will be automatically downgraded to -fstack-protector because it
  breaks rtld otherwise.
- This option is unavailable on ia64.

Enable GCC stack protection (aka Propolice) for kernel:
- It is opt-out for now so as to give it maximum testing.
- Do not compile your kernel with -fstack-protector-all, it won't work.

Submitted by:	Jeremie Le Hen <jeremie@le-hen.org>
2008-06-25 21:33:28 +00:00
kan
ebf45ed0c9 Update bmake glue to build GCC 4.2.
Also:
        Switch FreeBSD to use libgcc_s.so.1.

        Use dl_iterate_phdr to locate shared objects' exception frame
        info instead of depending on older register_frame_info machinery.
        This allows us to avoid depending on libgcc_s.so.1 in binaries
        that do not use exception handling directly. As an additional
        benefit it breaks circular libc <=> libgcc_s.so.1 dependency too.

        Build newly added libgomp.so.1 library, the runtime support
        bits for OpenMP.

        Build LGPLed libssp library. Our libc provides our own
        BSD-licensed SSP callbacks implementation, so this library
        is only built to benefit applications that have hadcoded
        knowledge of libssp.so and libssp_nonshared.a. When linked
        in from command line, these libraries override libc
        implementation.
2007-05-19 04:25:59 +00:00
ru
388e590f95 Reimplementation of world/kernel build options. For details, see:
http://lists.freebsd.org/pipermail/freebsd-current/2006-March/061725.html

The src.conf(5) manpage is to follow in a few days.

Brought to you by:	imp, jhb, kris, phk, ru (all bugs are mine)
2006-03-17 18:54:44 +00:00
kan
5a01d98239 Add libgcov, a runtime support library for binaries compiled for basic
block profiling.
2004-08-14 03:23:24 +00:00
peter
a51c9b6627 Initiate deorbit burn for the i386-only a.out related support. Moves are
under way to move the remnants of the a.out toolchain to ports.  As the
comment in src/Makefile said, this stuff is deprecated and one should not
expect this to remain beyond 4.0-REL.  It has already lasted WAY beyond
that.

Notable exceptions:
gcc - I have not touched the a.out generation stuff there.
ldd/ldconfig - still have some code to interface with a.out rtld.
old as/ld/etc - I have not removed these yet, pending their move to ports.
some includes - necessary for ldd/ldconfig for now.

Tested on: i386 (extensively), alpha
2002-09-17 01:49:00 +00:00
peter
f974920a72 Add some build glue for libstdc++. I'm not a C++ person, but this seems
to work at least for the non-hairy stuff.  The main wrinkle here is that
a whole mess of include files get installed and under different names.
An earlier version of this built a shadow include tree first in the obj
directory, but this depends on the 'make includes' functionality.

More tweaking is certainly going to be needed.
2002-05-29 00:45:51 +00:00
ru
b860787a18 Make sure to not yet build the GNU C++, but still allow
for the C++ progs to be built with e.g. an old compiler,
CXX=/usr/bin/c++, for the time being.
2002-05-15 16:29:45 +00:00
obrien
77caa62973 All platforms should be on equal footing now -- no special handling for
Sparc64 and IA-64.
2002-05-10 00:49:55 +00:00
peter
926eea6a54 Unbreak world (missing .else)
Submitted by:   fenner
Pointy hat to:  obrien
2002-04-08 22:56:28 +00:00
obrien
acb8992dc3 Some things don't compile on ia64 and sparc64 yet. 2002-04-08 20:36:39 +00:00
jhb
1b41773e7a Back out the previous revision for now. Instead, the current sparc64
Makefile changes are in the sparc64 p4 tree.
2002-01-07 19:27:50 +00:00
jhb
27f95e7d69 Don't build csu or libgcc on sparc64 for the time being. 2002-01-03 19:57:35 +00:00
dd
a12e9377b2 Enable the new libmp in the build, and disable libgmp and its
henchmen.
2001-07-29 08:58:22 +00:00
obrien
9ecd859376 Use a unified libgcc rather than a seperate one for threaded and
non-threaded programs.  This provides threaded programs with the
needed exception frame symbols.

parts submitted by:	Max Khon <fjoe@iclub.nsu.ru>
PR:	23252
2001-01-06 06:16:31 +00:00
obrien
0a36ecb3f7 Don't compile libgcc_r twice. 2000-11-25 13:04:08 +00:00
obrien
15c928f7db Don't build libgcc_r if "NOLIBC_R" defined. If you don't have a threads
safe libc, having a threads safe libgcc isn't of much use.
2000-11-25 01:25:35 +00:00
obrien
82c32a8a3f * Bring back the guts of crt{i,n}.S. This allows C++ exceptions to work
when using the egcs and gcc-devel ports, along with GCC built from stock
public FSF sources.  With out this change, FreeBSD will be removed from
the list of systems GCC 3.0 must be evaluated on before release.  With
the effort some of us put into getting FreeBSD on this list, we should
not turn this effort into a waste, else we might not be worth fighting
for in the future.  (note that Alpha and IA-64 versions of crt{i,n}.S
are needed)

* Switch from our own crt{begin,in} to those created from GCC's crtstuff.c.
This will allow us to switch to DWARF2 exceptions in the future, along with
staying in sync with any future GCC requirements.

* Break out our ELF branding bits into a seperate file.  Currently this
is now included by our crt1.c files (since this functionality was part of
our native crtbegin.c).  Later crtbrand.o will be merged in the creation
of crti.o.
2000-10-28 21:26:48 +00:00
obrien
57bfbf78be Add "NO_CXX" knob to match src/gnu/usr.bin/cc/Makefile. 2000-10-24 11:25:28 +00:00
obrien
93b81d3874 Make ObjC bits optional. NO_OBJC ==> don't need `em. 1999-11-27 21:52:55 +00:00
peter
289c0d262f $Id$ -> $FreeBSD$ 1999-08-27 23:37:10 +00:00
obrien
a1f564650c Hookup libg2c. (define NO_FORTRAN if you don't want it built) 1999-04-18 09:50:16 +00:00
obrien
52bb7ceaf6 Create a libgcc with POSIX threads support.
Submitted by:	Luoqi Chen <luoqi@chen.ml.org> (reorganized by me)
1999-04-14 00:24:03 +00:00
obrien
582be693c1 Minimum set of changes to switch from Gcc 2.7.2 (in contrib/gcc) to Egcs 1.1.2
(in contrib/egcs)
1999-04-04 16:36:35 +00:00
obrien
c901bebef2 Hookup libgcc at gnu/lib instead of gnu/usr.bin/cc
(libgcc was repository copied for me by Peter)
1999-03-31 06:30:40 +00:00
bde
38a5b98a25 Fixed munging of the SUBDIR list in rev.1.16-1.18. 1998-09-02 14:56:59 +00:00
dfr
c077a48b51 All libs build on alpha now. 1998-08-31 13:47:38 +00:00
jb
728d7b8b1a Just one of these libs left to port to alpha. 1998-02-19 07:30:06 +00:00
jb
35c19115cd Avoid building x86 specific libraries on Alpha. 1998-01-10 22:50:00 +00:00
peter
245ba20d12 Revert $FreeBSD$ to $Id$ 1997-02-22 15:48:31 +00:00
jkh
808a36ef65 Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!)
avoiding the Id-smashing problem which has plagued developers for so long.

Boy, I'm glad we're not using sup anymore.  This update would have been
insane otherwise.
1997-01-14 07:20:47 +00:00
peter
0aaab405e6 Add libstdc++ to the SUBDIR list 1996-10-04 08:44:26 +00:00
peter
e9bf0f92ea Add libobjc, the Objective-C runtime library. 1996-09-19 16:19:49 +00:00
phk
e00f61f832 gnumalloc is gone. 1996-02-11 18:16:11 +00:00
markm
68453fe892 Add libgmp. 1995-11-13 19:12:10 +00:00
markm
813c396d87 Add libmp 1995-11-12 15:03:50 +00:00
ache
dd627db19f Remove */doc 1995-01-16 17:53:43 +00:00
ache
b8bae0240d libregex/doc added 1995-01-11 04:34:23 +00:00
ache
364df36713 Add readline/doc to SUBDIR 1995-01-04 22:38:51 +00:00
ache
de4f96f192 libdialog added 1994-10-11 23:34:13 +00:00
rgrimes
68697bb86c Reenable libg++ 1994-09-09 15:10:37 +00:00
jkh
074642b5a5 Remove libg++ until we have a working one again.
Submitted by:	jkh
1994-08-07 20:58:04 +00:00
ache
34618ed686 libreadline added 1994-05-09 16:11:10 +00:00
rgrimes
b3fbe5df00 Update for new organization of gnu tree. 1994-01-30 01:03:16 +00:00