mirror of
https://git.proxmox.com/git/llvm-toolchain
synced 2025-08-05 06:49:19 +00:00
Enable COMPILER_RT_DEFAULT_TARGET_ONLY for all archs
This commit does two things in one go: 1) Enable COMPILER_RT_DEFAULT_TARGET_ONLY for i386 and amd64: Right now i386/amd64 are building compiler-rt for each other, in addition to themselves.: - libclang-rt-17-dev:amd64 is also shipping the i386 builtins, and Depending on libc6-i386:amd64/lib32stdc++:amd64. - libclang-rt-17-dev:i386 is also shipping the x86_64 built-ins, and Depending on libc6-amd64:i386/lib64stdc++6:i386/lib64atomic1:i386. Beyond the extra cruft in files and dependencies, this means that the amd64/i386 packages are shipping conflicting files, and dpkg is refusing to unpack one in the presence of the other (an RC bug in itself). This is also identified by the multiarch hinter with the following message: libclang-rt-17-dev conflicts on 78 files starting with /usr/lib/llvm-17/lib/clang/17/lib/linux/ on amd64 <-> i386 Let users who want to build e.g. 32-bit binaries in amd64 use multi-arch for this use case, by installing libclang-rt-17-dev:i386. The alternative would be to support multi-lib, and ship additional packages such as libclang-rt-17-dev-i386:amd64 (and vice-versa), but this feels like an overkill. Multi-lib remains still a possibility with (Debian's) clang's default, libgcc (lib32gcc/lib64gcc) as well. 2) Enable COMPILER_RT_DEFAULT_TARGET_ONLY unconditionally: This was being passed in an opt-in basis, via STAGE_ALL_CMAKE_EXTRA for the following architectures: * armel * armhf * powerpc * sparc * sparc64 * s390x * mips64el * hurd-i386 So, with i386/amd64 also opting-in, this leaves only a few remaining Debian architectures. Furthermore, upon inspecting compiler-rt/cmake/base-config-ix.cmake, it looks like the only architectures that are actually building for additional (non-default) targets are i386, amd64, powerpc (note: not ppc64el!), mips*, and arm. Turns out we've disabled that for all of them now. Therefore, pass COMPILER_RT_DEFAULT_TARGET_ONLY=ON to all architectures unconditionally, and thus reduce an additional variation factor.
This commit is contained in:
parent
e20f4b1bba
commit
400d893908
11
debian/rules
vendored
11
debian/rules
vendored
@ -173,7 +173,6 @@ export CXX=g++-$(GCC_VERSION)
|
||||
|
||||
ifneq (,$(findstring $(DEB_HOST_ARCH),armel))
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabi
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
# align arch profile with debian baseline
|
||||
# https://wiki.debian.org/ArmEabiPort
|
||||
CFLAGS_EXTRA += -march=armv5t
|
||||
@ -189,7 +188,6 @@ endif
|
||||
|
||||
ifneq (,$(findstring $(DEB_HOST_ARCH),armhf))
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=arm-linux-gnueabihf
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
# align arch profile with debian baseline
|
||||
# https://wiki.debian.org/ArmHardFloatPort#Minimum_CPU_.26_FPU
|
||||
CFLAGS_EXTRA += -march=armv7-a -mfpu=vfpv3-d16
|
||||
@ -210,7 +208,6 @@ endif
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),powerpc))
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=powerpc-linux-gnu
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
endif
|
||||
|
||||
# debug symbols OOM in Ubuntu Ubuntu and slows down build process.
|
||||
@ -222,19 +219,16 @@ endif
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),sparc))
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=sparc-linux-gnu
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLVM_PARALLEL_LINK_JOBS=4
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),sparc64))
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=sparc64-linux-gnu
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLVM_PARALLEL_LINK_JOBS=4
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),s390x))
|
||||
STAGE_ALL_CMAKE_EXTRA += -DLLVM_HOST_TRIPLE=s390x-linux-gnu
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
LIBCXX_EXCEPTIONS := OFF
|
||||
# disable compiler-rt builtins (not supported for s390x)
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
|
||||
@ -243,7 +237,6 @@ ifneq (,$(filter $(DEB_HOST_ARCH),s390x))
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),mips64el))
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_BUILD_BUILTINS=OFF
|
||||
COMPILER_RT_USE_BUILTINS_LIBRARY := OFF
|
||||
LIBCXX_USE_COMPILER_RT := OFF
|
||||
@ -258,7 +251,6 @@ ifneq (,$(filter $(DEB_HOST_ARCH),x32))
|
||||
endif
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH),hurd-i386))
|
||||
STAGE_ALL_CMAKE_EXTRA += -DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON
|
||||
endif
|
||||
|
||||
ifeq ($(shell dpkg --compare-versions $(shell dpkg-query -W -f '$${Version}' g++-$(GCC_VERSION)) ge 4.8-20121128-1~ ; echo $$?),0)
|
||||
@ -756,6 +748,7 @@ endif
|
||||
-DCOMPILER_RT_INCLUDE_TESTS=OFF \
|
||||
-DCOMPILER_RT_USE_LIBCXX=OFF \
|
||||
-DCOMPILER_RT_USE_BUILTINS_LIBRARY=$(COMPILER_RT_USE_BUILTINS_LIBRARY) \
|
||||
-DCOMPILER_RT_DEFAULT_TARGET_ONLY=ON \
|
||||
-DLIBUNWIND_USE_COMPILER_RT=ON \
|
||||
-DLIBUNWIND_INSTALL_LIBRARY=OFF \
|
||||
-DLIBCXXABI_ENABLE_EXCEPTIONS=$(LIBCXX_EXCEPTIONS) \
|
||||
@ -777,7 +770,7 @@ endif
|
||||
-DRUNTIMES_CMAKE_ARGS="-DCMAKE_C_FLAGS=$(STAGE_1_CFLAGS);-DCMAKE_CXX_FLAGS=$(STAGE_1_CXXFLAGS);-DCMAKE_EXE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_SHARED_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_MODULE_LINKER_FLAGS=$(STAGE_1_LDFLAGS);-DCMAKE_BUILD_TYPE=Release;-DLLVM_ENABLE_PER_TARGET_RUNTIME_DIR=OFF" \
|
||||
-DCLANG_ENABLE_BOOTSTRAP=ON \
|
||||
-DCLANG_BOOTSTRAP_TARGETS="$(ENABLED_STAGE2_CMAKE_BUILD_TARGETS)" \
|
||||
-DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_SUPPRESS_REGENERATION;ENABLE_LINKER_BUILD_ID;LLVM_ENABLE_PIC;LLVM_ENABLE_RTTI;LLVM_INCLUDE_GO_TESTS;LLVM_USE_RELATIVE_PATHS_IN_FILES;CLANG_DEFAULT_LINKER;CLANG_DEFAULT_CXX_STDLIB;CLANG_DEFAULT_RTLIB;COMPILER_RT_USE_LIBCXX;COMPILER_RT_USE_BUILTINS_LIBRARY;COMPILER_RT_INCLUDE_TESTS;LIBUNWIND_USE_COMPILER_RT;LIBCXXABI_ENABLE_EXCEPTIONS;LIBCXXABI_USE_COMPILER_RT;LIBCXX_USE_COMPILER_RT;LIBCXX_ENABLE_EXCEPTIONS;LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY;LIBOMP_ENABLE_RTTI;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;CLANG_FORCE_MATCHING_LIBCLANG_SOVERSION;CMAKE_C_COMPILER_LAUNCHER;CMAKE_CXX_COMPILER_LAUNCHER" \
|
||||
-DCLANG_BOOTSTRAP_PASSTHROUGH="CMAKE_INSTALL_PREFIX;CMAKE_SUPPRESS_REGENERATION;ENABLE_LINKER_BUILD_ID;LLVM_ENABLE_PIC;LLVM_ENABLE_RTTI;LLVM_INCLUDE_GO_TESTS;LLVM_USE_RELATIVE_PATHS_IN_FILES;CLANG_DEFAULT_LINKER;CLANG_DEFAULT_CXX_STDLIB;CLANG_DEFAULT_RTLIB;COMPILER_RT_USE_LIBCXX;COMPILER_RT_USE_BUILTINS_LIBRARY;COMPILER_RT_DEFAULT_TARGET_ONLY;COMPILER_RT_INCLUDE_TESTS;LIBUNWIND_USE_COMPILER_RT;LIBCXXABI_ENABLE_EXCEPTIONS;LIBCXXABI_USE_COMPILER_RT;LIBCXX_USE_COMPILER_RT;LIBCXX_ENABLE_EXCEPTIONS;LIBCXX_ENABLE_STATIC_ABI_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_STATIC_LIBRARY;LIBCXX_STATICALLY_LINK_ABI_IN_SHARED_LIBRARY;LIBOMP_ENABLE_RTTI;LLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN;CLANG_FORCE_MATCHING_LIBCLANG_SOVERSION;CMAKE_C_COMPILER_LAUNCHER;CMAKE_CXX_COMPILER_LAUNCHER" \
|
||||
-DBOOTSTRAP_CMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DBOOTSTRAP_CMAKE_C_FLAGS_RELWITHDEBINFO="$(opt_flags)" \
|
||||
-DBOOTSTRAP_CMAKE_CXX_FLAGS_RELWITHDEBINFO="$(opt_flags)" \
|
||||
|
Loading…
Reference in New Issue
Block a user