From 5b6693af786130f37f0b7cebe023f8004361ff7f Mon Sep 17 00:00:00 2001 From: Samuel Thibault Date: Wed, 8 Aug 2007 06:35:17 +0000 Subject: [PATCH] gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add -profile option, add pie support. 2007-08-08 Samuel Thibault * gcc/config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add -profile option, add pie support. (ENDFILE_SPEC): New spec. * gcc/config/gnu.h (LIB_SPEC): Add -profile option. From-SVN: r127290 --- gcc/ChangeLog | 7 +++++++ gcc/config/gnu.h | 2 +- gcc/config/i386/gnu.h | 18 ++++++++++++------ 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 8c4f0e1a537..15deba017eb 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2007-08-08 Samuel Thibault + + * gcc/config/i386/gnu.h (STARTFILE_SPEC): Use gcrt0.o in profile mode, add + -profile option, add pie support. + (ENDFILE_SPEC): New spec. + * gcc/config/gnu.h (LIB_SPEC): Add -profile option. + 2007-08-08 Samuel Thibault * gcc/config/i386/gnu.h (CPP_SPEC): Add -pthread option. diff --git a/gcc/config/gnu.h b/gcc/config/gnu.h index 93b94b1aa9c..b7fefa4427c 100644 --- a/gcc/config/gnu.h +++ b/gcc/config/gnu.h @@ -6,7 +6,7 @@ /* Default C library spec. Use -lbsd-compat for gcc -bsd. */ #undef LIB_SPEC -#define LIB_SPEC "%{pthread:-lpthread} %{bsd:-lbsd-compat} %{!p:%{!pg:-lc}}%{p:-lc_p}%{pg:-lc_p}" +#define LIB_SPEC "%{pthread:-lpthread} %{bsd:-lbsd-compat} %{pg|p|profile:-lc_p;:-lc}" /* Standard include directory. In GNU, "/usr" is a four-letter word. */ #undef STANDARD_INCLUDE_DIR diff --git a/gcc/config/i386/gnu.h b/gcc/config/i386/gnu.h index e303bce25fc..a2b4f24291c 100644 --- a/gcc/config/i386/gnu.h +++ b/gcc/config/i386/gnu.h @@ -26,13 +26,19 @@ %{static:-static}}" #undef STARTFILE_SPEC +#if defined HAVE_LD_PIE #define STARTFILE_SPEC \ - "%{!shared: \ - %{!static: \ - %{pg:gcrt1.o%s} %{!pg:%{p:gcrt1.o%s} %{!p:crt1.o%s}}} \ - %{static:crt0.o%s}} \ - crti.o%s %{static:crtbeginT.o%s}\ - %{!static:%{!shared:crtbegin.o%s} %{shared:crtbeginS.o%s}}" + "%{!shared: %{pg|p|profile:gcrt0.o%s;pie:Scrt1.o%s;static:crt0.o%s;:crt1.o%s}} \ + crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" +#else +#define STARTFILE_SPEC \ + "%{!shared: %{pg|p|profile:gcrt0.o%s;static:crt0.o%s;:crt1.o%s}} \ + crti.o%s %{static:crtbeginT.o%s;shared|pie:crtbeginS.o%s;:crtbegin.o%s}" +#endif + +#undef ENDFILE_SPEC +#define ENDFILE_SPEC \ + "%{shared|pie:crtendS.o%s;:crtend.o%s} crtn.o%s" /* FIXME: Is a Hurd-specific fallback mechanism necessary? */ #undef MD_UNWIND_SUPPORT -- 2.30.2