- Update to version 19.1.7.
* This release contains bug-fixes for the LLVM 19.1.0 release. This release is API and ABI compatible with 19.1.0. - Rebase llvm-do-not-install-static-libraries.patch. OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm19?expand=0&rev=17
This commit is contained in:
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 @@
|
||||
libLLVM19
|
||||
libclang-cpp19
|
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-19.1.3.src.tar.xz
Normal file
3
clang-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0a0dd316931f2cac7090d2aa434b5d0c332fe19b801c6c94f109053b52b35cc1
|
||||
size 23508744
|
BIN
clang-19.1.3.src.tar.xz.sig
Normal file
BIN
clang-19.1.3.src.tar.xz.sig
Normal file
Binary file not shown.
3
clang-19.1.4.src.tar.xz
Normal file
3
clang-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b6d123a4435f1869af709f3288c4c4db48173acaf621088400d91521bc5aa225
|
||||
size 23510712
|
BIN
clang-19.1.4.src.tar.xz.sig
Normal file
BIN
clang-19.1.4.src.tar.xz.sig
Normal file
Binary file not shown.
3
clang-19.1.5.src.tar.xz
Normal file
3
clang-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e7dfc8050407b5cc564c1c1afe19517255c9229cccd886dbd5bac9b652828d85
|
||||
size 23510992
|
BIN
clang-19.1.5.src.tar.xz.sig
Normal file
BIN
clang-19.1.5.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
clang-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
clang-19.1.6.src.tar.xz.sig
Normal file
BIN
clang-19.1.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
clang-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
clang-19.1.7.src.tar.xz.sig
Normal file
BIN
clang-19.1.7.src.tar.xz.sig
Normal file
Binary file not shown.
3
clang-docs-19.1.3.src.tar.xz
Normal file
3
clang-docs-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0f8a8d549d7d10fdb49c8de40c2bc09bafefbe7126c64f3649980b383dfb689d
|
||||
size 2048420
|
3
clang-docs-19.1.4.src.tar.xz
Normal file
3
clang-docs-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0d320173d1f712f5805bcfa84612a6195b89fc2a25603855b7b0c404d012689d
|
||||
size 2048124
|
3
clang-docs-19.1.5.src.tar.xz
Normal file
3
clang-docs-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a5060e2d9516329912d074e15ea23039cf48809f22ccf7dc53e2437520bec671
|
||||
size 2048276
|
BIN
clang-docs-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-docs-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
clang-docs-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-docs-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
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 -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 -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-19.1.3.src.tar.xz
Normal file
3
clang-tools-extra-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6358ee4be9573fb025dad0a6fc9a5270fc2cb644a6504ff2970ca60abad7e345
|
||||
size 3417084
|
BIN
clang-tools-extra-19.1.3.src.tar.xz.sig
Normal file
BIN
clang-tools-extra-19.1.3.src.tar.xz.sig
Normal file
Binary file not shown.
3
clang-tools-extra-19.1.4.src.tar.xz
Normal file
3
clang-tools-extra-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e09d0becbbe4dc3dec45dbda44649357456e559b46a72004696674c963734fa6
|
||||
size 3417036
|
BIN
clang-tools-extra-19.1.4.src.tar.xz.sig
Normal file
BIN
clang-tools-extra-19.1.4.src.tar.xz.sig
Normal file
Binary file not shown.
3
clang-tools-extra-19.1.5.src.tar.xz
Normal file
3
clang-tools-extra-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9288a607dfb6350906e466ee49590e769ffb311a2f989889e9e52bd3e64c9398
|
||||
size 3417016
|
BIN
clang-tools-extra-19.1.5.src.tar.xz.sig
Normal file
BIN
clang-tools-extra-19.1.5.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
clang-tools-extra-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-tools-extra-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
clang-tools-extra-19.1.6.src.tar.xz.sig
Normal file
BIN
clang-tools-extra-19.1.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
clang-tools-extra-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
clang-tools-extra-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
clang-tools-extra-19.1.7.src.tar.xz.sig
Normal file
BIN
clang-tools-extra-19.1.7.src.tar.xz.sig
Normal file
Binary file not shown.
3
cmake-19.1.3.src.tar.xz
Normal file
3
cmake-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:4c55aa6e77fc0e8b759bca2c79ee4fd0ea8c7fab06eeea09310ae1e954a0af5e
|
||||
size 9300
|
BIN
cmake-19.1.3.src.tar.xz.sig
Normal file
BIN
cmake-19.1.3.src.tar.xz.sig
Normal file
Binary file not shown.
3
cmake-19.1.4.src.tar.xz
Normal file
3
cmake-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dd13ce8eba6ece85cad567f028b8e16d72f3e142cdcbbd693ac23a88b4013803
|
||||
size 9296
|
BIN
cmake-19.1.4.src.tar.xz.sig
Normal file
BIN
cmake-19.1.4.src.tar.xz.sig
Normal file
Binary file not shown.
3
cmake-19.1.5.src.tar.xz
Normal file
3
cmake-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a08ae477571fd5e929c27d3d0d28c6168d58dd00b6354c2de3266ae0d86ad44f
|
||||
size 9300
|
BIN
cmake-19.1.5.src.tar.xz.sig
Normal file
BIN
cmake-19.1.5.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
cmake-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
cmake-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
cmake-19.1.6.src.tar.xz.sig
Normal file
BIN
cmake-19.1.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
cmake-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
cmake-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
cmake-19.1.7.src.tar.xz.sig
Normal file
BIN
cmake-19.1.7.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-19.1.3.src.tar.xz
Normal file
3
compiler-rt-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:9c57dfa7796c254f85ade3f84f12e3a7dd5dae65c0ade428367fe8c5218f856a
|
||||
size 2528276
|
BIN
compiler-rt-19.1.3.src.tar.xz.sig
Normal file
BIN
compiler-rt-19.1.3.src.tar.xz.sig
Normal file
Binary file not shown.
3
compiler-rt-19.1.4.src.tar.xz
Normal file
3
compiler-rt-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:433f9f513313b6e34626fab516e92a97ea087484fce40218e928b9538910cd27
|
||||
size 2529144
|
BIN
compiler-rt-19.1.4.src.tar.xz.sig
Normal file
BIN
compiler-rt-19.1.4.src.tar.xz.sig
Normal file
Binary file not shown.
3
compiler-rt-19.1.5.src.tar.xz
Normal file
3
compiler-rt-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:2ab7fc54e814b4da16a60c640971b8a80d32d4692a0326861af499fea20f13f8
|
||||
size 2528768
|
BIN
compiler-rt-19.1.5.src.tar.xz.sig
Normal file
BIN
compiler-rt-19.1.5.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
compiler-rt-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
compiler-rt-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
compiler-rt-19.1.6.src.tar.xz.sig
Normal file
BIN
compiler-rt-19.1.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
compiler-rt-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
compiler-rt-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
compiler-rt-19.1.7.src.tar.xz.sig
Normal file
BIN
compiler-rt-19.1.7.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-19.1.3.src.tar.xz
Normal file
3
libcxx-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cd5680e5ee4803bbe5c4007e4c546b7263525466049832c630c3fd5fc027468c
|
||||
size 4745616
|
BIN
libcxx-19.1.3.src.tar.xz.sig
Normal file
BIN
libcxx-19.1.3.src.tar.xz.sig
Normal file
Binary file not shown.
3
libcxx-19.1.4.src.tar.xz
Normal file
3
libcxx-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a8842bc2c76afb01dd2bba3ade323194b630b90607174129b22a21caf0a11060
|
||||
size 4744592
|
BIN
libcxx-19.1.4.src.tar.xz.sig
Normal file
BIN
libcxx-19.1.4.src.tar.xz.sig
Normal file
Binary file not shown.
3
libcxx-19.1.5.src.tar.xz
Normal file
3
libcxx-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f77b2cc52fa8d00215b674c33f0900961d3701259fadb9ccd25e24864b5508f4
|
||||
size 4720240
|
BIN
libcxx-19.1.5.src.tar.xz.sig
Normal file
BIN
libcxx-19.1.5.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
libcxx-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
libcxx-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
libcxx-19.1.6.src.tar.xz.sig
Normal file
BIN
libcxx-19.1.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
libcxx-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
libcxx-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
libcxx-19.1.7.src.tar.xz.sig
Normal file
BIN
libcxx-19.1.7.src.tar.xz.sig
Normal file
Binary file not shown.
15
libcxx-test-library-path.patch
Normal file
15
libcxx-test-library-path.patch
Normal file
@@ -0,0 +1,15 @@
|
||||
--- a/libcxx/test/configs/llvm-libc++-shared.cfg.in
|
||||
+++ b/libcxx/test/configs/llvm-libc++-shared.cfg.in
|
||||
@@ -9,10 +9,10 @@ config.substitutions.append(('%{compile_flags}',
|
||||
'-nostdinc++ -I %{target-include-dir} -I %{include-dir} -I %{libcxx-dir}/test/support'
|
||||
))
|
||||
config.substitutions.append(('%{link_flags}',
|
||||
- '-nostdlib++ -L %{lib-dir} -Wl,-rpath,%{lib-dir} -lc++'
|
||||
+ '-nostdlib++ -L %{lib-dir} -lc++'
|
||||
))
|
||||
config.substitutions.append(('%{exec}',
|
||||
- '%{executor} --execdir %T -- '
|
||||
+ '%{executor} --execdir %T --env LD_LIBRARY_PATH=%{lib} -- '
|
||||
))
|
||||
|
||||
import os, site
|
3
libcxxabi-19.1.3.src.tar.xz
Normal file
3
libcxxabi-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:34a2defb1b220cecf9493c99e40c1c7e586f0615b68e432b6183cdaaae1be4f2
|
||||
size 583688
|
BIN
libcxxabi-19.1.3.src.tar.xz.sig
Normal file
BIN
libcxxabi-19.1.3.src.tar.xz.sig
Normal file
Binary file not shown.
3
libcxxabi-19.1.4.src.tar.xz
Normal file
3
libcxxabi-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:6105412c1dc37505bb41650fb71f4c9445b75342a2128881570916a138fb6a45
|
||||
size 583700
|
BIN
libcxxabi-19.1.4.src.tar.xz.sig
Normal file
BIN
libcxxabi-19.1.4.src.tar.xz.sig
Normal file
Binary file not shown.
3
libcxxabi-19.1.5.src.tar.xz
Normal file
3
libcxxabi-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:43b09350620f01e068a72eee0ee993d758abc58e00ad9d30fbb7b56d13e8fa8b
|
||||
size 583616
|
BIN
libcxxabi-19.1.5.src.tar.xz.sig
Normal file
BIN
libcxxabi-19.1.5.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
libcxxabi-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
libcxxabi-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
libcxxabi-19.1.6.src.tar.xz.sig
Normal file
BIN
libcxxabi-19.1.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
libcxxabi-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
libcxxabi-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
libcxxabi-19.1.7.src.tar.xz.sig
Normal file
BIN
libcxxabi-19.1.7.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-19.1.3.src.tar.xz
Normal file
3
lld-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:74b7785f5ae03ffe8af71b76eebbb192ac722af2189bed96e8693bd694d1f7fd
|
||||
size 1645472
|
BIN
lld-19.1.3.src.tar.xz.sig
Normal file
BIN
lld-19.1.3.src.tar.xz.sig
Normal file
Binary file not shown.
3
lld-19.1.4.src.tar.xz
Normal file
3
lld-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f4309e05f6a278ee2ecb5b76dfbbec6db858c13099e7e29342e29400588e8d70
|
||||
size 1645548
|
BIN
lld-19.1.4.src.tar.xz.sig
Normal file
BIN
lld-19.1.4.src.tar.xz.sig
Normal file
Binary file not shown.
3
lld-19.1.5.src.tar.xz
Normal file
3
lld-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f71835d49461a15c283aa9030a854abfd7c651a685d711a67158644b043f6f14
|
||||
size 1645712
|
BIN
lld-19.1.5.src.tar.xz.sig
Normal file
BIN
lld-19.1.5.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
lld-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
lld-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
lld-19.1.6.src.tar.xz.sig
Normal file
BIN
lld-19.1.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
lld-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
lld-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
lld-19.1.7.src.tar.xz.sig
Normal file
BIN
lld-19.1.7.src.tar.xz.sig
Normal file
Binary file not shown.
3
lldb-19.1.3.src.tar.xz
Normal file
3
lldb-19.1.3.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b4021ef6a77ba22d2c94cad3d2550849b693788a4568ec0a1e063c3907bfaa39
|
||||
size 10688736
|
BIN
lldb-19.1.3.src.tar.xz.sig
Normal file
BIN
lldb-19.1.3.src.tar.xz.sig
Normal file
Binary file not shown.
3
lldb-19.1.4.src.tar.xz
Normal file
3
lldb-19.1.4.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:99fcd9f53f12fdd06841fd9bb9e3be4045a31b12a697112c8e8ddade01887ff7
|
||||
size 10689504
|
BIN
lldb-19.1.4.src.tar.xz.sig
Normal file
BIN
lldb-19.1.4.src.tar.xz.sig
Normal file
Binary file not shown.
3
lldb-19.1.5.src.tar.xz
Normal file
3
lldb-19.1.5.src.tar.xz
Normal file
@@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:b49072d9b11d2a7a6ecbbe2cb620d124d1772e80cdd1caaec9eceafb604b9830
|
||||
size 10688840
|
BIN
lldb-19.1.5.src.tar.xz.sig
Normal file
BIN
lldb-19.1.5.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
lldb-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
lldb-19.1.6.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
BIN
lldb-19.1.6.src.tar.xz.sig
Normal file
BIN
lldb-19.1.6.src.tar.xz.sig
Normal file
Binary file not shown.
BIN
lldb-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
BIN
lldb-19.1.7.src.tar.xz
(Stored with Git LFS)
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user