Import clang15
This commit is contained in:
parent
9e9249d271
commit
f4455e99ff
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
/*.src.rpm
|
||||
/*.src.tar.xz
|
||||
/*.src.tar.xz.sig
|
||||
/cmake/
|
||||
/results_clang/
|
@ -0,0 +1,59 @@
|
||||
From d68a5a7817dc0d43853d8b84c9185dc24338664f Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Wed, 6 Oct 2021 05:32:44 +0000
|
||||
Subject: [PATCH] Driver: Add a gcc equivalent triple to the list of triples to
|
||||
search
|
||||
|
||||
There are some gcc triples, like x86_64-redhat-linux, that provide the
|
||||
same behavior as a clang triple with a similar name (e.g.
|
||||
x86_64-redhat-linux-gnu). When searching for a gcc install, also search
|
||||
for a gcc equivalent triple if one exists.
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D111207
|
||||
---
|
||||
clang/lib/Driver/ToolChains/Gnu.cpp | 22 ++++++++++++++++++++++
|
||||
1 file changed, 22 insertions(+)
|
||||
|
||||
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp b/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
index fe5bda5c6605..fd4a7f72be14 100644
|
||||
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
@@ -1884,6 +1884,18 @@ static llvm::StringRef getGCCToolchainDir(const ArgList &Args,
|
||||
return GCC_INSTALL_PREFIX;
|
||||
}
|
||||
|
||||
+/// This function takes a 'clang' triple and converts it to an equivalent gcc
|
||||
+/// triple.
|
||||
+static const char *ConvertToGccTriple(StringRef CandidateTriple) {
|
||||
+ return llvm::StringSwitch<const char *>(CandidateTriple)
|
||||
+ .Case("aarch64-redhat-linux-gnu", "aarch64-redhat-linux")
|
||||
+ .Case("i686-redhat-linux-gnu", "i686-redhat-linux")
|
||||
+ .Case("ppc64le-redhat-linux-gnu", "ppc64le-redhat-linux")
|
||||
+ .Case("s390x-redhat-linux-gnu", "s390x-redhat-linux")
|
||||
+ .Case("x86_64-redhat-linux-gnu", "x86_64-redhat-linux")
|
||||
+ .Default(NULL);
|
||||
+}
|
||||
+
|
||||
/// Initialize a GCCInstallationDetector from the driver.
|
||||
///
|
||||
/// This performs all of the autodetection and sets up the various paths.
|
||||
@@ -1904,6 +1916,16 @@ void Generic_GCC::GCCInstallationDetector::init(
|
||||
// The compatible GCC triples for this particular architecture.
|
||||
SmallVector<StringRef, 16> CandidateTripleAliases;
|
||||
SmallVector<StringRef, 16> CandidateBiarchTripleAliases;
|
||||
+
|
||||
+ // In some cases gcc uses a slightly different triple than clang for the
|
||||
+ // same target. Convert the clang triple to the gcc equivalent and use that
|
||||
+ // to search for the gcc install.
|
||||
+ const char *ConvertedTriple = ConvertToGccTriple(TargetTriple.str());
|
||||
+ if (ConvertedTriple) {
|
||||
+ CandidateTripleAliases.push_back(ConvertedTriple);
|
||||
+ CandidateBiarchTripleAliases.push_back(ConvertedTriple);
|
||||
+ }
|
||||
+
|
||||
CollectLibDirsAndTriples(TargetTriple, BiarchVariantTriple, CandidateLibDirs,
|
||||
CandidateTripleAliases, CandidateBiarchLibDirs,
|
||||
CandidateBiarchTripleAliases);
|
||||
--
|
||||
2.26.2
|
||||
|
29
0001-Mark-fopenmp-implicit-rpath-as-NoArgumentUnused.patch
Normal file
29
0001-Mark-fopenmp-implicit-rpath-as-NoArgumentUnused.patch
Normal file
@ -0,0 +1,29 @@
|
||||
From 537e325f180d3d82bbef64aac71efcb0256d6916 Mon Sep 17 00:00:00 2001
|
||||
From: Nikita Popov <npopov@redhat.com>
|
||||
Date: Fri, 2 Sep 2022 16:30:15 +0200
|
||||
Subject: [PATCH] Mark fopenmp-implicit-rpath as NoArgumentUnused
|
||||
|
||||
We pass this option unconditionally in LDFLAGS, make sure this
|
||||
does not warn if openmp is not used, as this may break some
|
||||
build systems.
|
||||
---
|
||||
clang/include/clang/Driver/Options.td | 3 ++-
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
|
||||
index d921ea5d5da9..d883fd3a8f04 100644
|
||||
--- a/clang/include/clang/Driver/Options.td
|
||||
+++ b/clang/include/clang/Driver/Options.td
|
||||
@@ -4118,7 +4118,8 @@ defm openmp_implicit_rpath: BoolFOption<"openmp-implicit-rpath",
|
||||
LangOpts<"OpenMP">,
|
||||
DefaultTrue,
|
||||
PosFlag<SetTrue, [], "Set rpath on OpenMP executables">,
|
||||
- NegFlag<SetFalse>>;
|
||||
+ NegFlag<SetFalse>,
|
||||
+ BothFlags<[NoArgumentUnused]>>;
|
||||
def r : Flag<["-"], "r">, Flags<[LinkerInput,NoArgumentUnused]>,
|
||||
Group<Link_Group>;
|
||||
def save_temps_EQ : Joined<["-", "--"], "save-temps=">, Flags<[CC1Option, FlangOption, NoXarchOption]>,
|
||||
--
|
||||
2.37.2
|
||||
|
42
0001-PATCH-clang-Reorganize-gtest-integration.patch
Normal file
42
0001-PATCH-clang-Reorganize-gtest-integration.patch
Normal file
@ -0,0 +1,42 @@
|
||||
From c6b921c8d833546946b70a8c2640032fd7c62461 Mon Sep 17 00:00:00 2001
|
||||
From: serge-sans-paille <sguelton@redhat.com>
|
||||
Date: Thu, 25 Feb 2021 14:04:52 +0100
|
||||
Subject: [PATCH 1/6] [PATCH][clang] Reorganize gtest integration
|
||||
|
||||
---
|
||||
clang/CMakeLists.txt | 12 +++++-------
|
||||
1 file changed, 5 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/clang/CMakeLists.txt b/clang/CMakeLists.txt
|
||||
index 9e74014..0185276 100644
|
||||
--- a/clang/CMakeLists.txt
|
||||
+++ b/clang/CMakeLists.txt
|
||||
@@ -153,12 +153,6 @@ if( CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR )
|
||||
set(LLVM_UTILS_PROVIDED ON)
|
||||
set(CLANG_TEST_DEPS FileCheck count not)
|
||||
endif()
|
||||
- set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest)
|
||||
- if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h
|
||||
- AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
- AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt)
|
||||
- add_subdirectory(${UNITTEST_DIR} utils/unittest)
|
||||
- endif()
|
||||
else()
|
||||
# Seek installed Lit.
|
||||
find_program(LLVM_LIT
|
||||
@@ -537,7 +531,11 @@ endif()
|
||||
|
||||
|
||||
if( CLANG_INCLUDE_TESTS )
|
||||
- if(EXISTS ${LLVM_MAIN_SRC_DIR}/utils/unittest/googletest/include/gtest/gtest.h)
|
||||
+ set(UNITTEST_DIR ${LLVM_MAIN_SRC_DIR}/utils/unittest)
|
||||
+ if(EXISTS ${UNITTEST_DIR}/googletest/include/gtest/gtest.h
|
||||
+ AND NOT EXISTS ${LLVM_LIBRARY_DIR}/${CMAKE_STATIC_LIBRARY_PREFIX}gtest${CMAKE_STATIC_LIBRARY_SUFFIX}
|
||||
+ AND EXISTS ${UNITTEST_DIR}/CMakeLists.txt)
|
||||
+ add_subdirectory(${UNITTEST_DIR} utils/unittest)
|
||||
add_subdirectory(unittests)
|
||||
list(APPEND CLANG_TEST_DEPS ClangUnitTests)
|
||||
list(APPEND CLANG_TEST_PARAMS
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,45 @@
|
||||
From a85305a801c39720d7ec1c9441a88fef1ac19435 Mon Sep 17 00:00:00 2001
|
||||
From: serge-sans-paille <sguelton@redhat.com>
|
||||
Date: Fri, 9 Sep 2022 10:17:01 +0200
|
||||
Subject: [PATCH] Take into account Fedora Specific install dir for libunwind
|
||||
|
||||
---
|
||||
clang/lib/Driver/ToolChains/CommonArgs.cpp | 8 +++++++-
|
||||
clang/test/Driver/linux-ld.c | 2 +-
|
||||
2 files changed, 8 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||
index 443725f..c1401a6 100644
|
||||
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||
@@ -1529,7 +1529,13 @@ static void AddUnwindLibrary(const ToolChain &TC, const Driver &D,
|
||||
CmdArgs.push_back("-lgcc_s");
|
||||
break;
|
||||
}
|
||||
- case ToolChain::UNW_CompilerRT:
|
||||
+ case ToolChain::UNW_CompilerRT: {
|
||||
+ SmallString<256> DefaultLibPath =
|
||||
+ llvm::sys::path::parent_path(TC.getDriver().Dir);
|
||||
+ llvm::sys::path::append(DefaultLibPath, Twine("lib") + CLANG_LIBDIR_SUFFIX);
|
||||
+ CmdArgs.push_back(
|
||||
+ strdup(("-L" + DefaultLibPath + "/llvm-unwind").str().c_str()));
|
||||
+ }
|
||||
if (TC.getTriple().isOSAIX()) {
|
||||
// AIX only has libunwind as a shared library. So do not pass
|
||||
// anything in if -static is specified.
|
||||
diff --git a/clang/test/Driver/linux-ld.c b/clang/test/Driver/linux-ld.c
|
||||
index e76b35d..dfb8eca 100644
|
||||
--- a/clang/test/Driver/linux-ld.c
|
||||
+++ b/clang/test/Driver/linux-ld.c
|
||||
@@ -299,7 +299,7 @@
|
||||
// RUN: --sysroot=%S/Inputs/basic_linux_tree \
|
||||
// RUN: | FileCheck --check-prefix=CHECK-CLANG-ANDROID-STATIC %s
|
||||
// CHECK-CLANG-ANDROID-STATIC: "{{.*}}ld{{(.exe)?}}" "--sysroot=[[SYSROOT:[^"]+]]"
|
||||
-// CHECK-CLANG-ANDROID-STATIC: "--start-group" "{{[^"]*}}{{/|\\\\}}libclang_rt.builtins-aarch64-android.a" "-l:libunwind.a" "-lc" "--end-group"
|
||||
+// CHECK-CLANG-ANDROID-STATIC: "--start-group" "{{[^"]*}}{{/|\\\\}}libclang_rt.builtins-aarch64-android.a" "-L{{[^"]*}}{{/|\\\\}}llvm-unwind" "-l:libunwind.a" "-lc" "--end-group"
|
||||
//
|
||||
// RUN: %clang -### %s 2>&1 \
|
||||
// RUN: --target=x86_64-unknown-linux -rtlib=platform --unwindlib=platform \
|
||||
--
|
||||
1.8.3.1
|
||||
|
@ -0,0 +1,74 @@
|
||||
From bc9aa904bf9d24e7f39a2a866ff6b463858b6ccb Mon Sep 17 00:00:00 2001
|
||||
From: serge-sans-paille <sguelton@redhat.com>
|
||||
Date: Wed, 21 Sep 2022 16:08:45 +0200
|
||||
Subject: [PATCH] [clang] Fix interaction between asm labels and inline
|
||||
builtins
|
||||
|
||||
One must pick the same name as the one referenced in CodeGenFunction when
|
||||
generating .inline version of an inline builtin, otherwise they are not
|
||||
correctly replaced.
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D134362
|
||||
---
|
||||
clang/lib/CodeGen/CGExpr.cpp | 5 ++-
|
||||
.../test/CodeGen/asm-label-inline-builtins.c | 32 +++++++++++++++++++
|
||||
2 files changed, 36 insertions(+), 1 deletion(-)
|
||||
create mode 100644 clang/test/CodeGen/asm-label-inline-builtins.c
|
||||
|
||||
diff --git a/clang/lib/CodeGen/CGExpr.cpp b/clang/lib/CodeGen/CGExpr.cpp
|
||||
index bf3dd812b9e8..a951d53423bf 100644
|
||||
--- a/clang/lib/CodeGen/CGExpr.cpp
|
||||
+++ b/clang/lib/CodeGen/CGExpr.cpp
|
||||
@@ -5046,7 +5046,10 @@ static CGCallee EmitDirectCallee(CodeGenFunction &CGF, GlobalDecl GD) {
|
||||
if (auto builtinID = FD->getBuiltinID()) {
|
||||
std::string NoBuiltinFD = ("no-builtin-" + FD->getName()).str();
|
||||
std::string NoBuiltins = "no-builtins";
|
||||
- std::string FDInlineName = (FD->getName() + ".inline").str();
|
||||
+
|
||||
+ auto *A = FD->getAttr<AsmLabelAttr>();
|
||||
+ StringRef Ident = A ? A->getLabel() : FD->getName();
|
||||
+ std::string FDInlineName = (Ident + ".inline").str();
|
||||
|
||||
bool IsPredefinedLibFunction =
|
||||
CGF.getContext().BuiltinInfo.isPredefinedLibFunction(builtinID);
|
||||
diff --git a/clang/test/CodeGen/asm-label-inline-builtins.c b/clang/test/CodeGen/asm-label-inline-builtins.c
|
||||
new file mode 100644
|
||||
index 000000000000..ab9afc29411d
|
||||
--- /dev/null
|
||||
+++ b/clang/test/CodeGen/asm-label-inline-builtins.c
|
||||
@@ -0,0 +1,32 @@
|
||||
+// RUN: %clang_cc1 -triple x86_64 -S -emit-llvm -disable-llvm-passes -o - %s | FileCheck %s
|
||||
+//
|
||||
+// Verifies that clang-generated *.inline carry the same name at call and callee
|
||||
+// site, in spite of asm labels.
|
||||
+
|
||||
+typedef struct _IO_FILE FILE;
|
||||
+extern FILE *stdout;
|
||||
+extern int vprintf (const char *__restrict __format, __builtin_va_list __arg);
|
||||
+extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
|
||||
+ const char *__restrict __format, __builtin_va_list __ap);
|
||||
+extern int __vprintf_chk (int __flag, const char *__restrict __format,
|
||||
+ __builtin_va_list __ap);
|
||||
+
|
||||
+extern __typeof (vprintf) vprintf __asm ("__vprintfieee128");
|
||||
+extern __typeof (__vfprintf_chk) __vfprintf_chk __asm ("__vfprintf_chkieee128");
|
||||
+extern __typeof (__vprintf_chk) __vprintf_chk __asm ("__vprintf_chkieee128");
|
||||
+
|
||||
+extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__gnu_inline__)) __attribute__ ((__artificial__)) int
|
||||
+vprintf (const char *__restrict __fmt, __builtin_va_list __ap)
|
||||
+{
|
||||
+ return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
|
||||
+}
|
||||
+
|
||||
+void test(const char *fmt, __builtin_va_list ap) {
|
||||
+ vprintf(fmt, ap);
|
||||
+}
|
||||
+
|
||||
+// CHECK-LABEL: void @test(
|
||||
+// CHECK: call i32 @__vprintfieee128.inline(
|
||||
+//
|
||||
+// CHECK-LABEL: internal i32 @__vprintfieee128.inline(
|
||||
+// CHECK: call i32 @__vfprintf_chkieee128(
|
||||
--
|
||||
2.37.2
|
||||
|
280
0001-clang-MinGW-Improve-extend-the-gcc-sysroot-detection.patch
Normal file
280
0001-clang-MinGW-Improve-extend-the-gcc-sysroot-detection.patch
Normal file
@ -0,0 +1,280 @@
|
||||
From efe3686d4a519b357cecb5aaf715f1e1b6f2d025 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
|
||||
Date: Tue, 22 Nov 2022 14:38:54 +0200
|
||||
Subject: [PATCH 1/2] [clang] [MinGW] Improve/extend the gcc/sysroot detection
|
||||
logic
|
||||
|
||||
There are three functions that try to detect the right implicit
|
||||
sysroot and libgcc directory setup to use
|
||||
- One which looks for mingw sysroots located in
|
||||
<clangbin>/../<sysrootname>
|
||||
- One which looks for a mingw-targeting gcc executables in the PATH
|
||||
- One which looks in the <gccroot>/lib/gcc directory to find the
|
||||
right one to use, and the right specific triple used for arch
|
||||
specific directories in the gcc/libstdc++ install
|
||||
|
||||
These have mostly tried to look for executables named
|
||||
"<arch>-w64-mingw32-gcc" or "mingw32-gcc" or subdirectories
|
||||
named "<arch>-w64-mingw32" or "mingw32".
|
||||
|
||||
In the case of findClangRelativeSysroot, it also has looked
|
||||
for directories with the name of the actual triple. This
|
||||
was added in deff7536278d355977171726124f83aa4bb95419,
|
||||
with the intent of looking for a directory matching exactly
|
||||
the user provided literal triple - however the triple here
|
||||
is the normalized one, not the one provided by the user on
|
||||
the command line.
|
||||
|
||||
Improve and unify this logic somewhat:
|
||||
- Always first look for things based on the literal triple
|
||||
provided by the user.
|
||||
- Secondly look for things based on the normalized triple
|
||||
(which usually ends up as e.g. x86_64-w64-windows-gnu),
|
||||
accessed via the Triple which is passed to the constructor
|
||||
- Then look for the common triple form <arch>-w64-mingw32
|
||||
|
||||
The literal triple provided by the user is available via
|
||||
Driver::getTargetTriple(), but computeTargetTriple() may
|
||||
change e.g. the architecture of it, so we need to
|
||||
reapply the effective architecture on the literal triple
|
||||
spelling from Driver::getTargetTriple().
|
||||
|
||||
Do this consistently for all of findGcc, findClangRelativeSysroot
|
||||
and findGccLibDir (while keeping the existing plain "mingw32"
|
||||
cases in findGcc and findGccLibDir too).
|
||||
|
||||
Fedora 37 started shipping mingw sysroots targeting UCRT,
|
||||
in addition to the traditional msvcrt.dll, and these use
|
||||
triples in the form <arch>-w64-mingw32ucrt - see
|
||||
https://fedoraproject.org/wiki/Changes/F37MingwUCRT.
|
||||
|
||||
Thus, in addition to the existing default tested triples,
|
||||
try looking for triples in the form <arch>-w64-mingw32ucrt,
|
||||
to automatically find the UCRT sysroots on Fedora 37.
|
||||
By explicitly setting a specific target on the Clang command
|
||||
line, the user can be more explicit with which flavour is
|
||||
to be preferred.
|
||||
|
||||
This should fix the main issue in
|
||||
https://github.com/llvm/llvm-project/issues/59001.
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D138692
|
||||
---
|
||||
clang/lib/Driver/ToolChains/MinGW.cpp | 68 ++++++++++++++-----
|
||||
clang/lib/Driver/ToolChains/MinGW.h | 2 +-
|
||||
.../12.2.1/include-fixed/.keep | 0
|
||||
.../sys-root/mingw/include/.keep | 0
|
||||
.../sys-root/mingw/include/c++/backward/.keep | 0
|
||||
.../include/c++/x86_64-w64-mingw32ucrt/.keep | 0
|
||||
clang/test/Driver/mingw-sysroot.cpp | 13 ++++
|
||||
clang/test/Driver/mingw.cpp | 4 ++
|
||||
8 files changed, 68 insertions(+), 19 deletions(-)
|
||||
create mode 100644 clang/test/Driver/Inputs/mingw_fedora_tree/usr/lib/gcc/x86_64-w64-mingw32ucrt/12.2.1/include-fixed/.keep
|
||||
create mode 100644 clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/.keep
|
||||
create mode 100644 clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward/.keep
|
||||
create mode 100644 clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt/.keep
|
||||
|
||||
diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp
|
||||
index ae7c4c56bf9e..0ebacea6e87f 100644
|
||||
--- a/clang/lib/Driver/ToolChains/MinGW.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/MinGW.cpp
|
||||
@@ -359,13 +359,26 @@ static bool findGccVersion(StringRef LibDir, std::string &GccLibDir,
|
||||
return Ver.size();
|
||||
}
|
||||
|
||||
-void toolchains::MinGW::findGccLibDir() {
|
||||
- llvm::SmallVector<llvm::SmallString<32>, 2> SubdirNames;
|
||||
+static llvm::Triple getLiteralTriple(const Driver &D, const llvm::Triple &T) {
|
||||
+ llvm::Triple LiteralTriple(D.getTargetTriple());
|
||||
+ // The arch portion of the triple may be overridden by -m32/-m64.
|
||||
+ LiteralTriple.setArchName(T.getArchName());
|
||||
+ return LiteralTriple;
|
||||
+}
|
||||
+
|
||||
+void toolchains::MinGW::findGccLibDir(const llvm::Triple &LiteralTriple) {
|
||||
+ llvm::SmallVector<llvm::SmallString<32>, 5> SubdirNames;
|
||||
+ SubdirNames.emplace_back(LiteralTriple.str());
|
||||
+ SubdirNames.emplace_back(getTriple().str());
|
||||
SubdirNames.emplace_back(getTriple().getArchName());
|
||||
- SubdirNames[0] += "-w64-mingw32";
|
||||
+ SubdirNames.back() += "-w64-mingw32";
|
||||
+ SubdirNames.emplace_back(getTriple().getArchName());
|
||||
+ SubdirNames.back() += "-w64-mingw32ucrt";
|
||||
SubdirNames.emplace_back("mingw32");
|
||||
- if (SubdirName.empty())
|
||||
- SubdirName = std::string(SubdirNames[0].str());
|
||||
+ if (SubdirName.empty()) {
|
||||
+ SubdirName = getTriple().getArchName();
|
||||
+ SubdirName += "-w64-mingw32";
|
||||
+ }
|
||||
// lib: Arch Linux, Ubuntu, Windows
|
||||
// lib64: openSUSE Linux
|
||||
for (StringRef CandidateLib : {"lib", "lib64"}) {
|
||||
@@ -380,10 +393,17 @@ void toolchains::MinGW::findGccLibDir() {
|
||||
}
|
||||
}
|
||||
|
||||
-static llvm::ErrorOr<std::string> findGcc(const llvm::Triple &T) {
|
||||
- llvm::SmallVector<llvm::SmallString<32>, 2> Gccs;
|
||||
+static llvm::ErrorOr<std::string> findGcc(const llvm::Triple &LiteralTriple,
|
||||
+ const llvm::Triple &T) {
|
||||
+ llvm::SmallVector<llvm::SmallString<32>, 5> Gccs;
|
||||
+ Gccs.emplace_back(LiteralTriple.str());
|
||||
+ Gccs.back() += "-gcc";
|
||||
+ Gccs.emplace_back(T.str());
|
||||
+ Gccs.back() += "-gcc";
|
||||
Gccs.emplace_back(T.getArchName());
|
||||
- Gccs[0] += "-w64-mingw32-gcc";
|
||||
+ Gccs.back() += "-w64-mingw32-gcc";
|
||||
+ Gccs.emplace_back(T.getArchName());
|
||||
+ Gccs.back() += "-w64-mingw32ucrt-gcc";
|
||||
Gccs.emplace_back("mingw32-gcc");
|
||||
// Please do not add "gcc" here
|
||||
for (StringRef CandidateGcc : Gccs)
|
||||
@@ -393,12 +413,15 @@ static llvm::ErrorOr<std::string> findGcc(const llvm::Triple &T) {
|
||||
}
|
||||
|
||||
static llvm::ErrorOr<std::string>
|
||||
-findClangRelativeSysroot(const Driver &D, const llvm::Triple &T,
|
||||
- std::string &SubdirName) {
|
||||
- llvm::SmallVector<llvm::SmallString<32>, 2> Subdirs;
|
||||
+findClangRelativeSysroot(const Driver &D, const llvm::Triple &LiteralTriple,
|
||||
+ const llvm::Triple &T, std::string &SubdirName) {
|
||||
+ llvm::SmallVector<llvm::SmallString<32>, 4> Subdirs;
|
||||
+ Subdirs.emplace_back(LiteralTriple.str());
|
||||
Subdirs.emplace_back(T.str());
|
||||
Subdirs.emplace_back(T.getArchName());
|
||||
- Subdirs[1] += "-w64-mingw32";
|
||||
+ Subdirs.back() += "-w64-mingw32";
|
||||
+ Subdirs.emplace_back(T.getArchName());
|
||||
+ Subdirs.back() += "-w64-mingw32ucrt";
|
||||
StringRef ClangRoot = llvm::sys::path::parent_path(D.getInstalledDir());
|
||||
StringRef Sep = llvm::sys::path::get_separator();
|
||||
for (StringRef CandidateSubdir : Subdirs) {
|
||||
@@ -418,14 +441,16 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple,
|
||||
|
||||
// The sequence for detecting a sysroot here should be kept in sync with
|
||||
// the testTriple function below.
|
||||
+ llvm::Triple LiteralTriple = getLiteralTriple(D, getTriple());
|
||||
if (getDriver().SysRoot.size())
|
||||
Base = getDriver().SysRoot;
|
||||
// Look for <clang-bin>/../<triplet>; if found, use <clang-bin>/.. as the
|
||||
// base as it could still be a base for a gcc setup with libgcc.
|
||||
- else if (llvm::ErrorOr<std::string> TargetSubdir =
|
||||
- findClangRelativeSysroot(getDriver(), getTriple(), SubdirName))
|
||||
+ else if (llvm::ErrorOr<std::string> TargetSubdir = findClangRelativeSysroot(
|
||||
+ getDriver(), LiteralTriple, getTriple(), SubdirName))
|
||||
Base = std::string(llvm::sys::path::parent_path(TargetSubdir.get()));
|
||||
- else if (llvm::ErrorOr<std::string> GPPName = findGcc(getTriple()))
|
||||
+ else if (llvm::ErrorOr<std::string> GPPName =
|
||||
+ findGcc(LiteralTriple, getTriple()))
|
||||
Base = std::string(llvm::sys::path::parent_path(
|
||||
llvm::sys::path::parent_path(GPPName.get())));
|
||||
else
|
||||
@@ -433,7 +458,7 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple,
|
||||
llvm::sys::path::parent_path(getDriver().getInstalledDir()));
|
||||
|
||||
Base += llvm::sys::path::get_separator();
|
||||
- findGccLibDir();
|
||||
+ findGccLibDir(LiteralTriple);
|
||||
// GccLibDir must precede Base/lib so that the
|
||||
// correct crtbegin.o ,cetend.o would be found.
|
||||
getFilePaths().push_back(GccLibDir);
|
||||
@@ -576,6 +601,12 @@ void toolchains::MinGW::printVerboseInfo(raw_ostream &OS) const {
|
||||
// /usr/include/c++/4.8/backward
|
||||
// /usr/x86_64-w64-mingw32/include
|
||||
|
||||
+// Fedora
|
||||
+// /usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt
|
||||
+// /usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward
|
||||
+// /usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include
|
||||
+// /usr/lib/gcc/x86_64-w64-mingw32ucrt/12.2.1/include-fixed
|
||||
+
|
||||
void toolchains::MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
|
||||
ArgStringList &CC1Args) const {
|
||||
if (DriverArgs.hasArg(options::OPT_nostdinc))
|
||||
@@ -667,10 +698,11 @@ static bool testTriple(const Driver &D, const llvm::Triple &Triple,
|
||||
std::string SubdirName;
|
||||
if (D.SysRoot.size())
|
||||
return true;
|
||||
+ llvm::Triple LiteralTriple = getLiteralTriple(D, Triple);
|
||||
if (llvm::ErrorOr<std::string> TargetSubdir =
|
||||
- findClangRelativeSysroot(D, Triple, SubdirName))
|
||||
+ findClangRelativeSysroot(D, LiteralTriple, Triple, SubdirName))
|
||||
return true;
|
||||
- if (llvm::ErrorOr<std::string> GPPName = findGcc(Triple))
|
||||
+ if (llvm::ErrorOr<std::string> GPPName = findGcc(LiteralTriple, Triple))
|
||||
return true;
|
||||
// If we neither found a colocated sysroot or a matching gcc executable,
|
||||
// conclude that we can't know if this is the correct spelling of the triple.
|
||||
diff --git a/clang/lib/Driver/ToolChains/MinGW.h b/clang/lib/Driver/ToolChains/MinGW.h
|
||||
index f15f99dc8a8c..bc17d273e776 100644
|
||||
--- a/clang/lib/Driver/ToolChains/MinGW.h
|
||||
+++ b/clang/lib/Driver/ToolChains/MinGW.h
|
||||
@@ -108,7 +108,7 @@ private:
|
||||
std::string SubdirName;
|
||||
mutable std::unique_ptr<tools::gcc::Preprocessor> Preprocessor;
|
||||
mutable std::unique_ptr<tools::gcc::Compiler> Compiler;
|
||||
- void findGccLibDir();
|
||||
+ void findGccLibDir(const llvm::Triple &LiteralTriple);
|
||||
|
||||
bool NativeLLVMSupport;
|
||||
};
|
||||
diff --git a/clang/test/Driver/Inputs/mingw_fedora_tree/usr/lib/gcc/x86_64-w64-mingw32ucrt/12.2.1/include-fixed/.keep b/clang/test/Driver/Inputs/mingw_fedora_tree/usr/lib/gcc/x86_64-w64-mingw32ucrt/12.2.1/include-fixed/.keep
|
||||
new file mode 100644
|
||||
index 000000000000..e69de29bb2d1
|
||||
diff --git a/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/.keep b/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/.keep
|
||||
new file mode 100644
|
||||
index 000000000000..e69de29bb2d1
|
||||
diff --git a/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward/.keep b/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward/.keep
|
||||
new file mode 100644
|
||||
index 000000000000..e69de29bb2d1
|
||||
diff --git a/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt/.keep b/clang/test/Driver/Inputs/mingw_fedora_tree/usr/x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt/.keep
|
||||
new file mode 100644
|
||||
index 000000000000..e69de29bb2d1
|
||||
diff --git a/clang/test/Driver/mingw-sysroot.cpp b/clang/test/Driver/mingw-sysroot.cpp
|
||||
index 1cb51b3aea2d..985be9e5f2ac 100644
|
||||
--- a/clang/test/Driver/mingw-sysroot.cpp
|
||||
+++ b/clang/test/Driver/mingw-sysroot.cpp
|
||||
@@ -14,6 +14,11 @@
|
||||
// RUN: ln -s %S/Inputs/mingw_ubuntu_posix_tree/usr/x86_64-w64-mingw32 %T/testroot-clang/x86_64-w64-mingw32
|
||||
// RUN: ln -s %S/Inputs/mingw_arch_tree/usr/i686-w64-mingw32 %T/testroot-clang/i686-w64-mingw32
|
||||
|
||||
+// RUN: rm -rf %T/testroot-custom-triple
|
||||
+// RUN: mkdir -p %T/testroot-custom-triple/bin
|
||||
+// RUN: ln -s %clang %T/testroot-custom-triple/bin/x86_64-w64-mingw32foo-clang
|
||||
+// RUN: ln -s %clang %T/testroot-custom-triple/bin/clang
|
||||
+// RUN: ln -s %S/Inputs/mingw_ubuntu_posix_tree/usr/x86_64-w64-mingw32 %T/testroot-custom-triple/x86_64-w64-mingw32foo
|
||||
|
||||
// If we find a gcc in the path with the right triplet prefix, pick that as
|
||||
// sysroot:
|
||||
@@ -51,3 +56,11 @@
|
||||
|
||||
// RUN: env "PATH=%T/testroot-gcc/bin:%PATH%" %T/testroot-clang/bin/x86_64-w64-mingw32-clang --target=x86_64-w64-mingw32 -m32 -rtlib=compiler-rt -stdlib=libstdc++ --sysroot="" -c -### %s 2>&1 | FileCheck -check-prefix=CHECK_TESTROOT_CLANG_I686 %s
|
||||
// CHECK_TESTROOT_CLANG_I686: "{{[^"]+}}/testroot-clang{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include"
|
||||
+
|
||||
+
|
||||
+// If the user calls clang with a custom literal triple, make sure this maps
|
||||
+// to sysroots with the matching spelling.
|
||||
+
|
||||
+// RUN: %T/testroot-custom-triple/bin/x86_64-w64-mingw32foo-clang -rtlib=compiler-rt -stdlib=libstdc++ --sysroot="" -c -### %s 2>&1 | FileCheck -check-prefix=CHECK_TESTROOT_CUSTOM_TRIPLE %s
|
||||
+// RUN: %T/testroot-custom-triple/bin/clang --target=x86_64-w64-mingw32foo -rtlib=compiler-rt -stdlib=libstdc++ --sysroot="" -c -### %s 2>&1 | FileCheck -check-prefix=CHECK_TESTROOT_CUSTOM_TRIPLE %s
|
||||
+// CHECK_TESTROOT_CUSTOM_TRIPLE: "{{[^"]+}}/testroot-custom-triple{{/|\\\\}}x86_64-w64-mingw32foo{{/|\\\\}}include"
|
||||
diff --git a/clang/test/Driver/mingw.cpp b/clang/test/Driver/mingw.cpp
|
||||
index b37503e475d8..bde952fb3565 100644
|
||||
--- a/clang/test/Driver/mingw.cpp
|
||||
+++ b/clang/test/Driver/mingw.cpp
|
||||
@@ -39,6 +39,10 @@
|
||||
// CHECK_MINGW_OPENSUSE_TREE: "[[BASE]]/Inputs/mingw_opensuse_tree/usr{{/|\\\\}}x86_64-w64-mingw32/sys-root/mingw/include"
|
||||
|
||||
|
||||
+// RUN: %clang -target x86_64-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_fedora_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_FEDORA_TREE %s
|
||||
+// CHECK_MINGW_FEDORA_TREE: "[[BASE:[^"]+]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include"
|
||||
+
|
||||
+
|
||||
// RUN: %clang -target i686-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_arch_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_ARCH_TREE %s
|
||||
// CHECK_MINGW_ARCH_TREE: "[[BASE:[^"]+]]/Inputs/mingw_arch_tree/usr{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}5.1.0"
|
||||
// CHECK_MINGW_ARCH_TREE: "[[BASE]]/Inputs/mingw_arch_tree/usr{{/|\\\\}}i686-w64-mingw32{{/|\\\\}}include{{/|\\\\}}c++{{/|\\\\}}5.1.0{{/|\\\\}}i686-w64-mingw32"
|
||||
--
|
||||
2.38.1
|
||||
|
@ -0,0 +1,82 @@
|
||||
From 581300e447602b9b7a505b0f07e8461d58d041ca Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Fri, 1 Jul 2022 21:24:17 -0700
|
||||
Subject: [PATCH] clang-tools-extra: Make test dependency on LLVMHello optional
|
||||
|
||||
This fixes clang + clang-tools-extra standalone build after
|
||||
36892727e4f19a60778e371d78f8fb09d8122c85.
|
||||
---
|
||||
clang-tools-extra/test/CMakeLists.txt | 10 +++++++++-
|
||||
clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp | 2 +-
|
||||
clang-tools-extra/test/lit.cfg.py | 3 +++
|
||||
clang-tools-extra/test/lit.site.cfg.py.in | 1 +
|
||||
4 files changed, 14 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/clang-tools-extra/test/CMakeLists.txt b/clang-tools-extra/test/CMakeLists.txt
|
||||
index f4c529ee8af2..1cfb4dd529aa 100644
|
||||
--- a/clang-tools-extra/test/CMakeLists.txt
|
||||
+++ b/clang-tools-extra/test/CMakeLists.txt
|
||||
@@ -7,10 +7,15 @@
|
||||
set(CLANG_TOOLS_SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/..")
|
||||
set(CLANG_TOOLS_BINARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/..")
|
||||
|
||||
+if (TARGET LLVMHello)
|
||||
+ set (LLVM_HAS_LLVM_HELLO 1)
|
||||
+endif()
|
||||
+
|
||||
llvm_canonicalize_cmake_booleans(
|
||||
CLANG_TIDY_ENABLE_STATIC_ANALYZER
|
||||
CLANG_PLUGIN_SUPPORT
|
||||
LLVM_INSTALL_TOOLCHAIN_ONLY
|
||||
+ LLVM_HAS_LLVM_HELLO
|
||||
)
|
||||
|
||||
configure_lit_site_cfg(
|
||||
@@ -86,7 +91,10 @@ if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||
endif()
|
||||
|
||||
if(TARGET CTTestTidyModule)
|
||||
- list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule LLVMHello)
|
||||
+ list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule)
|
||||
+ if (TARGET LLVMHello)
|
||||
+ list(APPEND CLANG_TOOLS_TEST_DEPS CTTestTidyModule)
|
||||
+ endif()
|
||||
target_include_directories(CTTestTidyModule PUBLIC BEFORE "${CLANG_TOOLS_SOURCE_DIR}")
|
||||
if(CLANG_PLUGIN_SUPPORT AND (WIN32 OR CYGWIN))
|
||||
set(LLVM_LINK_COMPONENTS
|
||||
diff --git a/clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp b/clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp
|
||||
index c66a94f458cf..b4e7a5d691e5 100644
|
||||
--- a/clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp
|
||||
+++ b/clang-tools-extra/test/clang-tidy/CTTestTidyModule.cpp
|
||||
@@ -1,4 +1,4 @@
|
||||
-// REQUIRES: plugins
|
||||
+// REQUIRES: plugins, llvm-hello
|
||||
// RUN: clang-tidy -checks='-*,mytest*' --list-checks -load %llvmshlibdir/CTTestTidyModule%pluginext -load %llvmshlibdir/LLVMHello%pluginext | FileCheck --check-prefix=CHECK-LIST %s
|
||||
// CHECK-LIST: Enabled checks:
|
||||
// CHECK-LIST-NEXT: mytest1
|
||||
diff --git a/clang-tools-extra/test/lit.cfg.py b/clang-tools-extra/test/lit.cfg.py
|
||||
index 9b99bfd93440..3fca9f25fb48 100644
|
||||
--- a/clang-tools-extra/test/lit.cfg.py
|
||||
+++ b/clang-tools-extra/test/lit.cfg.py
|
||||
@@ -59,3 +59,6 @@ config.substitutions.append(
|
||||
# Plugins (loadable modules)
|
||||
if config.has_plugins and config.llvm_plugin_ext:
|
||||
config.available_features.add('plugins')
|
||||
+
|
||||
+if config.has_llvm_hello:
|
||||
+ config.available_features.add("llvm-hello")
|
||||
diff --git a/clang-tools-extra/test/lit.site.cfg.py.in b/clang-tools-extra/test/lit.site.cfg.py.in
|
||||
index 4eb830a1baf1..6e5559348454 100644
|
||||
--- a/clang-tools-extra/test/lit.site.cfg.py.in
|
||||
+++ b/clang-tools-extra/test/lit.site.cfg.py.in
|
||||
@@ -11,6 +11,7 @@ config.target_triple = "@LLVM_TARGET_TRIPLE@"
|
||||
config.host_triple = "@LLVM_HOST_TRIPLE@"
|
||||
config.clang_tidy_staticanalyzer = @CLANG_TIDY_ENABLE_STATIC_ANALYZER@
|
||||
config.has_plugins = @CLANG_PLUGIN_SUPPORT@ & ~@LLVM_INSTALL_TOOLCHAIN_ONLY@
|
||||
+config.has_llvm_hello = @LLVM_HAS_LLVM_HELLO@
|
||||
# Support substitution of the tools and libs dirs with user parameters. This is
|
||||
# used when we can't determine the tool dir at configuration time.
|
||||
config.llvm_tools_dir = lit_config.substitute("@LLVM_TOOLS_DIR@")
|
||||
--
|
||||
2.27.0
|
||||
|
139
0002-clang-MinGW-Improve-detection-of-libstdc-headers-on-.patch
Normal file
139
0002-clang-MinGW-Improve-detection-of-libstdc-headers-on-.patch
Normal file
@ -0,0 +1,139 @@
|
||||
From d3b79c2950d590cb272648f1c6a9dd7646f57beb Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Martin=20Storsj=C3=B6?= <martin@martin.st>
|
||||
Date: Tue, 22 Nov 2022 14:39:39 +0200
|
||||
Subject: [PATCH 2/2] [clang] [MinGW] Improve detection of libstdc++ headers on
|
||||
Fedora
|
||||
|
||||
There's some variation in where different toolchain distributions
|
||||
(and linux distributions) package the mingw sysroots - this is
|
||||
so far handled by adding specific known subdirectory paths
|
||||
to the include and lib directory lists.
|
||||
|
||||
There are multiple degrees of combinatorics involved here though;
|
||||
the distros may use different locations such as
|
||||
/usr/x86_64-w64-mingw32/include or
|
||||
/usr/x86_64-w64-mingw32/sys-root/mingw/include.
|
||||
|
||||
So far, this setup has been treated as base=/usr, subdir=x86_64-w64-mingw32,
|
||||
and the driver tries to add further subdirectories such as
|
||||
<base>/<subdir>/include, <base>/<subdir>/sys-root/mingw/include.
|
||||
|
||||
When it comes to libstdc++ (and libc++), each of these come with
|
||||
a large number of potential subdirectories. Instead of further
|
||||
exploding the combinatorics another step by adding all combinations
|
||||
of all paths, check whether <base>/<subdir>/sys-root/mingw/include
|
||||
exists, and if it does, append that subpath into the subdir variable.
|
||||
|
||||
This allows finding libstdc++ headers in e.g.
|
||||
/usr/x86_64-w64-mingw32/sys-root/mingw/include/c++/x86_64-w64-mingw32
|
||||
on Fedora.
|
||||
|
||||
The same logic (where everything belonging to this target fits
|
||||
under one expanded <subdir> path, with just /include and /lib
|
||||
under it) doesn't seem to apply on Gentoo, where the includes
|
||||
are found in <base>/<subdir>/usr/include while the libraries
|
||||
are in <base>/<subdir>/mingw/lib (see
|
||||
8e218026f8d5eabfdef9141ae5e26aa91d1933e6). But apparently
|
||||
the libstdc++ headers aren't installed under
|
||||
<base>/<subdir>/usr/include, so that path hierarchy quirk doesn't
|
||||
need to be taken into account in AddClangCXXStdlibIncludeArgs.
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D138693
|
||||
---
|
||||
clang/lib/Driver/ToolChains/MinGW.cpp | 19 +++++++++----------
|
||||
clang/lib/Driver/ToolChains/MinGW.h | 1 +
|
||||
clang/test/Driver/mingw.cpp | 5 ++++-
|
||||
3 files changed, 14 insertions(+), 11 deletions(-)
|
||||
|
||||
diff --git a/clang/lib/Driver/ToolChains/MinGW.cpp b/clang/lib/Driver/ToolChains/MinGW.cpp
|
||||
index 0ebacea6e87f..2a9bf4b18f19 100644
|
||||
--- a/clang/lib/Driver/ToolChains/MinGW.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/MinGW.cpp
|
||||
@@ -376,7 +376,7 @@ void toolchains::MinGW::findGccLibDir(const llvm::Triple &LiteralTriple) {
|
||||
SubdirNames.back() += "-w64-mingw32ucrt";
|
||||
SubdirNames.emplace_back("mingw32");
|
||||
if (SubdirName.empty()) {
|
||||
- SubdirName = getTriple().getArchName();
|
||||
+ SubdirName = getTriple().getArchName().str();
|
||||
SubdirName += "-w64-mingw32";
|
||||
}
|
||||
// lib: Arch Linux, Ubuntu, Windows
|
||||
@@ -459,9 +459,16 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple,
|
||||
|
||||
Base += llvm::sys::path::get_separator();
|
||||
findGccLibDir(LiteralTriple);
|
||||
+ TripleDirName = SubdirName;
|
||||
// GccLibDir must precede Base/lib so that the
|
||||
// correct crtbegin.o ,cetend.o would be found.
|
||||
getFilePaths().push_back(GccLibDir);
|
||||
+
|
||||
+ // openSUSE/Fedora
|
||||
+ std::string CandidateSubdir = SubdirName + "/sys-root/mingw";
|
||||
+ if (getDriver().getVFS().exists(Base + CandidateSubdir))
|
||||
+ SubdirName = CandidateSubdir;
|
||||
+
|
||||
getFilePaths().push_back(
|
||||
(Base + SubdirName + llvm::sys::path::get_separator() + "lib").str());
|
||||
|
||||
@@ -470,8 +477,6 @@ toolchains::MinGW::MinGW(const Driver &D, const llvm::Triple &Triple,
|
||||
(Base + SubdirName + llvm::sys::path::get_separator() + "mingw/lib").str());
|
||||
|
||||
getFilePaths().push_back(Base + "lib");
|
||||
- // openSUSE
|
||||
- getFilePaths().push_back(Base + SubdirName + "/sys-root/mingw/lib");
|
||||
|
||||
NativeLLVMSupport =
|
||||
Args.getLastArgValue(options::OPT_fuse_ld_EQ, CLANG_DEFAULT_LINKER)
|
||||
@@ -621,12 +626,6 @@ void toolchains::MinGW::AddClangSystemIncludeArgs(const ArgList &DriverArgs,
|
||||
if (DriverArgs.hasArg(options::OPT_nostdlibinc))
|
||||
return;
|
||||
|
||||
- if (GetRuntimeLibType(DriverArgs) == ToolChain::RLT_Libgcc) {
|
||||
- // openSUSE
|
||||
- addSystemInclude(DriverArgs, CC1Args,
|
||||
- Base + SubdirName + "/sys-root/mingw/include");
|
||||
- }
|
||||
-
|
||||
addSystemInclude(DriverArgs, CC1Args,
|
||||
Base + SubdirName + llvm::sys::path::get_separator() +
|
||||
"include");
|
||||
@@ -684,7 +683,7 @@ void toolchains::MinGW::AddClangCXXStdlibIncludeArgs(
|
||||
for (auto &CppIncludeBase : CppIncludeBases) {
|
||||
addSystemInclude(DriverArgs, CC1Args, CppIncludeBase);
|
||||
CppIncludeBase += Slash;
|
||||
- addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + SubdirName);
|
||||
+ addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + TripleDirName);
|
||||
addSystemInclude(DriverArgs, CC1Args, CppIncludeBase + "backward");
|
||||
}
|
||||
break;
|
||||
diff --git a/clang/lib/Driver/ToolChains/MinGW.h b/clang/lib/Driver/ToolChains/MinGW.h
|
||||
index bc17d273e776..ef9bfb29e175 100644
|
||||
--- a/clang/lib/Driver/ToolChains/MinGW.h
|
||||
+++ b/clang/lib/Driver/ToolChains/MinGW.h
|
||||
@@ -106,6 +106,7 @@ private:
|
||||
clang::driver::toolchains::Generic_GCC::GCCVersion GccVer;
|
||||
std::string Ver;
|
||||
std::string SubdirName;
|
||||
+ std::string TripleDirName;
|
||||
mutable std::unique_ptr<tools::gcc::Preprocessor> Preprocessor;
|
||||
mutable std::unique_ptr<tools::gcc::Compiler> Compiler;
|
||||
void findGccLibDir(const llvm::Triple &LiteralTriple);
|
||||
diff --git a/clang/test/Driver/mingw.cpp b/clang/test/Driver/mingw.cpp
|
||||
index bde952fb3565..46ea55b9500d 100644
|
||||
--- a/clang/test/Driver/mingw.cpp
|
||||
+++ b/clang/test/Driver/mingw.cpp
|
||||
@@ -40,7 +40,10 @@
|
||||
|
||||
|
||||
// RUN: %clang -target x86_64-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_fedora_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_FEDORA_TREE %s
|
||||
-// CHECK_MINGW_FEDORA_TREE: "[[BASE:[^"]+]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include"
|
||||
+// CHECK_MINGW_FEDORA_TREE: "[[BASE:[^"]+]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++"
|
||||
+// CHECK_MINGW_FEDORA_TREE: "[[BASE]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/x86_64-w64-mingw32ucrt"
|
||||
+// CHECK_MINGW_FEDORA_TREE: "[[BASE]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include/c++/backward"
|
||||
+// CHECK_MINGW_FEDORA_TREE: "[[BASE]]/Inputs/mingw_fedora_tree/usr{{/|\\\\}}x86_64-w64-mingw32ucrt/sys-root/mingw/include"
|
||||
|
||||
|
||||
// RUN: %clang -target i686-pc-windows-gnu -rtlib=platform -stdlib=libstdc++ -c -### --sysroot=%S/Inputs/mingw_arch_tree/usr %s 2>&1 | FileCheck -check-prefix=CHECK_MINGW_ARCH_TREE %s
|
||||
--
|
||||
2.38.1
|
||||
|
@ -0,0 +1,29 @@
|
||||
From c87abee7356b8fde81512ffceadd520776c465d2 Mon Sep 17 00:00:00 2001
|
||||
From: serge-sans-paille <sguelton@redhat.com>
|
||||
Date: Thu, 25 Feb 2021 14:09:29 +0100
|
||||
Subject: [PATCH] [PATCH][clang] Make -funwind-tables the default on all archs
|
||||
|
||||
---
|
||||
clang/lib/Driver/ToolChains/Gnu.cpp | 6 ++++++
|
||||
1 file changed, 6 insertions(+)
|
||||
|
||||
diff --git a/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
b/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
index d0808d061c82..de9c9743cd38 100644
|
||||
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
@@ -2701,6 +2701,11 @@ bool Generic_GCC::IsUnwindTablesDefault(const ArgList &Args) const {
|
||||
case llvm::Triple::ppc64le:
|
||||
case llvm::Triple::x86:
|
||||
case llvm::Triple::x86_64:
|
||||
+
|
||||
+ // Enable -funwind-tables on all architectures supported by Fedora:
|
||||
+ // rhbz#1655546
|
||||
+ case llvm::Triple::systemz:
|
||||
+ case llvm::Triple::arm:
|
||||
return true;
|
||||
default:
|
||||
return false;
|
||||
--
|
||||
2.27.0
|
||||
|
25
0003-PATCH-clang-Don-t-install-static-libraries.patch
Normal file
25
0003-PATCH-clang-Don-t-install-static-libraries.patch
Normal file
@ -0,0 +1,25 @@
|
||||
From 88704fc2eabb9dd19a9c3eb81a9b3dc37d95651c Mon Sep 17 00:00:00 2001
|
||||
From: Tom Stellard <tstellar@redhat.com>
|
||||
Date: Fri, 31 Jan 2020 11:04:57 -0800
|
||||
Subject: [PATCH][clang] Don't install static libraries
|
||||
|
||||
---
|
||||
clang/cmake/modules/AddClang.cmake | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/clang/cmake/modules/AddClang.cmake b/clang/cmake/modules/AddClang.cmake
|
||||
index 5752f4277444..0f52822d91f0 100644
|
||||
--- a/clang/cmake/modules/AddClang.cmake
|
||||
+++ b/clang/cmake/modules/AddClang.cmake
|
||||
@@ -113,7 +113,7 @@ macro(add_clang_library name)
|
||||
if(TARGET ${lib})
|
||||
target_link_libraries(${lib} INTERFACE ${LLVM_COMMON_LIBS})
|
||||
|
||||
- if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)
|
||||
+ if (ARG_SHARED AND (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN))
|
||||
get_target_export_arg(${name} Clang export_to_clangtargets UMBRELLA clang-libraries)
|
||||
install(TARGETS ${lib}
|
||||
COMPONENT ${lib}
|
||||
--
|
||||
2.30.2
|
||||
|
100
0010-PATCH-clang-Produce-DWARF4-by-default.patch
Normal file
100
0010-PATCH-clang-Produce-DWARF4-by-default.patch
Normal file
@ -0,0 +1,100 @@
|
||||
From 1f68d73910ddee1beaf3582480b8a9738c941a43 Mon Sep 17 00:00:00 2001
|
||||
From: Konrad Kleine <kkleine@redhat.com>
|
||||
Date: Thu, 24 Mar 2022 09:44:21 +0100
|
||||
Subject: [PATCH] Produce DWARF4 by default
|
||||
|
||||
Have a look at the following commit to see when the move from DWARF 4 to 5 first happened upstream:
|
||||
|
||||
https://github.com/llvm/llvm-project/commit/d3b26dea16108c427b19b5480c9edc76edf8f5b4?diff=unified
|
||||
---
|
||||
clang/include/clang/Driver/ToolChain.h | 2 +-
|
||||
clang/test/CodeGen/dwarf-version.c | 4 ++--
|
||||
clang/test/Driver/cl-options.c | 2 +-
|
||||
clang/test/Driver/clang-g-opts.c | 2 +-
|
||||
clang/test/Driver/ve-toolchain.c | 2 +-
|
||||
clang/test/Driver/ve-toolchain.cpp | 2 +-
|
||||
6 files changed, 7 insertions(+), 7 deletions(-)
|
||||
|
||||
diff --git a/clang/include/clang/Driver/ToolChain.h b/clang/include/clang/Driver/ToolChain.h
|
||||
index f20ab164531b..53c86ee82936 100644
|
||||
--- a/clang/include/clang/Driver/ToolChain.h
|
||||
+++ b/clang/include/clang/Driver/ToolChain.h
|
||||
@@ -535,7 +535,7 @@ public:
|
||||
|
||||
// Return the DWARF version to emit, in the absence of arguments
|
||||
// to the contrary.
|
||||
- virtual unsigned GetDefaultDwarfVersion() const { return 5; }
|
||||
+ virtual unsigned GetDefaultDwarfVersion() const { return 4; }
|
||||
|
||||
// Some toolchains may have different restrictions on the DWARF version and
|
||||
// may need to adjust it. E.g. NVPTX may need to enforce DWARF2 even when host
|
||||
diff --git a/clang/test/CodeGen/dwarf-version.c b/clang/test/CodeGen/dwarf-version.c
|
||||
index 0a6fa4768026..96f01749d0d8 100644
|
||||
--- a/clang/test/CodeGen/dwarf-version.c
|
||||
+++ b/clang/test/CodeGen/dwarf-version.c
|
||||
@@ -2,8 +2,8 @@
|
||||
// RUN: %clang -target x86_64-linux-gnu -gdwarf-3 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER3
|
||||
// RUN: %clang -target x86_64-linux-gnu -gdwarf-4 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4
|
||||
// RUN: %clang -target x86_64-linux-gnu -gdwarf-5 -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5
|
||||
-// RUN: %clang -target x86_64-linux-gnu -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5
|
||||
-// RUN: %clang -target x86_64-linux-gnu -gdwarf -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER5
|
||||
+// RUN: %clang -target x86_64-linux-gnu -g -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4
|
||||
+// RUN: %clang -target x86_64-linux-gnu -gdwarf -S -emit-llvm -o - %s | FileCheck %s --check-prefix=VER4
|
||||
|
||||
// The -isysroot is used as a hack to avoid LIT messing with the SDKROOT
|
||||
// environment variable which indirecty overrides the version in the target
|
||||
diff --git a/clang/test/Driver/cl-options.c b/clang/test/Driver/cl-options.c
|
||||
index a2e350a0a835..01889ba0bf9b 100644
|
||||
--- a/clang/test/Driver/cl-options.c
|
||||
+++ b/clang/test/Driver/cl-options.c
|
||||
@@ -570,7 +570,7 @@
|
||||
// RUN: %clang_cl /Z7 -gdwarf /c -### -- %s 2>&1 | FileCheck -check-prefix=Z7_gdwarf %s
|
||||
// Z7_gdwarf: "-gcodeview"
|
||||
// Z7_gdwarf: "-debug-info-kind=constructor"
|
||||
-// Z7_gdwarf: "-dwarf-version=
|
||||
+// Z7_gdwarf: "-dwarf-version=4
|
||||
|
||||
// RUN: %clang_cl -fmsc-version=1800 -TP -### -- %s 2>&1 | FileCheck -check-prefix=CXX11 %s
|
||||
// CXX11: -std=c++11
|
||||
diff --git a/clang/test/Driver/clang-g-opts.c b/clang/test/Driver/clang-g-opts.c
|
||||
index d982b1070cae..bb129e75769c 100644
|
||||
--- a/clang/test/Driver/clang-g-opts.c
|
||||
+++ b/clang/test/Driver/clang-g-opts.c
|
||||
@@ -32,7 +32,7 @@
|
||||
|
||||
// CHECK-WITHOUT-G-NOT: -debug-info-kind
|
||||
// CHECK-WITH-G: "-debug-info-kind=constructor"
|
||||
-// CHECK-WITH-G: "-dwarf-version=5"
|
||||
+// CHECK-WITH-G: "-dwarf-version=4"
|
||||
// CHECK-WITH-G-DWARF2: "-dwarf-version=2"
|
||||
|
||||
// CHECK-WITH-G-STANDALONE: "-debug-info-kind=standalone"
|
||||
diff --git a/clang/test/Driver/ve-toolchain.c b/clang/test/Driver/ve-toolchain.c
|
||||
index 32e25769b6da..b8a2852daba8 100644
|
||||
--- a/clang/test/Driver/ve-toolchain.c
|
||||
+++ b/clang/test/Driver/ve-toolchain.c
|
||||
@@ -6,7 +6,7 @@
|
||||
/// Checking dwarf-version
|
||||
|
||||
// RUN: %clang -### -g --target=ve %s 2>&1 | FileCheck -check-prefix=DWARF_VER %s
|
||||
-// DWARF_VER: "-dwarf-version=5"
|
||||
+// DWARF_VER: "-dwarf-version=4"
|
||||
|
||||
///-----------------------------------------------------------------------------
|
||||
/// Checking include-path
|
||||
diff --git a/clang/test/Driver/ve-toolchain.cpp b/clang/test/Driver/ve-toolchain.cpp
|
||||
index 5a33d5eceb61..cedf895b36dc 100644
|
||||
--- a/clang/test/Driver/ve-toolchain.cpp
|
||||
+++ b/clang/test/Driver/ve-toolchain.cpp
|
||||
@@ -7,7 +7,7 @@
|
||||
|
||||
// RUN: %clangxx -### -g --target=ve-unknown-linux-gnu \
|
||||
// RUN: %s 2>&1 | FileCheck -check-prefix=DWARF_VER %s
|
||||
-// DWARF_VER: "-dwarf-version=5"
|
||||
+// DWARF_VER: "-dwarf-version=4"
|
||||
|
||||
///-----------------------------------------------------------------------------
|
||||
/// Checking include-path
|
||||
--
|
||||
2.37.1
|
||||
|
6
clang.rpmlintrc
Normal file
6
clang.rpmlintrc
Normal file
@ -0,0 +1,6 @@
|
||||
# clang needs libstdc++-devel installed in order to compile c++ programs.
|
||||
addFilter("E: devel-dependency libstdc\+\+-devel")
|
||||
addFilter("E: explicit-lib-dependency libstdc\+\+-devel")
|
||||
# clang installs libear to /usr/lib on all arches, so we have to use
|
||||
# a hard-coded /usr/lib path in order to move it to the python3 sitelib.
|
||||
addFilter("E: hardcoded-library-path in %{_prefix}/lib/{libear")
|
1288
clang15.spec
Normal file
1288
clang15.spec
Normal file
File diff suppressed because it is too large
Load Diff
25
fix-lto-path.patch
Normal file
25
fix-lto-path.patch
Normal file
@ -0,0 +1,25 @@
|
||||
diff --git a/clang/include/clang/Config/config.h.cmake b/clang/include/clang/Config/config.h.cmake
|
||||
index dfd2f757a185..96aceb656e2b 100644
|
||||
--- a/clang/include/clang/Config/config.h.cmake
|
||||
+++ b/clang/include/clang/Config/config.h.cmake
|
||||
@@ -104,4 +104,6 @@
|
||||
/* Whether to enable opaque pointers by default */
|
||||
#cmakedefine01 CLANG_ENABLE_OPAQUE_POINTERS_INTERNAL
|
||||
|
||||
+#define CLANG_INSTALL_PREFIX "${CLANG_INSTALL_PREFIX}"
|
||||
+
|
||||
#endif
|
||||
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||
index 443725f7d8a8..23239824a0f1 100644
|
||||
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||
@@ -501,8 +501,7 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args,
|
||||
#endif
|
||||
|
||||
SmallString<1024> Plugin;
|
||||
- llvm::sys::path::native(
|
||||
- Twine(D.Dir) + "/../lib" CLANG_LIBDIR_SUFFIX "/LLVMgold" + Suffix,
|
||||
+ llvm::sys::path::native(Twine(CLANG_INSTALL_PREFIX "/LLVMgold") + Suffix,
|
||||
Plugin);
|
||||
CmdArgs.push_back(Args.MakeArgString(Plugin));
|
||||
}
|
16
macros.clang
Normal file
16
macros.clang
Normal file
@ -0,0 +1,16 @@
|
||||
%clang_major_version @@CLANG_MAJOR_VERSION@@
|
||||
%clang_minor_version @@CLANG_MINOR_VERSION@@
|
||||
%clang_patch_version @@CLANG_PATCH_VERSION@@
|
||||
|
||||
%clang_version %{clang_major_version}.%{clang_minor_version}.%{clang_patch_version}
|
||||
|
||||
# This is the path to the clang resource directory that has clang's internal
|
||||
# headers and libraries. This path should be used by packages that need to
|
||||
# install files into this directory. This macro's value changes every time
|
||||
# clang's version changes.
|
||||
%clang_resource_dir %{_libdir}/clang/%{clang_version}
|
||||
|
||||
# This is the path to the clang resource directory that should be used
|
||||
# by packages that need to read files from this directory at runtime.
|
||||
# This macro only changes when clang's major version changes.
|
||||
%clang_resource_dir_readonly %{_libdir}/clang/%{clang_major_version}
|
104
release-keys.asc
Normal file
104
release-keys.asc
Normal file
@ -0,0 +1,104 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
9RmlwZlOTFGcWBYl/cfRONn9qi9a6w==
|
||||
=Lvw+
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=tMzl
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
4
sources
Normal file
4
sources
Normal file
@ -0,0 +1,4 @@
|
||||
SHA512 (clang-15.0.7.src.tar.xz) = 9fd2736a9f5993ddbb5b3c507fe497234a6def64f6f418f379d1ca56c9c361ad1ae9a5445ab938230fbc1671ec00b4f802a412b048569023863c20dc6bb46a1f
|
||||
SHA512 (clang-15.0.7.src.tar.xz.sig) = e1b41c5a6509c3554794bfa1b8d048f13268bc2234d7480f04f7700e27bd9d53e40bc1433885716a64da57458f3041c42a66639045476daefffc3f5d2e3d6efd
|
||||
SHA512 (clang-tools-extra-15.0.7.src.tar.xz) = dd95d261d3a1618967b698e97ac0b41204d872d7479c0c832fcf5a91fe447af6a97fa794de07b3e271285867b30b905688f090e98f516b9df4cdfb3bad9defc6
|
||||
SHA512 (clang-tools-extra-15.0.7.src.tar.xz.sig) = 10887b80d453d1ec826afbf5cfd937d5b671ed73f54691072b2b097da21f9358b8d6372df79200dc0694cbbc40b816c4139690b4e7033ba03a8a9b92611ee4ce
|
Loading…
Reference in New Issue
Block a user