RFR: 8211296: Remove HotSpot deprecation warning suppression for Mac/clang

David Holmes david.holmes at oracle.com
Sun Sep 30 20:51:16 UTC 2018


Hi Kim,

On 30/09/2018 11:23 AM, Kim Barrett wrote:
> Please review this change to HotSpot build options and code to
> eliminate the suppression of deprecation warnings when building with
> clang.

Just as a historical note the no-deprecation-warning was only applied to 
os_bsd.cpp in the distant past. No idea when it became global.

> There are two code changes:
> 
> (1) Replace calls to finite() with C99 isfinite().  This also affects
> gcc-based builds, but isfinite has been supported there for a long
> time too.

Ok.

> (2) Remove call to _dyld_bind_fully_image_containing_address, which
> seems to have been deprecated since MacOSX 10.5.  Instead use the
> recommended replacement "dlopen(RTLD_NOW)".  However, it might be we
> don't need to do anything here anymore.  I ran tier1-5 test without
> the dlopen without any problems.  But I'm not familiar with the
> original problem, so not sure that's convincing.  Perhaps another RFE
> to determine whether this code can be deleted?

The use of _dyld_bind_fully_image_containing_address, as per the comment 
is a workaround to force full binding of symbols in the library. I don't 
know where the "callbacks" referred to in the comment come from or why 
they may be unaligned - this seems to be day 1 code for the OS X port 
from 2008:

http://hg.openjdk.java.net/macosx-port/macosx-port/hotspot/rev/be94a5de4d32#l75.4001

I've cc'd the macosx-port-dev mailing list in case someone still 
subscribed there might know the answer.

If you don't have unaligned symbols then the workaround is not needed. 
In that case the replacement dlopen is also not needed (and it isn't 
needed to actually dlopen anything as you are opening the current 
library!). So it is not surprising that removing the dlopen causes no 
problem.

With the dlopen in place however the code looks very strange and there's 
no guarantee it actually engages the workaround of the original function.

So I'd say this either has to be removed completely or else left alone.

Thanks,
David

> CR:
> https://bugs.openjdk.java.net/browse/JDK-8211296
> 
> Webrev:
> http://cr.openjdk.java.net/~kbarrett/8211296/open.00/
> 
> Testing:
> Mach5 tier1, tier1-5 on MacOSX.
> 
> 



More information about the build-dev mailing list