This is the mail archive of the mailing list for the glibc project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH] [BZ #17836]: -pg -pie doesn't work on x86-64

We compile gcrt1.o with -fPIC to support both "gcc -pg" and "gcc -pie -pg".
Tested on x86-64, i686 and x32.  OK for trunk after 2.21 is released?

	[BZ #17836]
	* csu/Makefile (extra-objs): Add gmon-start.o if not builing
	shared library.  Add gmon-start.os otherwise.
	($(objpfx)g$(start-installed-name)): Use $(objpfx)S%
	$(objpfx)gmon-start.os if builing shared library.
	($(objpfx)g$(static-start-installed-name)): Likewise.
 csu/Makefile | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/csu/Makefile b/csu/Makefile
index f7cf4af..9f0855a 100644
--- a/csu/Makefile
+++ b/csu/Makefile
@@ -32,7 +32,7 @@ aux	 = errno
 elide-routines.os = libc-tls
 static-only-routines = elf-init
 csu-dummies = $(filter-out $(start-installed-name),crt1.o Mcrt1.o)
-extra-objs = start.o gmon-start.o \
+extra-objs = start.o \
 	     $(start-installed-name) g$(start-installed-name) $(csu-dummies) \
 omit-deps = $(patsubst %.o,%,$(start-installed-name) g$(start-installed-name) \
@@ -46,9 +46,11 @@ tests := tst-empty tst-atomic tst-atomic-long
 tests-static := tst-empty
 ifeq (yes,$(build-shared))
-extra-objs += S$(start-installed-name)
+extra-objs += S$(start-installed-name) gmon-start.os
 install-lib += S$(start-installed-name)
 generated += start.os
+extra-objs += gmon-start.o
 ifneq ($(start-installed-name),$(static-start-installed-name))
@@ -95,10 +97,17 @@ endif
 # The profiling startfile is made by linking together the normal
 # startfile with gmon-start.o, which defines a constructor function
 # to turn on profiling code at startup.
+ifeq (yes,$(build-shared))
+$(addprefix $(objpfx),$(sort g$(start-installed-name) \
+			     g$(static-start-installed-name))): \
+  $(objpfx)g%: $(objpfx)S% $(objpfx)gmon-start.os
+	$(link-relocatable)
 $(addprefix $(objpfx),$(sort g$(start-installed-name) \
 			     g$(static-start-installed-name))): \
   $(objpfx)g%: $(objpfx)% $(objpfx)gmon-start.o
 # These extra files are sometimes expected by system standard linking
 # procedures, but we have nothing for them to do.  So compile empty files.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]