From c101e27d547ee218337b2600e8158dedd0a064af Mon Sep 17 00:00:00 2001 From: Bruce Beare Date: Tue, 31 May 2011 10:40:20 -0700 Subject: [PATCH] Refactor Stripper. Allow a stripper other than SOSLIM to be specified Orig-Change-Id: I61137f5bb123dc5f610af9928ed3debdf85ba74d Signed-off-by: Bruce Beare --- core/combo/HOST_darwin-x86.mk | 2 ++ core/combo/TARGET_linux-arm.mk | 2 ++ core/combo/TARGET_linux-sh.mk | 4 +++- core/combo/TARGET_linux-x86.mk | 4 +++- core/combo/select.mk | 1 + core/config.mk | 1 - core/definitions.mk | 5 +---- core/dynamic_binary.mk | 4 ++-- 8 files changed, 14 insertions(+), 9 deletions(-) diff --git a/core/combo/HOST_darwin-x86.mk b/core/combo/HOST_darwin-x86.mk index 093ecbe21..121f89b03 100644 --- a/core/combo/HOST_darwin-x86.mk +++ b/core/combo/HOST_darwin-x86.mk @@ -45,6 +45,8 @@ HOST_NO_UNDEFINED_LDFLAGS := -Wl,-undefined,error HOST_CC := $(CC) HOST_CXX := $(CXX) HOST_AR := $(AR) +HOST_STRIP := $(STRIP) +HOST_STRIP_COMMAND = $(HOST_STRIP) --strip-debug $< -o $@ HOST_SHLIB_SUFFIX := .dylib HOST_JNILIB_SUFFIX := .jnilib diff --git a/core/combo/TARGET_linux-arm.mk b/core/combo/TARGET_linux-arm.mk index ae1997c4f..6139b676a 100644 --- a/core/combo/TARGET_linux-arm.mk +++ b/core/combo/TARGET_linux-arm.mk @@ -52,6 +52,8 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX) TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX) TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX) TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX) +TARGET_STRIP := $(HOST_OUT_EXECUTABLES)/soslim$(HOST_EXECUTABLE_SUFFIX) +TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip --shady --quiet $< --outfile $@ TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined diff --git a/core/combo/TARGET_linux-sh.mk b/core/combo/TARGET_linux-sh.mk index f373d21d7..cf945fec6 100644 --- a/core/combo/TARGET_linux-sh.mk +++ b/core/combo/TARGET_linux-sh.mk @@ -28,6 +28,8 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)c++$(HOST_EXECUTABLE_SUFFIX) TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX) TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX) TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX) +TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX) +TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@ TARGET_NO_UNDEFINED_LDFLAGS := -Wl,--no-undefined @@ -106,7 +108,7 @@ TARGET_CRTEND_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_android.o TARGET_CRTBEGIN_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/sobegin.o TARGET_CRTEND_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/soend.o -TARGET_STRIP_MODULE:=false +TARGET_STRIP_MODULE:=true TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm diff --git a/core/combo/TARGET_linux-x86.mk b/core/combo/TARGET_linux-x86.mk index 6629cbd81..d5bcba225 100644 --- a/core/combo/TARGET_linux-x86.mk +++ b/core/combo/TARGET_linux-x86.mk @@ -44,6 +44,8 @@ TARGET_CXX := $(TARGET_TOOLS_PREFIX)g++$(HOST_EXECUTABLE_SUFFIX) TARGET_AR := $(TARGET_TOOLS_PREFIX)ar$(HOST_EXECUTABLE_SUFFIX) TARGET_OBJCOPY := $(TARGET_TOOLS_PREFIX)objcopy$(HOST_EXECUTABLE_SUFFIX) TARGET_LD := $(TARGET_TOOLS_PREFIX)ld$(HOST_EXECUTABLE_SUFFIX) +TARGET_STRIP := $(TARGET_TOOLS_PREFIX)strip$(HOST_EXECUTABLE_SUFFIX) +TARGET_STRIP_COMMAND = $(TARGET_STRIP) --strip-debug $< -o $@ ifneq ($(wildcard $(TARGET_CC)),) TARGET_LIBGCC := \ @@ -97,7 +99,7 @@ TARGET_CRTEND_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_android.o TARGET_CRTBEGIN_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtbegin_so.o TARGET_CRTEND_SO_O := $(TARGET_OUT_STATIC_LIBRARIES)/crtend_so.o -# TARGET_STRIP_MODULE:=true +TARGET_STRIP_MODULE:=true TARGET_DEFAULT_SYSTEM_SHARED_LIBRARIES := libc libstdc++ libm diff --git a/core/combo/select.mk b/core/combo/select.mk index 797c57397..c8863424a 100644 --- a/core/combo/select.mk +++ b/core/combo/select.mk @@ -28,6 +28,7 @@ combo_os_arch := $($(combo_target)OS)-$($(combo_target)ARCH) $(combo_target)CC := $(CC) $(combo_target)CXX := $(CXX) $(combo_target)AR := $(AR) +$(combo_target)STRIP := $(STRIP) $(combo_target)BINDER_MINI := 0 diff --git a/core/config.mk b/core/config.mk index f8bee808a..d3a83f58f 100644 --- a/core/config.mk +++ b/core/config.mk @@ -232,7 +232,6 @@ EMMA_JAR := external/emma/lib/emma$(COMMON_JAVA_PACKAGE_SUFFIX) # Binary prelinker/compressor tools APRIORI := $(HOST_OUT_EXECUTABLES)/apriori$(HOST_EXECUTABLE_SUFFIX) LSD := $(HOST_OUT_EXECUTABLES)/lsd$(HOST_EXECUTABLE_SUFFIX) -SOSLIM := $(HOST_OUT_EXECUTABLES)/soslim$(HOST_EXECUTABLE_SUFFIX) # Deal with archaic version of bison on Mac OS X. ifeq ($(filter 1.28,$(shell $(YACC) -V)),) diff --git a/core/definitions.mk b/core/definitions.mk index 11cea3fb0..cd50f62d8 100644 --- a/core/definitions.mk +++ b/core/definitions.mk @@ -1086,13 +1086,10 @@ endef ## Commands for filtering a target executable or library ########################################################### -# Because of bug 743462 ("Prelinked image magic gets stripped -# by arm-elf-objcopy"), we have to use soslim to strip target -# binaries. define transform-to-stripped @mkdir -p $(dir $@) @echo "target Strip: $(PRIVATE_MODULE) ($@)" -$(hide) $(SOSLIM) --strip --shady --quiet $< --outfile $@ +$(hide) $(TARGET_STRIP_COMMAND) endef define transform-to-prelinked diff --git a/core/dynamic_binary.mk b/core/dynamic_binary.mk index cfbe7402e..0fa7647d2 100644 --- a/core/dynamic_binary.mk +++ b/core/dynamic_binary.mk @@ -75,7 +75,7 @@ ifeq ($(LOCAL_COMPRESS_MODULE_SYMBOLS),true) $(error Symbol compression not yet supported.) compress_output := $(intermediates)/COMPRESSED-$(LOCAL_BUILT_MODULE_STEM) -#TODO: write the real $(SOSLIM) rule. +#TODO: write the real $(STRIPPER) rule. #TODO: define a rule to build TARGET_SYMBOL_FILTER_FILE, and # make it depend on ALL_ORIGINAL_DYNAMIC_BINARIES. $(compress_output): $(compress_input) $(TARGET_SYMBOL_FILTER_FILE) | $(ACP) @@ -137,7 +137,7 @@ endif ifeq ($(LOCAL_STRIP_MODULE),true) # Strip the binary -$(strip_output): $(strip_input) | $(SOSLIM) +$(strip_output): $(strip_input) | $(TARGET_STRIP) $(transform-to-stripped) else # Don't strip the binary, just copy it. We can't skip this step -- 2.11.0