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