base-files: link libpthread against libc
[openwrt/svn-archive/archive.git] / package / base-files / Makefile
index 086dd32bd8b4146fe367f8a680eef0fab4d638e5..60f9f83b5c18625d2f62098a67a3172953cb7059 100644 (file)
@@ -328,7 +328,9 @@ LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a)
 LIBGCC_MAP=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map)
 LIBGCC_SO=$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*)
 ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
-  BUILD_LIBGCC:=$(if $(CONFIG_avr32)$(CONFIG_m68k)$(CONFIG_powerpc),,$(PKG_BUILD_DIR)/libgcc_s.so.*)
+  ifneq ($(if $(CONFIG_USE_UCLIBC),$(CONFIG_GCC_VERSION_LINARO)),)
+    BUILD_LIBGCC:=$(if $(CONFIG_avr32)$(CONFIG_m68k)$(CONFIG_powerpc),,$(PKG_BUILD_DIR)/libgcc_s.so.*)
+  endif
 endif
 
 ifneq ($(BUILD_LIBGCC),)
@@ -360,7 +362,7 @@ ifneq ($(BUILD_LIBGCC),)
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread_so.a)" \
                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread-*.so))" \
                -Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal \
-               -ldl $(BUILD_LIBGCC) \
+               -ldl -lc $(BUILD_LIBGCC) \
                -Wl,-soname=libpthread.so.0
   endef
   define Build/Compile/libgcc
@@ -537,7 +539,10 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
        $(INSTALL_DIR) $(1)/lib
        $(CP) \
                $(TOOLCHAIN_DIR)/lib/libpthread.so.* \
-               $(PKG_BUILD_DIR)/libpthread-$(LIBC_SO_VERSION).so \
+               $(if $(BUILD_LIBGCC),\
+                       $(PKG_BUILD_DIR)/libpthread-$(LIBC_SO_VERSION).so, \
+                       $(TOOLCHAIN_DIR)/lib/libpthread-$(LIBC_SO_VERSION).so \
+               ) \
                $(1)/lib/
   endef