Commit Graph

38 Commits

Author SHA1 Message Date
marcel
3ba6deabb6 Build the "S" objects with the same name they get installed under.
That is, build crtbeginS.o and crtendS.o instead of crtbegin.So and
crtend.So. Remove the name substitution during install.

Obtained from:	Juniper Networks, Inc.
2012-05-17 20:38:01 +00:00
dim
bb98136ca2 Revert r234356 for now, as it leads to run-time problems on 32-bit
PowerPC.  Note this will break world.

Reported by:	andreast
Pointy hat to:	dim
2012-04-23 06:33:27 +00:00
dim
0b9f8d0983 Work around an issue on 32-bit PowerPC, where clang executable can get
too big, causing 'relocation truncated to fit' errors at link time.

Reviewed by:	nwhitehorn
2012-04-16 21:36:55 +00:00
imp
c3a399c4ba MFtbemd:
Prefer MACHNE_CPUARCH to MACHINE_ARCH in most contexts where you want
to test of all the CPUs of a given family conform.
2010-08-23 22:24:11 +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
kib
056723449a Often reported issue with newer ld is:
error in /usr/lib/crtendS.o(.eh_frame); no .eh_frame_hdr table will be created.

The issue is that crtend is compiled with unwind table, and also it
places the special CIE into the .eh_frame indicating the end of section,
that is located before generated unwind table. New ld has assertion that
verifies that closing CIE is indeed the last CIE, causing the crypting
message to be issued, and refusing to generate dwarf unwind.

Add -fno-asynchronous-unwind-tables to disable unwind table generation
for crtbegin/crtend. While there, disable omitting the frame pointer [1].

Requested by:	kan [1]
Reviewed by:	kan
MFC after:	2 weeks
2010-06-18 11:09:51 +00:00
ru
21f7074ade Fix build when WITH_SSP is set explicitly.
Submitted by:	Jeremie Le Hen
2009-02-21 15:04:31 +00:00
marcel
bf71ce19ad Revert previous commit. The prototype has been moved to unistd.h 2008-09-28 19:17:54 +00:00
marcel
3173a02aff Add -D_OSRELDATE_H to CFLAGS to prevent the declaration of
getosreldate() in assembler source files. We still get the
definition of __FreeBSD_version this way, because it's
outside the standard multiple-inclusion protection trick.

All this is specific to ia64.
2008-09-26 15:00:18 +00:00
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
ru
26a7166ba5 Remove one more alpha leftover. 2008-01-24 07:43:09 +00:00
ru
130dc0a6e8 Back out last commit -- it breaks sparc64 build which has
more than one .c file in SRCS.
2007-10-13 05:50:43 +00:00
obrien
c52e58f8fd Minor tweak to finding BEG/END source. 2007-10-12 18:14:41 +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
1cc0960868 Fix a problem mentioned in the previous revision in a different,
non-intrusive way.  This should also fix the PowerPC build that
broke due to this change.
2004-09-10 06:48:04 +00:00
obrien
3d2cd03af2 Add the .h files to the .o dependency lists so the .h's are created before
trying to build the .o's.
2004-09-09 20:47:58 +00:00
kan
482ec87e2d Bmake glue for GCC 3.4.2-prerelease. 2004-07-28 05:27:21 +00:00
ru
b37c7cc0e8 Just pass -DCRT_BEGIN as an option to mkdep(1), no need to override
the entire command.
2004-03-06 07:34:51 +00:00
kan
3d589bbdc6 Including dynamically generated osreldate.h wasn't such a good
idea after all.

Fix cross-builds and ia64 builds. gnu/lib/csu/Makefile is modified to
pre-include osreldate.h and gnu/usr.bin/cc/cc_tools/auto-host.h
will avoid including sys/param.h if __FreeBSD_version is already defined.
2003-07-13 02:41:48 +00:00
kan
d51504c4c5 Change CFLAGS to more closely follow options used when GCC is built
from stock FSF sources.
2003-07-11 05:27:23 +00:00
obrien
c8226cb013 Use ?= before someone brings it up. 2003-06-02 02:29:26 +00:00
obrien
31eeb1fbcf crtstuff needs isn't compilable with C99 on Sparc64, so set CSTD to gnu89. 2003-06-01 22:18:05 +00:00
ru
b286653bd0 Only cross-tools may use TARGET_ARCH/TARGET, everyone else
should use the normal MACHINE_ARCH/MACHINE instead.
2003-02-27 09:19:31 +00:00
ru
a8adf98c82 Drop support for COPY, -c has been the default mode of install(1)
for a long time now.

Approved by:	bde
2002-07-29 09:40:17 +00:00
obrien
0b1a4f9b10 Alpha has crtfastmath also. 2002-05-26 17:16:21 +00:00
obrien
1c24f917c1 Rev 1.12 broke make all' w/o a previous make depends'. 2002-05-26 17:09:31 +00:00
peter
877587ce74 Put on peril-sensitive sunglasses and risk touching gcc related build glue
again.  Try and deal with platforms that provide their own crtbegin/end asm
files (ia64 for example).  crtstuff.c does not actually work on ia64 since
libgcc.a doesn't have a few key support functions when built on ia64 so it
is compulsory to use crtbegin.asm and crtend.asm.

Reviewed by:	obrien
2002-05-17 07:55:08 +00:00
obrien
ff2300d7aa GCC 3.1 on PowerPC also has the crtsavres C Run Time file. 2002-05-17 03:04:47 +00:00
obrien
68038c862a Quote {CC} so ccache can be used. 2002-05-14 01:00:25 +00:00
ru
661f00368b Fixed CLEANFILES after bsd.lib.mk sweep. 2002-05-13 15:28:00 +00:00
ru
dc9ee40833 Major cleanup of bsd.lib.mk.
Get rid of the INTERNALSTATICLIB knob and just use plain INTERNALLIB.
INTERNALLIB now means to build static library only and don't install
anything.  Added a NOINSTALLLIB knob for libpam/modules.  To not
build any library at all, just do not set LIB.
2002-05-13 10:53:24 +00:00
ru
4204167002 NOLIB is gone; put INTERNALLIB back for now. 2002-05-12 16:35:34 +00:00
obrien
14eeafe476 There is no more NOLIB. 2002-05-12 13:49:14 +00:00
obrien
dfe16a29fa Bmake bits for Gcc 3.1.
Partially made possible by:	Wilko.Bulte@compaq.com
2002-05-10 08:54:50 +00:00
obrien
c860097cdc Style reorg. 2002-04-05 08:53:35 +00:00
ru
7af6b8b2fa Removed mentions of TARGET_ARCH from non-cross places. 2001-10-04 14:13:16 +00:00
obrien
0002ff665c GCC uses .asm files on the Alpha for crt{begin,end}.o rather than
crtstuff.c as they do for other platforms.

Moral support from:	jdp
2000-10-31 01:06:28 +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