aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog7
-rw-r--r--Makerules13
-rw-r--r--iconvdata/extra-module.mk2
3 files changed, 16 insertions, 6 deletions
diff --git a/ChangeLog b/ChangeLog
index 7c8c2e2..7b36252 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 6b4b0e1..d3cb4cc 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 163074f..43f4e12 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.