diff options
author | Felix Fietkau <nbd@openwrt.org> | 2011-03-08 13:10:11 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2011-03-08 13:10:11 +0000 |
commit | e52b720870c23511cfc9323a784694c9dd24a0ab (patch) | |
tree | 7e618d0e20a26660f596f58c283cab7982e6c7d6 /package | |
parent | fa6e1dd37d33ffcba9d1fdf74d1c9f472a078da1 (diff) | |
download | mtk-20170518-e52b720870c23511cfc9323a784694c9dd24a0ab.zip mtk-20170518-e52b720870c23511cfc9323a784694c9dd24a0ab.tar.gz mtk-20170518-e52b720870c23511cfc9323a784694c9dd24a0ab.tar.bz2 |
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')
-rw-r--r-- | package/base-files/Makefile | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 07cc8b4..086dd32 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 |