I checked the link call for javac . /usr/bin/clang -fuse-ld=lld -fuse-ld=lld -Wl,--exclude-libs,ALL -Wl,-z,noexecstack -m64 -fsanitize=memory ....
Could it be that the -Wl,--exclude-libs,ALL “hides” the msan symbols like __msan_param_tls from exporting ? But I guess we set this for a reason so removing it might cause other trouble ? Best regards, Matthias ---------------------------------------------------- >>Maybe you can try patching out -fvisibility=hidden from the compile command >>line to see if that makes any difference. >Sounds like a good idea to start with, I will try this! Seems the visibility >stuff plays a role here. I removed the -fvisibility=hidden from make/autoconf/flags-cflags.m4 (3 places) but the issue is still there. When looking at our launchers in the msan – enabled build (java, javac) I see the msan_param_tls as “b” (local symbol) . But I think it is expected as “B” (global/exported) . In my simple working standalone example, the msan_param_tls is “B” . So there must be something in out build that prevents the “export” of those msan symbols (even when removing -fvisibility=hidden ) . Probably I should look in more details at our launcher builds and all the settings ... Best regards, Matthias