From 57f93c8badf944b5b3ed712e2887b3db33147efb Mon Sep 17 00:00:00 2001 From: Rob Landley Date: Sat, 28 Feb 2015 12:39:16 -0600 Subject: Add LDFLAGS and STRIP=no support. --- configure | 12 +++++++++--- scripts/make.sh | 9 +++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/configure b/configure index fc58de6d..59a30dc6 100644 --- a/configure +++ b/configure @@ -4,14 +4,20 @@ # A synonym. [ -z "$CROSS_COMPILE" ] && CROSS_COMPILE="$CROSS" + +# CFLAGS and OPTIMIZE are different so you can add extra CFLAGS without +# disabling default optimizations [ -z "$CFLAGS" ] && CFLAGS="-Wall -Wundef -Wno-char-subscripts" # Required for our expected ABI. we're 8-bit clean thus "char" must be unsigned. CFLAGS="$CFLAGS -funsigned-char" - [ -z "$OPTIMIZE" ] && OPTIMIZE="-Os -ffunction-sections -fdata-sections -fno-asynchronous-unwind-tables" + +# We accept LDFLAGS, but by default don't have anything in it [ -z "$LDOPTIMIZE" ] && LDOPTIMIZE="-Wl,--gc-sections" + [ -z "$CC" ] && CC=cc -[ -z "$STRIP" ] && STRIP=strip +[ -z "$STRIP" ] && STRIP=strip # set STRIP=no to skip stripping entirely -# If HOSTCC needs CFLAGS, add them to the variable ala HOSTCC="blah-cc --static" +# If HOSTCC needs CFLAGS or LDFLAGS, just add them to the variable +# ala HOSTCC="blah-cc --static" [ -z "$HOSTCC" ] && HOSTCC=gcc diff --git a/scripts/make.sh b/scripts/make.sh index 207a0827..9e4b83e9 100755 --- a/scripts/make.sh +++ b/scripts/make.sh @@ -102,7 +102,7 @@ fi # LINK needs optlibs.dat, above -LINK="$(echo $LDOPTIMIZE -o toybox_unstripped -Wl,--as-needed $(cat generated/optlibs.dat))" +LINK="$(echo $LDOPTIMIZE $LDFLAGS -o toybox_unstripped -Wl,--as-needed $(cat generated/optlibs.dat))" genbuildsh > generated/build.sh && chmod +x generated/build.sh || exit 1 echo "Make generated/config.h from $KCONFIG_CONFIG." @@ -268,7 +268,12 @@ done [ $DONE -ne 0 ] && exit 1 do_loudly $BUILD $LFILES $LINK || exit 1 -do_loudly ${CROSS_COMPILE}${STRIP} toybox_unstripped -o toybox || exit 1 +if [ "$STRIP" == no ] +then + mv toybox_unstripped toybox +else + do_loudly ${CROSS_COMPILE}${STRIP} toybox_unstripped -o toybox || exit 1 +fi # gcc 4.4's strip command is buggy, and doesn't set the executable bit on # its output the way SUSv4 suggests it do so. do_loudly chmod +x toybox || exit 1 -- cgit v1.2.3