llvm15: remove package.
This commit is contained in:
parent
4ecb5a20fc
commit
116eb5ab0c
|
@ -988,16 +988,12 @@ libyajl.so.2 yajl-2.0.1_1
|
|||
libconfuse.so.2 confuse-3.2.1_1
|
||||
liblldb.so.18.1 liblldb18-18.1.8_1
|
||||
liblldb.so.17 liblldb17-17.0.6_3
|
||||
liblldb.so.15 lldb15-15.0.7_4
|
||||
libclang.so.18.1 libclang18-18.1.8_1
|
||||
libclang.so.17 libclang17-17.0.6_1
|
||||
libclang.so.15 libclang15-15.0.7_4
|
||||
libclang-cpp.so.18.1 libclang-cpp18-18.1.8_1
|
||||
libclang-cpp.so.17 libclang-cpp17-17.0.6_1
|
||||
libclang-cpp.so.15 libclang-cpp15-15.0.7_4
|
||||
libLLVM-11.so libllvm11-11.0.0_1
|
||||
libLLVM-12.so libllvm12-12.0.0_1
|
||||
libLLVM-15.so libllvm15-15.0.7_4
|
||||
libLLVM-17.so libllvm17-17.0.6_1
|
||||
libLLVM.so.18.1 libllvm18-18.1.8_1
|
||||
libLLVMSPIRVLib.so.18.1 SPIRV-LLVM-Translator-18.1.2_1
|
||||
|
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1 +0,0 @@
|
|||
llvm15
|
|
@ -1,9 +0,0 @@
|
|||
#include <bits/wordsize.h>
|
||||
|
||||
#if __WORDSIZE == 32
|
||||
#include "llvm-config-32.h"
|
||||
#elif __WORDSIZE == 64
|
||||
#include "llvm-config-64.h"
|
||||
#else
|
||||
#error "Unknown word size"
|
||||
#endif
|
|
@ -1,44 +0,0 @@
|
|||
From 352974169f0d2b5da3d5321f588f5e3b5941330e Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
||||
Date: Tue, 8 Sep 2015 22:14:57 +0200
|
||||
Subject: [PATCH 2/7] fix unwind chain inclusion
|
||||
|
||||
---
|
||||
lib/Headers/unwind.h | 9 +++++----
|
||||
1 file changed, 5 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/lib/Headers/unwind.h b/lib/Headers/unwind.h
|
||||
index 303d792..44e10cc 100644
|
||||
--- a/clang/lib/Headers/unwind.h
|
||||
+++ b/clang/lib/Headers/unwind.h
|
||||
@@ -9,9 +9,6 @@
|
||||
|
||||
/* See "Data Definitions for libgcc_s" in the Linux Standard Base.*/
|
||||
|
||||
-#ifndef __CLANG_UNWIND_H
|
||||
-#define __CLANG_UNWIND_H
|
||||
-
|
||||
#if defined(__APPLE__) && __has_include_next(<unwind.h>)
|
||||
/* Darwin (from 11.x on) provide an unwind.h. If that's available,
|
||||
* use it. libunwind wraps some of its definitions in #ifdef _GNU_SOURCE,
|
||||
@@ -39,6 +36,9 @@
|
||||
# endif
|
||||
#else
|
||||
|
||||
+#ifndef __CLANG_UNWIND_H
|
||||
+#define __CLANG_UNWIND_H
|
||||
+
|
||||
#include <stdint.h>
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -322,6 +322,7 @@ _Unwind_Ptr _Unwind_GetTextRelBase(struct _Unwind_Context *);
|
||||
}
|
||||
#endif
|
||||
|
||||
+#endif /* __CLANG_UNWIND_H */
|
||||
+
|
||||
#endif
|
||||
|
||||
-#endif /* __CLANG_UNWIND_H */
|
||||
--
|
||||
2.5.1
|
|
@ -1,115 +0,0 @@
|
|||
--- a/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/Gnu.cpp
|
||||
@@ -2086,7 +2086,8 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||
static const char *const ARMHFTriples[] = {"arm-linux-gnueabihf",
|
||||
"armv7hl-redhat-linux-gnueabi",
|
||||
"armv6hl-suse-linux-gnueabi",
|
||||
- "armv7hl-suse-linux-gnueabi"};
|
||||
+ "armv7hl-suse-linux-gnueabi",
|
||||
+ "armv7l-linux-gnueabihf"};
|
||||
static const char *const ARMebLibDirs[] = {"/lib"};
|
||||
static const char *const ARMebTriples[] = {"armeb-linux-gnueabi",
|
||||
"armeb-linux-androideabi"};
|
||||
@@ -2153,8 +2154,7 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||
"powerpc64-suse-linux", "powerpc-montavista-linuxspe"};
|
||||
static const char *const PPCLELibDirs[] = {"/lib32", "/lib"};
|
||||
static const char *const PPCLETriples[] = {"powerpcle-linux-gnu",
|
||||
- "powerpcle-unknown-linux-gnu",
|
||||
- "powerpcle-linux-musl"};
|
||||
+ "powerpcle-unknown-linux-gnu"};
|
||||
|
||||
static const char *const PPC64LibDirs[] = {"/lib64", "/lib"};
|
||||
static const char *const PPC64Triples[] = {
|
||||
@@ -2235,6 +2235,92 @@ void Generic_GCC::GCCInstallationDetector::AddDefaultGCCPrefixes(
|
||||
return;
|
||||
}
|
||||
|
||||
+ if (TargetTriple.isMusl()) {
|
||||
+ static const char *const AArch64MuslTriples[] = {"aarch64-linux-musl"};
|
||||
+ static const char *const ARMHFMuslTriples[] = {
|
||||
+ "arm-linux-musleabihf", "armv7l-linux-musleabihf"
|
||||
+ };
|
||||
+ static const char *const ARMMuslTriples[] = {"arm-linux-musleabi"};
|
||||
+ static const char *const X86_64MuslTriples[] = {"x86_64-linux-musl"};
|
||||
+ static const char *const X86MuslTriples[] = {"i686-linux-musl"};
|
||||
+ static const char *const MIPSMuslTriples[] = {
|
||||
+ "mips-linux-musl", "mipsel-linux-musl",
|
||||
+ "mipsel-linux-muslhf", "mips-linux-muslhf"
|
||||
+ };
|
||||
+ static const char *const PPCMuslTriples[] = {"powerpc-linux-musl"};
|
||||
+ static const char *const PPCLEMuslTriples[] = {"powerpcle-linux-musl"};
|
||||
+ static const char *const PPC64MuslTriples[] = {"powerpc64-linux-musl"};
|
||||
+ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-linux-musl"};
|
||||
+ static const char *const RISCV64MuslTriples[] = {"riscv64-linux-musl"};
|
||||
+
|
||||
+ switch (TargetTriple.getArch()) {
|
||||
+ case llvm::Triple::aarch64:
|
||||
+ LibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
|
||||
+ TripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
|
||||
+ BiarchLibDirs.append(begin(AArch64LibDirs), end(AArch64LibDirs));
|
||||
+ BiarchTripleAliases.append(begin(AArch64MuslTriples), end(AArch64MuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::arm:
|
||||
+ LibDirs.append(begin(ARMLibDirs), end(ARMLibDirs));
|
||||
+ if (TargetTriple.getEnvironment() == llvm::Triple::MuslEABIHF) {
|
||||
+ TripleAliases.append(begin(ARMHFMuslTriples), end(ARMHFMuslTriples));
|
||||
+ } else {
|
||||
+ TripleAliases.append(begin(ARMMuslTriples), end(ARMMuslTriples));
|
||||
+ }
|
||||
+ break;
|
||||
+ case llvm::Triple::x86_64:
|
||||
+ LibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
|
||||
+ TripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
|
||||
+ BiarchLibDirs.append(begin(X86LibDirs), end(X86LibDirs));
|
||||
+ BiarchTripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::x86:
|
||||
+ LibDirs.append(begin(X86LibDirs), end(X86LibDirs));
|
||||
+ TripleAliases.append(begin(X86MuslTriples), end(X86MuslTriples));
|
||||
+ BiarchLibDirs.append(begin(X86_64LibDirs), end(X86_64LibDirs));
|
||||
+ BiarchTripleAliases.append(begin(X86_64MuslTriples), end(X86_64MuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::mips:
|
||||
+ LibDirs.append(begin(MIPSLibDirs), end(MIPSLibDirs));
|
||||
+ TripleAliases.append(begin(MIPSMuslTriples), end(MIPSMuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::ppc:
|
||||
+ LibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
|
||||
+ TripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
|
||||
+ BiarchLibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
|
||||
+ BiarchTripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::ppcle:
|
||||
+ LibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
|
||||
+ TripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
|
||||
+ BiarchLibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
|
||||
+ BiarchTripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::ppc64:
|
||||
+ LibDirs.append(begin(PPC64LibDirs), end(PPC64LibDirs));
|
||||
+ TripleAliases.append(begin(PPC64MuslTriples), end(PPC64MuslTriples));
|
||||
+ BiarchLibDirs.append(begin(PPCLibDirs), end(PPCLibDirs));
|
||||
+ BiarchTripleAliases.append(begin(PPCMuslTriples), end(PPCMuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::ppc64le:
|
||||
+ LibDirs.append(begin(PPC64LELibDirs), end(PPC64LELibDirs));
|
||||
+ TripleAliases.append(begin(PPC64LEMuslTriples), end(PPC64LEMuslTriples));
|
||||
+ BiarchLibDirs.append(begin(PPCLELibDirs), end(PPCLELibDirs));
|
||||
+ BiarchTripleAliases.append(begin(PPCLEMuslTriples), end(PPCLEMuslTriples));
|
||||
+ break;
|
||||
+ case llvm::Triple::riscv64:
|
||||
+ LibDirs.append(begin(RISCV64LibDirs), end(RISCV64LibDirs));
|
||||
+ TripleAliases.append(begin(RISCV64MuslTriples), end(RISCV64MuslTriples));
|
||||
+ break;
|
||||
+ default:
|
||||
+ break;
|
||||
+ }
|
||||
+ TripleAliases.push_back(TargetTriple.str());
|
||||
+ if (TargetTriple.str() != BiarchTriple.str())
|
||||
+ BiarchTripleAliases.push_back(BiarchTriple.str());
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
// Android targets should not use GNU/Linux tools or libraries.
|
||||
if (TargetTriple.isAndroid()) {
|
||||
static const char *const AArch64AndroidTriples[] = {
|
|
@ -1,13 +0,0 @@
|
|||
--- a/clang/lib/Driver/ToolChains/Linux.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/Linux.cpp
|
||||
@@ -504,10 +504,6 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const {
|
||||
Loader = "ld.so.1";
|
||||
break;
|
||||
case llvm::Triple::ppc64:
|
||||
- LibDir = "lib64";
|
||||
- Loader =
|
||||
- (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1";
|
||||
- break;
|
||||
case llvm::Triple::ppc64le:
|
||||
LibDir = "lib64";
|
||||
Loader =
|
|
@ -1,48 +0,0 @@
|
|||
--- a/clang/lib/Basic/Targets/PPC.h
|
||||
+++ b/clang/lib/Basic/Targets/PPC.h
|
||||
@@ -415,11 +415,10 @@ public:
|
||||
LongDoubleFormat = &llvm::APFloat::IEEEdouble();
|
||||
} else if ((Triple.getArch() == llvm::Triple::ppc64le)) {
|
||||
DataLayout = "e-m:e-i64:64-n32:64";
|
||||
- ABI = "elfv2";
|
||||
} else {
|
||||
DataLayout = "E-m:e-i64:64-n32:64";
|
||||
- ABI = "elfv1";
|
||||
}
|
||||
+ ABI = "elfv2";
|
||||
|
||||
if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || Triple.isMusl()) {
|
||||
LongDoubleWidth = LongDoubleAlign = 64;
|
||||
--- a/clang/lib/CodeGen/TargetInfo.cpp
|
||||
+++ b/clang/lib/CodeGen/TargetInfo.cpp
|
||||
@@ -10927,9 +10927,9 @@ const TargetCodeGenInfo &CodeGenModule::getTargetCodeGenInfo() {
|
||||
return SetCGInfo(new AIXTargetCodeGenInfo(Types, /*Is64Bit*/ true));
|
||||
|
||||
if (Triple.isOSBinFormatELF()) {
|
||||
- PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv1;
|
||||
- if (getTarget().getABI() == "elfv2")
|
||||
- Kind = PPC64_SVR4_ABIInfo::ELFv2;
|
||||
+ PPC64_SVR4_ABIInfo::ABIKind Kind = PPC64_SVR4_ABIInfo::ELFv2;
|
||||
+ if (getTarget().getABI() == "elfv1")
|
||||
+ Kind = PPC64_SVR4_ABIInfo::ELFv1;
|
||||
bool IsSoftFloat = CodeGenOpts.FloatABI == "soft";
|
||||
|
||||
return SetCGInfo(
|
||||
--- a/clang/lib/Driver/ToolChains/Clang.cpp
|
||||
+++ b/clang/lib/Driver/ToolChains/Clang.cpp
|
||||
@@ -1920,14 +1920,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args,
|
||||
const llvm::Triple &T = getToolChain().getTriple();
|
||||
if (T.isOSBinFormatELF()) {
|
||||
switch (getToolChain().getArch()) {
|
||||
- case llvm::Triple::ppc64: {
|
||||
- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) ||
|
||||
- T.isOSOpenBSD() || T.isMusl())
|
||||
- ABIName = "elfv2";
|
||||
- else
|
||||
- ABIName = "elfv1";
|
||||
- break;
|
||||
- }
|
||||
+ case llvm::Triple::ppc64:
|
||||
case llvm::Triple::ppc64le:
|
||||
ABIName = "elfv2";
|
||||
break;
|
|
@ -1,223 +0,0 @@
|
|||
From d7bead833631486e337e541e692d9b4a1ca14edd Mon Sep 17 00:00:00 2001
|
||||
From: Fangrui Song <i@maskray.me>
|
||||
Date: Fri, 28 Apr 2023 09:59:17 -0700
|
||||
Subject: [PATCH] [sanitizer] Remove crypt and crypt_r interceptors
|
||||
|
||||
From Florian Weimer's D144073
|
||||
|
||||
> On GNU/Linux (glibc), the crypt and crypt_r functions are not part of the main shared object (libc.so.6), but libcrypt (with multiple possible sonames). The sanitizer libraries do not depend on libcrypt, so it can happen that during sanitizer library initialization, no real implementation will be found because the crypt, crypt_r functions are not present in the process image (yet). If its interceptors are called nevertheless, this results in a call through a null pointer when the sanitizer library attempts to forward the call to the real implementation.
|
||||
>
|
||||
> Many distributions have already switched to libxcrypt, a library that is separate from glibc and that can be build with sanitizers directly (avoiding the need for interceptors). This patch disables building the interceptor for glibc targets.
|
||||
|
||||
Let's remove crypt and crypt_r interceptors (D68431) to fix issues with
|
||||
newer glibc.
|
||||
|
||||
For older glibc, msan will not know that an uninstrumented crypt_r call
|
||||
initializes `data`, so there is a risk for false positives. However, with some
|
||||
codebase survey, I think crypt_r uses are very few and the call sites typically
|
||||
have a `memset(&data, 0, sizeof(data));` anyway.
|
||||
|
||||
Fix https://github.com/google/sanitizers/issues/1365
|
||||
Related: https://bugzilla.redhat.com/show_bug.cgi?id=2169432
|
||||
|
||||
Reviewed By: #sanitizers, fweimer, thesamesam, vitalybuka
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D149403
|
||||
---
|
||||
.../sanitizer_common_interceptors.inc | 37 -------------------
|
||||
.../sanitizer_platform_interceptors.h | 2 -
|
||||
.../sanitizer_platform_limits_posix.cpp | 8 ----
|
||||
.../sanitizer_platform_limits_posix.h | 1 -
|
||||
.../TestCases/Linux/crypt_r.cpp | 36 ------------------
|
||||
.../TestCases/Posix/crypt.cpp | 32 ----------------
|
||||
6 files changed, 116 deletions(-)
|
||||
delete mode 100644 compiler-rt/test/sanitizer_common/TestCases/Linux/crypt_r.cpp
|
||||
delete mode 100644 compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp
|
||||
|
||||
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
|
||||
index b30c91f06cfeb0..490a8b12d8b17d 100644
|
||||
--- a/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
|
||||
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_common_interceptors.inc
|
||||
@@ -10086,41 +10086,6 @@ INTERCEPTOR(SSIZE_T, getrandom, void *buf, SIZE_T buflen, unsigned int flags) {
|
||||
#define INIT_GETRANDOM
|
||||
#endif
|
||||
|
||||
-#if SANITIZER_INTERCEPT_CRYPT
|
||||
-INTERCEPTOR(char *, crypt, char *key, char *salt) {
|
||||
- void *ctx;
|
||||
- COMMON_INTERCEPTOR_ENTER(ctx, crypt, key, salt);
|
||||
- COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1);
|
||||
- COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1);
|
||||
- char *res = REAL(crypt)(key, salt);
|
||||
- if (res != nullptr)
|
||||
- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1);
|
||||
- return res;
|
||||
-}
|
||||
-#define INIT_CRYPT COMMON_INTERCEPT_FUNCTION(crypt);
|
||||
-#else
|
||||
-#define INIT_CRYPT
|
||||
-#endif
|
||||
-
|
||||
-#if SANITIZER_INTERCEPT_CRYPT_R
|
||||
-INTERCEPTOR(char *, crypt_r, char *key, char *salt, void *data) {
|
||||
- void *ctx;
|
||||
- COMMON_INTERCEPTOR_ENTER(ctx, crypt_r, key, salt, data);
|
||||
- COMMON_INTERCEPTOR_READ_RANGE(ctx, key, internal_strlen(key) + 1);
|
||||
- COMMON_INTERCEPTOR_READ_RANGE(ctx, salt, internal_strlen(salt) + 1);
|
||||
- char *res = REAL(crypt_r)(key, salt, data);
|
||||
- if (res != nullptr) {
|
||||
- COMMON_INTERCEPTOR_WRITE_RANGE(ctx, data,
|
||||
- __sanitizer::struct_crypt_data_sz);
|
||||
- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, internal_strlen(res) + 1);
|
||||
- }
|
||||
- return res;
|
||||
-}
|
||||
-#define INIT_CRYPT_R COMMON_INTERCEPT_FUNCTION(crypt_r);
|
||||
-#else
|
||||
-#define INIT_CRYPT_R
|
||||
-#endif
|
||||
-
|
||||
#if SANITIZER_INTERCEPT_GETENTROPY
|
||||
INTERCEPTOR(int, getentropy, void *buf, SIZE_T buflen) {
|
||||
void *ctx;
|
||||
@@ -10698,8 +10663,6 @@ static void InitializeCommonInterceptors() {
|
||||
INIT_GETUSERSHELL;
|
||||
INIT_SL_INIT;
|
||||
INIT_GETRANDOM;
|
||||
- INIT_CRYPT;
|
||||
- INIT_CRYPT_R;
|
||||
INIT_GETENTROPY;
|
||||
INIT_QSORT;
|
||||
INIT_QSORT_R;
|
||||
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
|
||||
index eb39fabfd59839..c82ab5c2105621 100644
|
||||
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
|
||||
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_interceptors.h
|
||||
@@ -569,8 +569,6 @@
|
||||
#define SANITIZER_INTERCEPT_FDEVNAME SI_FREEBSD
|
||||
#define SANITIZER_INTERCEPT_GETUSERSHELL (SI_POSIX && !SI_ANDROID)
|
||||
#define SANITIZER_INTERCEPT_SL_INIT (SI_FREEBSD || SI_NETBSD)
|
||||
-#define SANITIZER_INTERCEPT_CRYPT (SI_POSIX && !SI_ANDROID)
|
||||
-#define SANITIZER_INTERCEPT_CRYPT_R (SI_LINUX && !SI_ANDROID)
|
||||
|
||||
#define SANITIZER_INTERCEPT_GETRANDOM \
|
||||
((SI_LINUX && __GLIBC_PREREQ(2, 25)) || SI_FREEBSD)
|
||||
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
||||
index a04eed7aa5a6e3..6d61d276d77e35 100644
|
||||
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
||||
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
||||
@@ -177,10 +177,6 @@ typedef struct user_fpregs elf_fpregset_t;
|
||||
# include "sanitizer_platform_interceptors.h"
|
||||
# include "sanitizer_platform_limits_posix.h"
|
||||
|
||||
-#if SANITIZER_INTERCEPT_CRYPT_R
|
||||
-#include <crypt.h>
|
||||
-#endif
|
||||
-
|
||||
namespace __sanitizer {
|
||||
unsigned struct_utsname_sz = sizeof(struct utsname);
|
||||
unsigned struct_stat_sz = sizeof(struct stat);
|
||||
@@ -300,10 +296,6 @@ namespace __sanitizer {
|
||||
unsigned struct_statvfs64_sz = sizeof(struct statvfs64);
|
||||
#endif // SANITIZER_GLIBC
|
||||
|
||||
-#if SANITIZER_INTERCEPT_CRYPT_R
|
||||
- unsigned struct_crypt_data_sz = sizeof(struct crypt_data);
|
||||
-#endif
|
||||
-
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
unsigned struct_timex_sz = sizeof(struct timex);
|
||||
unsigned struct_msqid_ds_sz = sizeof(struct msqid_ds);
|
||||
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
|
||||
index e6f298c26e1fb6..58244c9944a03a 100644
|
||||
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
|
||||
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.h
|
||||
@@ -309,7 +309,6 @@ extern unsigned struct_msqid_ds_sz;
|
||||
extern unsigned struct_mq_attr_sz;
|
||||
extern unsigned struct_timex_sz;
|
||||
extern unsigned struct_statvfs_sz;
|
||||
-extern unsigned struct_crypt_data_sz;
|
||||
#endif // SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
|
||||
struct __sanitizer_iovec {
|
||||
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Linux/crypt_r.cpp b/compiler-rt/test/sanitizer_common/TestCases/Linux/crypt_r.cpp
|
||||
deleted file mode 100644
|
||||
index 69bfb46aa5f171..00000000000000
|
||||
--- a/compiler-rt/test/sanitizer_common/TestCases/Linux/crypt_r.cpp
|
||||
+++ /dev/null
|
||||
@@ -1,36 +0,0 @@
|
||||
-// RUN: %clangxx -O0 -g %s -lcrypt -o %t && %run %t
|
||||
-
|
||||
-// crypt.h is missing from Android.
|
||||
-// UNSUPPORTED: android
|
||||
-
|
||||
-#include <assert.h>
|
||||
-#include <unistd.h>
|
||||
-#include <cstring>
|
||||
-#include <crypt.h>
|
||||
-
|
||||
-int main(int argc, char **argv) {
|
||||
- {
|
||||
- crypt_data cd;
|
||||
- cd.initialized = 0;
|
||||
- char *p = crypt_r("abcdef", "xz", &cd);
|
||||
- volatile size_t z = strlen(p);
|
||||
- }
|
||||
- {
|
||||
- crypt_data cd;
|
||||
- cd.initialized = 0;
|
||||
- char *p = crypt_r("abcdef", "$1$", &cd);
|
||||
- volatile size_t z = strlen(p);
|
||||
- }
|
||||
- {
|
||||
- crypt_data cd;
|
||||
- cd.initialized = 0;
|
||||
- char *p = crypt_r("abcdef", "$5$", &cd);
|
||||
- volatile size_t z = strlen(p);
|
||||
- }
|
||||
- {
|
||||
- crypt_data cd;
|
||||
- cd.initialized = 0;
|
||||
- char *p = crypt_r("abcdef", "$6$", &cd);
|
||||
- volatile size_t z = strlen(p);
|
||||
- }
|
||||
-}
|
||||
diff --git a/compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp b/compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp
|
||||
deleted file mode 100644
|
||||
index 3a8faaa1ae7682..00000000000000
|
||||
--- a/compiler-rt/test/sanitizer_common/TestCases/Posix/crypt.cpp
|
||||
+++ /dev/null
|
||||
@@ -1,32 +0,0 @@
|
||||
-// RUN: %clangxx -O0 -g %s -o %t -lcrypt && %run %t
|
||||
-
|
||||
-// crypt() is missing from Android and -lcrypt from darwin.
|
||||
-// UNSUPPORTED: android, darwin
|
||||
-
|
||||
-#include <assert.h>
|
||||
-#include <unistd.h>
|
||||
-#include <cstring>
|
||||
-#if __has_include(<crypt.h>)
|
||||
-#include <crypt.h>
|
||||
-#endif
|
||||
-
|
||||
-int
|
||||
-main (int argc, char** argv)
|
||||
-{
|
||||
- {
|
||||
- char *p = crypt("abcdef", "xz");
|
||||
- volatile size_t z = strlen(p);
|
||||
- }
|
||||
- {
|
||||
- char *p = crypt("abcdef", "$1$");
|
||||
- volatile size_t z = strlen(p);
|
||||
- }
|
||||
- {
|
||||
- char *p = crypt("abcdef", "$5$");
|
||||
- volatile size_t z = strlen(p);
|
||||
- }
|
||||
- {
|
||||
- char *p = crypt("abcdef", "$6$");
|
||||
- volatile size_t z = strlen(p);
|
||||
- }
|
||||
-}
|
||||
|
|
@ -1,35 +0,0 @@
|
|||
--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
|
||||
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cpp
|
||||
@@ -74,6 +74,10 @@
|
||||
#include <sys/utsname.h>
|
||||
#endif
|
||||
|
||||
+#if SANITIZER_LINUX && defined(__powerpc__)
|
||||
+#include <asm/ptrace.h>
|
||||
+#endif
|
||||
+
|
||||
#if SANITIZER_LINUX && !SANITIZER_ANDROID
|
||||
#include <sys/personality.h>
|
||||
#endif
|
||||
--- a/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
||||
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_platform_limits_posix.cpp
|
||||
@@ -94,7 +94,7 @@
|
||||
# include <utime.h>
|
||||
# include <sys/ptrace.h>
|
||||
# if defined(__mips64) || defined(__aarch64__) || defined(__arm__) || \
|
||||
- defined(__hexagon__) || SANITIZER_RISCV64
|
||||
+ defined(__hexagon__) || defined(__powerpc__) || SANITIZER_RISCV64
|
||||
# include <asm/ptrace.h>
|
||||
# ifdef __arm__
|
||||
typedef struct user_fpregs elf_fpregset_t;
|
||||
--- a/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
|
||||
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_stoptheworld_linux_libcdep.cpp
|
||||
@@ -31,7 +31,7 @@
|
||||
#include <sys/types.h> // for pid_t
|
||||
#include <sys/uio.h> // for iovec
|
||||
#include <elf.h> // for NT_PRSTATUS
|
||||
-#if (defined(__aarch64__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
|
||||
+#if (defined(__aarch64__) || defined(__powerpc__) || SANITIZER_RISCV64) && !SANITIZER_ANDROID
|
||||
// GLIBC 2.20+ sys/user does not include asm/ptrace.h
|
||||
# include <asm/ptrace.h>
|
||||
#endif
|
|
@ -1,22 +0,0 @@
|
|||
Based on patch from Alpine:
|
||||
https://gitlab.alpinelinux.org/alpine/aports/-/blob/693203c42aa1cde88cb547173ef67a98824973fd/main/llvm-runtimes/compiler-rt-sanitizer-supported-arch.patch
|
||||
|
||||
Sanitizer code is broken on armhf, armv7, s390x, x86, and probably riscv64 on musl,
|
||||
i.e. enable it only on x86_64, aarch64, and ppc64le.
|
||||
|
||||
--- a/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
|
||||
+++ b/compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake
|
||||
@@ -23,9 +23,13 @@ if(APPLE)
|
||||
set(X86_64 x86_64 x86_64h)
|
||||
endif()
|
||||
|
||||
+if (LIBCXX_HAS_MUSL_LIBC)
|
||||
+set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH ${X86_64} ${ARM64} ${PPC64})
|
||||
+else()
|
||||
set(ALL_SANITIZER_COMMON_SUPPORTED_ARCH ${X86} ${X86_64} ${PPC64} ${RISCV64}
|
||||
${ARM32} ${ARM64} ${MIPS32} ${MIPS64} ${S390X} ${SPARC} ${SPARCV9}
|
||||
${HEXAGON} ${LOONGARCH64})
|
||||
+endif()
|
||||
set(ALL_ASAN_SUPPORTED_ARCH ${X86} ${X86_64} ${ARM32} ${ARM64} ${RISCV64}
|
||||
${MIPS32} ${MIPS64} ${PPC64} ${S390X} ${SPARC} ${SPARCV9} ${HEXAGON}
|
||||
${LOONGARCH64})
|
|
@ -1,22 +0,0 @@
|
|||
See: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109180
|
||||
Avoid the following undefined reference:
|
||||
|
||||
/usr/lib/gcc/armv7l-linux-gnueabihf/12.2.0/../../../../armv7l-linux-gnueabihf/bin/ld: projects/libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o: in function `std::__1::__time_get_c_storage<char>::__x() const [clone .localalias]':
|
||||
locale.cpp:(.text._ZNKSt3__120__time_get_c_storageIcE3__xEv+0xb4): undefined reference to `std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_string()'
|
||||
/usr/lib/gcc/armv7l-linux-gnueabihf/12.2.0/../../../../armv7l-linux-gnueabihf/bin/ld: projects/libcxx/src/CMakeFiles/cxx_shared.dir/locale.cpp.o: in function `std::__1::__time_get_c_storage<char>::__X() const [clone .localalias]':
|
||||
|
||||
--- a/libcxx/src/CMakeLists.txt
|
||||
+++ b/libcxx/src/CMakeLists.txt
|
||||
@@ -155,6 +155,12 @@ if (LIBCXX_GENERATE_COVERAGE AND NOT LIB
|
||||
endif()
|
||||
add_library_flags_if(LIBCXX_COVERAGE_LIBRARY "${LIBCXX_COVERAGE_LIBRARY}")
|
||||
|
||||
+set(VOID_GCC_BUG_109180_WORKAROUND OFF CACHE BOOL "")
|
||||
+
|
||||
+if (VOID_GCC_BUG_109180_WORKAROUND)
|
||||
+ set_source_files_properties(string.cpp PROPERTIES COMPILE_FLAGS -fno-inline)
|
||||
+endif()
|
||||
+
|
||||
if (APPLE AND LLVM_USE_SANITIZER)
|
||||
if (("${LLVM_USE_SANITIZER}" STREQUAL "Address") OR
|
||||
("${LLVM_USE_SANITIZER}" STREQUAL "Address;Undefined") OR
|
|
@ -1,42 +0,0 @@
|
|||
From 484e64f7e7b2c0494d7b2dbfdd528bcd707ee652 Mon Sep 17 00:00:00 2001
|
||||
From: Roland McGrath <mcgrathr@google.com>
|
||||
Date: Thu, 27 Apr 2023 14:18:18 -0700
|
||||
Subject: [PATCH] [libc++] Use __is_convertible built-in when available
|
||||
|
||||
https://github.com/llvm/llvm-project/issues/62396 reports that
|
||||
GCC 13 barfs on parsing <type_traits> because of the declarations
|
||||
of `struct __is_convertible`. In GCC 13, `__is_convertible` is a
|
||||
built-in, but `__is_convertible_to` is not. Clang has both, so
|
||||
using either should be fine.
|
||||
|
||||
Reviewed By: #libc, philnik
|
||||
|
||||
Differential Revision: https://reviews.llvm.org/D149313
|
||||
---
|
||||
libcxx/include/__type_traits/is_convertible.h | 9 ++++++++-
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/libcxx/include/__type_traits/is_convertible.h b/libcxx/include/__type_traits/is_convertible.h
|
||||
index 873a64b5a486cc..749d6fd47af9c6 100644
|
||||
--- a/libcxx/include/__type_traits/is_convertible.h
|
||||
+++ b/libcxx/include/__type_traits/is_convertible.h
|
||||
@@ -24,11 +24,18 @@
|
||||
|
||||
_LIBCPP_BEGIN_NAMESPACE_STD
|
||||
|
||||
-#if __has_builtin(__is_convertible_to) && !defined(_LIBCPP_USE_IS_CONVERTIBLE_FALLBACK)
|
||||
+#if __has_builtin(__is_convertible) && !defined(_LIBCPP_USE_IS_CONVERTIBLE_FALLBACK)
|
||||
+
|
||||
+template <class _T1, class _T2>
|
||||
+struct _LIBCPP_TEMPLATE_VIS is_convertible : public integral_constant<bool, __is_convertible(_T1, _T2)> {};
|
||||
+
|
||||
+#elif __has_builtin(__is_convertible_to) && !defined(_LIBCPP_USE_IS_CONVERTIBLE_FALLBACK)
|
||||
|
||||
template <class _T1, class _T2> struct _LIBCPP_TEMPLATE_VIS is_convertible
|
||||
: public integral_constant<bool, __is_convertible_to(_T1, _T2)> {};
|
||||
|
||||
+// TODO: Remove this fallback when GCC < 13 support is no longer required.
|
||||
+// GCC 13 has the __is_convertible built-in.
|
||||
#else // __has_builtin(__is_convertible_to) && !defined(_LIBCPP_USE_IS_CONVERTIBLE_FALLBACK)
|
||||
|
||||
namespace __is_convertible_imp
|
|
@ -1,26 +0,0 @@
|
|||
--- a/libcxx/include/locale
|
||||
+++ b/libcxx/include/locale
|
||||
@@ -742,7 +742,11 @@ __num_get_signed_integral(const char* __a, const char* __a_end,
|
||||
typename remove_reference<decltype(errno)>::type __save_errno = errno;
|
||||
errno = 0;
|
||||
char *__p2;
|
||||
+#if defined(__linux__) && !defined(__GLIBC__)
|
||||
+ long long __ll = strtoll(__a, &__p2, __base);
|
||||
+#else
|
||||
long long __ll = strtoll_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
|
||||
+#endif
|
||||
typename remove_reference<decltype(errno)>::type __current_errno = errno;
|
||||
if (__current_errno == 0)
|
||||
errno = __save_errno;
|
||||
@@ -782,7 +786,11 @@ __num_get_unsigned_integral(const char* __a, const char* __a_end,
|
||||
typename remove_reference<decltype(errno)>::type __save_errno = errno;
|
||||
errno = 0;
|
||||
char *__p2;
|
||||
+#if defined(__linux__) && !defined(__GLIBC__)
|
||||
+ unsigned long long __ll = strtoull(__a, &__p2, __base);
|
||||
+#else
|
||||
unsigned long long __ll = strtoull_l(__a, &__p2, __base, _LIBCPP_GET_C_LOCALE);
|
||||
+#endif
|
||||
typename remove_reference<decltype(errno)>::type __current_errno = errno;
|
||||
if (__current_errno == 0)
|
||||
errno = __save_errno;
|
|
@ -1,22 +0,0 @@
|
|||
This ensures `is_iec559` is defined correctly under all long double ABIs,
|
||||
including musl and its 64-bit long double. Also, `__ppc__` or `__ppc64__`
|
||||
is not defined on gcc.
|
||||
|
||||
--- a/libcxx/include/limits
|
||||
+++ b/libcxx/include/limits
|
||||
@@ -426,8 +426,14 @@ protected:
|
||||
_LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type signaling_NaN() _NOEXCEPT {return __builtin_nansl("");}
|
||||
_LIBCPP_INLINE_VISIBILITY static _LIBCPP_CONSTEXPR type denorm_min() _NOEXCEPT {return __LDBL_DENORM_MIN__;}
|
||||
|
||||
-#if (defined(__ppc__) || defined(__ppc64__))
|
||||
+#if defined(__powerpc__) || defined(__powerpc64__)
|
||||
+#if (__LDBL_MAX_EXP__ > __DBL_MAX_EXP__) || (__LDBL_MANT_DIG__ == __DBL_MANT_DIG__)
|
||||
+ /* IEEE 754 quadruple or double precision */
|
||||
+ static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
|
||||
+#else
|
||||
+ /* 128-bit IBM double-double */
|
||||
static _LIBCPP_CONSTEXPR const bool is_iec559 = false;
|
||||
+#endif
|
||||
#else
|
||||
static _LIBCPP_CONSTEXPR const bool is_iec559 = true;
|
||||
#endif
|
|
@ -1,11 +0,0 @@
|
|||
--- a/libcxx/CMakeLists.txt
|
||||
+++ b/libcxx/CMakeLists.txt
|
||||
@@ -769,6 +769,8 @@ function(cxx_link_system_libraries target)
|
||||
target_link_libraries(${target} PRIVATE atomic)
|
||||
endif()
|
||||
|
||||
+#ssp target_link_libraries(${target} PRIVATE ssp_nonshared)
|
||||
+
|
||||
if (MINGW)
|
||||
target_link_libraries(${target} PRIVATE "${MINGW_LIBRARIES}")
|
||||
endif()
|
|
@ -1,25 +0,0 @@
|
|||
Also link to -ldl to prevent undefined references.
|
||||
|
||||
--- a/libcxxabi/src/CMakeLists.txt
|
||||
+++ b/libcxxabi/src/CMakeLists.txt
|
||||
@@ -73,6 +73,7 @@
|
||||
endif()
|
||||
|
||||
add_library_flags_if(LIBCXXABI_HAS_C_LIB c)
|
||||
+ add_library_flags_if(LIBCXXABI_HAS_C_LIB dl)
|
||||
endif()
|
||||
|
||||
if (LIBCXXABI_USE_LLVM_UNWINDER)
|
||||
--- a/libcxx/CMakeLists.txt
|
||||
+++ b/libcxx/CMakeLists.txt
|
||||
@@ -745,6 +745,10 @@
|
||||
target_link_libraries(${target} PRIVATE m)
|
||||
endif()
|
||||
|
||||
+ if (LIBCXX_HAS_C_LIB)
|
||||
+ target_link_libraries(${target} PRIVATE dl)
|
||||
+ endif()
|
||||
+
|
||||
if (LIBCXX_HAS_RT_LIB)
|
||||
target_link_libraries(${target} PRIVATE rt)
|
||||
endif()
|
|
@ -1,40 +0,0 @@
|
|||
gcc does not support using abi_tag in an extern "C" declaration:
|
||||
https://github.com/gcc-mirror/gcc/blob/cf59c8983ef6590f0d69014f8dc8778b5b7691c6/gcc/cp/tree.cc#L5354-L5359
|
||||
|
||||
diff --git a/libcxx/include/__support/musl/xlocale.h b/libcxx/include/__support/musl/xlocale.h
|
||||
index e674a41fa..f546119b9 100644
|
||||
--- a/libcxx/include/__support/musl/xlocale.h
|
||||
+++ b/libcxx/include/__support/musl/xlocale.h
|
||||
@@ -24,27 +24,27 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
-inline _LIBCPP_HIDE_FROM_ABI long long
|
||||
+static inline long long
|
||||
strtoll_l(const char *__nptr, char **__endptr, int __base, locale_t) {
|
||||
return ::strtoll(__nptr, __endptr, __base);
|
||||
}
|
||||
|
||||
-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
|
||||
+static inline unsigned long long
|
||||
strtoull_l(const char *__nptr, char **__endptr, int __base, locale_t) {
|
||||
return ::strtoull(__nptr, __endptr, __base);
|
||||
}
|
||||
|
||||
-inline _LIBCPP_HIDE_FROM_ABI long long
|
||||
+static inline long long
|
||||
wcstoll_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
|
||||
return ::wcstoll(__nptr, __endptr, __base);
|
||||
}
|
||||
|
||||
-inline _LIBCPP_HIDE_FROM_ABI unsigned long long
|
||||
+static inline unsigned long long
|
||||
wcstoull_l(const wchar_t *__nptr, wchar_t **__endptr, int __base, locale_t) {
|
||||
return ::wcstoull(__nptr, __endptr, __base);
|
||||
}
|
||||
|
||||
-inline _LIBCPP_HIDE_FROM_ABI long double
|
||||
+static inline long double
|
||||
wcstold_l(const wchar_t *__nptr, wchar_t **__endptr, locale_t) {
|
||||
return ::wcstold(__nptr, __endptr);
|
||||
}
|
|
@ -1,23 +0,0 @@
|
|||
From 1b4fdf18bc2aaa2d46bf072475dd9cbcd44a9fee Mon Sep 17 00:00:00 2001
|
||||
From: Nikita Popov <npopov@redhat.com>
|
||||
Date: Fri, 20 Jan 2023 10:11:01 +0100
|
||||
Subject: [PATCH] [libomp] Explicitly include <string> header (NFC)
|
||||
|
||||
This is required to build against libstdc++ 13. Debug.h uses
|
||||
std::stoi() from <string> without explicitly including it.
|
||||
---
|
||||
openmp/libomptarget/include/Debug.h | 1 +
|
||||
1 file changed, 1 insertion(+)
|
||||
|
||||
diff --git a/openmp/libomptarget/include/Debug.h b/openmp/libomptarget/include/Debug.h
|
||||
index 4e7da8b7d53f24..387dfe50659e43 100644
|
||||
--- a/openmp/libomptarget/include/Debug.h
|
||||
+++ b/openmp/libomptarget/include/Debug.h
|
||||
@@ -39,6 +39,7 @@
|
||||
|
||||
#include <atomic>
|
||||
#include <mutex>
|
||||
+#include <string>
|
||||
|
||||
/// 32-Bit field data attributes controlling information presented to the user.
|
||||
enum OpenMPInfoType : uint32_t {
|
|
@ -1,12 +0,0 @@
|
|||
diff --git a/openmp/runtime/src/CMakeLists.txt b/openmp/runtime/src/CMakeLists.txt
|
||||
index df1ca9d90..9d2c3b7b9 100644
|
||||
--- a/openmp/runtime/src/CMakeLists.txt
|
||||
+++ b/openmp/runtime/src/CMakeLists.txt
|
||||
@@ -150,6 +150,7 @@ libomp_get_libflags(LIBOMP_CONFIGURED_LIBFLAGS)
|
||||
# Build libomp library. Add LLVMSupport dependency if building in-tree with libomptarget profiling enabled.
|
||||
if(OPENMP_STANDALONE_BUILD OR (NOT OPENMP_ENABLE_LIBOMP_PROFILING))
|
||||
add_library(omp ${LIBOMP_LIBRARY_KIND} ${LIBOMP_SOURCE_FILES})
|
||||
+ set_target_properties(omp PROPERTIES VERSION ${LIBOMP_VERSION_MAJOR} SOVERSION ${LIBOMP_VERSION_MAJOR})
|
||||
# Linking command will include libraries in LIBOMP_CONFIGURED_LIBFLAGS
|
||||
target_link_libraries(omp ${LIBOMP_CONFIGURED_LIBFLAGS} ${LIBOMP_DL_LIBS})
|
||||
else()
|
|
@ -1,40 +0,0 @@
|
|||
--- a/lldb/source/Plugins/Process/Linux/Procfs.h
|
||||
+++ b/lldb/source/Plugins/Process/Linux/Procfs.h
|
||||
@@ -10,6 +10,7 @@
|
||||
// sys/procfs.h on Android/Linux for all supported architectures.
|
||||
|
||||
#include <sys/ptrace.h>
|
||||
+#include <asm/ptrace.h>
|
||||
|
||||
#include "lldb/lldb-types.h"
|
||||
|
||||
@@ -17,23 +18,13 @@
|
||||
|
||||
#include <vector>
|
||||
|
||||
-#ifdef __ANDROID__
|
||||
-#if defined(__arm64__) || defined(__aarch64__)
|
||||
-typedef unsigned long elf_greg_t;
|
||||
-typedef elf_greg_t
|
||||
- elf_gregset_t[(sizeof(struct user_pt_regs) / sizeof(elf_greg_t))];
|
||||
-typedef struct user_fpsimd_state elf_fpregset_t;
|
||||
-#ifndef NT_FPREGSET
|
||||
-#define NT_FPREGSET NT_PRFPREG
|
||||
-#endif // NT_FPREGSET
|
||||
-#elif defined(__mips__)
|
||||
-#ifndef NT_FPREGSET
|
||||
-#define NT_FPREGSET NT_PRFPREG
|
||||
-#endif // NT_FPREGSET
|
||||
-#endif
|
||||
-#else // __ANDROID__
|
||||
+#if !defined(__GLIBC__) && defined(__powerpc__)
|
||||
+#define pt_regs musl_pt_regs
|
||||
+#include <sys/procfs.h>
|
||||
+#undef pt_regs
|
||||
+#else
|
||||
#include <sys/procfs.h>
|
||||
-#endif // __ANDROID__
|
||||
+#endif
|
||||
|
||||
namespace lldb_private {
|
||||
namespace process_linux {
|
|
@ -1,57 +0,0 @@
|
|||
From faca3fbd15d0c3108493c3c54cd93138e049ac43 Mon Sep 17 00:00:00 2001
|
||||
From: Andrea Brancaleoni <miwaxe@gmail.com>
|
||||
Date: Tue, 8 Sep 2015 22:03:02 +0200
|
||||
Subject: [PATCH 3/3] musl
|
||||
|
||||
---
|
||||
include/llvm/Analysis/TargetLibraryInfo.h | 9 +++++++++
|
||||
lib/Support/DynamicLibrary.cpp | 2 +-
|
||||
lib/Support/Unix/Signals.inc | 6 +++---
|
||||
utils/unittest/googletest/src/gtest.cc | 1 +
|
||||
5 files changed, 17 insertions(+), 6 deletions(-)
|
||||
|
||||
diff --git a/include/llvm/Analysis/TargetLibraryInfo.h b/include/llvm/Analysis/TargetLibraryInfo.h
|
||||
index 34a8a1e3..1214ece5 100644
|
||||
--- a/llvm/include/llvm/Analysis/TargetLibraryInfo.h
|
||||
+++ b/llvm/include/llvm/Analysis/TargetLibraryInfo.h
|
||||
@@ -18,6 +18,15 @@
|
||||
#include "llvm/IR/PassManager.h"
|
||||
#include "llvm/Pass.h"
|
||||
|
||||
+#undef fopen64
|
||||
+#undef fseeko64
|
||||
+#undef fstat64
|
||||
+#undef fstatvfs64
|
||||
+#undef ftello64
|
||||
+#undef lstat64
|
||||
+#undef stat64
|
||||
+#undef tmpfile64
|
||||
+
|
||||
namespace llvm {
|
||||
template <typename T> class ArrayRef;
|
||||
class Triple;
|
||||
diff --git a/lib/Support/Unix/DynamicLibrary.inc b/lib/Support/Unix/DynamicLibrary.inc
|
||||
index a2a37996..2f86c470 100644
|
||||
--- a/llvm/lib/Support/Unix/DynamicLibrary.inc
|
||||
+++ b/llvm/lib/Support/Unix/DynamicLibrary.inc
|
||||
@@ -102,7 +102,7 @@ static void *DoSearch(const char* SymbolName) {
|
||||
|
||||
// This macro returns the address of a well-known, explicit symbol
|
||||
#define EXPLICIT_SYMBOL(SYM) \
|
||||
- if (!strcmp(SymbolName, #SYM)) return &SYM
|
||||
+ if (!strcmp(SymbolName, #SYM)) return (void *)&SYM
|
||||
|
||||
// Under glibc we have a weird situation. The stderr/out/in symbols are both
|
||||
// macros and global variables because of standards requirements. So, we
|
||||
diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc
|
||||
index d882ab2e..f1fb12d0 100644
|
||||
--- a/llvm/utils/unittest/googletest/src/gtest.cc
|
||||
+++ b/llvm/utils/unittest/googletest/src/gtest.cc
|
||||
@@ -128,6 +128,7 @@
|
||||
|
||||
#if GTEST_CAN_STREAM_RESULTS_
|
||||
# include <arpa/inet.h> // NOLINT
|
||||
+# include <sys/socket.h> // NOLINT
|
||||
# include <netdb.h> // NOLINT
|
||||
# include <sys/socket.h> // NOLINT
|
||||
# include <sys/types.h> // NOLINT
|
|
@ -1,30 +0,0 @@
|
|||
This patches LLVM to use ELFv2 on ppc64 unconditionally unless overridden. We
|
||||
need this because unlike most distros we use ELFv2 for both glibc and musl
|
||||
on big endian ppc64.
|
||||
|
||||
diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp
|
||||
index 0634833e..b7cbc2e7 100644
|
||||
--- a/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
|
||||
+++ b/llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
|
||||
@@ -222,9 +222,8 @@ static PPCTargetMachine::PPCABI computeTargetABI(const Triple &TT,
|
||||
|
||||
switch (TT.getArch()) {
|
||||
case Triple::ppc64le:
|
||||
- return PPCTargetMachine::PPC_ABI_ELFv2;
|
||||
case Triple::ppc64:
|
||||
- return PPCTargetMachine::PPC_ABI_ELFv1;
|
||||
+ return PPCTargetMachine::PPC_ABI_ELFv2;
|
||||
default:
|
||||
return PPCTargetMachine::PPC_ABI_UNKNOWN;
|
||||
}
|
||||
diff --git a/test/CodeGen/PowerPC/ppc64-elf-abi.ll b/test/CodeGen/PowerPC/ppc64-elf-abi.ll
|
||||
index 8b1cf6b5..296a2afa 100644
|
||||
--- a/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
|
||||
+++ b/llvm/test/CodeGen/PowerPC/ppc64-elf-abi.ll
|
||||
@@ -1,4 +1,5 @@
|
||||
-; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv1
|
||||
+; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
|
||||
+; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-musl < %s | FileCheck %s -check-prefix=CHECK-ELFv2
|
||||
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv1 < %s | FileCheck %s -check-prefix=CHECK-ELFv1
|
||||
; RUN: llc -verify-machineinstrs -mtriple=powerpc64-unknown-linux-gnu -target-abi elfv2 < %s | FileCheck %s -check-prefix=CHECK-ELFv2
|
||||
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu < %s | FileCheck %s -check-prefix=CHECK-ELFv2
|
|
@ -1,11 +0,0 @@
|
|||
--- a/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
|
||||
+++ b/llvm/lib/Target/PowerPC/PPCSubtarget.cpp
|
||||
@@ -165,7 +165,7 @@ void PPCSubtarget::initSubtargetFeatures(StringRef CPU, StringRef FS) {
|
||||
|
||||
if ((TargetTriple.isOSFreeBSD() && TargetTriple.getOSMajorVersion() >= 13) ||
|
||||
TargetTriple.isOSNetBSD() || TargetTriple.isOSOpenBSD() ||
|
||||
- TargetTriple.isMusl())
|
||||
+ isTargetLinux())
|
||||
SecurePlt = true;
|
||||
|
||||
if (HasSPE && IsPPC64)
|
|
@ -1,18 +0,0 @@
|
|||
This allows us to override the optimization level as not all platforms can
|
||||
deal with -O3.
|
||||
|
||||
--- a/llvm/CMakeLists.txt
|
||||
+++ b/llvm/CMakeLists.txt
|
||||
@@ -918,6 +918,12 @@ if( MINGW AND NOT "${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang" )
|
||||
llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "-O2")
|
||||
endif()
|
||||
|
||||
+set(VOID_CXX_OPT_FLAGS "" CACHE STRING "Optimization level to use")
|
||||
+
|
||||
+if (NOT VOID_CXX_OPT_FLAGS STREQUAL "")
|
||||
+ llvm_replace_compiler_option(CMAKE_CXX_FLAGS_RELEASE "-O3" "${VOID_CXX_OPT_FLAGS}")
|
||||
+endif()
|
||||
+
|
||||
# Put this before tblgen. Else we have a circular dependence.
|
||||
add_subdirectory(lib/Demangle)
|
||||
add_subdirectory(lib/Support)
|
|
@ -1,36 +0,0 @@
|
|||
From f3dbdd49c06bfafc1d6138094cf42889c14d38b6 Mon Sep 17 00:00:00 2001
|
||||
From: Samuel Holland <samuel@sholland.org>
|
||||
Date: Sun, 3 Nov 2019 10:57:27 -0600
|
||||
Subject: [PATCH] [LLVM][PowerPC] Assume BigPIC if no PIC level is specified
|
||||
|
||||
---
|
||||
llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp | 2 +-
|
||||
llvm/lib/Target/PowerPC/PPCMCInstLower.cpp | 2 +-
|
||||
2 files changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/lib/Target/PowerPC/PPCAsmPrinter.cpp b/lib/Target/PowerPC/PPCAsmPrinter.cpp
|
||||
index cce21f32..87ca5f9b 100644
|
||||
--- a/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
|
||||
+++ b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp
|
||||
@@ -520,7 +520,7 @@ void PPCAsmPrinter::EmitTlsCall(const MachineInstr *MI,
|
||||
|
||||
// Add 32768 offset to the symbol so we follow up the latest GOT/PLT ABI.
|
||||
if (Kind == MCSymbolRefExpr::VK_PLT && Subtarget->isSecurePlt() &&
|
||||
- M->getPICLevel() == PICLevel::BigPIC)
|
||||
+ M->getPICLevel() != PICLevel::SmallPIC)
|
||||
TlsRef = MCBinaryExpr::createAdd(
|
||||
TlsRef, MCConstantExpr::create(32768, OutContext), OutContext);
|
||||
const MachineOperand &MO = MI->getOperand(2);
|
||||
diff --git a/lib/Target/PowerPC/PPCMCInstLower.cpp b/lib/Target/PowerPC/PPCMCInstLower.cpp
|
||||
index 5cc180d7..a5b02565 100644
|
||||
--- a/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
|
||||
+++ b/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp
|
||||
@@ -117,7 +117,7 @@ static MCOperand GetSymbolRef(const MachineOperand &MO, const MCSymbol *Symbol,
|
||||
const MCExpr *Expr = MCSymbolRefExpr::create(Symbol, RefKind, Ctx);
|
||||
// If -msecure-plt -fPIC, add 32768 to symbol.
|
||||
if (Subtarget->isSecurePlt() && TM.isPositionIndependent() &&
|
||||
- M->getPICLevel() == PICLevel::BigPIC &&
|
||||
+ M->getPICLevel() != PICLevel::SmallPIC &&
|
||||
MO.getTargetFlags() == PPCII::MO_PLT)
|
||||
Expr =
|
||||
MCBinaryExpr::createAdd(Expr, MCConstantExpr::create(32768, Ctx), Ctx);
|
|
@ -1,25 +0,0 @@
|
|||
Fix failures in AllocationTests/MappedMemoryTest.* on aarch64:
|
||||
|
||||
Failing Tests (8):
|
||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.AllocAndRelease/3
|
||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.DuplicateNear/3
|
||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.EnabledWrite/3
|
||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.MultipleAllocAndRelease/3
|
||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.SuccessiveNear/3
|
||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.UnalignedNear/3
|
||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.ZeroNear/3
|
||||
LLVM-Unit :: Support/./SupportTests/AllocationTests/MappedMemoryTest.ZeroSizeNear/3
|
||||
|
||||
Upstream-Issue: https://bugs.llvm.org/show_bug.cgi?id=14278#c10
|
||||
|
||||
--- a/llvm/lib/Support/Unix/Memory.inc
|
||||
+++ b/llvm/lib/Support/Unix/Memory.inc
|
||||
@@ -58,7 +58,7 @@ static int getPosixProtectionFlags(unsigned Flags) {
|
||||
return PROT_READ | PROT_WRITE | PROT_EXEC;
|
||||
case llvm::sys::Memory::MF_EXEC:
|
||||
#if (defined(__FreeBSD__) || defined(__POWERPC__) || defined (__ppc__) || \
|
||||
- defined(_POWER) || defined(_ARCH_PPC))
|
||||
+ defined(_POWER) || defined(_ARCH_PPC) || (defined(__linux__) && defined(__aarch64__)))
|
||||
// On PowerPC, having an executable page that has no read permission
|
||||
// can have unintended consequences. The function InvalidateInstruction-
|
||||
// Cache uses instructions dcbf and icbi, both of which are treated by
|
|
@ -1,312 +0,0 @@
|
|||
# Template file for 'llvm15'
|
||||
pkgname=llvm15
|
||||
version=15.0.7
|
||||
revision=4
|
||||
build_wrksrc=llvm
|
||||
build_style=cmake
|
||||
_ext_suffix=".cpython-${py3_ver/./}-linux-${XBPS_TARGET_LIBC/glibc/gnu}.so"
|
||||
configure_args="
|
||||
-DCMAKE_BUILD_TYPE=Release -Wno-dev
|
||||
-DENABLE_LINKER_BUILD_ID=YES
|
||||
-DLLDB_USE_SYSTEM_SIX=YES
|
||||
-DSPHINX_WARNINGS_AS_ERRORS=NO
|
||||
-DLLVM_INSTALL_UTILS=YES
|
||||
-DLLVM_BUILD_LLVM_DYLIB=YES
|
||||
-DLLVM_LINK_LLVM_DYLIB=YES
|
||||
-DLLVM_ENABLE_RTTI=YES
|
||||
-DLLVM_ENABLE_FFI=YES
|
||||
-DLLVM_BINUTILS_INCDIR=/usr/include
|
||||
-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=NO
|
||||
-DLLDB_PYTHON_RELATIVE_PATH=lib/python${py3_ver}/site-packages
|
||||
-DLLDB_PYTHON_EXE_RELATIVE_PATH=bin/python${py3_ver}
|
||||
-DLLDB_PYTHON_EXT_SUFFIX=$_ext_suffix"
|
||||
hostmakedepends="perl python3 zlib-devel libffi-devel swig"
|
||||
makedepends="python3-devel zlib-devel elfutils-devel libffi-devel libedit-devel
|
||||
libxml2-devel binutils-devel"
|
||||
depends="libllvm15>=${version}_${revision}"
|
||||
short_desc="LLVM Compiler Infrastructure Project - Version 15"
|
||||
maintainer="Daniel Martinez <danielmartinez@cock.li>"
|
||||
license="Apache-2.0"
|
||||
homepage="https://www.llvm.org"
|
||||
distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-project-${version}.src.tar.xz"
|
||||
checksum=8b5fcb24b4128cf04df1b0b9410ce8b1a729cb3c544e6da885d234280dedeac6
|
||||
lib32disabled=yes
|
||||
python_version=3
|
||||
|
||||
conflicts="llvm17"
|
||||
|
||||
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
|
||||
configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES
|
||||
-DCOMPILER_RT_BUILD_GWP_ASAN=OFF"
|
||||
fi
|
||||
|
||||
# "operand out of range" assembler failures
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
ppc64*) ;;
|
||||
ppc*) configure_args+=" -DCLANG_ENABLE_CLANGD=OFF" ;;
|
||||
esac
|
||||
|
||||
_enabled_projects="clang;clang-tools-extra;compiler-rt;lld"
|
||||
|
||||
_lldb_enable=yes
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
ppc64le*) ;;
|
||||
ppc*|i686*|riscv64*) _lldb_enable=no ;;
|
||||
esac
|
||||
|
||||
|
||||
subpackages="clang-tools-extra15 clang15 clang-analyzer15 libclang15 libclang-cpp15
|
||||
libllvm15"
|
||||
|
||||
if [ "$_lldb_enable" = "yes" ]; then
|
||||
# XXX fails to cross compile due to python
|
||||
_enabled_projects+=";lldb"
|
||||
subpackages+=" lldb15 lldb15-devel"
|
||||
fi
|
||||
|
||||
subpackages+=" lld15 lld15-devel"
|
||||
|
||||
configure_args+=" -DLLVM_ENABLE_PROJECTS=${_enabled_projects}"
|
||||
|
||||
post_patch() {
|
||||
if [ "$_lldb_enable" = "yes" ]; then
|
||||
if [ "$XBPS_TARGET_LIBC" = "musl" ]; then
|
||||
vsed -i 's|__ptrace_request|int|g' \
|
||||
${wrksrc}/lldb/source/Plugins/Process/Linux/NativeProcessLinux.cpp
|
||||
fi
|
||||
fi
|
||||
|
||||
# update config.guess for better platform detection
|
||||
cp $XBPS_COMMONDIR/environment/configure/automake/config.guess \
|
||||
${wrksrc}/llvm/cmake
|
||||
}
|
||||
|
||||
pre_configure() {
|
||||
local triplet
|
||||
|
||||
# Vastly reduce size of debugging symbols:
|
||||
CFLAGS=${CFLAGS/ -g/ -g1}
|
||||
CXXFLAGS=${CXXFLAGS/ -g/ -g1}
|
||||
|
||||
# since gcc9, the build likes to blow up for ppc32 apparently because
|
||||
# of clang being too large for a 24-bit relative call to the PLT, so
|
||||
# optimize for size instead
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
ppc64*) ;;
|
||||
mips*-musl|ppc*) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;;
|
||||
armv*) configure_args+=" -DVOID_GCC_BUG_109180_WORKAROUND=ON" ;;
|
||||
esac
|
||||
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
msg_normal "Building host tblgen\n"
|
||||
mkdir -p build/HOST
|
||||
cd build/HOST
|
||||
CC="$BUILD_CC" CXX="$BUILD_CXX" CFLAGS="$BUILD_CFLAGS" \
|
||||
CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \
|
||||
cmake ../.. -DCMAKE_BUILD_TYPE=Release \
|
||||
-DLLVM_ENABLE_PROJECTS=${_enabled_projects}
|
||||
make ${makejobs} -C utils/TableGen
|
||||
make ${makejobs} -C tools/clang/utils/TableGen
|
||||
make ${makejobs} -C tools/clang/tools/extra/clang-tidy/misc/ConfusableTable
|
||||
make ${makejobs} -C tools/clang/tools/extra/pseudo/gen
|
||||
[ "$_lldb_enable" = "yes" ] && make ${makejobs} -C tools/lldb/utils/TableGen
|
||||
configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/llvm-tblgen"
|
||||
configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/clang-tblgen"
|
||||
configure_args+=" -DCLANG_TIDY_CONFUSABLE_CHARS_GEN=${wrksrc}/llvm/build/HOST/bin/clang-tidy-confusable-chars-gen"
|
||||
configure_args+=" -DCLANG_PSEUDO_GEN=${wrksrc}/llvm/build/HOST/bin/clang-pseudo-gen"
|
||||
[ "$_lldb_enable" = "yes" ] && configure_args+=" -DLLDB_TABLEGEN=${wrksrc}/llvm/build/HOST/bin/lldb-tblgen"
|
||||
cd ../..
|
||||
fi
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
arm*-musl|i686-musl)
|
||||
# sanitizer code is broken since it duplicates some libc bits
|
||||
configure_args+=" -DCOMPILER_RT_BUILD_SANITIZERS=OFF"
|
||||
;;
|
||||
esac
|
||||
|
||||
case "$XBPS_TARGET_MACHINE" in
|
||||
i686*) _arch="X86";;
|
||||
x86_64*) _arch="X86";;
|
||||
armv5*) _arch="Armv5te";;
|
||||
armv6*) _arch="Armv6";;
|
||||
armv7*) _arch="Armv7";;
|
||||
aarch64*) _arch="AArch64";;
|
||||
mips*) _arch="Mips";;
|
||||
ppc*) _arch="PowerPC";;
|
||||
riscv64*) _arch="RISCV64";;
|
||||
esac
|
||||
|
||||
triplet=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}
|
||||
|
||||
configure_args+=" -DLLVM_TARGET_ARCH=${_arch}"
|
||||
configure_args+=" -DLLVM_HOST_TRIPLE=${triplet}"
|
||||
configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${triplet}"
|
||||
}
|
||||
|
||||
do_install() {
|
||||
cd build
|
||||
cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake
|
||||
|
||||
# Required for multilib.
|
||||
if [ "$XBPS_TARGET_MACHINE" = "x86_64" ]; then
|
||||
for _header in llvm-config; do
|
||||
mv ${DESTDIR}/usr/include/llvm/Config/${_header}{,-64}.h
|
||||
vinstall ${FILESDIR}/llvm-Config-${_header}.h 644 \
|
||||
usr/include/llvm/Config ${_header}.h
|
||||
done
|
||||
fi
|
||||
|
||||
# Remove llvm-config-host in cross builds.
|
||||
if [ "$CROSS_BUILD" ]; then
|
||||
rm -f ${DESTDIR}/usr/bin/llvm-config-host
|
||||
fi
|
||||
}
|
||||
|
||||
clang-analyzer15_package() {
|
||||
pycompile_dirs="usr/share/scan-view"
|
||||
depends="clang15-${version}_${revision} python3 perl"
|
||||
short_desc+=" - A source code analysis framework"
|
||||
homepage="https://clang-analyzer.llvm.org/"
|
||||
conflicts="clang-analyzer17"
|
||||
pkg_install() {
|
||||
vmove "usr/bin/scan-*"
|
||||
vmove "usr/libexec/*analyzer"
|
||||
vmove "usr/share/scan-*"
|
||||
vmove usr/share/man/man1/scan-build.1
|
||||
}
|
||||
}
|
||||
|
||||
clang-tools-extra15_package() {
|
||||
lib32disabled=yes
|
||||
depends="clang15-${version}_${revision} python3"
|
||||
short_desc+=" - Extra Clang tools"
|
||||
homepage="https://clang.llvm.org/extra/"
|
||||
conflicts="clang-tools-extra17"
|
||||
pkg_install() {
|
||||
vmove usr/bin/clang-apply-replacements
|
||||
vmove usr/bin/clang-change-namespace
|
||||
vmove usr/bin/clang-doc
|
||||
vmove usr/bin/clang-include-fixer
|
||||
vmove usr/bin/clang-move
|
||||
vmove usr/bin/clang-pseudo
|
||||
vmove usr/bin/clang-query
|
||||
vmove usr/bin/clang-reorder-fields
|
||||
vmove usr/bin/clang-tidy
|
||||
vmove usr/bin/clangd
|
||||
vmove usr/bin/find-all-symbols
|
||||
vmove usr/bin/hmaptool
|
||||
vmove usr/bin/modularize
|
||||
vmove usr/bin/pp-trace
|
||||
vmove usr/include/clang-tidy
|
||||
vmove "usr/lib/libclangApplyReplacements*"
|
||||
vmove "usr/lib/libclangChangeNamespace*"
|
||||
vmove "usr/lib/libclangDaemon*"
|
||||
vmove "usr/lib/libclangDoc*"
|
||||
vmove "usr/lib/libclangIncludeCleaner*"
|
||||
vmove "usr/lib/libclangIncludeFixer*"
|
||||
vmove "usr/lib/libclangMove*"
|
||||
vmove "usr/lib/libclangPseudo*"
|
||||
vmove "usr/lib/libclangReorderFields*"
|
||||
vmove "usr/lib/libclangQuery*"
|
||||
vmove "usr/lib/libclangTidy*"
|
||||
vmove "usr/lib/libclangd*"
|
||||
vmove "usr/lib/libfindAllSymbols*"
|
||||
vmove "usr/share/clang/*find-all-symbols*"
|
||||
vmove "usr/share/clang/*include-fixer*"
|
||||
vmove "usr/share/clang/*tidy*"
|
||||
}
|
||||
}
|
||||
|
||||
clang15_package() {
|
||||
lib32disabled=yes
|
||||
depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel
|
||||
libclang15-${version}_${revision}"
|
||||
short_desc+=" - C language family frontend"
|
||||
homepage="https://clang.llvm.org/"
|
||||
conflicts="clang17"
|
||||
pkg_install() {
|
||||
vmove "usr/bin/*clang*"
|
||||
vmove usr/bin/c-index-test
|
||||
vmove usr/bin/diagtool
|
||||
vmove usr/include/clang
|
||||
vmove usr/include/clang-c
|
||||
vmove usr/lib/clang
|
||||
vmove usr/lib/cmake/clang
|
||||
vmove "usr/lib/libclang*.a"
|
||||
vmove "usr/lib/libclang*.so"
|
||||
vmove usr/share/clang
|
||||
}
|
||||
}
|
||||
|
||||
libclang15_package() {
|
||||
short_desc+=" - C frontend runtime library"
|
||||
pkg_install() {
|
||||
vmove "usr/lib/libclang.so.*"
|
||||
}
|
||||
}
|
||||
|
||||
libclang-cpp15_package() {
|
||||
short_desc+=" - C frontend runtime library (C++ interface)"
|
||||
pkg_install() {
|
||||
vmove "usr/lib/libclang-cpp.so.*"
|
||||
}
|
||||
}
|
||||
|
||||
lld15_package() {
|
||||
lib32disabled=yes
|
||||
short_desc+=" - linker"
|
||||
homepage="https://lld.llvm.org"
|
||||
conflicts="lld17"
|
||||
pkg_install() {
|
||||
vmove "usr/bin/ld.lld*"
|
||||
vmove "usr/bin/ld64.lld*"
|
||||
vmove "usr/bin/lld*"
|
||||
vmove usr/bin/wasm-ld
|
||||
}
|
||||
}
|
||||
|
||||
lld15-devel_package() {
|
||||
lib32disabled=yes
|
||||
short_desc+=" - linker - development files"
|
||||
homepage="https://lld.llvm.org"
|
||||
depends="lld15>=${version}_${revision}"
|
||||
conflicts="lld17-devel"
|
||||
pkg_install() {
|
||||
vmove usr/include/lld
|
||||
vmove usr/lib/cmake/lld
|
||||
vmove "usr/lib/liblld*a"
|
||||
}
|
||||
}
|
||||
|
||||
lldb15_package() {
|
||||
lib32disabled=yes
|
||||
depends+=" python3-six"
|
||||
short_desc+=" - LLDB debugger"
|
||||
homepage="https://lldb.llvm.org/"
|
||||
conflicts="lldb17"
|
||||
pkg_install() {
|
||||
vmove "usr/bin/*lldb*"
|
||||
vmove "usr/lib/liblldb*so.*"
|
||||
vmove usr/lib/python*
|
||||
}
|
||||
}
|
||||
|
||||
lldb15-devel_package() {
|
||||
lib32disabled=yes
|
||||
depends="lldb15>=${version}_${revision}"
|
||||
short_desc+=" - LLDB debugger - development files"
|
||||
conflicts="lldb17-devel"
|
||||
pkg_install() {
|
||||
vmove usr/include/lldb
|
||||
vmove "usr/lib/liblldb*.so"
|
||||
}
|
||||
}
|
||||
|
||||
libllvm15_package() {
|
||||
short_desc+=" - runtime library"
|
||||
pkg_install() {
|
||||
vmove "usr/lib/libLLVM-*.so*"
|
||||
}
|
||||
}
|
|
@ -1,3 +0,0 @@
|
|||
site="https://github.com/llvm/llvm-project/releases"
|
||||
pattern="llvmorg-\K(15)\.(\d+)\.+\d+(-rc\d+)?"
|
||||
ignore="*-rc*"
|
|
@ -1,7 +1,7 @@
|
|||
# Template file for 'removed-packages'
|
||||
pkgname=removed-packages
|
||||
version=0.1.20240625
|
||||
revision=2
|
||||
version=0.1.20240727
|
||||
revision=1
|
||||
build_style=meta
|
||||
short_desc="Uninstalls packages removed from repository"
|
||||
maintainer="Piotr Wójcik <chocimier@tlen.pl>"
|
||||
|
@ -67,6 +67,9 @@ replaces="
|
|||
celestia-gtk<=1.6.1_5
|
||||
cgminer<=4.11.1_1
|
||||
clamz<=0.5_4
|
||||
clang-analyzer15<=15.0.7_4
|
||||
clang-tools-extra15<=15.0.7_4
|
||||
clang15<=15.0.7_4
|
||||
clementine-spotify<=1.4.0rc1-343-gb49afcc5b
|
||||
cointop<=1.6.10_1
|
||||
composer8.0<=2.5.8_1
|
||||
|
@ -352,6 +355,8 @@ replaces="
|
|||
libbitcoin-system<=3.6.0_10
|
||||
libclang-32bit<=15.0.7_3
|
||||
libclang-cpp-32bit<=15.0.7_3
|
||||
libclang-cpp15<=15.0.7_4
|
||||
libclang15<=15.0.7_4
|
||||
libco-devel<=20_1
|
||||
libco<=20_1
|
||||
libdbusmenu-qt<=0.9.2_4
|
||||
|
@ -373,6 +378,7 @@ replaces="
|
|||
libkscreen<=5.27.11_3
|
||||
libllvm10<=10.0.0_8
|
||||
libllvm11<=11.0.0_2
|
||||
libllvm15<=15.0.7_4
|
||||
libllvm6.0<=6.0.1_8
|
||||
libllvm7<=7.0.1_10
|
||||
libllvm8<=8.0.1_5
|
||||
|
@ -429,9 +435,14 @@ replaces="
|
|||
litecoin<=0.18.1_11
|
||||
livewallpaper<=0.5.0_2
|
||||
lld-devel<=15.0.7_3
|
||||
lld15-devel<=15.0.7_4
|
||||
lld15<=15.0.7_4
|
||||
lldb-devel<=15.0.7_3
|
||||
lldb15-devel<=15.0.7_4
|
||||
lldb15<=15.0.7_4
|
||||
llvm10<=10.0.0_8
|
||||
llvm11<=11.0.0_2
|
||||
llvm15<=15.0.7_4
|
||||
llvm3.9<=3.9.1_5
|
||||
llvm6.0<=6.0.1_8
|
||||
llvm7<=7.0.1_10
|
||||
|
|
Loading…
Reference in New Issue