here are the invocations for the linker step, with clang++ and clang. Indeed, only in the first case -lstdc++, this seems to be derived from the command name itself. Regarding the address sanitizer it seems that only libclang_rt.asan-x86_64.a, which seems properly installed in the correct path. Does anyone spot something suspicious ?
"/usr/bin/ld" -whole-archive /usr/local/bin/../lib/clang/3.5.0/lib/linux/libclang_rt.asan-x86_64.a -no-whole-archive -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o AswZSpreads /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/home/peter/boost_1_55_0/stage/lib -L/home/peter/quantlib/QuantLib/ql/.libs -L/usr/local/lib/clang/3.5.0/lib/linux/ -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/usr/local/bin/../lib -L/lib -L/usr/lib /tmp/AswZSpreads-f59282.o -lQuantLib -lpthread -lrt -lm -ldl -export-dynamic -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o "/usr/bin/ld" -whole-archive /usr/local/bin/../lib/clang/3.5.0/lib/linux/libclang_rt.asan-x86_64.a -no-whole-archive -z relro --hash-style=gnu --build-id --eh-frame-hdr -m elf_x86_64 -dynamic-linker /lib64/ld-linux-x86-64.so.2 -o AswZSpreads /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crt1.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/4.8/crtbegin.o -L/home/peter/boost_1_55_0/stage/lib -L/home/peter/quantlib/QuantLib/ql/.libs -L/usr/local/lib/clang/3.5.0/lib/linux/ -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/usr/local/bin/../lib -L/lib -L/usr/lib /tmp/AswZSpreads-606e7c.o -lQuantLib -lpthread -lrt -lm -ldl -export-dynamic -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed /usr/lib/gcc/x86_64-linux-gnu/4.8/crtend.o /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../x86_64-linux-gnu/crtn.o On 7 May 2014 11:11, Peter Caspers <pcaspers1...@gmail.com> wrote: > what I observe is that if I use clang (instead of clang++) for the > link step, I get a different error (undefined reference to symbol > ___cxa_free_exception@@CXXABI_1.3). I thought, that clang++ is just a > synonym for clang ? How does that magic happen ? > Thanks again > Peter > > On 7 May 2014 11:08, Peter Caspers <pcaspers1...@gmail.com> wrote: >> I tried the link step from the command line manually, but get the same >> error messages. >> In which library is __asan_memcpy expected to reside ? >> Thanks >> Peter >> >> On 6 May 2014 12:23, Jeffrey Walton <noloa...@gmail.com> wrote: >>> On Tue, May 6, 2014 at 5:36 AM, Peter Caspers <pcaspers1...@gmail.com> >>> wrote: >>>> yes, I use clang with the sanitize option to link. I have the >>>> following libs installed >>>> >>>> peter@peter-ThinkPad-W520:/usr/local/lib/clang/3.5.0/lib/linux$ ls >>>> libclang_rt.asan-x86_64.a libclang_rt.lsan-x86_64.a >>>> libclang_rt.san-x86_64.a libclang_rt.ubsan-x86_64.a >>>> libclang_rt.dfsan-x86_64.a libclang_rt.msan-x86_64.a >>>> libclang_rt.tsan-x86_64.a >>>> libclang_rt.full-x86_64.a libclang_rt.profile-x86_64.a >>>> libclang_rt.ubsan_cxx-x86_64.a >>>> >>>> You think that should work then ? >>> How do you invoke Clang? Are the sanitizer flags part of CFLAGS and >>> CXXFLAGS? >>> >>> Is this an Autools project? Sometimes you have to be creative with >>> Autotools projects. For example, you might need to do: >>> >>> export CC="clang -fsanitize=undefined -fsanitize=address" >>> export CXX="clang -fsanitize=undefined -fsanitize=address >>> -fno-sanitize=vptr" >>> >>> That's because there will sometimes be a link line that *omits* CFLAGS >>> and CXXFLAGS. For example: >>> >>> # Link using the compiler... >>> $(CC) -o $(program_name) $(OBJECTS) $(LDFLAGS) $(LDLIBS) >>> >>> On Mac OS X, I also find I need to set DYLD_FALLBACK_LIBRARY_PATH >>> before executing: >>> >>> export DYLD_FALLBACK_LIBRARY_PATH=/usr/local/lib/clang/3.4/lib/darwin/ >>> ./my_program >>> >>> I don't recall doing similar on Linux. (But I may have done it and >>> forgotten about it). >>> >>> Jeff _______________________________________________ cfe-users mailing list cfe-users@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/cfe-users