summaryrefslogtreecommitdiff
path: root/libc
diff options
context:
space:
mode:
Diffstat (limited to 'libc')
-rw-r--r--libc/Makefile27
1 files changed, 17 insertions, 10 deletions
diff --git a/libc/Makefile b/libc/Makefile
index 04f8e674e..a9a7e3244 100644
--- a/libc/Makefile
+++ b/libc/Makefile
@@ -36,6 +36,12 @@ else
CRTOBJS="../../lib/crt0.o"
endif
+ifeq ($(strip $(ADD_LIBGCC_FUNCTIONS)),y)
+LIBGCC_NEED=./tmp/libgcc-need.a
+else
+LIBGCC=
+endif
+
DIRS = misc pwd_grp stdio string termios inet signal stdlib sysdeps unistd
# Check if the target architecture has a version script for
@@ -54,17 +60,11 @@ ar-target:
$(LIBNAME): subdirs ar-target
-shared: $(TOPDIR)lib/$(LIBNAME)
- @rm -rf tmp
- @mkdir tmp
- $(AR) rv ./tmp/libgcc-need.a
- @(cd tmp && CC=$(CC) LD=$(LD) LDFLAGS=$(CPU_LDFLAGS-y) NM=$(NM) AR=$(AR) \
- LIBGCC=$(LIBGCC) CRTOBJS=$(CRTOBJS) \
- /bin/sh $(TOPDIR)../extra/scripts/get-needed-libgcc-objects.sh)
+shared: $(TOPDIR)lib/$(LIBNAME) $(LIBGCC_NEED)
$(LD) $(LDFLAGS) $(VERSION_SCRIPT) -soname=$(SHARED_MAJORNAME) -o $(SHARED_FULLNAME) \
- --whole-archive ./tmp/libgcc-need.a $(LIBNAME) --no-whole-archive \
- -init __uClibc_init $(TOPDIR)/libc/misc/internals/interp.o \
- $(LIBGCC)
+ --whole-archive $(LIBGCC_NEED) $(LIBNAME) \
+ $(TOPDIR)/libc/misc/internals/interp.o --no-whole-archive \
+ -init __uClibc_init $(LIBGCC)
@true #rm -rf tmp
install -d $(TOPDIR)lib
rm -f $(TOPDIR)lib/$(SHARED_FULLNAME)
@@ -72,6 +72,13 @@ shared: $(TOPDIR)lib/$(LIBNAME)
(cd ../lib && ln -sf $(SHARED_FULLNAME) libc.so);
(cd ../lib && ln -sf $(SHARED_FULLNAME) $(SHARED_MAJORNAME));
+$(LIBGCC_NEED): $(TOPDIR)lib/$(LIBNAME)
+ @rm -rf tmp
+ @mkdir tmp
+ $(AR) rv $@
+ @(cd tmp && CC=$(CC) LD=$(LD) LDFLAGS=$(CPU_LDFLAGS-y) NM=$(NM) AR=$(AR) \
+ LIBGCC=$(LIBGCC) CRTOBJS=$(CRTOBJS) \
+ /bin/sh $(TOPDIR)../extra/scripts/get-needed-libgcc-objects.sh)
halfclean:
@rm -f $(LIBNAME) uClibc_config.h