From d24f4d88f13021fca6afe9ce9d087c71362af2cf Mon Sep 17 00:00:00 2001 From: Sylvestre Ledru Date: Sat, 24 Dec 2022 12:13:45 +0100 Subject: [PATCH] * Move the compiler-rt content into a new package called libclang-rt-X.Y-dev (including polly) * the wasm targets are shipped into libclang-rt-14-dev-wasm32 and libclang-rt-14-dev-wasm64 * libclang-common-X.Y-dev arch moved to all --- debian/changelog | 10 ++++ debian/control | 48 +++++++++++++++++-- debian/control.in | 48 +++++++++++++++++-- debian/libclang-common-X.Y-dev.install.in | 16 +++---- debian/libclang-rt-X.Y-dev-wasm32.install.in | 2 + ...ang-rt-X.Y-dev-wasm32.lintian-overrides.in | 4 ++ debian/libclang-rt-X.Y-dev-wasm64.install.in | 2 + ...ang-rt-X.Y-dev-wasm64.lintian-overrides.in | 4 ++ debian/libclang-rt-X.Y-dev.install.in | 9 ++++ .../libclang-rt-X.Y-dev.lintian-overrides.in | 2 + debian/rules | 6 ++- 11 files changed, 133 insertions(+), 18 deletions(-) create mode 100644 debian/libclang-rt-X.Y-dev-wasm32.install.in create mode 100644 debian/libclang-rt-X.Y-dev-wasm32.lintian-overrides.in create mode 100644 debian/libclang-rt-X.Y-dev-wasm64.install.in create mode 100644 debian/libclang-rt-X.Y-dev-wasm64.lintian-overrides.in create mode 100644 debian/libclang-rt-X.Y-dev.install.in create mode 100644 debian/libclang-rt-X.Y-dev.lintian-overrides.in diff --git a/debian/changelog b/debian/changelog index c55e004b..8c6c311d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,13 @@ +llvm-toolchain-14 (1:14.0.6-10~exp4) UNRELEASED; urgency=medium + + * Move the compiler-rt content into a new package called + libclang-rt-X.Y-dev (including polly) + * the wasm targets are shipped into libclang-rt-14-dev-wasm32 + and libclang-rt-14-dev-wasm64 + * libclang-common-X.Y-dev arch moved to all + + -- Sylvestre Ledru Wed, 21 Dec 2022 13:48:40 +0100 + llvm-toolchain-14 (1:14.0.6-10~exp3) experimental; urgency=medium * Transform debian/control into debian/control.in (preparation for diff --git a/debian/control b/debian/control index 90521a47..7d0c85db 100644 --- a/debian/control +++ b/debian/control @@ -16,7 +16,7 @@ Build-Depends: debhelper (>= 10.0), cmake, ninja-build, lcov, procps, help2man, zlib1g-dev, g++-multilib [amd64 i386 kfreebsd-amd64 mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32], libjs-mathjax, python3-recommonmark, - doxygen, gfortran, + doxygen, ocaml-base [amd64 arm64 armhf ppc64el riscv64 s390x] | ocaml-nox [amd64 arm64 armhf ppc64el riscv64 s390x], ocaml-findlib [amd64 arm64 armhf ppc64el riscv64 s390x], libctypes-ocaml-dev [amd64 arm64 armhf ppc64el riscv64 s390x], @@ -167,9 +167,10 @@ Description: Clang library - Development package libclang1-14. Package: libclang-common-14-dev -Architecture: any +Architecture: all Section: libdevel Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm14 (= ${binary:Version}) +Recommends: libclang-rt-14-dev (>= 14.0.6-10~exp4) Description: Clang library - Common development package 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 @@ -178,8 +179,47 @@ Description: Clang library - Common development package Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also provides most of the support of C++20. . - This package contains the Clang generic headers and some libraries - (profiling, etc). + This package contains the Clang generic headers. + +Package: libclang-rt-14-dev +Architecture: any +Multi-Arch: same +Section: libdevel +Breaks: libclang-common-14-dev (<< 14.0.6-10~exp4) +Replaces: libclang-common-14-dev (<< 14.0.6-10~exp4) +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Compiler-rt - development package + This package provides various libraries: + . + * builtins - Simple libraries that provide implementation of the + low-level target-specific hooks required by code generation + and other runtime components. + * sanitizer runtimes - AddressSanitizer, ThreadSanitizer, + UndefinedBehaviorSanitizer, MemorySanitizer, LeakSanitizer + DataFlowSanitizer, etc + * profile - Library which is used to collect coverage information. + +Package: libclang-rt-14-dev-wasm32 +Architecture: all +Multi-Arch: foreign +Section: libdevel +Breaks: libclang-common-14-dev (<< 14.0.6-10~exp4) +Replaces: libclang-common-14-dev (<< 14.0.6-10~exp4) +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: libclang-common-14-dev (>= 14.0.6-10~exp4) +Description: Compiler-rt - wasm32 builtins + Provides the compiler-rt builtins for WebAssembly 32 bits + +Package: libclang-rt-14-dev-wasm64 +Architecture: all +Multi-Arch: foreign +Section: libdevel +Breaks: libclang-common-14-dev (<< 14.0.6-10~exp4) +Replaces: libclang-common-14-dev (<< 14.0.6-10~exp4) +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: libclang-common-14-dev (>= 14.0.6-10~exp4) +Description: Compiler-rt - development package + Provides the compiler-rt builtins for WebAssembly 32 bits Package: libclang-cpp14 Section: libs diff --git a/debian/control.in b/debian/control.in index 49b1d96f..c88e3471 100644 --- a/debian/control.in +++ b/debian/control.in @@ -16,7 +16,7 @@ Build-Depends: debhelper (>= 10.0), cmake, ninja-build, lcov, procps, help2man, zlib1g-dev, g++-multilib [amd64 i386 kfreebsd-amd64 mips64 mips64el mipsel powerpc ppc64 s390 s390x sparc sparc64 x32], libjs-mathjax, python3-recommonmark, - doxygen, gfortran, + doxygen, ocaml-base [amd64 arm64 armhf ppc64el riscv64 s390x] | ocaml-nox [amd64 arm64 armhf ppc64el riscv64 s390x], ocaml-findlib [amd64 arm64 armhf ppc64el riscv64 s390x], libctypes-ocaml-dev [amd64 arm64 armhf ppc64el riscv64 s390x], @@ -167,9 +167,10 @@ Description: Clang library - Development package libclang1-@LLVM_VERSION@. Package: libclang-common-@LLVM_VERSION@-dev -Architecture: any +Architecture: all Section: libdevel Depends: ${shlibs:Depends}, ${misc:Depends}, libllvm@LLVM_VERSION@ (= ${binary:Version}) +Recommends: libclang-rt-@LLVM_VERSION@-dev (>= 14.0.6-10~exp4) Description: Clang library - Common development package 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 @@ -178,8 +179,47 @@ Description: Clang library - Common development package Clang implements all of the ISO C++ 1998, 11, 14 and 17 standards and also provides most of the support of C++20. . - This package contains the Clang generic headers and some libraries - (profiling, etc). + This package contains the Clang generic headers. + +Package: libclang-rt-@LLVM_VERSION@-dev +Architecture: any +Multi-Arch: same +Section: libdevel +Breaks: libclang-common-@LLVM_VERSION@-dev (<< 14.0.6-10~exp4) +Replaces: libclang-common-@LLVM_VERSION@-dev (<< 14.0.6-10~exp4) +Depends: ${shlibs:Depends}, ${misc:Depends} +Description: Compiler-rt - development package + This package provides various libraries: + . + * builtins - Simple libraries that provide implementation of the + low-level target-specific hooks required by code generation + and other runtime components. + * sanitizer runtimes - AddressSanitizer, ThreadSanitizer, + UndefinedBehaviorSanitizer, MemorySanitizer, LeakSanitizer + DataFlowSanitizer, etc + * profile - Library which is used to collect coverage information. + +Package: libclang-rt-@LLVM_VERSION@-dev-wasm32 +Architecture: all +Multi-Arch: foreign +Section: libdevel +Breaks: libclang-common-@LLVM_VERSION@-dev (<< 14.0.6-10~exp4) +Replaces: libclang-common-@LLVM_VERSION@-dev (<< 14.0.6-10~exp4) +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: libclang-common-@LLVM_VERSION@-dev (>= 14.0.6-10~exp4) +Description: Compiler-rt - wasm32 builtins + Provides the compiler-rt builtins for WebAssembly 32 bits + +Package: libclang-rt-@LLVM_VERSION@-dev-wasm64 +Architecture: all +Multi-Arch: foreign +Section: libdevel +Breaks: libclang-common-@LLVM_VERSION@-dev (<< 14.0.6-10~exp4) +Replaces: libclang-common-@LLVM_VERSION@-dev (<< 14.0.6-10~exp4) +Depends: ${shlibs:Depends}, ${misc:Depends} +Recommends: libclang-common-@LLVM_VERSION@-dev (>= 14.0.6-10~exp4) +Description: Compiler-rt - development package + Provides the compiler-rt builtins for WebAssembly 32 bits Package: libclang-cpp@LLVM_VERSION@ Section: libs diff --git a/debian/libclang-common-X.Y-dev.install.in b/debian/libclang-common-X.Y-dev.install.in index 303ed2ca..c856e801 100644 --- a/debian/libclang-common-X.Y-dev.install.in +++ b/debian/libclang-common-X.Y-dev.install.in @@ -1,9 +1,9 @@ -#!/usr/bin/dh-exec +#usr/lib/llvm-@LLVM_VERSION@/include/polly -usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include - -usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib -usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/*.txt -usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/share/*.txt - -[!powerpc !powerpcspe] usr/lib/llvm-@LLVM_VERSION@/lib/libPolly*.a +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/*.h +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/module.modulemap +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/xray/ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/profile/ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/ppc_wrappers/ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/openmp_wrappers/ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/cuda_wrappers/ diff --git a/debian/libclang-rt-X.Y-dev-wasm32.install.in b/debian/libclang-rt-X.Y-dev-wasm32.install.in new file mode 100644 index 00000000..2f223e7f --- /dev/null +++ b/debian/libclang-rt-X.Y-dev-wasm32.install.in @@ -0,0 +1,2 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/wasi/libclang_rt.builtins-wasm32.a + diff --git a/debian/libclang-rt-X.Y-dev-wasm32.lintian-overrides.in b/debian/libclang-rt-X.Y-dev-wasm32.lintian-overrides.in new file mode 100644 index 00000000..47b7f52f --- /dev/null +++ b/debian/libclang-rt-X.Y-dev-wasm32.lintian-overrides.in @@ -0,0 +1,4 @@ +libclang-rt-@LLVM_VERSION@-dev-wasm32: arch-independent-package-contains-binary-or-object *usr/lib/llvm-@LLVM_VERSION@/lib/* +libclang-rt-@LLVM_VERSION@-dev-wasm32: arch-dependent-file-not-in-arch-specific-directory *usr/lib/llvm-@LLVM_VERSION@/lib/* +# wasm code +libclang-rt-@LLVM_VERSION@-dev-wasm32: no-code-sections *usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/wasi/libclang_rt.builtins-wasm32.a* diff --git a/debian/libclang-rt-X.Y-dev-wasm64.install.in b/debian/libclang-rt-X.Y-dev-wasm64.install.in new file mode 100644 index 00000000..b8594282 --- /dev/null +++ b/debian/libclang-rt-X.Y-dev-wasm64.install.in @@ -0,0 +1,2 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/wasi/libclang_rt.builtins-wasm64.a + diff --git a/debian/libclang-rt-X.Y-dev-wasm64.lintian-overrides.in b/debian/libclang-rt-X.Y-dev-wasm64.lintian-overrides.in new file mode 100644 index 00000000..a3a81721 --- /dev/null +++ b/debian/libclang-rt-X.Y-dev-wasm64.lintian-overrides.in @@ -0,0 +1,4 @@ +libclang-rt-@LLVM_VERSION@-dev-wasm64: arch-independent-package-contains-binary-or-object *usr/lib/llvm-@LLVM_VERSION@/lib/* +libclang-rt-@LLVM_VERSION@-dev-wasm64: arch-dependent-file-not-in-arch-specific-directory *usr/lib/llvm-@LLVM_VERSION@/lib/* +# wasm code +libclang-rt-@LLVM_VERSION@-dev-wasm64: no-code-sections *usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/wasi/libclang_rt.builtins-wasm64.a* diff --git a/debian/libclang-rt-X.Y-dev.install.in b/debian/libclang-rt-X.Y-dev.install.in new file mode 100644 index 00000000..2116c799 --- /dev/null +++ b/debian/libclang-rt-X.Y-dev.install.in @@ -0,0 +1,9 @@ +#!/usr/bin/dh-exec + +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/share/*.txt +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/sanitizer/ +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/linux/*clang_rt* +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/README.txt +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/fuzzer/ + +[!powerpc !powerpcspe] usr/lib/llvm-@LLVM_VERSION@/lib/libPolly*.a diff --git a/debian/libclang-rt-X.Y-dev.lintian-overrides.in b/debian/libclang-rt-X.Y-dev.lintian-overrides.in new file mode 100644 index 00000000..5c99be12 --- /dev/null +++ b/debian/libclang-rt-X.Y-dev.lintian-overrides.in @@ -0,0 +1,2 @@ +libclang-rt-@LLVM_VERSION@-dev: arch-dependent-file-not-in-arch-specific-directory *usr/lib/llvm-@LLVM_VERSION@/lib/* +libclang-rt-@LLVM_VERSION@-dev: no-code-sections *usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/linux/libclang_rt.asan_static-i386.a* \ No newline at end of file diff --git a/debian/rules b/debian/rules index dff31e6c..6bfb8f81 100755 --- a/debian/rules +++ b/debian/rules @@ -490,7 +490,7 @@ preconfigure: chmod +x \ debian/clang-tools-$(LLVM_VERSION).install \ debian/libclang-$(LLVM_VERSION)-dev.install \ - debian/libclang-common-$(LLVM_VERSION)-dev.install \ + debian/libclang-rt-$(LLVM_VERSION)-dev.install \ debian/libomp-$(LLVM_VERSION)-dev.install \ debian/llvm-$(LLVM_VERSION)-dev.install \ debian/llvm-$(LLVM_VERSION)-linker-tools.install \ @@ -932,6 +932,8 @@ override_dh_auto_install: # Only run on executable, not script chrpath -d `find $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/bin/ -type f -executable -exec file -i '{}' \; | grep 'x-executable; charset=binary'|cut -d: -f1` + # To fix custom-library-search-path + chrpath -d $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION)*/lib/linux/*.so : # libclang cd debian/tmp/usr/lib/llvm-$(LLVM_VERSION)/lib/ && \ @@ -1308,6 +1310,6 @@ override_dh_auto_clean: : # for some reason, the docs are written to debian/usr and debian/man ... rm -rf debian/usr debian/man : # remove extra stamps - rm -f debian-*-build + rm -f debian-*-build override_dh_auto_install sccache-stats build_doc .PHONY: override_dh_strip preconfigure