add bolt support

This commit is contained in:
Sylvestre Ledru 2022-09-22 19:13:05 +02:00
parent d2c9c9a4e8
commit 40422bb78e
7 changed files with 231 additions and 0 deletions

10
debian/bolt-X.Y.install.in vendored Normal file
View File

@ -0,0 +1,10 @@
usr/bin/llvm-bolt-@LLVM_VERSION@
usr/bin/llvm-bolt-heatmap-@LLVM_VERSION@
usr/bin/llvm-boltdiff-@LLVM_VERSION@
usr/bin/merge-fdata-@LLVM_VERSION@
usr/bin/perf2bolt-@LLVM_VERSION@
usr/lib/llvm-@LLVM_VERSION@/bin/llvm-bolt
usr/lib/llvm-@LLVM_VERSION@/bin/llvm-bolt-heatmap
usr/lib/llvm-@LLVM_VERSION@/bin/llvm-boltdiff
usr/lib/llvm-@LLVM_VERSION@/bin/merge-fdata
usr/lib/llvm-@LLVM_VERSION@/bin/perf2bolt

19
debian/control vendored
View File

@ -805,3 +805,22 @@ Description: Multi-Level Intermediate Representation library
MLIR aims to address software fragmentation, improve compilation for
heterogeneous hardware, significantly reduce the cost of building domain
specific compilers, and aid in connecting existing compilers together.
# ------------- bolt -------------
Package: bolt-15
Architecture: amd64 arm64
Depends: ${shlibs:Depends}, ${misc:Depends}, libbolt-15-dev (= ${binary:Version}),
Pre-Depends: ${misc:Pre-Depends}
Description: Post-link optimizer
TODO
Package: libbolt-15-dev
Section: libdevel
Architecture: amd64 arm64
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: Post-link optimizer
TODO

4
debian/libbolt-X.Y-dev.install.in vendored Normal file
View File

@ -0,0 +1,4 @@
usr/lib/llvm-@LLVM_VERSION@/lib/libbolt_rt_hugify.a
usr/lib/llvm-@LLVM_VERSION@/lib/libbolt_rt_instr.a
usr/lib/llvm-@LLVM_VERSION@/lib/libbolt_rt_instr_osx.a

View File

@ -0,0 +1,14 @@
Index: llvm-toolchain-15-15.0.0~+rc3/bolt/tools/merge-fdata/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.0~+rc3.orig/bolt/tools/merge-fdata/CMakeLists.txt
+++ llvm-toolchain-15-15.0.0~+rc3/bolt/tools/merge-fdata/CMakeLists.txt
@@ -9,6 +9,6 @@ add_bolt_tool(merge-fdata
set_target_properties(merge-fdata PROPERTIES FOLDER "BOLT")
# Emit relocations for BOLT meta test (bolt/test/runtime/meta-merge-fdata.test)
-if (BOLT_INCLUDE_TESTS AND UNIX AND NOT APPLE)
- target_link_options(merge-fdata PRIVATE LINKER:--emit-relocs)
-endif()
+# if (BOLT_INCLUDE_TESTS AND UNIX AND NOT APPLE)
+# target_link_options(merge-fdata PRIVATE LINKER:--emit-relocs)
+# endif()

177
debian/patches/bolt.patch vendored Normal file
View File

@ -0,0 +1,177 @@
Index: llvm-toolchain-15-15.0.1/bolt/lib/Core/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Core/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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}
)
Index: llvm-toolchain-15-15.0.1/bolt/lib/Passes/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Passes/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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}
Index: llvm-toolchain-15-15.0.1/bolt/lib/Profile/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Profile/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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
)
Index: llvm-toolchain-15-15.0.1/bolt/lib/Rewrite/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Rewrite/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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}
)
Index: llvm-toolchain-15-15.0.1/bolt/lib/RuntimeLibs/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/lib/RuntimeLibs/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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
Index: llvm-toolchain-15-15.0.1/bolt/lib/Target/AArch64/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Target/AArch64/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/bolt/lib/Target/AArch64/CMakeLists.txt
@@ -8,6 +8,8 @@ set(LLVM_LINK_COMPONENTS
add_llvm_library(LLVMBOLTTargetAArch64
AArch64MCPlusBuilder.cpp
+ DISABLE_LLVM_LINK_LLVM_DYLIB
+
DEPENDS
AArch64CommonTableGen
)
Index: llvm-toolchain-15-15.0.1/bolt/lib/Target/X86/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Target/X86/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/bolt/lib/Target/X86/CMakeLists.txt
@@ -11,6 +11,8 @@ add_llvm_library(LLVMBOLTTargetX86
X86MCPlusBuilder.cpp
X86MCSymbolizer.cpp
+ DISABLE_LLVM_LINK_LLVM_DYLIB
+
DEPENDS
X86CommonTableGen
)
Index: llvm-toolchain-15-15.0.1/bolt/lib/Utils/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/lib/Utils/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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}
Index: llvm-toolchain-15-15.0.1/bolt/tools/driver/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/tools/driver/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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}
)
Index: llvm-toolchain-15-15.0.1/bolt/tools/heatmap/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/tools/heatmap/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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
Index: llvm-toolchain-15-15.0.1/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/bolt/tools/llvm-bolt-fuzzer/CMakeLists.txt
@@ -5,4 +5,6 @@ set(LLVM_LINK_COMPONENTS
add_llvm_fuzzer(llvm-bolt-fuzzer
llvm-bolt-fuzzer.cpp
+
+ DISABLE_LLVM_LINK_LLVM_DYLIB
)
Index: llvm-toolchain-15-15.0.1/bolt/tools/merge-fdata/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/tools/merge-fdata/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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
)
Index: llvm-toolchain-15-15.0.1/bolt/unittests/Core/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/unittests/Core/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/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
Index: llvm-toolchain-15-15.0.1/bolt/unittests/Profile/CMakeLists.txt
===================================================================
--- llvm-toolchain-15-15.0.1.orig/bolt/unittests/Profile/CMakeLists.txt
+++ llvm-toolchain-15-15.0.1/bolt/unittests/Profile/CMakeLists.txt
@@ -1,5 +1,7 @@
add_bolt_unittest(ProfileTests
DataAggregator.cpp
+
+ DISABLE_LLVM_LINK_LLVM_DYLIB
)
target_link_libraries(ProfileTests

View File

@ -143,3 +143,5 @@ revert-update-doc.diff
unwind-force-pthread-dl.diff
force-sse2-compiler-rt.diff
fix-typo-1018770.diff
bolt.patch
bolt-disable-emit-relocs.patch

5
debian/rules vendored
View File

@ -268,6 +268,11 @@ ifneq (,$(filter $(DEB_HOST_ARCH),$(BINUTILS_GOLD_ARCHS)))
endif
endif
BOLT_ARCHS := amd64 arm64
ifneq (,$(filter $(DEB_HOST_ARCH),$(BOLT_ARCHS)))
PROJECTS += ;bolt
endif
CODECOVERAGE=no
ifneq (,$(filter codecoverage,$(DEB_BUILD_OPTIONS)))
# enable the code coverage