On 02/23/2011 10:56 PM, Bernhard Reutner-Fischer wrote:

>> +ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
>> define link.so
>>      $(Q)$(RM) $@ $@.$(2) $(dir $@)$(1)
>>      @$(disp_ld)
>>      $(Q)$(CC) $(LDFLAGS-$(notdir $@)) -Wl,-soname=$(notdir $@).$(2) \
>>              $(NOSTDLIB_CFLAGS) -o $(dir $@)$(1) $(START_FILE-$(notdir $@)) \
>>              -Wl,--whole-archive $(firstword $^) -Wl,--no-whole-archive \
>> +            $(LDFLAGS_DSBTINDEX-$(notdir $@)) \
>>              $(LIBS-$(notdir $@)) $(LIBGCC) $(END_FILE-$(notdir $@))
>>      $(Q)$(LN) -sf $(1) $@.$(2)
>>      $(Q)$(LN) -sf $(1) $@
>> endef
>> +else
>> +define link.so
>> +    $(Q)$(INSTALL) -d $(dir $@)
>> +    $(Q)$(RM) $@ $@.$(2) $(dir $@)$(1)
>> +    @$(disp_ld)
>> +    $(Q)$(CC) $(LDFLAGS-$(notdir $@)) -Wl,-soname=$(notdir $@).$(2) \
>> +            $(NOSTDLIB_CFLAGS) -o $(dir $@)$(1) $(START_FILE-$(notdir $@)) \
>> +            -Wl,--whole-archive $(firstword $^) -Wl,--no-whole-archive \
>> +            $(LIBS-$(notdir $@)) $(LIBGCC) $(END_FILE-$(notdir $@))
>> +    $(Q)$(LN) -sf $(1) $@.$(2)
>> +    $(Q)$(LN) -sf $(1) $@
>> +endef
>> +endif
> 
> Is this really necessary, can't you put the flags into
> $(LDFLAGS-$(notdir $@)) ?

Do you mean something like the patch below? I was trying to avoid ifdefs
in every Makefile.in.


Bernd
diff --git a/ldso/ldso/Makefile.in b/ldso/ldso/Makefile.in
index e71ae15..8c46b6a 100644
--- a/ldso/ldso/Makefile.in
+++ b/ldso/ldso/Makefile.in
@@ -35,6 +35,9 @@ LDFLAGS-$(UCLIBC_LDSO_NAME).so := $(LDFLAGS)
 else
 LDFLAGS-$(UCLIBC_LDSO_NAME).so := $(LDFLAGS_NOSTRIP) -Wl,-z,defs
 endif
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,--dsbt-index=1
+endif
 LDFLAGS-$(UCLIBC_LDSO_NAME).so += -Wl,-e,_start -Wl,-z,now -Wl,-Bsymbolic 
-Wl,--export-dynamic $(LDFLAG_SORT_COMMON) -Wl,--discard-locals 
$(LDFLAG_DISCARD_ALL) -Wl,--no-undefined
 
 ldso_FULL_NAME := $(UCLIBC_LDSO_NAME)-$(VERSION).so
diff --git a/ldso/libdl/Makefile.in b/ldso/libdl/Makefile.in
index 39db7a8..fd43045 100644
--- a/ldso/libdl/Makefile.in
+++ b/ldso/libdl/Makefile.in
@@ -20,6 +20,9 @@ endif
 CFLAGS-libdl.c := -DLDSO_ELFINTERP=\"$(TARGET_ARCH)/elfinterp.c\"
 
 LDFLAGS-libdl.so := $(LDFLAGS) -Wl,-fini,dl_cleanup
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-libdl.so += -Wl,--dsbt-index=3
+endif
 
 LIBS-libdl.so := $(LIBS) $(ldso)
 
diff --git a/libc/Makefile.in b/libc/Makefile.in
index dd666ac..2f2d126 100644
--- a/libc/Makefile.in
+++ b/libc/Makefile.in
@@ -16,6 +16,9 @@ VERSION_SCRIPT := -Wl,--version-script,$(VERSION_SCRIPT)
 endif
 
 LDFLAGS-libc.so := $(LDFLAGS) $(VERSION_SCRIPT) 
-Wl,-init,$(SYMBOL_PREFIX)__uClibc_init
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-libc.so += -Wl,--dsbt-index=2
+endif
 ifeq ($(UCLIBC_HAS_STDIO_FUTEXES),y)
 CFLAGS += -D__USE_STDIO_FUTEXES__
 endif
