diff options
-rw-r--r-- | config/global/paths.in | 10 | ||||
-rw-r--r-- | scripts/build/internals.sh | 15 | ||||
-rw-r--r-- | scripts/crosstool-NG.sh.in | 3 |
3 files changed, 28 insertions, 0 deletions
diff --git a/config/global/paths.in b/config/global/paths.in index 63b87759..f84abb7f 100644 --- a/config/global/paths.in +++ b/config/global/paths.in @@ -78,3 +78,13 @@ config INSTALL_DIR_RO read-only. Usefull for toolchains destined for production. + +config STRIP_ALL_TOOLCHAIN_EXECUTABLES + bool + prompt "Strip all toolchain executables" + default y + help + All build host executables contain a lot of unnecessary info. + By stripping all executables it slightly speeds up the compilation + of large projects. + NOTE: It does NOT strip the target libraries, only HOST executables diff --git a/scripts/build/internals.sh b/scripts/build/internals.sh index 3e5ee5dd..09636727 100644 --- a/scripts/build/internals.sh +++ b/scripts/build/internals.sh @@ -8,6 +8,21 @@ do_finish() { CT_DoStep INFO "Cleaning-up the toolchain's directory" + if [ "${CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES}" = "y" ]; then + CT_DoLog INFO "Stripping all toolchain executables" + CT_Pushd "${CT_PREFIX_DIR}" + for t in ar as c++ c++filt cpp dlltool dllwrap g++ gcc gcc-${CT_CC_VERSION} gcov gprof ld nm objcopy objdump ranlib readelf size strings strip addr2line windmc windres; do + [ -x bin/${CT_TARGET}-${t}${CT_HOST_SUFFIX} ] && ${CT_HOST}-strip --strip-all -v bin/${CT_TARGET}-${t}${CT_HOST_SUFFIX} + [ -x ${CT_TARGET}/bin/${t}${CT_HOST_SUFFIX} ] && ${CT_HOST}-strip --strip-all -v ${CT_TARGET}/bin/${t}${CT_HOST_SUFFIX} + done + CT_Popd + CT_Pushd "${CT_PREFIX_DIR}/libexec/gcc/${CT_TARGET}/${CT_CC_VERSION}" + for t in cc1 cc1plus collect2; do + [ -x ${t}${CT_HOST_SUFFIX} ] && ${CT_HOST}-strip --strip-all -v ${t}${CT_HOST_SUFFIX} + done + CT_Popd + fi + if [ "${CT_BARE_METAL}" != "y" ]; then CT_DoLog EXTRA "Installing the populate helper" sed -r -e 's|@@CT_TARGET@@|'"${CT_TARGET}"'|g;' \ diff --git a/scripts/crosstool-NG.sh.in b/scripts/crosstool-NG.sh.in index 7efb2979..b7148a10 100644 --- a/scripts/crosstool-NG.sh.in +++ b/scripts/crosstool-NG.sh.in @@ -441,6 +441,9 @@ if [ -z "${CT_RESTART}" ]; then gcj) CT_TestAndAbort "Missing: '${t}${tool}${!s}' or '${t}${tool}' or '${tool}' : either needed!" "${CT_CC_LANG_JAVA}" = "y" ;; + strip) + CT_TestAndAbort "Missing: '${t}${tool}${!s}' or '${t}${tool}' or '${tool}' : either needed!" "${CT_STRIP_ALL_TOOLCHAIN_EXECUTABLES}" = "y" + ;; # If any other is missing, only warn at low level *) # It does not deserve a WARN level. |