gcc: move the optimized assembler helpers back into the static libgcc and skip relink...
[openwrt.git] / package / base-files / Makefile
index 27916f3..086dd32 100644 (file)
@@ -324,13 +324,14 @@ define Build/Prepare
        mkdir -p $(PKG_BUILD_DIR)
 endef
 
        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)
 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),)
 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)" \
   define Build/Compile/uClibc
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
@@ -338,20 +339,20 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a)" \
                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libuClibc-*.so))" \
                -Wl,-init,__uClibc_init -Wl,-soname=libc.so.0 \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a)" \
                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libuClibc-*.so))" \
                -Wl,-init,__uClibc_init -Wl,-soname=libc.so.0 \
-               $(PKG_BUILD_DIR)/libgcc_s.so.*
+               $(BUILD_LIBGCC)
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so)" \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt_pic.a)" \
                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so))" \
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so)" \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt_pic.a)" \
                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so))" \
-               $(PKG_BUILD_DIR)/libgcc_s.so.* \
+               $(BUILD_LIBGCC) \
                -Wl,-soname=libcrypt.so.0
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so)" \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libm_pic.a)" \
                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so))" \
                -Wl,-soname=libcrypt.so.0
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so)" \
                "$(wildcard $(TOOLCHAIN_DIR)/lib/libm_pic.a)" \
                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so))" \
-               $(PKG_BUILD_DIR)/libgcc_s.so.* \
+               $(BUILD_LIBGCC) \
                -Wl,-soname=libm.so.0
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
                -Wl,-soname=libm.so.0
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
@@ -359,25 +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 \
                "$(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 \
-               $(PKG_BUILD_DIR)/libgcc_s.so.* \
+               -ldl $(BUILD_LIBGCC) \
                -Wl,-soname=libpthread.so.0
   endef
                -Wl,-soname=libpthread.so.0
   endef
-
   define Build/Compile/libgcc
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
   define Build/Compile/libgcc
        $(SCRIPT_DIR)/relink-lib.sh \
                "$(TARGET_CROSS)" \
-               "$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*)" \
+               "$(LIBGCC_SO)" \
                "$(LIBGCC_A)" \
                "$(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
                -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
 
 endif
 
-define Build/Compile
-       $(call Build/Compile/Default)
+define Build/Compile/Default
        $(call Build/Compile/libgcc)
        $(call Build/Compile/$(LIBC))
 endef
        $(call Build/Compile/libgcc)
        $(call Build/Compile/$(LIBC))
 endef
+Build/Compile = $(Build/Compile/Default)
 
 define Package/base-files/install
        $(CP) ./files/* $(1)/
 
 define Package/base-files/install
        $(CP) ./files/* $(1)/
This page took 0.041002 seconds and 4 git commands to generate.