From 9fd98e4e5728f3066e965aaa6a2d2858f116f537 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Sun, 8 Nov 2020 18:10:10 +0100 Subject: [PATCH 01/16] New package: llvm11-11.0.0 --- common/shlibs | 8 +- srcpkgs/clang | 2 +- srcpkgs/clang-analyzer | 2 +- srcpkgs/clang-tools-extra | 2 +- srcpkgs/libclang | 2 +- srcpkgs/libclang-cpp | 2 +- srcpkgs/libllvm11 | 1 + srcpkgs/lld | 2 +- srcpkgs/lld-devel | 2 +- srcpkgs/lldb | 2 +- srcpkgs/lldb-devel | 2 +- srcpkgs/llvm/template | 8 +- .../llvm11/files/llvm-Config-llvm-config.h | 9 + ...clang-001-fix-unwind-chain-inclusion.patch | 44 +++ .../clang/clang-002-add-musl-triples.patch | 91 +++++ .../clang-003-ppc64-dynamic-linker-path.patch | 18 + .../clang/clang-004-ppc64-musl-elfv2.patch | 30 ++ .../compiler-rt/compiler-rt-armv5.patch | 11 + srcpkgs/llvm11/files/patches/lldb/musl.patch | 31 ++ .../files/patches/llvm/llvm-001-musl.patch | 58 ++++ .../llvm/llvm-002-musl-ppc64-elfv2.patch | 26 ++ .../patches/llvm/llvm-003-secureplt.patch | 11 + .../patches/llvm/llvm-004-override-opt.patch | 18 + .../patches/llvm/llvm-005-ppc-bigpic.patch | 38 +++ .../llvm/llvm-006-aarch64-mf_exec.patch | 25 ++ srcpkgs/llvm11/template | 310 ++++++++++++++++++ srcpkgs/llvm11/update | 2 + 27 files changed, 740 insertions(+), 17 deletions(-) create mode 120000 srcpkgs/libllvm11 create mode 100644 srcpkgs/llvm11/files/llvm-Config-llvm-config.h create mode 100644 srcpkgs/llvm11/files/patches/clang/clang-001-fix-unwind-chain-inclusion.patch create mode 100644 srcpkgs/llvm11/files/patches/clang/clang-002-add-musl-triples.patch create mode 100644 srcpkgs/llvm11/files/patches/clang/clang-003-ppc64-dynamic-linker-path.patch create mode 100644 srcpkgs/llvm11/files/patches/clang/clang-004-ppc64-musl-elfv2.patch create mode 100644 srcpkgs/llvm11/files/patches/compiler-rt/compiler-rt-armv5.patch create mode 100644 srcpkgs/llvm11/files/patches/lldb/musl.patch create mode 100644 srcpkgs/llvm11/files/patches/llvm/llvm-001-musl.patch create mode 100644 srcpkgs/llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch create mode 100644 srcpkgs/llvm11/files/patches/llvm/llvm-003-secureplt.patch create mode 100644 srcpkgs/llvm11/files/patches/llvm/llvm-004-override-opt.patch create mode 100644 srcpkgs/llvm11/files/patches/llvm/llvm-005-ppc-bigpic.patch create mode 100644 srcpkgs/llvm11/files/patches/llvm/llvm-006-aarch64-mf_exec.patch create mode 100644 srcpkgs/llvm11/template create mode 100644 srcpkgs/llvm11/update diff --git a/common/shlibs b/common/shlibs index cba355c3bfa..7242e863a8c 100644 --- a/common/shlibs +++ b/common/shlibs @@ -1028,10 +1028,10 @@ libuchardet.so.0 uchardet-0.0.6_1 libgtksourceviewmm-3.0.so.0 gtksourceviewmm-3.2.0_1 libyajl.so.2 yajl-2.0.1_1 libconfuse.so.2 confuse-3.2.1_1 -liblldb.so.10 lldb-10.0.0_1 -libclang.so.10 libclang-10.0.0_3 -libclang-cpp.so.10 libclang-cpp-10.0.0_3 -libLLVM-10.so libllvm10-10.0.0_1 +liblldb.so.11 lldb-11.0.0_1 +libclang.so.11 libclang-11.0.0_1 +libclang-cpp.so.11 libclang-cpp-11.0.0_1 +libLLVM-11.so libllvm11-11.0.0_1 libisofs.so.6 libisofs-0.6.24_1 libmpack.so.0 libmpack-1.0.5_1 libGeoIP.so.1 libgeoip-1.4.8_1 diff --git a/srcpkgs/clang b/srcpkgs/clang index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/clang +++ b/srcpkgs/clang @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/clang-analyzer b/srcpkgs/clang-analyzer index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/clang-analyzer +++ b/srcpkgs/clang-analyzer @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/clang-tools-extra b/srcpkgs/clang-tools-extra index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/clang-tools-extra +++ b/srcpkgs/clang-tools-extra @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/libclang b/srcpkgs/libclang index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/libclang +++ b/srcpkgs/libclang @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/libclang-cpp b/srcpkgs/libclang-cpp index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/libclang-cpp +++ b/srcpkgs/libclang-cpp @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/libllvm11 b/srcpkgs/libllvm11 new file mode 120000 index 00000000000..decc3806c95 --- /dev/null +++ b/srcpkgs/libllvm11 @@ -0,0 +1 @@ +llvm11 \ No newline at end of file diff --git a/srcpkgs/lld b/srcpkgs/lld index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/lld +++ b/srcpkgs/lld @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/lld-devel b/srcpkgs/lld-devel index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/lld-devel +++ b/srcpkgs/lld-devel @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/lldb b/srcpkgs/lldb index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/lldb +++ b/srcpkgs/lldb @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/lldb-devel b/srcpkgs/lldb-devel index 59f26575cb3..decc3806c95 120000 --- a/srcpkgs/lldb-devel +++ b/srcpkgs/lldb-devel @@ -1 +1 @@ -llvm10 \ No newline at end of file +llvm11 \ No newline at end of file diff --git a/srcpkgs/llvm/template b/srcpkgs/llvm/template index 84c8d3a8e6e..eb71e7d67fa 100644 --- a/srcpkgs/llvm/template +++ b/srcpkgs/llvm/template @@ -1,10 +1,10 @@ # Template file for 'llvm' pkgname=llvm -version=10.0.0 -revision=2 +version=11.0.0 +revision=1 build_style=meta -depends="llvm10" -replaces="llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0" +depends="llvm11" +replaces="llvm10>=0 llvm9>=0 llvm8>=0 llvm7>=0 llvm6.0>=0 llvm3.9>=0" short_desc="LLVM meta package" maintainer="Enno Boland " license="Public Domain" diff --git a/srcpkgs/llvm11/files/llvm-Config-llvm-config.h b/srcpkgs/llvm11/files/llvm-Config-llvm-config.h new file mode 100644 index 00000000000..2fa08c9be69 --- /dev/null +++ b/srcpkgs/llvm11/files/llvm-Config-llvm-config.h @@ -0,0 +1,9 @@ +#include + +#if __WORDSIZE == 32 +#include "llvm-config-32.h" +#elif __WORDSIZE == 64 +#include "llvm-config-64.h" +#else +#error "Unknown word size" +#endif diff --git a/srcpkgs/llvm11/files/patches/clang/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm11/files/patches/clang/clang-001-fix-unwind-chain-inclusion.patch new file mode 100644 index 00000000000..04244bcc274 --- /dev/null +++ b/srcpkgs/llvm11/files/patches/clang/clang-001-fix-unwind-chain-inclusion.patch @@ -0,0 +1,44 @@ +From 352974169f0d2b5da3d5321f588f5e3b5941330e Mon Sep 17 00:00:00 2001 +From: Andrea Brancaleoni +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/lib/Headers/unwind.h ++++ b/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() + /* 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 + + #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 diff --git a/srcpkgs/llvm11/files/patches/clang/clang-002-add-musl-triples.patch b/srcpkgs/llvm11/files/patches/clang/clang-002-add-musl-triples.patch new file mode 100644 index 00000000000..aefc88d48f5 --- /dev/null +++ b/srcpkgs/llvm11/files/patches/clang/clang-002-add-musl-triples.patch @@ -0,0 +1,91 @@ +--- a/lib/Driver/ToolChains/Gnu.cpp ++++ b/lib/Driver/ToolChains/Gnu.cpp +@@ -1938,7 +1938,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"}; +@@ -2077,6 +2078,78 @@ 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 PPC64MuslTriples[] = {"powerpc64-linux-musl"}; ++ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-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::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)); ++ 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[] = { diff --git a/srcpkgs/llvm11/files/patches/clang/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm11/files/patches/clang/clang-003-ppc64-dynamic-linker-path.patch new file mode 100644 index 00000000000..4b9b0b891d5 --- /dev/null +++ b/srcpkgs/llvm11/files/patches/clang/clang-003-ppc64-dynamic-linker-path.patch @@ -0,0 +1,18 @@ +--- a/lib/Driver/ToolChains/Linux.cpp ++++ b/lib/Driver/ToolChains/Linux.cpp +@@ -593,12 +593,12 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { + Loader = "ld.so.1"; + break; + case llvm::Triple::ppc64: +- LibDir = "lib64"; ++ LibDir = "lib"; + Loader = +- (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1"; ++ (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; + break; + case llvm::Triple::ppc64le: +- LibDir = "lib64"; ++ LibDir = "lib"; + Loader = + (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; + break; diff --git a/srcpkgs/llvm11/files/patches/clang/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm11/files/patches/clang/clang-004-ppc64-musl-elfv2.patch new file mode 100644 index 00000000000..2d6731d3b53 --- /dev/null +++ b/srcpkgs/llvm11/files/patches/clang/clang-004-ppc64-musl-elfv2.patch @@ -0,0 +1,30 @@ +--- a/lib/Basic/Targets/PPC.h ++++ b/lib/Basic/Targets/PPC.h +@@ -408,11 +408,10 @@ + SuitableAlign = 64; + } else if ((Triple.getArch() == llvm::Triple::ppc64le)) { + resetDataLayout("e-m:e-i64:64-n32:64"); +- ABI = "elfv2"; + } else { + resetDataLayout("E-m:e-i64:64-n32:64"); +- ABI = "elfv1"; + } ++ ABI = "elfv2"; + + if (Triple.isOSFreeBSD() || Triple.isOSOpenBSD() || + Triple.getOS() == llvm::Triple::AIX || Triple.isMusl()) { +--- a/lib/Driver/ToolChains/Clang.cpp ++++ b/lib/Driver/ToolChains/Clang.cpp +@@ -1883,11 +1883,7 @@ + ABIName = "elfv1-qpx"; + break; + } +- if ((T.isOSFreeBSD() && T.getOSMajorVersion() >= 13) || +- T.isOSOpenBSD() || T.isMusl()) +- ABIName = "elfv2"; +- else +- ABIName = "elfv1"; ++ ABIName = "elfv2"; + break; + } + case llvm::Triple::ppc64le: diff --git a/srcpkgs/llvm11/files/patches/compiler-rt/compiler-rt-armv5.patch b/srcpkgs/llvm11/files/patches/compiler-rt/compiler-rt-armv5.patch new file mode 100644 index 00000000000..893dd244c5b --- /dev/null +++ b/srcpkgs/llvm11/files/patches/compiler-rt/compiler-rt-armv5.patch @@ -0,0 +1,11 @@ +--- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt ++++ compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt +@@ -428,8 +428,6 @@ + ) + set(arm_Thumb1_SOURCES + ${arm_Thumb1_JT_SOURCES} +- ${arm_Thumb1_SjLj_EH_SOURCES} +- ${arm_Thumb1_VFPv2_SOURCES} + ${arm_Thumb1_icache_SOURCES} + ) + diff --git a/srcpkgs/llvm11/files/patches/lldb/musl.patch b/srcpkgs/llvm11/files/patches/lldb/musl.patch new file mode 100644 index 00000000000..37416bb478d --- /dev/null +++ b/srcpkgs/llvm11/files/patches/lldb/musl.patch @@ -0,0 +1,31 @@ +--- a/source/Plugins/Process/Linux/Procfs.h ++++ b/source/Plugins/Process/Linux/Procfs.h +@@ -10,21 +10,12 @@ + // sys/procfs.h on Android/Linux for all supported architectures. + + #include ++#include + +-#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 ++#undef pt_regs ++#else + #include +-#endif // __ANDROID__ ++#endif diff --git a/srcpkgs/llvm11/files/patches/llvm/llvm-001-musl.patch b/srcpkgs/llvm11/files/patches/llvm/llvm-001-musl.patch new file mode 100644 index 00000000000..a0eddbf58be --- /dev/null +++ b/srcpkgs/llvm11/files/patches/llvm/llvm-001-musl.patch @@ -0,0 +1,58 @@ +From faca3fbd15d0c3108493c3c54cd93138e049ac43 Mon Sep 17 00:00:00 2001 +From: Andrea Brancaleoni +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 e0a1ee3..465b65a 100644 +--- a/include/llvm/Analysis/TargetLibraryInfo.h ++++ b/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 class ArrayRef; + +diff --git a/utils/unittest/googletest/src/gtest.cc b/utils/unittest/googletest/src/gtest.cc +index 5780764..1d548c1 100644 +--- a/utils/unittest/googletest/src/gtest.cc ++++ b/utils/unittest/googletest/src/gtest.cc +@@ -128,6 +128,7 @@ + + #if GTEST_CAN_STREAM_RESULTS_ + # include // NOLINT ++# include // NOLINT + # include // NOLINT + # include // NOLINT + # include // NOLINT +-- +2.5.1 + +--- a/lib/Support/Unix/DynamicLibrary.inc ++++ b/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/srcpkgs/llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch new file mode 100644 index 00000000000..1ff8aaa239c --- /dev/null +++ b/srcpkgs/llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch @@ -0,0 +1,26 @@ +This patches LLVM to use ELFv2 on ppc64 uncoditionally unless overridden. We +need this because unlike most distros we use ELFv2 for both glibc and musl +on big endian ppc64. + +--- a/lib/Target/PowerPC/PPCTargetMachine.cpp ++++ b/lib/Target/PowerPC/PPCTargetMachine.cpp +@@ -213,9 +213,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; + } +--- a/test/CodeGen/PowerPC/ppc64-elf-abi.ll ++++ b/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 diff --git a/srcpkgs/llvm11/files/patches/llvm/llvm-003-secureplt.patch b/srcpkgs/llvm11/files/patches/llvm/llvm-003-secureplt.patch new file mode 100644 index 00000000000..fcbaba86335 --- /dev/null +++ b/srcpkgs/llvm11/files/patches/llvm/llvm-003-secureplt.patch @@ -0,0 +1,11 @@ +--- llvm/lib/Target/PowerPC/PPCSubtarget.cpp ++++ llvm/lib/Target/PowerPC/PPCSubtarget.cpp +@@ -150,7 +150,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) diff --git a/srcpkgs/llvm11/files/patches/llvm/llvm-004-override-opt.patch b/srcpkgs/llvm11/files/patches/llvm/llvm-004-override-opt.patch new file mode 100644 index 00000000000..30d1e14e193 --- /dev/null +++ b/srcpkgs/llvm11/files/patches/llvm/llvm-004-override-opt.patch @@ -0,0 +1,18 @@ +This allows us to override the optimization level as not all platforms can +deal with -O3. + +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -893,6 +893,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) diff --git a/srcpkgs/llvm11/files/patches/llvm/llvm-005-ppc-bigpic.patch b/srcpkgs/llvm11/files/patches/llvm/llvm-005-ppc-bigpic.patch new file mode 100644 index 00000000000..4e0045d97d3 --- /dev/null +++ b/srcpkgs/llvm11/files/patches/llvm/llvm-005-ppc-bigpic.patch @@ -0,0 +1,38 @@ +From f3dbdd49c06bfafc1d6138094cf42889c14d38b6 Mon Sep 17 00:00:00 2001 +From: Samuel Holland +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/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp b/llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp +index 269b84b4e8d..03246a5242c 100644 +--- llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp ++++ llvm/lib/Target/PowerPC/PPCAsmPrinter.cpp +@@ -488,7 +488,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/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp b/llvm/lib/Target/PowerPC/PPCMCInstLower.cpp +index 027e6bd1ba0..ae461f4eea9 100644 +--- llvm/lib/Target/PowerPC/PPCMCInstLower.cpp ++++ llvm/lib/Target/PowerPC/PPCMCInstLower.cpp +@@ -116,7 +116,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); +-- +2.23.0 diff --git a/srcpkgs/llvm11/files/patches/llvm/llvm-006-aarch64-mf_exec.patch b/srcpkgs/llvm11/files/patches/llvm/llvm-006-aarch64-mf_exec.patch new file mode 100644 index 00000000000..a64a317ee6c --- /dev/null +++ b/srcpkgs/llvm11/files/patches/llvm/llvm-006-aarch64-mf_exec.patch @@ -0,0 +1,25 @@ +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/lib/Support/Unix/Memory.inc ++++ b/lib/Support/Unix/Memory.inc +@@ -59,7 +59,7 @@ + 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 diff --git a/srcpkgs/llvm11/template b/srcpkgs/llvm11/template new file mode 100644 index 00000000000..ec291544474 --- /dev/null +++ b/srcpkgs/llvm11/template @@ -0,0 +1,310 @@ +# Template file for 'llvm11' +pkgname=llvm11 +version=11.0.0 +revision=1 +wrksrc="llvm-${version}.src" +build_style=cmake +configure_args=" + -DCMAKE_BUILD_TYPE=Release + -DLLVM_INSTALL_UTILS=ON + -DLLVM_BUILD_LLVM_DYLIB=ON + -DLLVM_LINK_LLVM_DYLIB=ON + -DLLVM_ENABLE_RTTI=ON + -DLLVM_ENABLE_FFI=ON + -DLLVM_BINUTILS_INCDIR=/usr/include" +hostmakedepends="groff perl python3 zlib-devel libffi-devel swig" +makedepends="python3-devel zlib-devel libffi-devel libedit-devel + libxml2-devel binutils-devel libatomic-devel" +depends="libllvm11" +short_desc="Low Level Virtual Machine" +maintainer="Robin Voetter " +license="NCSA" +homepage="https://www.llvm.org" +distfiles=" + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-${version}.src.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/lldb-${version}.src.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/lld-${version}.src.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/clang-${version}.src.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/clang-tools-extra-${version}.src.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/compiler-rt-${version}.src.tar.xz" +checksum=" + 913f68c898dfb4a03b397c5e11c6a2f39d0f22ed7665c9cefa87a34423a72469 + 8570c09f57399e21e0eea0dcd66ae0231d47eafc7a04d6fe5c4951b13c4d2c72 + efe7be4a7b7cdc6f3bcf222827c6f837439e6e656d12d6c885d5c8a80ff4fd1c + 0f96acace1e8326b39f220ba19e055ba99b0ab21c2475042dbc6a482649c5209 + fed318f75d560d0e0ae728e2fb8abce71e9d0c60dd120c9baac118522ce76c09 + 374aff82ff573a449f9aabbd330a5d0a441181c535a3599996127378112db234" +lib32disabled=yes +python_version=3 + +_lldb_enable=yes + +if [ "$CROSS_BUILD" ]; then + _lldb_enable=no +fi + +case "$XBPS_TARGET_MACHINE" in + ppc64le*) ;; + ppc*) _lldb_enable=no ;; +esac + +subpackages="clang-tools-extra clang clang-analyzer libclang libclang-cpp libllvm11" +if [ "$_lldb_enable" = "yes" ]; then + # XXX fails to cross compile due to python + subpackages+=" lldb lldb-devel" +fi +subpackages+=" lld lld-devel" + +post_patch() { + # patches + cd ${XBPS_BUILDDIR}/llvm-${version}.src + for i in ${FILESDIR}/patches/llvm/llvm-*.patch; do + msg_normal "Applying $i to llvm\n" + patch -sNp1 -i ${i} + done + + cd ${XBPS_BUILDDIR}/clang-${version}.src + for i in ${FILESDIR}/patches/clang/clang-*.patch; do + msg_normal "Applying $i to clang\n" + patch -sNp1 -i ${i} + done + + case "$XBPS_TARGET_MACHINE" in + armv5*) + cd ${XBPS_BUILDDIR}/compiler-rt-${version}.src + for i in ${FILESDIR}/patches/compiler-rt/compiler-rt-*.patch; do + msg_normal "Applying $i to compiler-rt\n" + patch -sNp1 -i ${i} + done + ;; + esac + + if [ "$_lldb_enable" = "yes" ]; then + cd ${XBPS_BUILDDIR}/lldb-${version}.src + for i in ${FILESDIR}/patches/lldb/*.patch; do + msg_normal "Applying $i to lldb\n" + patch -sNp1 -i ${i} + done + case "$XBPS_TARGET_MACHINE" in + *-musl) sed -i 's|__ptrace_request|int|g' source/Plugins/Process/Linux/NativeProcessLinux.cpp ;; + esac + fi + + # Move clang files into the llvm source. + if [ -d ${XBPS_BUILDDIR}/clang-${version}.src ]; then + mv ${XBPS_BUILDDIR}/clang-${version}.src ${wrksrc}/tools/clang + fi + # Move clang-tools-extra files into llvm source. + if [ -d ${XBPS_BUILDDIR}/clang-tools-extra-${version}.src ]; then + mv ${XBPS_BUILDDIR}/clang-tools-extra-${version}.src ${wrksrc}/tools/clang/tools/extra + fi + # Move lld files into the llvm source. + if [ -d ${XBPS_BUILDDIR}/lld-${version}.src ]; then + mv ${XBPS_BUILDDIR}/lld-${version}.src ${wrksrc}/tools/lld + fi + # Move lldb files into the llvm source. + if [ -d ${XBPS_BUILDDIR}/lldb-${version}.src ]; then + if [ "$_lldb_enable" = "yes" ]; then + mv ${XBPS_BUILDDIR}/lldb-${version}.src ${wrksrc}/tools/lldb + else + rm -rf ${XBPS_BUILDDIR}/lldb-${version}.src + fi + fi + # Move compiler-rt files into the llvm source. + if [ -d ${XBPS_BUILDDIR}/compiler-rt-${version}.src ]; then + mv ${XBPS_BUILDDIR}/compiler-rt-${version}.src ${wrksrc}/projects/compiler-rt + fi + case "$XBPS_TARGET_MACHINE" in + *-musl) + # Disable sanitizers + sed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' ${wrksrc}/projects/compiler-rt/cmake/config-ix.cmake + ;; + esac + +} + +pre_configure() { + # 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 + mips*-musl|ppc|ppc-musl) configure_args+=" -DVOID_CXX_OPT_FLAGS=-Os" ;; + 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 + make ${makejobs} -C utils/TableGen + make ${makejobs} -C tools/clang/utils/TableGen + configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/build/HOST/bin/llvm-tblgen" + configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/build/HOST/bin/clang-tblgen" + cd ../.. + fi + + 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";; + esac + configure_args+=" -DLLVM_TARGET_ARCH=${_arch}" + configure_args+=" -DLLVM_HOST_TRIPLE=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}" + configure_args+=" -DLLVM_DEFAULT_TARGET_TRIPLE=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}" +} + +do_install() { + vlicense LICENSE.TXT + + cd build + cmake -DCMAKE_INSTALL_PREFIX=${DESTDIR}/usr -P cmake_install.cmake + + # Fix permissions of static libs + chmod -x ${DESTDIR}/usr/lib/*.a + + # 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-analyzer_package() { + pycompile_dirs="usr/share/scan-view" + depends="clang-${version}_${revision} python3" + short_desc+=" - A source code analysis framework" + homepage="https://clang-analyzer.llvm.org/" + pkg_install() { + vmove usr/share/man/man1/scan-build.1 + vmove "/usr/bin/scan-*" + vmove "/usr/share/scan-*" + vmove "/usr/libexec/*analyzer" + } +} + +clang-tools-extra_package() { + lib32disabled=yes + depends="clang-${version}_${revision} python3" + short_desc+=" - Extra Clang tools" + homepage="https://clang.llvm.org/extra/" + pkg_install() { + vmove usr/bin/clang-apply-replacements + vmove usr/bin/clang-query + vmove usr/bin/clang-rename + vmove usr/bin/clang-tidy + vmove usr/bin/diagtool + vmove usr/bin/find-all-symbols + vmove usr/bin/hmaptool + vmove usr/bin/modularize + vmove usr/bin/pp-trace + vmove usr/bin/sancov + vmove "usr/lib/libclangApplyReplacements*" + vmove "usr/lib/libclangQuery*" + vmove "usr/lib/libclangTidy*" + vmove "usr/share/clang/*tidy*" + } +} + +clang_package() { + lib32disabled=yes + depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel + libclang-${version}_${revision}" + short_desc+=" - C language family frontend" + homepage="https://clang.llvm.org/" + pkg_install() { + vmove usr/include/clang + vmove usr/include/clang-c + vmove "usr/bin/*clang*" + vmove usr/bin/c-index-test + vmove usr/lib/clang + vmove usr/lib/cmake/clang + vmove "usr/lib/libclang*.a" + vmove "usr/lib/libclang*.so" + vmove "usr/share/clang" + } +} + +libclang_package() { + short_desc+=" - C frontend runtime library" + pkg_install() { + vmove "usr/lib/libclang.so.*" + } +} + +libclang-cpp_package() { + short_desc+=" - C frontend runtime library (C++ interface)" + pkg_install() { + vmove "usr/lib/libclang-cpp.so.*" + } +} + +lld_package() { + lib32disabled=yes + short_desc+=" - linker" + homepage="https://lld.llvm.org" + pkg_install() { + vmove usr/bin/lld* + vmove usr/bin/wasm-ld + vmove usr/bin/ld.lld* + } +} + +lld-devel_package() { + lib32disabled=yes + short_desc+=" - linker - development files" + homepage="https://lld.llvm.org" + pkg_install() { + vmove usr/include/lld + vmove "usr/lib/liblld*a" + } +} + +lldb_package() { + lib32disabled=yes + depends+=" python3-six" + short_desc+=" - LLDB debugger" + homepage="https://lldb.llvm.org/" + pkg_install() { + vmove usr/bin/*lldb* + vmove usr/lib/liblldb*so.* + vmove /usr/lib/python* + # Depend on python3-six instead of conflicting + rm ${PKGDESTDIR}/usr/lib/python3*/site-packages/six.py + } +} + +lldb-devel_package() { + lib32disabled=yes + depends="lldb>=${version}_${revision}" + short_desc+=" - LLDB debugger - development files" + pkg_install() { + vmove usr/include/lldb + vmove "usr/lib/liblldb*.so" + } +} + +libllvm11_package() { + short_desc+=" - runtime library" + pkg_install() { + vmove "usr/lib/libLLVM-*.so*" + } +} diff --git a/srcpkgs/llvm11/update b/srcpkgs/llvm11/update new file mode 100644 index 00000000000..3d09eaff373 --- /dev/null +++ b/srcpkgs/llvm11/update @@ -0,0 +1,2 @@ +site=https://releases.llvm.org/ +pattern="'\K[\d\.]*(?=')" From d59d98ffb86234ccaae615ffa8043a8a1d9cdfed Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Sun, 8 Nov 2020 18:21:16 +0100 Subject: [PATCH 02/16] Rebuild llvm10 standalone --- srcpkgs/llvm10/files/llvm-Config-config.h | 9 - ...clang-001-fix-unwind-chain-inclusion.patch | 44 ---- .../clang/clang-002-add-musl-triples.patch | 91 -------- .../clang-003-ppc64-dynamic-linker-path.patch | 18 -- .../clang/clang-004-ppc64-musl-elfv2.patch | 30 --- .../compiler-rt/compiler-rt-armv5.patch | 11 - srcpkgs/llvm10/files/patches/lldb/musl.patch | 31 --- srcpkgs/llvm10/template | 211 +----------------- 8 files changed, 5 insertions(+), 440 deletions(-) delete mode 100644 srcpkgs/llvm10/files/llvm-Config-config.h delete mode 100644 srcpkgs/llvm10/files/patches/clang/clang-001-fix-unwind-chain-inclusion.patch delete mode 100644 srcpkgs/llvm10/files/patches/clang/clang-002-add-musl-triples.patch delete mode 100644 srcpkgs/llvm10/files/patches/clang/clang-003-ppc64-dynamic-linker-path.patch delete mode 100644 srcpkgs/llvm10/files/patches/clang/clang-004-ppc64-musl-elfv2.patch delete mode 100644 srcpkgs/llvm10/files/patches/compiler-rt/compiler-rt-armv5.patch delete mode 100644 srcpkgs/llvm10/files/patches/lldb/musl.patch diff --git a/srcpkgs/llvm10/files/llvm-Config-config.h b/srcpkgs/llvm10/files/llvm-Config-config.h deleted file mode 100644 index c369b4551f7..00000000000 --- a/srcpkgs/llvm10/files/llvm-Config-config.h +++ /dev/null @@ -1,9 +0,0 @@ -#include - -#if __WORDSIZE == 32 -#include "config-32.h" -#elif __WORDSIZE == 64 -#include "config-64.h" -#else -#error "Unknown word size" -#endif diff --git a/srcpkgs/llvm10/files/patches/clang/clang-001-fix-unwind-chain-inclusion.patch b/srcpkgs/llvm10/files/patches/clang/clang-001-fix-unwind-chain-inclusion.patch deleted file mode 100644 index 04244bcc274..00000000000 --- a/srcpkgs/llvm10/files/patches/clang/clang-001-fix-unwind-chain-inclusion.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 352974169f0d2b5da3d5321f588f5e3b5941330e Mon Sep 17 00:00:00 2001 -From: Andrea Brancaleoni -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/lib/Headers/unwind.h -+++ b/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() - /* 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 - - #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 diff --git a/srcpkgs/llvm10/files/patches/clang/clang-002-add-musl-triples.patch b/srcpkgs/llvm10/files/patches/clang/clang-002-add-musl-triples.patch deleted file mode 100644 index aefc88d48f5..00000000000 --- a/srcpkgs/llvm10/files/patches/clang/clang-002-add-musl-triples.patch +++ /dev/null @@ -1,91 +0,0 @@ ---- a/lib/Driver/ToolChains/Gnu.cpp -+++ b/lib/Driver/ToolChains/Gnu.cpp -@@ -1938,7 +1938,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"}; -@@ -2077,6 +2078,78 @@ 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 PPC64MuslTriples[] = {"powerpc64-linux-musl"}; -+ static const char *const PPC64LEMuslTriples[] = {"powerpc64le-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::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)); -+ 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[] = { diff --git a/srcpkgs/llvm10/files/patches/clang/clang-003-ppc64-dynamic-linker-path.patch b/srcpkgs/llvm10/files/patches/clang/clang-003-ppc64-dynamic-linker-path.patch deleted file mode 100644 index 4b9b0b891d5..00000000000 --- a/srcpkgs/llvm10/files/patches/clang/clang-003-ppc64-dynamic-linker-path.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/lib/Driver/ToolChains/Linux.cpp -+++ b/lib/Driver/ToolChains/Linux.cpp -@@ -593,12 +593,12 @@ std::string Linux::getDynamicLinker(const ArgList &Args) const { - Loader = "ld.so.1"; - break; - case llvm::Triple::ppc64: -- LibDir = "lib64"; -+ LibDir = "lib"; - Loader = -- (tools::ppc::hasPPCAbiArg(Args, "elfv2")) ? "ld64.so.2" : "ld64.so.1"; -+ (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; - break; - case llvm::Triple::ppc64le: -- LibDir = "lib64"; -+ LibDir = "lib"; - Loader = - (tools::ppc::hasPPCAbiArg(Args, "elfv1")) ? "ld64.so.1" : "ld64.so.2"; - break; diff --git a/srcpkgs/llvm10/files/patches/clang/clang-004-ppc64-musl-elfv2.patch b/srcpkgs/llvm10/files/patches/clang/clang-004-ppc64-musl-elfv2.patch deleted file mode 100644 index f1af1b79b5f..00000000000 --- a/srcpkgs/llvm10/files/patches/clang/clang-004-ppc64-musl-elfv2.patch +++ /dev/null @@ -1,30 +0,0 @@ ---- a/lib/Basic/Targets/PPC.h -+++ b/lib/Basic/Targets/PPC.h -@@ -386,11 +386,10 @@ public: - - if ((Triple.getArch() == llvm::Triple::ppc64le)) { - resetDataLayout("e-m:e-i64:64-n32:64"); -- ABI = "elfv2"; - } else { - resetDataLayout("E-m:e-i64:64-n32:64"); -- ABI = "elfv1"; - } -+ ABI = "elfv2"; - - if (Triple.getOS() == llvm::Triple::AIX) - SuitableAlign = 64; ---- a/lib/Driver/ToolChains/Clang.cpp -+++ b/lib/Driver/ToolChains/Clang.cpp -@@ -1918,11 +1918,7 @@ void Clang::AddPPCTargetArgs(const ArgList &Args, - ABIName = "elfv1-qpx"; - break; - } -- -- if (T.isMusl() || (T.isOSFreeBSD() && T.getOSMajorVersion() >= 13)) -- ABIName = "elfv2"; -- else -- ABIName = "elfv1"; -+ ABIName = "elfv2"; - break; - } - case llvm::Triple::ppc64le: diff --git a/srcpkgs/llvm10/files/patches/compiler-rt/compiler-rt-armv5.patch b/srcpkgs/llvm10/files/patches/compiler-rt/compiler-rt-armv5.patch deleted file mode 100644 index 893dd244c5b..00000000000 --- a/srcpkgs/llvm10/files/patches/compiler-rt/compiler-rt-armv5.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt -+++ compiler-rt-10.0.0.src/lib/builtins/CMakeLists.txt -@@ -428,8 +428,6 @@ - ) - set(arm_Thumb1_SOURCES - ${arm_Thumb1_JT_SOURCES} -- ${arm_Thumb1_SjLj_EH_SOURCES} -- ${arm_Thumb1_VFPv2_SOURCES} - ${arm_Thumb1_icache_SOURCES} - ) - diff --git a/srcpkgs/llvm10/files/patches/lldb/musl.patch b/srcpkgs/llvm10/files/patches/lldb/musl.patch deleted file mode 100644 index 37416bb478d..00000000000 --- a/srcpkgs/llvm10/files/patches/lldb/musl.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- a/source/Plugins/Process/Linux/Procfs.h -+++ b/source/Plugins/Process/Linux/Procfs.h -@@ -10,21 +10,12 @@ - // sys/procfs.h on Android/Linux for all supported architectures. - - #include -+#include - --#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 -+#undef pt_regs -+#else - #include --#endif // __ANDROID__ -+#endif diff --git a/srcpkgs/llvm10/template b/srcpkgs/llvm10/template index bfbddb48127..b800da58d1c 100644 --- a/srcpkgs/llvm10/template +++ b/srcpkgs/llvm10/template @@ -1,7 +1,7 @@ # Template file for 'llvm10' pkgname=llvm10 version=10.0.0 -revision=6 +revision=7 wrksrc="llvm-${version}.src" build_style=cmake configure_args=" @@ -20,40 +20,14 @@ short_desc="Low Level Virtual Machine" maintainer="q66 " license="NCSA" homepage="https://www.llvm.org" -distfiles=" - https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-${version}.src.tar.xz - https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/lldb-${version}.src.tar.xz - https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/lld-${version}.src.tar.xz - https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/clang-${version}.src.tar.xz - https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/clang-tools-extra-${version}.src.tar.xz - https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/compiler-rt-${version}.src.tar.xz" -checksum=" - df83a44b3a9a71029049ec101fb0077ecbbdf5fe41e395215025779099a98fdf - dd1ffcb42ed033f5167089ec4c6ebe84fbca1db4a9eaebf5c614af09d89eb135 - b9a0d7c576eeef05bc06d6e954938a01c5396cee1d1e985891e0b1cf16e3d708 - 885b062b00e903df72631c5f98b9579ed1ed2790f74e5646b4234fa084eacb21 - acdf8cf6574b40e6b1dabc93e76debb84a9feb6f22970126b04d4ba18b92911c - 6a7da64d3a0a7320577b68b9ca4933bdcab676e898b759850e827333c3282c75" +distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-${version}.src.tar.xz" +checksum="df83a44b3a9a71029049ec101fb0077ecbbdf5fe41e395215025779099a98fdf" lib32disabled=yes python_version=3 -_lldb_enable=yes +conflicts="llvm11>=0" -if [ "$CROSS_BUILD" ]; then - _lldb_enable=no -fi - -case "$XBPS_TARGET_MACHINE" in - ppc64le*) ;; - ppc*) _lldb_enable=no ;; -esac - -subpackages="clang-tools-extra clang clang-analyzer libclang libclang-cpp libllvm10" -if [ "$_lldb_enable" = "yes" ]; then - # XXX fails to cross compile due to python - subpackages+=" lldb lldb-devel" -fi -subpackages+=" lld lld-devel" +subpackages="libllvm10" post_patch() { # patches @@ -62,65 +36,6 @@ post_patch() { msg_normal "Applying $i to llvm\n" patch -sNp1 -i ${i} done - - cd ${XBPS_BUILDDIR}/clang-${version}.src - for i in ${FILESDIR}/patches/clang/clang-*.patch; do - msg_normal "Applying $i to clang\n" - patch -sNp1 -i ${i} - done - - case "$XBPS_TARGET_MACHINE" in - armv5*) - cd ${XBPS_BUILDDIR}/compiler-rt-${version}.src - for i in ${FILESDIR}/patches/compiler-rt/compiler-rt-*.patch; do - msg_normal "Applying $i to compiler-rt\n" - patch -sNp1 -i ${i} - done - ;; - esac - - if [ "$_lldb_enable" = "yes" ]; then - cd ${XBPS_BUILDDIR}/lldb-${version}.src - for i in ${FILESDIR}/patches/lldb/*.patch; do - msg_normal "Applying $i to lldb\n" - patch -sNp1 -i ${i} - done - case "$XBPS_TARGET_MACHINE" in - *-musl) sed -i 's|__ptrace_request|int|g' source/Plugins/Process/Linux/NativeProcessLinux.cpp ;; - esac - fi - - # Move clang files into the llvm source. - if [ -d ${XBPS_BUILDDIR}/clang-${version}.src ]; then - mv ${XBPS_BUILDDIR}/clang-${version}.src ${wrksrc}/tools/clang - fi - # Move clang-tools-extra files into llvm source. - if [ -d ${XBPS_BUILDDIR}/clang-tools-extra-${version}.src ]; then - mv ${XBPS_BUILDDIR}/clang-tools-extra-${version}.src ${wrksrc}/tools/clang/tools/extra - fi - # Move lld files into the llvm source. - if [ -d ${XBPS_BUILDDIR}/lld-${version}.src ]; then - mv ${XBPS_BUILDDIR}/lld-${version}.src ${wrksrc}/tools/lld - fi - # Move lldb files into the llvm source. - if [ -d ${XBPS_BUILDDIR}/lldb-${version}.src ]; then - if [ "$_lldb_enable" = "yes" ]; then - mv ${XBPS_BUILDDIR}/lldb-${version}.src ${wrksrc}/tools/lldb - else - rm -rf ${XBPS_BUILDDIR}/lldb-${version}.src - fi - fi - # Move compiler-rt files into the llvm source. - if [ -d ${XBPS_BUILDDIR}/compiler-rt-${version}.src ]; then - mv ${XBPS_BUILDDIR}/compiler-rt-${version}.src ${wrksrc}/projects/compiler-rt - fi - case "$XBPS_TARGET_MACHINE" in - *-musl) - # Disable sanitizers - sed -i 's/set(COMPILER_RT_HAS_SANITIZER_COMMON TRUE)/set(COMPILER_RT_HAS_SANITIZER_COMMON FALSE)/' ${wrksrc}/projects/compiler-rt/cmake/config-ix.cmake - ;; - esac - } pre_configure() { @@ -143,9 +58,7 @@ pre_configure() { CXXFLAGS="$BUILD_CXXFLAGS" LDFLAGS="$BUILD_LDFLAGS" \ cmake ../.. -DCMAKE_BUILD_TYPE=Release make ${makejobs} -C utils/TableGen - make ${makejobs} -C tools/clang/utils/TableGen configure_args+=" -DLLVM_TABLEGEN=${wrksrc}/build/HOST/bin/llvm-tblgen" - configure_args+=" -DCLANG_TABLEGEN=${wrksrc}/build/HOST/bin/clang-tblgen" cd ../.. fi @@ -188,120 +101,6 @@ do_install() { fi } -clang-analyzer_package() { - pycompile_dirs="usr/share/scan-view" - depends="clang-${version}_${revision} python3" - short_desc+=" - A source code analysis framework" - homepage="https://clang-analyzer.llvm.org/" - pkg_install() { - vmove usr/share/man/man1/scan-build.1 - vmove "/usr/bin/scan-*" - vmove "/usr/share/scan-*" - vmove "/usr/libexec/*analyzer" - } -} - -clang-tools-extra_package() { - lib32disabled=yes - depends="clang-${version}_${revision} python3" - short_desc+=" - Extra Clang tools" - homepage="https://clang.llvm.org/extra/" - pkg_install() { - vmove usr/bin/clang-apply-replacements - vmove usr/bin/clang-query - vmove usr/bin/clang-rename - vmove usr/bin/clang-tidy - vmove usr/bin/diagtool - vmove usr/bin/find-all-symbols - vmove usr/bin/hmaptool - vmove usr/bin/modularize - vmove usr/bin/pp-trace - vmove usr/bin/sancov - vmove "usr/lib/libclangApplyReplacements*" - vmove "usr/lib/libclangQuery*" - vmove "usr/lib/libclangTidy*" - vmove "usr/share/clang/*tidy*" - } -} - -clang_package() { - lib32disabled=yes - depends="libstdc++-devel libgcc-devel binutils ${XBPS_TARGET_LIBC}-devel - libclang-${version}_${revision}" - short_desc+=" - C language family frontend" - homepage="https://clang.llvm.org/" - pkg_install() { - vmove usr/include/clang - vmove usr/include/clang-c - vmove "usr/bin/*clang*" - vmove usr/bin/c-index-test - vmove usr/lib/clang - vmove usr/lib/cmake/clang - vmove "usr/lib/libclang*.a" - vmove "usr/lib/libclang*.so" - vmove "usr/share/clang" - } -} - -libclang_package() { - short_desc+=" - C frontend runtime library" - pkg_install() { - vmove "usr/lib/libclang.so.*" - } -} - -libclang-cpp_package() { - short_desc+=" - C frontend runtime library (C++ interface)" - pkg_install() { - vmove "usr/lib/libclang-cpp.so.*" - } -} - -lld_package() { - lib32disabled=yes - short_desc+=" - linker" - homepage="https://lld.llvm.org" - pkg_install() { - vmove usr/bin/lld* - vmove usr/bin/wasm-ld - vmove usr/bin/ld.lld* - } -} - -lld-devel_package() { - lib32disabled=yes - short_desc+=" - linker - development files" - homepage="https://lld.llvm.org" - pkg_install() { - vmove usr/include/lld - vmove "usr/lib/liblld*a" - } -} - -lldb_package() { - lib32disabled=yes - depends+=" python3-six" - short_desc+=" - LLDB debugger" - homepage="https://lldb.llvm.org/" - pkg_install() { - vmove usr/bin/*lldb* - vmove usr/lib/liblldb*so.* - vmove /usr/lib/python* - # Depend on python3-six instead of conflicting - rm ${PKGDESTDIR}/usr/lib/python3*/site-packages/six.py - } -} - -lldb-devel_package() { - lib32disabled=yes - depends="lldb>=${version}_${revision}" - short_desc+=" - LLDB debugger - development files" - pkg_install() { - vmove usr/include/lldb - vmove "usr/lib/liblldb*.so" - } -} - libllvm10_package() { short_desc+=" - runtime library" pkg_install() { From 2037323b06ee49a440f0151060a675a6ef3ba051 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Sun, 8 Nov 2020 18:28:52 +0100 Subject: [PATCH 03/16] llvm-libunwind: Update to 11.0.0 --- srcpkgs/llvm-libunwind/template | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/srcpkgs/llvm-libunwind/template b/srcpkgs/llvm-libunwind/template index 6e20a791e65..8fce56efd70 100644 --- a/srcpkgs/llvm-libunwind/template +++ b/srcpkgs/llvm-libunwind/template @@ -1,18 +1,18 @@ # Template file for 'llvm-libunwind' pkgname=llvm-libunwind -version=10.0.0 +version=11.0.0 revision=1 build_style=cmake wrksrc="libunwind-${version}.src" -hostmakedepends="llvm10" -makedepends="llvm10" +hostmakedepends="llvm11" +makedepends="llvm11" make_build_args="VERBOSE=1" short_desc="LLVM version of libunwind library" maintainer="Orphaned " license="NCSA, MIT" homepage="https://llvm.org" distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libunwind-${version}.src.tar.xz" -checksum=09dc5ecc4714809ecf62908ae8fe8635ab476880455287036a2730966833c626 +checksum=8455011c33b14abfe57b2fd9803fb610316b16d4c9818bec552287e2ba68922f post_install() { vmkdir usr/include From 80c9ef8b3dda9acaa30f9e6033e7ddfb53f90272 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 01:17:26 +0100 Subject: [PATCH 04/16] libcxxabi: Update to 11.0.0 --- srcpkgs/libcxxabi/template | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/srcpkgs/libcxxabi/template b/srcpkgs/libcxxabi/template index 393aefc5b31..8237bc4901e 100644 --- a/srcpkgs/libcxxabi/template +++ b/srcpkgs/libcxxabi/template @@ -1,23 +1,23 @@ # Template file for 'libcxxabi' pkgname=libcxxabi -version=10.0.0 +version=11.0.0 revision=1 wrksrc="${pkgname}-${version}.src" build_style=cmake -configure_args="-DLIBCXXABI_LIBCXX_INCLUDES=../libcxx/include +configure_args="-DLIBCXXABI_LIBCXX_INCLUDES=../../libcxx/include -DLIBCXXABI_USE_LLVM_UNWINDER=1 -DLLVM_DEFAULT_TARGET_TRIPLE=${XBPS_CROSS_TRIPLET:-$XBPS_TRIPLET}" make_build_args="VERBOSE=1" -hostmakedepends="clang-tools-extra llvm10" -makedepends="llvm10 llvm-libunwind-devel" +hostmakedepends="clang-tools-extra llvm11" +makedepends="llvm11 llvm-libunwind-devel" short_desc="Low-level support for libc++ standard library" maintainer="Orphaned " license="NCSA, MIT" homepage="https://libcxxabi.llvm.org" distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libcxxabi-${version}.src.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libcxx-${version}.src.tar.xz" -checksum="e71bac75a88c9dde455ad3f2a2b449bf745eafd41d2d8432253b2964e0ca14e1 - 270f8a3f176f1981b0f6ab8aa556720988872ec2b48ed3b605d0ced8d09156c7" +checksum="58697d4427b7a854ec7529337477eb4fba16407222390ad81a40d125673e4c15 + 6c1ee6690122f2711a77bc19241834a9219dda5036e1597bfa397f341a9b8b7a" case "$XBPS_TARGET_MACHINE" in armv[67]l) @@ -27,10 +27,8 @@ esac post_extract() { # Break dependency cycle, we just need the headers here - mv ../libcxx-${version}.src libcxx - - # For musl - sed -i 's/!defined(_GCC_MAX_ALIGN_T)/& \&\& !defined(__DEFINED_max_align_t)/' libcxx/include/stddef.h + # Since llvm 11, libcxx needs to be present next to the libcxxabi root + mv ../libcxx-${version}.src ../libcxx } post_install() { From 42ffd1253c829d2642d2c7eaf7f2f56bba8b736a Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 01:17:50 +0100 Subject: [PATCH 05/16] libcxx: Update to 11.0.0 --- srcpkgs/libcxx/template | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/srcpkgs/libcxx/template b/srcpkgs/libcxx/template index 95a16bccf57..2dfc71c4df8 100644 --- a/srcpkgs/libcxx/template +++ b/srcpkgs/libcxx/template @@ -1,21 +1,28 @@ # Template file for 'libcxx' pkgname=libcxx -version=10.0.0 +version=11.0.0 revision=1 wrksrc="${pkgname}-${version}.src" build_style=cmake configure_args+=" -DLIBCXX_CXX_ABI=libcxxabi -DLIBCXX_ENABLE_STATIC_ABI_LIBRARY=ON -DLIBCXX_CXX_ABI_LIBRARY_PATH=${XBPS_CROSS_BASE}/usr/lib -DLIBCXXABI_USE_LLVM_UNWINDER=1" -hostmakedepends="llvm10 clang-tools-extra python3" -makedepends="libcxxabi-devel llvm10 llvm-libunwind-devel" +hostmakedepends="llvm11 clang-tools-extra python3" +makedepends="libcxxabi-devel llvm11 llvm-libunwind-devel" make_build_args="VERBOSE=1" short_desc="New implementation of the C++ standard library, targeting C++11, C++14 and above" maintainer="Orphaned " license="NCSA, MIT" homepage="https://libcxx.llvm.org" -distfiles="https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libcxx-${version}.src.tar.xz" -checksum=270f8a3f176f1981b0f6ab8aa556720988872ec2b48ed3b605d0ced8d09156c7 +distfiles=" + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libcxx-${version}.src.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libcxxabi-${version}.src.tar.xz + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-${version}.src.tar.xz +" +checksum=" + 6c1ee6690122f2711a77bc19241834a9219dda5036e1597bfa397f341a9b8b7a + 58697d4427b7a854ec7529337477eb4fba16407222390ad81a40d125673e4c15 + 913f68c898dfb4a03b397c5e11c6a2f39d0f22ed7665c9cefa87a34423a72469" case "$XBPS_TARGET_MACHINE" in *-musl) configure_args+=" -DLIBCXX_HAS_MUSL_LIBC=YES" @@ -23,9 +30,12 @@ esac post_extract() { case "$XBPS_TARGET_MACHINE" in - *-musl) patch -Np1 <${FILESDIR}/libcxx-0001-musl-hacks.patch - sed -i 's/!defined(_GCC_MAX_ALIGN_T)/& \&\& !defined(__DEFINED_max_align_t)/' include/stddef.h ;; + *-musl) patch -Np1 <${FILESDIR}/libcxx-0001-musl-hacks.patch ;; esac + + # Since llvm 11, libcxxabi and llvm need to be present next to the libcxx root + mv ../libcxxabi-${version}.src ../libcxxabi + mv ../llvm-${version}.src ../llvm } post_install() { From 53990a1ca05dda9463f32d842f8fee2085fcbb3e Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 02:14:07 +0100 Subject: [PATCH 06/16] llvm11: change maintainer to q66 --- srcpkgs/llvm11/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/llvm11/template b/srcpkgs/llvm11/template index ec291544474..78937672a47 100644 --- a/srcpkgs/llvm11/template +++ b/srcpkgs/llvm11/template @@ -17,7 +17,7 @@ makedepends="python3-devel zlib-devel libffi-devel libedit-devel libxml2-devel binutils-devel libatomic-devel" depends="libllvm11" short_desc="Low Level Virtual Machine" -maintainer="Robin Voetter " +maintainer="q66 " license="NCSA" homepage="https://www.llvm.org" distfiles=" From a432dbefc83575bda23ee67efecccfab580ebd53 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 02:22:52 +0100 Subject: [PATCH 07/16] mesa: bump revision --- srcpkgs/mesa/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/mesa/template b/srcpkgs/mesa/template index 0ec6360e0b3..7c08820279e 100644 --- a/srcpkgs/mesa/template +++ b/srcpkgs/mesa/template @@ -1,7 +1,7 @@ # Template file for 'mesa' pkgname=mesa version=20.2.1 -revision=1 +revision=2 wrksrc="mesa-${version}" build_style=meson configure_args="-Dglvnd=true -Dshared-glapi=true -Dgbm=true -Degl=true From bbc7da077453ea28888109b8a95dccc4ae567579 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 02:37:38 +0100 Subject: [PATCH 08/16] shiboken2: bump revision --- srcpkgs/shiboken2/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/shiboken2/template b/srcpkgs/shiboken2/template index 20ea5aae7e2..d0072254842 100644 --- a/srcpkgs/shiboken2/template +++ b/srcpkgs/shiboken2/template @@ -1,7 +1,7 @@ # Template file for 'shiboken2' pkgname=shiboken2 version=5.15.0 -revision=2 +revision=3 _pkgname="pyside-setup-opensource-src-${version}" wrksrc="${_pkgname/%5.14.2.1/5.14.2}" build_wrksrc="sources/shiboken2" From 0cb1ddecee79ab05a9a95b26118bff2eae4a2758 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 02:48:41 +0100 Subject: [PATCH 09/16] gnome-builder: bump revision --- srcpkgs/gnome-builder/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/gnome-builder/template b/srcpkgs/gnome-builder/template index 22144f3536e..3d5932a67a0 100644 --- a/srcpkgs/gnome-builder/template +++ b/srcpkgs/gnome-builder/template @@ -1,7 +1,7 @@ # Template file for 'gnome-builder' pkgname=gnome-builder version=3.38.0 -revision=2 +revision=3 build_style=meson build_helper=qemu configure_args="-Dwith_webkit=true -Dwith_sysprof=true -Dhelp=true" From a89003bc4c2a2fcd474adae3f27758f551748283 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 02:49:46 +0100 Subject: [PATCH 10/16] juCi++: bump revision --- srcpkgs/juCi++/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/juCi++/template b/srcpkgs/juCi++/template index 69bbc07ab01..ca4650f8f1f 100644 --- a/srcpkgs/juCi++/template +++ b/srcpkgs/juCi++/template @@ -1,7 +1,7 @@ # Template file for 'juCi++' pkgname=juCi++ version=1.6.0 -revision=1 +revision=2 _libclangmm_commit="043d96d0bfbfe4bbb216a0954992d744a35c60ab" _tiny_commit="953b19c4c0692b18fb729ffd30f1cc3412797cda" wrksrc="jucipp-v${version}" From d62f74f746c98575df866d6c81ff6f76d271711c Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 02:52:21 +0100 Subject: [PATCH 11/16] libcxx: fix style --- srcpkgs/libcxx/template | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/srcpkgs/libcxx/template b/srcpkgs/libcxx/template index 2dfc71c4df8..3f15b63d3a7 100644 --- a/srcpkgs/libcxx/template +++ b/srcpkgs/libcxx/template @@ -17,8 +17,7 @@ homepage="https://libcxx.llvm.org" distfiles=" https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libcxx-${version}.src.tar.xz https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/libcxxabi-${version}.src.tar.xz - https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-${version}.src.tar.xz -" + https://github.com/llvm/llvm-project/releases/download/llvmorg-${version}/llvm-${version}.src.tar.xz" checksum=" 6c1ee6690122f2711a77bc19241834a9219dda5036e1597bfa397f341a9b8b7a 58697d4427b7a854ec7529337477eb4fba16407222390ad81a40d125673e4c15 From a04f151148d80048743d085768524914052add69 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 02:54:43 +0100 Subject: [PATCH 12/16] llvm11: spelling --- .../llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch b/srcpkgs/llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch index 1ff8aaa239c..e5b454c5db9 100644 --- a/srcpkgs/llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch +++ b/srcpkgs/llvm11/files/patches/llvm/llvm-002-musl-ppc64-elfv2.patch @@ -1,4 +1,4 @@ -This patches LLVM to use ELFv2 on ppc64 uncoditionally unless overridden. We +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. From 3cff9991a58919c6bba0138a6757488a5724802a Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 02:55:37 +0100 Subject: [PATCH 13/16] llvm11: make patch name more descriptive --- .../files/patches/llvm/llvm-003-ppc-secureplt.patch | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 srcpkgs/llvm11/files/patches/llvm/llvm-003-ppc-secureplt.patch diff --git a/srcpkgs/llvm11/files/patches/llvm/llvm-003-ppc-secureplt.patch b/srcpkgs/llvm11/files/patches/llvm/llvm-003-ppc-secureplt.patch new file mode 100644 index 00000000000..fcbaba86335 --- /dev/null +++ b/srcpkgs/llvm11/files/patches/llvm/llvm-003-ppc-secureplt.patch @@ -0,0 +1,11 @@ +--- llvm/lib/Target/PowerPC/PPCSubtarget.cpp ++++ llvm/lib/Target/PowerPC/PPCSubtarget.cpp +@@ -150,7 +150,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) From c259b369b2d89d37e99b89f2926e120da03871a4 Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 03:25:28 +0100 Subject: [PATCH 14/16] qt5: bump revision --- srcpkgs/qt5/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/qt5/template b/srcpkgs/qt5/template index 1954048e2b1..b717438d4dd 100644 --- a/srcpkgs/qt5/template +++ b/srcpkgs/qt5/template @@ -1,7 +1,7 @@ # Template file for 'qt5' pkgname=qt5 version=5.15.1 -revision=2 +revision=3 wrksrc="qt-everywhere-src-${version}" build_style=meta hostmakedepends="cmake clang flex perl glib-devel pkg-config From 135c4b6de32381eb166973028cb5746ca4ff2e7d Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 03:38:52 +0100 Subject: [PATCH 15/16] qtcreator: bump revision --- srcpkgs/qtcreator/template | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/srcpkgs/qtcreator/template b/srcpkgs/qtcreator/template index ddbd0168fa5..67bb0e81199 100644 --- a/srcpkgs/qtcreator/template +++ b/srcpkgs/qtcreator/template @@ -1,7 +1,7 @@ # Template file for 'qtcreator' pkgname=qtcreator version=4.13.2 -revision=1 +revision=2 wrksrc="qt-creator-opensource-src-${version}" build_style=qmake make_install_args="INSTALL_ROOT=\${DESTDIR}/usr" From b195e579d60dd36ade19e8ed75997e825078be5f Mon Sep 17 00:00:00 2001 From: Robin Voetter Date: Mon, 9 Nov 2020 03:39:47 +0100 Subject: [PATCH 16/16] libcxxabi: remove old comment --- srcpkgs/libcxxabi/template | 1 - 1 file changed, 1 deletion(-) diff --git a/srcpkgs/libcxxabi/template b/srcpkgs/libcxxabi/template index 8237bc4901e..21cba4dbc5f 100644 --- a/srcpkgs/libcxxabi/template +++ b/srcpkgs/libcxxabi/template @@ -26,7 +26,6 @@ case "$XBPS_TARGET_MACHINE" in esac post_extract() { - # Break dependency cycle, we just need the headers here # Since llvm 11, libcxx needs to be present next to the libcxxabi root mv ../libcxx-${version}.src ../libcxx }