scripts: add option to strip all toolchain executables

To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
This commit is contained in:
Remy Bohmer 2010-05-27 23:18:19 +02:00
parent 0c771a45d4
commit b1ac0964f4
3 changed files with 28 additions and 0 deletions

View File

@ -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

View File

@ -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;' \

View File

@ -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.