macOS12 has changed the dladdr() function to accept "-1" as a valid address and
we have functions that use dladdr() to convert DLL addresses into function or
library names. We also have a gtest that verifies that "-1" is not a valid
value to use
as a symbol address.
As you might imagine, existing code that uses
`os::dll_address_to_function_name()`
or `os::dll_address_to_library_name()` can get quite confused (and sometimes
crash)
if an `addr` parameter of `-1` was allowed to be used.
I've also made two cleanup changes as part of this fix:
1) In `src/hotspot/os/bsd/os_bsd.cpp` there is some macOS specific code that
should
be properly `#ifdef`'ed. There is also some code that makes sense for ELF
format
files, but not for Mach-O format files so that code needs to be excluded on
macOS.
2) In `src/hotspot/share/runtime/os.cpp` I noticed a simple typo in a comment
on an
`#endif` that I fixed. That typo does not appear anywhere else in the
HotSpot code
base so I'd like to fix it with this bug ID since I'm in related areas.
This fix has been tested with Mach5 Tier[1-6].
-------------
Commit messages:
- 8273967.cr0.patch
Changes: https://git.openjdk.java.net/jdk/pull/6193/files
Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6193&range=00
Issue: https://bugs.openjdk.java.net/browse/JDK-8273967
Stats: 50 lines in 4 files changed: 43 ins; 5 del; 2 mod
Patch: https://git.openjdk.java.net/jdk/pull/6193.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/6193/head:pull/6193
PR: https://git.openjdk.java.net/jdk/pull/6193