From d472c9b9514663f0bea963ca137b4230f990afb3 Mon Sep 17 00:00:00 2001 From: "Yann E. MORIN\"" Date: Fri, 1 Jun 2007 17:00:43 +0000 Subject: Add the first tool facility: sstrip. diff --git a/config/tools/sstrip.in b/config/tools/sstrip.in new file mode 100644 index 0000000..ed5a584 --- /dev/null +++ b/config/tools/sstrip.in @@ -0,0 +1,46 @@ +# Configuration file for sstrip tool facility + +menuconfig SSTRIP + bool + prompt "sstrip" + default n + help + The sstrip utility, to maximise the striping of ELF binaries + (executables and libraries). + +if SSTRIP + +choice + bool + prompt "Use sstrip from:" + +config SSTRIP_ELFKICKERS + bool + prompt "ELFkickers" + help + Use the original, ageing version of sstrip from ELFkickers. + It seems to be fully functional, but not maintained. + +config SSTRIP_BUILDROOT + bool + prompt "buildroot" + help + Use the version from buildroot. It comes from the original + ELFkickers, but is somewhat maintained by the buildroot guys. + +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 diff --git a/patches/ELFkickers/2.0a/100-use_CC_not_gcc.patch b/patches/ELFkickers/2.0a/100-use_CC_not_gcc.patch new file mode 100644 index 0000000..373136b --- /dev/null +++ b/patches/ELFkickers/2.0a/100-use_CC_not_gcc.patch @@ -0,0 +1,12 @@ +diff -dur ELFkickers.orig/sstrip/Makefile ELFkickers/sstrip/Makefile +--- ELFkickers.orig/sstrip/Makefile 2001-03-24 12:58:27.000000000 +0100 ++++ ELFkickers/sstrip/Makefile 2007-05-31 21:17:18.000000000 +0200 +@@ -1,7 +1,7 @@ + # Makefile for sstrip + + sstrip: sstrip.c +- gcc -ggdb -Wall -W -o sstrip sstrip.c ++ $(CC) -Wall -W -o sstrip sstrip.c + + clean: + rm -f sstrip diff --git a/scripts/build/tools/sstrip.sh b/scripts/build/tools/sstrip.sh new file mode 100644 index 0000000..afb755d --- /dev/null +++ b/scripts/build/tools/sstrip.sh @@ -0,0 +1,71 @@ +# This will build and install sstrip to run on host and sstrip target files + +is_enabled="${CT_SSTRIP}" + +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_ExtractAndPatch "ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}" + } + do_tools_sstrip_build() { + CT_DoStep INFO "Installing sstrip" + mkdir -p "${CT_BUILD_DIR}/build-strip" + cd "${CT_BUILD_DIR}/build-strip" + ( cd "${CT_SRC_DIR}/ELFkickers-${CT_SSTRIP_ELFKICKERS_VERSION}/sstrip"; tar cf - . ) |tar xf - + + CT_DoLog EXTRA "Building sstrip" + make CC="${CT_CC_NATIVE}" sstrip 2>&1 |CT_DoLog ALL + + CT_DoLog EXTRA "Installing sstrip" + install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" 2>&1 |CT_DoLog ALL + + CT_EndStep + } + ;; + + buildroot) + sstrip_url='http://buildroot.uclibc.org/cgi-bin/viewcvs.cgi/trunk/buildroot/toolchain/sstrip/sstrip.c' + do_tools_sstrip_get() { + # With this one, we must handle the download by ourselves, + # we can't leave the job to the classic CT_GetFile. + if [ -f "${CT_SRC_DIR}/sstrip/sstrip.c" ]; then + return 0 + fi + CT_Pushd "${CT_SRC_DIR}" + CT_DoLog EXTRA "Retrieving sstrip (buildroot)" + mkdir -p sstrip + cd sstrip + http_data=`lynx -dump "${sstrip_url}"` + link=`echo -en "${http_data}" \ + |egrep '\[[[:digit:]]+\]download' \ + |sed -r -e 's/.*\[([[:digit:]]+)\]download.*/\1/;'` + rev_url=`echo -en "${http_data}" \ + |egrep '^ *8\.' \ + |sed -r -e 's/^ *'${link}'\. +(.+)$/\1/;'` + CT_DoGetFile "${rev_url}" 2>&1 |CT_DoLog ALL + mv sstrip.c?* sstrip.c + CT_Popd + } + do_tools_sstrip_extract() { + # We'll let buildroot guys take care of sstrip maintenance and patching. + : + } + 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_CC_NATIVE} -Wall -o sstrip "${CT_SRC_DIR}/sstrip/sstrip.c" 2>&1 |CT_DoLog ALL + + CT_DoLog EXTRA "Installing sstrip" + install -m 755 sstrip "${CT_PREFIX_DIR}/bin/${CT_TARGET}-sstrip" 2>&1 |CT_DoLog ALL + + CT_EndStep + } + ;; +esac -- cgit v0.10.2-6-g49f6