Hello everybody, after moving from OS X to Linux build llvm with asan enabled (I also updated to trunk, but not sure if that's related). However, it's totally possible that I missed a step that I took back when I set this up for me, so I might be doing something very stupid. Anyway, I'm configuring LLVM with ../configure --prefix=/home/kfischer/julia/usr --build=x86_64-pc-linux-gnu FC=gfortran CC="/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang -fsanitize=address" CXX="/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang++" -fsanitize=address --disable-profiling --enable-shared --enable-static --enable-targets=host --disable-bindings --disable-docs --enable-assertions --enable-optimized --disable-threads in a different directory (build_Release+Asserts+Sanitize). As you can see I'm bootstrapping this through a different copy of clang I just built. However, now I'm getting tons of undefined reference to `__asan_report_store8' even though the command the failing command being invoked is /home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang++ -fsanitize=address -O3 -Wl,-R -Wl,'$ORIGIN' -rdynamic -L/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib -L/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib -shared -o /home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib/ libLLVM-3.5svn.so -Wl,--whole-archive -lLLVMAnalysis -lLLVMAsmParser -lLLVMAsmPrinter -lLLVMBitReader -lLLVMBitWriter -lLLVMCodeGen -lLLVMCore -lLLVMDebugInfo -lLLVMExecutionEngine -lLLVMInstCombine -lLLVMInstrumentation -lLLVMInterpreter -lLLVMipa -lLLVMipo -lLLVMIRReader -lLLVMLinker -lLLVMLTO -lLLVMMC -lLLVMMCDisassembler -lLLVMMCJIT -lLLVMMCParser -lLLVMObjCARCOpts -lLLVMObject -lLLVMOption -lLLVMRuntimeDyld -lLLVMScalarOpts -lLLVMSelectionDAG -lLLVMSupport -lLLVMTarget -lLLVMTransformUtils -lLLVMVectorize -lLLVMX86AsmParser -lLLVMX86AsmPrinter -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Disassembler -lLLVMX86Info -lLLVMX86Utils -Wl,--no-whole-archive -Wl,--soname, libLLVM-3.5svn.so -Wl,--no-undefined -lz -ltinfo -lm Am I doing something stupid? Thanks, Keno -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131120/e71db1bd/attachment.html>
On Thu, Nov 21, 2013 at 6:18 AM, Keno Fischer <kfischer at csail.mit.edu> wrote:> Hello everybody, > > after moving from OS X to Linux build llvm with asan enabledSorry, I failed to parse this. You're compiling Clang on Linux, and OSX is unrelated, right?> (I also updated > to trunk, but not sure if that's related). However, it's totally possible > that I missed a step that I took back when I set this up for me, so I might > be doing something very stupid. Anyway, I'm configuring LLVM with > > ../configure --prefix=/home/kfischer/julia/usr --build=x86_64-pc-linux-gnu > FC=gfortran > CC="/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang > -fsanitize=address" > CXX="/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang++" > -fsanitize=address --disable-profiling --enable-shared --enable-static > --enable-targets=host --disable-bindings --disable-docs --enable-assertions > --enable-optimized --disable-threadsSo you're building Clang with -fsanitize=address. Note: you won't be able to build libsanitizer this way.> in a different directory (build_Release+Asserts+Sanitize). As you can see > I'm bootstrapping this through a different copy of clang I just built. > However, now I'm getting tons of > undefined reference to `__asan_report_store8' > even though the command the failing command being invoked is > > /home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang++ > -fsanitize=address -O3 -Wl,-R -Wl,'$ORIGIN' -rdynamic > -L/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib > -L/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib > -shared -o > /home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib/libLLVM-3.5svn.so > -Wl,--whole-archive -lLLVMAnalysis -lLLVMAsmParser -lLLVMAsmPrinter > -lLLVMBitReader -lLLVMBitWriter -lLLVMCodeGen -lLLVMCore -lLLVMDebugInfo > -lLLVMExecutionEngine -lLLVMInstCombine -lLLVMInstrumentation > -lLLVMInterpreter -lLLVMipa -lLLVMipo -lLLVMIRReader -lLLVMLinker -lLLVMLTO > -lLLVMMC -lLLVMMCDisassembler -lLLVMMCJIT -lLLVMMCParser -lLLVMObjCARCOpts > -lLLVMObject -lLLVMOption -lLLVMRuntimeDyld -lLLVMScalarOpts > -lLLVMSelectionDAG -lLLVMSupport -lLLVMTarget -lLLVMTransformUtils > -lLLVMVectorize -lLLVMX86AsmParser -lLLVMX86AsmPrinter -lLLVMX86CodeGen > -lLLVMX86Desc -lLLVMX86Disassembler -lLLVMX86Info -lLLVMX86Utils > -Wl,--no-whole-archive -Wl,--soname,libLLVM-3.5svn.so -Wl,--no-undefined -lz > -ltinfo -lmCan you please add -v to the command line to see the ld invocation line? You'll need to locate the ASan runtime library and check whether it's a 32-bit one and if __asan_report_store8 is present in its symbol table.> Am I doing something stupid? > Thanks, > Keno > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-- Alexander Potapenko Software Engineer Google Moscow
What I meant to say was that it worked for me on OS X on a slightly older version of LLVM. Anyway, here's the ld line: "/usr/bin/ld" -export-dynamic -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -shared -o /home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib/ libLLVM-3.5svn.so/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbeginS.o -L/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib -L/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib -L/usr/lib/gcc/x86_64-linux-gnu/4.8 -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu -L/lib/x86_64-linux-gnu -L/lib/../lib64 -L/usr/lib/x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/4.8/../../.. -L/lib -L/usr/lib -R "\$ORIGIN" --whole-archive -lLLVMAnalysis -lLLVMAsmParser -lLLVMAsmPrinter -lLLVMBitReader -lLLVMBitWriter -lLLVMCodeGen -lLLVMCore -lLLVMDebugInfo -lLLVMExecutionEngine -lLLVMInstCombine -lLLVMInstrumentation -lLLVMInterpreter -lLLVMipa -lLLVMipo -lLLVMIRReader -lLLVMLinker -lLLVMLTO -lLLVMMC -lLLVMMCDisassembler -lLLVMMCJIT -lLLVMMCParser -lLLVMObjCARCOpts -lLLVMObject -lLLVMOption -lLLVMRuntimeDyld -lLLVMScalarOpts -lLLVMSelectionDAG -lLLVMSupport -lLLVMTarget -lLLVMTransformUtils -lLLVMVectorize -lLLVMX86AsmParser -lLLVMX86AsmPrinter -lLLVMX86CodeGen -lLLVMX86Desc -lLLVMX86Disassembler -lLLVMX86Info -lLLVMX86Utils --no-whole-archive --soname libLLVM-3.5svn.so --no-undefined -lz -ltinfo -lm -lstdc++ -lm -lgcc_s -lc -lgcc_s /usr/lib/gcc/x86_64-linux-gnu/4.8/crtendS.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o It doesn't seem to be linking the asan runtime which seems weird since I'm passing -faddress=sanitize. On Thu, Nov 21, 2013 at 5:24 AM, Alexander Potapenko <glider at google.com>wrote:> On Thu, Nov 21, 2013 at 6:18 AM, Keno Fischer <kfischer at csail.mit.edu> > wrote: > > Hello everybody, > > > > after moving from OS X to Linux build llvm with asan enabled > Sorry, I failed to parse this. You're compiling Clang on Linux, and > OSX is unrelated, right? > > (I also updated > > to trunk, but not sure if that's related). However, it's totally possible > > that I missed a step that I took back when I set this up for me, so I > might > > be doing something very stupid. Anyway, I'm configuring LLVM with > > > > ../configure --prefix=/home/kfischer/julia/usr > --build=x86_64-pc-linux-gnu > > FC=gfortran > > > CC="/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang > > -fsanitize=address" > > > CXX="/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang++" > > -fsanitize=address --disable-profiling --enable-shared --enable-static > > --enable-targets=host --disable-bindings --disable-docs > --enable-assertions > > --enable-optimized --disable-threads > So you're building Clang with -fsanitize=address. Note: you won't be > able to build libsanitizer this way. > > > in a different directory (build_Release+Asserts+Sanitize). As you can see > > I'm bootstrapping this through a different copy of clang I just built. > > However, now I'm getting tons of > > undefined reference to `__asan_report_store8' > > even though the command the failing command being invoked is > > > > > /home/kfischer/julia/deps/llvm-svn/build_Release+Asserts/Release+Asserts/bin/clang++ > > -fsanitize=address -O3 -Wl,-R -Wl,'$ORIGIN' -rdynamic > > > -L/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib > > > -L/home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib > > -shared -o > > > /home/kfischer/julia/deps/llvm-svn/build_Release+Asserts+Sanitize/Release+Asserts/lib/ > libLLVM-3.5svn.so > > -Wl,--whole-archive -lLLVMAnalysis -lLLVMAsmParser -lLLVMAsmPrinter > > -lLLVMBitReader -lLLVMBitWriter -lLLVMCodeGen -lLLVMCore -lLLVMDebugInfo > > -lLLVMExecutionEngine -lLLVMInstCombine -lLLVMInstrumentation > > -lLLVMInterpreter -lLLVMipa -lLLVMipo -lLLVMIRReader -lLLVMLinker > -lLLVMLTO > > -lLLVMMC -lLLVMMCDisassembler -lLLVMMCJIT -lLLVMMCParser > -lLLVMObjCARCOpts > > -lLLVMObject -lLLVMOption -lLLVMRuntimeDyld -lLLVMScalarOpts > > -lLLVMSelectionDAG -lLLVMSupport -lLLVMTarget -lLLVMTransformUtils > > -lLLVMVectorize -lLLVMX86AsmParser -lLLVMX86AsmPrinter -lLLVMX86CodeGen > > -lLLVMX86Desc -lLLVMX86Disassembler -lLLVMX86Info -lLLVMX86Utils > > -Wl,--no-whole-archive -Wl,--soname,libLLVM-3.5svn.so-Wl,--no-undefined -lz > > -ltinfo -lm > > Can you please add -v to the command line to see the ld invocation line? > You'll need to locate the ASan runtime library and check whether it's > a 32-bit one and if __asan_report_store8 is present in its symbol > table. > > Am I doing something stupid? > > Thanks, > > Keno > > > > > > _______________________________________________ > > LLVM Developers mailing list > > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > > > > > > -- > Alexander Potapenko > Software Engineer > Google Moscow >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131121/7d337b41/attachment.html>