aboutsummaryrefslogtreecommitdiffstats
path: root/package
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2011-03-08 13:10:11 +0000
committerFelix Fietkau <nbd@openwrt.org>2011-03-08 13:10:11 +0000
commitc47460467c0aaa532080cb5cd1e600220e44f367 (patch)
tree8c8b9b744c6475692a2547845d1ede11ee4162d8 /package
parent0c70e832050647a239ca49b039bf96ccab2204d4 (diff)
downloadmaster-187ad058-c47460467c0aaa532080cb5cd1e600220e44f367.tar.gz
master-187ad058-c47460467c0aaa532080cb5cd1e600220e44f367.tar.bz2
master-187ad058-c47460467c0aaa532080cb5cd1e600220e44f367.zip
gcc: move the optimized assembler helpers back into the static libgcc and skip relinking for this arch. due to relocation constraints, the assembler functions cannot be in the shared libgcc and must always be linked in statically
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@25952 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r--package/base-files/Makefile27
1 files changed, 21 insertions, 6 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile
index 07cc8b460a..086dd32bd8 100644
--- a/package/base-files/Makefile
+++ b/package/base-files/Makefile
@@ -326,9 +326,12 @@ 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,14 +363,26 @@ ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),)
-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