summaryrefslogtreecommitdiffstats
path: root/package/base-files
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
commite52b720870c23511cfc9323a784694c9dd24a0ab (patch)
tree7e618d0e20a26660f596f58c283cab7982e6c7d6 /package/base-files
parentfa6e1dd37d33ffcba9d1fdf74d1c9f472a078da1 (diff)
downloadmaster-31e0f0ae-e52b720870c23511cfc9323a784694c9dd24a0ab.tar.gz
master-31e0f0ae-e52b720870c23511cfc9323a784694c9dd24a0ab.tar.bz2
master-31e0f0ae-e52b720870c23511cfc9323a784694c9dd24a0ab.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
SVN-Revision: 25952
Diffstat (limited to 'package/base-files')
-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