mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-07-29 20:55:56 +00:00
Try to fix the wasm path detection (Closes: #1052002)
This commit is contained in:
parent
6241366525
commit
9ef19e939c
6
debian/changelog
vendored
6
debian/changelog
vendored
@ -1,3 +1,9 @@
|
|||||||
|
llvm-toolchain-16 (1:16.0.6-17) unstable; urgency=medium
|
||||||
|
|
||||||
|
* Try to fix the wasm path detection (Closes: #1052002)
|
||||||
|
|
||||||
|
-- Sylvestre Ledru <sylvestre@debian.org> Thu, 19 Oct 2023 22:37:29 +0200
|
||||||
|
|
||||||
llvm-toolchain-16 (1:16.0.6-16) unstable; urgency=medium
|
llvm-toolchain-16 (1:16.0.6-16) unstable; urgency=medium
|
||||||
|
|
||||||
* Bring back old version of spirv - necessary for apt.llvm.org
|
* Bring back old version of spirv - necessary for apt.llvm.org
|
||||||
|
36
debian/patches/wasm/wasm-sysroot-usr.diff
vendored
36
debian/patches/wasm/wasm-sysroot-usr.diff
vendored
@ -1,5 +1,7 @@
|
|||||||
--- a/clang/lib/Driver/ToolChains/WebAssembly.cpp
|
Index: llvm-toolchain-16-16.0.6/clang/lib/Driver/ToolChains/WebAssembly.cpp
|
||||||
+++ b/clang/lib/Driver/ToolChains/WebAssembly.cpp
|
===================================================================
|
||||||
|
--- llvm-toolchain-16-16.0.6.orig/clang/lib/Driver/ToolChains/WebAssembly.cpp
|
||||||
|
+++ llvm-toolchain-16-16.0.6/clang/lib/Driver/ToolChains/WebAssembly.cpp
|
||||||
@@ -174,7 +174,7 @@ WebAssembly::WebAssembly(const Driver &D
|
@@ -174,7 +174,7 @@ WebAssembly::WebAssembly(const Driver &D
|
||||||
|
|
||||||
getProgramPaths().push_back(getDriver().getInstalledDir());
|
getProgramPaths().push_back(getDriver().getInstalledDir());
|
||||||
@ -17,19 +19,31 @@
|
|||||||
|
|
||||||
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
|
if (!DriverArgs.hasArg(options::OPT_nobuiltininc)) {
|
||||||
SmallString<128> P(D.ResourceDir);
|
SmallString<128> P(D.ResourceDir);
|
||||||
@@ -427,10 +428,18 @@ void WebAssembly::AddClangSystemIncludeA
|
@@ -425,12 +426,29 @@ void WebAssembly::AddClangSystemIncludeA
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
+ // add the multiarch path on e.g. wasm32-wasi
|
+ // add the multiarch path on e.g. wasm32-wasi
|
||||||
if (getTriple().getOS() != llvm::Triple::UnknownOS) {
|
if (getTriple().getOS() != llvm::Triple::UnknownOS) {
|
||||||
const std::string MultiarchTriple =
|
const std::string MultiarchTriple =
|
||||||
- getMultiarchTriple(D, getTriple(), D.SysRoot);
|
- getMultiarchTriple(D, getTriple(), D.SysRoot);
|
||||||
- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include/" + MultiarchTriple);
|
- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include/" + MultiarchTriple);
|
||||||
|
- }
|
||||||
|
- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include");
|
||||||
+ getMultiarchTriple(D, getTriple(), SysRoot);
|
+ getMultiarchTriple(D, getTriple(), SysRoot);
|
||||||
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/local/include/" + MultiarchTriple);
|
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/local/include/" + MultiarchTriple);
|
||||||
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/local/include");
|
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/local/include");
|
||||||
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/include/" + MultiarchTriple);
|
+ addSystemInclude(DriverArgs, CC1Args, SysRoot + "/include/" + MultiarchTriple);
|
||||||
}
|
+ std::string LibPath = SysRoot + "/include";
|
||||||
- addSystemInclude(DriverArgs, CC1Args, D.SysRoot + "/include");
|
+ std::string Version = detectLibcxxVersion(LibPath);
|
||||||
|
+
|
||||||
|
+ if (!getDriver().SysRoot.empty()) {
|
||||||
|
+ // Second add the generic one.
|
||||||
|
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version);
|
||||||
|
+ // Third the backward one.
|
||||||
|
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version + "/backward");
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
+
|
+
|
||||||
+ // also add the non-multiarch path, only on a known OS (as above), or when
|
+ // also add the non-multiarch path, only on a known OS (as above), or when
|
||||||
+ // a sysroot is given, for backwards compatibility with the original driver
|
+ // a sysroot is given, for backwards compatibility with the original driver
|
||||||
@ -39,7 +53,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
void WebAssembly::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
|
void WebAssembly::AddClangCXXStdlibIncludeArgs(const ArgList &DriverArgs,
|
||||||
@@ -478,6 +479,17 @@ Tool *WebAssembly::buildLinker() const {
|
@@ -478,6 +496,17 @@ Tool *WebAssembly::buildLinker() const {
|
||||||
return new tools::wasm::Linker(*this);
|
return new tools::wasm::Linker(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +71,7 @@
|
|||||||
void WebAssembly::addLibCxxIncludePaths(
|
void WebAssembly::addLibCxxIncludePaths(
|
||||||
const llvm::opt::ArgList &DriverArgs,
|
const llvm::opt::ArgList &DriverArgs,
|
||||||
llvm::opt::ArgStringList &CC1Args) const {
|
llvm::opt::ArgStringList &CC1Args) const {
|
||||||
@@ -499,7 +519,9 @@ void WebAssembly::addLibCxxIncludePaths(
|
@@ -499,7 +528,9 @@ void WebAssembly::addLibCxxIncludePaths(
|
||||||
}
|
}
|
||||||
|
|
||||||
// Second add the generic one.
|
// Second add the generic one.
|
||||||
@ -68,7 +82,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
void WebAssembly::addLibStdCXXIncludePaths(
|
void WebAssembly::addLibStdCXXIncludePaths(
|
||||||
@@ -546,8 +568,11 @@ void WebAssembly::addLibStdCXXIncludePat
|
@@ -546,8 +577,11 @@ void WebAssembly::addLibStdCXXIncludePat
|
||||||
addSystemInclude(DriverArgs, CC1Args, TargetDir);
|
addSystemInclude(DriverArgs, CC1Args, TargetDir);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -84,8 +98,10 @@
|
|||||||
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version + "/backward");
|
+ addSystemInclude(DriverArgs, CC1Args, LibPath + "/c++/" + Version + "/backward");
|
||||||
+ }
|
+ }
|
||||||
}
|
}
|
||||||
--- a/clang/lib/Driver/ToolChains/WebAssembly.h
|
Index: llvm-toolchain-16-16.0.6/clang/lib/Driver/ToolChains/WebAssembly.h
|
||||||
+++ b/clang/lib/Driver/ToolChains/WebAssembly.h
|
===================================================================
|
||||||
|
--- llvm-toolchain-16-16.0.6.orig/clang/lib/Driver/ToolChains/WebAssembly.h
|
||||||
|
+++ llvm-toolchain-16-16.0.6/clang/lib/Driver/ToolChains/WebAssembly.h
|
||||||
@@ -89,6 +89,8 @@ private:
|
@@ -89,6 +89,8 @@ private:
|
||||||
llvm::opt::ArgStringList &CC1Args) const;
|
llvm::opt::ArgStringList &CC1Args) const;
|
||||||
void addLibStdCXXIncludePaths(const llvm::opt::ArgList &DriverArgs,
|
void addLibStdCXXIncludePaths(const llvm::opt::ArgList &DriverArgs,
|
||||||
|
Loading…
Reference in New Issue
Block a user