diff options
| -rw-r--r-- | package/base-files/Makefile | 27 | ||||
| -rw-r--r-- | toolchain/gcc/patches/linaro/850-use_shared_libgcc.patch | 31 | 
2 files changed, 32 insertions, 26 deletions
| diff --git a/package/base-files/Makefile b/package/base-files/Makefile index 07cc8b460..086dd32bd 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 diff --git a/toolchain/gcc/patches/linaro/850-use_shared_libgcc.patch b/toolchain/gcc/patches/linaro/850-use_shared_libgcc.patch index a9cc80bfe..5e33c9d4e 100644 --- a/toolchain/gcc/patches/linaro/850-use_shared_libgcc.patch +++ b/toolchain/gcc/patches/linaro/850-use_shared_libgcc.patch @@ -35,18 +35,6 @@   /* Determine which dynamic linker to use depending on whether GLIBC or      uClibc is the default C library and whether -muclibc or -mglibc has      been passed to change the default.  */ ---- a/gcc/config/rs6000/ppc-asm.h -+++ b/gcc/config/rs6000/ppc-asm.h -@@ -325,8 +325,7 @@ - FUNC_NAME(name): -  - #define HIDDEN_FUNC(name) \ --  FUNC_START(name) \ --  .hidden FUNC_NAME(name); -+  FUNC_START(name); -  - #define FUNC_END(name) \ - GLUE(.L,name): \  --- a/gcc/mkmap-symver.awk  +++ b/gcc/mkmap-symver.awk  @@ -132,5 +132,5 @@ @@ -56,14 +44,6 @@  -    printf ("\n  local:\n\t*;\n};\n");  +    printf ("\n\t*;\n};\n");   } ---- a/libgcc/config/rs6000/t-ppccomm -+++ b/libgcc/config/rs6000/t-ppccomm -@@ -1,4 +1,4 @@ --LIB2ADD_ST += crtsavfpr.S crtresfpr.S \ -+LIB2ADD += crtsavfpr.S crtresfpr.S \ -   crtsavgpr.S crtresgpr.S \ -   crtresxfpr.S crtresxgpr.S \ -   e500crtres32gpr.S \  --- a/libgcc/Makefile.in  +++ b/libgcc/Makefile.in  @@ -265,7 +265,7 @@ @@ -75,3 +55,14 @@   ifneq (,$(vis_hide)) +--- a/gcc/config/rs6000/linux.h ++++ b/gcc/config/rs6000/linux.h +@@ -85,6 +85,8 @@ + #define USE_LD_AS_NEEDED 1 + #endif +  ++#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc" ++ + #undef  TARGET_VERSION + #define TARGET_VERSION fprintf (stderr, " (PowerPC GNU/Linux)"); +  | 
