diff --git a/debian/changelog b/debian/changelog index 4f430f2f..09125514 100644 --- a/debian/changelog +++ b/debian/changelog @@ -2,6 +2,12 @@ llvm-toolchain-9 (1:9.0.1-16) unstable; urgency=medium * Only enable libomp-9-doc on supported archs + [ Adrian Bunk ] + * Fix the fuzzer build on i386. + + [ Gianfranco Costamagna ] + * Add two patches backported to fix ppc64el julia build (Closes: #974779) + -- Sylvestre Ledru Mon, 01 Mar 2021 10:44:34 +0100 llvm-toolchain-9 (1:9.0.1-15) unstable; urgency=low diff --git a/debian/patches/disable-fuzzer-compiler-rt.diff b/debian/patches/disable-fuzzer-compiler-rt.diff deleted file mode 100644 index 98155252..00000000 --- a/debian/patches/disable-fuzzer-compiler-rt.diff +++ /dev/null @@ -1,43 +0,0 @@ -Index: llvm-toolchain-9-9.0.0/compiler-rt/lib/CMakeLists.txt -=================================================================== ---- llvm-toolchain-9-9.0.0.orig/compiler-rt/lib/CMakeLists.txt -+++ llvm-toolchain-9-9.0.0/compiler-rt/lib/CMakeLists.txt -@@ -57,5 +57,8 @@ if(COMPILER_RT_BUILD_XRAY) - endif() - - if(COMPILER_RT_BUILD_LIBFUZZER) -- compiler_rt_build_runtime(fuzzer) -+ if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i386" AND -+ NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i686") -+ compiler_rt_build_runtime(fuzzer) -+ endif() - endif() -Index: llvm-toolchain-9-9.0.0/clang/runtime/CMakeLists.txt -=================================================================== ---- llvm-toolchain-9-9.0.0.orig/clang/runtime/CMakeLists.txt -+++ llvm-toolchain-9-9.0.0/clang/runtime/CMakeLists.txt -@@ -130,7 +130,7 @@ if(LLVM_BUILD_EXTERNAL_COMPILER_RT AND E - FileCheck count not llvm-nm llvm-objdump llvm-symbolizer) - - # Add top-level targets for various compiler-rt test suites. -- set(COMPILER_RT_TEST_SUITES check-fuzzer check-asan check-hwasan check-asan-dynamic check-dfsan -+ set(COMPILER_RT_TEST_SUITES check-asan check-hwasan check-asan-dynamic check-dfsan - check-lsan check-msan check-sanitizer check-tsan check-ubsan check-ubsan-minimal - check-profile check-cfi check-cfi-and-supported check-safestack check-gwp_asan) - foreach(test_suite ${COMPILER_RT_TEST_SUITES}) -Index: llvm-toolchain-9-9.0.0/compiler-rt/test/CMakeLists.txt -=================================================================== ---- llvm-toolchain-9-9.0.0.orig/compiler-rt/test/CMakeLists.txt -+++ llvm-toolchain-9-9.0.0/compiler-rt/test/CMakeLists.txt -@@ -57,7 +57,10 @@ if(COMPILER_RT_CAN_EXECUTE_TESTS) - - # OpenBSD not supporting asan, cannot run the tests - if(COMPILER_RT_BUILD_LIBFUZZER AND NOT "${CMAKE_SYSTEM_NAME}" STREQUAL "OpenBSD" AND NOT ANDROID) -- compiler_rt_test_runtime(fuzzer) -+ if(NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i386" AND -+ NOT CMAKE_HOST_SYSTEM_PROCESSOR MATCHES "i686") -+ compiler_rt_test_runtime(fuzzer) -+ endif() - endif() - - foreach(sanitizer ${COMPILER_RT_SANITIZERS_TO_BUILD}) diff --git a/debian/patches/llvm-9.0-D78196.patch b/debian/patches/llvm-9.0-D78196.patch new file mode 100644 index 00000000..a5e03c01 --- /dev/null +++ b/debian/patches/llvm-9.0-D78196.patch @@ -0,0 +1,15 @@ +diff --git a/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp b/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp +--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp ++++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp +@@ -198,6 +198,10 @@ + for (auto *Sym : UpdateOther) + if (Sym->isVariable()) + copyLocalEntry(Sym, Sym->getVariableValue()); ++ ++ // Clear the set of symbols that needs to be updated so the streamer can ++ // be reused without issues. ++ UpdateOther.clear(); + } + + private: + diff --git a/debian/patches/llvm9-D71443-PPC-MC-redef-symbol.patch b/debian/patches/llvm9-D71443-PPC-MC-redef-symbol.patch new file mode 100644 index 00000000..f6828eed --- /dev/null +++ b/debian/patches/llvm9-D71443-PPC-MC-redef-symbol.patch @@ -0,0 +1,47 @@ +From 5cd52dbfa9c60cfd12676924bed97701ee9bc4ef Mon Sep 17 00:00:00 2001 +From: Fangrui Song +Date: Thu, 12 Dec 2019 16:18:57 -0800 +Subject: [PATCH] [MC][PowerPC] Fix a crash when redefining a symbol after .set + +Fix PR44284. This is probably not valid assembly but we should not crash. + +Reviewed By: luporl, #powerpc, steven.zhang + +Differential Revision: https://reviews.llvm.org/D71443 + +(cherry picked from commit f99eedeb72644671cd584f48e4c136d47f6b0020) +--- + llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp | 3 ++- + llvm/test/MC/PowerPC/ppc64-localentry-symbols.s | 5 +++++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp +index 90c3c8d20ed..71f926c265e 100644 +--- a/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp ++++ b/llvm/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp +@@ -196,7 +196,8 @@ public: + + void finish() override { + for (auto *Sym : UpdateOther) +- copyLocalEntry(Sym, Sym->getVariableValue()); ++ if (Sym->isVariable()) ++ copyLocalEntry(Sym, Sym->getVariableValue()); + } + + private: +diff --git llvm/test/MC/PowerPC/ppc64-localentry-symbols.s llvm/test/MC/PowerPC/ppc64-localentry-symbols.s +index f1d5c5d0ab1..a663af57ad4 100644 +--- a/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s ++++ b/llvm/test/MC/PowerPC/ppc64-localentry-symbols.s +@@ -32,3 +32,8 @@ func: + nop + nop + .localentry func, 8 ++ ++## PR44284 Don't crash if err is redefined after .set ++.set err, _err ++.globl err ++err: +-- +2.26.0 + diff --git a/debian/patches/series b/debian/patches/series index 3833ee7a..c688aa14 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -136,9 +136,10 @@ D74453-riscv-atomic_cmp_xchg.diff #try-to-unbreak-thinlto.diff D67877.patch disable-lit-cpuid-install.diff -disable-fuzzer-compiler-rt.diff no-z3.patch +x86-fuzzer.patch + # bug #946874 D71028-mips-rust-test.diff python3-shebang.patch @@ -152,3 +153,7 @@ riscv64-multilib-empty.patch f8e146f3430de3a6cd904f3f3f7aa1bfaefee14c.patch 3185c30c54d0af5bffbff3bcfd721668d086ff10.patch + +# bug 974779 +llvm9-D71443-PPC-MC-redef-symbol.patch +llvm-9.0-D78196.patch diff --git a/debian/patches/x86-fuzzer.patch b/debian/patches/x86-fuzzer.patch new file mode 100644 index 00000000..1e1895e8 --- /dev/null +++ b/debian/patches/x86-fuzzer.patch @@ -0,0 +1,14 @@ +Description: fuzzer: EMULATION_ARGUMENT is also required when building on i386 for x86_64 +Author: Adrian Bunk + +--- llvm-toolchain-11-11.0.0.orig/compiler-rt/lib/fuzzer/CMakeLists.txt ++++ llvm-toolchain-11-11.0.0/compiler-rt/lib/fuzzer/CMakeLists.txt +@@ -121,6 +121,8 @@ if(OS_NAME MATCHES "Linux|Fuchsia" AND + macro(partially_link_libcxx name dir arch) + if(${arch} MATCHES "i386") + set(EMULATION_ARGUMENT "-m" "elf_i386") ++ elseif(${arch} MATCHES "x86_64") ++ set(EMULATION_ARGUMENT "-m" "elf_x86_64") + else() + set(EMULATION_ARGUMENT "") + endif()