Jiri Daněk created DISPATCH-2011:
------------------------------------
Summary: Support hwasan variant of address sanitizer on Aarch64 in
CMake
Key: DISPATCH-2011
URL: https://issues.apache.org/jira/browse/DISPATCH-2011
Project: Qpid Dispatch
Issue Type: Improvement
Affects Versions: 1.16.0
Reporter: Jiri Daněk
Assignee: Jiri Daněk
hwasan (hardware-assisted asan) is a complementary tool to the classical asan.
Both tools can catch an overlapping set of memory issues, but each has
strengths and weaknesses. HWASAN uses memory tagging (allocated memory gets
randomly assigned a "color tag", when access happens through a pointer of
different color, a failure is reported). ASAN uses buffer zones before and
after allocated memory and detects invalid accesses into these zones.
Currently, in LLVM 11, HWASAN does not work to compile Dispatch. It would be
nice if Clang 12 did work. Issue needs to be reported.
https://travis-ci.com/github/apache/qpid-dispatch/jobs/492330729#L1859
{noformat}
[ 35%] Building C object src/CMakeFiles/qpid-dispatch.dir/router_core/agent.c.o
fatal error: error in backend: Unexpected instruction
PLEASE submit a bug report to https://bugs.llvm.org/ and include the crash
backtrace, preprocessed source, and associated run script.
Stack dump:
0. Program arguments: /usr/bin/clang-11 -g -fno-omit-frame-pointer
-fsanitize=hwaddress,undefined -std=gnu99 -O2 -g -fPIC -Wall -Wpedantic
-Wno-gnu-statement-expression -fcolor-diagnostics -Werror
-Dqpid_dispatch_EXPORTS -I/home/travis/build/apache/qpid-dispatch/include
-I/home/travis/build/apache/qpid-dispatch/build/include
-I/home/travis/build/apache/qpid-dispatch/install/include
-I/usr/include/python3.8 -I/home/travis/build/apache/qpid-dispatch/src
-I/home/travis/build/apache/qpid-dispatch/src/router_core
-I/home/travis/build/apache/qpid-dispatch/build/src -DQD_MEMORY_DEBUG -DNDEBUG
-c -o CMakeFiles/qpid-dispatch.dir/router_config.c.o
/home/travis/build/apache/qpid-dispatch/src/router_config.c
1. <eof> parser at end of file
2. Per-module optimization passes
3. Running pass 'Function Pass Manager' on module
'/home/travis/build/apache/qpid-dispatch/src/router_config.c'.
4. Running pass 'HWAddressSanitizer' on function
'@qdi_router_configure_body'
#0 0x00007fa2755b542f llvm::sys::PrintStackTrace(llvm::raw_ostream&)
(/lib/x86_64-linux-gnu/libLLVM-11.so.1+0xaa642f)
#1 0x00007fa2755b3790 llvm::sys::RunSignalHandlers()
(/lib/x86_64-linux-gnu/libLLVM-11.so.1+0xaa4790)
#2 0x00007fa2755b4b7d llvm::sys::CleanupOnSignal(unsigned long)
(/lib/x86_64-linux-gnu/libLLVM-11.so.1+0xaa5b7d)
#3 0x00007fa2754fcb0a (/lib/x86_64-linux-gnu/libLLVM-11.so.1+0x9edb0a)
#4 0x00007fa2754fcaab (/lib/x86_64-linux-gnu/libLLVM-11.so.1+0x9edaab)
#5 0x00007fa2755b025e (/lib/x86_64-linux-gnu/libLLVM-11.so.1+0xaa125e)
#6 0x0000000000412932 (/usr/bin/clang-11+0x412932)
#7 0x00007fa275508b6f llvm::report_fatal_error(llvm::Twine const&, bool)
(/lib/x86_64-linux-gnu/libLLVM-11.so.1+0x9f9b6f)
#8 0x00007fa275508a48 (/lib/x86_64-linux-gnu/libLLVM-11.so.1+0x9f9a48)
#9 0x00007fa275fa050f (/lib/x86_64-linux-gnu/libLLVM-11.so.1+0x149150f)
#10 0x00007fa2756c4579 llvm::FPPassManager::runOnFunction(llvm::Function&)
(/lib/x86_64-linux-gnu/libLLVM-11.so.1+0xbb5579)
#11 0x00007fa2756c9b23 llvm::FPPassManager::runOnModule(llvm::Module&)
(/lib/x86_64-linux-gnu/libLLVM-11.so.1+0xbbab23)
#12 0x00007fa2756c4b90 llvm::legacy::PassManagerImpl::run(llvm::Module&)
(/lib/x86_64-linux-gnu/libLLVM-11.so.1+0xbb5b90)
#13 0x00007fa27b034120 clang::EmitBackendOutput(clang::DiagnosticsEngine&,
clang::HeaderSearchOptions const&, clang::CodeGenOptions const&,
clang::TargetOptions const&, clang::LangOptions const&, llvm::DataLayout
const&, llvm::Module*, clang::BackendAction,
std::unique_ptr<llvm::raw_pwrite_stream,
std::default_delete<llvm::raw_pwrite_stream> >)
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1581120)
#14 0x00007fa27b2f2076 (/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x183f076)
#15 0x00007fa27a3bd003 clang::ParseAST(clang::Sema&, bool, bool)
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x90a003)
#16 0x00007fa27b9875c8 clang::FrontendAction::Execute()
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1ed45c8)
#17 0x00007fa27b93d8c1
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&)
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1e8a8c1)
#18 0x00007fa27b9ecf50
clang::ExecuteCompilerInvocation(clang::CompilerInstance*)
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1f39f50)
#19 0x00000000004125ff cc1_main(llvm::ArrayRef<char const*>, char const*,
void*) (/usr/bin/clang-11+0x4125ff)
#20 0x0000000000410a3e (/usr/bin/clang-11+0x410a3e)
#21 0x00007fa27b671992 (/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1bbe992)
#22 0x00007fa2754fca8d
llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>)
(/lib/x86_64-linux-gnu/libLLVM-11.so.1+0x9eda8d)
#23 0x00007fa27b670ebf
clang::driver::CC1Command::Execute(llvm::ArrayRef<llvm::Optional<llvm::StringRef>
>, std::__cxx11::basic_string<char, std::char_traits<char>,
std::allocator<char> >*, bool*) const
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1bbdebf)
#24 0x00007fa27b648ccf
clang::driver::Compilation::ExecuteCommand(clang::driver::Command const&,
clang::driver::Command const*&) const
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1b95ccf)
#25 0x00007fa27b648e77
clang::driver::Compilation::ExecuteJobs(clang::driver::JobList const&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&) const
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1b95e77)
#26 0x00007fa27b65c9cc
clang::driver::Driver::ExecuteCompilation(clang::driver::Compilation&,
llvm::SmallVectorImpl<std::pair<int, clang::driver::Command const*> >&)
(/lib/x86_64-linux-gnu/libclang-cpp.so.11+0x1ba99cc)
#27 0x00000000004104e3 main (/usr/bin/clang-11+0x4104e3)
#28 0x00007fa2745f70b3 __libc_start_main
(/lib/x86_64-linux-gnu/libc.so.6+0x270b3)
#29 0x000000000040dcde _start (/usr/bin/clang-11+0x40dcde)
clang: error: clang frontend command failed with exit code 70 (use -v to see
invocation)
Ubuntu clang version 11.0.0-2~ubuntu20.04.1
Target: x86_64-pc-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
clang: note: diagnostic msg:
********************
PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang: note: diagnostic msg: /tmp/router_config-29e8f5.c
clang: note: diagnostic msg: /tmp/router_config-29e8f5.sh
clang: note: diagnostic msg:
********************
make[2]: *** [src/CMakeFiles/qpid-dispatch.dir/build.make:535:
src/CMakeFiles/qpid-dispatch.dir/router_config.c.o] Error 70
make[2]: *** Waiting for unfinished jobs....
make[1]: *** [CMakeFiles/Makefile2:1053: src/CMakeFiles/qpid-dispatch.dir/all]
Error 2
make: *** [Makefile:141: all] Error 2
The command "make -j $NPROC" failed and exited with 2 during .
Your build has been stopped.
{noformat}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]