From 6a461519b91a521a98e0be1bf272bcdac48c6f7e Mon Sep 17 00:00:00 2001 From: Eric Andersen Date: Fri, 11 Jan 2002 13:27:37 +0000 Subject: Scrub the way libraries are linked. Use ld, not gcc, to avoid chicken-and-egg problems when building gcc toolchains. -Erik --- Makefile | 5 +++-- Rules.mak | 4 ++-- ldso/libdl/Makefile | 5 +++-- libcrypt/Makefile | 5 +++-- libm/Makefile | 5 +++-- libpthread/Makefile | 5 +++-- libresolv/Makefile | 5 +++-- libutil/Makefile | 5 +++-- 8 files changed, 23 insertions(+), 16 deletions(-) diff --git a/Makefile b/Makefile index 38b81a0a1..d9c46baeb 100644 --- a/Makefile +++ b/Makefile @@ -180,8 +180,9 @@ install_dev: install -d $(PREFIX)$(DEVEL_PREFIX)/usr/lib install -d $(PREFIX)$(DEVEL_PREFIX)/include tar -chO include | tar -xC $(PREFIX)$(DEVEL_PREFIX); - chmod 755 `find $(PREFIX)$(DEVEL_PREFIX) -type d` - chmod 644 `find $(PREFIX)$(DEVEL_PREFIX)/include -name '*.h'` + -@for i in `find $(PREFIX)$(DEVEL_PREFIX) -type d` ; do \ + chmod -f 755 $$i; chmod -f 644 $$i/*.h; \ + done; (NAME=`whoami`; chown -R $$NAME.$$NAME $(PREFIX)$(DEVEL_PREFIX)) ifeq ($(strip $(HAVE_SHARED)),true) find lib/ -type l -name '*.so' -exec cp -a {} $(PREFIX)$(DEVEL_PREFIX)/lib ';' diff --git a/Rules.mak b/Rules.mak index 24ce6c229..70f22fe8c 100644 --- a/Rules.mak +++ b/Rules.mak @@ -80,13 +80,13 @@ NATIVE_CFLAGS=-O2 -Wall ifeq ($(strip $(DODEBUG)),true) CFLAGS += -g TARGET_CFLAGS += -g - LDFLAGS = -nostdlib -Wl,-warn-common + LDFLAGS = -shared -nostdlib --warn-common --warn-once -z combreloc TARGET_LDFLAGS = --uclibc-use-build-dir -Wl,-warn-common STRIPTOOL = /bin/true -Since_we_are_debugging else CFLAGS += -DNDEBUG #-fomit-frame-pointer TARGET_CFLAGS += -DNDEBUG #-fomit-frame-pointer - LDFLAGS = -s -nostdlib -Wl,-warn-common + LDFLAGS = -s -shared -nostdlib --warn-common --warn-once -z combreloc TARGET_LDFLAGS = --uclibc-use-build-dir -s -Wl,-warn-common endif ifeq ($(strip $(DOPIC)),true) diff --git a/ldso/libdl/Makefile b/ldso/libdl/Makefile index faaced6c0..cccd9e473 100644 --- a/ldso/libdl/Makefile +++ b/ldso/libdl/Makefile @@ -50,8 +50,9 @@ $(OBJS): %.o : %.c $(OBJ): Makefile shared: all - $(TARGET_CC) $(TARGET_LDFLAGS) -nostdlib -shared -o $(LIBDL_SHARED_FULLNAME) \ - -Wl,-soname,$(LIBDL_SHARED).$(MAJOR_VERSION) -Wl,--whole-archive $(LIBDL) -lc + $(LD) $(LDFLAGS) -o $(LIBDL_SHARED_FULLNAME) \ + -soname=$(LIBDL_SHARED).$(MAJOR_VERSION) \ + --whole-archive $(LIBDL); install -d $(TOPDIR)lib rm -f $(TOPDIR)lib/$(LIBDL_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBDL_SHARED).$(MAJOR_VERSION) install -m 644 $(LIBDL_SHARED_FULLNAME) $(TOPDIR)lib; diff --git a/libcrypt/Makefile b/libcrypt/Makefile index 4d6354b73..8d72741ef 100644 --- a/libcrypt/Makefile +++ b/libcrypt/Makefile @@ -48,8 +48,9 @@ $(OBJS): %.o : %.c $(OBJ): Makefile shared: all - $(TARGET_CC) $(TARGET_LDFLAGS) -nostdlib -shared -o $(LIBCRYPT_SHARED_FULLNAME) \ - -Wl,-soname,$(LIBCRYPT_SHARED).$(MAJOR_VERSION) -Wl,--whole-archive $(LIBCRYPT) -lc + $(LD) $(LDFLAGS) -o $(LIBCRYPT_SHARED_FULLNAME) \ + -soname=$(LIBCRYPT_SHARED).$(MAJOR_VERSION) \ + --whole-archive $(LIBCRYPT); install -d $(TOPDIR)lib rm -f $(TOPDIR)lib/$(LIBCRYPT_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBCRYPT_SHARED).$(MAJOR_VERSION) install -m 644 $(LIBCRYPT_SHARED_FULLNAME) $(TOPDIR)lib; diff --git a/libm/Makefile b/libm/Makefile index bc5d857c4..51d7be8f7 100644 --- a/libm/Makefile +++ b/libm/Makefile @@ -94,8 +94,9 @@ $(LIBM): ar-target shared: all @if [ -f $(LIBM) ] ; then \ set -x -e; \ - $(TARGET_CC) $(TARGET_LDFLAGS) -nostdlib -shared -o $(LIBM_SHARED_FULLNAME) \ - -Wl,-soname,$(LIBM_SHARED).$(MAJOR_VERSION) -Wl,--whole-archive $(LIBM) -lc; \ + $(LD) $(LDFLAGS) -o $(LIBM_SHARED_FULLNAME) \ + -soname=$(LIBM_SHARED).$(MAJOR_VERSION) \ + --whole-archive $(LIBM); \ install -d $(TOPDIR)lib; \ rm -f $(TOPDIR)lib/$(LIBM_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBM_SHARED).$(MAJOR_VERSION); \ install -m 644 $(LIBM_SHARED_FULLNAME) $(TOPDIR)lib; \ diff --git a/libpthread/Makefile b/libpthread/Makefile index f844ee82a..fa6e0e371 100644 --- a/libpthread/Makefile +++ b/libpthread/Makefile @@ -48,8 +48,9 @@ $(OBJS): %.o : %.c $(OBJ): Makefile shared: all - $(TARGET_CC) $(TARGET_LDFLAGS) -nostdlib -shared -o $(LIBPTHREAD_SHARED_FULLNAME) \ - -Wl,-soname,$(LIBPTHREAD_SHARED).$(MAJOR_VERSION) -Wl,--whole-archive $(LIBPTHREAD) -lc + $(LD) $(LDFLAGS) -o $(LIBPTHREAD_SHARED_FULLNAME) \ + -soname=$(LIBPTHREAD_SHARED).$(MAJOR_VERSION) \ + --whole-archive $(LIBPTHREAD); install -d $(TOPDIR)lib rm -f $(TOPDIR)lib/$(LIBPTHREAD_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBPTHREAD_SHARED).$(MAJOR_VERSION) install -m 644 $(LIBPTHREAD_SHARED_FULLNAME) $(TOPDIR)lib; diff --git a/libresolv/Makefile b/libresolv/Makefile index 44b02b58a..c494afc17 100644 --- a/libresolv/Makefile +++ b/libresolv/Makefile @@ -49,8 +49,9 @@ $(OBJS): %.o : %.c $(OBJ): Makefile shared: all - $(TARGET_CC) $(TARGET_LDFLAGS) -nostdlib -shared -o $(LIBRESOLV_SHARED_FULLNAME) \ - -Wl,-soname,$(LIBRESOLV_SHARED).$(MAJOR_VERSION) -Wl,--whole-archive $(LIBRESOLV) -lc + $(LD) $(LDFLAGS) -o $(LIBRESOLV_SHARED_FULLNAME) \ + -soname=$(LIBRESOLV_SHARED).$(MAJOR_VERSION) \ + --whole-archive $(LIBRESOLV); install -d $(TOPDIR)lib rm -f $(TOPDIR)lib/$(LIBRESOLV_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBRESOLV_SHARED).$(MAJOR_VERSION) install -m 644 $(LIBRESOLV_SHARED_FULLNAME) $(TOPDIR)lib; diff --git a/libutil/Makefile b/libutil/Makefile index 705f89fa1..f86f7c8f5 100644 --- a/libutil/Makefile +++ b/libutil/Makefile @@ -50,8 +50,9 @@ $(OBJS): %.o : %.c $(STRIPTOOL) -x -R .note -R .comment $*.o shared: all - $(TARGET_CC) $(TARGET_LDFLAGS) -nostdlib -shared -o $(LIBUTIL_SHARED_FULLNAME) \ - -Wl,-soname,$(LIBUTIL_SHARED).$(MAJOR_VERSION) -Wl,--whole-archive $(LIBUTIL) -lc + $(LD) $(LDFLAGS) -o $(LIBUTIL_SHARED_FULLNAME) \ + -soname=$(LIBUTIL_SHARED).$(MAJOR_VERSION) \ + --whole-archive $(LIBUTIL); install -d $(TOPDIR)lib rm -f $(TOPDIR)lib/$(LIBUTIL_SHARED_FULLNAME) $(TOPDIR)lib/$(LIBUTIL_SHARED).$(MAJOR_VERSION) install -m 644 $(LIBUTIL_SHARED_FULLNAME) $(TOPDIR)lib/; -- cgit v1.2.3