summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-06-01 17:00:43 (GMT)
committerYann E. MORIN" <yann.morin.1998@anciens.enib.fr>2007-06-01 17:00:43 (GMT)
commitd472c9b9514663f0bea963ca137b4230f990afb3 (patch)
treef18b3bb20c8da952ac445960f5e802ce57928131
parent51554bf237037946b12f7aea97708f1a64c091a6 (diff)
Add the first tool facility: sstrip.
-rw-r--r--config/tools/sstrip.in46
-rw-r--r--patches/ELFkickers/2.0a/100-use_CC_not_gcc.patch12
-rw-r--r--scripts/build/tools/sstrip.sh71
3 files changed, 129 insertions, 0 deletions
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