Sync from SUSE:SLFO:Main llvm16 revision d3419f91ad8777056c2691d974870103
This commit is contained in:
commit
8df29aa666
23
.gitattributes
vendored
Normal file
23
.gitattributes
vendored
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
## Default LFS
|
||||||
|
*.7z filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bsp filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gem filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.gz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.jar filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.lzma filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.obscpio filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.oxt filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.pdf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.png filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.rpm filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tbz2 filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.tgz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.ttf filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.txz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.whl filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.xz filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zip filter=lfs diff=lfs merge=lfs -text
|
||||||
|
*.zst filter=lfs diff=lfs merge=lfs -text
|
43
_constraints
Normal file
43
_constraints
Normal file
@ -0,0 +1,43 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<constraints>
|
||||||
|
<hardware>
|
||||||
|
<disk>
|
||||||
|
<size unit="G">35</size>
|
||||||
|
</disk>
|
||||||
|
<memory>
|
||||||
|
<size unit="M">4096</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
<hostlabel exclude="true">SLOW_CPU</hostlabel>
|
||||||
|
<overwrite>
|
||||||
|
<!--
|
||||||
|
We have disabled debuginfo on 32 bit architecture because they simply can no address enough memory to link llvm libraries with it.
|
||||||
|
Without debuginfo the disk and memory requirements are much lower.
|
||||||
|
-->
|
||||||
|
<conditions>
|
||||||
|
<arch>armv6l</arch>
|
||||||
|
<arch>armv7l</arch>
|
||||||
|
<arch>i586</arch>
|
||||||
|
<arch>ppc</arch>
|
||||||
|
<arch>s390</arch>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<disk>
|
||||||
|
<size unit="G">10</size>
|
||||||
|
</disk>
|
||||||
|
<memory>
|
||||||
|
<size unit="M">2048</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
<overwrite>
|
||||||
|
<conditions>
|
||||||
|
<arch>riscv64</arch>
|
||||||
|
</conditions>
|
||||||
|
<hardware>
|
||||||
|
<memory>
|
||||||
|
<size unit="M">14000</size>
|
||||||
|
</memory>
|
||||||
|
</hardware>
|
||||||
|
</overwrite>
|
||||||
|
</constraints>
|
34
assume-opensuse.patch
Normal file
34
assume-opensuse.patch
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
Index: clang-12.0.0rc1.src/lib/Driver/Distro.cpp
|
||||||
|
===================================================================
|
||||||
|
--- clang-12.0.0rc1.src.orig/lib/Driver/Distro.cpp
|
||||||
|
+++ clang-12.0.0rc1.src/lib/Driver/Distro.cpp
|
||||||
|
@@ -93,6 +93,8 @@ static Distro::DistroType DetectLsbRelease...
|
||||||
|
}
|
||||||
|
|
||||||
|
static Distro::DistroType DetectDistro(llvm::vfs::FileSystem &VFS) {
|
||||||
|
+ return Distro::OpenSUSE;
|
||||||
|
+/*
|
||||||
|
Distro::DistroType Version = Distro::UnknownDistro;
|
||||||
|
|
||||||
|
// Newer freedesktop.org's compilant systemd-based systems
|
||||||
|
@@ -200,7 +202,7 @@ static Distro::DistroType DetectDistro(l
|
||||||
|
if (VFS.exists("/etc/gentoo-release"))
|
||||||
|
return Distro::Gentoo;
|
||||||
|
|
||||||
|
- return Distro::UnknownDistro;
|
||||||
|
+ return Distro::UnknownDistro;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
static Distro::DistroType GetDistro(llvm::vfs::FileSystem &VFS,
|
||||||
|
Index: clang-16.0.0rc1.src/unittests/Driver/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- clang-16.0.0rc1.src.orig/unittests/Driver/CMakeLists.txt
|
||||||
|
+++ clang-16.0.0rc1.src/unittests/Driver/CMakeLists.txt
|
||||||
|
@@ -6,7 +6,6 @@ set(LLVM_LINK_COMPONENTS
|
||||||
|
)
|
||||||
|
|
||||||
|
add_clang_unittest(ClangDriverTests
|
||||||
|
- DistroTest.cpp
|
||||||
|
DXCModeTest.cpp
|
||||||
|
ToolChainTest.cpp
|
||||||
|
ModuleCacheTest.cpp
|
2
baselibs.conf
Normal file
2
baselibs.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
libLLVM16
|
||||||
|
libclang-cpp16
|
30
check-no-llvm-exegesis.patch
Normal file
30
check-no-llvm-exegesis.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
--- a/llvm/test/CMakeLists.txt
|
||||||
|
+++ b/llvm/test/CMakeLists.txt
|
||||||
|
@@ -81,7 +81,6 @@ set(LLVM_TEST_DEPENDS
|
||||||
|
llvm-dwarfdump
|
||||||
|
llvm-dwarfutil
|
||||||
|
llvm-dwp
|
||||||
|
- llvm-exegesis
|
||||||
|
llvm-extract
|
||||||
|
llvm-gsymutil
|
||||||
|
llvm-isel-fuzzer
|
||||||
|
--- a/llvm/test/tools/llvm-exegesis/PowerPC/lit.local.cfg
|
||||||
|
+++ b/llvm/test/tools/llvm-exegesis/PowerPC/lit.local.cfg
|
||||||
|
@@ -1,6 +1 @@
|
||||||
|
-if not ('PowerPC' in config.root.targets):
|
||||||
|
- # We need support for PowerPC.
|
||||||
|
- config.unsupported = True
|
||||||
|
-elif not ('powerpc' in config.root.host_triple):
|
||||||
|
- # We need to be running on an PPC host.
|
||||||
|
- config.unsupported = True
|
||||||
|
+config.unsupported = True
|
||||||
|
--- a/llvm/test/tools/llvm-exegesis/X86/lit.local.cfg
|
||||||
|
+++ b/llvm/test/tools/llvm-exegesis/X86/lit.local.cfg
|
||||||
|
@@ -1,6 +1 @@
|
||||||
|
-if not ('X86' in config.root.targets):
|
||||||
|
- # We need support for X86.
|
||||||
|
- config.unsupported = True
|
||||||
|
-elif not ('x86_64' in config.root.host_triple):
|
||||||
|
- # We need to be running on an X86 host.
|
||||||
|
- config.unsupported = True
|
||||||
|
+config.unsupported = True
|
BIN
clang-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
clang-16.0.6.src.tar.xz.sig
Normal file
BIN
clang-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
clang-docs-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-docs-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
13
clang-resourcedirs.patch
Normal file
13
clang-resourcedirs.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: cfe-6.0.0rc1.src/lib/Driver/Driver.cpp
|
||||||
|
===================================================================
|
||||||
|
--- cfe-6.0.0rc1.src.orig/lib/Driver/Driver.cpp
|
||||||
|
+++ cfe-6.0.0rc1.src/lib/Driver/Driver.cpp
|
||||||
|
@@ -115,7 +115,7 @@ Driver::Driver(StringRef ClangExecutable
|
||||||
|
// Dir is bin/ or lib/, depending on where BinaryPath is.
|
||||||
|
std::string Dir = std::string(llvm::sys::path::parent_path(BinaryPath));
|
||||||
|
|
||||||
|
- SmallString<128> P(Dir);
|
||||||
|
+ SmallString<128> P((Dir != "") ? Dir : "/usr/bin/");
|
||||||
|
if (CustomResourceDir != "") {
|
||||||
|
llvm::sys::path::append(P, CustomResourceDir);
|
||||||
|
} else {
|
BIN
clang-tools-extra-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-tools-extra-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
clang-tools-extra-16.0.6.src.tar.xz.sig
Normal file
BIN
clang-tools-extra-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
cmake-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
cmake-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
cmake-16.0.6.src.tar.xz.sig
Normal file
BIN
cmake-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
477
compact_unwind_encoding.h
Normal file
477
compact_unwind_encoding.h
Normal file
@ -0,0 +1,477 @@
|
|||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
//
|
||||||
|
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
|
||||||
|
// See https://llvm.org/LICENSE.txt for license information.
|
||||||
|
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Darwin's alternative to DWARF based unwind encodings.
|
||||||
|
//
|
||||||
|
//===----------------------------------------------------------------------===//
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef __COMPACT_UNWIND_ENCODING__
|
||||||
|
#define __COMPACT_UNWIND_ENCODING__
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
|
|
||||||
|
//
|
||||||
|
// Compilers can emit standard DWARF FDEs in the __TEXT,__eh_frame section
|
||||||
|
// of object files. Or compilers can emit compact unwind information in
|
||||||
|
// the __LD,__compact_unwind section.
|
||||||
|
//
|
||||||
|
// When the linker creates a final linked image, it will create a
|
||||||
|
// __TEXT,__unwind_info section. This section is a small and fast way for the
|
||||||
|
// runtime to access unwind info for any given function. If the compiler
|
||||||
|
// emitted compact unwind info for the function, that compact unwind info will
|
||||||
|
// be encoded in the __TEXT,__unwind_info section. If the compiler emitted
|
||||||
|
// DWARF unwind info, the __TEXT,__unwind_info section will contain the offset
|
||||||
|
// of the FDE in the __TEXT,__eh_frame section in the final linked image.
|
||||||
|
//
|
||||||
|
// Note: Previously, the linker would transform some DWARF unwind infos into
|
||||||
|
// compact unwind info. But that is fragile and no longer done.
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// The compact unwind encoding is a 32-bit value which encoded in an
|
||||||
|
// architecture specific way, which registers to restore from where, and how
|
||||||
|
// to unwind out of the function.
|
||||||
|
//
|
||||||
|
typedef uint32_t compact_unwind_encoding_t;
|
||||||
|
|
||||||
|
|
||||||
|
// architecture independent bits
|
||||||
|
enum {
|
||||||
|
UNWIND_IS_NOT_FUNCTION_START = 0x80000000,
|
||||||
|
UNWIND_HAS_LSDA = 0x40000000,
|
||||||
|
UNWIND_PERSONALITY_MASK = 0x30000000,
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// x86
|
||||||
|
//
|
||||||
|
// 1-bit: start
|
||||||
|
// 1-bit: has lsda
|
||||||
|
// 2-bit: personality index
|
||||||
|
//
|
||||||
|
// 4-bits: 0=old, 1=ebp based, 2=stack-imm, 3=stack-ind, 4=DWARF
|
||||||
|
// ebp based:
|
||||||
|
// 15-bits (5*3-bits per reg) register permutation
|
||||||
|
// 8-bits for stack offset
|
||||||
|
// frameless:
|
||||||
|
// 8-bits stack size
|
||||||
|
// 3-bits stack adjust
|
||||||
|
// 3-bits register count
|
||||||
|
// 10-bits register permutation
|
||||||
|
//
|
||||||
|
enum {
|
||||||
|
UNWIND_X86_MODE_MASK = 0x0F000000,
|
||||||
|
UNWIND_X86_MODE_EBP_FRAME = 0x01000000,
|
||||||
|
UNWIND_X86_MODE_STACK_IMMD = 0x02000000,
|
||||||
|
UNWIND_X86_MODE_STACK_IND = 0x03000000,
|
||||||
|
UNWIND_X86_MODE_DWARF = 0x04000000,
|
||||||
|
|
||||||
|
UNWIND_X86_EBP_FRAME_REGISTERS = 0x00007FFF,
|
||||||
|
UNWIND_X86_EBP_FRAME_OFFSET = 0x00FF0000,
|
||||||
|
|
||||||
|
UNWIND_X86_FRAMELESS_STACK_SIZE = 0x00FF0000,
|
||||||
|
UNWIND_X86_FRAMELESS_STACK_ADJUST = 0x0000E000,
|
||||||
|
UNWIND_X86_FRAMELESS_STACK_REG_COUNT = 0x00001C00,
|
||||||
|
UNWIND_X86_FRAMELESS_STACK_REG_PERMUTATION = 0x000003FF,
|
||||||
|
|
||||||
|
UNWIND_X86_DWARF_SECTION_OFFSET = 0x00FFFFFF,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
UNWIND_X86_REG_NONE = 0,
|
||||||
|
UNWIND_X86_REG_EBX = 1,
|
||||||
|
UNWIND_X86_REG_ECX = 2,
|
||||||
|
UNWIND_X86_REG_EDX = 3,
|
||||||
|
UNWIND_X86_REG_EDI = 4,
|
||||||
|
UNWIND_X86_REG_ESI = 5,
|
||||||
|
UNWIND_X86_REG_EBP = 6,
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// For x86 there are four modes for the compact unwind encoding:
|
||||||
|
// UNWIND_X86_MODE_EBP_FRAME:
|
||||||
|
// EBP based frame where EBP is push on stack immediately after return address,
|
||||||
|
// then ESP is moved to EBP. Thus, to unwind ESP is restored with the current
|
||||||
|
// EPB value, then EBP is restored by popping off the stack, and the return
|
||||||
|
// is done by popping the stack once more into the pc.
|
||||||
|
// All non-volatile registers that need to be restored must have been saved
|
||||||
|
// in a small range in the stack that starts EBP-4 to EBP-1020. The offset/4
|
||||||
|
// is encoded in the UNWIND_X86_EBP_FRAME_OFFSET bits. The registers saved
|
||||||
|
// are encoded in the UNWIND_X86_EBP_FRAME_REGISTERS bits as five 3-bit entries.
|
||||||
|
// Each entry contains which register to restore.
|
||||||
|
// UNWIND_X86_MODE_STACK_IMMD:
|
||||||
|
// A "frameless" (EBP not used as frame pointer) function with a small
|
||||||
|
// constant stack size. To return, a constant (encoded in the compact
|
||||||
|
// unwind encoding) is added to the ESP. Then the return is done by
|
||||||
|
// popping the stack into the pc.
|
||||||
|
// All non-volatile registers that need to be restored must have been saved
|
||||||
|
// on the stack immediately after the return address. The stack_size/4 is
|
||||||
|
// encoded in the UNWIND_X86_FRAMELESS_STACK_SIZE (max stack size is 1024).
|
||||||
|
// The number of registers saved is encoded in UNWIND_X86_FRAMELESS_STACK_REG_COUNT.
|
||||||
|
// UNWIND_X86_FRAMELESS_STACK_REG_PERMUTATION contains which registers were
|
||||||
|
// saved and their order.
|
||||||
|
// UNWIND_X86_MODE_STACK_IND:
|
||||||
|
// A "frameless" (EBP not used as frame pointer) function large constant
|
||||||
|
// stack size. This case is like the previous, except the stack size is too
|
||||||
|
// large to encode in the compact unwind encoding. Instead it requires that
|
||||||
|
// the function contains "subl $nnnnnnnn,ESP" in its prolog. The compact
|
||||||
|
// encoding contains the offset to the nnnnnnnn value in the function in
|
||||||
|
// UNWIND_X86_FRAMELESS_STACK_SIZE.
|
||||||
|
// UNWIND_X86_MODE_DWARF:
|
||||||
|
// No compact unwind encoding is available. Instead the low 24-bits of the
|
||||||
|
// compact encoding is the offset of the DWARF FDE in the __eh_frame section.
|
||||||
|
// This mode is never used in object files. It is only generated by the
|
||||||
|
// linker in final linked images which have only DWARF unwind info for a
|
||||||
|
// function.
|
||||||
|
//
|
||||||
|
// The permutation encoding is a Lehmer code sequence encoded into a
|
||||||
|
// single variable-base number so we can encode the ordering of up to
|
||||||
|
// six registers in a 10-bit space.
|
||||||
|
//
|
||||||
|
// The following is the algorithm used to create the permutation encoding used
|
||||||
|
// with frameless stacks. It is passed the number of registers to be saved and
|
||||||
|
// an array of the register numbers saved.
|
||||||
|
//
|
||||||
|
//uint32_t permute_encode(uint32_t registerCount, const uint32_t registers[6])
|
||||||
|
//{
|
||||||
|
// uint32_t renumregs[6];
|
||||||
|
// for (int i=6-registerCount; i < 6; ++i) {
|
||||||
|
// int countless = 0;
|
||||||
|
// for (int j=6-registerCount; j < i; ++j) {
|
||||||
|
// if ( registers[j] < registers[i] )
|
||||||
|
// ++countless;
|
||||||
|
// }
|
||||||
|
// renumregs[i] = registers[i] - countless -1;
|
||||||
|
// }
|
||||||
|
// uint32_t permutationEncoding = 0;
|
||||||
|
// switch ( registerCount ) {
|
||||||
|
// case 6:
|
||||||
|
// permutationEncoding |= (120*renumregs[0] + 24*renumregs[1]
|
||||||
|
// + 6*renumregs[2] + 2*renumregs[3]
|
||||||
|
// + renumregs[4]);
|
||||||
|
// break;
|
||||||
|
// case 5:
|
||||||
|
// permutationEncoding |= (120*renumregs[1] + 24*renumregs[2]
|
||||||
|
// + 6*renumregs[3] + 2*renumregs[4]
|
||||||
|
// + renumregs[5]);
|
||||||
|
// break;
|
||||||
|
// case 4:
|
||||||
|
// permutationEncoding |= (60*renumregs[2] + 12*renumregs[3]
|
||||||
|
// + 3*renumregs[4] + renumregs[5]);
|
||||||
|
// break;
|
||||||
|
// case 3:
|
||||||
|
// permutationEncoding |= (20*renumregs[3] + 4*renumregs[4]
|
||||||
|
// + renumregs[5]);
|
||||||
|
// break;
|
||||||
|
// case 2:
|
||||||
|
// permutationEncoding |= (5*renumregs[4] + renumregs[5]);
|
||||||
|
// break;
|
||||||
|
// case 1:
|
||||||
|
// permutationEncoding |= (renumregs[5]);
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
// return permutationEncoding;
|
||||||
|
//}
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
//
|
||||||
|
// x86_64
|
||||||
|
//
|
||||||
|
// 1-bit: start
|
||||||
|
// 1-bit: has lsda
|
||||||
|
// 2-bit: personality index
|
||||||
|
//
|
||||||
|
// 4-bits: 0=old, 1=rbp based, 2=stack-imm, 3=stack-ind, 4=DWARF
|
||||||
|
// rbp based:
|
||||||
|
// 15-bits (5*3-bits per reg) register permutation
|
||||||
|
// 8-bits for stack offset
|
||||||
|
// frameless:
|
||||||
|
// 8-bits stack size
|
||||||
|
// 3-bits stack adjust
|
||||||
|
// 3-bits register count
|
||||||
|
// 10-bits register permutation
|
||||||
|
//
|
||||||
|
enum {
|
||||||
|
UNWIND_X86_64_MODE_MASK = 0x0F000000,
|
||||||
|
UNWIND_X86_64_MODE_RBP_FRAME = 0x01000000,
|
||||||
|
UNWIND_X86_64_MODE_STACK_IMMD = 0x02000000,
|
||||||
|
UNWIND_X86_64_MODE_STACK_IND = 0x03000000,
|
||||||
|
UNWIND_X86_64_MODE_DWARF = 0x04000000,
|
||||||
|
|
||||||
|
UNWIND_X86_64_RBP_FRAME_REGISTERS = 0x00007FFF,
|
||||||
|
UNWIND_X86_64_RBP_FRAME_OFFSET = 0x00FF0000,
|
||||||
|
|
||||||
|
UNWIND_X86_64_FRAMELESS_STACK_SIZE = 0x00FF0000,
|
||||||
|
UNWIND_X86_64_FRAMELESS_STACK_ADJUST = 0x0000E000,
|
||||||
|
UNWIND_X86_64_FRAMELESS_STACK_REG_COUNT = 0x00001C00,
|
||||||
|
UNWIND_X86_64_FRAMELESS_STACK_REG_PERMUTATION = 0x000003FF,
|
||||||
|
|
||||||
|
UNWIND_X86_64_DWARF_SECTION_OFFSET = 0x00FFFFFF,
|
||||||
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
UNWIND_X86_64_REG_NONE = 0,
|
||||||
|
UNWIND_X86_64_REG_RBX = 1,
|
||||||
|
UNWIND_X86_64_REG_R12 = 2,
|
||||||
|
UNWIND_X86_64_REG_R13 = 3,
|
||||||
|
UNWIND_X86_64_REG_R14 = 4,
|
||||||
|
UNWIND_X86_64_REG_R15 = 5,
|
||||||
|
UNWIND_X86_64_REG_RBP = 6,
|
||||||
|
};
|
||||||
|
//
|
||||||
|
// For x86_64 there are four modes for the compact unwind encoding:
|
||||||
|
// UNWIND_X86_64_MODE_RBP_FRAME:
|
||||||
|
// RBP based frame where RBP is push on stack immediately after return address,
|
||||||
|
// then RSP is moved to RBP. Thus, to unwind RSP is restored with the current
|
||||||
|
// EPB value, then RBP is restored by popping off the stack, and the return
|
||||||
|
// is done by popping the stack once more into the pc.
|
||||||
|
// All non-volatile registers that need to be restored must have been saved
|
||||||
|
// in a small range in the stack that starts RBP-8 to RBP-2040. The offset/8
|
||||||
|
// is encoded in the UNWIND_X86_64_RBP_FRAME_OFFSET bits. The registers saved
|
||||||
|
// are encoded in the UNWIND_X86_64_RBP_FRAME_REGISTERS bits as five 3-bit entries.
|
||||||
|
// Each entry contains which register to restore.
|
||||||
|
// UNWIND_X86_64_MODE_STACK_IMMD:
|
||||||
|
// A "frameless" (RBP not used as frame pointer) function with a small
|
||||||
|
// constant stack size. To return, a constant (encoded in the compact
|
||||||
|
// unwind encoding) is added to the RSP. Then the return is done by
|
||||||
|
// popping the stack into the pc.
|
||||||
|
// All non-volatile registers that need to be restored must have been saved
|
||||||
|
// on the stack immediately after the return address. The stack_size/8 is
|
||||||
|
// encoded in the UNWIND_X86_64_FRAMELESS_STACK_SIZE (max stack size is 2048).
|
||||||
|
// The number of registers saved is encoded in UNWIND_X86_64_FRAMELESS_STACK_REG_COUNT.
|
||||||
|
// UNWIND_X86_64_FRAMELESS_STACK_REG_PERMUTATION contains which registers were
|
||||||
|
// saved and their order.
|
||||||
|
// UNWIND_X86_64_MODE_STACK_IND:
|
||||||
|
// A "frameless" (RBP not used as frame pointer) function large constant
|
||||||
|
// stack size. This case is like the previous, except the stack size is too
|
||||||
|
// large to encode in the compact unwind encoding. Instead it requires that
|
||||||
|
// the function contains "subq $nnnnnnnn,RSP" in its prolog. The compact
|
||||||
|
// encoding contains the offset to the nnnnnnnn value in the function in
|
||||||
|
// UNWIND_X86_64_FRAMELESS_STACK_SIZE.
|
||||||
|
// UNWIND_X86_64_MODE_DWARF:
|
||||||
|
// No compact unwind encoding is available. Instead the low 24-bits of the
|
||||||
|
// compact encoding is the offset of the DWARF FDE in the __eh_frame section.
|
||||||
|
// This mode is never used in object files. It is only generated by the
|
||||||
|
// linker in final linked images which have only DWARF unwind info for a
|
||||||
|
// function.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
// ARM64
|
||||||
|
//
|
||||||
|
// 1-bit: start
|
||||||
|
// 1-bit: has lsda
|
||||||
|
// 2-bit: personality index
|
||||||
|
//
|
||||||
|
// 4-bits: 4=frame-based, 3=DWARF, 2=frameless
|
||||||
|
// frameless:
|
||||||
|
// 12-bits of stack size
|
||||||
|
// frame-based:
|
||||||
|
// 4-bits D reg pairs saved
|
||||||
|
// 5-bits X reg pairs saved
|
||||||
|
// DWARF:
|
||||||
|
// 24-bits offset of DWARF FDE in __eh_frame section
|
||||||
|
//
|
||||||
|
enum {
|
||||||
|
UNWIND_ARM64_MODE_MASK = 0x0F000000,
|
||||||
|
UNWIND_ARM64_MODE_FRAMELESS = 0x02000000,
|
||||||
|
UNWIND_ARM64_MODE_DWARF = 0x03000000,
|
||||||
|
UNWIND_ARM64_MODE_FRAME = 0x04000000,
|
||||||
|
|
||||||
|
UNWIND_ARM64_FRAME_X19_X20_PAIR = 0x00000001,
|
||||||
|
UNWIND_ARM64_FRAME_X21_X22_PAIR = 0x00000002,
|
||||||
|
UNWIND_ARM64_FRAME_X23_X24_PAIR = 0x00000004,
|
||||||
|
UNWIND_ARM64_FRAME_X25_X26_PAIR = 0x00000008,
|
||||||
|
UNWIND_ARM64_FRAME_X27_X28_PAIR = 0x00000010,
|
||||||
|
UNWIND_ARM64_FRAME_D8_D9_PAIR = 0x00000100,
|
||||||
|
UNWIND_ARM64_FRAME_D10_D11_PAIR = 0x00000200,
|
||||||
|
UNWIND_ARM64_FRAME_D12_D13_PAIR = 0x00000400,
|
||||||
|
UNWIND_ARM64_FRAME_D14_D15_PAIR = 0x00000800,
|
||||||
|
|
||||||
|
UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK = 0x00FFF000,
|
||||||
|
UNWIND_ARM64_DWARF_SECTION_OFFSET = 0x00FFFFFF,
|
||||||
|
};
|
||||||
|
// For arm64 there are three modes for the compact unwind encoding:
|
||||||
|
// UNWIND_ARM64_MODE_FRAME:
|
||||||
|
// This is a standard arm64 prolog where FP/LR are immediately pushed on the
|
||||||
|
// stack, then SP is copied to FP. If there are any non-volatile registers
|
||||||
|
// saved, then are copied into the stack frame in pairs in a contiguous
|
||||||
|
// range right below the saved FP/LR pair. Any subset of the five X pairs
|
||||||
|
// and four D pairs can be saved, but the memory layout must be in register
|
||||||
|
// number order.
|
||||||
|
// UNWIND_ARM64_MODE_FRAMELESS:
|
||||||
|
// A "frameless" leaf function, where FP/LR are not saved. The return address
|
||||||
|
// remains in LR throughout the function. If any non-volatile registers
|
||||||
|
// are saved, they must be pushed onto the stack before any stack space is
|
||||||
|
// allocated for local variables. The stack sized (including any saved
|
||||||
|
// non-volatile registers) divided by 16 is encoded in the bits
|
||||||
|
// UNWIND_ARM64_FRAMELESS_STACK_SIZE_MASK.
|
||||||
|
// UNWIND_ARM64_MODE_DWARF:
|
||||||
|
// No compact unwind encoding is available. Instead the low 24-bits of the
|
||||||
|
// compact encoding is the offset of the DWARF FDE in the __eh_frame section.
|
||||||
|
// This mode is never used in object files. It is only generated by the
|
||||||
|
// linker in final linked images which have only DWARF unwind info for a
|
||||||
|
// function.
|
||||||
|
//
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Relocatable Object Files: __LD,__compact_unwind
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//
|
||||||
|
// A compiler can generated compact unwind information for a function by adding
|
||||||
|
// a "row" to the __LD,__compact_unwind section. This section has the
|
||||||
|
// S_ATTR_DEBUG bit set, so the section will be ignored by older linkers.
|
||||||
|
// It is removed by the new linker, so never ends up in final executables.
|
||||||
|
// This section is a table, initially with one row per function (that needs
|
||||||
|
// unwind info). The table columns and some conceptual entries are:
|
||||||
|
//
|
||||||
|
// range-start pointer to start of function/range
|
||||||
|
// range-length
|
||||||
|
// compact-unwind-encoding 32-bit encoding
|
||||||
|
// personality-function or zero if no personality function
|
||||||
|
// lsda or zero if no LSDA data
|
||||||
|
//
|
||||||
|
// The length and encoding fields are 32-bits. The other are all pointer sized.
|
||||||
|
//
|
||||||
|
// In x86_64 assembly, these entry would look like:
|
||||||
|
//
|
||||||
|
// .section __LD,__compact_unwind,regular,debug
|
||||||
|
//
|
||||||
|
// #compact unwind for _foo
|
||||||
|
// .quad _foo
|
||||||
|
// .set L1,LfooEnd-_foo
|
||||||
|
// .long L1
|
||||||
|
// .long 0x01010001
|
||||||
|
// .quad 0
|
||||||
|
// .quad 0
|
||||||
|
//
|
||||||
|
// #compact unwind for _bar
|
||||||
|
// .quad _bar
|
||||||
|
// .set L2,LbarEnd-_bar
|
||||||
|
// .long L2
|
||||||
|
// .long 0x01020011
|
||||||
|
// .quad __gxx_personality
|
||||||
|
// .quad except_tab1
|
||||||
|
//
|
||||||
|
//
|
||||||
|
// Notes: There is no need for any labels in the the __compact_unwind section.
|
||||||
|
// The use of the .set directive is to force the evaluation of the
|
||||||
|
// range-length at assembly time, instead of generating relocations.
|
||||||
|
//
|
||||||
|
// To support future compiler optimizations where which non-volatile registers
|
||||||
|
// are saved changes within a function (e.g. delay saving non-volatiles until
|
||||||
|
// necessary), there can by multiple lines in the __compact_unwind table for one
|
||||||
|
// function, each with a different (non-overlapping) range and each with
|
||||||
|
// different compact unwind encodings that correspond to the non-volatiles
|
||||||
|
// saved at that range of the function.
|
||||||
|
//
|
||||||
|
// If a particular function is so wacky that there is no compact unwind way
|
||||||
|
// to encode it, then the compiler can emit traditional DWARF unwind info.
|
||||||
|
// The runtime will use which ever is available.
|
||||||
|
//
|
||||||
|
// Runtime support for compact unwind encodings are only available on 10.6
|
||||||
|
// and later. So, the compiler should not generate it when targeting pre-10.6.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
//
|
||||||
|
// Final Linked Images: __TEXT,__unwind_info
|
||||||
|
//
|
||||||
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
//
|
||||||
|
// The __TEXT,__unwind_info section is laid out for an efficient two level lookup.
|
||||||
|
// The header of the section contains a coarse index that maps function address
|
||||||
|
// to the page (4096 byte block) containing the unwind info for that function.
|
||||||
|
//
|
||||||
|
|
||||||
|
#define UNWIND_SECTION_VERSION 1
|
||||||
|
struct unwind_info_section_header
|
||||||
|
{
|
||||||
|
uint32_t version; // UNWIND_SECTION_VERSION
|
||||||
|
uint32_t commonEncodingsArraySectionOffset;
|
||||||
|
uint32_t commonEncodingsArrayCount;
|
||||||
|
uint32_t personalityArraySectionOffset;
|
||||||
|
uint32_t personalityArrayCount;
|
||||||
|
uint32_t indexSectionOffset;
|
||||||
|
uint32_t indexCount;
|
||||||
|
// compact_unwind_encoding_t[]
|
||||||
|
// uint32_t personalities[]
|
||||||
|
// unwind_info_section_header_index_entry[]
|
||||||
|
// unwind_info_section_header_lsda_index_entry[]
|
||||||
|
};
|
||||||
|
|
||||||
|
struct unwind_info_section_header_index_entry
|
||||||
|
{
|
||||||
|
uint32_t functionOffset;
|
||||||
|
uint32_t secondLevelPagesSectionOffset; // section offset to start of regular or compress page
|
||||||
|
uint32_t lsdaIndexArraySectionOffset; // section offset to start of lsda_index array for this range
|
||||||
|
};
|
||||||
|
|
||||||
|
struct unwind_info_section_header_lsda_index_entry
|
||||||
|
{
|
||||||
|
uint32_t functionOffset;
|
||||||
|
uint32_t lsdaOffset;
|
||||||
|
};
|
||||||
|
|
||||||
|
//
|
||||||
|
// There are two kinds of second level index pages: regular and compressed.
|
||||||
|
// A compressed page can hold up to 1021 entries, but it cannot be used
|
||||||
|
// if too many different encoding types are used. The regular page holds
|
||||||
|
// 511 entries.
|
||||||
|
//
|
||||||
|
|
||||||
|
struct unwind_info_regular_second_level_entry
|
||||||
|
{
|
||||||
|
uint32_t functionOffset;
|
||||||
|
compact_unwind_encoding_t encoding;
|
||||||
|
};
|
||||||
|
|
||||||
|
#define UNWIND_SECOND_LEVEL_REGULAR 2
|
||||||
|
struct unwind_info_regular_second_level_page_header
|
||||||
|
{
|
||||||
|
uint32_t kind; // UNWIND_SECOND_LEVEL_REGULAR
|
||||||
|
uint16_t entryPageOffset;
|
||||||
|
uint16_t entryCount;
|
||||||
|
// entry array
|
||||||
|
};
|
||||||
|
|
||||||
|
#define UNWIND_SECOND_LEVEL_COMPRESSED 3
|
||||||
|
struct unwind_info_compressed_second_level_page_header
|
||||||
|
{
|
||||||
|
uint32_t kind; // UNWIND_SECOND_LEVEL_COMPRESSED
|
||||||
|
uint16_t entryPageOffset;
|
||||||
|
uint16_t entryCount;
|
||||||
|
uint16_t encodingsPageOffset;
|
||||||
|
uint16_t encodingsCount;
|
||||||
|
// 32-bit entry array
|
||||||
|
// encodings array
|
||||||
|
};
|
||||||
|
|
||||||
|
#define UNWIND_INFO_COMPRESSED_ENTRY_FUNC_OFFSET(entry) (entry & 0x00FFFFFF)
|
||||||
|
#define UNWIND_INFO_COMPRESSED_ENTRY_ENCODING_INDEX(entry) ((entry >> 24) & 0xFF)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
BIN
compiler-rt-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
compiler-rt-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
compiler-rt-16.0.6.src.tar.xz.sig
Normal file
BIN
compiler-rt-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
15
default-to-i586.patch
Normal file
15
default-to-i586.patch
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
Index: cfe-6.0.0rc1.src/lib/Driver/ToolChains/Arch/X86.cpp
|
||||||
|
===================================================================
|
||||||
|
--- cfe-6.0.0rc1.src.orig/lib/Driver/ToolChains/Arch/X86.cpp
|
||||||
|
+++ cfe-6.0.0rc1.src/lib/Driver/ToolChains/Arch/X86.cpp
|
||||||
|
@@ -102,8 +102,8 @@ const char *x86::getX86TargetCPU(const A
|
||||||
|
case llvm::Triple::FreeBSD:
|
||||||
|
return "i686";
|
||||||
|
default:
|
||||||
|
- // Fallback to p4.
|
||||||
|
- return "pentium4";
|
||||||
|
+ // Fallback to i586.
|
||||||
|
+ return "i586";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
BIN
libcxx-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
libcxx-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
libcxx-16.0.6.src.tar.xz.sig
Normal file
BIN
libcxx-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
17
libcxx-test-library-path.patch
Normal file
17
libcxx-test-library-path.patch
Normal file
@ -0,0 +1,17 @@
|
|||||||
|
diff --git a/libcxx/test/configs/llvm-libc++-shared.cfg.in b/libcxx/test/configs/llvm-libc++-shared.cfg.in
|
||||||
|
index 7228c7e8d467..9835a012c1de 100644
|
||||||
|
--- a/libcxx/test/configs/llvm-libc++-shared.cfg.in
|
||||||
|
+++ b/libcxx/test/configs/llvm-libc++-shared.cfg.in
|
||||||
|
@@ -10,10 +10,10 @@ config.substitutions.append(('%{compile_flags}',
|
||||||
|
'-nostdinc++ -I %{include} -I %{target-include} -I %{libcxx}/test/support'
|
||||||
|
))
|
||||||
|
config.substitutions.append(('%{link_flags}',
|
||||||
|
- '-nostdlib++ -L %{lib} -Wl,-rpath,%{lib} -lc++ -pthread'
|
||||||
|
+ '-nostdlib++ -L %{lib} -lc++ -pthread'
|
||||||
|
))
|
||||||
|
config.substitutions.append(('%{exec}',
|
||||||
|
- '%{executor} --execdir %T -- '
|
||||||
|
+ '%{executor} --execdir %T --env LD_LIBRARY_PATH=%{lib} -- '
|
||||||
|
))
|
||||||
|
|
||||||
|
import os, site
|
BIN
libcxxabi-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
libcxxabi-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
libcxxabi-16.0.6.src.tar.xz.sig
Normal file
BIN
libcxxabi-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
58
link-clang-shared.patch
Normal file
58
link-clang-shared.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
diff --git a/clang/tools/c-index-test/CMakeLists.txt b/clang/tools/c-index-test/CMakeLists.txt
|
||||||
|
index ceef4b08637..606149ad74f 100644
|
||||||
|
--- a/clang/tools/c-index-test/CMakeLists.txt
|
||||||
|
+++ b/clang/tools/c-index-test/CMakeLists.txt
|
||||||
|
@@ -18,6 +18,9 @@ if (LLVM_BUILD_STATIC)
|
||||||
|
target_link_libraries(c-index-test
|
||||||
|
PRIVATE
|
||||||
|
libclang_static
|
||||||
|
+ )
|
||||||
|
+ clang_target_link_libraries(c-index-test
|
||||||
|
+ PRIVATE
|
||||||
|
clangCodeGen
|
||||||
|
clangIndex
|
||||||
|
)
|
||||||
|
@@ -25,6 +28,9 @@ else()
|
||||||
|
target_link_libraries(c-index-test
|
||||||
|
PRIVATE
|
||||||
|
libclang
|
||||||
|
+ )
|
||||||
|
+ clang_target_link_libraries(c-index-test
|
||||||
|
+ PRIVATE
|
||||||
|
clangAST
|
||||||
|
clangBasic
|
||||||
|
clangCodeGen
|
||||||
|
diff --git a/clang/tools/libclang/CMakeLists.txt b/clang/tools/libclang/CMakeLists.txt
|
||||||
|
index 4f23065..343f977 100644
|
||||||
|
--- a/clang/tools/libclang/CMakeLists.txt
|
||||||
|
+++ b/clang/tools/libclang/CMakeLists.txt
|
||||||
|
@@ -57,7 +57,7 @@ set(SOURCES
|
||||||
|
../../include/clang-c/Index.h
|
||||||
|
)
|
||||||
|
|
||||||
|
-set(LIBS
|
||||||
|
+set(CLANG_LIB_DEPS
|
||||||
|
clangAST
|
||||||
|
clangBasic
|
||||||
|
clangDriver
|
||||||
|
@@ -72,7 +72,7 @@ set(LIBS
|
||||||
|
)
|
||||||
|
|
||||||
|
if (CLANG_ENABLE_ARCMT)
|
||||||
|
- list(APPEND LIBS clangARCMigrate)
|
||||||
|
+ list(APPEND CLANG_LIB_DEPS clangARCMigrate)
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
if (HAVE_LIBDL)
|
||||||
|
@@ -152,6 +152,11 @@ add_clang_library(libclang ${ENABLE_SHARED} ${ENABLE_STATIC} INSTALL_WITH_TOOLCH
|
||||||
|
TargetParser
|
||||||
|
)
|
||||||
|
|
||||||
|
+clang_target_link_libraries(libclang
|
||||||
|
+ PRIVATE
|
||||||
|
+ ${CLANG_LIB_DEPS}
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
if(ENABLE_STATIC)
|
||||||
|
foreach(name libclang obj.libclang libclang_static)
|
||||||
|
if (TARGET ${name})
|
58
link-clang-tools-extra-shared.patch
Normal file
58
link-clang-tools-extra-shared.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
diff --git a/clang-tools-extra/clang-include-fixer/plugin/CMakeLists.txt b/clang-tools-extra/clang-include-fixer/plugin/CMakeLists.txt
|
||||||
|
index 6d0328ed831..d531e44743a 100644
|
||||||
|
--- a/clang-tools-extra/clang-include-fixer/plugin/CMakeLists.txt
|
||||||
|
+++ b/clang-tools-extra/clang-include-fixer/plugin/CMakeLists.txt
|
||||||
|
@@ -2,15 +2,18 @@ add_clang_library(clangIncludeFixerPlugin
|
||||||
|
IncludeFixerPlugin.cpp
|
||||||
|
|
||||||
|
LINK_LIBS
|
||||||
|
+ clangIncludeFixer
|
||||||
|
+ ${LLVM_PTHREAD_LIB}
|
||||||
|
+
|
||||||
|
+ DEPENDS
|
||||||
|
+ omp_gen
|
||||||
|
+ )
|
||||||
|
+clang_target_link_libraries(clangIncludeFixerPlugin
|
||||||
|
+ PRIVATE
|
||||||
|
clangAST
|
||||||
|
clangBasic
|
||||||
|
clangFrontend
|
||||||
|
- clangIncludeFixer
|
||||||
|
clangParse
|
||||||
|
clangSema
|
||||||
|
clangTooling
|
||||||
|
- ${LLVM_PTHREAD_LIB}
|
||||||
|
-
|
||||||
|
- DEPENDS
|
||||||
|
- omp_gen
|
||||||
|
)
|
||||||
|
diff --git a/clang-tools-extra/clangd/refactor/tweaks/CMakeLists.txt b/clang-tools-extra/clangd/refactor/tweaks/CMakeLists.txt
|
||||||
|
index 8f708cacfdf..b08e9cee954 100644
|
||||||
|
--- a/clang-tools-extra/clangd/refactor/tweaks/CMakeLists.txt
|
||||||
|
+++ b/clang-tools-extra/clangd/refactor/tweaks/CMakeLists.txt
|
||||||
|
@@ -31,17 +31,20 @@ add_clang_library(clangDaemonTweaks OBJECT
|
||||||
|
SwapIfBranches.cpp
|
||||||
|
|
||||||
|
LINK_LIBS
|
||||||
|
- clangAST
|
||||||
|
- clangBasic
|
||||||
|
clangDaemon
|
||||||
|
clangdSupport
|
||||||
|
+
|
||||||
|
+ DEPENDS
|
||||||
|
+ omp_gen
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+clang_target_link_libraries(clangDaemonTweaks INTERFACE
|
||||||
|
+ clangAST
|
||||||
|
+ clangBasic
|
||||||
|
clangFormat
|
||||||
|
clangLex
|
||||||
|
clangSema
|
||||||
|
clangToolingCore
|
||||||
|
clangToolingRefactoring
|
||||||
|
clangToolingSyntax
|
||||||
|
-
|
||||||
|
- DEPENDS
|
||||||
|
- omp_gen
|
||||||
|
)
|
BIN
lld-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
lld-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
lld-16.0.6.src.tar.xz.sig
Normal file
BIN
lld-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
13
lld-default-sha1.patch
Normal file
13
lld-default-sha1.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: lld-15.0.0rc2.src/ELF/Options.td
|
||||||
|
===================================================================
|
||||||
|
--- lld-15.0.0rc2.src.orig/ELF/Options.td
|
||||||
|
+++ lld-15.0.0rc2.src/ELF/Options.td
|
||||||
|
@@ -52,7 +52,7 @@ def Bstatic: F<"Bstatic">, HelpText<"Do
|
||||||
|
|
||||||
|
def build_id: J<"build-id=">, HelpText<"Generate build ID note">,
|
||||||
|
MetaVarName<"[fast,md5,sha1,uuid,0x<hexstring>]">;
|
||||||
|
-def : F<"build-id">, Alias<build_id>, AliasArgs<["fast"]>, HelpText<"Alias for --build-id=fast">;
|
||||||
|
+def : F<"build-id">, Alias<build_id>, AliasArgs<["sha1"]>, HelpText<"Alias for --build-id=sha1">;
|
||||||
|
|
||||||
|
defm check_sections: B<"check-sections",
|
||||||
|
"Check section addresses for overlaps (default)",
|
BIN
lldb-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
lldb-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
lldb-16.0.6.src.tar.xz.sig
Normal file
BIN
lldb-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
13
lldb-cmake.patch
Normal file
13
lldb-cmake.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: lldb-10.0.0rc1.src/source/Host/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- lldb-10.0.0rc1.src.orig/source/Host/CMakeLists.txt
|
||||||
|
+++ lldb-10.0.0rc1.src/source/Host/CMakeLists.txt
|
||||||
|
@@ -143,6 +143,8 @@ endif()
|
||||||
|
set(EXTRA_LIBS)
|
||||||
|
if (CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
||||||
|
list(APPEND EXTRA_LIBS kvm)
|
||||||
|
+elseif (CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
+ list(APPEND EXTRA_LIBS dl pthread)
|
||||||
|
endif()
|
||||||
|
if (LLDB_ENABLE_LIBXML2)
|
||||||
|
list(APPEND EXTRA_LIBS LibXml2::LibXml2)
|
BIN
llvm-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
llvm-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
llvm-16.0.6.src.tar.xz.sig
Normal file
BIN
llvm-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
134
llvm-do-not-install-static-libraries.patch
Normal file
134
llvm-do-not-install-static-libraries.patch
Normal file
@ -0,0 +1,134 @@
|
|||||||
|
This has similar effect as simply deleting the static libraries which we don't
|
||||||
|
want after installation. By not copying them in the first place we reduce the
|
||||||
|
disk usage during installation.
|
||||||
|
|
||||||
|
Index: clang-16.0.6.src/cmake/modules/AddClang.cmake
|
||||||
|
===================================================================
|
||||||
|
--- a/clang-16.0.6.src/cmake/modules/AddClang.cmake
|
||||||
|
+++ b/clang-16.0.6.src/cmake/modules/AddClang.cmake
|
||||||
|
@@ -106,12 +106,15 @@ macro(add_clang_library name)
|
||||||
|
|
||||||
|
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ARG_INSTALL_WITH_TOOLCHAIN)
|
||||||
|
get_target_export_arg(${name} Clang export_to_clangtargets UMBRELLA clang-libraries)
|
||||||
|
- install(TARGETS ${lib}
|
||||||
|
- COMPONENT ${lib}
|
||||||
|
- ${export_to_clangtargets}
|
||||||
|
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||||
|
+ if (ARG_SHARED OR ARG_MODULE)
|
||||||
|
+ install(TARGETS ${lib}
|
||||||
|
+ COMPONENT ${lib}
|
||||||
|
+ ${export_to_clangtargets}
|
||||||
|
+ LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
+ ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||||
|
+ set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${lib})
|
||||||
|
+ endif()
|
||||||
|
|
||||||
|
if (NOT LLVM_ENABLE_IDE)
|
||||||
|
add_llvm_install_targets(install-${lib}
|
||||||
|
@@ -121,7 +124,6 @@ macro(add_clang_library name)
|
||||||
|
|
||||||
|
set_property(GLOBAL APPEND PROPERTY CLANG_LIBS ${lib})
|
||||||
|
endif()
|
||||||
|
- set_property(GLOBAL APPEND PROPERTY CLANG_EXPORTS ${lib})
|
||||||
|
else()
|
||||||
|
# Add empty "phony" target
|
||||||
|
add_custom_target(${lib})
|
||||||
|
Index: cmake/modules/AddLLVM.cmake
|
||||||
|
===================================================================
|
||||||
|
--- a/cmake/modules/AddLLVM.cmake
|
||||||
|
+++ b/cmake/modules/AddLLVM.cmake
|
||||||
|
@@ -730,11 +730,14 @@ macro(add_llvm_library name)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
get_target_export_arg(${name} LLVM export_to_llvmexports ${umbrella})
|
||||||
|
- install(TARGETS ${name}
|
||||||
|
- ${export_to_llvmexports}
|
||||||
|
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
|
||||||
|
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
|
||||||
|
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name})
|
||||||
|
+ if(ARG_SHARED OR ARG_MODULE OR NOT LLVM_BUILD_LLVM_DYLIB)
|
||||||
|
+ install(TARGETS ${name}
|
||||||
|
+ ${export_to_llvmexports}
|
||||||
|
+ LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
|
||||||
|
+ ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX} COMPONENT ${name}
|
||||||
|
+ RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" COMPONENT ${name})
|
||||||
|
+ set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
||||||
|
+ endif()
|
||||||
|
|
||||||
|
if (NOT LLVM_ENABLE_IDE)
|
||||||
|
add_llvm_install_targets(install-${name}
|
||||||
|
@@ -742,7 +745,6 @@ macro(add_llvm_library name)
|
||||||
|
COMPONENT ${name})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
||||||
|
endif()
|
||||||
|
if (ARG_MODULE)
|
||||||
|
set_target_properties(${name} PROPERTIES FOLDER "Loadable modules")
|
||||||
|
Index: lld-16.0.6.src/cmake/modules/AddLLD.cmake
|
||||||
|
===================================================================
|
||||||
|
--- a/lld-16.0.6.src/cmake/modules/AddLLD.cmake
|
||||||
|
+++ b/lld-16.0.6.src/cmake/modules/AddLLD.cmake
|
||||||
|
@@ -17,13 +17,6 @@ macro(add_lld_library name)
|
||||||
|
|
||||||
|
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY)
|
||||||
|
get_target_export_arg(${name} LLD export_to_lldtargets)
|
||||||
|
- install(TARGETS ${name}
|
||||||
|
- COMPONENT ${name}
|
||||||
|
- ${export_to_lldtargets}
|
||||||
|
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
- RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}")
|
||||||
|
-
|
||||||
|
if (${ARG_SHARED} AND NOT CMAKE_CONFIGURATION_TYPES)
|
||||||
|
add_llvm_install_targets(install-${name}
|
||||||
|
DEPENDS ${name}
|
||||||
|
Index: polly-16.0.6.src/cmake/polly_macros.cmake
|
||||||
|
===================================================================
|
||||||
|
--- a/polly-16.0.6.src/cmake/polly_macros.cmake
|
||||||
|
+++ b/polly-16.0.6.src/cmake/polly_macros.cmake
|
||||||
|
@@ -42,12 +42,14 @@ macro(add_polly_library name)
|
||||||
|
llvm_config(${name} ${LLVM_LINK_COMPONENTS})
|
||||||
|
endif( LLVM_LINK_COMPONENTS )
|
||||||
|
if (NOT LLVM_INSTALL_TOOLCHAIN_ONLY OR ${name} STREQUAL "LLVMPolly")
|
||||||
|
- install(TARGETS ${name}
|
||||||
|
- EXPORT LLVMExports
|
||||||
|
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
|
||||||
|
+ if (MODULE OR SHARED_LIBRARY OR NOT LLVM_BUILD_LLVM_DYLIB)
|
||||||
|
+ install(TARGETS ${name}
|
||||||
|
+ EXPORT LLVMExports
|
||||||
|
+ LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
+ ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
|
||||||
|
+ set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
||||||
|
+ endif()
|
||||||
|
endif()
|
||||||
|
- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
||||||
|
endmacro(add_polly_library)
|
||||||
|
|
||||||
|
macro(add_polly_loadable_module name)
|
||||||
|
Index: polly-16.0.6.src/lib/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- a/polly-16.0.6.src/lib/CMakeLists.txt
|
||||||
|
+++ b/polly-16.0.6.src/lib/CMakeLists.txt
|
||||||
|
@@ -74,7 +74,7 @@ set_target_properties(PollyCore PROPERTI
|
||||||
|
# It depends on all library it needs, such that with
|
||||||
|
# LLVM_POLLY_LINK_INTO_TOOLS=ON, its dependencies like PollyISL are linked as
|
||||||
|
# well.
|
||||||
|
-target_link_libraries(Polly PUBLIC
|
||||||
|
+target_link_libraries(Polly PRIVATE
|
||||||
|
${ISL_TARGET}
|
||||||
|
)
|
||||||
|
|
||||||
|
@@ -143,7 +143,7 @@ else ()
|
||||||
|
# hosts. This is not the case for bugpoint. Use LLVM_POLLY_LINK_INTO_TOOLS=ON
|
||||||
|
# instead which will automatically resolve the additional dependencies by
|
||||||
|
# Polly.
|
||||||
|
- target_link_libraries(LLVMPolly PUBLIC ${ISL_TARGET})
|
||||||
|
+ target_link_libraries(LLVMPolly PRIVATE ${ISL_TARGET})
|
||||||
|
if (GPU_CODEGEN)
|
||||||
|
target_link_libraries(LLVMPolly PUBLIC PollyPPCG)
|
||||||
|
endif ()
|
BIN
llvm-docs-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
llvm-docs-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
14
llvm-fix-find-gcc5-install.patch
Normal file
14
llvm-fix-find-gcc5-install.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Index: cfe-7.0.0rc1.src/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
===================================================================
|
||||||
|
--- cfe-7.0.0rc1.src.orig/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
+++ cfe-7.0.0rc1.src/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
@@ -1596,7 +1596,8 @@ Generic_GCC::GCCVersion Generic_GCC::GCC
|
||||||
|
MinorStr = MinorStr.slice(0, EndNumber);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
- if (MinorStr.getAsInteger(10, GoodVersion.Minor) || GoodVersion.Minor < 0)
|
||||||
|
+ if (!MinorStr.str().empty() &&
|
||||||
|
+ (MinorStr.getAsInteger(10, GoodVersion.Minor) || GoodVersion.Minor < 0))
|
||||||
|
return BadVersion;
|
||||||
|
GoodVersion.MinorStr = MinorStr.str();
|
||||||
|
|
78
llvm-normally-versioned-libllvm.patch
Normal file
78
llvm-normally-versioned-libllvm.patch
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
Before llvm4, both major and minor version updates of llvm were regularly
|
||||||
|
breaking API. Because of that, the libLLVM library was named in following
|
||||||
|
format: libLLVM-${major}-${minor}.so
|
||||||
|
|
||||||
|
(https://bugs.llvm.org/show_bug.cgi?id=25059)
|
||||||
|
(https://reviews.llvm.org/D13841)
|
||||||
|
|
||||||
|
The package containing this library was called libLLVM${major}_${minor} which
|
||||||
|
follows our guidelines.
|
||||||
|
|
||||||
|
Since llvm4, llvm decided to follow semantic versioning and only break API if
|
||||||
|
the major version was increased. In addition they do not intend to ever have
|
||||||
|
minor version other than 0.
|
||||||
|
(http://blog.llvm.org/2016/12/llvms-new-versioning-scheme.html)
|
||||||
|
|
||||||
|
The package was renamed to libLLVM${major}, which no longer follows the naming
|
||||||
|
guidelines, but since the package contained multiple libraries, it was not
|
||||||
|
detected.
|
||||||
|
|
||||||
|
Since bnc#1049703 the libLLVM${major} package contains only the
|
||||||
|
libLLVM-${major}-${minor}.so library and no others. This triggers the
|
||||||
|
shlib-policy-name-error check in our packaging system.
|
||||||
|
|
||||||
|
Because the reasons for using the libLLVM-${major}-${minor}.so format are no
|
||||||
|
longer valid, lets revert back to libLLVM.so.${major}.${minor}.${version}
|
||||||
|
format. That way the package name matches our guidelines.
|
||||||
|
|
||||||
|
Index: llvm-8.0.0rc3.src/tools/llvm-config/llvm-config.cpp
|
||||||
|
===================================================================
|
||||||
|
--- llvm-8.0.0rc3.src.orig/tools/llvm-config/llvm-config.cpp
|
||||||
|
+++ llvm-8.0.0rc3.src/tools/llvm-config/llvm-config.cpp
|
||||||
|
@@ -380,7 +380,6 @@ int main(int argc, char **argv) {
|
||||||
|
} else {
|
||||||
|
// default to the unix values:
|
||||||
|
SharedExt = "so";
|
||||||
|
- SharedVersionedExt = LLVM_DYLIB_VERSION ".so";
|
||||||
|
StaticExt = "a";
|
||||||
|
StaticDir = SharedDir = ActiveLibDir;
|
||||||
|
StaticPrefix = SharedPrefix = "lib";
|
||||||
|
@@ -393,7 +392,7 @@ int main(int argc, char **argv) {
|
||||||
|
|
||||||
|
bool DyLibExists = false;
|
||||||
|
const std::string DyLibName =
|
||||||
|
- (SharedPrefix + "LLVM-" + SharedVersionedExt).str();
|
||||||
|
+ (SharedPrefix + "LLVM." + SharedExt).str();
|
||||||
|
|
||||||
|
// If LLVM_LINK_DYLIB is ON, the single shared library will be returned
|
||||||
|
// for "--libs", etc, if they exist. This behaviour can be overridden with
|
||||||
|
Index: llvm-8.0.0rc3.src/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- llvm-8.0.0rc3.src.orig/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
+++ llvm-8.0.0rc3.src/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
@@ -42,7 +42,7 @@ if(LLVM_BUILD_LLVM_DYLIB)
|
||||||
|
if (LLVM_LINK_LLVM_DYLIB)
|
||||||
|
set(INSTALL_WITH_TOOLCHAIN INSTALL_WITH_TOOLCHAIN)
|
||||||
|
endif()
|
||||||
|
- add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
|
||||||
|
+ add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB ${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
|
||||||
|
|
||||||
|
list(REMOVE_DUPLICATES LIB_NAMES)
|
||||||
|
if(("${CMAKE_SYSTEM_NAME}" STREQUAL "Linux") OR (MINGW) OR (HAIKU)
|
||||||
|
Index: llvm-14.0.0rc2.src/test/lit.cfg.py
|
||||||
|
===================================================================
|
||||||
|
--- llvm-14.0.0rc2.src.orig/test/lit.cfg.py
|
||||||
|
+++ llvm-14.0.0rc2.src/test/lit.cfg.py
|
||||||
|
@@ -244,9 +244,9 @@ if config.link_llvm_dylib:
|
||||||
|
config.available_features.add('llvm-dylib')
|
||||||
|
config.substitutions.append(
|
||||||
|
('%llvmdylib',
|
||||||
|
- '{}/libLLVM-{}{}'.format(config.llvm_shlib_dir,
|
||||||
|
- config.llvm_dylib_version,
|
||||||
|
- config.llvm_shlib_ext)))
|
||||||
|
+ '{}/libLLVM{}.{}'.format(config.llvm_shlib_dir,
|
||||||
|
+ config.llvm_shlib_ext,
|
||||||
|
+ config.llvm_dylib_version)))
|
||||||
|
|
||||||
|
if config.have_tf_aot:
|
||||||
|
config.available_features.add("have_tf_aot")
|
19
llvm-projects-tools-order.patch
Normal file
19
llvm-projects-tools-order.patch
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
diff --git a/llvm/CMakeLists.txt b/llvm/CMakeLists.txt
|
||||||
|
index 04d4cf2..b698c27 100644
|
||||||
|
--- a/llvm/CMakeLists.txt
|
||||||
|
+++ b/llvm/CMakeLists.txt
|
||||||
|
@@ -1188,12 +1188,12 @@ foreach( binding ${LLVM_BINDINGS_LIST} )
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
|
-add_subdirectory(projects)
|
||||||
|
-
|
||||||
|
if( LLVM_INCLUDE_TOOLS )
|
||||||
|
add_subdirectory(tools)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+add_subdirectory(projects)
|
||||||
|
+
|
||||||
|
if( LLVM_INCLUDE_RUNTIMES )
|
||||||
|
add_subdirectory(runtimes)
|
||||||
|
endif()
|
21
llvm-remove-clang-only-flags.patch
Normal file
21
llvm-remove-clang-only-flags.patch
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
Index: llvm-16.0.5.src/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
===================================================================
|
||||||
|
--- llvm-16.0.5.src.orig/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
+++ llvm-16.0.5.src/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
@@ -578,8 +578,6 @@ if( MSVC )
|
||||||
|
|
||||||
|
# Specific default warnings-as-errors for compilers accepting GCC-compatible warning flags:
|
||||||
|
if ( LLVM_COMPILER_IS_GCC_COMPATIBLE OR CMAKE_CXX_COMPILER_ID MATCHES "XL" )
|
||||||
|
- add_flag_if_supported("-Werror=date-time" WERROR_DATE_TIME)
|
||||||
|
- add_flag_if_supported("-Werror=unguarded-availability-new" WERROR_UNGUARDED_AVAILABILITY_NEW)
|
||||||
|
endif( LLVM_COMPILER_IS_GCC_COMPATIBLE OR CMAKE_CXX_COMPILER_ID MATCHES "XL" )
|
||||||
|
|
||||||
|
# Modules enablement for GCC-compatible compilers:
|
||||||
|
@@ -731,7 +729,6 @@ if (LLVM_ENABLE_WARNINGS AND (LLVM_COMPI
|
||||||
|
endif()
|
||||||
|
|
||||||
|
add_flag_if_supported("-Wimplicit-fallthrough" IMPLICIT_FALLTHROUGH_FLAG)
|
||||||
|
- add_flag_if_supported("-Wcovered-switch-default" COVERED_SWITCH_DEFAULT_FLAG)
|
||||||
|
append_if(USE_NO_UNINITIALIZED "-Wno-uninitialized" CMAKE_CXX_FLAGS)
|
||||||
|
append_if(USE_NO_MAYBE_UNINITIALIZED "-Wno-maybe-uninitialized" CMAKE_CXX_FLAGS)
|
||||||
|
|
14
llvm-suse-implicit-gnu.patch
Normal file
14
llvm-suse-implicit-gnu.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
diff --git a/llvm/include/llvm/TargetParser/Triple.h b/llvm/include/llvm/TargetParser/Triple.h
|
||||||
|
index 59513fa..4de99ae 100644
|
||||||
|
--- a/llvm/include/llvm/TargetParser/Triple.h
|
||||||
|
+++ b/llvm/include/llvm/TargetParser/Triple.h
|
||||||
|
@@ -567,7 +567,8 @@ public:
|
||||||
|
Env == Triple::GNUABI64 || Env == Triple::GNUEABI ||
|
||||||
|
Env == Triple::GNUEABIHF || Env == Triple::GNUF32 ||
|
||||||
|
Env == Triple::GNUF64 || Env == Triple::GNUSF ||
|
||||||
|
- Env == Triple::GNUX32;
|
||||||
|
+ Env == Triple::GNUX32 ||
|
||||||
|
+ (Env == Triple::UnknownEnvironment && getVendor() == Triple::SUSE);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool isOSContiki() const {
|
14
llvm-workaround-superfluous-branches.patch
Normal file
14
llvm-workaround-superfluous-branches.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
diff --git a/llvm/include/llvm/Support/Casting.h b/llvm/include/llvm/Support/Casting.h
|
||||||
|
index 4ff5865..19623f6 100644
|
||||||
|
--- a/llvm/include/llvm/Support/Casting.h
|
||||||
|
+++ b/llvm/include/llvm/Support/Casting.h
|
||||||
|
@@ -661,6 +661,9 @@ template <typename To, typename From>
|
||||||
|
template <typename To, typename From>
|
||||||
|
[[nodiscard]] inline decltype(auto) dyn_cast(From *Val) {
|
||||||
|
assert(detail::isPresent(Val) && "dyn_cast on a non-existent value");
|
||||||
|
+#if defined(__clang__) && defined(NDEBUG)
|
||||||
|
+ __builtin_assume(Val);
|
||||||
|
+#endif
|
||||||
|
return CastInfo<To, From *>::doCastIfPossible(Val);
|
||||||
|
}
|
||||||
|
|
19
llvm16-rpmlintrc
Normal file
19
llvm16-rpmlintrc
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
# This line is mandatory to access the configuration functions
|
||||||
|
from Config import *
|
||||||
|
|
||||||
|
addFilter("devel-file-in-non-devel-package .*/clang/.*/include/.*")
|
||||||
|
addFilter("devel-file-in-non-devel-package .*/clang/.*/lib/.*")
|
||||||
|
addFilter("devel-file-in-non-devel-package .*/usr/include/.*")
|
||||||
|
|
||||||
|
addFilter("devel-file-in-non-devel-package .*/lib.*/*.a")
|
||||||
|
addFilter("devel-file-in-non-devel-package .*/lib.*/*.so")
|
||||||
|
|
||||||
|
# We're deliberately conflicting with SLE. (https://code.opensuse.org/leap/features/issue/55)
|
||||||
|
addFilter("SUSE_Backports_policy-SLE_conflict")
|
||||||
|
|
||||||
|
# Archive seems to be deliberately empty on some architectures.
|
||||||
|
addFilter("lto-no-text-in-archive .*/lib.*/clang/.*/lib/linux/libclang_rt.asan_static-.*.a")
|
||||||
|
|
||||||
|
# Different versions of LLVM can produce the same SONAME, so we'll have to use
|
||||||
|
# non-standard names sometimes. (Leap's rpmlint complains, Tumbleweed's doesn't.)
|
||||||
|
addFilter("shlib-policy-name-error")
|
2878
llvm16.changes
Normal file
2878
llvm16.changes
Normal file
File diff suppressed because it is too large
Load Diff
104
llvm16.keyring
Normal file
104
llvm16.keyring
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
9RmlwZlOTFGcWBYl/cfRONn9qi9a6w==
|
||||||
|
=Lvw+
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
=tMzl
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
1774
llvm16.spec
Normal file
1774
llvm16.spec
Normal file
File diff suppressed because it is too large
Load Diff
71
llvm_build_tablegen_component_as_shared_library.patch
Normal file
71
llvm_build_tablegen_component_as_shared_library.patch
Normal file
@ -0,0 +1,71 @@
|
|||||||
|
The LLVMTableGen component is a special case that is excluded from libLLVM and
|
||||||
|
normally is only built as static library and linked into llvm-tblgen.
|
||||||
|
|
||||||
|
We need to have it as a shared library to be available for other projects such
|
||||||
|
as ldc.
|
||||||
|
|
||||||
|
This patch makes it even more special and forces it to be build and installed
|
||||||
|
as separate shared library.
|
||||||
|
|
||||||
|
Index: llvm-8.0.0rc3.src/cmake/modules/AddLLVM.cmake
|
||||||
|
===================================================================
|
||||||
|
--- llvm-8.0.0rc3.src.orig/cmake/modules/AddLLVM.cmake
|
||||||
|
+++ llvm-8.0.0rc3.src/cmake/modules/AddLLVM.cmake
|
||||||
|
@@ -541,7 +541,7 @@ function(llvm_add_library name)
|
||||||
|
if(ARG_MODULE AND LLVM_EXPORT_SYMBOLS_FOR_PLUGINS AND ARG_PLUGIN_TOOL AND (WIN32 OR CYGWIN))
|
||||||
|
# On DLL platforms symbols are imported from the tool by linking against it.
|
||||||
|
set(llvm_libs ${ARG_PLUGIN_TOOL})
|
||||||
|
- elseif (NOT ARG_COMPONENT_LIB)
|
||||||
|
+ elseif (NOT ARG_COMPONENT_LIB OR (${name} STREQUAL "LLVMTableGen" AND LLVM_BUILD_LLVM_DYLIB))
|
||||||
|
if (LLVM_LINK_LLVM_DYLIB AND NOT ARG_DISABLE_LLVM_LINK_LLVM_DYLIB)
|
||||||
|
set(llvm_libs LLVM)
|
||||||
|
else()
|
||||||
|
Index: llvm-16.0.0rc1.src/cmake/modules/TableGen.cmake
|
||||||
|
===================================================================
|
||||||
|
--- llvm-16.0.0rc1.src.orig/cmake/modules/TableGen.cmake
|
||||||
|
+++ llvm-16.0.0rc1.src/cmake/modules/TableGen.cmake
|
||||||
|
@@ -143,8 +143,8 @@ macro(add_tablegen target project)
|
||||||
|
set(LLVM_ENABLE_OBJLIB ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
- add_llvm_executable(${target} DISABLE_LLVM_LINK_LLVM_DYLIB
|
||||||
|
- ${ADD_TABLEGEN_UNPARSED_ARGUMENTS})
|
||||||
|
+ add_llvm_executable(${target} ${ADD_TABLEGEN_UNPARSED_ARGUMENTS})
|
||||||
|
+ target_link_libraries(${target} PRIVATE LLVMTableGen)
|
||||||
|
set(LLVM_LINK_COMPONENTS ${${target}_OLD_LLVM_LINK_COMPONENTS})
|
||||||
|
|
||||||
|
set(${project}_TABLEGEN_DEFAULT "${target}")
|
||||||
|
Index: llvm-8.0.0rc3.src/lib/TableGen/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- llvm-8.0.0rc3.src.orig/lib/TableGen/CMakeLists.txt
|
||||||
|
+++ llvm-8.0.0rc3.src/lib/TableGen/CMakeLists.txt
|
||||||
|
@@ -1,3 +1,7 @@
|
||||||
|
+if (LLVM_BUILD_LLVM_DYLIB)
|
||||||
|
+ set(MAYBE_SHARED SHARED)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
add_llvm_component_library(LLVMTableGen
|
||||||
|
DetailedRecordsBackend.cpp
|
||||||
|
Error.cpp
|
||||||
|
@@ -9,6 +13,8 @@ add_llvm_library(LLVMTableGen
|
||||||
|
TGLexer.cpp
|
||||||
|
TGParser.cpp
|
||||||
|
|
||||||
|
+ ${MAYBE_SHARED}
|
||||||
|
+
|
||||||
|
ADDITIONAL_HEADER_DIRS
|
||||||
|
${LLVM_MAIN_INCLUDE_DIR}/llvm/TableGen
|
||||||
|
|
||||||
|
Index: llvm-14.0.3.src/utils/TableGen/GlobalISel/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- llvm-14.0.3.src.orig/utils/TableGen/GlobalISel/CMakeLists.txt
|
||||||
|
+++ llvm-14.0.3.src/utils/TableGen/GlobalISel/CMakeLists.txt
|
||||||
|
@@ -3,7 +3,7 @@ set(LLVM_LINK_COMPONENTS
|
||||||
|
TableGen
|
||||||
|
)
|
||||||
|
|
||||||
|
-add_llvm_library(LLVMTableGenGlobalISel STATIC DISABLE_LLVM_LINK_LLVM_DYLIB
|
||||||
|
+add_llvm_library(LLVMTableGenGlobalISel STATIC
|
||||||
|
CodeExpander.cpp
|
||||||
|
GIMatchDag.cpp
|
||||||
|
GIMatchDagEdge.cpp
|
28
lto-disable-cache.patch
Normal file
28
lto-disable-cache.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
diff --git a/llvm/cmake/modules/HandleLLVMOptions.cmake b/llvm/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
index 5e57a3b8234..23f9ed5fb56 100644
|
||||||
|
--- a/llvm/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
+++ b/llvm/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
@@ -889,23 +889,6 @@ if(uppercase_LLVM_ENABLE_LTO STREQUAL "THIN")
|
||||||
|
if(NOT LINKER_IS_LLD_LINK)
|
||||||
|
append("-flto=thin" CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
|
||||||
|
endif()
|
||||||
|
- # If the linker supports it, enable the lto cache. This improves initial build
|
||||||
|
- # time a little since we re-link a lot of the same objects, and significantly
|
||||||
|
- # improves incremental build time.
|
||||||
|
- # FIXME: We should move all this logic into the clang driver.
|
||||||
|
- if(APPLE)
|
||||||
|
- append("-Wl,-cache_path_lto,${LLVM_THINLTO_CACHE_PATH}"
|
||||||
|
- CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
|
||||||
|
- elseif((UNIX OR MINGW) AND LLVM_USE_LINKER STREQUAL "lld")
|
||||||
|
- append("-Wl,--thinlto-cache-dir=${LLVM_THINLTO_CACHE_PATH}"
|
||||||
|
- CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
|
||||||
|
- elseif(LLVM_USE_LINKER STREQUAL "gold")
|
||||||
|
- append("-Wl,--plugin-opt,cache-dir=${LLVM_THINLTO_CACHE_PATH}"
|
||||||
|
- CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
|
||||||
|
- elseif(LINKER_IS_LLD_LINK)
|
||||||
|
- append("/lldltocache:${LLVM_THINLTO_CACHE_PATH}"
|
||||||
|
- CMAKE_EXE_LINKER_FLAGS CMAKE_SHARED_LINKER_FLAGS)
|
||||||
|
- endif()
|
||||||
|
elseif(uppercase_LLVM_ENABLE_LTO STREQUAL "FULL")
|
||||||
|
append("-flto=full" CMAKE_CXX_FLAGS CMAKE_C_FLAGS)
|
||||||
|
if(NOT LINKER_IS_LLD_LINK)
|
BIN
openmp-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
openmp-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
openmp-16.0.6.src.tar.xz.sig
Normal file
BIN
openmp-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
102
openmp-drop-rpath.patch
Normal file
102
openmp-drop-rpath.patch
Normal file
@ -0,0 +1,102 @@
|
|||||||
|
From 555b572e3f407ac48b5f30fc06760cc4d0549977 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Fangrui Song <i@maskray.me>
|
||||||
|
Date: Wed, 8 Mar 2023 10:18:40 -0800
|
||||||
|
Subject: [PATCH] Revert D118493 "Set rpath on openmp executables"
|
||||||
|
|
||||||
|
This reverts commit 9b9d08111b618d74574ba03e5cc3d752ecc56f55.
|
||||||
|
(Accepted by Jon https://reviews.llvm.org/D118493#4178250)
|
||||||
|
|
||||||
|
libc++, libc++abi, libunwind, and compiler-rt don't add the extra DT_RUNPATH,
|
||||||
|
it's strange for OpenMP to diverge.
|
||||||
|
Some build systems want to handle DT_RUNPATH themselves (e.g.
|
||||||
|
CMAKE_INSTALL_RPATH). Some distributions (e.g. Fedora) have policies against
|
||||||
|
DT_RUNPATH and the default DT_RUNPATH for OpenMP is causing trouble.
|
||||||
|
|
||||||
|
For users who don't want to specify rpath by themselves,
|
||||||
|
https://clang.llvm.org/docs/UsersManual.html#configuration-files
|
||||||
|
can be used to specify the default rpath, e.g.
|
||||||
|
specify -frtlib-add-rpath or -Wl,-rpath in bin/clang.cfg
|
||||||
|
---
|
||||||
|
clang/include/clang/Driver/Options.td | 6 ------
|
||||||
|
clang/lib/Driver/ToolChains/CommonArgs.cpp | 19 -------------------
|
||||||
|
clang/lib/Driver/ToolChains/CommonArgs.h | 3 ---
|
||||||
|
clang/test/OpenMP/Inputs/libomp.a | 1 -
|
||||||
|
openmp/libomptarget/test/lit.cfg | 2 --
|
||||||
|
5 files changed, 31 deletions(-)
|
||||||
|
delete mode 100644 clang/test/OpenMP/Inputs/libomp.a
|
||||||
|
|
||||||
|
diff --git a/clang/include/clang/Driver/Options.td b/clang/include/clang/Driver/Options.td
|
||||||
|
index b8a12660b32b7..97b9fdbb31a02 100644
|
||||||
|
--- a/clang/include/clang/Driver/Options.td
|
||||||
|
+++ b/clang/include/clang/Driver/Options.td
|
||||||
|
@@ -4260,12 +4260,6 @@ def offload_add_rpath: Flag<["--"], "offload-add-rpath">, Flags<[NoArgumentUnuse
|
||||||
|
HelpText<"Add -rpath with HIP runtime library directory to the linker flags">;
|
||||||
|
def no_offload_add_rpath: Flag<["--"], "no-offload-add-rpath">, Flags<[NoArgumentUnused]>,
|
||||||
|
HelpText<"Do not add -rpath with HIP runtime library directory to the linker flags">;
|
||||||
|
-defm openmp_implicit_rpath: BoolFOption<"openmp-implicit-rpath",
|
||||||
|
- LangOpts<"OpenMP">,
|
||||||
|
- DefaultTrue,
|
||||||
|
- PosFlag<SetTrue, [], "Set rpath on OpenMP executables">,
|
||||||
|
- NegFlag<SetFalse>,
|
||||||
|
- BothFlags<[NoArgumentUnused]>>;
|
||||||
|
def r : Flag<["-"], "r">, Flags<[LinkerInput,NoArgumentUnused]>,
|
||||||
|
Group<Link_Group>;
|
||||||
|
def save_temps_EQ : Joined<["-", "--"], "save-temps=">, Flags<[CC1Option, FlangOption, NoXarchOption]>,
|
||||||
|
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.cpp b/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||||
|
index dc46b625bb676..bc32b8d8cac8d 100644
|
||||||
|
--- a/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||||
|
+++ b/clang/lib/Driver/ToolChains/CommonArgs.cpp
|
||||||
|
@@ -795,22 +795,6 @@ void tools::addLTOOptions(const ToolChain &ToolChain, const ArgList &Args,
|
||||||
|
/*IsLTO=*/true, PluginOptPrefix);
|
||||||
|
}
|
||||||
|
|
||||||
|
-void tools::addOpenMPRuntimeSpecificRPath(const ToolChain &TC,
|
||||||
|
- const ArgList &Args,
|
||||||
|
- ArgStringList &CmdArgs) {
|
||||||
|
-
|
||||||
|
- if (Args.hasFlag(options::OPT_fopenmp_implicit_rpath,
|
||||||
|
- options::OPT_fno_openmp_implicit_rpath, true)) {
|
||||||
|
- // Default to clang lib / lib64 folder, i.e. the same location as device
|
||||||
|
- // runtime
|
||||||
|
- SmallString<256> DefaultLibPath =
|
||||||
|
- llvm::sys::path::parent_path(TC.getDriver().Dir);
|
||||||
|
- llvm::sys::path::append(DefaultLibPath, CLANG_INSTALL_LIBDIR_BASENAME);
|
||||||
|
- CmdArgs.push_back("-rpath");
|
||||||
|
- CmdArgs.push_back(Args.MakeArgString(DefaultLibPath));
|
||||||
|
- }
|
||||||
|
-}
|
||||||
|
-
|
||||||
|
void tools::addOpenMPRuntimeLibraryPath(const ToolChain &TC,
|
||||||
|
const ArgList &Args,
|
||||||
|
ArgStringList &CmdArgs) {
|
||||||
|
@@ -881,9 +865,6 @@ bool tools::addOpenMPRuntime(ArgStringList &CmdArgs, const ToolChain &TC,
|
||||||
|
CmdArgs.push_back("-lomptarget.devicertl");
|
||||||
|
|
||||||
|
addArchSpecificRPath(TC, Args, CmdArgs);
|
||||||
|
-
|
||||||
|
- if (RTKind == Driver::OMPRT_OMP)
|
||||||
|
- addOpenMPRuntimeSpecificRPath(TC, Args, CmdArgs);
|
||||||
|
addOpenMPRuntimeLibraryPath(TC, Args, CmdArgs);
|
||||||
|
|
||||||
|
return true;
|
||||||
|
diff --git a/clang/lib/Driver/ToolChains/CommonArgs.h b/clang/lib/Driver/ToolChains/CommonArgs.h
|
||||||
|
index d44d9214c08bc..e64e9524601dd 100644
|
||||||
|
--- a/clang/lib/Driver/ToolChains/CommonArgs.h
|
||||||
|
+++ b/clang/lib/Driver/ToolChains/CommonArgs.h
|
||||||
|
@@ -117,9 +117,6 @@ void AddAssemblerKPIC(const ToolChain &ToolChain,
|
||||||
|
const llvm::opt::ArgList &Args,
|
||||||
|
llvm::opt::ArgStringList &CmdArgs);
|
||||||
|
|
||||||
|
-void addOpenMPRuntimeSpecificRPath(const ToolChain &TC,
|
||||||
|
- const llvm::opt::ArgList &Args,
|
||||||
|
- llvm::opt::ArgStringList &CmdArgs);
|
||||||
|
void addArchSpecificRPath(const ToolChain &TC, const llvm::opt::ArgList &Args,
|
||||||
|
llvm::opt::ArgStringList &CmdArgs);
|
||||||
|
void addOpenMPRuntimeLibraryPath(const ToolChain &TC,
|
||||||
|
diff --git a/clang/test/OpenMP/Inputs/libomp.a b/clang/test/OpenMP/Inputs/libomp.a
|
||||||
|
deleted file mode 100644
|
||||||
|
index 8b277f0dd5dcd..0000000000000
|
||||||
|
--- a/clang/test/OpenMP/Inputs/libomp.a
|
||||||
|
+++ /dev/null
|
||||||
|
@@ -1 +0,0 @@
|
||||||
|
-!<arch>
|
14
opt-viewer-Find-style-css-in-usr-share.patch
Normal file
14
opt-viewer-Find-style-css-in-usr-share.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
Index: llvm-7.0.0.src/tools/opt-viewer/opt-viewer.py
|
||||||
|
===================================================================
|
||||||
|
--- llvm-7.0.0.src.orig/tools/opt-viewer/opt-viewer.py
|
||||||
|
+++ llvm-7.0.0.src/tools/opt-viewer/opt-viewer.py
|
||||||
|
@@ -252,8 +252,7 @@ def generate_report(all_remarks,
|
||||||
|
sorted_remarks = sorted(optrecord.itervalues(all_remarks), key=lambda r: (r.File, r.Line, r.Column, r.PassWithDiffPrefix, r.yaml_tag, r.Function))
|
||||||
|
IndexRenderer(output_dir, should_display_hotness, max_hottest_remarks_on_index).render(sorted_remarks)
|
||||||
|
|
||||||
|
- shutil.copy(os.path.join(os.path.dirname(os.path.realpath(__file__)),
|
||||||
|
- "style.css"), output_dir)
|
||||||
|
+ shutil.copy("/usr/share/opt-viewer/style.css", output_dir)
|
||||||
|
|
||||||
|
_render_file_bound = functools.partial(_render_file, source_dir, output_dir, context, no_highlight)
|
||||||
|
if should_print_progress:
|
BIN
polly-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
polly-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
polly-16.0.6.src.tar.xz.sig
Normal file
BIN
polly-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
30
tests-use-python3.patch
Normal file
30
tests-use-python3.patch
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
Index: llvm-8.0.0rc3.src/test/BugPoint/compile-custom.ll.py
|
||||||
|
===================================================================
|
||||||
|
--- llvm-8.0.0rc3.src.orig/test/BugPoint/compile-custom.ll.py
|
||||||
|
+++ llvm-8.0.0rc3.src/test/BugPoint/compile-custom.ll.py
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/usr/bin/env python
|
||||||
|
+#!/usr/bin/python3
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
Index: llvm-8.0.0rc3.src/test/Other/opt-bisect-helper.py
|
||||||
|
===================================================================
|
||||||
|
--- llvm-8.0.0rc3.src.orig/test/Other/opt-bisect-helper.py
|
||||||
|
+++ llvm-8.0.0rc3.src/test/Other/opt-bisect-helper.py
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/usr/bin/env python
|
||||||
|
+#!/usr/bin/python3
|
||||||
|
|
||||||
|
from __future__ import print_function
|
||||||
|
|
||||||
|
Index: llvm-8.0.0rc3.src/test/TableGen/JSON-check.py
|
||||||
|
===================================================================
|
||||||
|
--- llvm-8.0.0rc3.src.orig/test/TableGen/JSON-check.py
|
||||||
|
+++ llvm-8.0.0rc3.src/test/TableGen/JSON-check.py
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-#!/usr/bin/env python
|
||||||
|
+#!/usr/bin/python3
|
||||||
|
|
||||||
|
import sys
|
||||||
|
import subprocess
|
BIN
third-party-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
third-party-16.0.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
third-party-16.0.6.src.tar.xz.sig
Normal file
BIN
third-party-16.0.6.src.tar.xz.sig
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user