yann@1393: diff -durN gcc-4.4.0.orig/gcc/config/freebsd-spec.h gcc-4.4.0/gcc/config/freebsd-spec.h yann@1393: --- gcc-4.4.0.orig/gcc/config/freebsd-spec.h 2009-05-27 21:38:47.000000000 +0200 yann@1393: +++ gcc-4.4.0/gcc/config/freebsd-spec.h 2009-05-27 21:38:47.000000000 +0200 yann@1393: @@ -86,9 +86,10 @@ yann@1393: #define FBSD_STARTFILE_SPEC \ yann@1393: "%{!shared: \ yann@1393: %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} \ yann@1393: - %{!p:%{profile:gcrt1.o%s} \ yann@1393: - %{!profile:crt1.o%s}}}} \ yann@1393: - crti.o%s %{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}" yann@1393: + %{!p:%{profile:gcrt1.o%s} \ yann@1393: + %{!profile:crt1.o%s}}}} \ yann@1393: + crti.o%s \ yann@1393: + %{static:crtbeginT.o%s;shared:crtbeginS.o%s;:crtbegin.o%s}" yann@1393: yann@1393: /* Provide a ENDFILE_SPEC appropriate for FreeBSD. Here we tack on yann@1393: the magical crtend.o file (see crtstuff.c) which provides part of yann@1393: @@ -126,7 +127,8 @@ yann@1393: %{pg: -lc_p} \ yann@1393: }" yann@1393: #else yann@1393: -#if FBSD_MAJOR < 5 yann@1393: +#include yann@1393: +#if __FreeBSD_version < 500016 yann@1393: #define FBSD_LIB_SPEC " \ yann@1393: %{!shared: \ yann@1393: %{!pg: \ yann@1393: @@ -136,17 +138,34 @@ yann@1393: %{!pthread:-lc_p} \ yann@1393: %{pthread:-lc_r_p}} \ yann@1393: }" yann@1393: -#else yann@1393: +#elif __FreeBSD_version < 700022 yann@1393: #define FBSD_LIB_SPEC " \ yann@1393: %{!shared: \ yann@1393: %{!pg: %{pthread:-lpthread} -lc} \ yann@1393: %{pg: %{pthread:-lpthread_p} -lc_p} \ yann@1393: }" yann@1393: +#else yann@1393: +#define FBSD_LIB_SPEC " \ yann@1393: + %{!shared: \ yann@1393: + %{!pg: %{pthread:-lpthread} -lc} \ yann@1393: + %{pg: %{pthread:-lpthread_p} -lc_p}} \ yann@1393: + %{shared: \ yann@1393: + %{pthread:-lpthread} -lc} \ yann@1393: + " yann@1393: #endif yann@1393: #endif yann@1393: yann@1393: -#if FBSD_MAJOR < 6 yann@1393: +#if FBSD_MAJOR < 5 yann@1393: #define FBSD_DYNAMIC_LINKER "/usr/libexec/ld-elf.so.1" yann@1393: #else yann@1393: #define FBSD_DYNAMIC_LINKER "/libexec/ld-elf.so.1" yann@1393: #endif yann@1393: + yann@1393: +#if defined(HAVE_LD_EH_FRAME_HDR) yann@1393: +#define LINK_EH_SPEC "%{!static:--eh-frame-hdr} " yann@1393: +#endif yann@1393: + yann@1393: +/* Use --as-needed -lgcc_s for eh support. */ yann@1393: +#ifdef HAVE_LD_AS_NEEDED yann@1393: +#define USE_LD_AS_NEEDED 1 yann@1393: +#endif