Use crtbeginT.o to statically link programs
authorH.J. Lu <hjl.tools@gmail.com>
Wed, 5 Sep 2012 02:53:24 +0000 (19:53 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 6 Sep 2012 18:43:43 +0000 (11:43 -0700)
ChangeLog
Makeconfig
NEWS

index a48a5cb..08fa5a1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2012-09-06  H.J. Lu  <hongjiu.lu@intel.com>
+
+       [BZ #14544]
+       * Makeconfig (link-static-before-libc): Replace $(+prector)
+       with $(+prectorT).
+       (link-static-after-libc): Replace $(+postctor) with
+       $(+postctorT).
+       (link-bounded): Replace $(+prector)/$(+postctor) with
+       $(+prectorT)/$(+postctorT).
+       (+prectorT): New macro.
+       (+postctorT): Likewise.
+
 2012-09-06  Joseph Myers  <joseph@codesourcery.com>
 
        * stdlib/gen-tst-strtod-round.c: Include <assert.h>.
index 57f35f9..3ed9746 100644 (file)
@@ -445,13 +445,13 @@ ifndef +link-static
 +link-static-before-libc = $(CC) -nostdlib -nostartfiles -static -o $@ \
              $(sysdep-LDFLAGS) $(LDFLAGS) $(LDFLAGS-$(@F))  \
              $(addprefix $(csu-objpfx),$(static-start-installed-name)) \
-             $(+preinit) $(+prector) \
+             $(+preinit) $(+prectorT) \
              $(filter-out $(addprefix $(csu-objpfx),start.o \
                                                     $(start-installed-name))\
                           $(+preinit) $(link-extra-libs-static) \
                           $(common-objpfx)libc% $(+postinit),$^) \
              $(link-extra-libs-static) $(link-libc-static)
-+link-static-after-libc = $(+postctor) $(+postinit)
++link-static-after-libc = $(+postctorT) $(+postinit)
 +link-static = $(+link-static-before-libc) $(link-libc-static) \
               $(+link-static-after-libc)
 +link-static-tests = $(+link-static-before-libc) $(link-libc-static-tests) \
@@ -462,12 +462,12 @@ ifndef +link-bounded
 +link-bounded = $(CC) -nostdlib -nostartfiles -static -fbounded-pointers -o $@ \
              $(sysdep-LDFLAGS) $(LDFLAGS)  \
              $(addprefix $(csu-objpfx),b$(static-start-installed-name)) \
-             $(+preinit) $(+prector) \
+             $(+preinit) $(+prectorT) \
              $(filter-out $(addprefix $(csu-objpfx),start.ob \
                                                     $(start-installed-name))\
                           $(+preinit) $(link-extra-libs-bounded) \
                           $(common-objpfx)libc% $(+postinit),$^) \
-             $(link-extra-libs-bounded) $(link-libc-bounded) $(+postctor) $(+postinit)
+             $(link-extra-libs-bounded) $(link-libc-bounded) $(+postctorT) $(+postinit)
 endif
 ifndef config-LDFLAGS
 ifeq (yes,$(build-shared))
@@ -579,6 +579,9 @@ endif
 # Variants of the two previous definitions for linking PIE programs.
 +prectorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginS.o`
 +postctorS = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
+# Variants of the two previous definitions for statically linking programs.
++prectorT = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtbeginT.o`
++postctorT = `$(CC) $(sysdep-LDFLAGS) --print-file-name=crtendS.o`
 +interp = $(addprefix $(elf-objpfx),interp.os)
 csu-objpfx = $(common-objpfx)csu/
 elf-objpfx = $(common-objpfx)elf/
diff --git a/NEWS b/NEWS
index 85e6a9e..7016a64 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -13,7 +13,7 @@ Version 2.17
   13939, 13966, 14042, 14090, 14166, 14150, 14151, 14154, 14157, 14166,
   14173, 14195, 14237, 14252, 14283, 14298, 14303, 14307, 14328, 14331,
   14336, 14337, 14347, 14349, 14459, 14476, 14505, 14510, 14516, 14519,
-  14532, 14538
+  14532, 14538, 14544
 
 * Support for STT_GNU_IFUNC symbols added for s390 and s390x.
   Optimized versions of memcpy, memset, and memcmp added for System z10 and