From: Dmitry V. Levin Date: Fri, 5 Jun 2015 22:20:13 +0000 (+0000) Subject: Prepare for restoration of .interp section in libpthread.so X-Git-Tag: upstream/2.30~5959 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ac63a0783cdee8454c84fc45f37330d98b6039e7;p=external%2Fglibc.git Prepare for restoration of .interp section in libpthread.so Make runtime-linker.h available outside $(elf-objpfx) by moving the file to $(common-objpfx) and the rules for it to Makerules. Tested for x86_64 and x86 (testsuite, and that no compiled code changed by the patch). * Makeconfig (+interp): Remove unused variable. * elf/Makefile ($(objpfx)interp.os): Define for [$(build-shared) = yes] only. Depend on $(common-objpfx)runtime-linker.h instead of $(elf-objpfx)runtime-linker.h. ($(elf-objpfx)runtime-linker.h): Rename to $(common-objpfx)runtime-linker.h and move ... * Makerules [$(build-shared) = yes]: ... here. * elf/interp.c: Include instead of . --- diff --git a/ChangeLog b/ChangeLog index 5f745e7..ca22729 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2015-06-10 Dmitry V. Levin + + * Makeconfig (+interp): Remove unused variable. + * elf/Makefile ($(objpfx)interp.os): Define for [$(build-shared) = yes] + only. Depend on $(common-objpfx)runtime-linker.h instead of + $(elf-objpfx)runtime-linker.h. + ($(elf-objpfx)runtime-linker.h): Rename to + $(common-objpfx)runtime-linker.h and move ... + * Makerules [$(build-shared) = yes]: ... here. + * elf/interp.c: Include instead of + . + 2015-06-09 Adhemerval Zanella * sysdeps/unix/sysv/linux/i386/gettimeofday.c diff --git a/Makeconfig b/Makeconfig index d32a0fd..0f4b549 100644 --- a/Makeconfig +++ b/Makeconfig @@ -596,7 +596,6 @@ endif # 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=crtend.o` -+interp = $(addprefix $(elf-objpfx),interp.os) csu-objpfx = $(common-objpfx)csu/ elf-objpfx = $(common-objpfx)elf/ diff --git a/Makerules b/Makerules index c79915f..ad9d74f 100644 --- a/Makerules +++ b/Makerules @@ -123,6 +123,16 @@ $(common-objpfx)libc-abis.stamp: $(..)scripts/gen-libc-abis \ common-generated += $(common-objpfx)libc-abis.h endif # avoid-generated +ifeq (yes,$(build-shared)) +$(common-objpfx)runtime-linker.h: $(common-objpfx)runtime-linker.stamp; @: +$(common-objpfx)runtime-linker.stamp: $(common-objpfx)config.make + $(make-target-directory) + echo '#define RUNTIME_LINKER "$(rtlddir)/$(rtld-installed-name)"' \ + > ${@:stamp=T} + $(move-if-change) ${@:stamp=T} ${@:stamp=h} + touch $@ +endif + # Make sure the subdirectory for object files gets created. ifdef objpfx ifeq (,$(wildcard $(objpfx).)) diff --git a/elf/Makefile b/elf/Makefile index f2a115a..871cb4f 100644 --- a/elf/Makefile +++ b/elf/Makefile @@ -365,16 +365,10 @@ $(objpfx)ld.so: $(objpfx)librtld.os $(ld-map) | $(AWK) '($$7 ~ /^UND(|EF)$$/ && $$1 != "0:" && $$4 != "REGISTER") { print; p=1 } END { exit p != 0 }' mv -f $@.new $@ +ifeq (yes,$(build-shared)) # interp.c exists just to get the runtime linker path into libc.so. -$(objpfx)interp.os: $(elf-objpfx)runtime-linker.h - -$(elf-objpfx)runtime-linker.h: $(elf-objpfx)runtime-linker.st; @: -$(elf-objpfx)runtime-linker.st: $(common-objpfx)config.make - $(make-target-directory) - echo '#define RUNTIME_LINKER "$(rtlddir)/$(rtld-installed-name)"' \ - > ${@:st=T} - $(move-if-change) ${@:st=T} ${@:st=h} - touch $@ +$(objpfx)interp.os: $(common-objpfx)runtime-linker.h +endif ifneq (ld.so,$(rtld-installed-name)) # Make sure ld.so.1 exists in the build directory so we can link diff --git a/elf/interp.c b/elf/interp.c index 5d4246a..422ea95e 100644 --- a/elf/interp.c +++ b/elf/interp.c @@ -16,7 +16,7 @@ License along with the GNU C Library; if not, see . */ -#include +#include const char __invoke_dynamic_linker__[] __attribute__ ((section (".interp"))) = RUNTIME_LINKER;