- Apply clang-shlib-symbol-versioning.patch to add symbol versions
to libclang-cpp.so similar to libLLVM.so. This is required when multiple versions of the library are loaded into the same process. (boo#1219405, boo#1221183, boo#1233220) OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm18?expand=0&rev=33
This commit is contained in:
commit
c416dc0004
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
|
1
.gitignore
vendored
Normal file
1
.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
|||||||
|
.osc
|
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">8192</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-18.1.0rc1.src/unittests/Driver/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- clang-18.1.0rc1.src.orig/unittests/Driver/CMakeLists.txt
|
||||||
|
+++ clang-18.1.0rc1.src/unittests/Driver/CMakeLists.txt
|
||||||
|
@@ -7,7 +7,6 @@ set(LLVM_LINK_COMPONENTS
|
||||||
|
)
|
||||||
|
|
||||||
|
add_clang_unittest(ClangDriverTests
|
||||||
|
- DistroTest.cpp
|
||||||
|
DXCModeTest.cpp
|
||||||
|
GCCVersionTest.cpp
|
||||||
|
ToolChainTest.cpp
|
2
baselibs.conf
Normal file
2
baselibs.conf
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
libLLVM18
|
||||||
|
libclang-cpp18
|
10
check-no-llvm-exegesis.patch
Normal file
10
check-no-llvm-exegesis.patch
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
--- 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
|
3
clang-18.1.8.src.tar.xz
Normal file
3
clang-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:5724fe0a13087d5579104cedd2f8b3bc10a212fb79a0fcdac98f4880e19f4519
|
||||||
|
size 22155252
|
BIN
clang-18.1.8.src.tar.xz.sig
Normal file
BIN
clang-18.1.8.src.tar.xz.sig
Normal file
Binary file not shown.
3
clang-docs-18.1.8.src.tar.xz
Normal file
3
clang-docs-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9bf132de0a2dc588fbdda452b8d67a2577a36614cb335c07f781ff969e97f310
|
||||||
|
size 1764592
|
14
clang-fix-modules-test-riscv.patch
Normal file
14
clang-fix-modules-test-riscv.patch
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
diff --git a/clang/test/Modules/embed-files-compressed.cpp b/clang/test/Modules/embed-files-compressed.cpp
|
||||||
|
index 873b3082a2fd..775ec699c04a 100644
|
||||||
|
--- a/clang/test/Modules/embed-files-compressed.cpp
|
||||||
|
+++ b/clang/test/Modules/embed-files-compressed.cpp
|
||||||
|
@@ -17,7 +17,7 @@
|
||||||
|
// RUN: %clang_cc1 -fmodules -I%t -fmodules-cache-path=%t -fmodule-name=a -emit-module %t/modulemap -fmodules-embed-all-files -o %t/a.pcm
|
||||||
|
//
|
||||||
|
// The above embeds ~4.5MB of highly-predictable /s and \ns into the pcm file.
|
||||||
|
-// Check that the resulting file is under 60KB:
|
||||||
|
+// Check that the resulting file is under 70KB:
|
||||||
|
//
|
||||||
|
// RUN: wc -c %t/a.pcm | FileCheck --check-prefix=CHECK-SIZE %s
|
||||||
|
-// CHECK-SIZE: {{(^|[^0-9])[1-5][0-9][0-9][0-9][0-9]($|[^0-9])}}
|
||||||
|
+// CHECK-SIZE: {{(^|[^0-9])[1-6][0-9][0-9][0-9][0-9]($|[^0-9])}}
|
35
clang-fix-openmp-test-non-x86.patch
Normal file
35
clang-fix-openmp-test-non-x86.patch
Normal file
@ -0,0 +1,35 @@
|
|||||||
|
diff --git a/clang/test/OpenMP/declare_variant_device_isa_codegen_1.c b/clang/test/OpenMP/declare_variant_device_isa_codegen_1.c
|
||||||
|
index 029270ab8486..424614f2306c 100644
|
||||||
|
--- a/clang/test/OpenMP/declare_variant_device_isa_codegen_1.c
|
||||||
|
+++ b/clang/test/OpenMP/declare_variant_device_isa_codegen_1.c
|
||||||
|
@@ -1,18 +1,18 @@
|
||||||
|
-// RUN: %clang_cc1 -verify -fopenmp -x c -triple %itanium_abi_triple -emit-llvm %s -o - -fopenmp-version=45 | FileCheck %s --check-prefix=GENERIC
|
||||||
|
-// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -emit-pch -o %t -fopenmp-version=45 %s
|
||||||
|
-// RUN: %clang_cc1 -fopenmp -x c++ -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - -fopenmp-version=45 | FileCheck %s --check-prefix=GENERIC
|
||||||
|
+// RUN: %clang_cc1 -verify -fopenmp -x c -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - -fopenmp-version=45 | FileCheck %s --check-prefix=GENERIC
|
||||||
|
+// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-linux-gnu -fexceptions -fcxx-exceptions -emit-pch -o %t -fopenmp-version=45 %s
|
||||||
|
+// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-linux-gnu -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - -fopenmp-version=45 | FileCheck %s --check-prefix=GENERIC
|
||||||
|
|
||||||
|
-// RUN: %clang_cc1 -target-feature +avx512f -verify -fopenmp -x c -triple %itanium_abi_triple -emit-llvm %s -o - -fopenmp-version=45 | FileCheck %s --check-prefix=WITHFEATURE
|
||||||
|
-// RUN: %clang_cc1 -target-feature +avx512f -fopenmp -x c++ -std=c++11 -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -emit-pch -o %t -fopenmp-version=45 %s
|
||||||
|
-// RUN: %clang_cc1 -target-feature +avx512f -fopenmp -x c++ -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - -fopenmp-version=45 | FileCheck %s --check-prefix=WITHFEATURE
|
||||||
|
+// RUN: %clang_cc1 -target-feature +avx512f -verify -fopenmp -x c -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - -fopenmp-version=45 | FileCheck %s --check-prefix=WITHFEATURE
|
||||||
|
+// RUN: %clang_cc1 -target-feature +avx512f -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-linux-gnu -fexceptions -fcxx-exceptions -emit-pch -o %t -fopenmp-version=45 %s
|
||||||
|
+// RUN: %clang_cc1 -target-feature +avx512f -fopenmp -x c++ -triple x86_64-unknown-linux-gnu -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - -fopenmp-version=45 | FileCheck %s --check-prefix=WITHFEATURE
|
||||||
|
|
||||||
|
-// RUN: %clang_cc1 -verify -fopenmp -x c -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s --check-prefix=GENERIC
|
||||||
|
-// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -emit-pch -o %t %s
|
||||||
|
-// RUN: %clang_cc1 -fopenmp -x c++ -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefix=GENERIC
|
||||||
|
+// RUN: %clang_cc1 -verify -fopenmp -x c -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefix=GENERIC
|
||||||
|
+// RUN: %clang_cc1 -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-linux-gnu -fexceptions -fcxx-exceptions -emit-pch -o %t %s
|
||||||
|
+// RUN: %clang_cc1 -fopenmp -x c++ -triple x86_64-unknown-linux-gnu -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefix=GENERIC
|
||||||
|
|
||||||
|
-// RUN: %clang_cc1 -target-feature +avx512f -verify -fopenmp -x c -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s --check-prefix=WITHFEATURE
|
||||||
|
-// RUN: %clang_cc1 -target-feature +avx512f -fopenmp -x c++ -std=c++11 -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -emit-pch -o %t %s
|
||||||
|
-// RUN: %clang_cc1 -target-feature +avx512f -fopenmp -x c++ -triple %itanium_abi_triple -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefix=WITHFEATURE
|
||||||
|
+// RUN: %clang_cc1 -target-feature +avx512f -verify -fopenmp -x c -triple x86_64-unknown-linux-gnu -emit-llvm %s -o - | FileCheck %s --check-prefix=WITHFEATURE
|
||||||
|
+// RUN: %clang_cc1 -target-feature +avx512f -fopenmp -x c++ -std=c++11 -triple x86_64-unknown-linux-gnu -fexceptions -fcxx-exceptions -emit-pch -o %t %s
|
||||||
|
+// RUN: %clang_cc1 -target-feature +avx512f -fopenmp -x c++ -triple x86_64-unknown-linux-gnu -fexceptions -fcxx-exceptions -std=c++11 -include-pch %t -verify %s -emit-llvm -o - | FileCheck %s --check-prefix=WITHFEATURE
|
||||||
|
|
||||||
|
// expected-no-diagnostics
|
||||||
|
|
10
clang-fix-openmp-test.patch
Normal file
10
clang-fix-openmp-test.patch
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
diff --git a/clang/test/OpenMP/nvptx_throw_trap.cpp b/clang/test/OpenMP/nvptx_throw_trap.cpp
|
||||||
|
index c1c76c4e1b18..3efbfee17e6f 100644
|
||||||
|
--- a/clang/test/OpenMP/nvptx_throw_trap.cpp
|
||||||
|
+++ b/clang/test/OpenMP/nvptx_throw_trap.cpp
|
||||||
|
@@ -1,4 +1,4 @@
|
||||||
|
-// REQUIRES: nvptx-registered-target
|
||||||
|
+// REQUIRES: nvptx-registered-target,x86-registered-target
|
||||||
|
|
||||||
|
// RUN: %clang_cc1 -fopenmp -triple nvptx64 -fopenmp-is-target-device %s -emit-llvm -S -Wno-openmp-target-exception -o - | FileCheck -check-prefix=DEVICE %s
|
||||||
|
// RUN: %clang_cc1 -fopenmp -triple x86_64-pc-linux-gnu -fopenmp-is-target-device -fcxx-exceptions %s -emit-llvm -S -Wno-openmp-target-exception -o - | FileCheck -check-prefix=HOST %s
|
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 {
|
26
clang-shlib-symbol-versioning.patch
Normal file
26
clang-shlib-symbol-versioning.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
diff --git a/clang/tools/clang-shlib/CMakeLists.txt b/clang/tools/clang-shlib/CMakeLists.txt
|
||||||
|
index 298d3a9d18fe..830f2b138ffa 100644
|
||||||
|
--- a/clang/tools/clang-shlib/CMakeLists.txt
|
||||||
|
+++ b/clang/tools/clang-shlib/CMakeLists.txt
|
||||||
|
@@ -48,6 +48,14 @@ add_clang_library(clang-cpp
|
||||||
|
${_OBJECTS}
|
||||||
|
LINK_LIBS
|
||||||
|
${_DEPS})
|
||||||
|
+
|
||||||
|
+configure_file(simple_version_script.map.in simple_version_script.map)
|
||||||
|
+
|
||||||
|
+if (NOT LLVM_LINKER_IS_SOLARISLD AND NOT MINGW)
|
||||||
|
+ # Solaris ld does not accept global: *; so there is no way to version *all* global symbols
|
||||||
|
+ target_link_options(clang-cpp PRIVATE LINKER:--version-script,${CMAKE_CURRENT_BINARY_DIR}/simple_version_script.map)
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
# Optimize function calls for default visibility definitions to avoid PLT and
|
||||||
|
# reduce dynamic relocations.
|
||||||
|
if (NOT APPLE AND NOT MINGW AND NOT LLVM_LINKER_IS_SOLARISLD_ILLUMOS)
|
||||||
|
diff --git a/clang/tools/clang-shlib/simple_version_script.map.in b/clang/tools/clang-shlib/simple_version_script.map.in
|
||||||
|
new file mode 100644
|
||||||
|
index 000000000000..cb2306d1f596
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/clang/tools/clang-shlib/simple_version_script.map.in
|
||||||
|
@@ -0,0 +1 @@
|
||||||
|
+@LLVM_SHLIB_SYMBOL_VERSION@ { global: *; };
|
3
clang-tools-extra-18.1.8.src.tar.xz
Normal file
3
clang-tools-extra-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e58877fcd95ed106824bd1a31276dd17ed0c53adcd60ca75289eac0654f0a7f1
|
||||||
|
size 3340400
|
BIN
clang-tools-extra-18.1.8.src.tar.xz.sig
Normal file
BIN
clang-tools-extra-18.1.8.src.tar.xz.sig
Normal file
Binary file not shown.
3
cmake-18.1.8.src.tar.xz
Normal file
3
cmake-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:59badef592dd34893cd319d42b323aaa990b452d05c7180ff20f23ab1b41e837
|
||||||
|
size 8708
|
BIN
cmake-18.1.8.src.tar.xz.sig
Normal file
BIN
cmake-18.1.8.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 __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
|
||||||
|
|
3
compiler-rt-18.1.8.src.tar.xz
Normal file
3
compiler-rt-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:e054e99a9c9240720616e927cb52363abbc8b4f1ef0286bad3df79ec8fdf892f
|
||||||
|
size 2469712
|
BIN
compiler-rt-18.1.8.src.tar.xz.sig
Normal file
BIN
compiler-rt-18.1.8.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";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
3
libcxx-18.1.8.src.tar.xz
Normal file
3
libcxx-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:bdecf90be0072bc720fd5c9c8ab061cdb197edd0c8ad3e170dc3e6bfaa49f388
|
||||||
|
size 4028732
|
BIN
libcxx-18.1.8.src.tar.xz.sig
Normal file
BIN
libcxx-18.1.8.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++'
|
||||||
|
+ '-nostdlib++ -L %{lib} -lc++'
|
||||||
|
))
|
||||||
|
config.substitutions.append(('%{exec}',
|
||||||
|
- '%{executor} --execdir %T -- '
|
||||||
|
+ '%{executor} --execdir %T --env LD_LIBRARY_PATH=%{lib} -- '
|
||||||
|
))
|
||||||
|
|
||||||
|
import os, site
|
3
libcxxabi-18.1.8.src.tar.xz
Normal file
3
libcxxabi-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:256c30d724eeb72713bc08ae1692f53aaf4ebe8a1d662c92bf59e69d6c53dce9
|
||||||
|
size 582748
|
BIN
libcxxabi-18.1.8.src.tar.xz.sig
Normal file
BIN
libcxxabi-18.1.8.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})
|
62
link-clang-tools-extra-shared.patch
Normal file
62
link-clang-tools-extra-shared.patch
Normal file
@ -0,0 +1,62 @@
|
|||||||
|
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,16 +2,19 @@ add_clang_library(clangIncludeFixerPlugin
|
||||||
|
IncludeFixerPlugin.cpp
|
||||||
|
|
||||||
|
LINK_LIBS
|
||||||
|
+ clangIncludeFixer
|
||||||
|
+ ${LLVM_PTHREAD_LIB}
|
||||||
|
+
|
||||||
|
+ DEPENDS
|
||||||
|
+ omp_gen
|
||||||
|
+ ClangDriverOptions
|
||||||
|
+ )
|
||||||
|
+clang_target_link_libraries(clangIncludeFixerPlugin
|
||||||
|
+ PRIVATE
|
||||||
|
clangAST
|
||||||
|
clangBasic
|
||||||
|
clangFrontend
|
||||||
|
- clangIncludeFixer
|
||||||
|
clangParse
|
||||||
|
clangSema
|
||||||
|
clangTooling
|
||||||
|
- ${LLVM_PTHREAD_LIB}
|
||||||
|
-
|
||||||
|
- DEPENDS
|
||||||
|
- omp_gen
|
||||||
|
- ClangDriverOptions
|
||||||
|
)
|
||||||
|
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
|
||||||
|
@@ -32,18 +32,21 @@ add_clang_library(clangDaemonTweaks OBJECT
|
||||||
|
SwapIfBranches.cpp
|
||||||
|
|
||||||
|
LINK_LIBS
|
||||||
|
- clangAST
|
||||||
|
- clangBasic
|
||||||
|
clangDaemon
|
||||||
|
clangdSupport
|
||||||
|
+
|
||||||
|
+ DEPENDS
|
||||||
|
+ omp_gen
|
||||||
|
+ ClangDriverOptions
|
||||||
|
+ )
|
||||||
|
+
|
||||||
|
+clang_target_link_libraries(clangDaemonTweaks INTERFACE
|
||||||
|
+ clangAST
|
||||||
|
+ clangBasic
|
||||||
|
clangFormat
|
||||||
|
clangLex
|
||||||
|
clangSema
|
||||||
|
clangToolingCore
|
||||||
|
clangToolingRefactoring
|
||||||
|
clangToolingSyntax
|
||||||
|
-
|
||||||
|
- DEPENDS
|
||||||
|
- omp_gen
|
||||||
|
- ClangDriverOptions
|
||||||
|
)
|
3
lld-18.1.8.src.tar.xz
Normal file
3
lld-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:800e6805fb613eb8428f7a199f6d06c4c19f78f2db69157a129bb04fc1c99769
|
||||||
|
size 1563500
|
BIN
lld-18.1.8.src.tar.xz.sig
Normal file
BIN
lld-18.1.8.src.tar.xz.sig
Normal file
Binary file not shown.
58
lld-default-sha1.patch
Normal file
58
lld-default-sha1.patch
Normal file
@ -0,0 +1,58 @@
|
|||||||
|
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)",
|
||||||
|
Index: lld-17.0.4.src/test/ELF/build-id.s
|
||||||
|
===================================================================
|
||||||
|
--- lld-17.0.4.src.orig/test/ELF/build-id.s
|
||||||
|
+++ lld-17.0.4.src/test/ELF/build-id.s
|
||||||
|
@@ -6,11 +6,12 @@
|
||||||
|
# RUN: llvm-readobj -S %t2 | FileCheck -check-prefix=ALIGN %s
|
||||||
|
|
||||||
|
# RUN: ld.lld --build-id %t -o %t2
|
||||||
|
-# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=DEFAULT %s
|
||||||
|
+# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=SHA1 %s
|
||||||
|
+
|
||||||
|
# RUN: ld.lld --build-id=fast %t -o %t2
|
||||||
|
-# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=DEFAULT %s
|
||||||
|
-# RUN: ld.lld --build-id %t -o %t2 --threads=1
|
||||||
|
-# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=DEFAULT %s
|
||||||
|
+# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=FAST %s
|
||||||
|
+# RUN: ld.lld --build-id=fast %t -o %t2 --threads=1
|
||||||
|
+# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=FAST %s
|
||||||
|
|
||||||
|
# RUN: ld.lld --build-id=md5 %t -o %t2
|
||||||
|
# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=MD5 %s
|
||||||
|
@@ -41,7 +42,7 @@
|
||||||
|
# RUN: ld.lld --build-id --build-id=none %t -o %t2
|
||||||
|
# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=NONE %s
|
||||||
|
# RUN: ld.lld --build-id=none --build-id %t -o %t2
|
||||||
|
-# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=DEFAULT %s
|
||||||
|
+# RUN: llvm-objdump -s %t2 | FileCheck --check-prefix=SHA1 %s
|
||||||
|
|
||||||
|
.globl _start
|
||||||
|
_start:
|
||||||
|
@@ -62,10 +63,10 @@
|
||||||
|
# ALIGN-NEXT: Info:
|
||||||
|
# ALIGN-NEXT: AddressAlignment: 4
|
||||||
|
|
||||||
|
-# DEFAULT: Contents of section .note.test:
|
||||||
|
-# DEFAULT: Contents of section .note.gnu.build-id:
|
||||||
|
-# DEFAULT-NEXT: 04000000 08000000 03000000 474e5500 ............GNU.
|
||||||
|
-# DEFAULT-NEXT: 630bc2f5 a2584763
|
||||||
|
+# FAST: Contents of section .note.test:
|
||||||
|
+# FAST: Contents of section .note.gnu.build-id:
|
||||||
|
+# FAST-NEXT: 04000000 08000000 03000000 474e5500 ............GNU.
|
||||||
|
+# FAST-NEXT: 630bc2f5 a2584763
|
||||||
|
|
||||||
|
# MD5: Contents of section .note.gnu.build-id:
|
||||||
|
# MD5-NEXT: 04000000 10000000 03000000 474e5500 ............GNU.
|
3
lldb-18.1.8.src.tar.xz
Normal file
3
lldb-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:cac2db253ee3566c01774a888cc0ac3853f1e141c5c9962f04ee562bdb0af426
|
||||||
|
size 10598652
|
BIN
lldb-18.1.8.src.tar.xz.sig
Normal file
BIN
lldb-18.1.8.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)
|
3
llvm-18.1.8.src.tar.xz
Normal file
3
llvm-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f68cf90f369bc7d0158ba70d860b0cb34dbc163d6ff0ebc6cfa5e515b9b2e28d
|
||||||
|
size 61986468
|
BIN
llvm-18.1.8.src.tar.xz.sig
Normal file
BIN
llvm-18.1.8.src.tar.xz.sig
Normal file
Binary file not shown.
140
llvm-do-not-install-static-libraries.patch
Normal file
140
llvm-do-not-install-static-libraries.patch
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
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-18.1.8.src/cmake/modules/AddClang.cmake
|
||||||
|
===================================================================
|
||||||
|
--- a/clang-18.1.8.src/cmake/modules/AddClang.cmake
|
||||||
|
+++ b/clang-18.1.8.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-18.1.8.src/cmake/modules/AddLLD.cmake
|
||||||
|
===================================================================
|
||||||
|
--- a/lld-18.1.8.src/cmake/modules/AddLLD.cmake
|
||||||
|
+++ b/lld-18.1.8.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-18.1.8.src/cmake/polly_macros.cmake
|
||||||
|
===================================================================
|
||||||
|
--- a/polly-18.1.8.src/cmake/polly_macros.cmake
|
||||||
|
+++ b/polly-18.1.8.src/cmake/polly_macros.cmake
|
||||||
|
@@ -42,15 +42,17 @@ 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}
|
||||||
|
- COMPONENT ${name}
|
||||||
|
- EXPORT LLVMExports
|
||||||
|
- LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
- ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
|
||||||
|
- add_llvm_install_targets(install-${name}
|
||||||
|
- COMPONENT ${name})
|
||||||
|
+ if (MODULE OR SHARED_LIBRARY OR NOT LLVM_BUILD_LLVM_DYLIB)
|
||||||
|
+ install(TARGETS ${name}
|
||||||
|
+ COMPONENT ${name}
|
||||||
|
+ EXPORT LLVMExports
|
||||||
|
+ LIBRARY DESTINATION lib${LLVM_LIBDIR_SUFFIX}
|
||||||
|
+ ARCHIVE DESTINATION lib${LLVM_LIBDIR_SUFFIX})
|
||||||
|
+ add_llvm_install_targets(install-${name}
|
||||||
|
+ COMPONENT ${name})
|
||||||
|
+ 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-18.1.8.src/lib/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- a/polly-18.1.8.src/lib/CMakeLists.txt
|
||||||
|
+++ b/polly-18.1.8.src/lib/CMakeLists.txt
|
||||||
|
@@ -109,7 +109,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}
|
||||||
|
)
|
||||||
|
|
||||||
|
@@ -130,7 +130,7 @@ else ()
|
||||||
|
# to be already available in the address space the module is loaded into.
|
||||||
|
# Adding them once more would have the effect that both copies try to register
|
||||||
|
# the same command line options, to which LLVM reacts with an error.
|
||||||
|
- target_link_libraries(LLVMPolly PUBLIC ${ISL_TARGET})
|
||||||
|
+ target_link_libraries(LLVMPolly PRIVATE ${ISL_TARGET})
|
||||||
|
|
||||||
|
set_target_properties(LLVMPolly
|
||||||
|
PROPERTIES
|
3
llvm-docs-18.1.8.src.tar.xz
Normal file
3
llvm-docs-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:f3ae2b76c606b2fdc7c83574541b99609d559a5290a25a4cccea9a8c926ea5c5
|
||||||
|
size 7273048
|
13
llvm-fix-cov-test-i586.patch
Normal file
13
llvm-fix-cov-test-i586.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/llvm/test/tools/llvm-cov/mcdc-export-json.test b/llvm/test/tools/llvm-cov/mcdc-export-json.test
|
||||||
|
index c2cebf52db8c..a55d7400c51e 100644
|
||||||
|
--- a/llvm/test/tools/llvm-cov/mcdc-export-json.test
|
||||||
|
+++ b/llvm/test/tools/llvm-cov/mcdc-export-json.test
|
||||||
|
@@ -5,7 +5,7 @@
|
||||||
|
// CHECK: 15,7,15,13,0,5,[true,true]
|
||||||
|
// CHECK: 15,19,15,25,0,5,[true,false]
|
||||||
|
// CHECK: 18,7,19,15,0,5,[true,true,false,true]
|
||||||
|
-// CHECK: "mcdc":{"count":12,"covered":10,"notcovered":2,"percent":83.333333333333343}
|
||||||
|
+// CHECK: "mcdc":{"count":12,"covered":10,"notcovered":2,"percent":83.3333333333333{{([[:digit:]]{2})}}}
|
||||||
|
|
||||||
|
Instructions for regenerating the test:
|
||||||
|
|
13
llvm-fix-find-gcc5-install.patch
Normal file
13
llvm-fix-find-gcc5-install.patch
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
Index: clang-18.1.0rc1.src/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
===================================================================
|
||||||
|
--- clang-18.1.0rc1.src.orig/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
+++ clang-18.1.0rc1.src/lib/Driver/ToolChains/Gnu.cpp
|
||||||
|
@@ -2179,7 +2179,7 @@ Generic_GCC::GCCVersion Generic_GCC::GCC
|
||||||
|
return GoodVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
- if (!TryParseNumber(MinorStr, GoodVersion.Minor))
|
||||||
|
+ if (!MinorStr.str().empty() && !TryParseNumber(MinorStr, GoodVersion.Minor))
|
||||||
|
return BadVersion;
|
||||||
|
GoodVersion.MinorStr = MinorStr;
|
||||||
|
|
66
llvm-normally-versioned-libllvm.patch
Normal file
66
llvm-normally-versioned-libllvm.patch
Normal file
@ -0,0 +1,66 @@
|
|||||||
|
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.
|
||||||
|
|
||||||
|
With llvm18, the minor version is now always 1 for releases, and upstream
|
||||||
|
decided to rename the library to libLLVM.so.${major}.${minor}, but keep the
|
||||||
|
old name as symbolic link for backwards compatibility. That is of course
|
||||||
|
not relevant for us.
|
||||||
|
|
||||||
|
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-18.1.2.src/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- llvm-18.1.2.src.orig/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
+++ llvm-18.1.2.src/tools/llvm-shlib/CMakeLists.txt
|
||||||
|
@@ -37,8 +37,6 @@ if (WIN32)
|
||||||
|
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB SONAME ${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
|
||||||
|
else()
|
||||||
|
add_llvm_library(LLVM SHARED DISABLE_LLVM_LINK_LLVM_DYLIB OUTPUT_NAME LLVM ${INSTALL_WITH_TOOLCHAIN} ${SOURCES})
|
||||||
|
- # Add symlink for backwards compatibility with old library name
|
||||||
|
- llvm_install_library_symlink(LLVM-${LLVM_VERSION_MAJOR}${LLVM_VERSION_SUFFIX} $<TARGET_FILE_NAME:LLVM> SHARED FULL_DEST COMPONENT LLVM)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
list(REMOVE_DUPLICATES LIB_NAMES)
|
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-17.0.0rc1.src/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
===================================================================
|
||||||
|
--- llvm-17.0.0rc1.src.orig/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
+++ llvm-17.0.0rc1.src/cmake/modules/HandleLLVMOptions.cmake
|
||||||
|
@@ -599,8 +599,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" )
|
||||||
|
|
||||||
|
if ( LLVM_COMPILER_IS_GCC_COMPATIBLE )
|
||||||
|
@@ -766,7 +764,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
|
||||||
|
@@ -582,7 +582,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);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// Tests whether the OS is Haiku.
|
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);
|
||||||
|
}
|
||||||
|
|
22
llvm18-rpmlintrc
Normal file
22
llvm18-rpmlintrc
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# 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")
|
||||||
|
|
||||||
|
# LLVM IR archive for OpenMP offloading, deliberately contains no object code.
|
||||||
|
addFilter("lto-no-text-in-archive .*/lib.*/libomptarget.devicertl.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")
|
3138
llvm18.changes
Normal file
3138
llvm18.changes
Normal file
File diff suppressed because it is too large
Load Diff
203
llvm18.keyring
Normal file
203
llvm18.keyring
Normal file
@ -0,0 +1,203 @@
|
|||||||
|
# Tobias Hieta <tobias@hieta.se>
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
9RmlwZlOTFGcWBYl/cfRONn9qi9a6w==
|
||||||
|
=Lvw+
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
# Tom Stellard <tstellar@redhat.com>
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
pGgAsOk/q/OlhWqcrlM=
|
||||||
|
=bEwW
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
# Hans Wennborg <hans@chromium.org>
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
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
|
||||||
|
6U4RlBcEgKU=
|
||||||
|
=43Mw
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
# Muhammad Omair Javaid (LLVM Release Signing Key) <omair.javaid@linaro.org>
|
||||||
|
|
||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mDMEZw7PSRYJKwYBBAHaRw8BAQdABNbFOdYdCukaIGdkMQpHrSeDIZt/7bUSVwYD
|
||||||
|
dX7JnHy0Sk11aGFtbWFkIE9tYWlyIEphdmFpZCAoTExWTSBSZWxlYXNlIFNpZ25p
|
||||||
|
bmcgS2V5KSA8b21haXIuamF2YWlkQGxpbmFyby5vcmc+iJMEExYKADsWIQQPuWgk
|
||||||
|
YG0V/dVMPQkv/GKdP1Y73AUCZw7PSQIbAwULCQgHAgIiAgYVCgkICwIEFgIDAQIe
|
||||||
|
BwIXgAAKCRAv/GKdP1Y73LHWAPoDDIf+zv4qbPmdSNN1JwjB6/U+3ZfW0bDhrxhF
|
||||||
|
1TzU9gEAyeG9bPukFmygisr2FBt+YV0Xe/il5zhYfTyP4pNNqQq4OARnDs9JEgor
|
||||||
|
BgEEAZdVAQUBAQdA8W6MXoRWNhKJEWM/AgeJwy19kkflnK+yFVEXnWaPXGIDAQgH
|
||||||
|
iHgEGBYKACAWIQQPuWgkYG0V/dVMPQkv/GKdP1Y73AUCZw7PSQIbDAAKCRAv/GKd
|
||||||
|
P1Y73KmXAP0R/TCQcZy3E2eqgBhVUY3/0N0amRWDjssxw/O/7P/PcwD/aFQdB9Vt
|
||||||
|
f9xntjl+EcZ58U5mbwhBTYLmHpCqZUP+ugk=
|
||||||
|
=s2el
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
1872
llvm18.spec
Normal file
1872
llvm18.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-17.0.0rc1.src/cmake/modules/TableGen.cmake
|
||||||
|
===================================================================
|
||||||
|
--- llvm-17.0.0rc1.src.orig/cmake/modules/TableGen.cmake
|
||||||
|
+++ llvm-17.0.0rc1.src/cmake/modules/TableGen.cmake
|
||||||
|
@@ -143,8 +143,8 @@ macro(add_tablegen target project)
|
||||||
|
set(${target}_OLD_LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS})
|
||||||
|
set(LLVM_LINK_COMPONENTS ${LLVM_LINK_COMPONENTS} TableGen)
|
||||||
|
|
||||||
|
- 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-18.1.0rc1.src/utils/TableGen/GlobalISel/CMakeLists.txt
|
||||||
|
===================================================================
|
||||||
|
--- llvm-18.1.0rc1.src.orig/utils/TableGen/GlobalISel/CMakeLists.txt
|
||||||
|
+++ llvm-18.1.0rc1.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
|
||||||
|
CXXPredicates.cpp
|
||||||
|
MatchDataInfo.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)
|
3
openmp-18.1.8.src.tar.xz
Normal file
3
openmp-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:60ed57245e73894e4a2a89b15889f367bd906abfe6d3f92e1718223d4b496150
|
||||||
|
size 1320200
|
BIN
openmp-18.1.8.src.tar.xz.sig
Normal file
BIN
openmp-18.1.8.src.tar.xz.sig
Normal file
Binary file not shown.
18
openmp-dont-run-gpu-arch.patch
Normal file
18
openmp-dont-run-gpu-arch.patch
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
--- openmp-17.0.0rc1.src/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
|
||||||
|
+++ openmp-17.0.0rc1.src/libomptarget/cmake/Modules/LibomptargetGetDependencies.cmake
|
||||||
|
@@ -104,6 +104,8 @@
|
||||||
|
find_package(CUDAToolkit QUIET)
|
||||||
|
set(LIBOMPTARGET_DEP_CUDA_FOUND ${CUDAToolkit_FOUND})
|
||||||
|
|
||||||
|
+if(FALSE)
|
||||||
|
+
|
||||||
|
################################################################################
|
||||||
|
# Looking for NVIDIA GPUs...
|
||||||
|
################################################################################
|
||||||
|
@@ -151,4 +153,6 @@
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
+endif()
|
||||||
|
+
|
||||||
|
set(OPENMP_PTHREAD_LIB ${LLVM_PTHREAD_LIB})
|
16
opt-viewer-Find-style-css-in-usr-share.patch
Normal file
16
opt-viewer-Find-style-css-in-usr-share.patch
Normal file
@ -0,0 +1,16 @@
|
|||||||
|
Index: llvm-17.0.0rc1.src/tools/opt-viewer/opt-viewer.py
|
||||||
|
===================================================================
|
||||||
|
--- llvm-17.0.0rc1.src.orig/tools/opt-viewer/opt-viewer.py
|
||||||
|
+++ llvm-17.0.0rc1.src/tools/opt-viewer/opt-viewer.py
|
||||||
|
@@ -363,10 +363,7 @@
|
||||||
|
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
|
3
polly-18.1.8.src.tar.xz
Normal file
3
polly-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:0366962199fa353ba1ed22f3ea61f337d682e8da75ba56fbbd4f7a49e2bc5127
|
||||||
|
size 9159676
|
BIN
polly-18.1.8.src.tar.xz.sig
Normal file
BIN
polly-18.1.8.src.tar.xz.sig
Normal file
Binary file not shown.
3
runtimes-18.1.8.src.tar.xz
Normal file
3
runtimes-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9997c2e91e5438e2963306ba5019d85b5384b467535632738d8670ced8f07cb3
|
||||||
|
size 6788
|
BIN
runtimes-18.1.8.src.tar.xz.sig
Normal file
BIN
runtimes-18.1.8.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
|
3
third-party-18.1.8.src.tar.xz
Normal file
3
third-party-18.1.8.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:b76b810f3d3dc5d08e83c4236cb6e395aa9bd5e3ea861e8c319b216d093db074
|
||||||
|
size 402272
|
BIN
third-party-18.1.8.src.tar.xz.sig
Normal file
BIN
third-party-18.1.8.src.tar.xz.sig
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user