From 4702698c68be9023f5a7f4909c38f0d5ef5ef993 Mon Sep 17 00:00:00 2001 From: Nicolas Thill Date: Tue, 7 Jul 2009 02:34:58 +0000 Subject: [PATCH] add a config option to select the binary stripping method to use (between none, strip & sstrip) SVN-Revision: 16728 --- Config.in | 35 ++++++++++++++++++++++++++++++----- rules.mk | 9 ++++++++- toolchain/Config.in | 2 -- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/Config.in b/Config.in index 4d75896d8d..d7ce63e462 100644 --- a/Config.in +++ b/Config.in @@ -88,7 +88,7 @@ config ALL bool "Select all packages by default" default n -comment "Features" +comment "General build options" config CLEAN_IPKG bool @@ -97,6 +97,35 @@ config CLEAN_IPKG help This removes all ipkg data from the target directory before building the root fs +choice + prompt "Binary stripping method" + default USE_STRIP if USE_GLIBC || USE_EGLIBC + default USE_SSTRIP + help + Select the binary stripping method you wish to use. + + config NO_STRIP + bool "none" + help + This will install unstripped binaries (useful for native compiling/debugging) + + config USE_STRIP + bool "strip" + depends !DEBUG + help + This will install binaries stripped using strip from binutils + + + config USE_SSTRIP + bool "sstrip" + depends !DEBUG + depends !USE_GLIBC + depends !USE_EGLIBC + help + This will install binaries stripped using sstrip + +endchoice + comment "Package build options" config DEBUG @@ -113,10 +142,6 @@ config DEBUG_DIR This will install all compiled package binaries into build_dir/target-*/debug-*/, useful for cross-debugging via gdb/gdbserver -config NO_STRIP - bool "Install unstripped binary on the target (useful for native compiling/debugging)" - default n - comment "Kernel build options" config KERNEL_KALLSYMS diff --git a/rules.mk b/rules.mk index 15d62bc269..05609b9ac0 100644 --- a/rules.mk +++ b/rules.mk @@ -104,7 +104,6 @@ HOST_LDFLAGS:=-L$(STAGING_DIR_HOST)/lib TARGET_CC:=$(TARGET_CROSS)gcc TARGET_CXX:=$(if $(CONFIG_INSTALL_LIBSTDCPP),$(TARGET_CROSS)g++,no) -STRIP:=$(STAGING_DIR_HOST)/bin/sstrip PATCH:=$(SCRIPT_DIR)/patch-kernel.sh SED:=$(STAGING_DIR_HOST)/bin/sed -i -e CP:=cp -fpR @@ -137,7 +136,15 @@ TARGET_CONFIGURE_OPTS:= \ # strip an entire directory ifneq ($(CONFIG_NO_STRIP),) RSTRIP:=: + STRIP:=: else + ifneq ($(CONFIG_USE_STRIP),) + STRIP:=$(TARGET_CROSS)strip + else + ifneq ($(CONFIG_USE_SSTRIP),) + STRIP:=$(STAGING_DIR_HOST)/bin/sstrip + endif + endif RSTRIP:= \ NM="$(TARGET_CROSS)nm" \ STRIP="$(STRIP)" \ diff --git a/toolchain/Config.in b/toolchain/Config.in index 5b5ad37a1b..3ff0801369 100644 --- a/toolchain/Config.in +++ b/toolchain/Config.in @@ -54,12 +54,10 @@ choice config USE_EGLIBC bool "Use eglibc" depends !avr32 - select NO_STRIP config USE_GLIBC bool "Use glibc" depends !avr32 - select NO_STRIP config USE_UCLIBC bool "Use uClibc"