On Tue, Feb 07, 2012 at 12:17:59PM +0100, Tijl Coosemans wrote: > Everything still works on FreeBSD.
After discussion about this on IRC Richard expressed his preference for the following variant instead: 2012-02-07 Jakub Jelinek <ja...@redhat.com> * config/freebsd-spec.h: Add comment about what macros can be defined in this header. (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): Don't define here. * config/freebsd.h (LINK_EH_SPEC, LINK_SSP_SPEC, USE_LD_AS_NEEDED): But here instead. --- gcc/config/freebsd-spec.h.jj 2012-01-30 00:10:01.000000000 +0100 +++ gcc/config/freebsd-spec.h 2012-02-07 12:44:47.000000000 +0100 @@ -134,15 +134,6 @@ is built with the --enable-threads confi #define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1" #endif -#if defined(HAVE_LD_EH_FRAME_HDR) -#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " -#endif - -#ifdef TARGET_LIBC_PROVIDES_SSP -#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared}" -#endif - -/* Use --as-needed -lgcc_s for eh support. */ -#ifdef HAVE_LD_AS_NEEDED -#define USE_LD_AS_NEEDED 1 -#endif +/* NOTE: The freebsd-spec.h header is included also for various + non-FreeBSD powerpc targets, thus it should never define macros + other than FBSD_* prefixed ones, or USING_CONFIG_FREEBSD_SPEC. */ --- gcc/config/freebsd.h.jj 2010-11-26 18:39:09.000000000 +0100 +++ gcc/config/freebsd.h 2012-02-07 12:45:34.497798123 +0100 @@ -1,6 +1,6 @@ /* Base configuration file for all FreeBSD targets. Copyright (C) 1999, 2000, 2001, 2007, 2008, 2009, - 2010 Free Software Foundation, Inc. + 2010, 2011, 2012 Free Software Foundation, Inc. This file is part of GCC. @@ -45,6 +45,19 @@ along with GCC; see the file COPYING3. #undef LIB_SPEC #define LIB_SPEC FBSD_LIB_SPEC +#if defined(HAVE_LD_EH_FRAME_HDR) +#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " +#endif + +#ifdef TARGET_LIBC_PROVIDES_SSP +#define LINK_SSP_SPEC "%{fstack-protector|fstack-protector-all:-lssp_nonshared}" +#endif + +/* Use --as-needed -lgcc_s for eh support. */ +#ifdef HAVE_LD_AS_NEEDED +#define USE_LD_AS_NEEDED 1 +#endif + /************************[ Target stuff ]***********************************/ /* All FreeBSD Architectures support the ELF object file format. */ Jakub