mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2025-02-20 09:06:19 +00:00
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>
This commit is contained in:
parent
203f2d36ba
commit
08ebd6ec3d
@ -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
|
||||
|
@ -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.
|
||||
|
||||
|
8
configure
vendored
8
configure
vendored
@ -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
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user