diff options
author | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2011-06-02 19:50:12 +0200 |
---|---|---|
committer | Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> | 2011-06-02 19:50:12 +0200 |
commit | 08ebd6ec3db26f34ea4fcb04fc475aec5e26ad73 (patch) | |
tree | e56d4e3265449c78864025a3dc52176d410a26fe | |
parent | 203f2d36ba5a60a3617576b1b6c755fafe4e9971 (diff) | |
download | crosstool-ng-08ebd6ec3db26f34ea4fcb04fc475aec5e26ad73.tar.gz crosstool-ng-08ebd6ec3db26f34ea4fcb04fc475aec5e26ad73.tar.bz2 crosstool-ng-08ebd6ec3db26f34ea4fcb04fc475aec5e26ad73.zip |
cc/gcc: CC_STATIC_LIBSTDCXX 'depends on' CONFIGURE_has_static_libstdcpp
Hide the staticaly linked libstdc++ option if the static libstdc++ is not
present, detected at configure time.
Add a blind option that says whether static linking is possible at all.
It defaults to 'y', but depends on the needed CONFIGURE_* options. For
now, it only depends on static libtdc++, but new dependencies can be
easily added.
Hide the global static toolchain option behind this new option.
Original patch by Bryan Hundven <bryanhundven@gmail.com>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@anciens.enib.fr>
-rw-r--r-- | config/cc/gcc.in.2 | 1 | ||||
-rw-r--r-- | config/toolchain.in | 9 | ||||
-rwxr-xr-x | configure | 8 |
3 files changed, 18 insertions, 0 deletions
diff --git a/config/cc/gcc.in.2 b/config/cc/gcc.in.2 index bf333738..c8d991aa 100644 --- a/config/cc/gcc.in.2 +++ b/config/cc/gcc.in.2 @@ -44,6 +44,7 @@ config CC_STATIC_LIBSTDCXX bool prompt "Link libstdc++ statically into the gcc binary" default y + depends on CONFIGURE_has_static_libstdcxx depends on CC_GCC_4_4_or_later help Newer gcc versions use the PPL library which is C++ code. Statically diff --git a/config/toolchain.in b/config/toolchain.in index d5ee6b7c..bc8f19c1 100644 --- a/config/toolchain.in +++ b/config/toolchain.in @@ -46,10 +46,19 @@ config SYSROOT_DIR_PREFIX In fact, the sysroot path is constructed as: ${CT_PREFIX_DIR}/${CT_TARGET}/${CT_SYSROOT_DIR_PREFIX}/${CT_SYSROOT_NAME} +# In case we need to add more conditions to enable static +# toolchain, we'll be adding them here +config STATIC_TOOLCHAIN_POSSIBLE + bool + default y + depends on CONFIGURE_has_static_libstdcxx + # Add new deps here! :-) + config STATIC_TOOLCHAIN bool prompt "Build Static Toolchain (EXPERIMENTAL)" depends on EXPERIMENTAL + depends on STATIC_TOOLCHAIN_POSSIBLE help Build static host binaries. @@ -437,6 +437,14 @@ stdcxx_libs="$( for x in so dylib a; do \ has_or_abort lib="${stdcxx_libs}" \ err="'libstdc++' shared library was not found" +# Yes, we may be checking twice for libstdc++.a +# The first is because we need one instance of libstdc++ (shared or static) +# because it is needed for PPL; the second is because the static version is +# required for static-linking, and if missing, the option is removed. +has_or_warn lib="libstdc++.a" \ + err="static 'libstdc++' is needed to statically link the toolchain's executables" \ + kconfig=has_static_libstdcxx + #--------------------------------------------------------------------- # Compute the version string |