summaryrefslogtreecommitdiff
path: root/xmake/languages/c++/xmake.lua
diff options
context:
space:
mode:
authorruki <[email protected]>2026-08-04 22:40:52 +0800
committerruki <[email protected]>2026-08-04 22:40:52 +0800
commit1bd903ce8eb567ddb1847c119e21665255c879bb (patch)
treea78b16274f769898a2e4bdb2d5774742a7c78a43 /xmake/languages/c++/xmake.lua
parent2c1dd455654e0811305183510d0c40adb2d70488 (diff)
improve clang static libc++ runtimes
Diffstat (limited to 'xmake/languages/c++/xmake.lua')
-rw-r--r--xmake/languages/c++/xmake.lua12
1 files changed, 8 insertions, 4 deletions
diff --git a/xmake/languages/c++/xmake.lua b/xmake/languages/c++/xmake.lua
index b94a073b8..42ddc2884 100644
--- a/xmake/languages/c++/xmake.lua
+++ b/xmake/languages/c++/xmake.lua
@@ -60,8 +60,7 @@ language("c++")
, "toolchain.sysincludedirs"
}
, binary = {
- "target.runtimes"
- , "config.linkdirs"
+ "config.linkdirs"
, "config.frameworkdirs"
, "target.linkdirs"
, "target.frameworkdirs"
@@ -79,13 +78,16 @@ language("c++")
, "config.frameworks"
, "target.frameworks"
, "toolchain.frameworks"
+ -- runtimes may link libc++.a/libc++abi.a explicitly, so it must come after the
+ -- object files and user links, but before the syslinks it depends on (e.g. pthread)
+ -- @see https://github.com/xmake-io/xmake/issues/7442
+ , "target.runtimes"
, "config.syslinks"
, "target.syslinks"
, "toolchain.syslinks"
}
, shared = {
- "target.runtimes"
- , "config.linkdirs"
+ "config.linkdirs"
, "config.frameworkdirs"
, "target.linkdirs"
, "target.frameworkdirs"
@@ -103,6 +105,8 @@ language("c++")
, "config.frameworks"
, "target.frameworks"
, "toolchain.frameworks"
+ -- @see https://github.com/xmake-io/xmake/issues/7442
+ , "target.runtimes"
, "config.syslinks"
, "target.syslinks"
, "toolchain.syslinks"