From bdfce0866c0b60c2b7968c09bf9eee061e7e8ccb Mon Sep 17 00:00:00 2001 From: Faidon Liambotis Date: Wed, 10 Jan 2024 09:32:21 +0200 Subject: [PATCH 1/2] Revert "Enable COMPILER_RT_BUILD_BUILTINS for armel" FTBFSes with: FAILED: CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o /<>/build-llvm/./bin/clang -target arm-linux-gnueabi -DVISIBILITY_HIDDEN -O3 -DNDEBUG -fno-lto -std=c11 -fPIC -fno-builtin -fvisibility=hidden -fomit-frame-pointer -DCOMPILER_RT_HAS_FLOAT16 -MD -MT CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o -MF CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o.d -o CMakeFiles/clang_rt.builtins-arm.dir/arm/sync_fetch_and_add_4.S.o -c /<>/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S In file included from /<>/compiler-rt/lib/builtins/arm/sync_fetch_and_add_4.S:14: /<>/compiler-rt/lib/builtins/arm/sync-ops.h:22:2: error: DMB is only supported on ARMv6+ 22 | #error DMB is only supported on ARMv6+ | ^ This was despite an upstream commit labeled "[compiler-rt] support armv4t". Perhaps something going on with the way we configure? Revert for the time being, until (if) someone cares. This reverts commit 1b0abffef7149d26f5c0cb6480bfc7016b1673ee. --- debian/rules | 3 +++ 1 file changed, 3 insertions(+) diff --git a/debian/rules b/debian/rules index c7bc68be..0fd35b24 100755 --- a/debian/rules +++ b/debian/rules @@ -177,6 +177,9 @@ ifneq (,$(findstring $(DEB_HOST_ARCH),armel)) # https://wiki.debian.org/ArmEabiPort CFLAGS_EXTRA += -march=armv5t CXXFLAGS_EXTRA += -march=armv5t +# disable compiler-rt builtins (not supported for baseline armel arch: armv5t) +# See http://lists.llvm.org/pipermail/llvm-dev/2016-May/099761.html + STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF COMPILER_RT_USE_BUILTINS_LIBRARY := OFF LIBCXX_USE_COMPILER_RT := OFF # disable scudo standalone (not supported for baseline armel arch: armv5t) From 9a997c558901bb11a38c53e7b3b04f4b81f115fc Mon Sep 17 00:00:00 2001 From: Faidon Liambotis Date: Wed, 10 Jan 2024 09:47:01 +0200 Subject: [PATCH 2/2] Fix i386 FTBFS resulting from COMPILER_RT_DEFAULT_TARGET_ONLY > dh_install: warning: Cannot find (any matches for) "usr/lib/llvm-17/lib/clang/17/bin/hwasan_symbolize" (tried in ., debian/tmp) hwasan_symbolize is actually an 64-bit-only feature, and was accidentally included before. Replace the arch opt-out list, with an opt-in one and a comment pointing to HWASAN_SUPPORTED_ARCH. > dh_install: warning: Cannot find (any matches for) "usr/lib/llvm-17/lib/clang/17*/lib/linux/liborc_rt*" (tried in ., debian/tmp) i386 is not in the ALL_ORC_SUPPORTED_ARCH list. Previously, the package shipped liborc_rt-x86_64.a, but since we don't ship amd64 multilib binaries anymore, remove the reference. Addresses regressions introduced with commit: 400d89390891a1e95eb15837baca64bf000a352b Enable COMPILER_RT_DEFAULT_TARGET_ONLY for all archs --- debian/clang-tools-X.Y.install.in | 3 ++- debian/libclang-rt-X.Y-dev.install.in | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/debian/clang-tools-X.Y.install.in b/debian/clang-tools-X.Y.install.in index 3002792a..d69cd402 100644 --- a/debian/clang-tools-X.Y.install.in +++ b/debian/clang-tools-X.Y.install.in @@ -61,7 +61,8 @@ usr/lib/llvm-@LLVM_VERSION@/libexec/analyze-cc usr/lib/llvm-@LLVM_VERSION@/libexec/intercept-c++ usr/lib/llvm-@LLVM_VERSION@/libexec/intercept-cc -[!armel !armhf !ppc64el !hurd-any !s390x !powerpc !ppc64 !mipsel !mips64el !sparc64 !loong64] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@/bin/hwasan_symbolize +# See compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake / HWASAN_SUPPORTED_ARCH +[amd64 arm64 riscv64] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@/bin/hwasan_symbolize clang/tools/scan-build-@LLVM_VERSION@ usr/share/clang/ clang/tools/scan-view-@LLVM_VERSION@ usr/share/clang/ diff --git a/debian/libclang-rt-X.Y-dev.install.in b/debian/libclang-rt-X.Y-dev.install.in index ebe7c0bd..be3689b8 100644 --- a/debian/libclang-rt-X.Y-dev.install.in +++ b/debian/libclang-rt-X.Y-dev.install.in @@ -7,4 +7,4 @@ 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 # See compiler-rt/cmake/Modules/AllSupportedArchDefs.cmake / ALL_ORC_SUPPORTED_ARCH -[amd64 arm64 armhf armel i386] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/linux/liborc_rt* +[amd64 arm64 armhf armel] usr/lib/llvm-@LLVM_VERSION@/lib/clang/@LLVM_VERSION@*/lib/linux/liborc_rt*