gcc: move the optimized assembler helpers back into the static libgcc and skip relink...
[openwrt.git] / package / base-files / Makefile
index 1d1a07f..086dd32 100644 (file)
@@ -324,14 +324,14 @@ define Build/Prepare
        mkdir -p $(PKG_BUILD_DIR)
 endef
 
-define Build/Compile/Default
-endef
-
 LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a)
 LIBGCC_MAP=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map)
-BUILD_LIBGCC:=$(if $(CONFIG_avr32)$(CONFIG_m68k),,$(PKG_BUILD_DIR)/libgcc_s.so.*)
-
+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.*)
+endif
+
+ifneq ($(BUILD_LIBGCC),)
   define Build/Compile/uClibc
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
@@ -360,26 +360,38 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
                "$(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 \
-               $(BUILD_LIBGCC) \
+               -ldl $(BUILD_LIBGCC) \
                -Wl,-soname=libpthread.so.0
   endef
-  ifneq ($(BUILD_LIBGCC),)
-    define Build/Compile/libgcc
+  define Build/Compile/libgcc
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
-               "$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*)" \
+               "$(LIBGCC_SO)" \
                "$(LIBGCC_A)" \
-               "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*))" \
+               "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(LIBGCC_SO))" \
                -Wl,--version-script=$(LIBGCC_MAP) -Wl,-soname=libgcc_s.so.1
+  endef
+else
+  define Build/Compile/uClibc
+       $(CP) \
+               $(TOOLCHAIN_DIR)/lib/libuClibc-*.so \
+               $(TOOLCHAIN_DIR)/lib/libcrypt-*.so \
+               $(TOOLCHAIN_DIR)/lib/libm-*.so \
+               $(TOOLCHAIN_DIR)/lib/libpthread-*.so \
+               $(PKG_BUILD_DIR)/
+  endef
+  ifneq ($(LIBGCC_SO),)
+    define Build/Compile/libgcc
+       $(CP) $(LIBGCC_SO) $(PKG_BUILD_DIR)/
     endef
   endif
 endif
 
-define Build/Compile
-       $(call Build/Compile/Default)
+define Build/Compile/Default
        $(call Build/Compile/libgcc)
        $(call Build/Compile/$(LIBC))
 endef
+Build/Compile = $(Build/Compile/Default)
 
 define Package/base-files/install
        $(CP) ./files/* $(1)/
This page took 0.021084 seconds and 4 git commands to generate.