This is an implementation of [JEP 483: Ahead-of-Time Class Loading & Linking](https://openjdk.org/jeps/483).
---- Note: this is a combined PR of the following individual PRs - https://github.com/openjdk/jdk/pull/20516 - https://github.com/openjdk/jdk/pull/20517 - https://github.com/openjdk/jdk/pull/20843 - https://github.com/openjdk/jdk/pull/20958 - https://github.com/openjdk/jdk/pull/20959 - https://github.com/openjdk/jdk/pull/21049 - https://github.com/openjdk/jdk/pull/21143 ------------- Commit messages: - Merge branch 'jep-483-step-06-8311071-avoid-soft-refs-in-java-lang-invoke' into jep-483-step-07-8293336-store-lambda-forms-in-cds-archive - Merge branch 'jep-483-step-05-8293337-archive-method-handle-intrinsics' of /jdk3/yam/open into jep-483-step-06-8311071-avoid-soft-refs-in-java-lang-invoke - Merge branch 'jep-483-step-04-8293187-support-sun-invoke-util-wrapper-in-cds-archive-heap' into jep-483-step-05-8293337-archive-method-handle-intrinsics - Merge branch 'jep-483-step-03-8329706-implement-xx-aot-class-linking' of /jdk3/yak/open into jep-483-step-04-8293187-support-sun-invoke-util-wrapper-in-cds-archive-heap - @calvinccheung review comments - @coleenp: No need to hold InvokeMethodIntrinsicTable_lock during bootstrap - Better fix for JDK-8342438: runtime/cds/SharedBaseAddress.java fails with Parallel and Serial GCs when running with AOTClassLinking enabled - (1) @ashu-mehra review comments - code simplfication; (2) fix bug in last commit - @DanHeidinga comments - removed dead code; added assert with ArchiveBuilder::has_been_buffered(src_ik) - Fixed JDK-8342732: java/lang/invoke/MethodTypeSecurityManager.java fails with "should never leak JDK internal class" in case AOTClassLinking enabled - ... and 142 more: https://git.openjdk.org/jdk/compare/8d0975a2...f0bc1ae6 Changes: https://git.openjdk.org/jdk/pull/21642/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=21642&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8331497 Stats: 6713 lines in 104 files changed: 5835 ins; 560 del; 318 mod Patch: https://git.openjdk.org/jdk/pull/21642.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/21642/head:pull/21642 PR: https://git.openjdk.org/jdk/pull/21642