mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-21 05:43:09 +00:00
cc/gcc: add option to compile against static libstdc++, for gcc-4.4 and newer
Idea and know-how taken from CodeSourcery build script. Normal build: $ ldd arm-unknown-linux-uclibcgnueabi-gcc linux-gate.so.1 => (0xb77f3000) libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb76e8000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb75a1000) libm.so.6 => /lib/i686/cmov/libm.so.6 (0xb757a000) /lib/ld-linux.so.2 (0xb77f4000) libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb755c000) CC_STATIC_LIBSTDCXX=y: $ ldd arm-unknown-linux-uclibcgnueabi-gcc linux-gate.so.1 => (0xb7843000) libc.so.6 => /lib/i686/cmov/libc.so.6 (0xb76e6000) /lib/ld-linux.so.2 (0xb7844000) I made CC_STATIC_LIBSTDCXX default=y since I think it is always desirable. Signed-off-by: Johannes Stezenbach <js@sig21.net>
This commit is contained in:
parent
8bd0034057
commit
143f02e0ce
@ -7,6 +7,18 @@ config CC_GCC_ENABLE_TARGET_OPTSPACE
|
|||||||
|
|
||||||
This will compile crossgcc's libs with -Os.
|
This will compile crossgcc's libs with -Os.
|
||||||
|
|
||||||
|
config CC_STATIC_LIBSTDCXX
|
||||||
|
bool
|
||||||
|
prompt "Link libstdc++ statically into the gcc binary"
|
||||||
|
default y
|
||||||
|
depends on CC_GCC_4_4_or_later
|
||||||
|
help
|
||||||
|
Newer gcc versions use the PPL library which is C++ code. Statically
|
||||||
|
linking libstdc++ increases the likeliness that the gcc binary will
|
||||||
|
run on machines other than the one which it was built on, without
|
||||||
|
having to worry about distributing the matching version of libstdc++
|
||||||
|
along with it.
|
||||||
|
|
||||||
comment "Misc. obscure options."
|
comment "Misc. obscure options."
|
||||||
|
|
||||||
config CC_CXA_ATEXIT
|
config CC_CXA_ATEXIT
|
||||||
|
@ -347,10 +347,16 @@ do_cc() {
|
|||||||
extra_config+=(--disable-libmudflap)
|
extra_config+=(--disable-libmudflap)
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# When companion libraries are build static (eg !shared),
|
if [ "${CT_CC_STATIC_LIBSTDCXX}" = "y" ]; then
|
||||||
# the libstdc++ is not pulled automatically, although it
|
# this is from CodeSourcery arm-2010q1-202-arm-none-linux-gnueabi.src.tar.bz2
|
||||||
# is needed. Shoe-horn it in our LDFLAGS
|
# build script
|
||||||
if [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
|
# FIXME: if the host gcc is gcc-4.5 then presumably we could use -static-libstdc++,
|
||||||
|
# see http://gcc.gnu.org/ml/gcc-patches/2009-06/msg01635.html
|
||||||
|
extra_config+=("--with-host-libstdcxx=-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm")
|
||||||
|
elif [ "${CT_COMPLIBS_SHARED}" != "y" ]; then
|
||||||
|
# When companion libraries are build static (eg !shared),
|
||||||
|
# the libstdc++ is not pulled automatically, although it
|
||||||
|
# is needed. Shoe-horn it in our LDFLAGS
|
||||||
final_LDFLAGS='-lstdc++'
|
final_LDFLAGS='-lstdc++'
|
||||||
fi
|
fi
|
||||||
if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
|
if [ "${CT_CC_GCC_USE_GMP_MPFR}" = "y" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user