Compile gcrt1.o with -fPIC

We compile gcrt1.o with -fPIC to support both "gcc -pg" and "gcc -pie -pg".

	[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.
This commit is contained in:
H.J. Lu 2015-02-23 06:28:18 -08:00
parent 5122580325
commit d49499c128
3 changed files with 22 additions and 4 deletions

View File

@ -1,3 +1,12 @@
2015-02-23 H.J. Lu <hongjiu.lu@intel.com>
[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.
2015-02-23 Andreas Schwab <schwab@suse.de> 2015-02-23 Andreas Schwab <schwab@suse.de>
* elf/Makefile (CFLAGS-tst-audit2.c): Define. * elf/Makefile (CFLAGS-tst-audit2.c): Define.

4
NEWS
View File

@ -10,8 +10,8 @@ Version 2.22
* The following bugs are resolved with this release: * The following bugs are resolved with this release:
4719, 13064, 14094, 15319, 15467, 15790, 16560, 17269, 17569, 17588, 4719, 13064, 14094, 15319, 15467, 15790, 16560, 17269, 17569, 17588,
17792, 17912, 17932, 17944, 17949, 17964, 17965, 17967, 17969, 17978, 17792, 17836, 17912, 17932, 17944, 17949, 17964, 17965, 17967, 17969,
17987, 17991, 17996, 17998, 17999. 17978, 17987, 17991, 17996, 17998, 17999.
* Character encoding and ctype tables were updated to Unicode 7.0.0, using * Character encoding and ctype tables were updated to Unicode 7.0.0, using
new generator scripts contributed by Pravin Satpute and Mike FABIAN (Red new generator scripts contributed by Pravin Satpute and Mike FABIAN (Red

View File

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