gcc6: don’t link libstdc++ to CoreFoundation
Using flat namespaces causes libstdc++ to link CoreFoundation, but that fails after #265102. Since CoreFoundation is not actually needed, disable flat namespaces to avoid linking it unnecessarily. Disabling flat namespaces matches the behavior of newer versions of libstdc++ (GCC 7+) when building for newer Darwin hosts (10.5+).
This commit is contained in:
committed by
Adam Joseph
parent
0881edb66a
commit
34da65ba2a
@@ -0,0 +1,26 @@
|
||||
Backported from GCC 7.
|
||||
|
||||
diff --git a/libstdc++-v3/configure.host b/libstdc++-v3/configure.host
|
||||
index 304a7f5aff6..d1a189d93d0 100644
|
||||
--- a/libstdc++-v3/configure.host
|
||||
+++ b/libstdc++-v3/configure.host
|
||||
@@ -234,7 +234,7 @@ case "${host_os}" in
|
||||
os_include_dir="os/newlib"
|
||||
OPT_LDFLAGS="${OPT_LDFLAGS} \$(lt_host_flags)"
|
||||
;;
|
||||
- darwin | darwin[1-7] | darwin[1-7].*)
|
||||
+ darwin[1-7] | darwin[1-7].*)
|
||||
# On Darwin, performance is improved if libstdc++ is single-module.
|
||||
# Up to at least 10.3.7, -flat_namespace is required for proper
|
||||
# treatment of coalesced symbols.
|
||||
@@ -252,6 +252,10 @@ case "${host_os}" in
|
||||
esac
|
||||
os_include_dir="os/bsd/darwin"
|
||||
;;
|
||||
+ darwin*)
|
||||
+ # Post Darwin8, defaults should be sufficient.
|
||||
+ os_include_dir="os/bsd/darwin"
|
||||
+ ;;
|
||||
*djgpp*) # leading * picks up "msdosdjgpp"
|
||||
os_include_dir="os/djgpp"
|
||||
error_constants_dir="os/djgpp"
|
||||
@@ -259,6 +259,9 @@ in
|
||||
# This patch can be dropped should darwin.cctools-llvm ever implement support.
|
||||
++ optional (!atLeast7 && hostPlatform.isDarwin && lib.versionAtLeast (lib.getVersion stdenv.cc) "12") ./4.9/darwin-clang-as.patch
|
||||
|
||||
# Building libstdc++ with flat namespaces results in trying to link CoreFoundation, which
|
||||
# defaults to the impure, system location and causes the build to fail.
|
||||
++ optional (is6 && hostPlatform.isDarwin) ./6/libstdc++-disable-flat_namespace.patch
|
||||
|
||||
## gcc 4.9 and older ##############################################################################
|
||||
|
||||
|
||||
Reference in New Issue
Block a user