- New release based on version 19.1.0.
* For details, see the release notes: - https://releases.llvm.org/19.1.0/docs/ReleaseNotes.html - https://releases.llvm.org/19.1.0/tools/clang/docs/ReleaseNotes.html - https://releases.llvm.org/19.1.0/tools/clang/tools/extra/docs/ReleaseNotes.html - https://releases.llvm.org/19.1.0/projects/libcxx/docs/ReleaseNotes.html - https://releases.llvm.org/19.1.0/tools/lld/docs/ReleaseNotes.html * New LLVM tool: reduce-chunk-list to help find bugs using debug counters. See the Programmer's Manual for usage. * New Clang tools: clang-installapi for Apple-related package management, clang-nvlink-wrapper as a wrapper around `nvlink`. - No longer include OpenMP offload libraries. - Rebase patches: * clang-fix-openmp-test.patch * libcxx-test-library-path.patch * llvm-do-not-install-static-libraries.patch * llvm_build_tablegen_component_as_shared_library.patch - Remove obsolete patches: * lld-default-sha1.patch because upstream switched to sha1. * llvm-remove-clang-only-flags.patch because warning flags are no longer autodetected. * openmp-dont-run-gpu-arch.patch because we're excluding the offload project for now. - Add llvm-fix-build-failure-on-ppc64le.patch to fix ppc64le build. - Require Python 3.11 on Leap because we need Python >= 3.8 now. OBS-URL: https://build.opensuse.org/package/show/devel:tools:compiler/llvm19?expand=0&rev=1
This commit is contained in:
commit
cdde20622b
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.0.src.tar.xz
Normal file
3
clang-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:03c3be44ff8e602213222fb99645c239965623d2bf2a6e4d210249520112377e
|
||||
size 23507412
|
BIN
clang-19.1.0.src.tar.xz.sig
Normal file
BIN
clang-19.1.0.src.tar.xz.sig
Normal file
Binary file not shown.
3
clang-docs-19.1.0.src.tar.xz
Normal file
3
clang-docs-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:cf634dea02e6852c98b57f4b272facd67402f217fae9f878e5ef2297269b348c
|
||||
size 2048204
|
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 {
|
3
clang-tools-extra-19.1.0.src.tar.xz
Normal file
3
clang-tools-extra-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:eec4beef68f7135011995684d47ac02e0d3781618abb2a6fe18a8dcef6db586f
|
||||
size 3416912
|
BIN
clang-tools-extra-19.1.0.src.tar.xz.sig
Normal file
BIN
clang-tools-extra-19.1.0.src.tar.xz.sig
Normal file
Binary file not shown.
3
cmake-19.1.0.src.tar.xz
Normal file
3
cmake-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:dc78b6a9ac8a097ca6ac0f23c06821d65e6ea3bf666026f529994c1d01056ae7
|
||||
size 9300
|
BIN
cmake-19.1.0.src.tar.xz.sig
Normal file
BIN
cmake-19.1.0.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.0.src.tar.xz
Normal file
3
compiler-rt-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:808b858e93b0bbae4002e13dcbe8bee850c514a58cbfb63b03d8b465ba95a3de
|
||||
size 2529604
|
BIN
compiler-rt-19.1.0.src.tar.xz.sig
Normal file
BIN
compiler-rt-19.1.0.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.0.src.tar.xz
Normal file
3
libcxx-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:99b3020a8b2134a2efc0c26e2ef9b1f07003f65330fa8eb9c2458f14bbf32f39
|
||||
size 4742092
|
BIN
libcxx-19.1.0.src.tar.xz.sig
Normal file
BIN
libcxx-19.1.0.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.0.src.tar.xz
Normal file
3
libcxxabi-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:0108a40b18d586a4706c03d8eeb78714a242e64ed930aeb74a0574e1c6668a6d
|
||||
size 583464
|
BIN
libcxxabi-19.1.0.src.tar.xz.sig
Normal file
BIN
libcxxabi-19.1.0.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.0.src.tar.xz
Normal file
3
lld-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:8d125e7513735c57adbdd1bbce59ff2d5844c2bf64a00ff94fe1c04b941ca2b2
|
||||
size 1645272
|
BIN
lld-19.1.0.src.tar.xz.sig
Normal file
BIN
lld-19.1.0.src.tar.xz.sig
Normal file
Binary file not shown.
3
lldb-19.1.0.src.tar.xz
Normal file
3
lldb-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f3269b8261f713542aaba8ada00950ccb24d1fda302c04be962d369190251d6b
|
||||
size 10688856
|
BIN
lldb-19.1.0.src.tar.xz.sig
Normal file
BIN
lldb-19.1.0.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-19.1.0.src.tar.xz
Normal file
3
llvm-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:a8b141cbfa13f50d84ce545899bd311aaa60d59dfbf7f3a0cf84f25badc1544d
|
||||
size 67815252
|
BIN
llvm-19.1.0.src.tar.xz.sig
Normal file
BIN
llvm-19.1.0.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-19.1.0.src/cmake/modules/AddClang.cmake
|
||||
===================================================================
|
||||
--- a/clang-19.1.0.src/cmake/modules/AddClang.cmake
|
||||
+++ b/clang-19.1.0.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
|
||||
@@ -933,11 +933,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}
|
||||
@@ -948,7 +951,6 @@ macro(add_llvm_library name)
|
||||
COMPONENT ${name})
|
||||
endif()
|
||||
endif()
|
||||
- set_property(GLOBAL APPEND PROPERTY LLVM_EXPORTS ${name})
|
||||
endif()
|
||||
|
||||
get_subproject_title(subproject_title)
|
||||
Index: lld-19.1.0.src/cmake/modules/AddLLD.cmake
|
||||
===================================================================
|
||||
--- a/lld-19.1.0.src/cmake/modules/AddLLD.cmake
|
||||
+++ b/lld-19.1.0.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-19.1.0.src/cmake/polly_macros.cmake
|
||||
===================================================================
|
||||
--- a/polly-19.1.0.src/cmake/polly_macros.cmake
|
||||
+++ b/polly-19.1.0.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-19.1.0.src/lib/CMakeLists.txt
|
||||
===================================================================
|
||||
--- a/polly-19.1.0.src/lib/CMakeLists.txt
|
||||
+++ b/polly-19.1.0.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-19.1.0.src.tar.xz
Normal file
3
llvm-docs-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:7c08987ac2719fb40f4c75a1b373e1339cde4eb02fa70a5131233534c6347080
|
||||
size 8389960
|
31
llvm-fix-build-failure-on-ppc64le.patch
Normal file
31
llvm-fix-build-failure-on-ppc64le.patch
Normal file
@ -0,0 +1,31 @@
|
||||
From 40b4fd7a3e81d32b29364a1b15337bcf817659c0 Mon Sep 17 00:00:00 2001
|
||||
From: Chen Zheng <czhengsz@cn.ibm.com>
|
||||
Date: Tue, 30 Jul 2024 09:02:07 +0800
|
||||
Subject: [PATCH] [NFC] fix build failure (#100993)
|
||||
|
||||
Fix the build failure caused by
|
||||
https://github.com/llvm/llvm-project/pull/94944
|
||||
|
||||
Fixes https://github.com/llvm/llvm-project/issues/100296
|
||||
---
|
||||
llvm/lib/Analysis/ConstantFolding.cpp | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/llvm/lib/Analysis/ConstantFolding.cpp b/llvm/lib/Analysis/ConstantFolding.cpp
|
||||
index 85ee231675d0..084647b1d9d9 100644
|
||||
--- a/llvm/lib/Analysis/ConstantFolding.cpp
|
||||
+++ b/llvm/lib/Analysis/ConstantFolding.cpp
|
||||
@@ -1782,8 +1782,8 @@ Constant *ConstantFoldFP(double (*NativeFP)(double), const APFloat &V,
|
||||
}
|
||||
|
||||
#if defined(HAS_IEE754_FLOAT128) && defined(HAS_LOGF128)
|
||||
-Constant *ConstantFoldFP128(long double (*NativeFP)(long double),
|
||||
- const APFloat &V, Type *Ty) {
|
||||
+Constant *ConstantFoldFP128(float128 (*NativeFP)(float128), const APFloat &V,
|
||||
+ Type *Ty) {
|
||||
llvm_fenv_clearexcept();
|
||||
float128 Result = NativeFP(V.convertToQuad());
|
||||
if (llvm_fenv_testexcept()) {
|
||||
--
|
||||
2.46.0
|
||||
|
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()
|
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
llvm19-rpmlintrc
Normal file
22
llvm19-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")
|
3148
llvm19.changes
Normal file
3148
llvm19.changes
Normal file
File diff suppressed because it is too large
Load Diff
104
llvm19.keyring
Normal file
104
llvm19.keyring
Normal file
@ -0,0 +1,104 @@
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
9RmlwZlOTFGcWBYl/cfRONn9qi9a6w==
|
||||
=Lvw+
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
||||
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||
|
||||
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
|
||||
=tMzl
|
||||
-----END PGP PUBLIC KEY BLOCK-----
|
1863
llvm19.spec
Normal file
1863
llvm19.spec
Normal file
File diff suppressed because it is too large
Load Diff
58
llvm_build_tablegen_component_as_shared_library.patch
Normal file
58
llvm_build_tablegen_component_as_shared_library.patch
Normal file
@ -0,0 +1,58 @@
|
||||
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
|
||||
|
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-19.1.0.src.tar.xz
Normal file
3
openmp-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:c036fd95c8eeea8d7bce4196ee20cc5c5a99702d6ec7f0bb19828e315bc3a9ac
|
||||
size 1089828
|
BIN
openmp-19.1.0.src.tar.xz.sig
Normal file
BIN
openmp-19.1.0.src.tar.xz.sig
Normal file
Binary file not shown.
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-19.1.0.src.tar.xz
Normal file
3
polly-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:410d2946d6ff86a7a6c8801dc3b012a3feb0929f7de850a8e685dff37b1bd17f
|
||||
size 9161632
|
BIN
polly-19.1.0.src.tar.xz.sig
Normal file
BIN
polly-19.1.0.src.tar.xz.sig
Normal file
Binary file not shown.
3
runtimes-19.1.0.src.tar.xz
Normal file
3
runtimes-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:e5fc29e02198bc1f900c7e42590720cf4b664d4bee75e5d02bc45a4483f2a3b1
|
||||
size 7228
|
BIN
runtimes-19.1.0.src.tar.xz.sig
Normal file
BIN
runtimes-19.1.0.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-19.1.0.src.tar.xz
Normal file
3
third-party-19.1.0.src.tar.xz
Normal file
@ -0,0 +1,3 @@
|
||||
version https://git-lfs.github.com/spec/v1
|
||||
oid sha256:f521e6cdb6598d777c6120d086aee3993f182ab38bc59ce4a59c48fae4839b8c
|
||||
size 454720
|
BIN
third-party-19.1.0.src.tar.xz.sig
Normal file
BIN
third-party-19.1.0.src.tar.xz.sig
Normal file
Binary file not shown.
Loading…
Reference in New Issue
Block a user