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