diff --git a/debian/changelog b/debian/changelog index 538ac1bc..fe41f1e5 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,16 @@ +llvm-toolchain-18 (1:18.1.0~rc2-5) UNRELEASED; urgency=medium + + [ John Paul Adrian Glaubitz ] + * Install *clang_rt* on sparc and sparc64 + * Run chrpath for libclang on sparc and sparc64 + + [ Sylvestre Ledru ] + * add -DLIBCXX_INSTALL_MODULES=ON to install libc++ C++-20 modules + see https://discourse.llvm.org/t/libc-c-23-module-installation-support/77061/1 + * Add a new package libllvmlibc-18-dev to ship LLVM libc (experimental for now) + + -- Sylvestre Ledru Mon, 19 Feb 2024 16:21:34 +0100 + llvm-toolchain-18 (1:18.1.0~rc2-4) unstable; urgency=medium * Fix 32bit builds, exclude i386, don't build clang-rt there diff --git a/debian/control b/debian/control index 9a2d05f1..ac49168e 100644 --- a/debian/control +++ b/debian/control @@ -956,3 +956,13 @@ Description: Flang library - Development package of examples, some functionalities are still missing. . This package contains the flang libraries and headers. + +# ------------- LLVM libc ------------- + +Package: libllvmlibc-18-dev +Section: libdevel +Architecture: any +Description: LLVM C Library - dev package + Implementation of the C standard library targeting C17 and above. + . + This is an experimental project. Don't use in production. diff --git a/debian/control.in b/debian/control.in index 94402b28..df9b6180 100644 --- a/debian/control.in +++ b/debian/control.in @@ -956,3 +956,13 @@ Description: Flang library - Development package of examples, some functionalities are still missing. . This package contains the flang libraries and headers. + +# ------------- LLVM libc ------------- + +Package: libllvmlibc-@LLVM_VERSION@-dev +Section: libdevel +Architecture: any +Description: LLVM C Library - dev package + Implementation of the C standard library targeting C17 and above. + . + This is an experimental project. Don't use in production. diff --git a/debian/libc++-X.Y-dev.install.in b/debian/libc++-X.Y-dev.install.in index b3ac19c1..1a4d26ee 100644 --- a/debian/libc++-X.Y-dev.install.in +++ b/debian/libc++-X.Y-dev.install.in @@ -3,3 +3,9 @@ usr/lib/llvm-@LLVM_VERSION@/lib/libc++.a usr/lib/llvm-@LLVM_VERSION@/include/c++/ usr/lib/llvm-@LLVM_VERSION@/include/c++/v1/ usr/lib/llvm-@LLVM_VERSION@/lib/libc++experimental.a + +# C++ modules +usr/lib/llvm-@LLVM_VERSION@/lib/libc++.modules.json +usr/lib/llvm-@LLVM_VERSION@/share/libc++/v1/std.compat/*.inc +usr/lib/llvm-@LLVM_VERSION@/share/libc++/v1/*.cppm +usr/lib/llvm-@LLVM_VERSION@/share/libc++/v1/std/*.inc diff --git a/debian/libclang-rt-X.Y-dev.install.in b/debian/libclang-rt-X.Y-dev.install.in index 8b973ead..cd2a8425 100644 --- a/debian/libclang-rt-X.Y-dev.install.in +++ b/debian/libclang-rt-X.Y-dev.install.in @@ -2,7 +2,7 @@ usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/share/*.txt usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/sanitizer/ -[!sparc !sparc64] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/*/*clang_rt* +usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/*/*clang_rt* usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/README.txt usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/fuzzer/ usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/include/orc/c_api.h diff --git a/debian/libllvmlibc-X.Y-dev.install.in b/debian/libllvmlibc-X.Y-dev.install.in new file mode 100644 index 00000000..cd6c1add --- /dev/null +++ b/debian/libllvmlibc-X.Y-dev.install.in @@ -0,0 +1 @@ +usr/lib/llvm-@LLVM_VERSION@/lib/libllvmlibc.a diff --git a/debian/rules b/debian/rules index f17d6299..b298f9e3 100755 --- a/debian/rules +++ b/debian/rules @@ -25,15 +25,15 @@ LLVM_VERSION_NEXT := $(shell echo $(LLVM_VERSION_FULL) | awk -F. '{ OFS="."; $$N # disable fixfilepath in favor of the llvm-project supplied flavor, disable lto # remove +time64,+lfs once the time64_t transition starts ifeq ($(DEB_HOST_ARCH),i386) - RUNTIMES = compiler-rt;libcxx;libcxxabi + RUNTIMES = compiler-rt;libcxx;libcxxabi;libc export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto else ifeq ($(DEB_HOST_ARCH_BITS),32) - RUNTIMES = libcxx;libcxxabi + RUNTIMES = libcxx;libcxxabi;libc export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto abi=+time64,+lfs skip_packages = -Nlibclang-rt-$(LLVM_VERSION)-dev else - RUNTIMES = compiler-rt;libcxx;libcxxabi + RUNTIMES = compiler-rt;libcxx;libcxxabi;libc ifeq ($(DEB_HOST_ARCH),mips64el) export DEB_BUILD_MAINT_OPTIONS = reproducible=-fixfilepath,-fixdebugpath optimize=-lto hardening=-stackprotector,-stackprotectorstrong else @@ -563,7 +563,7 @@ ifneq (,$(filter coverity,$(DEB_BUILD_OPTIONS))) endif # enables cmake build targets like stage2-[target_name] -ENABLED_STAGE2_CMAKE_BUILD_TARGETS = check-all;check-llvm;check-clang;check-clang-tools;check-lld;check-libcxx;check-libcxxabi;check-mlir;check-sanitizer;llvm-config;test-suite +ENABLED_STAGE2_CMAKE_BUILD_TARGETS = check-all;check-llvm;check-clang;check-clang-tools;check-lld;check-libcxx;check-libcxxabi;check-mlir;check-libc;check-sanitizer;llvm-config;test-suite %: dh $@ $(DH_OPTIONS) @@ -791,6 +791,8 @@ endif -DLIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY=ON \ -DLIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY=OFF \ -DLIBCXX_INSTALL_LIBRARY=OFF \ + -DLIBCXX_INSTALL_MODULES=ON \ + -DBOOTSTRAP_LIBCXX_INSTALL_MODULES=ON \ -DOPENMP_ENABLE_LIBOMP_PROFILING=OFF \ -DOPENMP_ENABLE_LIBOMPTARGET_PROFILING=OFF \ -DLIBOMP_ENABLE_RTTI=OFF \ @@ -1142,7 +1144,7 @@ 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` -ifeq (,$(filter $(DEB_HOST_ARCH), powerpc powerpcspe sparc sparc64)) +ifeq (,$(filter $(DEB_HOST_ARCH), powerpc powerpcspe)) ifneq (,$(filter $(DEB_HOST_ARCH_OS),linux)) # To fix custom-library-search-path chrpath -d $(DEB_INST)/usr/lib/llvm-$(LLVM_VERSION)/lib/clang/$(LLVM_VERSION)*/lib/linux/*.so || true @@ -1481,6 +1483,9 @@ endif # Libcxx ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-libcxx || true +# Libc + ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-libc || true + # Libcxxabi ninja $(VERBOSE) -C $(TARGET_BUILD_STAGE2) check-libcxxabi || true