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
