Changeset 25800


Ignore:
Timestamp:
2011-03-01T06:40:38+01:00 (5 years ago)
Author:
nbd
Message:

base-files: relink uclibc and libgcc libraries to remove leftovers of the statically linked initial libgcc
saves a few kb and gets rid of unused not exported functions as well
should also improve the reliability of mklibs

Location:
trunk
Files:
1 added
1 edited

Legend:

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

    r25568 r25800  
    328328endef 
    329329 
     330LIBGCC_A=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a) 
     331LIBGCC_MAP=$(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map) 
     332 
     333ifeq ($(CONFIG_EXTERNAL_TOOLCHAIN),) 
     334  define Build/Compile/uClibc 
     335        $(SCRIPT_DIR)/relink-lib.sh \ 
     336                "$(TARGET_CROSS)" \ 
     337                "$(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a)" \ 
     338                "$(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a)" \ 
     339                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libuClibc-*.so))" \ 
     340                -Wl,-init,__uClibc_init -Wl,-soname=libc.so.0 \ 
     341                $(PKG_BUILD_DIR)/libgcc_s.so.* 
     342        $(SCRIPT_DIR)/relink-lib.sh \ 
     343                "$(TARGET_CROSS)" \ 
     344                "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so)" \ 
     345                "$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt_pic.a)" \ 
     346                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libcrypt-*.so))" \ 
     347                $(PKG_BUILD_DIR)/libgcc_s.so.* \ 
     348                -Wl,-soname=libcrypt.so.0 
     349        $(SCRIPT_DIR)/relink-lib.sh \ 
     350                "$(TARGET_CROSS)" \ 
     351                "$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so)" \ 
     352                "$(wildcard $(TOOLCHAIN_DIR)/lib/libm_pic.a)" \ 
     353                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libm-*.so))" \ 
     354                $(PKG_BUILD_DIR)/libgcc_s.so.* \ 
     355                -Wl,-soname=libm.so.0 
     356        $(SCRIPT_DIR)/relink-lib.sh \ 
     357                "$(TARGET_CROSS)" \ 
     358                "$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread-*.so)" \ 
     359                "$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread_so.a)" \ 
     360                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libpthread-*.so))" \ 
     361                -Wl,-z,nodelete,-z,initfirst,-init=__pthread_initialize_minimal_internal \ 
     362                $(PKG_BUILD_DIR)/libgcc_s.so.* \ 
     363                -Wl,-soname=libpthread.so.0 
     364  endef 
     365 
     366  define Build/Compile/libgcc 
     367        $(SCRIPT_DIR)/relink-lib.sh \ 
     368                "$(TARGET_CROSS)" \ 
     369                "$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*)" \ 
     370                "$(LIBGCC_A)" \ 
     371                "$(patsubst $(TOOLCHAIN_DIR)/lib/%,$(PKG_BUILD_DIR)/%,$(wildcard $(TOOLCHAIN_DIR)/lib/libgcc_s.so.*))" \ 
     372                -Wl,--version-script=$(LIBGCC_MAP) -Wl,-soname=libgcc_s.so.1 
     373  endef 
     374endif 
     375 
    330376define Build/Compile 
    331377        $(call Build/Compile/Default) 
     378        $(call Build/Compile/libgcc) 
     379        $(call Build/Compile/$(LIBC)) 
    332380endef 
    333381 
     
    399447  define Package/libgcc/install 
    400448        $(INSTALL_DIR) $(1)/lib 
    401         $(CP) $(TOOLCHAIN_DIR)/lib/libgcc_s.so.* $(1)/lib/ 
     449        $(CP) $(PKG_BUILD_DIR)/libgcc_s.so.* $(1)/lib/ 
    402450  endef 
    403451 
     
    451499                        $(1)/lib/; \ 
    452500        done 
     501 
     502        $(CP) \ 
     503                $(PKG_BUILD_DIR)/libuClibc-* \ 
     504                $(PKG_BUILD_DIR)/libm-* \ 
     505                $(PKG_BUILD_DIR)/libcrypt-* \ 
     506                $(1)/lib/ 
    453507  endef 
    454508 
     
    460514        $(CP) $(filter-out %/libdl_pic.a %/libpthread_pic.a %/libresolv_pic.a,$(wildcard $(TOOLCHAIN_DIR)/lib/lib*.a)) $(1)/lib/ 
    461515        $(if $(wildcard $(TOOLCHAIN_DIR)/lib/libc_so.a),$(CP) $(TOOLCHAIN_DIR)/lib/libc_so.a $(1)/lib/libc_pic.a) 
    462         $(if $(wildcard $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map), \ 
    463                 $(CP) $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc_pic.a $(1)/lib/libgcc_s_pic.a; \ 
    464                 $(CP) $(TOOLCHAIN_DIR)/lib/gcc/*/*/libgcc.map $(1)/lib/libgcc_s_pic.map \ 
     516        $(if $(LIBGCC_MAP), \ 
     517                $(CP) $(LIBGCC_A) $(1)/lib/libgcc_s_pic.a; \ 
     518                $(CP) $(LIBGCC_MAP) $(1)/lib/libgcc_s_pic.map \ 
    465519        ) 
    466520  endef 
     
    470524        $(CP) \ 
    471525                $(TOOLCHAIN_DIR)/lib/libpthread.so.* \ 
    472                 $(TOOLCHAIN_DIR)/lib/libpthread-$(LIBC_SO_VERSION).so \ 
     526                $(PKG_BUILD_DIR)/libpthread-$(LIBC_SO_VERSION).so \ 
    473527                $(1)/lib/ 
    474528  endef 
Note: See TracChangeset for help on using the changeset viewer.