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


Reply via email to