Package: src:llvm-toolchain-12 Version: 1:12.0.0~++rc5-1 Tags: patch The files libLTO.so.12 LLVMgold.so and LLVMPolly.so are currently shipped in llvm-12-dev. Shipping plugins in a -dev package is not ideal, and these are required when calling clang -flto.
As discussed, split them out into it's own package, and let both clang-12 and llvm-12 depend on it. Note that the new install file need x permissions. Maybe also ship the linker tools llvm-{ar,ranlib,objcopy,nm} in that new package. Two unrelated changes in the patch: - better clean the debian directory - build with optimize=-lto.
* Split out a llvm-12-linker-tools package, and let both clang-12 and llvm-12 depend on it. * Clean files generated from *.in files, and clean debian/{man,usr}. diff -Nru llvm-toolchain-12-12.0.0~++rc5/debian/control llvm-toolchain-12-12.0.0~++rc5/debian/control --- llvm-toolchain-12-12.0.0~++rc5/debian/control 2021-03-29 11:35:05.000000000 +0000 +++ llvm-toolchain-12-12.0.0~++rc5/debian/control 2021-04-14 11:26:45.000000000 +0000 @@ -31,10 +31,13 @@ Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, ${dep:devlibs}, ${dep:devlibs-objc}, libclang-common-12-dev (= ${binary:Version}), + llvm-12-linker-tools (= ${binary:Version}), libclang1-12 (= ${binary:Version}), libc6-dev, binutils Provides: c-compiler, objc-compiler, c++-compiler Recommends: llvm-12-dev, python3, libomp-12-dev Suggests: clang-12-doc +Breaks: llvm-12-dev (<< 1:12.0.0~++rc5-1ubuntu1) +Replaces: llvm-12-dev (<< 1:12.0.0~++rc5-1ubuntu1) Description: C, C++ and Objective-C compiler Clang project is a C, C++, Objective C and Objective C++ front-end based on the LLVM compiler. Its goal is to offer a replacement to the @@ -279,10 +282,24 @@ . This package contains the LLVM runtime library. +Package: llvm-12-linker-tools +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends} +Breaks: llvm-12-dev (<< 1:12.0.0~++rc5-1ubuntu2), clang-12 (<< 1:12.0.0~++rc5-1ubuntu2) +Replaces: llvm-12-dev (<< 1:12.0.0~++rc5-1ubuntu2), clang-12 (<< 1:12.0.0~++rc5-1ubuntu2) +Description: Modular compiler and toolchain technologies + LLVM is a collection of libraries and tools that make it easy to build + compilers, optimizers, just-in-time code generators, and many other + compiler-related programs. + . + This package contains the LLVMgold and LLVMPolly linker plugins. + Package: llvm-12 Architecture: any Suggests: llvm-12-doc -Depends: llvm-12-runtime (= ${binary:Version}), ${shlibs:Depends}, ${misc:Depends} +Depends: llvm-12-runtime (= ${binary:Version}), + llvm-12-linker-tools (= ${binary:Version}), + ${shlibs:Depends}, ${misc:Depends} Recommends: llvm-12-dev Description: Modular compiler and toolchain technologies LLVM is a collection of libraries and tools that make it easy to build diff -Nru llvm-toolchain-12-12.0.0~++rc5/debian/llvm-X.Y-dev.install.in llvm-toolchain-12-12.0.0~++rc5/debian/llvm-X.Y-dev.install.in --- llvm-toolchain-12-12.0.0~++rc5/debian/llvm-X.Y-dev.install.in 2021-01-27 14:48:30.000000000 +0000 +++ llvm-toolchain-12-12.0.0~++rc5/debian/llvm-X.Y-dev.install.in 2021-04-13 11:31:04.000000000 +0000 @@ -2,10 +2,9 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM*.a #usr/lib/llvm-@LLVM_VERSION@/lib/libllvm*.a -[!powerpc !powerpcspe] usr/lib/llvm-@LLVM_VERSION@/lib/LLVM*.so usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM.so usr/lib/llvm-@LLVM_VERSION@/lib/libLLVM-@LLVM_VERSION@*.so -usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.* +usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.so usr/lib/llvm-@LLVM_VERSION@/lib/libRemarks.* usr/lib/llvm-@LLVM_VERSION@/include/llvm/ usr/include/llvm-@LLVM_VERSION@/ usr/lib/llvm-@LLVM_VERSION@/include/llvm-c/ usr/include/llvm-c-@LLVM_VERSION@/ diff -Nru llvm-toolchain-12-12.0.0~++rc5/debian/llvm-X.Y-linker-tools.install.in llvm-toolchain-12-12.0.0~++rc5/debian/llvm-X.Y-linker-tools.install.in --- llvm-toolchain-12-12.0.0~++rc5/debian/llvm-X.Y-linker-tools.install.in 1970-01-01 00:00:00.000000000 +0000 +++ llvm-toolchain-12-12.0.0~++rc5/debian/llvm-X.Y-linker-tools.install.in 2021-04-14 11:28:58.000000000 +0000 @@ -0,0 +1,4 @@ +#!/usr/bin/dh-exec + +usr/lib/llvm-@LLVM_VERSION@/lib/libLTO.so.@LLVM_VERSION@ +[!powerpc !powerpcspe] usr/lib/llvm-@LLVM_VERSION@/lib/LLVM*.so diff -Nru llvm-toolchain-12-12.0.0~++rc5/debian/patches/clang-default-x86-64-v2.diff llvm-toolchain-12-12.0.0~++rc5/debian/patches/clang-default-x86-64-v2.diff --- llvm-toolchain-12-12.0.0~++rc5/debian/patches/clang-default-x86-64-v2.diff 1970-01-01 00:00:00.000000000 +0000 +++ llvm-toolchain-12-12.0.0~++rc5/debian/patches/clang-default-x86-64-v2.diff 2021-04-13 11:31:04.000000000 +0000 @@ -0,0 +1,11 @@ +--- a/clang/lib/Driver/ToolChains/Arch/X86.cpp ++++ b/clang/lib/Driver/ToolChains/Arch/X86.cpp +@@ -91,7 +91,7 @@ std::string x86::getX86TargetCPU(const A + + // Everything else goes to x86-64 in 64-bit mode. + if (Is64Bit) +- return "x86-64"; ++ return "x86-64-v2"; + + switch (Triple.getOS()) { + case llvm::Triple::NetBSD: diff -Nru llvm-toolchain-12-12.0.0~++rc5/debian/rules llvm-toolchain-12-12.0.0~++rc5/debian/rules --- llvm-toolchain-12-12.0.0~++rc5/debian/rules 2021-04-05 10:01:22.000000000 +0000 +++ llvm-toolchain-12-12.0.0~++rc5/debian/rules 2021-04-14 12:25:40.000000000 +0000 @@ -65,7 +65,7 @@ # Ensure fixfilepath feature is disabled. The fixfilepath feature # sets a -ffile-prefix-map flag, which is only supported in clang-10. -export DEB_BUILD_MAINT_OPTIONS=reproducible=-fixfilepath +export DEB_BUILD_MAINT_OPTIONS=reproducible=-fixfilepath optimize=-lto # Cxx flags for building libcxx and libcxxabi LIBCXXFLAGS := $(shell dpkg-buildflags --get CXXFLAGS) $(shell dpkg-buildflags --get CPPFLAGS) @@ -329,7 +329,13 @@ done # Make install file executable for dh-exec - chmod +x debian/llvm-$(LLVM_VERSION)-dev.install debian/libclang-common-$(LLVM_VERSION)-dev.install debian/clang-tools-$(LLVM_VERSION).install debian/libomp-$(LLVM_VERSION)-dev.install + chmod +x \ + debian/clang-$(LLVM_VERSION).install \ + debian/clang-tools-$(LLVM_VERSION).install \ + debian/libclang-common-$(LLVM_VERSION)-dev.install \ + debian/libomp-$(LLVM_VERSION)-dev.install \ + debian/llvm-$(LLVM_VERSION)-dev.install \ + debian/llvm-$(LLVM_VERSION)-linker-tools.install # DH doesn't support the [power ...] in install on Ubuntu trusty # fails with cp: cannot stat 'debian/tmp/[!powerpc': No such file or directory @@ -910,5 +916,11 @@ if test -f lld/docs/ld.lld-$(LLVM_VERSION).1; then \ mv lld/docs/ld.lld-$(LLVM_VERSION).1 lld/docs/ld.lld.1; \ fi + for f in debian/*.in; do \ + f2=$$(echo $$f | sed 's/\.in$$//;s/X\.Y/$(LLVM_VERSION)/'); \ + rm -f $$f2; \ + done + : # for some reason, the docs are written to debian/usr and debian/man ... + rm -rf debian/usr debian/man .PHONY: override_dh_strip preconfigure debian-full-build debian-libfuzzer-build debian-libcxx-build debian-libcxxabi-build