From b0fece468986e98124dfd59e24222724cf7c96fa Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Wed, 17 Mar 2010 00:21:57 +0100 Subject: tools: move sstrip to the binary utilities menu sstrip is now alone in its 'tools' menu, and we will probably never gain any other 'tool'. Besides, sstrip is just strip, but a little bit more agressive, so it deserves going to the 'binary utilities' menu. diff --git a/config/binutils.in b/config/binutils.in index a0fe0ef..f09bd11 100644 --- a/config/binutils.in +++ b/config/binutils.in @@ -40,5 +40,6 @@ endchoice source config/binutils/binutils.in source config/binutils/elf2flt.in +source config/binutils/sstrip.in endmenu diff --git a/config/binutils/sstrip.in b/config/binutils/sstrip.in new file mode 100644 index 0000000..8d643e4 --- /dev/null +++ b/config/binutils/sstrip.in @@ -0,0 +1,50 @@ +# Configuration file for sstrip tool facility +# depends on ! BACKEND + +comment "sstrip" + +config SSTRIP + bool + prompt "sstrip" + help + The sstrip utility, to maximise the striping of ELF binaries + (executables and libraries). + +if SSTRIP + +choice + bool + prompt "Use sstrip from:" + +config SSTRIP_BUILDROOT + bool + prompt "buildroot" + help + Buildroot version, forked off the original from ELFkickers. This one + is somewhat maintained by the buildroot guys. + Supports big-endian systems. + +config SSTRIP_ELFKICKERS + bool + prompt "ELFkickers (OBSOLETE)" + depends on OBSOLETE + help + The original, ageing version, of sstrip from ELFkickers. + Fully functional, but not maintained anymore. + +endchoice + +config SSTRIP_FROM + string + default "ELFkickers" if SSTRIP_ELFKICKERS + default "buildroot" if SSTRIP_BUILDROOT + +if SSTRIP_ELFKICKERS + +config SSTRIP_ELFKICKERS_VERSION + string + default "2.0a" + +endif + +endif # SSTRIP diff --git a/config/config.in b/config/config.in index e4f1de9..d7f3bc7 100644 --- a/config/config.in +++ b/config/config.in @@ -6,6 +6,5 @@ source config/binutils.in source config/cc.in source config/libc.in source config/debug.in -source config/tools.in source config/companion_libs.in source config/companion_tools.in diff --git a/config/config.mk b/config/config.mk index 6945d09..f8265b3 100644 --- a/config/config.mk +++ b/config/config.mk @@ -19,14 +19,12 @@ KERNEL_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/conf CC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/cc/*.in)) LIBC_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/libc/*.in)) DEBUG_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/debug/*.in)) -TOOL_CONFIG_FILES = $(patsubst $(CT_LIB_DIR)/%,%,$(wildcard $(CT_LIB_DIR)/config/tools/*.in)) # Build the list of generated config files GEN_CONFIG_FILES = config.gen/arch.in \ config.gen/kernel.in \ config.gen/cc.in \ config.gen/libc.in \ - config.gen/tools.in \ config.gen/debug.in # ... and how to access them: # Generated files depends on config.mk (this file) because it has the @@ -57,7 +55,6 @@ KERNELS = $(patsubst config/kernel/%.in,%,$(KERNEL_CONFIG_FILES)) CCS = $(patsubst config/cc/%.in,%,$(CC_CONFIG_FILES)) LIBCS = $(patsubst config/libc/%.in,%,$(LIBC_CONFIG_FILES)) DEBUGS = $(patsubst config/debug/%.in,%,$(DEBUG_CONFIG_FILES)) -TOOLS = $(patsubst config/tools/%.in,%,$(TOOL_CONFIG_FILES)) #----------------------------------------------------------- # Helper functions to ease building generated config files @@ -116,12 +113,11 @@ endef # the given list, source-ing the associated files conditionnaly: # $1 : destination file # $2 : name of entries family (eg. Tools, Debug...) -# $3 : prefix for the menu entries (eg. TOOL, DEBUG) +# $3 : prefix for the menu entries (eg. DEBUG) # $4 : base directory containing config files -# $5 : list of config entries (eg. for tools: "libelf sstrip"..., and for -# debug: "dmalloc duma gdb"...) -# Example to build the tools generated config file: -# $(call build_gen_menu_in,config.gen/tools.in,Tools,TOOL,config/tools,$(TOOLS)) +# $5 : list of config entries (eg. for debug: "dmalloc duma gdb"...) +# Example to build the generated debug config file: +# $(call build_gen_menu_in,config.gen/debug.in,Debug,DEBUG,config/debug,$(DEBUGS)) define build_gen_menu_in @$(ECHO) ' IN $(1)' $(SILENT)(echo "# $(2) facilities menu"; \ @@ -160,9 +156,6 @@ config.gen/cc.in: $(CC_CONFIG_FILES) config.gen/libc.in: $(LIBC_CONFIG_FILES) $(call build_gen_choice_in,$@,C library,LIBC,config/libc,$(LIBCS)) -config.gen/tools.in: $(TOOL_CONFIG_FILES) - $(call build_gen_menu_in,$@,Tools,TOOL,config/tools,$(TOOLS)) - config.gen/debug.in: $(DEBUG_CONFIG_FILES) $(call build_gen_menu_in,$@,Debug,DEBUG,config/debug,$(DEBUGS)) diff --git a/config/tools.in b/config/tools.in deleted file mode 100644 index fe73609..0000000 --- a/config/tools.in +++ /dev/null @@ -1,3 +0,0 @@ -menu "Tools facilities" -source config.gen/tools.in -endmenu diff --git a/config/tools/sstrip.in b/config/tools/sstrip.in deleted file mode 100644 index 7968799..0000000 --- a/config/tools/sstrip.in +++ /dev/null @@ -1,42 +0,0 @@ -# Configuration file for sstrip tool facility -# depends on ! BACKEND - -config TOOL_sstrip - help - The sstrip utility, to maximise the striping of ELF binaries - (executables and libraries). - -choice - bool - prompt "Use sstrip from:" - -config SSTRIP_BUILDROOT - bool - prompt "buildroot" - help - Buildroot version, forked off the original from ELFkickers. This one - is somewhat maintained by the buildroot guys. - Supports big-endian systems. - -config SSTRIP_ELFKICKERS - bool - prompt "ELFkickers (OBSOLETE)" - depends on OBSOLETE - help - The original, ageing version, of sstrip from ELFkickers. - Fully functional, but not maintained anymore. - -endchoice - -config SSTRIP_FROM - string - default "ELFkickers" if SSTRIP_ELFKICKERS - default "buildroot" if SSTRIP_BUILDROOT - -if SSTRIP_ELFKICKERS - -config SSTRIP_ELFKICKERS_VERSION - string - default "2.0a" - -endif diff --git a/scripts/build/binutils/sstrip.sh b/scripts/build/binutils/sstrip.sh new file mode 100644 index 0000000..56ed36f --- /dev/null +++ b/scripts/build/binutils/sstrip.sh @@ -0,0 +1,60 @@ +# This will build and install sstrip to run on host and sstrip target files + +do_tools_sstrip_get() { :; } +do_tools_sstrip_extract() { :; } +do_tools_sstrip() { :; } + +case "${CT_SSTRIP_FROM}" in + ELFkickers) + do_sstrip_get() { + CT_GetFile "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}" \ + http://www.muppetlabs.com/~breadbox/pub/software + } + do_sstrip_extract() { + CT_Extract "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}" + CT_Patch "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}" + } + do_sstrip() { + CT_DoStep INFO "Installing sstrip" + CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip" \ + "${CT_BUILD_DIR}/build-strip" + cd "${CT_BUILD_DIR}/build-strip" + + CT_DoLog EXTRA "Building sstrip" + CT_DoExecLog ALL make CC="${CT_HOST}-gcc" sstrip + + CT_DoLog EXTRA "Installing sstrip" + CT_DoExecLog ALL install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" + + CT_EndStep + } + ;; + + buildroot) + do_sstrip_get() { + CT_GetFile sstrip .c http://git.buildroot.net/buildroot/plain/toolchain/sstrip + } + do_sstrip_extract() { + # We leave the sstrip maintenance to the buildroot people: + # -> any fix-up goes directly there + # -> we don't have patches for it + # -> we don't need to patch it + # -> just create a directory in src/, and copy it there. + CT_DoExecLog DEBUG mkdir -p "${CT_SRC_DIR}/sstrip" + CT_DoExecLog DEBUG cp -v "${CT_TARBALLS_DIR}/sstrip.c" "${CT_SRC_DIR}/sstrip" + } + do_sstrip() { + CT_DoStep INFO "Installing sstrip" + mkdir -p "${CT_BUILD_DIR}/build-sstrip" + cd "${CT_BUILD_DIR}/build-sstrip" + + CT_DoLog EXTRA "Building sstrip" + CT_DoExecLog ALL "${CT_HOST}-gcc" -Wall -o sstrip "${CT_SRC_DIR}/sstrip/sstrip.c" + + CT_DoLog EXTRA "Installing sstrip" + CT_DoExecLog ALL install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" + + CT_EndStep + } + ;; +esac diff --git a/scripts/build/tools.sh b/scripts/build/tools.sh deleted file mode 100644 index bb07c9a..0000000 --- a/scripts/build/tools.sh +++ /dev/null @@ -1,38 +0,0 @@ -# Wrapper to build the tools facilities - -# List all tools facilities, and parse their scripts -CT_TOOLS_FACILITY_LIST= -for f in "${CT_LIB_DIR}/scripts/build/tools/"*.sh; do - _f="$(basename "${f}" .sh)" - _f="${_f#???-}" - __f="CT_TOOL_${_f}" - if [ "${!__f}" = "y" ]; then - CT_DoLog DEBUG "Enabling tool '${_f}'" - . "${f}" - CT_TOOLS_FACILITY_LIST="${CT_TOOLS_FACILITY_LIST} ${_f}" - else - CT_DoLog DEBUG "Disabling tool '${_f}'" - fi -done - -# Download the tools facilities -do_tools_get() { - for f in ${CT_TOOLS_FACILITY_LIST}; do - do_tools_${f}_get - done -} - -# Extract and patch the tools facilities -do_tools_extract() { - for f in ${CT_TOOLS_FACILITY_LIST}; do - do_tools_${f}_extract - done -} - -# Build the tools facilities -do_tools() { - for f in ${CT_TOOLS_FACILITY_LIST}; do - do_tools_${f}_build - done -} - diff --git a/scripts/build/tools/000-template.sh b/scripts/build/tools/000-template.sh deleted file mode 100644 index 032f289..0000000 --- a/scripts/build/tools/000-template.sh +++ /dev/null @@ -1,34 +0,0 @@ -# Template file for a tool utility - -# Put your download code here -do_tools_foobar_get() { - # For example: - # CT_GetFile "foobar-${CT_FOOBAR_VERSION}" http://foobar.com/releases/ - : -} - -# Put your extract code here -do_tools_foobar_extract() { - # For example: - # CT_Extract "foobar-${CT_FOOBAR_VERSION}" - # CT_Patch "foobar-${CT_FOOBAR_VERSION}" - : -} - -# Put your build code here -do_tools_foobar_build() { - # For example: - # mkdir -p "${CT_BUILD_DIR}/build-foobar" - # CT_Pushd "${CT_BUILD_DIR}/build-foobar" - # CT_DoExecLog ALL \ - # "${CT_SRC_DIR}/foobar-${CT_FOOBAR_VERSION}/configure" \ - # --build=${CT_BUILD} \ - # --host=${CT_TARGET} \ - # --prefix=/usr \ - # --foobar-options - # CT_DoExecLog ALL make - # CT_DoExecLog ALL make DESTDIR="${CT_SYSROOT_DIR}" install - # CT_Popd - : -} - diff --git a/scripts/build/tools/200-sstrip.sh b/scripts/build/tools/200-sstrip.sh deleted file mode 100644 index c677072..0000000 --- a/scripts/build/tools/200-sstrip.sh +++ /dev/null @@ -1,67 +0,0 @@ -# This will build and install sstrip to run on host and sstrip target files - -case "${CT_SSTRIP_FROM}" in - ELFkickers) - do_tools_sstrip_get() { - CT_GetFile "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}" \ - http://www.muppetlabs.com/~breadbox/pub/software - } - do_tools_sstrip_extract() { - CT_Extract "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}" - CT_Patch "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}" - } - do_tools_sstrip_build() { - CT_DoStep INFO "Installing sstrip" - CT_DoExecLog ALL cp -av "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip" \ - "${CT_BUILD_DIR}/build-strip" - cd "${CT_BUILD_DIR}/build-strip" - - CT_DoLog EXTRA "Building sstrip" - CT_DoExecLog ALL make CC="${CT_HOST}-gcc" sstrip - - CT_DoLog EXTRA "Installing sstrip" - CT_DoExecLog ALL install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" - - CT_EndStep - } - ;; - - buildroot) - do_tools_sstrip_get() { - CT_GetFile sstrip .c http://git.buildroot.net/buildroot/plain/toolchain/sstrip - } - do_tools_sstrip_extract() { - # We leave the sstrip maintenance to the buildroot people: - # -> any fix-up goes directly there - # -> we don't have patches for it - # -> we don't need to patch it - # -> just create a directory in src/, and copy it there. - CT_DoExecLog DEBUG mkdir -p "${CT_SRC_DIR}/sstrip" - CT_DoExecLog DEBUG cp -v "${CT_TARBALLS_DIR}/sstrip.c" "${CT_SRC_DIR}/sstrip" - } - do_tools_sstrip_build() { - CT_DoStep INFO "Installing sstrip" - mkdir -p "${CT_BUILD_DIR}/build-sstrip" - cd "${CT_BUILD_DIR}/build-sstrip" - - CT_DoLog EXTRA "Building sstrip" - CT_DoExecLog ALL "${CT_HOST}-gcc" -Wall -o sstrip "${CT_SRC_DIR}/sstrip/sstrip.c" - - CT_DoLog EXTRA "Installing sstrip" - CT_DoExecLog ALL install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" - - CT_EndStep - } - ;; - - *) do_tools_sstrip_get() { - : - } - do_tools_sstrip_extract() { - : - } - do_tools_sstrip_build() { - : - } - ;; -esac diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in index 036a67b..471e3e0 100644 --- a/scripts/crosstool-NG.sh.in +++ b/scripts/crosstool-NG.sh.in @@ -121,9 +121,9 @@ CT_DoLog INFO "Building environment variables" . "${CT_LIB_DIR}/scripts/build/companion_libs/libelf.sh" . "${CT_LIB_DIR}/scripts/build/binutils/binutils.sh" . "${CT_LIB_DIR}/scripts/build/binutils/elf2flt.sh" +. "${CT_LIB_DIR}/scripts/build/binutils/sstrip.sh" . "${CT_LIB_DIR}/scripts/build/libc/${CT_LIBC}.sh" . "${CT_LIB_DIR}/scripts/build/cc/${CT_CC}.sh" -. "${CT_LIB_DIR}/scripts/build/tools.sh" . "${CT_LIB_DIR}/scripts/build/debug.sh" # Target tuple: CT_TARGET needs a little love: @@ -504,9 +504,9 @@ if [ -z "${CT_RESTART}" ]; then do_libelf_get do_binutils_get do_elf2flt_get + do_sstrip_get do_cc_get do_libc_get - do_tools_get do_debug_get CT_EndStep fi @@ -534,9 +534,9 @@ if [ -z "${CT_RESTART}" ]; then do_libelf_extract do_binutils_extract do_elf2flt_extract + do_sstrip_extract do_cc_extract do_libc_extract - do_tools_extract do_debug_extract CT_EndStep fi diff --git a/steps.mk b/steps.mk index 018927e..4afb6a7 100644 --- a/steps.mk +++ b/steps.mk @@ -26,6 +26,7 @@ CT_STEPS := libc_check_config \ libelf \ binutils \ elf2flt \ + sstrip \ cc_core_pass_1 \ libc_headers \ libc_start_files \ @@ -37,7 +38,6 @@ CT_STEPS := libc_check_config \ mpfr_target \ libelf_target \ binutils_target \ - tools \ debug \ finish \ -- cgit v0.10.2-6-g49f6