tuliom pushed to rpms/llvm-bolt (f38). "Fix an issue on AArch64 (..more)"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 19:48:09 UTC
From a9ea7288842d8d64bfa0ec96483eb3527f5313e9 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom(a)redhat.com>
Date: Mar 13 2023 19:18:37 +0000
Subject: Fix an issue on AArch64
Backport a patch from LLVM 17.
---
diff --git a/0001-AArch64-fix-bug-55005-handle-DW_CFA_GNU_NegateRAStat.patch b/0001-AArch64-fix-bug-55005-handle-DW_CFA_GNU_NegateRAStat.patch
new file mode 100644
index 0000000..1b9abf0
--- /dev/null
+++ b/0001-AArch64-fix-bug-55005-handle-DW_CFA_GNU_NegateRAStat.patch
@@ -0,0 +1,137 @@
+From 9921197920fc3e9ad9605bd8fe0e835ca2dd41a5 Mon Sep 17 00:00:00 2001
+From: Sebastian Pop <spop(a)amazon.com>
+Date: Wed, 25 Jan 2023 18:40:48 +0000
+Subject: [PATCH] [AArch64] fix bug #55005 handle DW_CFA_GNU_NegateRAState
+
+GCC on AArch64 uses DW_CFA_GNU_NegateRAState for return address signing.
+
+Differential Revision: https://reviews.llvm.org/D142572
+---
+ bolt/lib/Core/Exceptions.cpp | 19 ++++--
+ .../Inputs/dw_cfa_gnu_window_save.yaml | 62 +++++++++++++++++++
+ bolt/test/AArch64/dw_cfa_gnu_window_save.test | 8 +++
+ 3 files changed, 83 insertions(+), 6 deletions(-)
+ create mode 100644 bolt/test/AArch64/Inputs/dw_cfa_gnu_window_save.yaml
+ create mode 100644 bolt/test/AArch64/dw_cfa_gnu_window_save.test
+
+diff --git a/bolt/lib/Core/Exceptions.cpp b/bolt/lib/Core/Exceptions.cpp
+index f8eabcf48f83..34e7454abfb0 100644
+--- a/bolt/lib/Core/Exceptions.cpp
++++ b/bolt/lib/Core/Exceptions.cpp
+@@ -626,18 +626,25 @@ bool CFIReaderWriter::fillCFIInfoFor(BinaryFunction &Function) const {
+ errs() << "BOLT-WARNING: DW_CFA_MIPS_advance_loc unimplemented\n";
+ return false;
+ case DW_CFA_GNU_window_save:
++ // DW_CFA_GNU_window_save and DW_CFA_GNU_NegateRAState just use the same
++ // id but mean different things. The latter is used in AArch64.
++ if (Function.getBinaryContext().isAArch64()) {
++ Function.addCFIInstruction(
++ Offset, MCCFIInstruction::createNegateRAState(nullptr));
++ break;
++ }
++ if (opts::Verbosity >= 1)
++ errs() << "BOLT-WARNING: DW_CFA_GNU_window_save unimplemented\n";
++ return false;
+ case DW_CFA_lo_user:
+ case DW_CFA_hi_user:
+- if (opts::Verbosity >= 1) {
+- errs() << "BOLT-WARNING: DW_CFA_GNU_* and DW_CFA_*_user "
+- "unimplemented\n";
+- }
++ if (opts::Verbosity >= 1)
++ errs() << "BOLT-WARNING: DW_CFA_*_user unimplemented\n";
+ return false;
+ default:
+- if (opts::Verbosity >= 1) {
++ if (opts::Verbosity >= 1)
+ errs() << "BOLT-WARNING: Unrecognized CFI instruction: " << Instr.Opcode
+ << '\n';
+- }
+ return false;
+ }
+
+diff --git a/bolt/test/AArch64/Inputs/dw_cfa_gnu_window_save.yaml b/bolt/test/AArch64/Inputs/dw_cfa_gnu_window_save.yaml
+new file mode 100644
+index 000000000000..faa32e0897c6
+--- /dev/null
++++ b/bolt/test/AArch64/Inputs/dw_cfa_gnu_window_save.yaml
+@@ -0,0 +1,62 @@
++--- !ELF
++FileHeader:
++ Class: ELFCLASS64
++ Data: ELFDATA2LSB
++ Type: ET_EXEC
++ Machine: EM_AARCH64
++ Entry: 0x4100C0
++ProgramHeaders:
++ - Type: PT_LOAD
++ Flags: [ PF_X, PF_R ]
++ FirstSec: .init
++ LastSec: .fini
++ VAddr: 0x410000
++ Align: 0x10000
++Sections:
++ - Name: .init
++ Type: SHT_PROGBITS
++ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
++ Address: 0x410000
++ AddressAlign: 0x4
++ Offset: 0x10000
++ Content: 3F2303D5FD7BBFA9FD0300913F000094FD7BC1A8BF2303D5C0035FD6
++ - Name: .plt
++ Type: SHT_PROGBITS
++ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
++ Address: 0x410020
++ AddressAlign: 0x10
++ Content: F07BBFA9700100F011FE47F910E23F9120021FD61F2003D51F2003D51F2003D590010090110240F91002009120021FD690010090110640F91022009120021FD690010090110A40F91042009120021FD6
++ - Name: .text
++ Type: SHT_PROGBITS
++ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
++ Address: 0x410080
++ AddressAlign: 0x40
++ Content: 00008052C0035FD61F2003D51F2003D51F2003D51F2003D51F2003D51F2003D51F2003D51F2003D51F2003D51F2003D51F2003D51F2003D51F2003D51F2003D55F2403D51D0080D21E0080D2E50300AAE10340F9E2230091E60300910000009000D00391030080D2040080D2D5FFFF97D8FFFF975F2403D5E2FFFF171F2003D55F2403D5C0035FD6600100F000F047F9400000B4D3FFFF17C0035FD61F2003D5800100908101009000800091218000913F0000EBC000005481000090210840F9610000B4F00301AA00021FD6C0035FD680010090810100900080009121800091210000CB22FC7FD3410C818B21FC4193C10000B482000090420C40F9620000B4F00302AA00021FD6C0035FD63F2303D5FD7BBEA9FD030091F30B00F9930100906082403980000035DEFFFF972000805260820039F30B40F9FD7BC2A8BF2303D5C0035FD65F2403D5E2FFFF17
++ - Name: .fini
++ Type: SHT_PROGBITS
++ Flags: [ SHF_ALLOC, SHF_EXECINSTR ]
++ Address: 0x4101CC
++ AddressAlign: 0x4
++ Content: 3F2303D5FD7BBFA9FD030091FD7BC1A8BF2303D5C0035FD6
++ - Name: .eh_frame
++ Type: SHT_PROGBITS
++ Flags: [ SHF_ALLOC ]
++ Address: 0x420068
++ AddressAlign: 0x8
++ Content: 1000000000000000017A520004781E011B0C1F0010000000180000003C00FFFF3C0000000041071E140000002C0000006800FFFF08000000000000000000000010000000440000007000FFFF300000000000000010000000580000008C00FFFF3C00000000000000240000006C000000B400FFFF3800000000412D410E209D049E0342930248DEDDD30E00412D0000001400000094000000C400FFFF08000000000000000000000010000000AC00000068FFFEFF080000000000000000000000
++ - Name: .rela.text
++ Type: SHT_RELA
++ Flags: [ SHF_INFO_LINK ]
++ Link: .symtab
++ AddressAlign: 0x8
++ Info: .text
++Symbols:
++ - Name: .text
++ Type: STT_SECTION
++ Section: .text
++ Value: 0x410080
++ - Name: _ITM_deregisterTMCloneTable
++ Binding: STB_WEAK
++ - Name: _ITM_registerTMCloneTable
++ Binding: STB_WEAK
++...
+diff --git a/bolt/test/AArch64/dw_cfa_gnu_window_save.test b/bolt/test/AArch64/dw_cfa_gnu_window_save.test
+new file mode 100644
+index 000000000000..2e044b399720
+--- /dev/null
++++ b/bolt/test/AArch64/dw_cfa_gnu_window_save.test
+@@ -0,0 +1,8 @@
++# Check that llvm-bolt can handle DW_CFA_GNU_window_save on AArch64.
++
++RUN: yaml2obj %p/Inputs/dw_cfa_gnu_window_save.yaml &> %t.exe
++RUN: llvm-bolt %t.exe -o %t.bolt 2>&1 | FileCheck %s
++
++CHECK-NOT: paciasp
++CHECK-NOT: autiasp
++CHECK-NOT: ERROR: unable to fill CFI.
+--
+2.39.2
+
diff --git a/llvm-bolt.spec b/llvm-bolt.spec
index ee382b6..cebe24f 100755
--- a/llvm-bolt.spec
+++ b/llvm-bolt.spec
@@ -30,8 +30,9 @@ Patch11: test.patch
# header to be able in order to compile. Try to disable as much libraries as
# possible in order to reduce build time.
Patch12: rm-llvm-libs.diff
-# Backport from LLVM 17.
+# Backports from LLVM 17.
Patch13: 0001-BOLT-NFC-Remove-C-style-out-of-bounds-array-ref.patch
+Patch14: 0001-AArch64-fix-bug-55005-handle-DW_CFA_GNU_NegateRAStat.patch
BuildRequires: gcc
BuildRequires: gcc-c++
https://src.fedoraproject.org/rpms/llvm-bolt/c/a9ea7288842d8d64bfa0ec9648...
1Â year, 2Â months
tuliom pushed to rpms/llvm-bolt (f38). "[RFC] Update to LLVM 16.0.0
RC3 (..more)"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 19:48:09 UTC
From 6f2761043c92c9f2209a7c79785b9313d66f2baf Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom(a)redhat.com>
Date: Mar 09 2023 19:03:11 +0000
Subject: [RFC] Update to LLVM 16.0.0 RC3
Please do not merge this patch.
I'd like some feedback on the solution I adopted here.
This patch changes fundamentally how bolt is built.
Problem: Bolt does not support standalone builds and depends heavily on
internal LLVM headers and object files.
Previously, all the required headers were getting copied and the rest of
the code except bolt was removed.
This solution has the advantage of reducing the amount of objects being
built, but increases the effort humans have to spent when updating the
source code whenever bolt adds a new dependency.
Instead of removing the source code, this patch tries to follow a closer
approach that is supported by bolt and only removes the cmake
entries leading to unnecessary libraries being built via the patch
rm-llvm-libs.diff. This solution increases build time, but may not
require any modifications in future updates.
If bolt starts depending on any of the removed libraries, the patch must
be updated. The removal of new libraries is not required, but it's
recommended in order to keep build time as low as possible.
For the record, after applying this patch, an Intel(R) Core(TM)
i7-11850H built bolt in ~26 minutes.
---
diff --git a/0001-BOLT-NFC-Remove-C-style-out-of-bounds-array-ref.patch b/0001-BOLT-NFC-Remove-C-style-out-of-bounds-array-ref.patch
new file mode 100644
index 0000000..81fa796
--- /dev/null
+++ b/0001-BOLT-NFC-Remove-C-style-out-of-bounds-array-ref.patch
@@ -0,0 +1,33 @@
+From 7768f63e5b7adc8a92b8f8041e9c1d298b011128 Mon Sep 17 00:00:00 2001
+From: Rafael Auler <rafaelauler(a)fb.com>
+Date: Wed, 25 Jan 2023 11:38:07 -0800
+Subject: [PATCH] [BOLT][NFC] Remove C-style out of bounds array ref
+
+Old code breaks build with libstdc++ with assertions. Fix it.
+---
+ bolt/lib/Core/JumpTable.cpp | 8 +++-----
+ 1 file changed, 3 insertions(+), 5 deletions(-)
+
+diff --git a/bolt/lib/Core/JumpTable.cpp b/bolt/lib/Core/JumpTable.cpp
+index 2b1035d6ab71..65e1032c579b 100644
+--- a/bolt/lib/Core/JumpTable.cpp
++++ b/bolt/lib/Core/JumpTable.cpp
+@@ -70,12 +70,10 @@ bool bolt::JumpTable::replaceDestination(uint64_t JTAddress,
+ MCSymbol *NewDest) {
+ bool Patched = false;
+ const std::pair<size_t, size_t> Range = getEntriesForAddress(JTAddress);
+- for (auto I = &Entries[Range.first], E = &Entries[Range.second]; I != E;
+- ++I) {
+- MCSymbol *&Entry = *I;
+- if (Entry == OldDest) {
++ for (auto I = Range.first; I != Range.second; ++I) {
++ if (Entries[I] == OldDest) {
+ Patched = true;
+- Entry = NewDest;
++ Entries[I] = NewDest;
+ }
+ }
+ return Patched;
+--
+2.39.2
+
diff --git a/0002-BOLT-Fix-part-of-dylib-compatibility.patch b/0002-BOLT-Fix-part-of-dylib-compatibility.patch
deleted file mode 100755
index e67bfe6..0000000
--- a/0002-BOLT-Fix-part-of-dylib-compatibility.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From a8747c147e8937abb64d89c668844ab4f47fba81 Mon Sep 17 00:00:00 2001
-From: serge-sans-paille <sguelton(a)redhat.com>
-Date: Tue, 20 Sep 2022 14:45:11 +0200
-Subject: [PATCH 2/3] [BOLT] Fix (part of) dylib compatibility
-
-Non-LLVM components should not be listed as part of LLVM_LINK_COMPONENTS.
-
-Differential Revision: https://reviews.llvm.org/D134278
----
- bolt/lib/Target/AArch64/CMakeLists.txt | 3 ++-
- bolt/lib/Target/X86/CMakeLists.txt | 4 ++--
- bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt | 5 ++++-
- 3 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/bolt/lib/Target/AArch64/CMakeLists.txt b/bolt/lib/Target/AArch64/CMakeLists.txt
-index 96c70168196e..29753969e85e 100644
---- a/bolt/lib/Target/AArch64/CMakeLists.txt
-+++ b/bolt/lib/Target/AArch64/CMakeLists.txt
-@@ -1,5 +1,4 @@
- set(LLVM_LINK_COMPONENTS
-- BOLTCore
- MC
- Support
- AArch64Desc
-@@ -12,6 +11,8 @@ add_llvm_library(LLVMBOLTTargetAArch64
- AArch64CommonTableGen
- )
-
-+target_link_libraries(LLVMBOLTTargetAArch64 PRIVATE LLVMBOLTCore)
-+
- include_directories(
- ${LLVM_MAIN_SRC_DIR}/lib/Target/AArch64
- ${LLVM_BINARY_DIR}/lib/Target/AArch64
-diff --git a/bolt/lib/Target/X86/CMakeLists.txt b/bolt/lib/Target/X86/CMakeLists.txt
-index 47344fe33111..7be9f80006c6 100644
---- a/bolt/lib/Target/X86/CMakeLists.txt
-+++ b/bolt/lib/Target/X86/CMakeLists.txt
-@@ -1,6 +1,4 @@
- set(LLVM_LINK_COMPONENTS
-- BOLTCore
-- BOLTUtils
- MC
- MCDisassembler
- Support
-@@ -15,6 +13,8 @@ add_llvm_library(LLVMBOLTTargetX86
- X86CommonTableGen
- )
-
-+target_link_libraries(LLVMBOLTTargetX86 PRIVATE LLVMBOLTCore LLVMBOLTUtils)
-+
- include_directories(
- ${LLVM_MAIN_SRC_DIR}/lib/Target/X86
- ${LLVM_BINARY_DIR}/lib/Target/X86
-diff --git a/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt b/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
-index 14031ca41925..f84a841a163d 100644
---- a/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
-+++ b/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
-@@ -1,8 +1,11 @@
- set(LLVM_LINK_COMPONENTS
-- BOLTRewrite
- ${LLVM_TARGETS_TO_BUILD}
- )
-
- add_llvm_fuzzer(llvm-bolt-fuzzer
- llvm-bolt-fuzzer.cpp
- )
-+
-+if (TARGET llvm-bolt-fuzzer)
-+ target_link_libraries(llvm-bolt-fuzzer PRIVATE LLVMBOLTRewrite)
-+endif()
---
-2.37.3
-
diff --git a/0003-BOLT-Support-building-bolt-when-LLVM_LINK_LLVM_DYLIB.patch b/0003-BOLT-Support-building-bolt-when-LLVM_LINK_LLVM_DYLIB.patch
deleted file mode 100755
index de7c2ed..0000000
--- a/0003-BOLT-Support-building-bolt-when-LLVM_LINK_LLVM_DYLIB.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From f89805a079285a864f922a5daf5be889732b7b78 Mon Sep 17 00:00:00 2001
-From: serge-sans-paille <sguelton(a)redhat.com>
-Date: Thu, 22 Sep 2022 15:01:04 +0200
-Subject: [PATCH 3/3] [BOLT] Support building bolt when LLVM_LINK_LLVM_DYLIB is
- ON
-
-This does *not* link with libLLVM, but with static archives instead. Not
-super-great, but at least the build works, which is probably better than
-failing.
-
-Related to #57551
-
-Differential Revision: https://reviews.llvm.org/D134434
----
- bolt/lib/Core/CMakeLists.txt | 1 +
- bolt/lib/Passes/CMakeLists.txt | 2 ++
- bolt/lib/Profile/CMakeLists.txt | 2 ++
- bolt/lib/Rewrite/CMakeLists.txt | 2 ++
- bolt/lib/RuntimeLibs/CMakeLists.txt | 2 ++
- bolt/lib/Target/AArch64/CMakeLists.txt | 2 ++
- bolt/lib/Target/X86/CMakeLists.txt | 2 ++
- bolt/lib/Utils/CMakeLists.txt | 2 ++
- bolt/tools/driver/CMakeLists.txt | 2 ++
- bolt/tools/heatmap/CMakeLists.txt | 1 +
- bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt | 2 ++
- bolt/tools/merge-fdata/CMakeLists.txt | 2 ++
- bolt/unittests/Core/CMakeLists.txt | 2 ++
- bolt/unittests/Profile/CMakeLists.txt | 2 ++
- 14 files changed, 26 insertions(+)
-
-diff --git a/bolt/lib/Core/CMakeLists.txt b/bolt/lib/Core/CMakeLists.txt
-index 501b5eb6e667..c09a439b1359 100644
---- a/bolt/lib/Core/CMakeLists.txt
-+++ b/bolt/lib/Core/CMakeLists.txt
-@@ -24,6 +24,7 @@ add_llvm_library(LLVMBOLTCore
- ParallelUtilities.cpp
- Relocation.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
- LINK_LIBS
- ${LLVM_PTHREAD_LIB}
- )
-diff --git a/bolt/lib/Passes/CMakeLists.txt b/bolt/lib/Passes/CMakeLists.txt
-index bb296263bb4e..86f08d29264d 100644
---- a/bolt/lib/Passes/CMakeLists.txt
-+++ b/bolt/lib/Passes/CMakeLists.txt
-@@ -46,6 +46,8 @@ add_llvm_library(LLVMBOLTPasses
- VeneerElimination.cpp
- RetpolineInsertion.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
-+
- LINK_LIBS
- ${LLVM_PTHREAD_LIB}
-
-diff --git a/bolt/lib/Profile/CMakeLists.txt b/bolt/lib/Profile/CMakeLists.txt
-index f4397e3314d6..0b5d771d4b9d 100644
---- a/bolt/lib/Profile/CMakeLists.txt
-+++ b/bolt/lib/Profile/CMakeLists.txt
-@@ -7,6 +7,8 @@ add_llvm_library(LLVMBOLTProfile
- YAMLProfileReader.cpp
- YAMLProfileWriter.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
-+
- LINK_COMPONENTS
- Support
- )
-diff --git a/bolt/lib/Rewrite/CMakeLists.txt b/bolt/lib/Rewrite/CMakeLists.txt
-index 053fa9ac15ea..e411c50c05ad 100644
---- a/bolt/lib/Rewrite/CMakeLists.txt
-+++ b/bolt/lib/Rewrite/CMakeLists.txt
-@@ -33,6 +33,8 @@ add_llvm_library(LLVMBOLTRewrite
- MachORewriteInstance.cpp
- RewriteInstance.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
-+
- LINK_LIBS
- ${LLVM_PTHREAD_LIB}
- )
-diff --git a/bolt/lib/RuntimeLibs/CMakeLists.txt b/bolt/lib/RuntimeLibs/CMakeLists.txt
-index f0359a652d39..26c2109982c9 100644
---- a/bolt/lib/RuntimeLibs/CMakeLists.txt
-+++ b/bolt/lib/RuntimeLibs/CMakeLists.txt
-@@ -10,6 +10,8 @@ add_llvm_library(LLVMBOLTRuntimeLibs
- RuntimeLibrary.cpp
- HugifyRuntimeLibrary.cpp
- InstrumentationRuntimeLibrary.cpp
-+
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
- )
-
- target_link_libraries(LLVMBOLTRuntimeLibs
-diff --git a/bolt/lib/Target/AArch64/CMakeLists.txt b/bolt/lib/Target/AArch64/CMakeLists.txt
-index 29753969e85e..be03e247aa96 100644
---- a/bolt/lib/Target/AArch64/CMakeLists.txt
-+++ b/bolt/lib/Target/AArch64/CMakeLists.txt
-@@ -7,6 +7,8 @@ set(LLVM_LINK_COMPONENTS
- add_llvm_library(LLVMBOLTTargetAArch64
- AArch64MCPlusBuilder.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
-+
- DEPENDS
- AArch64CommonTableGen
- )
-diff --git a/bolt/lib/Target/X86/CMakeLists.txt b/bolt/lib/Target/X86/CMakeLists.txt
-index 7be9f80006c6..2b769bc7e7f5 100644
---- a/bolt/lib/Target/X86/CMakeLists.txt
-+++ b/bolt/lib/Target/X86/CMakeLists.txt
-@@ -9,6 +9,8 @@ add_llvm_library(LLVMBOLTTargetX86
- X86MCPlusBuilder.cpp
- X86MCSymbolizer.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
-+
- DEPENDS
- X86CommonTableGen
- )
-diff --git a/bolt/lib/Utils/CMakeLists.txt b/bolt/lib/Utils/CMakeLists.txt
-index 2a1307750b9f..9ed9be6e1d85 100644
---- a/bolt/lib/Utils/CMakeLists.txt
-+++ b/bolt/lib/Utils/CMakeLists.txt
-@@ -2,6 +2,8 @@ add_llvm_library(LLVMBOLTUtils
- CommandLineOpts.cpp
- Utils.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
-+
- LINK_LIBS
- ${LLVM_PTHREAD_LIB}
-
-diff --git a/bolt/tools/driver/CMakeLists.txt b/bolt/tools/driver/CMakeLists.txt
-index e56be15dbcff..1c596194ffe8 100644
---- a/bolt/tools/driver/CMakeLists.txt
-+++ b/bolt/tools/driver/CMakeLists.txt
-@@ -14,6 +14,8 @@ endif()
- add_bolt_tool(llvm-bolt
- llvm-bolt.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
-+
- DEPENDS
- ${BOLT_DRIVER_DEPS}
- )
-diff --git a/bolt/tools/heatmap/CMakeLists.txt b/bolt/tools/heatmap/CMakeLists.txt
-index cb8e7ee2605c..9f52ddb02102 100644
---- a/bolt/tools/heatmap/CMakeLists.txt
-+++ b/bolt/tools/heatmap/CMakeLists.txt
-@@ -7,6 +7,7 @@ set(LLVM_LINK_COMPONENTS
-
- add_bolt_tool(llvm-bolt-heatmap
- heatmap.cpp
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
- )
-
- target_link_libraries(llvm-bolt-heatmap
-diff --git a/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt b/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
-index f84a841a163d..f21285f634ba 100644
---- a/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
-+++ b/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
-@@ -4,6 +4,8 @@ set(LLVM_LINK_COMPONENTS
-
- add_llvm_fuzzer(llvm-bolt-fuzzer
- llvm-bolt-fuzzer.cpp
-+
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
- )
-
- if (TARGET llvm-bolt-fuzzer)
-diff --git a/bolt/tools/merge-fdata/CMakeLists.txt b/bolt/tools/merge-fdata/CMakeLists.txt
-index 08b2e65b1bce..4bd2b522b8f9 100644
---- a/bolt/tools/merge-fdata/CMakeLists.txt
-+++ b/bolt/tools/merge-fdata/CMakeLists.txt
-@@ -3,6 +3,8 @@ set(LLVM_LINK_COMPONENTS Support)
- add_bolt_tool(merge-fdata
- merge-fdata.cpp
-
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
-+
- DEPENDS
- intrinsics_gen
- )
-diff --git a/bolt/unittests/Core/CMakeLists.txt b/bolt/unittests/Core/CMakeLists.txt
-index 0e78d0a2746f..15d48f2c422c 100644
---- a/bolt/unittests/Core/CMakeLists.txt
-+++ b/bolt/unittests/Core/CMakeLists.txt
-@@ -9,6 +9,8 @@ add_bolt_unittest(CoreTests
- BinaryContext.cpp
- MCPlusBuilder.cpp
- DynoStats.cpp
-+
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
- )
-
- target_link_libraries(CoreTests
-diff --git a/bolt/unittests/Profile/CMakeLists.txt b/bolt/unittests/Profile/CMakeLists.txt
-index b0f1ec0f8045..e0aa0926b49c 100644
---- a/bolt/unittests/Profile/CMakeLists.txt
-+++ b/bolt/unittests/Profile/CMakeLists.txt
-@@ -1,5 +1,7 @@
- add_bolt_unittest(ProfileTests
- DataAggregator.cpp
-+
-+ DISABLE_LLVM_LINK_LLVM_DYLIB
- )
-
- target_link_libraries(ProfileTests
---
-2.37.3
-
diff --git a/lib64.patch b/lib64.patch
deleted file mode 100755
index 17cad13..0000000
--- a/lib64.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-diff --git a/bolt/lib/RuntimeLibs/RuntimeLibrary.cpp b/bolt/lib/RuntimeLibs/RuntimeLibrary.cpp
-index 022fc7c..489d017 100644
---- a/bolt/lib/RuntimeLibs/RuntimeLibrary.cpp
-+++ b/bolt/lib/RuntimeLibs/RuntimeLibrary.cpp
-@@ -28,12 +28,12 @@ std::string RuntimeLibrary::getLibPath(StringRef ToolPath,
- StringRef LibFileName) {
- StringRef Dir = llvm::sys::path::parent_path(ToolPath);
- SmallString<128> LibPath = llvm::sys::path::parent_path(Dir);
-- llvm::sys::path::append(LibPath, "lib");
-+ llvm::sys::path::append(LibPath, "lib64");
- if (!llvm::sys::fs::exists(LibPath)) {
- // In some cases we install bolt binary into one level deeper in bin/,
- // we need to go back one more level to find lib directory.
- LibPath = llvm::sys::path::parent_path(llvm::sys::path::parent_path(Dir));
-- llvm::sys::path::append(LibPath, "lib");
-+ llvm::sys::path::append(LibPath, "lib64");
- }
- llvm::sys::path::append(LibPath, LibFileName);
- if (!llvm::sys::fs::exists(LibPath)) {
-
-diff --git a/bolt/runtime/CMakeLists.txt b/bolt/runtime/CMakeLists.txt
-index 7c1b79af4d2c..9c364d2483c6 100644
---- a/bolt/runtime/CMakeLists.txt
-+++ b/bolt/runtime/CMakeLists.txt
-@@ -1,5 +1,6 @@
- cmake_minimum_required(VERSION 3.13.4)
- include(CheckIncludeFiles)
-+include(GNUInstallDirs)
-
- set(CMAKE_CXX_EXTENSIONS OFF)
- set(CMAKE_CXX_STANDARD 14)
-@@ -32,8 +33,8 @@ target_include_directories(bolt_rt_instr PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
- target_compile_options(bolt_rt_hugify PRIVATE ${BOLT_RT_FLAGS})
- target_include_directories(bolt_rt_hugify PRIVATE ${CMAKE_CURRENT_BINARY_DIR})
-
--install(TARGETS bolt_rt_instr DESTINATION lib)
--install(TARGETS bolt_rt_hugify DESTINATION lib)
-+install(TARGETS bolt_rt_instr DESTINATION "${CMAKE_INSTALL_PREFIX}/lib64")
-+install(TARGETS bolt_rt_hugify DESTINATION "${CMAKE_INSTALL_PREFIX}/lib64")
-
- if (CMAKE_CXX_COMPILER_ID MATCHES ".*Clang.*")
- add_library(bolt_rt_instr_osx STATIC
-@@ -44,5 +45,5 @@ if (CMAKE_CXX_COMPILER_ID MATCHES ".*Clang.*")
- target_compile_options(bolt_rt_instr_osx PRIVATE
- -target x86_64-apple-darwin19.6.0
- ${BOLT_RT_FLAGS})
-- install(TARGETS bolt_rt_instr_osx DESTINATION lib)
-+ install(TARGETS bolt_rt_instr_osx DESTINATION "${CMAKE_INSTALL_PREFIX}/lib64")
- endif()
diff --git a/llvm-bolt.spec b/llvm-bolt.spec
index 203ec3f..ee382b6 100755
--- a/llvm-bolt.spec
+++ b/llvm-bolt.spec
@@ -4,16 +4,16 @@
# https://bugzilla.redhat.com/show_bug.cgi?id=2158587
%undefine _include_frame_pointers
-%global maj_ver 15
+%global maj_ver 16
%global min_ver 0
-#global rc_ver 1
-%global patch_ver 7
+%global rc_ver 3
+%global patch_ver 0
%global bolt_version %{maj_ver}.%{min_ver}.%{patch_ver}
%global bolt_srcdir llvm-project-%{bolt_version}%{?rc_ver:rc%{rc_ver}}.src
Name: llvm-bolt
Version: %{bolt_version}%{?rc_ver:~rc%{rc_ver}}
-Release: 2%{?dist}
+Release: 1%{?dist}
Summary: a post-link optimizer developed to speed up large applications
License: Apache-2.0 WITH LLVM-exception
@@ -22,18 +22,16 @@ Source0: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ve
Source1: https://github.com/llvm/llvm-project/releases/download/llvmorg-%{maj_ver}...
Source2: release-keys.asc
-## drop these for LLVM 16.0.0
-Patch1: 0002-BOLT-Fix-part-of-dylib-compatibility.patch
-Patch2: 0003-BOLT-Support-building-bolt-when-LLVM_LINK_LLVM_DYLIB.patch
-##
-
# Upstream doesn't support standalone builds
Patch10: standalone.patch
# Upstream tests is missing a canonical variable in standalone mode
Patch11: test.patch
-# Upstream assumes runtime libraries are installed in "lib"
-Patch12: lib64.patch
-
+# BOLT is not respecting the component split of LLVM and requires some private
+# header to be able in order to compile. Try to disable as much libraries as
+# possible in order to reduce build time.
+Patch12: rm-llvm-libs.diff
+# Backport from LLVM 17.
+Patch13: 0001-BOLT-NFC-Remove-C-style-out-of-bounds-array-ref.patch
BuildRequires: gcc
BuildRequires: gcc-c++
@@ -46,6 +44,7 @@ BuildRequires: python3-lit
BuildRequires: python3-psutil
BuildRequires: clang
BuildRequires: lld
+BuildRequires: doxygen
# For origin certification
BuildRequires: gnupg2
@@ -72,101 +71,14 @@ Documentation for the BOLT optimizer
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
-%autosetup -n %{bolt_srcdir}/bolt -p2
-
-# BOLT is not respecting the component split of LLVM and requires some private
-# header to be able in order to compile
-
-# workaround this by moving these headers to a specific bolt directory
-mkdir imported
-mkdir imported/Utils
-mkdir imported/MCTargetDesc
-
-cp ../llvm/lib/Target/X86/MCTargetDesc/X86BaseInfo.h imported/MCTargetDesc/
-cp ../llvm/lib/Target/X86/MCTargetDesc/X86InstrRelaxTables.h imported/MCTargetDesc/
-cp ../llvm/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h imported/MCTargetDesc/
-cp ../llvm/lib/Target/AArch64/MCTargetDesc/AArch64AddressingModes.h imported/MCTargetDesc/
-cp ../llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h imported/MCTargetDesc/
-cp ../llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.h imported/MCTargetDesc/
-cp ../llvm/lib/Target/AArch64/AArch64ExpandImm.h imported/
-cp ../llvm/lib/Target/AArch64/Utils/AArch64BaseInfo.h imported/Utils/
-
-# move private Tablegen defs to a specific bolt directory
-for arch in X86 AArch64
-do
- mkdir imported/$arch
- cp ../llvm/lib/Target/$arch/*.td imported/$arch/
-done
+%autosetup -n %{bolt_srcdir} -p1
-# Copy the cmake rules to generate the required headers from tablegen
-
-# extracted from llvm/lib/Target/X86/CMakeLists.txt
-cat > imported/X86/CMakeLists.txt << EOF
-set(LLVM_TARGET_DEFINITIONS X86.td)
-
-tablegen(LLVM X86GenAsmMatcher.inc -gen-asm-matcher)
-tablegen(LLVM X86GenAsmWriter.inc -gen-asm-writer)
-tablegen(LLVM X86GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
-tablegen(LLVM X86GenCallingConv.inc -gen-callingconv)
-tablegen(LLVM X86GenDAGISel.inc -gen-dag-isel)
-tablegen(LLVM X86GenDisassemblerTables.inc -gen-disassembler)
-tablegen(LLVM X86GenEVEX2VEXTables.inc -gen-x86-EVEX2VEX-tables)
-tablegen(LLVM X86GenExegesis.inc -gen-exegesis)
-tablegen(LLVM X86GenFastISel.inc -gen-fast-isel)
-tablegen(LLVM X86GenGlobalISel.inc -gen-global-isel)
-tablegen(LLVM X86GenInstrInfo.inc -gen-instr-info
- -instr-info-expand-mi-operand-info=0)
-tablegen(LLVM X86GenMnemonicTables.inc -gen-x86-mnemonic-tables -asmwriternum=1)
-tablegen(LLVM X86GenRegisterBank.inc -gen-register-bank)
-tablegen(LLVM X86GenRegisterInfo.inc -gen-register-info)
-tablegen(LLVM X86GenSubtargetInfo.inc -gen-subtarget)
-
-add_public_tablegen_target(X86CommonTableGen)
-EOF
-
-# extracted from llvm/lib/Target/AArch64/CMakeLists.txt
-cat > imported/AArch64/CMakeLists.txt << EOF
-
-set(LLVM_TARGET_DEFINITIONS AArch64.td)
-
-tablegen(LLVM AArch64GenAsmMatcher.inc -gen-asm-matcher)
-tablegen(LLVM AArch64GenAsmWriter.inc -gen-asm-writer)
-tablegen(LLVM AArch64GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
-tablegen(LLVM AArch64GenCallingConv.inc -gen-callingconv)
-tablegen(LLVM AArch64GenDAGISel.inc -gen-dag-isel)
-tablegen(LLVM AArch64GenDisassemblerTables.inc -gen-disassembler)
-tablegen(LLVM AArch64GenFastISel.inc -gen-fast-isel)
-tablegen(LLVM AArch64GenGlobalISel.inc -gen-global-isel)
-tablegen(LLVM AArch64GenO0PreLegalizeGICombiner.inc -gen-global-isel-combiner
- -combiners="AArch64O0PreLegalizerCombinerHelper")
-tablegen(LLVM AArch64GenPreLegalizeGICombiner.inc -gen-global-isel-combiner
- -combiners="AArch64PreLegalizerCombinerHelper")
-tablegen(LLVM AArch64GenPostLegalizeGICombiner.inc -gen-global-isel-combiner
- -combiners="AArch64PostLegalizerCombinerHelper")
-tablegen(LLVM AArch64GenPostLegalizeGILowering.inc -gen-global-isel-combiner
- -combiners="AArch64PostLegalizerLoweringHelper")
-tablegen(LLVM AArch64GenInstrInfo.inc -gen-instr-info)
-tablegen(LLVM AArch64GenMCCodeEmitter.inc -gen-emitter)
-tablegen(LLVM AArch64GenMCPseudoLowering.inc -gen-pseudo-lowering)
-tablegen(LLVM AArch64GenRegisterBank.inc -gen-register-bank)
-tablegen(LLVM AArch64GenRegisterInfo.inc -gen-register-info)
-tablegen(LLVM AArch64GenSubtargetInfo.inc -gen-subtarget)
-tablegen(LLVM AArch64GenSystemOperands.inc -gen-searchable-tables)
-tablegen(LLVM AArch64GenExegesis.inc -gen-exegesis)
-
-add_public_tablegen_target(AArch64CommonTableGen)
-
-EOF
-
-# Now that we have remove the dependency on private LLVM headers,
-# remove all directories, but keep bolt
-find ../* -maxdepth 0 ! -name 'bolt' -exec rm -rf {} +
%build
%global _lto_cflags %{nil}
-%cmake -GNinja \
+%cmake -S llvm -GNinja \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DCMAKE_SKIP_RPATH=ON \
-DLLVM_DIR=%{_libdir}/cmake/llvm \
@@ -184,56 +96,59 @@ find ../* -maxdepth 0 ! -name 'bolt' -exec rm -rf {} +
-DBOLT_INCLUDE_TESTS:BOOL=ON \
-DBOLT_CLANG_EXE=%{_bindir}/clang\
-DBOLT_LLD_EXE=%{_bindir}/ld.lld\
- -DLLVM_EXTERNAL_LIT=%{_bindir}/lit
+ -DLLVM_EXTERNAL_LIT=%{_bindir}/lit \
+ -DLLVM_ENABLE_PROJECTS="bolt"
# Set LD_LIBRARY_PATH now because we skip rpath generation and the build uses
# some just built libraries.
-export LD_LIBRARY_PATH=%{_builddir}/%{bolt_srcdir}/bolt/%{_vpath_builddir}/%{_lib}
+export LD_LIBRARY_PATH=%{_builddir}/%{bolt_srcdir}/%{_vpath_builddir}/%{_lib}
# Set DESTDIR now because bolt sneaks in an install step in its build step.
export DESTDIR=%{buildroot}
-%cmake_build
+%cmake_build --target bolt
+
%install
-%cmake_install
+%cmake_install --component bolt
+
+# Remove files installed during the build phase.
+rm -f %{buildroot}/%{_builddir}/%{bolt_srcdir}/%{_vpath_builddir}/%{_lib}/lib*.a
# We don't ship libLLVMBOLT*.a
rm -f %{buildroot}%{_libdir}/libLLVMBOLT*.a
# There currently is not support upstream for building html doc from BOLT
install -d %{buildroot}%{_pkgdocdir}
-mv README.md docs/*.md %{buildroot}%{_pkgdocdir}
+mv bolt/README.md bolt/docs/*.md %{buildroot}%{_pkgdocdir}
%check
-# bolt makes incorrect assumptions on the location of llvm-bolt*
-mkdir -p %{_builddir}/%{bolt_srcdir}/bolt/test
-for boltbin in llvm-bolt llvm-boltdiff perf2bolt llvm-bolt-heatmap merge-fdata
-do
- ln -s %{_builddir}/%{bolt_srcdir}/bolt/%{_vpath_builddir}/bin/${boltbin} %{_builddir}/%{bolt_srcdir}/bolt/test/
-done
-
%ifarch x86_64
# Bolt makes incorrect assumptions on the location of libbolt_rt_*.a.
mkdir -p %{_builddir}/%{bolt_srcdir}/%{_lib}
for rt in libbolt_rt_instr libbolt_rt_hugify libbolt_rt_instr_osx
do
- ln -s %{buildroot}/%{_libdir}/${rt}.a %{_builddir}/%{bolt_srcdir}/%{_lib}
+ ln -s %{buildroot}/%{_libdir}/${rt}.a %{_builddir}/%{bolt_srcdir}/%{_vpath_builddir}/%{_lib}
done
%endif
%ifarch aarch64
# Failing test cases on aarch64
-rm test/cache+-deprecated.test test/bolt-icf.test test/R_ABS.pic.lld.cpp
+rm bolt/test/cache+-deprecated.test bolt/test/bolt-icf.test bolt/test/R_ABS.pic.lld.cpp
%endif
-export LD_LIBRARY_PATH=%{_builddir}/%{bolt_srcdir}/bolt/%{_vpath_builddir}/%{_lib}
+export LD_LIBRARY_PATH=%{_builddir}/%{bolt_srcdir}/%{_vpath_builddir}/%{_lib}
export DESTDIR=%{buildroot}
%cmake_build --target check-bolt
+# Remove files installed during the check phase.
+rm -f %{buildroot}/%{_builddir}/%{bolt_srcdir}/%{_vpath_builddir}/%{_lib}/lib*.a
+
+
%files
%license LICENSE.TXT
%{_bindir}/llvm-bolt
%{_bindir}/llvm-boltdiff
+%{_bindir}/merge-fdata
%{_bindir}/perf2bolt
%ifarch x86_64
@@ -247,6 +162,9 @@ export DESTDIR=%{buildroot}
%doc %{_pkgdocdir}
%changelog
+* Fri Mar 03 2023 Tulio Magno Quites Machado Filho <tuliom(a)redhat.com> - 16.0.0~rc3-1
+- Update to LLVM 16.0.0 RC3
+
* Thu Jan 19 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 15.0.7-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
diff --git a/rm-llvm-libs.diff b/rm-llvm-libs.diff
new file mode 100644
index 0000000..1f63720
--- /dev/null
+++ b/rm-llvm-libs.diff
@@ -0,0 +1,48 @@
+diff --git a/llvm/lib/CMakeLists.txt b/llvm/lib/CMakeLists.txt
+index 283baa6090eb..7642e2d9efca 100644
+--- a/llvm/lib/CMakeLists.txt
++++ b/llvm/lib/CMakeLists.txt
+@@ -4,43 +4,29 @@ include(LLVM-Build)
+ # CMakeLists.txt
+
+ add_subdirectory(IR)
+-add_subdirectory(FuzzMutate)
+ add_subdirectory(FileCheck)
+-add_subdirectory(InterfaceStub)
+ add_subdirectory(IRPrinter)
+ add_subdirectory(IRReader)
+ add_subdirectory(CodeGen)
+ add_subdirectory(BinaryFormat)
+ add_subdirectory(Bitcode)
+ add_subdirectory(Bitstream)
+-add_subdirectory(DWARFLinker)
+-add_subdirectory(DWARFLinkerParallel)
+-add_subdirectory(Extensions)
+ add_subdirectory(Frontend)
+ add_subdirectory(Transforms)
+-add_subdirectory(Linker)
+ add_subdirectory(Analysis)
+-add_subdirectory(LTO)
+ add_subdirectory(MC)
+-add_subdirectory(MCA)
+ add_subdirectory(ObjCopy)
+ add_subdirectory(Object)
+ add_subdirectory(ObjectYAML)
+-add_subdirectory(Option)
+ add_subdirectory(Remarks)
+ add_subdirectory(Debuginfod)
+ add_subdirectory(DebugInfo)
+ add_subdirectory(DWP)
+ add_subdirectory(ExecutionEngine)
+ add_subdirectory(Target)
+-add_subdirectory(AsmParser)
+-add_subdirectory(LineEditor)
+ add_subdirectory(ProfileData)
+-add_subdirectory(Passes)
+ add_subdirectory(TargetParser)
+ add_subdirectory(TextAPI)
+-add_subdirectory(ToolDrivers)
+-add_subdirectory(XRay)
+ if (LLVM_INCLUDE_TESTS)
+ add_subdirectory(Testing)
+ endif()
diff --git a/standalone.patch b/standalone.patch
index 6e72265..383df9f 100755
--- a/standalone.patch
+++ b/standalone.patch
@@ -2,7 +2,7 @@ diff --git a/bolt/CMakeLists.txt b/bolt/CMakeLists.txt
index a97878c..93bc391 100644
--- a/bolt/CMakeLists.txt
+++ b/bolt/CMakeLists.txt
-@@ -1,3 +1,51 @@
+@@ -1,3 +1,42 @@
+# Check if BOLT is built as a standalone project.
+if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+ project(bolt LANGUAGES CXX C ASM)
@@ -21,15 +21,6 @@ index a97878c..93bc391 100644
+
+ include_directories(${LLVM_INCLUDE_DIRS})
+
-+ add_subdirectory(imported/X86)
-+ add_subdirectory(imported/AArch64)
-+
-+ # extra includes for LLVM private headers maintained as a patch
-+ include_directories(${CMAKE_CURRENT_SOURCE_DIR}/imported)
-+ include_directories(${CMAKE_CURRENT_BINARY_DIR}/imported)
-+ include_directories(${CMAKE_CURRENT_BINARY_DIR}/imported/X86)
-+ include_directories(${CMAKE_CURRENT_BINARY_DIR}/imported/AArch64)
-+
+ add_custom_target(llvm-readelf)
+ add_custom_target(llvm-strip)
+
https://src.fedoraproject.org/rpms/llvm-bolt/c/6f2761043c92c9f2209a7c7978...
1Â year, 2Â months
tuliom pushed to rpms/llvm-bolt (f38). "Update to LLVM 16.0.0"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 19:48:09 UTC
From 9324cd72edfc2da0a571f9b3c018aff2b66aeee9 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom(a)redhat.com>
Date: Mar 23 2023 13:22:56 +0000
Subject: Update to LLVM 16.0.0
---
diff --git a/llvm-bolt.spec b/llvm-bolt.spec
index d1cc9c5..4d84677 100755
--- a/llvm-bolt.spec
+++ b/llvm-bolt.spec
@@ -6,7 +6,7 @@
%global maj_ver 16
%global min_ver 0
-%global rc_ver 4
+#global rc_ver 4
%global patch_ver 0
%global bolt_version %{maj_ver}.%{min_ver}.%{patch_ver}
%global bolt_srcdir llvm-project-%{bolt_version}%{?rc_ver:rc%{rc_ver}}.src
@@ -160,6 +160,9 @@ rm -f %{buildroot}/%{_builddir}/%{bolt_srcdir}/%{_vpath_builddir}/%{_lib}/lib*.a
%doc %{_pkgdocdir}
%changelog
+* Tue Mar 21 2023 Tulio Magno Quites Machado Filho <tuliom(a)redhat.com> - 16.0.0-1
+- Update to LLVM 16.0.0
+
* Wed Mar 15 2023 Tulio Magno Quites Machado Filho <tuliom(a)redhat.com> - 16.0.0~rc4-1
- Update to LLVM 16.0.0 RC4
diff --git a/sources b/sources
index 81eebf6..9c213ce 100644
--- a/sources
+++ b/sources
@@ -1,2 +1,2 @@
-SHA512 (llvm-project-16.0.0rc4.src.tar.xz) = 8d628205c5b93fe6683b67b97b5c7f98bae945bd87cccebcdac00ddd4362108bd171f077a5196242be0fb909c795592b34bfa1c96c50a744fb68f287fd9781cc
-SHA512 (llvm-project-16.0.0rc4.src.tar.xz.sig) = 2af72e3d771e2361873007a944dcccfe81fbdbc3025a2101e03cbc15f1a173d39ceb94c4ae8966b1d7564bf004ee9a5ffa032e2334c0cf7154aea1090d04b00f
+SHA512 (llvm-project-16.0.0.src.tar.xz) = 3f040abc1b03205693824aeff2ee6efb0cff25fe04bd5265141c093f294655a1f3fcda73cab9c57cbed7523c8f186a7e2484afce0792c55e90e3fb80450fabb7
+SHA512 (llvm-project-16.0.0.src.tar.xz.sig) = 38e2449dce20cfbf813d1a9a68b36807722ac8ebb5ee07360fa215b2de8534d2329d3e41cfc3ed33e59e36714b94a6683a6d8077950bcf0037973492e0820fb3
https://src.fedoraproject.org/rpms/llvm-bolt/c/9324cd72edfc2da0a571f9b3c0...
1Â year, 2Â months
tuliom pushed to rpms/llvm-bolt (f38). "Improve .gitignore (..more)"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 19:48:09 UTC
From dbf1121fb12b2bbc2030676a25ea124e3cc576d3 Mon Sep 17 00:00:00 2001
From: Tulio Magno Quites Machado Filho <tuliom(a)redhat.com>
Date: Mar 15 2023 21:20:30 +0000
Subject: Improve .gitignore
Replace many entries with globs.
---
diff --git a/.gitignore b/.gitignore
index 7e2cebe..b67dddf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,3 @@
-/llvm-project-15.0.0.src.tar.xz
-/llvm-project-15.0.0.src.tar.xz.sig
-/llvm-project-15.0.6.src.tar.xz
-/llvm-project-15.0.6.src.tar.xz.sig
-/llvm-project-15.0.7.src.tar.xz
-/llvm-project-15.0.7.src.tar.xz.sig
+/*.tar.xz
+/*.tar.xz.sig
+/*.src.rpm
https://src.fedoraproject.org/rpms/llvm-bolt/c/dbf1121fb12b2bbc2030676a25...
1Â year, 2Â months
djdelorie pushed to rpms/make (rawhide). "Update to 4.4.1 (..more)"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 19:45:37 UTC
From 64883e56dae1ce8ddedfc98d9449309d515dbdab Mon Sep 17 00:00:00 2001
From: DJ Delorie <dj(a)redhat.com>
Date: Mar 31 2023 19:43:56 +0000
Subject: Update to 4.4.1
Remove patch which has been applied upstream.
---
diff --git a/.gitignore b/.gitignore
index b802fad..d2d8bf6 100644
--- a/.gitignore
+++ b/.gitignore
@@ -7,3 +7,4 @@ make-3.82.tar.bz2
/make-4.2.1.tar.bz2
/make-4.3.tar.gz
/make-4.4.tar.gz
+/make-4.4.1.tar.gz
diff --git a/make-4.4-sigpipe.patch b/make-4.4-sigpipe.patch
deleted file mode 100644
index 380f7ee..0000000
--- a/make-4.4-sigpipe.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 92ab2e642d2c04b3dcb5a736ae6193680bfd5f74 Mon Sep 17 00:00:00 2001
-From: Paul Smith <psmith(a)gnu.org>
-Date: Sun, 6 Nov 2022 15:22:02 -0500
-Subject: * src/main.c (main): [SV 63307] Handle SIGPIPE as a fatal signal
-
-Always ignoring SIGPIPE is visible to child processes.
-
-diff --git a/src/main.c b/src/main.c
-index eec93656..f2caf7a8 100644
---- a/src/main.c
-+++ b/src/main.c
-@@ -1182,11 +1182,6 @@ main (int argc, char **argv, char **envp)
- /* Useful for attaching debuggers, etc. */
- SPIN ("main-entry");
-
-- /* Don't die if our stdout sends us SIGPIPE. */
--#ifdef SIGPIPE
-- bsd_signal (SIGPIPE, SIG_IGN);
--#endif
--
- #ifdef HAVE_ATEXIT
- if (ANY_SET (check_io_state (), IO_STDOUT_OK))
- atexit (close_stdout);
-@@ -1264,6 +1259,9 @@ main (int argc, char **argv, char **envp)
- #endif
- #ifdef SIGQUIT
- FATAL_SIG (SIGQUIT);
-+#endif
-+#ifdef SIGPIPE
-+ FATAL_SIG (SIGPIPE);
- #endif
- FATAL_SIG (SIGINT);
- FATAL_SIG (SIGTERM);
diff --git a/make.spec b/make.spec
index 6d181f2..5c79414 100644
--- a/make.spec
+++ b/make.spec
@@ -4,15 +4,15 @@
# optional versioned updates.
Name: make
Epoch: 1
-Version: 4.4
-Release: 3%{?dist}
+Version: 4.4.1
+Release: 1%{?dist}
License: GPLv3+
URL: http://www.gnu.org/software/make/
Source: ftp://ftp.gnu.org/gnu/make/make-%{version}.tar.gz
%if "%{name}" != "make"
# Set this to the sub-package base name, for "make-latest"
-%global make make44
+%global make make441
%if 0%{?rhel} > 0
%global _prefix /opt/rh/%{make}
%else
@@ -44,10 +44,6 @@ Patch1: make-4.0-noclock_gettime.patch
# BZs #142691, #17374
Patch2: make-4.3-j8k.patch
-# Upstream commit 92ab2e642d2c04b3dcb5a736ae6193680bfd5f74
-# Remove for 4.4.1 or later
-Patch3: make-4.4-sigpipe.patch
-
# autoreconf
BuildRequires: make
BuildRequires: autoconf, automake, gettext-devel
@@ -138,6 +134,9 @@ echo ============END TESTING===========
%{_includedir}/gnumake.h
%changelog
+* Fri Mar 31 2023 DJ Delorie <dj(a)redhat.com> - 1:4.4.1-1
+- Rebase to make 4.4
+
* Mon Jan 30 2023 DJ Delorie <dj(a)redhat.com> - 1:4.4-3
- Handle SIGPIPE as a fatal signal
diff --git a/sources b/sources
index a2b6613..034a492 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-SHA512 (make-4.4.tar.gz) = 4be73f494295dcfa10034531b0d920cfdb5438bc20625f863f5c878549c140e1e67195162580c53060c3c11c67a2c739c09051f02cdd283e5aa9ebcd68975a1f
+SHA512 (make-4.4.1.tar.gz) = 145260cbd6a8226cef3dfef0c8baba31847beaebc7e6b65d39d02715fd4f4cab9b139b6c3772e550088d4f9ae80c6d3ed20b9a7664c693644dfb96b4cb60e67c
https://src.fedoraproject.org/rpms/make/c/64883e56dae1ce8ddedfc98d9449309...
1Â year, 2Â months
nucleo pushed to rpms/libpgf (rawhide). "libpgf-7.21.7"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 19:40:37 UTC
From 5b25161fc28eba01ab5a9212ec19bd4642119971 Mon Sep 17 00:00:00 2001
From: nucleo <nucleo(a)fedoraproject.org>
Date: Mar 31 2023 19:40:22 +0000
Subject: libpgf-7.21.7
---
diff --git a/.gitignore b/.gitignore
index af00b1a..b391fd3 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,3 +4,4 @@
/libpgf-6.12.27-src.tar.gz
/libpgf-6.13.45-src.tar.gz
/libpgf-src-6.14.12.tar.gz
+/libpgf.zip
diff --git a/libpgf-auto.patch b/libpgf-auto.patch
deleted file mode 100644
index c918a73..0000000
--- a/libpgf-auto.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-diff -up libpgf/configure.ac.auto libpgf/configure.ac
---- libpgf/configure.ac.auto 2014-03-21 07:51:59.000000000 -0600
-+++ libpgf/configure.ac 2015-02-23 12:28:53.125766559 -0700
-@@ -1,4 +1,5 @@
--AC_INIT(src/PGFimage.cpp)
-+AC_INIT([libpgf], [6.14.12])
-+AC_CONFIG_SRCDIR([src/PGFimage.cpp])
-
- dnl The library interface version
- dnl see documentation for versioning in the libtool manual
-@@ -24,9 +25,10 @@ PACKAGE_RELEASE=2
-
- AC_SUBST(PACKAGE_RELEASE)
-
--AM_INIT_AUTOMAKE(libpgf,6.14.12)
-+AM_INIT_AUTOMAKE
- AC_PROG_LIBTOOL
--AC_CONFIG_HEADERS( config.h )
-+AC_CONFIG_MACRO_DIR([m4])
-+AC_CONFIG_HEADERS( [config.h] )
- AC_PROG_CXX
-
- dnl Check for doxygen support
-diff -up libpgf/Makefile.am.auto libpgf/Makefile.am
---- libpgf/Makefile.am.auto 2013-10-25 05:24:18.000000000 -0600
-+++ libpgf/Makefile.am 2015-02-23 12:26:04.338856680 -0700
-@@ -19,6 +19,8 @@ RPMEXTRACONFOPT="--disable-dependency-tr
-
- RPMRELEASE=$(PACKAGE_RELEASE)
-
-+ACLOCAL_AMFLAGS = -I m4
-+
- install-data-local:: $(PACKAGE).pc
- $(mkinstalldirs) $(DESTDIR)$(libdir)/pkgconfig
- $(INSTALL) -m 644 $(PACKAGE).pc $(DESTDIR)$(libdir)/pkgconfig/$(PACKAGE).pc
-diff -up libpgf/src/Makefile.am.auto libpgf/src/Makefile.am
---- libpgf/src/Makefile.am.auto 2013-10-25 05:24:17.000000000 -0600
-+++ libpgf/src/Makefile.am 2015-02-23 12:26:04.338856680 -0700
-@@ -1,4 +1,4 @@
--INCLUDES = -I$(top_srcdir)/include # @PGFCODEC_CFLAGS@
-+AM_CPPFLAGS = -I$(top_srcdir)/include # @PGFCODEC_CFLAGS@
-
- lib_LTLIBRARIES = libpgf.la
- libpgf_la_LDFLAGS = -version-info @INTERFACE_VERSION@
diff --git a/libpgf-r147.patch b/libpgf-r147.patch
deleted file mode 100644
index ebfea0f..0000000
--- a/libpgf-r147.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-diff -up libpgf/include/PGFimage.h.r147 libpgf/include/PGFimage.h
---- libpgf/include/PGFimage.h.r147 2015-08-10 10:24:28.319204436 -0500
-+++ libpgf/include/PGFimage.h 2015-08-10 10:44:12.588655556 -0500
-@@ -538,7 +538,7 @@ private:
- ProgressMode m_progressMode; ///< progress mode used in Read and Write; PM_Relative is default mode
-
- void ComputeLevels();
-- void CompleteHeader();
-+ bool CompleteHeader();
- void RgbToYuv(int pitch, UINT8* rgbBuff, BYTE bpp, int channelMap[], CallbackPtr cb, void *data) THROW_;
- void Downsample(int nChannel);
- UINT32 UpdatePostHeaderSize() THROW_;
-diff -up libpgf/src/Decoder.cpp.r147 libpgf/src/Decoder.cpp
---- libpgf/src/Decoder.cpp.r147 2015-08-10 10:24:28.637208326 -0500
-+++ libpgf/src/Decoder.cpp 2015-08-10 10:45:04.349979345 -0500
-@@ -158,7 +158,7 @@ CDecoder::CDecoder(CPGFStream* stream, P
- if (size > 0) {
- // read post-header
- if (header.mode == ImageModeIndexedColor) {
-- ASSERT((size_t)size >= ColorTableSize);
-+ if (size < ColorTableSize) ReturnWithError(FormatCannotRead);
- // read color table
- count = expected = ColorTableSize;
- m_stream->Read(&count, postHeader.clut);
-diff -up libpgf/src/PGFimage.cpp.r147 libpgf/src/PGFimage.cpp
---- libpgf/src/PGFimage.cpp.r147 2014-03-21 07:09:10.000000000 -0500
-+++ libpgf/src/PGFimage.cpp 2015-08-10 10:45:33.371423512 -0500
-@@ -145,7 +145,7 @@ void CPGFImage::Open(CPGFStream *stream)
- m_height[0] = m_header.height;
-
- // complete header
-- CompleteHeader();
-+ if (!CompleteHeader()) ReturnWithError(FormatCannotRead);
-
- // interpret quant parameter
- if (m_header.quality > DownsampleThreshold &&
-@@ -205,7 +205,7 @@ void CPGFImage::Open(CPGFStream *stream)
- }
-
- ////////////////////////////////////////////////////////////
--void CPGFImage::CompleteHeader() {
-+bool CPGFImage::CompleteHeader() {
- if (m_header.mode == ImageModeUnknown) {
- // undefined mode
- switch(m_header.bpp) {
-@@ -261,20 +261,20 @@ void CPGFImage::CompleteHeader() {
- // change mode
- m_header.mode = ImageModeRGBA;
- }
-- ASSERT(m_header.mode != ImageModeBitmap || m_header.bpp == 1);
-- ASSERT(m_header.mode != ImageModeIndexedColor || m_header.bpp == 8);
-- ASSERT(m_header.mode != ImageModeGrayScale || m_header.bpp == 8);
-- ASSERT(m_header.mode != ImageModeGray16 || m_header.bpp == 16);
-- ASSERT(m_header.mode != ImageModeGray32 || m_header.bpp == 32);
-- ASSERT(m_header.mode != ImageModeRGBColor || m_header.bpp == 24);
-- ASSERT(m_header.mode != ImageModeRGBA || m_header.bpp == 32);
-- ASSERT(m_header.mode != ImageModeRGB12 || m_header.bpp == 12);
-- ASSERT(m_header.mode != ImageModeRGB16 || m_header.bpp == 16);
-- ASSERT(m_header.mode != ImageModeRGB48 || m_header.bpp == 48);
-- ASSERT(m_header.mode != ImageModeLabColor || m_header.bpp == 24);
-- ASSERT(m_header.mode != ImageModeLab48 || m_header.bpp == 48);
-- ASSERT(m_header.mode != ImageModeCMYKColor || m_header.bpp == 32);
-- ASSERT(m_header.mode != ImageModeCMYK64 || m_header.bpp == 64);
-+ if (m_header.mode == ImageModeBitmap && m_header.bpp != 1) return false;
-+ if (m_header.mode == ImageModeIndexedColor && m_header.bpp != 8) return false;
-+ if (m_header.mode == ImageModeGrayScale && m_header.bpp != 8) return false;
-+ if (m_header.mode == ImageModeGray16 && m_header.bpp != 16) return false;
-+ if (m_header.mode == ImageModeGray32 && m_header.bpp != 32) return false;
-+ if (m_header.mode == ImageModeRGBColor && m_header.bpp != 24) return false;
-+ if (m_header.mode == ImageModeRGBA && m_header.bpp != 32) return false;
-+ if (m_header.mode == ImageModeRGB12 && m_header.bpp != 12) return false;
-+ if (m_header.mode == ImageModeRGB16 && m_header.bpp != 16) return false;
-+ if (m_header.mode == ImageModeRGB48 && m_header.bpp != 48) return false;
-+ if (m_header.mode == ImageModeLabColor && m_header.bpp != 24) return false;
-+ if (m_header.mode == ImageModeLab48 && m_header.bpp != 48) return false;
-+ if (m_header.mode == ImageModeCMYKColor && m_header.bpp != 32) return false;
-+ if (m_header.mode == ImageModeCMYK64 && m_header.bpp != 64) return false;
-
- // set number of channels
- if (!m_header.channels) {
-@@ -300,8 +300,7 @@ void CPGFImage::CompleteHeader() {
- m_header.channels = 4;
- break;
- default:
-- ASSERT(false);
-- m_header.channels = 3;
-+ return false;
- }
- }
-
-@@ -311,6 +310,8 @@ void CPGFImage::CompleteHeader() {
- if (!m_header.usedBitsPerChannel || m_header.usedBitsPerChannel > bpc) {
- m_header.usedBitsPerChannel = bpc;
- }
-+
-+ return true;
- }
-
- //////////////////////////////////////////////////////////////////////
diff --git a/libpgf-r148.patch b/libpgf-r148.patch
deleted file mode 100644
index 04195b0..0000000
--- a/libpgf-r148.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-diff -up libpgf/src/Decoder.cpp.r148 libpgf/src/Decoder.cpp
---- libpgf/src/Decoder.cpp.r148 2015-08-10 10:46:21.632558343 -0500
-+++ libpgf/src/Decoder.cpp 2015-08-10 10:46:21.945565702 -0500
-@@ -87,29 +87,6 @@ CDecoder::CDecoder(CPGFStream* stream, P
-
- int count, expected;
-
-- // set number of threads
--#ifdef LIBPGF_USE_OPENMP
-- m_macroBlockLen = omp_get_num_procs();
--#else
-- m_macroBlockLen = 1;
--#endif
--
-- if (useOMP && m_macroBlockLen > 1) {
--#ifdef LIBPGF_USE_OPENMP
-- omp_set_num_threads(m_macroBlockLen);
--#endif
--
-- // create macro block array
-- m_macroBlocks = new(std::nothrow) CMacroBlock*[m_macroBlockLen];
-- if (!m_macroBlocks) ReturnWithError(InsufficientMemory);
-- for (int i=0; i < m_macroBlockLen; i++) m_macroBlocks[i] = new CMacroBlock();
-- m_currentBlock = m_macroBlocks[m_currentBlockIndex];
-- } else {
-- m_macroBlocks = 0;
-- m_macroBlockLen = 1; // there is only one macro block
-- m_currentBlock = new CMacroBlock();
-- }
--
- // store current stream position
- m_startPos = m_stream->GetPos();
-
-@@ -209,6 +186,30 @@ CDecoder::CDecoder(CPGFStream* stream, P
-
- // store current stream position
- m_encodedHeaderLength = UINT32(m_stream->GetPos() - m_startPos);
-+
-+ // set number of threads
-+#ifdef LIBPGF_USE_OPENMP
-+ m_macroBlockLen = omp_get_num_procs();
-+#else
-+ m_macroBlockLen = 1;
-+#endif
-+
-+ if (useOMP && m_macroBlockLen > 1) {
-+#ifdef LIBPGF_USE_OPENMP
-+ omp_set_num_threads(m_macroBlockLen);
-+#endif
-+
-+ // create macro block array
-+ m_macroBlocks = new(std::nothrow) CMacroBlock*[m_macroBlockLen];
-+ if (!m_macroBlocks) ReturnWithError(InsufficientMemory);
-+ for (int i = 0; i < m_macroBlockLen; i++) m_macroBlocks[i] = new CMacroBlock();
-+ m_currentBlock = m_macroBlocks[m_currentBlockIndex];
-+ } else {
-+ m_macroBlocks = 0;
-+ m_macroBlockLen = 1; // there is only one macro block
-+ m_currentBlock = new(std::nothrow) CMacroBlock();
-+ if (!m_currentBlock) ReturnWithError(InsufficientMemory);
-+ }
- }
-
- /////////////////////////////////////////////////////////////////////
diff --git a/libpgf.spec b/libpgf.spec
index 59b49ab..3cef85a 100644
--- a/libpgf.spec
+++ b/libpgf.spec
@@ -1,17 +1,11 @@
Name: libpgf
-Version: 6.14.12
-Release: 21%{?dist}
+Version: 7.21.7
+Release: 1%{?dist}
Summary: PGF (Progressive Graphics File) library
License: LGPLv2+
URL: http://www.libpgf.org
-Source0: http://downloads.sourceforge.net/%{name}/%{name}-src-%{version}.tar.gz
-# Modernize automake usage
-Patch0: libpgf-auto.patch
-
-## backport upstream fixes
-Patch147: libpgf-r147.patch
-Patch148: libpgf-r148.patch
+Source0: https://downloads.sourceforge.net/project/%{name}/%{name}/%{version}/libp...
BuildRequires: doxygen
BuildRequires: gcc-c++
@@ -35,11 +29,11 @@ developing applications that use %{name}.
%prep
%setup -q -n %{name}
-%patch0 -p1 -b .auto
-%patch147 -p1 -b .r147
-%patch148 -p1 -b .r148
+
+mv README.txt README
+
# Fix line endings
-sed -i -e 's/\r//' configure.ac README
+sed -i -e 's/\r//' configure.ac Makefile.am src/Makefile.am autogen.sh README
sed -i 's|$(DESTDIR)$(datadir)/doc/$(DOC_MODULE)|$(RPM_BUILD_DIR)/libpgf|g' doc/Makefile.am
@@ -61,16 +55,13 @@ export CXXFLAGS="%{optflags} -DLIBPGF_DISABLE_OPENMP -std=c++14"
%install
%make_install
-# unpackaged files
-rm -fv %{buildroot}%{_libdir}/libpgf.la
-
%ldconfig_scriptlets
%files
%doc README
%license COPYING
-%{_libdir}/libpgf.so.6*
+%{_libdir}/libpgf.so.7*
%files devel
%doc html
@@ -81,6 +72,9 @@ rm -fv %{buildroot}%{_libdir}/libpgf.la
%changelog
+* Fri Mar 31 2023 Alexey Kurov <nucleo(a)fedoraproject.org> - 7.21.7-1
+- libpgf-7.21.7
+
* Thu Jan 19 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 6.14.12-21
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
diff --git a/sources b/sources
index 19575d0..8e3a40b 100644
--- a/sources
+++ b/sources
@@ -1 +1 @@
-a2b13832e23ad9026bd249d57b6c26da libpgf-src-6.14.12.tar.gz
+SHA512 (libpgf.zip) = dbc17d9dce1afbeffb272df0d573059914d2ac79d652d1d43e67c49509fd6e643be8594bbd1a3058a5aa3a9d30db100c6dcf641051345049cf8f9375d49e2799
https://src.fedoraproject.org/rpms/libpgf/c/5b25161fc28eba01ab5a9212ec19b...
1Â year, 2Â months
tachoknight pushed to rpms/swift-lang (epel8). "Updated to Swift
5.8-RELEASE"
by notificationsï¼ fedoraproject.org
Notification time stamped 2023-03-31 19:40:04 UTC
From ed1e815a8872624ab0966d8eb46b5259b2369795 Mon Sep 17 00:00:00 2001
From: Ron Olson <tachoknight(a)gmail.com>
Date: Mar 31 2023 19:37:24 +0000
Subject: Updated to Swift 5.8-RELEASE
---
diff --git a/.gitignore b/.gitignore
index 9e4f6be..c3d26bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -56,3 +56,4 @@
/swift-numerics.tar.gz
/swift-system.tar.gz
/yams.tar.gz
+/swift-experimental-string-processing.tar.gz
diff --git a/no-test.patch b/no-test.patch
new file mode 100644
index 0000000..3df50ca
--- /dev/null
+++ b/no-test.patch
@@ -0,0 +1,11 @@
+--- swift/utils/build-presets.ini.orig 2023-02-06 19:59:52.297617075 -0600
++++ swift/utils/build-presets.ini 2023-02-06 20:00:17.131186971 -0600
+@@ -834,7 +834,7 @@
+ # Executes the lit tests for the installable package that is created
+ # Assumes the swift-integration-tests repo is checked out
+
+-test-installable-package
++#test-installable-package
+
+ # Build the benchmarks against the toolchain.
+ toolchain-benchmarks
diff --git a/sources b/sources
index a180cbf..3c588c8 100644
--- a/sources
+++ b/sources
@@ -1,34 +1,35 @@
SHA512 (cmake.tar.gz) = d00dc63627c452494f0f240792b742529a9ba00622cc69ba42bda26299dcdf0f5596e1e7e17bff0daf0543e94de1f23b37d8fce8a79e8c90aeaca10c50bd4605
-SHA512 (cmark.tar.gz) = 85274c6f22e7e719e9679da95469ad81ff671f05cc9c7d800262927f259e6fa5499086c0489157bd2c572dfa938b568a1ce790adc26dd2df548b197f14e74e20
-SHA512 (corelibs-foundation.tar.gz) = e6d5502daa688d6c4fe7691cc7d20291af5550deb3d1f63f57ba4cab69517f42a75c043caa33fe43a146a94c7258d46eac587e752a433ca448d53a18b64617e3
-SHA512 (corelibs-libdispatch.tar.gz) = 7d8f40ff7a43ac0367552855317e73e140ba7ff7d2b6494aa772ba052fd7d1a151b0122465b6a82a7e4483e8dd951e77d6b626d63e0997c9a64e3a2bc6d66250
-SHA512 (corelibs-xctest.tar.gz) = d0895f9e2bde93d163c68f517b4adfa89eed0061132157eecbcb1edb8bc8fa1bc456d108b4bf427ceb0807945fb478628bd189f55867989f9eca91f0d8361cd6
+SHA512 (cmark.tar.gz) = 429bc1400b0d16b32caaa11ec5fc2f29feffc60410ad36ce49d4c65abf58065b08b980d9598fe259ea6ca545dd469829f64b55ec9e949b429ad08c87c7906723
+SHA512 (corelibs-foundation.tar.gz) = de22d7c246c7a0aa01e5071b114597cbbef59fc3f8caf397c632214fda44c80ac3011f06f53413a107de8501959fe4c42d4f4fdaa046c9b0b1073a63f59540fc
+SHA512 (corelibs-libdispatch.tar.gz) = 913885f00c2010a88ceeb2f9414f2b39e9884ca3fd58e927248dcfafa2205560468114de5627e1225d23ea9e3a50e39670b3afd03defba3de54268653888c32c
+SHA512 (corelibs-xctest.tar.gz) = d285f73ac9054e1ca6c5f2864cfd95a05305199d3feef7ca9ea76916d20cc0221b5ce969970ed51c5b3664e0c055c7a20952a342713f08172d87c2043d8c5a27
SHA512 (icu.tar.gz) = 6902ccee36b29f31d7615d5bf5ce78e0d33744c8dcefce1aec90de7e18e384f673b4301fcca1f3cbe81f236dc250763104bff1af240621ff54b65a053ba6f6d7
-SHA512 (indexstore-db.tar.gz) = d15338505df98e807064d7064bd217110019699e1b6f5028a8b9dfd1eb44648d52192ecf0786114618b10310f6b16492b28f27f00bd68a8547817028f4810622
-SHA512 (llbuild.tar.gz) = 21179d62d930f06a3d9a907be635dd268958a36f782dbf4f1f3531dea1d28b664f95961660a2c0cf02e5d6c755294d864608e8cb7517df748deac7816754d8e0
-SHA512 (llvm-project.tar.gz) = 0183db8f8885a466f8cdac8775e4cbda10603d35f885fa97a12ccc21a1b8079b9c3ee370d5b4d88df2e68bfb0946b0f1c7c12d2ce552f7a8bd0170d4df3a39e4
+SHA512 (indexstore-db.tar.gz) = 0b331d384c3e0b78ffc88c3f791f8f0520725250d38e40065bf760100116c24f51d19765a9bc110ee4ebc3e19245209e76d36c5ea3f742779c9c828fd2941201
+SHA512 (llbuild.tar.gz) = 8ea20d9d2c16dd6062a5562324d1d9fd15f3642b7e22f9ad9715c25328e3a94a33b2fafaec3dc5ecf99f7686426f56dae99618b03537a83dd70d6002933c79a5
+SHA512 (llvm-project.tar.gz) = 9cea24ded3e5a5180f0d95ee3ccd2d4ff3403874b327f1aeb038e278c510f2ac5a4b39dc0b92f05c61183c0d39eb29ad10fee7e0f839037a10eb3af0433b7a49
SHA512 (ninja.tar.gz) = 1bca38877c70ee6613f347ffccef5adc02ba0a3947c62ae004ea97f918442b5a3de92378e4f820ae2a7676bc7609d25fbc7d41f6cfb3a61e5e4b26ec3639e403
-SHA512 (package-manager.tar.gz) = 36c556c92c6b6eccef5420f0e9e43b8922a5ccdc8580262caca260e111c45958f50856f0ac74b7021056e3ef0873c32d1157a234d128dfad9decb91344327075
-SHA512 (sourcekit-lsp.tar.gz) = 15004189d61631cdd2fb6c157d8d0e1ff79be713730a7e8dc4ce598e76599f9d90a5f2e3a4d2d99b97bb86b16278f39b75ca240aec60bef1ebaa762ff2843217
+SHA512 (package-manager.tar.gz) = 05ff587cc07015828883d8effdafc2da12836e8ef5926a54f61900fb73586fc9198988c8819f3a3ac42571d877950b20a5c12418d02fe04f293512ea2ec65a8e
+SHA512 (sourcekit-lsp.tar.gz) = 77f32a3be6247093c2c4c188b567be62c1ec7b0116fb0b311ec50f70c3809576595f009a67acc5d25b4dae65651a3627d82ffbddf0f17b0b7b28e2da4847cd0f
SHA512 (swift-argument-parser.tar.gz) = f98558f3ea1f64a0046e037911b060b39a01ef60956c3529ddece76bb38181fbcf8fa6f08d3ee579755882e4a1a684316792627aeb698b20aafcac813d86dc9f
SHA512 (swift-atomics.tar.gz) = b538a9709eadfe96831393b977add28227da65d814b248bd03effc2bb7e36fff69cca692a6fd5946a029d43ddaca9b38aee91d9abf01e09ec8e5473d07d6886f
-SHA512 (swift-cmark-gfm.zip) = 7050dce76d5143d718e2d6f6789dcb2cf3cf0a5ca545e23ab5801bcf949edf05fbf90e8931dd2157c01d4f44205e8b7312d2f930bd57b81864982b69bedde3de
SHA512 (swift-collections.tar.gz) = f603f96827051fab8376ccb9d951e57e0ddd2e8a26350419c9d7356458e278ed7a9e8f1d240f5a9141880b476d53fb3c2148bf7ec15c928514acd1eed0ffc2ca
-SHA512 (swift-crypto.tar.gz) = cf4c5a1607325ef6b38e8ad330b54e8366bc540fab20b519cb3e3b8d73052ada93a358286ede73a7b7ae58a4641c5857f1fc820db768cbcacd65b20d3e6842d2
-SHA512 (swift-docc-render-artifact.tar.gz) = 241a5c8dac9058fbecca083cec0a13bb4f7ae481da0128eeb96c3f5ace870726a5253bd85e193c5c7268a8b28ad780cd5ef75443a8085e887ae2a2bbfebcd2f4
-SHA512 (swift-docc-symbolkit.tar.gz) = 646fb22f0e0c9e66efc1d9f18c04fe92ea2bf5b3c4ab04ddbfb4df95e47727291d2f83eb53cddf49c70fce15e634bb8430aea9fff8afe490f2a825bb71979083
-SHA512 (swift-docc.tar.gz) = 8ec63b77375b7b933bac0e7b5c0b12f71bfd881a88ffca31a88c473cb210f4f9067d0fc9d45423ef61b4b85bb921a1338a47311e6045d3b915212eefc96e8aad
-SHA512 (swift-driver.tar.gz) = 13b7c28b9acf311a1bad0640600022a89acd11e99fc4ee5bf7d8e60e21bb1af916c905cd09dc6977a1b7577a66cecea9c577db26d1523d20508a7c509052c5c9
-SHA512 (swift-format.tar.gz) = fc4e7f3ecb6504ac1e74a19d19738b436fae7f1e41152a96ddd734648435ffc0b35daf309fd99141282411850c317a83d43138a79ff51465551f4aeb51493ffc
-SHA512 (swift-integration-tests.tar.gz) = 7a4ca93a59d09911cfb99202bcf2c03476e6b1d63c3d198ef1c636146a3ec8390aa275b9a54190c6168460553f1f07c0b6af311a8bdef82180e57cbb7321e46d
-SHA512 (swift-lmdb.tar.gz) = a3596def12e02b07a9b70eb44bff6ecc04126091f0dcf92abb7affc69aedc2b5ed341f42e53ebe6b02562c1fd0d58716902af2907aa29da1b1605bc85ac6a78a
-SHA512 (swift-markdown.tar.gz) = 042b2f63996ebe0c243597b4713a87ae5260fe0eef0aab1ddd1109b1322becf32e35567fe6ec6ba2bae5905c472a4df4db63b91fe170576d8e6c03a778a31c6c
+SHA512 (swift-crypto.tar.gz) = 93a1304a2ba7e7b7335f0c137339fb3ef510fd12120ed0ac1edaa678b6b013b32690d380f94936cc4bd76ce3f14f06b9e69e2eacdad6a1924749b71c08037217
+SHA512 (swift-docc-render-artifact.tar.gz) = b3ca9b9734c5ae333fb521a995a47cb8af3a4097f4d250a0ec1194dbc239adc9285065478bbd507867167122826d93fc55f15bd18717118b4474e044b9b7edb4
+SHA512 (swift-docc-symbolkit.tar.gz) = 639521f8ce28974e02d24be3270ddf39766db57d568e682a2f7c8ec31d7ee7fb0c24ddc4a2173aae2e35c4bee9e51012dae6fd46e5c9e6cec294971c8cb5bf26
+SHA512 (swift-docc.tar.gz) = 4317a94b2018a1c12f50547bd002bca47231d0fa85a0fc18fc5035bad2197bb581d55083767e9a20458b2ae331c6f47a0c4b643a25925453e2d2460dabf80366
+SHA512 (swift-driver.tar.gz) = 391a8b8ff984ed9619285605432a752c80444ffc7d6b8cbd4a1caf1e48c6d64b010ed3a68dfce054f897240c210d68c65a534cd709eb7bec950add2454bf6b10
+SHA512 (swift-experimental-string-processing.tar.gz) = 1632126dead4b5fa6d975d2cae79da9cabaf600bac4fc8e1f95b5e82a1bc382949dce6f935e556e32dedb8644c8de771897266fab74b6d7cee27e39e3f8dff9e
+SHA512 (swift-format.tar.gz) = 683850cd6035f750ff2e9e066e53cae92370cddcfadf5e4df61c646c4b5911c0c644d0652752b22f00df9753fdeb750e7d7d61c72236bc6e8753eb4958c20ec1
+SHA512 (swift-integration-tests.tar.gz) = a4b54659d77afecab1d32917f9dc595c3e7ecc6ee9d44c1e14ebc8fea0881f1ea9d9af16be65db38600da6923ac0f0cf7fffc8ed8fcc8262ef949d49c6b56845
+SHA512 (swift-lmdb.tar.gz) = bf361096ba201ecf9bdff6982b2f1ed35d4c00dd47ca4fc4dd65fa6df393249031978c007551a824d2708e2d3cce7f4b345357952f091874b95b888b27ea95e9
+SHA512 (swift-markdown.tar.gz) = 11cf2d6f23c97c0d0f017fb3ab309687d0f8726679bb5a502b538e588a6d47607cddf67c6418714dfb453fe226016903b246c439dfa9834308c2103730373c64
SHA512 (swift-nio-ssl.tar.gz) = 5ba54beb93d669715b05627455003aad29847f04886ed08fd6bcc37f3ffcb64183c033ae3220446d69bc720a3da5940f3979b8039ddbe8869d81d70a18c42e36
SHA512 (swift-nio.tar.gz) = e8b8bc5d49c92e327d660c1ee34a9bbdb169e19501211ed56765c51303905494f808d4b76ae9f9a50718db5efe337961ef6baad146197c9d7ba7a8b6c08e3a8e
SHA512 (swift-numerics.tar.gz) = 7d0d8f27d8c639f92fb652183ade9032b36f39e19b966aa734cab5b4d43ce5d342856dddd87ac1d4cd605c18583c8e629f37634e440de34ec0d5e18aa138d0ba
-SHA512 (swift-syntax.tar.gz) = a78badd0eeaeb3abbb1c1cf9b4d1d204129cb4b3235c51f831e3e1735e0f50ebc0c789944fa8cbac129de9e8dad9623383f25f533223550e0780be2a941cd4e5
+SHA512 (swift-stress-tester.tar.gz) = 9213c73dd7303ca95a42e9a5c8379a7e123bae8eec70939154008d918cbf16472a8f73f5b930e9fbd1aa0388fe93c9ddc1c64f40145808c03d36856b3dba8f8c
+SHA512 (swift-syntax.tar.gz) = 273106efe463a4105fd234c4b25671636e811ee87221f68d36a204f0c82d40dddcd75f9808ba5479bab1efc0d61bd6afc84f780aea02ac5186552b19a9777d23
SHA512 (swift-system.tar.gz) = fec08fbc352197215596974303cd7e08b46ff44b1bd36c70b95be4e7490880f4d7e645e64e90f1c81bfca06d9302c600ccc02c9f5cc7b83a69da46489b105e1c
-SHA512 (swift-tools-support-core.tar.gz) = e3d1cd64899f34285d22a79f30c5c6835810638b74830ee99926f1faee304c10b2b192d2fb7188450c7df007c93f8cdba48443e9cedeed96aff2e9283c7a67fd
-SHA512 (swift-xcode-playground-support.tar.gz) = a1309ac3ea7edb15628b93ad261958ccd27c60ccc8a36af6d224c9e94a58b172862b26689acfc1bf6efbc0a218e7857caf5f99d57ec1db158ce485224ac5dfc9
-SHA512 (swift.tar.gz) = fafa80ff4d7e55ded58b3de942d25c8a9cf24ccbdd4f949e85d9d7a1119998825cd48be6ce9121bcbeb04d1755b63617e055a73f05748339528ecf432b9946fa
+SHA512 (swift-tools-support-core.tar.gz) = cbe9f3b77fd11a8f72b5f97554d605810025a185fad7b5431cfbb703946ddf13cb8ce7f511ce6b1b9ffca141048ae988c31b68a044bfeebde86808f5e039f807
+SHA512 (swift-xcode-playground-support.tar.gz) = f66c839e4b78cdecb7f8dfac8bf78e026671cfcbc6df4c176d4f06f4c7d61bdb84988032f994628ed489941081a6073d2686852b6b3c54b984b0198d82df971d
+SHA512 (swift.tar.gz) = 3c3568b42572c37b0d5ef261bc6fbd28c0b7907ae389ec5d5be25ae6fda6e4d5582bce7c3d92551f0a0412c39bb663768ca807f199054450826ed0062776e4ea
SHA512 (yams.tar.gz) = 91feecb95d1997235e443dea925ff11fa665e94c12c8eca2ed066ef340a51ec0253df2545d91184c31423cb4b039e1f89ac8f743cf3f154c9d93495eecc45432
diff --git a/swift-lang.spec b/swift-lang.spec
index 1adda19..fac3073 100644
--- a/swift-lang.spec
+++ b/swift-lang.spec
@@ -3,18 +3,19 @@
%global linux_version fedora
+#################################################
# Make sure these are changed for every release!
-%global swift_version 5.7.3-RELEASE
-%global fedora_release 2
-%global package_version 5.7.3
+#################################################
+%global swift_version 5.8-RELEASE
+%global fedora_release 1
+%global package_version 5.8
# Set to the right version per the json file
%global swift_source_location swift-source
-%global sap_version 0.4.3
%global icu_version 65-1
%global yams_version 5.0.1
%global swift_argument_parser_version 1.0.3
-%global swift_crypto_version 1.1.5
+%global swift_crypto_version 2.2.3
%global ninja_version 1.11.1
%global cmake_version 3.19.6
%global swift_atomics_version 1.0.2
@@ -23,10 +24,11 @@
%global swift_system_version 1.1.1
%global swift_nio_version 2.31.2
%global swift_nio_ssl_version 2.15.0
-# HEY! Are you changing the version of the project below?
-# Make sure to change it in the %prep section as well in
-# the renaming part
-%global swift_cmark_gfm_branch release/5.7-gfm
+
+# Temporary I presume as the json file suggests there should
+# be eventually a release version of swift-format
+%global swift_format_version 0.50700.1
+
Name: swift-lang
Version: %{package_version}
@@ -57,7 +59,7 @@ Source18: https://github.com/apple/swift-crypto/archive/refs/tags/%{swift_
Source19: https://github.com/ninja-build/ninja/archive/refs/tags/v%{ninja_version}....
Source20: https://github.com/KitWare/CMake/archive/refs/tags/v%{cmake_version}.tar....
Source21: https://github.com/apple/swift-atomics/archive/%{swift_atomics_version}.t...
-Source22: https://github.com/apple/swift-cmark/archive/refs/heads/%{swift_cmark_gfm...
+Source22: https://github.com/apple/swift-stress-tester/archive/swift-%{swift_versio...
Source23: https://github.com/apple/swift-docc/archive/swift-%{swift_version}.tar.gz...
Source24: https://github.com/apple/swift-docc-render-artifact/archive/swift-%{swift...
Source25: https://github.com/apple/swift-docc-symbolkit/archive/swift-%{swift_versi...
@@ -66,14 +68,18 @@ Source27: https://github.com/apple/swift-numerics/archive/%{swift_numerics
Source28: https://github.com/apple/swift-system/archive/%{swift_system_version}.tar...
Source29: https://github.com/apple/swift-nio/archive/%{swift_nio_version}.tar.gz#/s...
Source30: https://github.com/apple/swift-nio-ssl/archive/%{swift_nio_ssl_version}.t...
-Source31: https://github.com/apple/swift-format/archive/swift-%{swift_version}.tar....
+%dnl Source31: https://github.com/apple/swift-format/archive/swift-%{swift_version}.tar....
+Source31: https://github.com/apple/swift-format/archive/refs/tags/%{swift_format_ve...
Source32: https://github.com/apple/swift-lmdb/archive/swift-%{swift_version}.tar.gz...
Source33: https://github.com/apple/swift-markdown/archive/swift-%{swift_version}.ta...
+Source34: https://github.com/apple/swift-experimental-string-processing/archive/swi...
+%dnl Source35: https://github.com/apple/swift-llvm-bindings/archive/swift-%{swift_versio...
Patch1: uintptr.patch
Patch2: enablelzma.patch
Patch3: fs.patch
Patch4: unusedvars.patch
+Patch5: no-test.patch
BuildRequires: clang
BuildRequires: swig
@@ -111,6 +117,7 @@ ExclusiveArch: x86_64 aarch64
Provides: swiftlang = %{version}-%{release}
+
%description
Swift is a general-purpose programming language built using
a modern approach to safety, performance, and software design
@@ -124,7 +131,7 @@ correct programs easier for the developer.
%prep
-%setup -q -c -n %{swift_source_location} -a 0 -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -a 10 -a 11 -a 12 -a 13 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 -a 20 -a 21 -a 22 -a 23 -a 24 -a 25 -a 26 -a 27 -a 28 -a 29 -a 30 -a 31 -a 32 -a 33
+%setup -q -c -n %{swift_source_location} -a 0 -a 1 -a 2 -a 3 -a 4 -a 5 -a 6 -a 7 -a 8 -a 9 -a 10 -a 11 -a 12 -a 13 -a 14 -a 15 -a 16 -a 17 -a 18 -a 19 -a 20 -a 21 -a 22 -a 23 -a 24 -a 25 -a 26 -a 27 -a 28 -a 29 -a 30 -a 31 -a 32 -a 33 -a 34
# The Swift build script requires directories to be named
# in a specific way so renaming the source directories is
# necessary
@@ -155,10 +162,12 @@ mv swift-numerics-%{swift_numerics_version} swift-numerics
mv swift-system-%{swift_system_version} swift-system
mv swift-nio-%{swift_nio_version} swift-nio
mv swift-nio-ssl-%{swift_nio_ssl_version} swift-nio-ssl
-mv swift-format-swift-%{swift_version} swift-format
+%dnl mv swift-format-swift-%{swift_version} swift-format
+mv swift-format-%{swift_format_version} swift-format
mv swift-lmdb-swift-%{swift_version} swift-lmdb
mv swift-markdown-swift-%{swift_version} swift-markdown
-mv swift-cmark-release-5.7-gfm swift-cmark-gfm
+mv swift-stress-tester-swift-%{swift_version} swift-stress-tester
+mv swift-experimental-string-processing-swift-%{swift_version} swift-experimental-string-processing
# ICU
mv icu-release-%{icu_version} icu
@@ -173,26 +182,21 @@ mv ninja-%{ninja_version} ninja
%py3_shebang_fix swift/utils/api_checker/swift-api-checker.py
%py3_shebang_fix llvm-project/compiler-rt/lib/hwasan/scripts/hwasan_symbolize
-# Fix for uintptr_t not being declared because the header wasn't
-# explicitly declared
+# Fix for uinit_ptr not being declared implicitly
%patch1 -p0
# Enable LZMA
%patch2 -p0
-# Fix for glibc defining certain structs and enums twice that are flagged
-# as redefined when including linux/fs.h
-%patch3 -p0
-
-# Fix for variable that is initialized and not used
-%patch4 -p0
+# Tests fail for some reason preventing the package from being built
+%patch5 -p0
%build
export VERBOSE=1
-# Before Fedora 34, we may not have /usr/bin/python, so we
+# EPEL8 may not have /usr/bin/python, so we
# roll our own because the build script expects there to be one.
-%if 0%{?fedora} < 34 || 0%{?el8}
+%if 0%{?el8}
if [ ! -d $PWD/binforpython ] ; then
mkdir -p $PWD/binforpython
ln -s /usr/bin/python3 $PWD/binforpython/python
@@ -233,14 +237,13 @@ export QA_SKIP_RPATHS=1
%changelog
-* Wed Jan 25 2023 Ron Olson <tachoknight(a)gmail.com> - 5.7.3-2
-- Added patch for missing includes
- Resolves: rhbz#2162626
+* Fri Mar 31 2023 Ron Olson <tachoknight(a)gmail.com> - 5.8-1
+- Updated to Swift 5.8-RELEASE
+ Resolves: rhbz#2183429
* Sat Jan 21 2023 Fedora Release Engineering <releng(a)fedoraproject.org> - 5.7.2-1.1
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
-* Fri Jan 20 2023 Ron Olson <tachoknight(a)gmail.com> - 5.7.3-1
-- Updated to Swift 5.7.3-RELEASE
- Resolves: rhbz#2162626
+* Tue Dec 27 2022 Ron Olson <tachoknight(a)gmail.com> - 5.8-1
+- Cleanup and first attempt at getting 5.8 going
* Fri Dec 16 2022 Ron Olson <tachoknight(a)gmail.com> - 5.7.2-2
- SPDX migration
* Wed Dec 14 2022 Ron Olson <tachoknight(a)gmail.com> - 5.7.2-1
https://src.fedoraproject.org/rpms/swift-lang/c/ed1e815a8872624ab0966d8eb...
1Â year, 2Â months