Changeset 25952


Ignore:
Timestamp:
2011-03-08T14:10:11+01:00 (6 years ago)
Author:
nbd
Message:

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

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/package/base-files/Makefile

    r25950 r25952  
    327327LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a) 
    328328LIBGCC_MAP=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map) 
    329 BUILD_LIBGCC:=$(if $(CONFIG_avr32)$(CONFIG_m68k),,$(PKG_BUILD_DIR)/libgcc_s.so.*) 
    330  
     329LIBGCC_SO=$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*) 
    331330ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) 
     331  BUILD_LIBGCC:=$(if $(CONFIG_avr32)$(CONFIG_m68k)$(CONFIG_powerpc),,$(PKG_BUILD_DIR)/libgcc_s.so.*) 
     332endif 
     333 
     334ifneq ($(BUILD_LIBGCC),) 
    332335  define Build/Compile/uClibc 
    333336        $(SCRIPT_DIR)/relink-lib.sh \ 
     
    361364                -Wl,-soname=libpthread.so.0 
    362365  endef 
    363   ifneq ($(BUILD_LIBGCC),) 
    364     define Build/Compile/libgcc 
     366  define Build/Compile/libgcc 
    365367        $(SCRIPT_DIR)/relink-lib.sh \ 
    366368                "$(TARGET_CROSS)" \ 
    367                 "$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*)" \ 
     369                "$(LIBGCC_SO)" \ 
    368370                "$(LIBGCC_A)" \ 
    369                 "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*))" \ 
     371                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(LIBGCC_SO))" \ 
    370372                -Wl,--version-script=$(LIBGCC_MAP) -Wl,-soname=libgcc_s.so.1 
     373  endef 
     374else 
     375  define Build/Compile/uClibc 
     376        $(CP) \ 
     377                $(TOOLCHAIN_DIR)/lib/libuClibc-*.so \ 
     378                $(TOOLCHAIN_DIR)/lib/libcrypt-*.so \ 
     379                $(TOOLCHAIN_DIR)/lib/libm-*.so \ 
     380                $(TOOLCHAIN_DIR)/lib/libpthread-*.so \ 
     381                $(PKG_BUILD_DIR)/ 
     382  endef 
     383  ifneq ($(LIBGCC_SO),) 
     384    define Build/Compile/libgcc 
     385        $(CP) $(LIBGCC_SO) $(PKG_BUILD_DIR)/ 
    371386    endef 
    372387  endif 
  • trunk/toolchain/gcc/patches/linaro/850-use_shared_libgcc.patch

    r25912 r25952  
    3636    uClibc is the default C library and whether -muclibc or -mglibc has 
    3737    been passed to change the default.  */ 
    38 --- a/gcc/config/rs6000/ppc-asm.h 
    39 +++ b/gcc/config/rs6000/ppc-asm.h 
    40 @@ -325,8 +325,7 @@ 
    41  FUNC_NAME(name): 
    42   
    43  #define HIDDEN_FUNC(name) \ 
    44 -  FUNC_START(name) \ 
    45 -  .hidden FUNC_NAME(name); 
    46 +  FUNC_START(name); 
    47   
    48  #define FUNC_END(name) \ 
    49  GLUE(.L,name): \ 
    5038--- a/gcc/mkmap-symver.awk 
    5139+++ b/gcc/mkmap-symver.awk 
     
    5745+    printf ("\n\t*;\n};\n"); 
    5846 } 
    59 --- a/libgcc/config/rs6000/t-ppccomm 
    60 +++ b/libgcc/config/rs6000/t-ppccomm 
    61 @@ -1,4 +1,4 @@ 
    62 -LIB2ADD_ST += crtsavfpr.S crtresfpr.S \ 
    63 +LIB2ADD += crtsavfpr.S crtresfpr.S \ 
    64    crtsavgpr.S crtresgpr.S \ 
    65    crtresxfpr.S crtresxgpr.S \ 
    66    e500crtres32gpr.S \ 
    6747--- a/libgcc/Makefile.in 
    6848+++ b/libgcc/Makefile.in 
     
    7656 ifneq (,$(vis_hide)) 
    7757  
     58--- a/gcc/config/rs6000/linux.h 
     59+++ b/gcc/config/rs6000/linux.h 
     60@@ -85,6 +85,8 @@ 
     61 #define USE_LD_AS_NEEDED 1 
     62 #endif 
     63  
     64+#define LIBGCC_SPEC "%{!static:%{!static-libgcc:-lgcc_s}} -lgcc" 
     65+ 
     66 #undef  TARGET_VERSION 
     67 #define TARGET_VERSION fprintf (stderr, " (PowerPC GNU/Linux)"); 
     68  
Note: See TracChangeset for help on using the changeset viewer.