On Sat 17 Dec 2022 at 19:03:58 +0100, Rhialto wrote: > Anyway, this still doesn't produce a working sanitizer in the end. > Although libasan and libusan are now built, they still miss something. > A small test with a known-working case from gcc8 now has a link error: > > /usr/bin/ld: /usr/pkg/gcc10/lib/gcc/x86_64--netbsd/10.4.0/../../../libasan.so: undefined reference to `__sanitizer::StopTheWorld(void (*)(__sanitizer::SuspendedThreadsList const&, void*), void*)' > collect2: error: ld returned 1 exit status Fixing that with adding another missing netbsd file in the same Makefile.{am,in} that was patched before adds this. Next two hurdles: This sanitizer is not compatible with enabled ASLR ==19445==ASan runtime does not come first in initial library list; you should either link runtime to your application or manually preload it with LD_PRELOAD. The first seems a new limitation? In any case this makes the sanitizer a lot less useful. The second one, I've seen it before and I never managed to solve it myself; sometimes it seems to go away or come back, not depending on what I do. Somehow I get this again when I recompile my test with gcc8. Setting LD_PRELOAD=/usr/pkg/gcc10//lib/./libasan.so. causes a SEGV. This makes the sanitizer useless. -Olaf. -- ___ "Buying carbon credits is a bit like a serial killer paying someone else to \X/ have kids to make his activity cost neutral." -The BOFH falu.nl@rhialto
Attachment:
signature.asc
Description: PGP signature