diff options
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | Makerules | 13 | ||||
-rw-r--r-- | iconvdata/extra-module.mk | 2 |
3 files changed, 16 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog index 7c8c2e2854..7b36252bb0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,12 @@ 2011-07-02 Roland McGrath <roland@hack.frob.com> + * Makerules (shlib-lds): New variable. + (shlib-lds-flags): New variable. + (build-shlib, build-moduile, build-module-asneeded): Use it. + ($(common-objpfx)libc.so): Use $(shlib-lds). + ($(extra-modules-build:%=$(objpfx)%.so)): Likewise. + * iconvdata/extra-module.mk ($(objpfx)$(mod).so): Likewise. + * elf/dynamic-link.h (elf_get_dynamic_info): Make asserts accept DT_FLAGS/DT_FLAGS_1 with zero flags. diff --git a/Makerules b/Makerules index 6b4b0e10e4..d3cb4cc106 100644 --- a/Makerules +++ b/Makerules @@ -514,8 +514,11 @@ $(common-objpfx)shlib.lds: $(common-objpfx)config.make $(..)Makerules mv -f $@T $@ common-generated += shlib.lds +shlib-lds = $(common-objpfx)shlib.lds +shlib-lds-flags = -T $(shlib-lds) + define build-shlib -$(build-shlib-helper) -o $@ -T $(common-objpfx)shlib.lds \ +$(build-shlib-helper) -o $@ $(shlib-lds-flags) \ $(csu-objpfx)abi-note.o $(build-shlib-objlist) endef else @@ -557,11 +560,11 @@ ifeq (yes,$(elf)) # binutils only position loadable notes into the first page for binaries, # not for shared objects define build-module -$(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ +$(build-module-helper) -o $@ $(shlib-lds-flags) \ $(csu-objpfx)abi-note.o $(build-module-objlist) endef define build-module-asneeded -$(build-module-helper) -o $@ -T $(common-objpfx)shlib.lds \ +$(build-module-helper) -o $@ $(shlib-lds-flags) \ $(csu-objpfx)abi-note.o \ -Wl,--as-needed $(build-module-objlist) -Wl,--no-as-needed endef @@ -618,7 +621,7 @@ $(common-objpfx)libc.so: $(elfobjdir)/soinit.os \ $(common-objpfx)libc_pic.os \ $(elfobjdir)/sofini.os \ $(elfobjdir)/interp.os $(elfobjdir)/ld.so \ - $(common-objpfx)shlib.lds + $(shlib-lds) $(build-shlib) ifeq ($(versioning),yes) $(common-objpfx)libc.so: $(common-objpfx)libc.map @@ -689,7 +692,7 @@ include $(patsubst %,$(..)extra-modules.mk,$(modules-names)) extra-modules-build := $(filter-out $(modules-names-nobuild),$(modules-names)) $(extra-modules-build:%=$(objpfx)%.so): $(objpfx)%.so: \ - $(objpfx)%.os $(common-objpfx)shlib.lds \ + $(objpfx)%.os $(shlib-lds) \ $(common-objpfx)libc.so $(common-objpfx)libc_nonshared.a $(build-module) endif diff --git a/iconvdata/extra-module.mk b/iconvdata/extra-module.mk index 163074fea4..43f4e12fb7 100644 --- a/iconvdata/extra-module.mk +++ b/iconvdata/extra-module.mk @@ -4,7 +4,7 @@ extra-modules-left := $(strip $(filter-out $(mod),$(extra-modules-left))) extra-objs := $(extra-objs) $(patsubst %,%.os,$($(mod)-routines)) $(objpfx)$(mod).so: $(addprefix $(objpfx),$(addsuffix .os,$($(mod)-routines)))\ - $(common-objpfx)shlib.lds + $(shlib-lds) $(build-module-asneeded) # Depend on libc.so so a DT_NEEDED is generated in the shared objects. |