diff --git a/libcrypt/Makefile.in b/libcrypt/Makefile.in
index 3cbf9d0..7c9ea14 100644
--- a/libcrypt/Makefile.in
+++ b/libcrypt/Makefile.in
@@ -10,6 +10,9 @@ subdirs += libcrypt
 CFLAGS-libcrypt := -DNOT_IN_libc -DIS_IN_libcrypt $(SSP_ALL_CFLAGS)
 
 LDFLAGS-libcrypt.so := $(LDFLAGS)
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-libcrypt.so += -Wl,--dsbt-index=4
+endif
 
 LIBS-libcrypt.so := $(LIBS)
 
diff --git a/libm/Makefile.in b/libm/Makefile.in
index 384365c..9728a87 100644
--- a/libm/Makefile.in
+++ b/libm/Makefile.in
@@ -26,6 +26,9 @@ CFLAGS-libm := -DNOT_IN_libc -DIS_IN_libm $(SSP_ALL_CFLAGS)
 CFLAGS-libm += -D_IEEE_LIBM
 
 LDFLAGS-libm.so := $(LDFLAGS)
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-libm.so += -Wl,--dsbt-index=5
+endif
 
 LIBS-libm.so := $(LIBS)
 
diff --git a/libnsl/Makefile.in b/libnsl/Makefile.in
index 3aa05a0..103b6a0 100644
--- a/libnsl/Makefile.in
+++ b/libnsl/Makefile.in
@@ -10,6 +10,9 @@ subdirs += libnsl
 CFLAGS-libnsl := -DNOT_IN_libc -DIS_IN_libnsl $(SSP_ALL_CFLAGS)
 
 LDFLAGS-libnsl.so := $(LDFLAGS) $(call link.asneeded,-lc)
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-libnsl.so += -Wl,--dsbt-index=6
+endif
 
 LIBS-libnsl.so := $(LIBS)
 
diff --git a/libpthread/linuxthreads.old/Makefile.in 
b/libpthread/linuxthreads.old/Makefile.in
index d2e29c7..a22fe4f 100644
--- a/libpthread/linuxthreads.old/Makefile.in
+++ b/libpthread/linuxthreads.old/Makefile.in
@@ -18,6 +18,9 @@ LDFLAGS-libpthread.so := $(LDFLAGS_NOSTRIP) -Wl,-z,defs
 else
 LDFLAGS-libpthread.so := $(LDFLAGS)
 endif
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-libpthread.so += -Wl,--dsbt-index=10
+endif
 
 LIBS-libpthread.so := $(LIBS) $(ldso)
 
diff --git a/libresolv/Makefile.in b/libresolv/Makefile.in
index fb71b42..b23917b 100644
--- a/libresolv/Makefile.in
+++ b/libresolv/Makefile.in
@@ -10,6 +10,9 @@ subdirs += libresolv
 CFLAGS-libresolv := -DNOT_IN_libc -DIS_IN_libresolv $(SSP_ALL_CFLAGS)
 
 LDFLAGS-libresolv.so := $(LDFLAGS) $(call link.asneeded,-lc)
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-libresolv.so += -Wl,--dsbt-index=7
+endif
 
 LIBS-libresolv.so := $(LIBS)
 
diff --git a/librt/Makefile.in b/librt/Makefile.in
index 6eb508c..69b2810 100644
--- a/librt/Makefile.in
+++ b/librt/Makefile.in
@@ -10,6 +10,9 @@ subdirs += librt
 CFLAGS-librt := -DNOT_IN_libc -DIS_IN_librt $(SSP_ALL_CFLAGS)
 
 LDFLAGS-librt.so := $(LDFLAGS)
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-librt.so += -Wl,--dsbt-index=9
+endif
 LIBS-librt.so := $(LIBS)
 ifeq ($(UCLIBC_HAS_THREADS_NATIVE),y)
 LIBS-librt.so += $(top_builddir)lib/libdl.so $(top_builddir)lib/libpthread.so
diff --git a/libutil/Makefile.in b/libutil/Makefile.in
index 057d02d..e202bc6 100644
--- a/libutil/Makefile.in
+++ b/libutil/Makefile.in
@@ -10,6 +10,9 @@ subdirs += libutil
 CFLAGS-libutil := -DNOT_IN_libc -DIS_IN_libutil $(SSP_ALL_CFLAGS)
 
 LDFLAGS-libutil.so := $(LDFLAGS)
+ifeq ($(UCLIBC_FORMAT_DSBT_ELF),y)
+LDFLAGS-libutil.so += -Wl,--dsbt-index=8
+endif
 
 LIBS-libutil.so := $(LIBS)
 
_______________________________________________
uClibc mailing list
[email protected]
http://lists.busybox.net/mailman/listinfo/uclibc

Reply via email to