RFR: 8017234: Hotspot should stop using mapfiles [v7]

Magnus Ihse Bursie ihse at openjdk.org
Mon Feb 26 16:18:14 UTC 2024


> **Summary:** Finally get rid of the mapfiles in Hotspot, and replace it with compiler options and `JNIEXPORT` on all platforms.
> 
> The bug that this PR solves, [JDK-8017234](https://bugs.openjdk.org/browse/JDK-8017234), was created in 2013. Even back then the use of mapfiles in Hotspot was dated, so this is really good riddance with old rubbish.
> 
> This code touches on central but not well understood parts of the Hotspot dynamic library, which has contributed to why this bug has stayed unresolved for so long. I will need to explain this fix in more detail than usually necessary. (Please bare with me if this gets long.) I also anticipate that not all solutions that I've picked will be accepted, and we'll have to discuss how to proceed. I think it is better to have actual concrete code to discuss around, rather than starting by an abstract discussion. To keep this description short, I will post the discussion as a comment to the PR.
> 
> I have run this PR through tier 1-3 in our CI system. I have also carefully checked how the resulting dynamic library differs with this patch (not much; see discussion below). For build system changes, this is often the most relevant metric.

Magnus Ihse Bursie has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:

 - Merge branch 'master' into hotspot-symbols-proper
 - Revert "Use #pragma instead of HIDDEN define"
   
   This reverts commit 00e40a7f6e4cdef6592d72b3d08063cdcc41532a.
 - Use #pragma instead of HIDDEN define
 - Rename the version script to version-script.txt
 - Restore linker script to linux/gcc builds
 - Rename the Windows export file to .def
 - Remove unused symbol _Copy_conjoint_bytes on linux/arm32
 - 8017234: Hotspot should stop using mapfiles

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/17955/files
  - new: https://git.openjdk.org/jdk/pull/17955/files/7be8372a..6100950b

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=17955&range=06
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=17955&range=05-06

  Stats: 7746 lines in 141 files changed: 5392 ins; 1355 del; 999 mod
  Patch: https://git.openjdk.org/jdk/pull/17955.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/17955/head:pull/17955

PR: https://git.openjdk.org/jdk/pull/17955


More information about the build-dev mailing list