Compare commits

..

826 Commits

Author SHA1 Message Date
Alexander Matveev
9eaa4afc99 8267056: tools/jpackage/share/RuntimePackageTest.java fails with NoSuchFileException
Reviewed-by: asemenyuk, herrick
2021-05-21 00:44:39 +00:00
Jonathan Gibbons
e094f3f856 8266856: Make <wbr> element void
Reviewed-by: prappo, iris, vromero
2021-05-21 00:31:04 +00:00
Jie Fu
7a63ff70c8 8267370: [Vector API] Fix several crashes after JDK-8256973
Co-authored-by: Jatin Bhateja <jbhateja@openjdk.org>
Reviewed-by: neliasso, kvn
2021-05-20 23:59:12 +00:00
Denghui Dong
83b3607290 8266642: improve ResolvedMethodTable hash function
Reviewed-by: vlivanov, coleenp
2021-05-20 22:19:04 +00:00
Calvin Cheung
1c7a1310d9 8267350: Archived old interface extends interface with default method causes crash
Reviewed-by: iklam, minqi
2021-05-20 21:03:13 +00:00
Phil Race
005d8a7fca 8256372: [macos] Unexpected symbol was displayed on JTextField with Monospaced font
Reviewed-by: erikj, serb
2021-05-20 19:49:03 +00:00
Vicente Romero
81f39ed3e0 8261205: AssertionError: Cannot add metadata to an intersection type
Reviewed-by: mcimadamore
2021-05-20 17:53:00 +00:00
Aleksey Shipilev
7b98400c81 8267348: Rewrite gc/epsilon/TestClasses.java to use Metaspace with less classes
Reviewed-by: stuefe
2021-05-20 16:45:38 +00:00
Vladimir Kempik
ca93399af1 8267235: [macos_aarch64] InterpreterRuntime::throw_pending_exception messing up LR results in crash
Reviewed-by: akozlov, aph
2021-05-20 15:46:53 +00:00
Hannes Wallnöfer
b7b6acd9b1 8267481: Make sure table row has correct number of cells
Reviewed-by: jjg
2021-05-20 15:11:08 +00:00
Aleksey Shipilev
f67847f52a 8267396: Avoid recording "pc" in unhandled oops detector for better performance
Reviewed-by: coleenp, dholmes
2021-05-20 14:26:18 +00:00
Jonathan Gibbons
878d1b3f60 8267434: Remove LinkOutput[Impl]
Reviewed-by: prappo
2021-05-20 14:22:24 +00:00
Thomas Schatzl
fc7f0a3e61 8267480: Explicitly problemlist all runtime/os/TestTracePageSizes.java tests on linux-aarch64 to reduce noise
Reviewed-by: dcubed
2021-05-20 14:17:57 +00:00
Sergey Tsypanov
9425d3de83 8261880: Change nested classes in java.base to static nested classes where possible
Reviewed-by: redestad
2021-05-20 13:56:11 +00:00
liach
459abd561a 8267219: Javadoc method summary breaks when {@inheritDoc} from an empty parent
Reviewed-by: hannesw
2021-05-20 12:44:55 +00:00
Per Liden
aba2265682 8260267: ZGC: Reduce mark stack usage
Co-authored-by: Wang Chao <wchao@openjdk.org>
Co-authored-by: Hui Shi <hshi@openjdk.org>
Reviewed-by: sjohanss, ayang
2021-05-20 11:32:48 +00:00
Thomas Schatzl
f979523a69 8267463: Problemlist runtime/os/TestTracePageSizes.java on linux-aarch64 to reduce noise
Reviewed-by: dholmes
2021-05-20 11:10:07 +00:00
Alexander Zuev
f07dcf471c 8264290: Create implementation for NSAccessibilityComponentGroup protocol peer
Reviewed-by: pbansal
2021-05-20 10:31:37 +00:00
Julia Boes
31320c3474 8267262: com/sun/net/httpserver/Filter improve API documentation of static methods
Reviewed-by: dfuchs, chegar
2021-05-20 09:30:10 +00:00
Vicente Romero
7dcb9fda89 8265684: implement Sealed Classes as a standard feature in Java, javadoc changes
Reviewed-by: jjg
2021-05-20 09:23:14 +00:00
Vicente Romero
0fa9223f34 8260517: implement Sealed Classes as a standard feature in Java
Co-authored-by: Harold Seigel <hseigel@openjdk.org>
Co-authored-by: Vicente Romero <vromero@openjdk.org>
Reviewed-by: dholmes, mcimadamore, jlahoda
2021-05-20 09:11:08 +00:00
Vicente Romero
31b98e129e 8265319: implement Sealed Classes as a standard feature in Java, javax.lang.model changes
Reviewed-by: darcy, jlahoda
2021-05-20 09:08:30 +00:00
Thomas Stuefe
726785b8d7 8267155: runtime/os/TestTracePageSizes times out
Reviewed-by: shade, sjohanss
2021-05-20 08:16:36 +00:00
Xubo Zhang
8e3549fc73 8266332: Adler32 intrinsic for x86 64-bit platforms
Co-authored-by: Xubo Zhang <xubo.zhang@intel.com>
Co-authored-by: Greg B Tucker <greg.b.tucker@intel.com>
Co-authored-by: Pengfei Li <pli@openjdk.org>
Reviewed-by: sviswanathan, jbhateja, kvn, neliasso
2021-05-19 23:44:23 +00:00
Ioi Lam
b961f2535c 8267191: Avoid repeated SystemDictionaryShared::should_be_excluded calls
Reviewed-by: dholmes, coleenp
2021-05-19 19:31:15 +00:00
Jonathan Gibbons
74f30ad38b 8263684: Avoid wrapping into BufferedWriter twice
Reviewed-by: prappo
2021-05-19 18:29:12 +00:00
Thomas Stuefe
9820f3d480 8267371: Concurrent gtests take too long
Reviewed-by: shade, gziemski
2021-05-19 17:55:05 +00:00
Nils Eliasson
38d690b3c3 8265262: CITime - 'other' incorrectly calculated
Reviewed-by: thartmann, kvn
2021-05-19 17:51:02 +00:00
Hannes Wallnöfer
66ab6d86d1 8264181: javadoc tool Incorrect error message about malformed link
Reviewed-by: prappo
2021-05-19 17:17:50 +00:00
Albert Mingkun Yang
99fcc410a7 8234532: Remove ThreadLocalAllocBuffer::_fast_refill_waste since it is never set
Reviewed-by: tschatzl, sjohanss, pliden, sspitsyn
2021-05-19 17:02:39 +00:00
Gerard Ziemski
237fee8bbd 8267339: Temporarily disable os.release_multi_mappings_vm on macOS x64
Reviewed-by: hseigel, dcubed
2021-05-19 16:42:10 +00:00
Daniel D. Daugherty
64e2479bf6 8267407: ProblemList vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java on linux-aarch64
8267409: ProblemList gc/epsilon/TestClasses.java on linux-x64

Reviewed-by: tschatzl
2021-05-19 16:08:35 +00:00
Claes Redestad
9760dba71c 8267321: Use switch expression for VarHandle$AccessMode lookup
Reviewed-by: jvernee
2021-05-19 15:23:44 +00:00
Doug Simon
fdd0352884 8267338: [JVMCI] revive JVMCI API removed by JDK-8243287
Reviewed-by: mchung, hseigel
2021-05-19 13:59:46 +00:00
Zhengyu Gu
0b49f5ae19 8267257: Shenandoah: Always deduplicate strings when it is enabled during full gc
Reviewed-by: rkennke
2021-05-19 13:13:57 +00:00
Hannes Wallnöfer
12050f04ca 8266651: Convert Table method parameters from String to Content
Reviewed-by: jjg
2021-05-19 13:01:06 +00:00
Aleksey Shipilev
e749f75de0 8267304: Bump global JTReg memory limit to 768m
Reviewed-by: lmesnik, iignatyev
2021-05-19 12:59:03 +00:00
Guoxiong Li
e858dd6197 8267361: JavaTokenizer reads octal numbers mistakenly
Reviewed-by: jlaskey
2021-05-19 12:50:54 +00:00
Albert Mingkun Yang
1b93b81270 8267133: jdk/jfr/event/gc/collection/TestG1ParallelPhases.java fails with Not expected phases: RestorePreservedMarks, RemoveSelfForwardingPtr: expected true, was false
8267218: jdk/jfr/event/gc/collection/TestG1ParallelPhases.java fails with Not found phases\: StringDedupQueueFixup, StringDedupTableFixup

Co-authored-by: Thomas Schatzl <tschatzl@openjdk.org>
Reviewed-by: tschatzl, iwalulya
2021-05-19 11:29:27 +00:00
Jatin Bhateja
88b114235c 8267357: build breaks with -Werror option on micro benchmark added for JDK-8256973
Reviewed-by: jiefu, neliasso, thartmann
2021-05-19 09:58:48 +00:00
Leo Korinth
6ef46ce386 8231672: Simplify the reference processing parallelization framework
Reviewed-by: tschatzl, ayang
2021-05-19 09:39:40 +00:00
Yi Yang
392f962e0e 8267151: C2: Don't create dummy Opaque1Node for outmost unswitched IfNode
Reviewed-by: thartmann, neliasso
2021-05-19 09:06:59 +00:00
Yi Yang
0cf7e5784b 8267239: C1: RangeCheckElimination for % operator if divisor is IntConstant
Reviewed-by: thartmann, neliasso
2021-05-19 09:05:05 +00:00
Jie Fu
2d407e12fa 8267293: vmTestbase/vm/mlvm/anonloader/stress/oome/metaspace/Test.java fails when JTREG_JOBS > 25
Reviewed-by: stuefe, shade
2021-05-19 09:03:53 +00:00
Ivan Walulya
70f6c67051 8233380: CHT: Node allocation and freeing
Reviewed-by: rehn, tschatzl
2021-05-19 08:01:35 +00:00
Xiaohong Gong
2563a6a9b5 8266962: Add arch supporting check for "Op_VectorLoadConst" before creating the node
Reviewed-by: vlivanov, neliasso
2021-05-19 07:49:41 +00:00
Jie Fu
4954383168 8267364: Remove mask.incr which is introduced by JDK-8256973
Reviewed-by: vlivanov, thartmann
2021-05-19 07:43:12 +00:00
Tobias Hartmann
c2b50f93ac 8266480: Implicit null check optimization does not update control of hoisted memory operation
Reviewed-by: neliasso, kvn
2021-05-19 07:27:30 +00:00
Jie Fu
3f883e8f0d 8267351: runtime/cds/SharedBaseAddress.java fails on x86_32 due to Unrecognized VM option 'UseCompressedOops'
Reviewed-by: dholmes, ccheung
2021-05-19 07:17:13 +00:00
Jatin Bhateja
7aa65685b8 8256973: Intrinsic creation for VectorMask query (lastTrue,firstTrue,trueCount) APIs
Reviewed-by: psandoz, vlivanov
2021-05-19 05:22:02 +00:00
Jatin Bhateja
65a8bf58be 8265126: [REDO] unified handling for VectorMask object re-materialization during de-optimization
Reviewed-by: vlivanov
2021-05-19 05:19:16 +00:00
Alan Hayward
ff84577d72 8267098: AArch64: C1 StubFrames end confusingly
Reviewed-by: aph
2021-05-19 01:48:34 +00:00
Jie Fu
0daec497fe 8267246: -XX:MaxRAMPercentage=0 is unreasonable for jtreg tests on many-core machines
Reviewed-by: shade, erikj
2021-05-19 01:46:23 +00:00
Hui Shi
324defe2b6 8267212: test/jdk/java/util/Collections/FindSubList.java intermittent crash with "no reachable node should have no use"
Reviewed-by: roland, thartmann
2021-05-19 01:25:58 +00:00
Martin Balao
bdbe23b9cb 8265462: Handle multiple slots in the NSS Internal Module from SunPKCS11's Secmod
Reviewed-by: valeriep
2021-05-18 22:34:27 +00:00
Chris Plummer
10236e7a52 8263242: serviceability/sa/ClhsdbFindPC.java cannot find MaxJNILocalCapacity with ASLR
Reviewed-by: kevinw, ysuenaga
2021-05-18 21:26:56 +00:00
Sergey Bylokhov
e6705c0e4b 8266949: Check possibility to disable OperationTimedOut on Unix
Reviewed-by: azvegint, kizune
2021-05-18 19:30:33 +00:00
Anton Kozlov
b92c5a44f2 8265292: [macos_aarch64] java/foreign/TestDowncall.java crashes with SIGBUS
8265183: [macos_aarch64] java/foreign/TestIntrinsics.java crashes with SIGBUS
8265182: [macos_aarch64] java/foreign/TestUpcall.java crashes with SIGBUS

Reviewed-by: dholmes
2021-05-18 18:54:16 +00:00
Gerard Ziemski
fadf58043c 8262952: [macos_aarch64] os::commit_memory failure
Reviewed-by: stuefe, aph
2021-05-18 14:44:12 +00:00
Albert Mingkun Yang
f8f40ab25f 8230486: G1BarrierSetAssembler::g1_write_barrier_post unnecessarily pushes/pops new_val
Reviewed-by: kbarrett, tschatzl
2021-05-18 13:58:37 +00:00
Vladimir Ivanov
9d168e25d1 8266973: Migrate to ClassHierarchyIterator when enumerating subclasses
Reviewed-by: kvn, coleenp
2021-05-18 12:46:50 +00:00
Harold Seigel
02507bc40d 8267166: Remove test file vmTestbase/vm/mlvm/tools/LoadClass.java
Reviewed-by: gziemski, coleenp
2021-05-18 12:34:09 +00:00
Tobias Hartmann
ce88b33488 8266615: C2 incorrectly folds subtype checks involving an interface array
Reviewed-by: kvn, neliasso
2021-05-18 12:21:24 +00:00
Julia Boes
894547d2c1 8266897: com/sun/net/httpserver/FilterTest.java fails intermittently with AssertionError
Reviewed-by: chegar, dfuchs, michaelm
2021-05-18 09:12:33 +00:00
Thomas Stuefe
da7c846a8c 8264408: test_oopStorage no longer needs to disable some tests on WIN32
Reviewed-by: shade, tschatzl
2021-05-18 08:52:39 +00:00
Aleksey Shipilev
f6c2891118 8267229: Split runtime/Metaspace/elastic test configurations for better scalability
Reviewed-by: stuefe
2021-05-18 08:08:54 +00:00
Christoph Göttschkes
b60975dd85 8267237: ARM32: bad AD file in matcher.cpp after 8266810
Reviewed-by: redestad, thartmann
2021-05-18 07:30:30 +00:00
Yi Yang
905b41ac6a 8265711: C1: Intrinsify Class.getModifier method
Reviewed-by: thartmann, kvn
2021-05-18 07:29:18 +00:00
Thomas Stuefe
554caf33a0 8251392: Consolidate Metaspace Statistics
Reviewed-by: coleenp, zgu
2021-05-18 06:35:17 +00:00
Alexey Ushakov
3e97b07a68 8267116: Lanai: Incorrect AlphaComposite for VolatileImage graphics
Reviewed-by: serb, aghaisas
2021-05-18 06:06:42 +00:00
David Holmes
cd1c17c0a6 8266404: Fatal error report generated with -XX:+CrashOnOutOfMemoryError should not contain suggestion to submit a bug report
Reviewed-by: stuefe, kevinw, gziemski
2021-05-17 22:39:14 +00:00
Vladimir Kozlov
2effdd1b67 8267112: JVMCI compiler modules should be kept upgradable
Reviewed-by: mchung, erikj, dnsimon
2021-05-17 20:11:01 +00:00
Brian Burkhalter
da4dfde71a 8264777: Overload optimized FileInputStream::readAllBytes
Reviewed-by: dfuchs, alanb
2021-05-17 19:58:41 +00:00
Anton Kozlov
3b11d811a2 8266742: Check W^X state on possible safepoint
Reviewed-by: dholmes, gziemski
2021-05-17 19:15:18 +00:00
Ajit Ghaisas
79b39445f6 8266520: Revert to OpenGL as the default 2D rendering pipeline for macOS
Reviewed-by: azvegint, trebari, kcr, prr
2021-05-17 16:32:51 +00:00
Thomas Stuefe
3c010a7c7e 8265705: aarch64: KlassDecodeMovk mode broken
Reviewed-by: aph, iklam, ngasson
2021-05-17 16:14:22 +00:00
Adam Sotona
cf97252f3f 8264561: javap get NegativeArraySizeException on bad instruction
Reviewed-by: vromero
2021-05-17 15:23:18 +00:00
Vicente Romero
b8856b1c47 8263614: javac allows local variables to be accessed from a static context
Reviewed-by: mcimadamore
2021-05-17 15:03:32 +00:00
Hannes Wallnöfer
ea36836573 8267236: Versioned platform link in TestMemberSummary.java
Reviewed-by: prappo
2021-05-17 14:43:49 +00:00
Hannes Wallnöfer
d5a15f7420 8263438: Unused method AbstractMemberWriter.isInherited
Reviewed-by: prappo
2021-05-17 14:19:57 +00:00
Maurizio Cimadamore
dd5a84c68c 8267162: Add jtreg test group definitions for langtools
Reviewed-by: jjg
2021-05-17 12:55:34 +00:00
Prasanta Sadhukhan
39a454bb87 8260331: javax/swing/JInternalFrame/8146321/JInternalFrameIconTest.java failed with "ERROR: icon and imageIcon not same."
Reviewed-by: azvegint
2021-05-17 12:32:35 +00:00
Ralf Schmelter
a29612ea99 8255661: TestHeapDumpOnOutOfMemoryError fails with EOFException
Reviewed-by: rrich, cjplummer
2021-05-17 11:47:35 +00:00
Mitsuru Kariya
a555fd89d0 8264734: Some SA classes could use better hashCode() implementation
Reviewed-by: cjplummer, kevinw
2021-05-17 09:49:57 +00:00
Ivan Walulya
2313a2187a 8266637: CHT: Add insert_and_get method
Reviewed-by: tschatzl, rehn
2021-05-17 09:41:45 +00:00
Stefan Johansson
7b736ec932 8266489: Enable G1 to use large pages on Windows when region size is larger than 2m
Reviewed-by: tschatzl, iwalulya
2021-05-17 08:32:30 +00:00
Leo Korinth
f4227879b0 8266073: Regression ~2% in Derby after 8261804
Reviewed-by: ayang, sjohanss
2021-05-17 07:08:04 +00:00
David Holmes
02f895c5f6 8252685: APIs that require JavaThread should take JavaThread arguments
Reviewed-by: coleenp, sspitsyn, kvn, iklam
2021-05-17 04:05:44 +00:00
Yumin Qi
2066f497b9 8266764: [REDO] JDK-8255493 Support for pre-generated java.lang.invoke classes in CDS dynamic archive
Reviewed-by: ccheung, iklam
2021-05-16 02:26:46 +00:00
Daniel D. Daugherty
8c71144a23 8265153: add time based test for ThreadMXBean.getThreadInfo() and ThreadInfo.getLockOwnerName()
Reviewed-by: dholmes, cjplummer
2021-05-15 13:14:49 +00:00
Thomas Schatzl
10cafd244d 8267153: Problemlist jdk/jfr/event/gc/collection/TestG1ParallelPhases.java to remove the noise from CI
Reviewed-by: dcubed, jiefu
2021-05-15 09:46:29 +00:00
Thomas Stuefe
f3fb5a4524 8266942: gtest/GTestWrapper.java os.iso8601_time_vm failed
Reviewed-by: dcubed
2021-05-15 05:20:01 +00:00
Valerie Peng
7ab6dc83df 6676643: Improve current C_GetAttributeValue native implementation
Reviewed-by: xuelei
2021-05-14 23:04:37 +00:00
Alexander Matveev
28f1c7ac4d 8249395: (macos) jpackage tests timeout on MacPro5_1 systems
Reviewed-by: herrick, asemenyuk
2021-05-14 23:00:59 +00:00
Kim Barrett
be0a655208 8254598: StringDedupTable should use OopStorage
Co-authored-by: Kim Barrett <kbarrett@openjdk.org>
Co-authored-by: Zhengyu Gu <zgu@openjdk.org>
Reviewed-by: coleenp, iklam, tschatzl, ayang
2021-05-14 18:38:58 +00:00
Albert Mingkun Yang
360928d16d 8260046: Assert left >= right in pointer_delta() methods
Reviewed-by: sjohanss, kbarrett, tschatzl
2021-05-14 18:17:37 +00:00
Lance Andersen
5eda812f53 8267180: Typo in copyright header for HashesTest
Reviewed-by: dcubed, naoto, joehw
2021-05-14 17:55:43 +00:00
Lance Andersen
e90388bc1e 8266461: tools/jmod/hashes/HashesTest.java fails: static @Test methods
Reviewed-by: alanb, mchung
2021-05-14 17:19:32 +00:00
Wang Huang
599d07c0db 8263006: Add optimization for Max(*)Node and Min(*)Node
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Wu Yan <wuyan34@huawei.com>
Reviewed-by: kvn
2021-05-14 17:16:28 +00:00
Harold Seigel
16ca370f1a 8265694: Investigate test StressHiddenClasses.java
Reviewed-by: lfoltan
2021-05-14 14:52:37 +00:00
Athijegannathan Sundararajan
af4cd04c2e 8266291: (jrtfs) Calling Files.exists may break the JRT filesystem
Reviewed-by: redestad, alanb
2021-05-14 12:59:41 +00:00
Сергей Цыпанов
ebcf3991b7 8266622: Optimize Class.descriptorString() and Class.getCanonicalName0()
Reviewed-by: redestad
2021-05-14 12:29:23 +00:00
Claes Redestad
644f28c0ea 8266810: Move trivial Matcher code to cpu-specific header files
Reviewed-by: kvn, thartmann
2021-05-14 10:36:52 +00:00
Stefan Karlsson
88907bb81a 8266904: Use function pointer typedefs in OopOopIterateDispatch
Reviewed-by: tschatzl, iklam
2021-05-14 07:55:23 +00:00
Hamlin Li
301095c8be 8266795: Remove dead code LowMemoryDetectorDisabler
Reviewed-by: dholmes
2021-05-14 06:52:31 +00:00
Ioi Lam
1e0ecd6d56 8265605: Cannot call BootLoader::loadClassOrNull before initPhase2
Reviewed-by: alanb, mchung
2021-05-14 06:26:41 +00:00
Sergey Bylokhov
4086081306 8264846: Regression ~5% in J2dBench.bimg_misc on Linux after JDK-8263142
Reviewed-by: erikj, azvegint
2021-05-13 23:41:56 +00:00
Vladimir Ivanov
2a2f105a56 8267117: sun/hotspot/whitebox/CPUInfoTest.java fails on Ice Lake
Reviewed-by: kvn
2021-05-13 23:26:35 +00:00
Xue-Lei Andrew Fan
266702451d 8266881: Enable debug log for SSLEngineExplorerMatchedSNI.java
Reviewed-by: hchao, mullan
2021-05-13 18:53:52 +00:00
Pankaj Bansal
6c107fdff2 8264299: Create implementation of native accessibility peer for ScrollPane and ScrollBar Java Accessibility roles
Reviewed-by: kizune
2021-05-13 18:45:53 +00:00
Patricio Chilano Mateo
853ffdb25c 8265934: Cleanup _suspend_flags and _special_runtime_exit_condition
Reviewed-by: rehn, dcubed, dholmes
2021-05-13 18:04:26 +00:00
Alexey Semenyuk
f3c6cda476 8266162: Remove JPackage duplicate tests
Reviewed-by: almatvee, herrick
2021-05-13 16:30:17 +00:00
Naoto Sato
a259ab4a8d 8258795: Update IANA Language Subtag Registry to Version 2021-05-11
Reviewed-by: joehw
2021-05-13 16:20:12 +00:00
Jim Laskey
b4371e9bca 8266552: Technical corrections to java/util/random/package-info.java
Reviewed-by: darcy
2021-05-13 13:42:53 +00:00
Harold Seigel
e14b026841 8243287: Removal of Unsafe::defineAnonymousClass
Reviewed-by: iklam, mchung, alanb, dholmes
2021-05-13 12:46:54 +00:00
Thomas Schatzl
a564f2cbd5 8266821: G1: Prefetch cards during merge heap roots phase
Reviewed-by: kbarrett, iwalulya
2021-05-13 11:22:31 +00:00
Vladimir Ivanov
127bfe44f7 8266074: Vtable-based CHA implementation
Reviewed-by: kvn, jrose, dlong
2021-05-13 10:58:03 +00:00
Fernando Guallini
347d41df90 8164804: sun/security/ssl/SSLSocketImpl/CloseSocket.java makes not reliable time assumption
Reviewed-by: dfuchs, rhalade
2021-05-13 10:50:06 +00:00
Guoxiong Li
17ceef97c3 8266819: Separate the stop policies from the compile policies completely
Reviewed-by: mcimadamore
2021-05-13 10:22:13 +00:00
Maurizio Cimadamore
a270cbe2eb 8267043: IntelliJ project doesn't handle generated sources correctly
Reviewed-by: chegar, erikj
2021-05-13 09:32:22 +00:00
Daniel Fuchs
08a5a5c6d6 8263382: java/util/logging/ParentLoggersTest.java failed with "checkLoggers: getLoggerNames() returned unexpected loggers"
Reviewed-by: bpb, mchung
2021-05-13 08:54:24 +00:00
Prasanta Sadhukhan
b50fc5f992 8265528: Specification of BasicSplitPaneDivider::getMinimumSize,getPreferredSize doesn't match with its behavior.
Reviewed-by: kizune
2021-05-13 04:42:38 +00:00
David Holmes
d215743a91 8231031: runtime/ReservedStack/ReservedStackTest.java fails after jsr166 refresh
Reviewed-by: dcubed
2021-05-13 01:14:38 +00:00
Philippe Marschall
ab17be2835 8252530: Fix inconsistencies in hotspot whitebox
Reviewed-by: dholmes, amenkov
2021-05-12 23:14:30 +00:00
Chris Plummer
2568d181a7 8267047: Put serviceability/sa/TestJmapCoreMetaspace.java back on ZGC problem list due to JDK-8267045
Reviewed-by: dcubed
2021-05-12 21:01:47 +00:00
Guoxiong Li
accbfeaf22 8226216: parameter modifiers are not visible to javac plugins across compilation boundaries
Reviewed-by: jlahoda
2021-05-12 14:32:57 +00:00
Zhengyu Gu
69daedfd23 8266845: Shenandoah: Simplify SBS::load_reference_barrier implementation
Reviewed-by: shade
2021-05-12 12:34:55 +00:00
Alexey Ushakov
7433821910 8250658: Performance of ClipFlatOval Renderperf test is very low
Reviewed-by: jdv, aghaisas
2021-05-12 12:33:45 +00:00
Pavel Rappo
4727187f86 8266567: Fix javadoc tag references in sun.management.jmxremote.ConnectorBootstrap
Reviewed-by: dfuchs, sspitsyn
2021-05-12 10:57:37 +00:00
Yi Yang
11759bfb2d 8266798: C1: More types of instruction can also apply LoopInvariantCodeMotion
Reviewed-by: thartmann, neliasso
2021-05-12 09:08:29 +00:00
Ivan Walulya
dcf250d5d4 8233378: CHT: Fast reset
Reviewed-by: tschatzl, rehn
2021-05-12 09:07:01 +00:00
Doug Simon
f3b510b9aa 8266923: [JVMCI] expose StackOverflow::_stack_overflow_limit to JVMCI
Reviewed-by: kvn
2021-05-12 08:47:36 +00:00
Yi Yang
548899d40e 8266189: Remove C1 "IfInstanceOf" instruction
Reviewed-by: thartmann
2021-05-12 08:36:37 +00:00
Yi Yang
b46086d777 8266874: Clean up C1 canonicalizer for TableSwitch/LookupSwitch
Reviewed-by: thartmann
2021-05-12 08:35:31 +00:00
Hannes Wallnöfer
97367c01c1 8266808: Search label still uses old search field id
Reviewed-by: prappo
2021-05-12 08:32:29 +00:00
Tobias Hartmann
06d7602833 8261158: JVMState should not be shared between SafePointNodes
Reviewed-by: vlivanov, kvn
2021-05-12 07:21:25 +00:00
Yasumasa Suenaga
476994aa37 8266531: ZAddress::address() should be removed from SA
Reviewed-by: cjplummer, stefank
2021-05-12 05:27:14 +00:00
David Holmes
e828a939a8 8261395: C1 crash "cannot make java calls from the native compiler"
Co-authored-by: Ioi Lam <iklam@openjdk.org>
Co-authored-by: Coleen Phillimore <coleenp@openjdk.org>
Reviewed-by: iklam, hseigel, coleenp
2021-05-12 05:21:58 +00:00
Hamlin Li
3c47cab6db 8261034: improve jcmd GC.class_histogram to support parallel
Reviewed-by: cjplummer, sspitsyn
2021-05-12 01:06:44 +00:00
Guoxiong Li
ed32e02c05 8241187: ToolBox::grep should allow for negative filtering
Reviewed-by: vromero
2021-05-12 01:01:29 +00:00
Mandy Chung
cc03734b99 8266925: Add a test to verify that hidden class's members are not statically invocable
Reviewed-by: alanb
2021-05-12 00:53:04 +00:00
Sergey Bylokhov
271a0c7133 8047218: [TEST_BUG] java/awt/FullScreen/AltTabCrashTest/AltTabCrashTest.java fails with exception
Reviewed-by: azvegint, kizune, pbansal
2021-05-11 23:55:08 +00:00
Joe Wang
1a0ff28ea1 8255035: Update BCEL to Version 6.5.0
Reviewed-by: lancea
2021-05-11 23:54:07 +00:00
Calvin Cheung
57c6ba6e6b 8266822: Rename MetaspaceShared::is_old_class to be more explicit about what "old" means
Reviewed-by: iklam, minqi, coleenp
2021-05-11 23:53:06 +00:00
Claes Redestad
616244f43a 8266937: Remove Compile::reshape_address
Reviewed-by: kvn
2021-05-11 22:45:27 +00:00
Jie Fu
974b9f7004 8266773: Release VM is broken with GCC 9 after 8214237
Reviewed-by: stuefe, lkorinth
2021-05-11 22:44:28 +00:00
Naoto Sato
f6c5a6bbf1 8266784: java/text/Collator/RuleBasedCollatorTest.java fails with jtreg 6
Reviewed-by: joehw
2021-05-11 22:42:17 +00:00
Alexander Matveev
1356116d3f 8266456: Replace direct TKit.run() calls with jdk.jpackage.test.Annotations.Test annotation
Reviewed-by: asemenyuk, herrick
2021-05-11 21:59:56 +00:00
Mandy Chung
dfe8833f5d 8266783: java/lang/reflect/Proxy/DefaultMethods.java fails with jtreg 6
Reviewed-by: iris
2021-05-11 20:22:39 +00:00
Hai-May Chao
995e956030 8266225: jarsigner is using incorrect security property to show weakness of certs
Reviewed-by: weijun, mullan
2021-05-11 19:37:26 +00:00
Jason Zaugg
0a12605df8 8265448: (zipfs): Reduce read contention in ZipFileSystem
Reviewed-by: alanb, lancea
2021-05-11 18:06:37 +00:00
Vladimir Ivanov
acf02ed553 8208237: Re-examine defmeth tests and update as needed
Reviewed-by: hseigel, lfoltan, dholmes
2021-05-11 17:14:57 +00:00
Yumin Qi
ac0287fd73 8266770: Clean pending exception before running dynamic CDS dump
Reviewed-by: ccheung, iklam
2021-05-11 16:57:40 +00:00
Brian Burkhalter
7a0a57cd56 8266820: micro java/nio/SelectorWakeup.java has wrong copyright header
Reviewed-by: chegar, alanb, michaelm, iris
2021-05-11 16:12:36 +00:00
Liam Miller-Cushon
d0daa72592 8266857: PipedOutputStream.sink should be volatile
Reviewed-by: dfuchs
2021-05-11 15:47:14 +00:00
Weijun Wang
381de0c1d0 8266753: jdk/test/lib/process/ProcTest.java failed with "Exception: Proc abnormal end"
Reviewed-by: dfuchs
2021-05-11 15:22:52 +00:00
Daniel Fuchs
2d2cd78bde 8266761: AssertionError in sun.net.httpserver.ServerImpl.responseCompleted
Reviewed-by: chegar
2021-05-11 14:48:12 +00:00
Zhengyu Gu
9c9c47e403 8266813: Shenandoah: Use shorter instruction sequence for checking if marking in progress
Reviewed-by: shade
2021-05-11 12:48:22 +00:00
Hamlin Li
0344e751e2 8266794: Remove dead code notify_allocation_jvmti_allocation_event
Reviewed-by: ayang, tschatzl
2021-05-11 11:35:48 +00:00
Matthias Baesken
9e6e2228cb 8266892: avoid maybe-uninitialized gcc warnings on linux s390x
Reviewed-by: shade, lucy
2021-05-11 10:49:15 +00:00
Albert Mingkun Yang
6575566d83 8266787: Potential overflow of pointer arithmetic in G1ArchiveAllocator
Reviewed-by: kbarrett, tschatzl
2021-05-11 10:34:56 +00:00
Jan Lahoda
8468001f88 8263452: Javac slow compilation due to algorithmic complexity
Reviewed-by: vromero, jfranck
2021-05-11 10:06:04 +00:00
Cesar
67cb22af58 8266601: Fix bugs in AddLNode::Ideal transformations
Reviewed-by: kvn, vlivanov, thartmann
2021-05-11 09:28:37 +00:00
Hamlin Li
18e9d28e8a 8266676: G1: Remove dead code init_node_id_to_index_map()
Reviewed-by: sangheki, whuang
2021-05-11 04:28:42 +00:00
Denis Konoplev
0e7bdae0f6 8265062: Remove duplication constant MaxTextureSize
Reviewed-by: prr, serb
2021-05-11 03:24:01 +00:00
Wang Huang
10a049e171 8265956: JVM crashes when matching LShiftVB Node
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Ai Jiaming <aijiaming1@huawei.com>
Reviewed-by: kvn, jiefu
2021-05-11 03:20:15 +00:00
Alex Menkov
9713152eae 8262092: vmTestbase/nsk/jvmti/scenarios/hotswap/HS102/hs102t001/TestDescription.java SIGSEGV in memmove_ssse3
Reviewed-by: lmesnik, sspitsyn
2021-05-10 22:48:01 +00:00
Sandhya Viswanathan
23446f1f5e 8265128: [REDO] Optimize Vector API slice and unslice operations
Reviewed-by: psandoz, vlivanov
2021-05-10 21:49:49 +00:00
Aleksey Shipilev
e5d3ee394a 8266802: Shenandoah: Round up region size to page size unconditionally
Reviewed-by: zgu
2021-05-10 20:28:16 +00:00
Hannes Wallnöfer
8851cb653f 8266779: Use <wbr> instead of ZERO_WIDTH_SPACE
Reviewed-by: prappo
2021-05-10 20:25:43 +00:00
Jim Laskey
0cc7833f3d 8265208: [JEP-356] : SplittableRandom and SplittableGenerators - splits() methods does not throw NullPointerException when source is null
Reviewed-by: rriggs
2021-05-10 18:52:02 +00:00
Zhengyu Gu
f78440ad43 8266440: Shenandoah: TestReferenceShortcutCycle.java test failed on AArch64
Reviewed-by: aph
2021-05-10 17:59:54 +00:00
Cesar
de784312c3 8241502: C2: Migrate x86_64.ad to MacroAssembler
Reviewed-by: vlivanov, kvn
2021-05-10 17:09:34 +00:00
Alexey Semenyuk
c8b744743b 8266603: jpackage: Add missing copyright file in Java runtime .deb installers
Reviewed-by: almatvee, herrick
2021-05-10 16:39:39 +00:00
Naoto Sato
c494efc5b5 8266774: System property values for stdout/err on Windows UTF-8
Reviewed-by: bpb, alanb
2021-05-10 16:25:30 +00:00
Calvin Cheung
25d99e5267 8266330: itableMethodEntry::initialize() asserts with archived old classes
Reviewed-by: iklam, minqi
2021-05-10 16:24:11 +00:00
Guoxiong Li
5d761fcffd 8266796: Clean up the unnecessary code in the method UnsharedNameTable#fromUtf
Reviewed-by: mcimadamore
2021-05-10 14:27:21 +00:00
Claes Redestad
e41fd73529 8266252: Streamline AbstractInterpreter::method_kind
Reviewed-by: iklam, coleenp
2021-05-10 13:51:12 +00:00
Vyom Tewari
b823b3ef29 8266797: Fix for 8266610 breaks the build on macos
Reviewed-by: dholmes, jdv
2021-05-10 13:40:28 +00:00
Jayathirth D V
53db2a0acd 8226384: Implement a better logic to switch between OpenGL and Metal pipeline
Reviewed-by: prr
2021-05-10 10:36:23 +00:00
Alexey Bakhtin
1603ca2342 8241248: NullPointerException in sun.security.ssl.HKDF.extract(HKDF.java:93)
Reviewed-by: jnimeh, xuelei
2021-05-10 09:45:35 +00:00
Claes Redestad
0f925d1f58 8266015: Implement AdapterHandlerLibrary lookup fast-path for common adapters
Reviewed-by: iklam, coleenp
2021-05-10 08:02:15 +00:00
Vyom Tewari
69b96f9a1b 8266610: Method RandomAccessFile#length() returns 0 for block devices on linux.
Reviewed-by: alanb, bpb
2021-05-10 03:51:04 +00:00
Alexander Zuev
9b76955024 8266249: javax/swing/JPopupMenu/7156657/bug7156657.java fails on macOS
Reviewed-by: jdv, pbansal, azvegint
2021-05-10 03:21:52 +00:00
Pankaj Bansal
3af4efdfcf 8265291: Error in Javadoc for doAccessibleAction API in AccessibleJSlider class
Reviewed-by: azvegint, jdv
2021-05-08 10:56:29 +00:00
Alan Bateman
be4f25b0c8 8266369: (se) Add wepoll based Selector
Reviewed-by: chegar, michaelm, vtewari, dfuchs, bpb
2021-05-08 07:14:36 +00:00
Guoxiong Li
ff77ca8bd4 8266675: Optimize IntHashTable for encapsulation and ease of use
Reviewed-by: mcimadamore
2021-05-08 03:09:27 +00:00
Yumin Qi
04fad70437 8266765: [BACKOUT] JDK-8255493 Support for pre-generated java.lang.invoke classes in CDS dynamic archive
Reviewed-by: ccheung
2021-05-07 23:49:00 +00:00
Kevin Walls
0790e6016e 8196743: jstatd doesn't see new Java processes inside Docker container
Reviewed-by: sspitsyn, ysuenaga
2021-05-07 15:43:09 +00:00
Hannes Wallnöfer
c6aa8f19ac 8232644: bugs in serialized-form.html
Reviewed-by: jjg
2021-05-07 15:34:53 +00:00
Brian Burkhalter
b5b31197e5 8266589: (fs) Improve performance of Files.copy() on macOS using copyfile(3)
Reviewed-by: alanb
2021-05-07 15:23:38 +00:00
Jonathan Gibbons
947d69df04 8265042: javadoc HTML files not generated for types nested in records
Reviewed-by: hannesw
2021-05-07 14:51:03 +00:00
Vicente Romero
946b0fe19a 8266645: javac should not check for sealed supertypes in intersection types
Reviewed-by: mcimadamore
2021-05-07 14:38:18 +00:00
Thomas Stuefe
74fecc070a 8266503: [UL] Make Decorations safely copy-able and reduce their size
Reviewed-by: simonis, ysuenaga
2021-05-07 14:04:27 +00:00
Patrick Concannon
86b8dc9f5b 8265426: Update java.security to use instanceof pattern variable
Reviewed-by: rriggs, weijun, dfuchs
2021-05-07 13:42:40 +00:00
Daniel Fuchs
3fcdc50e44 8266646: Add more diagnostic to java/lang/System/LoggerFinder/modules
Reviewed-by: naoto, iris, bpb, lancea
2021-05-07 12:56:49 +00:00
Wang Huang
9a19a0cc10 8264760: JVM crashes when two threads encounter the same resolution error
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Wu Yan <wuyan34@huawei.com>
Reviewed-by: dholmes, hseigel
2021-05-07 12:55:40 +00:00
Thomas Schatzl
14f0afe811 8214237: Join parallel phases post evacuation
Reviewed-by: iwalulya, sjohanss
2021-05-07 11:38:29 +00:00
Stefan Johansson
2798b0d98a 8266349: Pass down requested page size to reserve_memory_special
Reviewed-by: stuefe, mgkwill
2021-05-07 11:33:10 +00:00
Hannes Wallnöfer
e0c86884e5 8262992: Improve @see output
Reviewed-by: jjg
2021-05-07 10:45:48 +00:00
Hannes Wallnöfer
d2b53509c0 8263507: Improve structure of package summary pages
Reviewed-by: jjg
2021-05-07 10:44:02 +00:00
Tobias Hartmann
a65021e38c 8266618: Remove broken -XX:-OptoRemoveUseless
Reviewed-by: kvn, neliasso
2021-05-07 09:55:08 +00:00
Thomas Stuefe
94c6177f24 8266536: Provide a variant of os::iso8601_time which works with arbitrary timestamps
Reviewed-by: xliu, simonis, ysuenaga
2021-05-07 09:47:46 +00:00
Nick Gasson
71b8ad45b4 8266609: AArch64: include FP/LR space in LIR_Assembler::initial_frame_size_in_bytes()
Reviewed-by: aph
2021-05-07 09:20:16 +00:00
Tejpal Rebari
ebb68d2b86 8049700: Deprecate obsolete classes and methods in javax/swing/plaf/basic
Reviewed-by: psadhukhan, prr, serb, azvegint, iris
2021-05-07 05:12:57 +00:00
Lin Zang
3a474d953a 8265612: revise the help info for jmap histo command
Reviewed-by: cjplummer, sspitsyn
2021-05-07 04:40:49 +00:00
Yasumasa Suenaga
c97f56cdaf 8266172: -Wstringop-overflow happens in vmError.cpp
Reviewed-by: dholmes, stuefe
2021-05-07 03:21:28 +00:00
Yumin Qi
43ad24feb2 8265465: jcmd VM.cds should keep already dumped archive when exception happens
Reviewed-by: iklam, ccheung
2021-05-07 03:01:32 +00:00
buddyliao
66191ff4b0 8266193: BasicJMapTest does not include testHistoParallel methods
Reviewed-by: sspitsyn, amenkov
2021-05-07 02:57:32 +00:00
Aleksey Shipilev
36e5ad61e6 8263236: runtime/os/TestTracePageSizes.java fails on old kernels
Reviewed-by: dholmes, sjohanss, stuefe
2021-05-06 20:34:49 +00:00
Alex Menkov
0ca86da0e3 8266002: vmTestbase/nsk/jvmti/ClassPrepare/classprep001 should skip events for unexpected classes
Reviewed-by: cjplummer, sspitsyn
2021-05-06 18:38:11 +00:00
Alex Menkov
52f1db6b6f 8262002: java/lang/instrument/VerifyLocalVariableTableOnRetransformTest.sh failed with "TestCaseScaffoldException: DummyClassWithLVT did not match .class file"
Reviewed-by: coleenp, sspitsyn
2021-05-06 18:34:12 +00:00
Weijun Wang
04f7112647 8266293: Key protection using PBEWithMD5AndDES fails with "java.security.InvalidAlgorithmParameterException: Salt must be 8 bytes long"
Reviewed-by: valeriep
2021-05-06 18:00:11 +00:00
Aleksey Shipilev
a90b33a955 8266573: Make sure blackholes are tagged for all JVMCI paths
Reviewed-by: never
2021-05-06 16:42:06 +00:00
Hannes Wallnöfer
2dcbedf92a 8266044: Nested class summary should show kind of class or interface
Reviewed-by: jjg
2021-05-06 14:55:00 +00:00
Lance Andersen
e8405970b9 8266460: java.io tests fail on null stream with upgraded jtreg/TestNG
Reviewed-by: bpb
2021-05-06 14:18:41 +00:00
Lance Andersen
fcedfc8a3b 8266579: Update test/jdk/java/lang/ProcessHandle/PermissionTest.java & test/jdk/java/sql/testng/util/TestPolicy.java
Reviewed-by: joehw, naoto, bpb
2021-05-06 14:13:45 +00:00
Claes Redestad
c665dba591 8266561: Remove Compile::_save_argument_registers
Reviewed-by: kvn, thartmann
2021-05-06 12:57:44 +00:00
Albert Mingkun Yang
47d4438e75 8266426: ZHeapIteratorOopClosure does not handle native access properly
Co-authored-by: Per Liden <pliden@openjdk.org>
Co-authored-by: Erik Österlund <eosterlund@openjdk.org>
Co-authored-by: Stefan Karlsson <stefank@openjdk.org>
Reviewed-by: stefank, pliden
2021-05-06 12:52:34 +00:00
Jayathirth D V
2438498a3f 8252758: Lanai: Optimize index calculation while copying glyphs
Reviewed-by: aghaisas, pbansal
2021-05-06 12:35:13 +00:00
Harold Seigel
eb3b96d86b 8266496: WBIsKlassAliveClosure.do_klass() fails for hidden classes
Reviewed-by: dholmes, coleenp, mseledtsov, lfoltan
2021-05-06 12:25:53 +00:00
Koichi Sakata
51f5adfca3 8265047: Inconsistent warning message in jcmd VM.log
Reviewed-by: dholmes, stuefe, sspitsyn
2021-05-06 12:07:22 +00:00
Matthias Baesken
ea30bd6684 8263362: Avoid division by 0 in java/awt/font/TextJustifier.java justify
Reviewed-by: psadhukhan
2021-05-06 11:57:20 +00:00
Yasumasa Suenaga
0f9852c63b 8266168: -Wmaybe-uninitialized happens in check_code.c
Reviewed-by: stuefe
2021-05-06 11:54:32 +00:00
Thomas Stuefe
a86ee9b3f3 8266545: 8261169 broke Harfbuzz build with gcc 7 and 8
Reviewed-by: mbaesken, rrich
2021-05-06 09:22:32 +00:00
wattsun
2dd56676fb 8266018: Shenandoah: fix an incorrect assert
Reviewed-by: rkennke
2021-05-06 09:16:35 +00:00
Tobias Hartmann
22ca62c2cb 8266542: Remove broken -XX:-UseLoopSafepoints flag
Reviewed-by: tschatzl, kvn
2021-05-06 07:36:28 +00:00
miao zheng
7835cdbef4 8265915: adjust state_unloading_cycle compuation order in nmethod::is_unloading
Reviewed-by: thartmann
2021-05-06 07:10:21 +00:00
Sibabrata Sahoo
20ad428974 8180568: Refactor javax/crypto shell tests to plain java tests
Reviewed-by: wetmore
2021-05-06 05:50:22 +00:00
Phil Race
138d573c35 8262392: Update Mesa 3-D Headers to version 21.0.3
Reviewed-by: serb, jdv, kcr
2021-05-05 19:39:15 +00:00
Roman Kennke
9de62a454f 8266505: Cleanup LibraryCallKit::make_unsafe_address()
Reviewed-by: roland, kvn
2021-05-05 19:18:06 +00:00
Roman Kennke
1885c83aca 8266504: Remove leftovers from BarrierSetAssemblerC1
Reviewed-by: thartmann
2021-05-05 19:17:16 +00:00
Aleksey Shipilev
6018336fc5 8259316: [REDO] C1/C2 compiler support for blackholes
Reviewed-by: vlivanov, kvn, iignatyev
2021-05-05 14:27:21 +00:00
Hannes Wallnöfer
f07bb2f4b9 8250766: javadoc adds redundant spaces when @see program element is wrapped
Reviewed-by: prappo
2021-05-05 14:01:01 +00:00
Zhengyu Gu
61bb6eca3e 8266453: Shenandoah: Disable write protections before patching nmethod in nmethod_barrier on MacOSX/AArch64
Reviewed-by: rkennke
2021-05-05 13:00:17 +00:00
Coleen Phillimore
a05e8e2422 8266497: Remove unnecessary EMCP liveness indication
Reviewed-by: iklam, dholmes, sspitsyn
2021-05-05 12:59:39 +00:00
Coleen Phillimore
6ba911d64e 8266498: Make debug ps() call print_stack
Reviewed-by: stuefe, lfoltan
2021-05-05 12:44:26 +00:00
Andrew Haley
ef0f693065 8266499: Delete dead code in aarch64.ad
Reviewed-by: kvn
2021-05-05 12:17:01 +00:00
Zhengyu Gu
71d0858b32 8266522: Shenandoah: Shenandoah LRB calls wrong runtime barrier on aarch64
Reviewed-by: rkennke
2021-05-05 12:14:12 +00:00
Thomas Stuefe
0ac84d1813 8266506: [aix] Treat mapping attempt too close to BRK as a mapping error
Reviewed-by: mdoerr
2021-05-05 11:57:20 +00:00
Thomas Stuefe
02cdd6eb6d 8266419: [aix] in mmap mode, os::attempt_reserve_memory_at() fails to handle wrong mapping address
Reviewed-by: mdoerr
2021-05-05 11:54:57 +00:00
Thomas Stuefe
250b45a510 8266222: [aix] In mmap-mode, partial releases with os::release_memory may trash internal bookkeeping
Reviewed-by: mdoerr
2021-05-05 11:49:44 +00:00
Roman Kennke
65ce4d2056 8266491: Remove resolve and obj_equals leftovers from BarrierSetAssembler
Reviewed-by: tschatzl
2021-05-05 10:42:21 +00:00
Jan Lahoda
a8046c9157 8266436: Synthetic constructor trees have non-null return type
Reviewed-by: vromero
2021-05-05 10:31:11 +00:00
Athijegannathan Sundararajan
c9873c416d 8260621: (jrtfs) ThreadLocal memory leak in ImageBufferCache when using jrtfs
Reviewed-by: jlaskey, vtewari
2021-05-05 10:10:05 +00:00
Fairoz Matte
82768d9a31 8221503: vmTestbase/nsk/jdb/eval/eval001/eval001.java fails with: com.sun.jdi.InvalidTypeException: Can't assign double[][][] to double[][][]
Reviewed-by: cjplummer, sspitsyn
2021-05-05 07:11:14 +00:00
Prasanta Sadhukhan
b71f85ad9d 8264398: BevelBorderUIResource​(int, Color, Color) and BevelBoder(int, Color, Color) spec should clarify about usage of highlight and shadow color
Reviewed-by: serb
2021-05-05 06:19:54 +00:00
Yasumasa Suenaga
b1725550a2 8266171: -Warray-bounds happens in imageioJPEG.c
Reviewed-by: prr
2021-05-05 00:34:26 +00:00
Yasumasa Suenaga
8bcebe73d2 8265505: findsym does not work on remote debug server
Reviewed-by: cjplummer, kevinw
2021-05-05 00:26:12 +00:00
Yasumasa Suenaga
b88785d2c6 8266038: Move newAddress() to JVMDebugger
Reviewed-by: kevinw, amenkov
2021-05-05 00:22:00 +00:00
Alexander Matveev
2c53654bf1 8266179: [macos] jpackage should specify architecture for produced pkg files
Reviewed-by: herrick, kcr, asemenyuk
2021-05-04 23:35:24 +00:00
David Holmes
d2827994f8 8255566: Add size validation when parsing values from VersionProps
Reviewed-by: rehn, iklam
2021-05-04 22:24:41 +00:00
David Holmes
61365d5f58 8266465: Add wildcard to JTwork/JTreport exclude in jib-profiles.js
Reviewed-by: erikj
2021-05-04 22:07:24 +00:00
Jim Laskey
f00b70e2ca 8266527: RandomTestCoverage.java failing due to API removal
Reviewed-by: rriggs
2021-05-04 21:18:48 +00:00
Andy Herrick
c53dee7480 8266227: Fix help text for --mac-signing-keychain
Reviewed-by: almatvee, asemenyuk
2021-05-04 20:10:37 +00:00
Phil Race
80323b7f66 8261169: Upgrade HarfBuzz to the latest 2.8.0
Reviewed-by: serb
2021-05-04 18:23:09 +00:00
Phil Race
9c4efddb4a 8263124: Missed initialization of baselineY in sun.font.StrikeMetrics
Reviewed-by: azvegint, kizune, pbansal
2021-05-04 18:03:46 +00:00
Naoto Sato
4e96b31042 8265989: System property for the native character encoding name
Reviewed-by: iris, joehw, rriggs
2021-05-04 17:30:14 +00:00
Yumin Qi
8b37d48770 8255493: Support for pre-generated java.lang.invoke classes in CDS dynamic archive
Reviewed-by: iklam, ccheung
2021-05-04 17:18:43 +00:00
Jim Laskey
770dfc1ec4 8265279: Remove unused RandomGeneratorFactory.all(Class<T> category)
Reviewed-by: rriggs
2021-05-04 13:26:08 +00:00
Hui Shi
ee5bba0dc4 8265767: compiler/eliminateAutobox/TestIntBoxing.java crashes on arm32 after 8264649 in debug VMs
Reviewed-by: kvn, thartmann
2021-05-04 12:58:25 +00:00
Jim Laskey
05e601748a 8265137: java.util.Random suddenly has new public methods nowhere documented
Reviewed-by: uschindler, darcy, smarks
2021-05-04 11:53:07 +00:00
Wang Huang
aa90df6f51 8266187: Memory leak in appendBootClassPath()
Co-authored-by: Wang Huang <whuang@openjdk.org>
Co-authored-by: Sun Jianye <sunjianye@huawei.com>
Reviewed-by: kevinw, mli, alanb
2021-05-04 10:02:22 +00:00
Tobias Hartmann
b65190483c 8266438: Compile::remove_useless_nodes does not remove opaque nodes
Reviewed-by: vlivanov, chagedorn
2021-05-04 09:42:16 +00:00
Stefan Johansson
141cc2f2a3 8261527: Record page size used for underlying mapping in ReservedSpace
Reviewed-by: rkennke, iwalulya
2021-05-04 09:00:10 +00:00
Martin Doerr
8e071c4b52 8265784: [C2] Hoisting of DecodeN leaves MachTemp inputs behind
Reviewed-by: kvn, goetz
2021-05-04 07:56:42 +00:00
Stefan Karlsson
ce1bc9d8bc 8266432: ZGC: GC allocation stalls can trigger deadlocks
Reviewed-by: pliden, ayang
2021-05-04 07:27:59 +00:00
Tejpal Rebari
30ccd8081b 8264950: Set opaque for JTooltip in config file of NimbusLookAndFeel
Reviewed-by: serb, pbansal
2021-05-04 04:53:25 +00:00
Igor Ignatyev
cfdf4a7de7 8266449: cleanup jtreg tags in compiler/intrinsics/sha/cli tests
Reviewed-by: kvn
2021-05-04 04:47:18 +00:00
Mandy Chung
3544a9d0e4 8266391: Replace use of reflection in jdk.internal.platform.Metrics
Reviewed-by: redestad
2021-05-03 21:58:37 +00:00
Sergey Bylokhov
020236cb98 8264786: [macos] All Swing/AWT apps cause Allow Notifications prompt to appear when app is launched
Reviewed-by: azvegint, kizune
2021-05-03 20:53:35 +00:00
Philippe Marschall
45760d4baf 8266320: (bf) ReadOnlyBufferException in heap buffer put(String,int,int) should not be conditional
Reviewed-by: alanb, bpb
2021-05-03 17:28:46 +00:00
Marcus G K Williams
ff65920cd1 8265491: Math Signum optimization for x86
Reviewed-by: jiefu, jbhateja, neliasso
2021-05-03 16:28:14 +00:00
Yude Lin
55cc0af404 8266185: Shenandoah: Fix incorrect comment/assertion messages
Reviewed-by: shade
2021-05-03 15:23:49 +00:00
Evgeny Nikitin
880c138b58 8265349: vmTestbase/../stress/compiler/deoptimize/Test.java fails with OOME due to CodeCache exhaustion.
Reviewed-by: iignatyev
2021-05-03 14:32:18 +00:00
Yi Yang
001c5142a6 8265322: C2: Simplify control inputs for BarrierSetC2::obj_allocate
Reviewed-by: kvn, neliasso
2021-05-03 14:22:26 +00:00
Per Liden
194bceca3a 8265984: Concurrent GC: Some tests fail "assert(is_frame_safe(f)) failed: Frame must be safe"
Reviewed-by: eosterlund, stefank, zgu
2021-05-03 13:34:49 +00:00
Zhengyu Gu
1d9ea3ae0f 8266083: Shenandoah: Consolidate dedup/no dedup oop closures
Reviewed-by: rkennke
2021-05-03 12:35:26 +00:00
Albert Mingkun Yang
80941f475f 8234446: Post-CMS workgroup hierarchy cleanup
Reviewed-by: tschatzl, rkennke
2021-05-03 11:45:06 +00:00
Albert Mingkun Yang
ac760c7f9f 8266295: Remove unused _concurrent_iteration_safe_limit
Reviewed-by: tschatzl, sjohanss
2021-05-03 10:06:57 +00:00
Vladimir Ivanov
b42d4969b1 8266388: C2: Improve constant ShiftCntV on x86
Reviewed-by: kvn
2021-05-03 09:46:49 +00:00
Claes Redestad
05cfac9f5b 8266412: Remove redundant TemplateInterpreter entries
Reviewed-by: jiefu, dholmes
2021-05-03 09:22:58 +00:00
Per Liden
c5dc657f0b 8266056: runtime/stringtable/StringTableCleaningTest.java failed with "RuntimeException: Missing Callback in [10, 11]"
Reviewed-by: coleenp, dholmes
2021-05-03 07:28:19 +00:00
Ajit Ghaisas
8fa50ebdf2 8263363: Minor cleanup of Lanai code - unused code removal and comments correction
Reviewed-by: serb
2021-05-03 04:37:24 +00:00
Jie Fu
7e30130e35 8266401: mark hotspot compiler/intrinsics/sha/cli tests which ignore VM flags
Reviewed-by: iignatyev, kvn
2021-05-02 23:13:22 +00:00
Sergey Bylokhov
dedddd5ab2 8266248: Compilation failure in PLATFORM_API_MacOSX_MidiUtils.c with Xcode 12.5
Reviewed-by: prr, azvegint
2021-05-02 05:29:12 +00:00
Andy Herrick
5c083e8560 8266129: tools/jpackage/windows/WinInstallerIconTest.java hangs with fastdebug
Reviewed-by: asemenyuk, almatvee
2021-05-01 12:03:12 +00:00
Tagir F. Valeev
3e667cc405 8265356: need code example for getting canonical constructor of a Record
Reviewed-by: smarks
2021-05-01 07:30:55 +00:00
Vladimir Ivanov
f86b70c391 8266328: C2: Remove InlineWarmCalls
Reviewed-by: kvn, iveresov
2021-04-30 22:17:04 +00:00
Rahul Raghavan
928d63242e 8252237: C2: Call to compute_separating_interferences has wrong argument order
Reviewed-by: kvn, thartmann
2021-04-30 20:15:48 +00:00
Daniel D. Daugherty
50fa1623ad 8266389: ProblemList java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java on generic-all
Reviewed-by: mikael, prr
2021-04-30 19:55:19 +00:00
Ian Graves
dd05158b24 8266155: Convert java.base to use Stream.toList()
Reviewed-by: bpb, naoto, iris, chegar
2021-04-30 19:52:26 +00:00
Ian Graves
c36c63a008 8260560: convert jdeps and jdeprscan tools to use Stream.toList()
Reviewed-by: alanb, mchung, iris
2021-04-30 19:51:36 +00:00
Mikael Vidstedt
096e9e5d13 8266318: Switch to macos prefix for macOS bundles
Reviewed-by: prr, erikj, iris
2021-04-30 19:05:39 +00:00
Daniel Fuchs
0544a732a4 8255227: java/net/httpclient/FlowAdapterPublisherTest.java intermittently failing with TestServer: start exception: java.io.IOException: Invalid preface
Reviewed-by: chegar
2021-04-30 17:21:55 +00:00
Weijun Wang
48bb996ac9 8266220: keytool still prompt for store password on a password-less pkcs12 file if -storetype pkcs12 is specified
Reviewed-by: coffeys, hchao
2021-04-30 14:04:13 +00:00
Alexey Ushakov
87de5b750d 8266040: Lanai: Incorrect calculations of clipping boundaries
Reviewed-by: jdv
2021-04-30 13:53:58 +00:00
Aleksei Voitylov
eb8db12ce6 8263396: Atomic::CmpxchgByteUsingInt::set_byte_in_int needs an explicit cast
Reviewed-by: dholmes
2021-04-30 12:34:19 +00:00
Hannes Wallnöfer
07ecd421d1 8258602: JavaDoc field summary does not indicate final modifier
Reviewed-by: jjg
2021-04-30 09:48:09 +00:00
Sean Coffey
276a1bf767 8236671: NullPointerException in JKS keystore
Reviewed-by: hchao, xuelei
2021-04-30 09:32:40 +00:00
Alexander Scherbatiy
e9370a13b6 8265761: Font with missed font family name is not properly printed on Windows
Reviewed-by: serb, prr
2021-04-30 08:46:58 +00:00
Rahul Raghavan
3554dc299d 8264395: WB_EnqueueInitializerForCompilation fails with "method holder must be initialized" when called for uninitialized class
Reviewed-by: chagedorn, thartmann
2021-04-30 08:23:57 +00:00
Hannes Wallnöfer
4d77171540 8249903: jdk/javadoc/doclet/testSerializedForm/TestSerializedForm.java needs to be updated after 8146022 got closed
Reviewed-by: jjg
2021-04-30 07:47:39 +00:00
Jie Fu
51b218842f 8266267: Remove unnecessary jumps in Intel Math Library StubRoutines
Reviewed-by: thartmann, neliasso, kvn
2021-04-30 02:30:44 +00:00
Ioi Lam
2c381e0f8d 8262376: ReplaceCriticalClassesForSubgraphs.java fails if --with-build-jdk is used
Reviewed-by: dholmes, minqi, ccheung
2021-04-29 23:22:49 +00:00
Jie Fu
5ecef01c4a 8266217: ZGC: Improve the -Xlog:gc+init output for NUMA
Reviewed-by: stefank, tschatzl, pliden
2021-04-29 23:06:35 +00:00
Valerie Peng
5d8c1cc8a0 8255410: Add ChaCha20 and Poly1305 support to SunPKCS11 provider
Reviewed-by: jnimeh
2021-04-29 21:02:41 +00:00
Phil Race
46b4a145a6 8266315: Problem list failing test java/awt/font/TextLayout/LigatureCaretTest.java
Reviewed-by: dcubed
2021-04-29 19:13:22 +00:00
Patricio Chilano Mateo
42af7da94d 8265933: Move Java monitor related fields from class Thread to JavaThread
Reviewed-by: rehn, dcubed, coleenp, dholmes
2021-04-29 18:13:27 +00:00
Yumin Qi
1afbab6394 8263998: Remove mentions of mc region in comments
Reviewed-by: ccheung
2021-04-29 17:30:50 +00:00
Daniel D. Daugherty
51b2fb5c84 8266299: ProblemList runtime/stringtable/StringTableCleaningTest.java on linux-aarch64 with ZGC
Reviewed-by: bpb
2021-04-29 17:24:05 +00:00
Jamsheed Mohammed C M
49d04586ed 8266288: assert root method not found in witnessed_reabstraction_in_supers is too strong
Reviewed-by: vlivanov, thartmann
2021-04-29 16:16:42 +00:00
Daniel Fuchs
01415f33e3 8266250: WebSocketTest and WebSocketProxyTest call assertEquals(List<byte[]>, List<byte[]>)
Reviewed-by: prappo
2021-04-29 16:15:06 +00:00
Brian Burkhalter
5f15666092 8266078: Reader.read(CharBuffer) advances Reader position for read-only Charbuffers
Reviewed-by: rriggs, alanb, chegar
2021-04-29 15:54:11 +00:00
Brian Burkhalter
2a03739530 8266014: Regression brought by optimization done with JDK-4926314
Reviewed-by: alanb, naoto
2021-04-29 15:35:14 +00:00
Brian Burkhalter
6bb71d9e25 8264762: ByteBuffer.byteOrder(BIG_ENDIAN).asXBuffer.put(Xarray) and ByteBuffer.byteOrder(nativeOrder()).asXBuffer.put(Xarray) are slow
Reviewed-by: alanb, psandoz, chegar
2021-04-29 15:34:04 +00:00
Jan Lahoda
f0f6b0d919 8266027: The diamond finder does not find diamond candidates in field initializers
Reviewed-by: jfranck, vromero
2021-04-29 14:55:28 +00:00
Jan Lahoda
8072ea5628 8238173: jshell - switch statement with a single default not return cause syntax error
Reviewed-by: vromero
2021-04-29 14:54:39 +00:00
Thomas Schatzl
c76ce28754 8265842: G1: Introduce API to run multiple separate tasks in a single gangtask
Reviewed-by: lkorinth, ayang, sjohanss, iwalulya
2021-04-29 14:44:14 +00:00
Naoto Sato
294347b59b 8265918: java/io/Console/CharsetTest.java failed with "expect: spawn id exp6 not open"
Reviewed-by: alanb, iris
2021-04-29 13:01:30 +00:00
Andrew Leonard
84b52db931 8265666: Enable AIX build platform to make external debug symbols
Reviewed-by: erikj, mdoerr
2021-04-29 12:35:56 +00:00
Prasanta Sadhukhan
dd8286e2f3 8198616: java/awt/Focus/6378278/InputVerifierTest.java fails on mac
Reviewed-by: jdv
2021-04-29 10:54:27 +00:00
Prasanta Sadhukhan
5574922ff6 8266284: ProblemList java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java
Reviewed-by: jdv
2021-04-29 10:37:31 +00:00
Jan Lahoda
df7f0b4671 8198317: Enhance JavacTool.getTask for flexibility
Co-authored-by: Guoxiong Li <lgxbslgx@gmail.com>
Reviewed-by: jfranck
2021-04-29 09:38:24 +00:00
Julia Boes
115a413ee4 8265123: Add static factory methods to com.sun.net.httpserver.Filter
Co-authored-by: Michael McMahon <michaelm@openjdk.org>
Reviewed-by: chegar, michaelm, dfuchs
2021-04-29 09:07:46 +00:00
Yasumasa Suenaga
39abac98f9 8266176: -Wmaybe-uninitialized happens in libArrayIndexOutOfBoundsExceptionTest.c
Reviewed-by: dholmes
2021-04-29 07:59:35 +00:00
Alexey Ushakov
155da257fd 8265005: Introduce the new client property for mac: apple.awt.windowTitleVisible
Reviewed-by: serb
2021-04-29 07:31:10 +00:00
Jie Fu
91226fa122 8265940: Enable C2's optimization for Math.pow(x, 0.5) on all platforms
Reviewed-by: neliasso, kvn
2021-04-29 07:01:15 +00:00
Igor Ignatyev
56cde70da2 8266265: mark hotspot compiler/vectorization tests which ignore VM flags
Reviewed-by: kvn
2021-04-29 04:53:07 +00:00
Yasumasa Suenaga
49372149e5 8266174: -Wmisleading-indentation happens in libmlib_image sources
Reviewed-by: azvegint
2021-04-29 04:21:57 +00:00
Igor Ignatyev
b305eff7d3 8266238: mark hotspot compiler/inlining tests which ignore VM flags
Reviewed-by: kvn
2021-04-29 03:52:24 +00:00
Igor Ignatyev
df3b2d0495 8266264: mark hotspot compiler/eliminateAutobox tests which ignore VM flags
Reviewed-by: kvn
2021-04-29 03:51:40 +00:00
Igor Ignatyev
6b263e6832 8266256: compiler.vectorization.TestBufferVectorization does testing twice
Reviewed-by: kvn
2021-04-29 03:50:44 +00:00
Igor Ignatyev
69155f43c1 8266231: mark hotspot compiler/c1 tests which ignore VM flags
Reviewed-by: kvn
2021-04-29 03:35:29 +00:00
Prasanta Sadhukhan
0e225ef9da 8197821: Test java/awt/font/TextLayout/LigatureCaretTest.java fails on Windows
8197796: Test java/awt/Graphics2D/DrawString/DrawRotatedStringUsingRotatedFont.java  fails on Windows

Reviewed-by: azvegint, serb
2021-04-29 03:02:22 +00:00
Yasumasa Suenaga
a1c942c02b 8266170: -Wnonnull happens in classLoaderData.inline.hpp
Reviewed-by: dholmes, coleenp
2021-04-29 01:05:05 +00:00
Yasumasa Suenaga
4a9f2319c9 8266173: -Wmaybe-uninitialized happens in jni_util.c
Reviewed-by: dholmes
2021-04-29 01:04:20 +00:00
Igor Ignatyev
9605aeddee 8266251: compiler.inlining.InlineAccessors shouldn't do testing in driver VM
Reviewed-by: kvn, epavlova
2021-04-29 00:12:56 +00:00
Igor Ignatyev
03d4149d0c 8266255: compiler/eliminateAutobox/TestEliminateBoxInDebugInfo.java uses wrong package name
Reviewed-by: kvn
2021-04-29 00:12:08 +00:00
Jie Fu
794cefe8f9 8241354: ZGC still crashes in containers with NUMA due to get_mempolicy is disabled by default
Co-authored-by: Per Liden <pliden@openjdk.org>
Reviewed-by: pliden
2021-04-28 22:37:29 +00:00
David Holmes
23180f848f 8266017: Refactor the *klass::array_klass_impl code to separate the non-exception-throwing API
Reviewed-by: coleenp, iklam
2021-04-28 20:52:50 +00:00
Igor Ignatyev
f75dd80254 8266230: mark hotspot compiler/c2 tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 20:47:57 +00:00
Claes Redestad
9df6cc7cc2 8264678: Incomplete comment in build.tools.generatecharacter.GenerateCharacter
Reviewed-by: erikj, naoto, iris
2021-04-28 19:51:01 +00:00
Igor Ignatyev
73cfc26dc2 8266232: compiler.c1.TestRangeCheckEliminated should be run in driver mode
Reviewed-by: kvn
2021-04-28 19:50:22 +00:00
Phil Race
3e1b90a2ef 8266157: Problem list several awt jtreg tests that fail on macOS 11
Reviewed-by: dcubed, pbansal
2021-04-28 19:03:33 +00:00
Igor Ignatyev
3f9879f1cd 8266190: mark hotspot compiler/codecache tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 18:47:19 +00:00
Calvin Cheung
d12e01a5cd 8264472: Add a test group for running CDS tests with -XX:+VerifySharedSpaces
Reviewed-by: iklam, mseledtsov
2021-04-28 18:20:51 +00:00
Mandy Chung
b3b2bb2875 8265773: incorrect jdeps message "jdk8internals" to describe a removed JDK internal API
Reviewed-by: alanb
2021-04-28 17:34:43 +00:00
Sean Mullan
278057756a 8196415: Disable SHA-1 Signed JARs
Reviewed-by: coffeys
2021-04-28 17:13:21 +00:00
Aleksey Shipilev
21f65f8e79 8266206: Build failure after JDK-8264752 with older GCCs
Reviewed-by: mgronlun
2021-04-28 16:41:51 +00:00
Igor Ignatyev
c71c26859f 8266165: TestNoWarningLoopStripMiningIterSet is runnable only on VM w/ G1, Shenandoah, Z and Epsilon
Reviewed-by: roland
2021-04-28 16:30:27 +00:00
Igor Ignatyev
8954befd77 8266188: mark hotspot compiler/cpuflags tests which ignore VM flags
Reviewed-by: chagedorn, thartmann
2021-04-28 15:46:16 +00:00
Igor Ignatyev
19d3c451b8 8266184: a few compiler/debug tests don't check exit code
Reviewed-by: thartmann
2021-04-28 15:45:23 +00:00
Fernando Guallini
7e3bc4cb44 8228442: DHKeyExchange/LegacyDHEKeyExchange.java failed due to "SSLException: An established connection was aborted by the software in your host machine"
Reviewed-by: xuelei
2021-04-28 15:40:53 +00:00
Harold Seigel
f40bf1d240 8266087: Move 'buffer' declaration in get_user_name_slow() inside of linux specific code
Reviewed-by: zgu, dcubed
2021-04-28 14:50:12 +00:00
Fernando Guallini
ec383abc1d 8183374: Refactor java/lang/Runtime shell tests to java
Reviewed-by: coffeys
2021-04-28 14:00:23 +00:00
Sibabrata Sahoo
343a4a76f2 8185127: Add tests to cover hashCode() method for java supported crypto key types
Reviewed-by: valeriep
2021-04-28 09:48:16 +00:00
Kevin Walls
e325a750ac 8264593: debug.cpp utilities should be available in product builds.
Reviewed-by: sspitsyn, coleenp, vlivanov
2021-04-28 08:53:48 +00:00
Roberto Castañeda Lozano
e879f8c6c8 8265587: IGV: track nodes across matching
Preserve the IGV node identifier of Ideal nodes in their corresponding machine
nodes after matching, to allow IGV users to track nodes across this phase.

Reviewed-by: thartmann, vlivanov
2021-04-28 08:45:15 +00:00
Xin Liu
164454feeb 8265867: thread.hpp defines some enums but no reference
Reviewed-by: dholmes, stuefe, iklam, coleenp
2021-04-28 06:55:07 +00:00
Jie Fu
75a2354dc2 8266028: C2 computes -0.0 for Math.pow(-0.0, 0.5)
Reviewed-by: aph, neliasso, kvn
2021-04-28 06:16:47 +00:00
Prasanta Sadhukhan
ca37be1ead 8197800: Test java/awt/Focus/NonFocusableWindowTest/NoEventsTest.java fails on Windows
Reviewed-by: aivanov, serb
2021-04-28 05:57:39 +00:00
Prasanta Sadhukhan
cf92693957 8198619: java/awt/Focus/FocusTraversalPolicy/ButtonGroupLayoutTraversal/ButtonGroupLayoutTraversalTest.java fails on mac
Reviewed-by: aivanov, serb
2021-04-28 05:52:22 +00:00
Per Liden
2201e11cbf 8266055: ZGC: ZHeap::print_extended_on() doesn't disable deferred delete
Reviewed-by: eosterlund, ayang
2021-04-28 05:50:25 +00:00
Prasanta Sadhukhan
ce48f04085 8198617: java/awt/Focus/6382144/EndlessLoopTest.java fails on mac
Reviewed-by: jdv, serb
2021-04-28 05:48:50 +00:00
Pankaj Bansal
0438cea65b 8136517: [macosx]Test java/awt/Focus/8073453/AWTFocusTransitionTest.java fails on MacOSX
Reviewed-by: serb
2021-04-28 04:48:07 +00:00
Igor Ignatyev
6b5e5d7a2c 8266181: compiler/eliminateAutobox/TestEliminateBoxInDebugInfo should be in driver mode
Reviewed-by: kvn
2021-04-28 04:01:42 +00:00
Igor Ignatyev
81b1502701 8266161: mark hotspot compiler/rtm tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:43:41 +00:00
Igor Ignatyev
4a8324d48b 8266180: compiler/vectorapi/TestVectorErgonomics should be run in driver mode
Reviewed-by: jiefu, kvn, epavlova
2021-04-28 03:43:08 +00:00
Igor Ignatyev
0601aba545 8266175: mark hotspot compiler/jsr292 tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:42:07 +00:00
Igor Ignatyev
69ad8ac537 8266169: mark hotspot compiler/jvmci tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:41:27 +00:00
Igor Ignatyev
1a2a570c8d 8266166: mark hotspot compiler/linkage tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:40:47 +00:00
Igor Ignatyev
5ee58b0496 8266164: mark hotspot compiler/loopstripmining tests which ignore VM flags
Reviewed-by: kvn
2021-04-28 03:39:47 +00:00
Xue-Lei Andrew Fan
1a37bce5af 8263779: SSLEngine reports NEED_WRAP continuously without producing any further output
Reviewed-by: wetmore
2021-04-28 03:21:47 +00:00
Jie Fu
889d246681 8265917: Different values computed by C2 and interpreter/C1 for Math.pow(x, 2.0) on x86_32
Reviewed-by: kvn, thartmann
2021-04-28 03:10:28 +00:00
Erik Gahlin
e144104bb3 8262908: JFR: Allow JFR to stream events from a known repository path
Reviewed-by: mgronlun
2021-04-28 02:02:53 +00:00
Igor Ignatyev
30b1354085 8266153: mark hotspot compiler/onSpinWait tests which ignore VM flags
Reviewed-by: kvn
2021-04-27 23:58:15 +00:00
Igor Ignatyev
eeddb30344 8266150: mark hotspot compiler/arguments tests which ignore VM flags
Reviewed-by: kvn
2021-04-27 23:54:45 +00:00
Igor Ignatyev
feb18d292f 8266149: mark hotspot compiler/startup tests which ignore VM flags
Reviewed-by: kvn
2021-04-27 23:54:09 +00:00
Igor Ignatyev
eb72950cfd 8266154: mark hotspot compiler/oracle tests which ignore VM flags
Reviewed-by: kvn
2021-04-27 23:51:39 +00:00
Igor Ignatyev
7f4a9f68bf 8266088: compiler/arguments/TestPrintOptoAssemblyLineNumbers test should user driver mode
Reviewed-by: kvn
2021-04-27 20:58:48 +00:00
Vladimir Ivanov
f560b89233 8264873: Dependencies: Split ClassHierarchyWalker
Reviewed-by: kvn, thartmann
2021-04-27 20:03:13 +00:00
Paul Sandoz
0a88f0a182 8255915: jdk/incubator/vector/AddTest.java timed out
Reviewed-by: vlivanov
2021-04-27 18:58:37 +00:00
Tobias Hartmann
ab2aec2afb 8265938: C2's conditional move optimization does not handle top Phi
Reviewed-by: chagedorn, kvn, iignatyev
2021-04-27 17:10:53 +00:00
Patricio Chilano Mateo
5634f206e5 8265932: Move safepoint related fields from class Thread to JavaThread
Reviewed-by: coleenp, dholmes
2021-04-27 16:53:25 +00:00
Aleksey Shipilev
b67b2b1645 8265690: Use the latest Ubuntu base image version in Docker testing
Reviewed-by: sgehwolf, iignatyev, mseledtsov
2021-04-27 16:36:15 +00:00
Vladimir Ivanov
b2628d15b5 8263972: C2: LoadVector/StoreVector type mismatch in MemNode::can_see_stored_value()
Reviewed-by: kvn, thartmann
2021-04-27 16:34:28 +00:00
Hui Shi
377b346189 8264752: SIGFPE crash with option FlightRecorderOptions:threadbuffersize=30M
Reviewed-by: mgronlun
2021-04-27 15:44:41 +00:00
Harold Seigel
dc323a9334 8263421: Module image file is opened twice during VM startup
Reviewed-by: iklam, dholmes
2021-04-27 13:31:55 +00:00
Yi Yang
fbfd4ea3ce 8265914: Duplicated NotANode and not_a_node
Reviewed-by: thartmann
2021-04-27 13:00:08 +00:00
Pankaj Bansal
9481fad42f 8163367: Test javax/swing/JComboBox/8033069/bug8033069NoScrollBar.java javax/swing/JComboBox/8033069/bug8033069ScrollBar.java fails intermittently
Reviewed-by: aivanov
2021-04-27 12:59:22 +00:00
Zhengyu Gu
9adbf1566a 8265995: Shenandoah: Move ShenandoahInitMarkRootsClosure close to its use
Reviewed-by: shade
2021-04-27 12:40:31 +00:00
Harold Seigel
879a77f173 8265757: stack-use-after-scope in perfMemory_posix.cpp get_user_name_slow()
Reviewed-by: lfoltan, dcubed
2021-04-27 12:07:40 +00:00
Coleen Phillimore
e4be9680cb 8265980: Fix systemDictionary and loaderConstraints printing
Reviewed-by: iklam
2021-04-27 12:04:12 +00:00
Aleksei Voitylov
f6e26f6f33 8265756: AArch64: initialize memory allocated for locals according to Windows AArch64 stack page growth requirement in template interpreter
Reviewed-by: adinn, aph
2021-04-27 11:17:28 +00:00
Jan Lahoda
0a4c33826d 8263432: javac may report an invalid package/class clash on case insensitive filesystems
Reviewed-by: vromero
2021-04-27 08:55:59 +00:00
Tobias Hartmann
82b371956a 8265967: Unused NullCheckNode forward declaration in node.hpp
Reviewed-by: kvn
2021-04-27 07:52:13 +00:00
Albert Mingkun Yang
468c847cc8 8234020: Remove FullGCCount_lock
Reviewed-by: kbarrett
2021-04-27 07:21:15 +00:00
Vladimir Kozlov
4785e112ae 8264806: Remove the experimental JIT compiler
Reviewed-by: iignatyev, erikj
2021-04-27 06:23:21 +00:00
Prasanta Sadhukhan
7db9330c58 8196300: java/awt/TextArea/TextAreaScrolling/TextAreaScrolling.java times out
Reviewed-by: jdv
2021-04-27 05:36:49 +00:00
Vladimir Kozlov
694acedf18 8264805: Remove the experimental Ahead-of-Time Compiler
Reviewed-by: coleenp, erikj, stefank, iignatyev, dholmes, aph, shade, iklam, mchung, iveresov
2021-04-27 01:12:18 +00:00
Hamlin Li
15d4787724 8265496: improve null check in DeflaterOutputStream/InflaterInputStream
Reviewed-by: lancea, naoto
2021-04-27 01:06:56 +00:00
Albert Mingkun Yang
1d37b9840a 8265972: Remove declarations with no implementations in javaClasses.hpp
Reviewed-by: coleenp
2021-04-26 22:16:12 +00:00
Albert Mingkun Yang
cb29b19fec 8184134: HeapRegion::LogOfHRGrainWords is unused
Reviewed-by: kbarrett, sjohanss
2021-04-26 21:20:15 +00:00
Guoxiong Li
41daa88dcc 8265899: Use pattern matching for instanceof at module jdk.compiler(part 1)
Reviewed-by: mcimadamore
2021-04-26 20:15:55 +00:00
Phil Race
a6f2863e64 8266003: ProblemList sanity/client/SwingSet/src/ButtonDemoScreenshotTest.java on macosx-all
Reviewed-by: dcubed, mikael
2021-04-26 20:14:55 +00:00
Tom Rodriguez
852a41d718 8258625: [JVMCI] refactor and unify JVMCI readFieldValue path
Reviewed-by: kvn
2021-04-26 20:00:23 +00:00
Leonid Mesnik
b5c6351315 8264663: Update test SuspendWithCurrentThread.java to verify that suspend doesn't exit until resumed
Reviewed-by: dcubed, sspitsyn
2021-04-26 19:48:57 +00:00
Magnus Ihse Bursie
b524a81ad2 8265982: JDK-8264188 breaks build on macOS-aarch64
Reviewed-by: erikj, shade
2021-04-26 17:59:14 +00:00
Pavel Rappo
efe6b93325 8265961: Fix comments in logging.properties
Reviewed-by: dfuchs, mr, iris, jjg
2021-04-26 17:35:31 +00:00
Philippe Marschall
65c19c4094 4926314: Optimize Reader.read(CharBuffer)
Reviewed-by: alanb, bpb
2021-04-26 17:33:35 +00:00
Guoxiong Li
082abbdaf7 8265900: Use pattern matching for instanceof at module jdk.compiler(part 2)
Reviewed-by: mcimadamore
2021-04-26 17:31:45 +00:00
Guoxiong Li
851b219d74 8265901: Use pattern matching for instanceof at module jdk.compiler(part 3)
Reviewed-by: mcimadamore, jfranck
2021-04-26 15:23:56 +00:00
Ian Graves
fb8f0c5dd8 8261168: Convert javadoc tool to use Stream.toList()
Reviewed-by: prappo
2021-04-26 15:20:30 +00:00
Hamlin Li
8559a53056 8265394: G1: Improve assert in HeapRegion::reset_not_compacted_after_full_gc
Reviewed-by: tschatzl
2021-04-26 14:43:30 +00:00
Hamlin Li
68011c64fa 8265928: G1: Update copyright in several files
Reviewed-by: tschatzl
2021-04-26 14:26:53 +00:00
Coleen Phillimore
222f9f07d1 8265682: G1: Mutex::_name dangling in HeapRegionRemSet references after JDK-8264146
Reviewed-by: dholmes, sjohanss
2021-04-26 14:23:08 +00:00
Guoxiong Li
2b09ff219e 8232765: NullPointerException at Types.eraseNotNeeded() when compiling a class
Reviewed-by: mcimadamore
2021-04-26 14:13:13 +00:00
Magnus Ihse Bursie
b9f66d93eb 8264188: Improve handling of assembly files in the JDK
Co-authored-by: Sandhya Viswanathan <sviswanathan@openjdk.org>
Co-authored-by: Magnus Ihse Bursie <ihse@openjdk.org>
Reviewed-by: erikj, vlivanov
2021-04-26 12:57:21 +00:00
Per Liden
c3ac6900e7 8261759: ZGC: ZWorker Threads Continue Marking After System.exit() called
Reviewed-by: sjohanss, ayang
2021-04-26 12:15:03 +00:00
Per Liden
31abe68fa4 8265116: ZGC: Steal local stacks instead of flushing them
Co-authored-by: Wang Chao <wchao@openjdk.org>
Reviewed-by: ayang, sjohanss
2021-04-26 11:57:11 +00:00
Jesper Steen Møller
83364a4b4a 8264258: Unknown lookups in the java package give misleading compilation errors
Reviewed-by: sadayapalam
2021-04-26 11:53:27 +00:00
Per Liden
a9367dbd84 8265127: ZGC: Fix incorrect reporting of reclaimed memory
Reviewed-by: ayang, sjohanss
2021-04-26 11:52:37 +00:00
Junji Wang
1580a473d0 8265911: assert(comp != __null) failed: Compiler instance missing
Reviewed-by: kvn, thartmann
2021-04-26 11:07:08 +00:00
Vladimir Ivanov
9647fb0dba 8265689: JVMCI: InternalError: Class java.lang.Object does not implement interface jdk.vm.ci.meta.JavaType
Co-authored-by: Doug Simon <dnsimon@openjdk.org>
Reviewed-by: kvn, thartmann
2021-04-26 10:54:01 +00:00
Per Liden
0d08d73537 8265702: ZGC on macOS/aarch64
Reviewed-by: erikj, dholmes, stefank, gziemski
2021-04-26 08:45:42 +00:00
Patrick Concannon
45c5da0fd3 8265746: Update java.time to use instanceof pattern variable (part II)
Reviewed-by: dfuchs, lancea, rriggs, chegar, naoto
2021-04-26 08:32:20 +00:00
Hannes Wallnöfer
a85f6cbbaa 8265613: False positives for "Related Packages"
Reviewed-by: jjg
2021-04-26 07:53:35 +00:00
Prasanta Sadhukhan
6e5026a8df 8198621: java/awt/Focus/KeyEventForBadFocusOwnerTest/KeyEventForBadFocusOwnerTest.java fails on mac
Reviewed-by: serb
2021-04-26 07:28:46 +00:00
Simon Legner
7b609a2016 8264031: (zipfs) Typo in ZipFileSystem.deleteFile ZipException
Reviewed-by: shade, lancea
2021-04-26 07:24:06 +00:00
Albert Mingkun Yang
56fbef0fc0 8265681: G1: general cleanup for G1FullGCHeapRegionAttr
Reviewed-by: tschatzl, sjohanss
2021-04-26 06:32:34 +00:00
Thomas Stuefe
578a0b3c3d 8261238: NMT should not limit baselining by size threshold
Reviewed-by: zgu, mdoerr
2021-04-26 04:56:31 +00:00
Alexey Ushakov
3bf4c904fb 8264317: Lanai: IncorrectUnmanagedImageRotatedClip.java fails on apple M1
Reviewed-by: serb
2021-04-25 20:52:08 +00:00
horizonzy
f1f2afda5a 8264028: Typo in javax.management.relation.RelationService::purgeRelations
Reviewed-by: sspitsyn, shade
2021-04-25 08:14:05 +00:00
Daniel D. Daugherty
f6e22d14e3 8265890: ProblemList sun/security/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java on macOS-X64 and Linux-aarch64
Reviewed-by: rriggs, xuelei
2021-04-25 02:53:48 +00:00
Albert Mingkun Yang
0257ac1447 8252089: Remove psParallelCompact internal debug counters
Reviewed-by: sjohanss, tschatzl
2021-04-24 16:35:55 +00:00
Guoxiong Li
4b7f027407 8231179: Investigate why tools/javac/options/BCPOrSystemNotSpecified.java fails on Window
Reviewed-by: vromero
2021-04-24 02:18:31 +00:00
Guoxiong Li
d87a4c3b56 8239596: PARAMETER annotation on receiver type does not cause error
Reviewed-by: vromero
2021-04-24 02:17:39 +00:00
Daniel D. Daugherty
52f9d22977 8265884: ProblemList compiler/codecache/jmx/PoolsIndependenceTest.java on macOS-X64
Reviewed-by: mikael
2021-04-24 00:56:10 +00:00
Doug Simon
5aed446e20 8265403: consolidate definition of CPU features
Reviewed-by: kvn, iklam
2021-04-23 23:32:41 +00:00
Yumin Qi
20a373a0d0 8265393: VM crashes if both -XX:+RecordDynamicDumpInfo and -XX:SharedArchiveFile options are specified
Reviewed-by: iklam, ccheung
2021-04-23 21:51:11 +00:00
Daniel D. Daugherty
6803ab2b71 8265880: ProblemList serviceability/dcmd/gc/RunFinalizationTest.java on Linux-X64
Reviewed-by: rriggs
2021-04-23 21:39:47 +00:00
Sandhya Viswanathan
e08f506fa7 8265816: Handle new VectorMaskCast node for x86
Reviewed-by: vlivanov, neliasso
2021-04-23 20:49:13 +00:00
Naoto Sato
bebfae48e3 8264208: Console charset API
Reviewed-by: joehw, rriggs, alanb
2021-04-23 18:57:03 +00:00
George Adams
5aab1609b9 8265531: doc/building.md should mention homebrew install freetype
Reviewed-by: erikj
2021-04-23 17:52:26 +00:00
Mikhailo Seledtsov
d8e638f11c 8265794: Remove ProblemList-non-cds-mode
Reviewed-by: ccheung, iklam, iignatyev
2021-04-23 17:42:45 +00:00
Thomas Stuefe
ac23870186 8265831: 8257831 broke Windows x86 build
Reviewed-by: shade
2021-04-23 16:37:07 +00:00
Patricio Chilano Mateo
8e312297d8 8265327: Remove check_safepoint_and_suspend_for_native_trans()
Reviewed-by: dcubed, dholmes, rrich
2021-04-23 14:23:43 +00:00
Daniel D. Daugherty
c9b70c8042 8265240: runtime/Thread/SuspendAtExit.java needs updating
Reviewed-by: rehn, dholmes
2021-04-23 14:20:34 +00:00
Claes Redestad
891f72fe6e 8265606: Reduce allocations in AdapterHandlerLibrary::get_adapter
Reviewed-by: iklam
2021-04-23 13:04:48 +00:00
Vladimir Ivanov
bfc1cd8eaf 8264320: ShouldNotReachHere in Compile::print_inlining_move_to()
Reviewed-by: kvn, thartmann
2021-04-23 12:53:54 +00:00
Stefan Johansson
5db64c3353 8265268: Unify ReservedSpace reservation code in initialize and try_reserve_heap
Reviewed-by: tschatzl, iwalulya
2021-04-23 12:06:05 +00:00
Roman Kennke
191f1fc46c 8265759: Shenandoah: Avoid race for referent in assert
Reviewed-by: shade, zgu
2021-04-23 08:01:36 +00:00
Roberto Castañeda Lozano
b3a319c834 8264842: IGV: different nodes sharing idx are treated as equal
Introduce IGV-specific node identifier and encapsulate it in IGV by showing a
configurable 'short node text' string instead.

Reviewed-by: iveresov, kvn
2021-04-23 07:29:54 +00:00
Ioi Lam
95f0fd6c4d 8265696: Move CDS sources to src/hotspot/shared/cds
Reviewed-by: erikj, dholmes, stuefe
2021-04-23 04:13:02 +00:00
Calvin Cheung
a715b09f52 8265798: Minimal build broken by JDK-8261090
Reviewed-by: iklam
2021-04-23 02:57:42 +00:00
David Holmes
13d3263380 8265484: Fix up TRAPS usage in GenerateOopMap::compute_map and callers
Reviewed-by: iklam, dlong, coleenp
2021-04-23 01:12:14 +00:00
Chris Plummer
a8ddbd155b 8265683: vmTestbase/nsk/jdb tests failed with "JDWP exit error AGENT_ERROR_INTERNAL(181)"
Reviewed-by: amenkov, dcubed
2021-04-22 23:27:33 +00:00
Calvin Cheung
7a5591402c 8264196: Change link_and_cleanup_shared_classes(CATCH) to CHECK
Reviewed-by: minqi, iklam
2021-04-22 22:57:19 +00:00
Phil Race
b84f690127 8265793: Remove duplicate jtreg TEST.groups references for some client tests
Reviewed-by: erikj
2021-04-22 21:23:59 +00:00
Mikael Vidstedt
0e0059895b 8265782: Bump bootjdk to jdk-17+19 on macosx-aarch64 at Oracle
Reviewed-by: iignatyev, tbell, iris, erikj
2021-04-22 20:55:56 +00:00
Daniel D. Daugherty
e81baead01 8265786: ProblemList serviceability/sa/sadebugd/DisableRegistryTest.java on ZGC
Reviewed-by: darcy
2021-04-22 20:45:25 +00:00
Brian Burkhalter
ca0de266b4 8265699: (bf) Scopes passed to ScopedMemoryAccess.copy[Swap]Memory in incorrect order
Reviewed-by: mcimadamore
2021-04-22 19:44:01 +00:00
Thomas Schatzl
b930bb1a2c 8265461: G1: Forwarding pointer removal thread sizing
Reviewed-by: iwalulya, lkorinth, sjohanss
2021-04-22 18:19:18 +00:00
Weijun Wang
f834557ae0 8258915: Temporary buffer cleanup
Reviewed-by: valeriep
2021-04-22 18:11:43 +00:00
sunguoyun
31d8a19e47 8265105: gc/arguments/TestSelectDefaultGC.java fails when compiler1 is disabled
Reviewed-by: iveresov
2021-04-22 18:05:03 +00:00
Guoxiong Li
657f103937 8057543: Replace javac's Filter with Predicate (and lambdas)
Reviewed-by: mcimadamore
2021-04-22 16:44:29 +00:00
Joe Darcy
8758b554a0 8265591: Remove vestiages of intermediate JSR 175 annotation format
Reviewed-by: jfranck
2021-04-22 16:21:54 +00:00
Ian Graves
33a86b9e40 8263621: Convert jdk.compiler to use Stream.toList()
Reviewed-by: mcimadamore, vromero
2021-04-22 16:06:40 +00:00
Doug Simon
7df0c10a4d 8265480: add basic JVMCI support for JEP 309: Dynamic Class-File Constants
Reviewed-by: kvn, psandoz
2021-04-22 15:59:12 +00:00
Calvin Cheung
9499175064 8261090: Store old classfiles in static CDS archive
Reviewed-by: iklam, minqi
2021-04-22 15:13:29 +00:00
Yasumasa Suenaga
159f5e1ede 8263636: Add --disable-registry option to jhsdb debugd
Reviewed-by: cjplummer, kevinw
2021-04-22 15:01:33 +00:00
Patricio Chilano Mateo
6d49cc3b65 8265453: SafepointMechanism::should_process() should receive JavaThread*
Reviewed-by: dcubed, shade, dholmes
2021-04-22 14:15:17 +00:00
Raffaello Giulietti
fa82d47591 8264514: HexFormat implementation tweaks
Reviewed-by: rriggs
2021-04-22 13:54:41 +00:00
Vladimir Ivanov
e16d568c1f 8265218: trace_method_handle_stub fails to find calling frame on x86
Reviewed-by: dholmes, dcubed
2021-04-22 12:17:24 +00:00
Robbin Ehn
86bd44fe80 8257831: Suspend with handshakes
Reviewed-by: dcubed, rrich, dholmes, pchilanomate, sspitsyn
2021-04-22 10:30:47 +00:00
Patrick Concannon
28af31db34 8263668: Update java.time to use instanceof pattern variable
Reviewed-by: lancea, ryadav, naoto, rriggs, dfuchs, scolebourne, chegar
2021-04-22 10:17:43 +00:00
Claes Redestad
a93d911954 8265607: Avoid decrementing when no Symbol was created in ~SignatureStream
Reviewed-by: lfoltan, coleenp
2021-04-22 09:52:56 +00:00
Aleksey Shipilev
aa2978481d 8265332: gtest/LargePageGtests.java OOMEs on -XX:+UseSHM cases
Reviewed-by: stuefe
2021-04-22 08:31:10 +00:00
Ioi Lam
33b6378f1e 8265101: Remove unnecessary functions in os*.inline.hpp
Reviewed-by: dholmes, kbarrett
2021-04-22 05:44:39 +00:00
Hao Sun
28c35aedd3 8259288: Debug build failure with clang-10 due to -Wimplicit-int-float-conversion
Reviewed-by: dholmes
2021-04-22 04:41:52 +00:00
Alexander Zuev
ca6b1b49ab 8171381: [TEST_BUG] [macos] javax/swing/JPopupMenu/7156657/bug7156657.java fails on OS X
Reviewed-by: serb
2021-04-21 23:20:55 +00:00
Joe Darcy
9e7c748db5 8265700: Regularize throws clauses in BigDecimal
Reviewed-by: bpb
2021-04-21 22:04:17 +00:00
Erik Gahlin
71163213cb 8254565: JFR: Incorrect verification of mirror events
Reviewed-by: mgronlun
2021-04-21 21:22:52 +00:00
Harold Seigel
f45d46095a 8265017: runtime/HiddenClasses/StressHiddenClasses.java timed out on Win* OCI
Reviewed-by: dholmes
2021-04-21 17:34:32 +00:00
Harold Seigel
0136c89ce1 8265490: Unterminated string passed to FindClass() in hotspot test
Reviewed-by: coleenp, stuefe
2021-04-21 16:01:22 +00:00
Thomas Schatzl
325edbc364 8265450: Merge PreservedMarksSet::restore code paths
Reviewed-by: sjohanss, iwalulya
2021-04-21 15:49:29 +00:00
Ian Graves
b337f63361 8037397: RegEx pattern matching loses character class after intersection (&&) operator
Reviewed-by: rriggs
2021-04-21 15:45:52 +00:00
Guoxiong Li
07a7510d87 8200145: Conditional expression mistakenly treated as standalone
Reviewed-by: mcimadamore
2021-04-21 14:36:47 +00:00
Prasanta Sadhukhan
41fc7ddd8d 8199079: Test javax/swing/UIDefaults/6302464/bug6302464.java is unstable
Reviewed-by: prr
2021-04-21 14:35:48 +00:00
Prasanta Sadhukhan
45c474a04c 8168408: Test java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java fails intermittentently on windows
Reviewed-by: azvegint
2021-04-21 14:20:53 +00:00
Prasanta Sadhukhan
18ee419021 8198422: Test java/awt/font/StyledMetrics/BoldSpace.java is unstable
Reviewed-by: azvegint
2021-04-21 14:16:08 +00:00
Fairoz Matte
da860290c2 8265326: Strange Characters in G1GC GC Log
Reviewed-by: tschatzl, sjohanss, kbarrett
2021-04-21 11:48:27 +00:00
Aleksey Shipilev
7879adbe88 8265343: Update Debian-based cross-compilation recipes
Reviewed-by: erikj
2021-04-21 10:44:19 +00:00
Peter Levart
98cb81b381 8265237: String.join and StringJoiner can be improved further
Reviewed-by: rriggs, redestad
2021-04-21 10:32:03 +00:00
Jie Fu
ed477da9c6 8264945: Optimize the code-gen for Math.pow(x, 0.5)
Reviewed-by: neliasso, kvn
2021-04-21 10:10:42 +00:00
Christoph Göttschkes
7146104fda 8265421: java/lang/String/StringRepeat.java test is missing a memory requirement
Reviewed-by: jlaskey, shade, ryadav
2021-04-21 07:13:13 +00:00
Yi Yang
b5c92ca34f 8265106: IGV: Enforce en-US locale while parsing ideal graph
Co-authored-by: Roberto Castañeda Lozano <rcastanedalo@openjdk.org>
Reviewed-by: thartmann, chagedorn
2021-04-21 06:36:47 +00:00
Jonathan Gibbons
3de0dcba78 8265483: All-caps “JAVA” in the top navigation bar
Reviewed-by: iris, erikj
2021-04-21 04:36:37 +00:00
Ioi Lam
739769c8fc 8265411: Avoid unnecessary Method::init_intrinsic_id calls
Reviewed-by: dholmes, minqi
2021-04-21 01:42:50 +00:00
Jie Fu
a22ad03b25 8264983: Add gtest for JDK-8264008
Reviewed-by: stuefe
2021-04-20 22:49:01 +00:00
Sean Mullan
91b08b733e 8261779: JCK test api/javax_crypto/EncryptedPrivateKeyInfo/Ctor4.html is failing with assertion error when assertions enabled
Reviewed-by: rhalade, pkoppula, mschoene, weijun
2021-04-20 21:45:53 +00:00
Brian Burkhalter
2fcd920adc 8261183: Follow on to Make lists of normal filenames
Reviewed-by: alanb, rriggs, rhalade
2021-04-20 21:45:53 +00:00
Igor Ignatyev
40ef00cebf 8258457: testlibrary_tests/ctw/JarDirTest.java fails with InvalidPathException on windows
Reviewed-by: kvn
2021-04-20 21:45:53 +00:00
Vaibhav Choudhary
3f0da35764 8261392: Exclude testlibrary_tests/ctw/JarDirTest.java
Reviewed-by: coffeys
2021-04-20 21:45:53 +00:00
Rahul Yadav
8d0faaf91a 8257001: Improve Http Client Support
Reviewed-by: chegar, dfuchs, rhalade
2021-04-20 21:45:53 +00:00
Tobias Hartmann
9bf055d359 8259633: compiler/graalunit/CoreTest.java fails with NPE after JDK-8244543
Reviewed-by: vlivanov, jcm
2021-04-20 21:45:53 +00:00
Sean Mullan
ddc56d1dbe 8259428: AlgorithmId.getEncodedParams() should return copy
Reviewed-by: weijun, valeriep
2021-04-20 21:45:52 +00:00
Sean Mullan
ae33d2a2f0 8258247: Couple of issues in fix for JDK-8249906
Reviewed-by: rhalade, weijun
2021-04-20 21:45:52 +00:00
Jamsheed Mohammed C M
2003e91d3b 8244543: Enhanced handling of abstract classes
Reviewed-by: vlivanov, rhalade
2021-04-20 21:45:52 +00:00
Roger Riggs
e56e087290 8250568: Less ambiguous processing
Reviewed-by: alanb, rhalade
2021-04-20 21:45:52 +00:00
Brian Burkhalter
4471789aca 8253799: Make lists of normal filenames
Reviewed-by: alanb, rhalade
2021-04-20 21:45:52 +00:00
Sean Mullan
7232e3c704 8249906: Enhance opening JARs
Reviewed-by: weijun, rhalade, mschoene
2021-04-20 21:45:52 +00:00
Aleksei Efimov
17a741d6bc 8244473: Contextualize registration for JNDI
Also reviewed by Chris Ries <chris.ries@oracle.com>

Reviewed-by: dfuchs, rriggs, rhalade, skoivu, mullan
2021-04-20 21:45:52 +00:00
Rafael Winterhalter
f47faf283b 8228988: AnnotationParser throws NullPointerException on incompatible member type
Reviewed-by: darcy
2021-04-20 21:33:19 +00:00
Erik Gahlin
d61345984d 8265407: JFR: Fix Typos
Reviewed-by: mgronlun
2021-04-20 17:27:25 +00:00
Erik Gahlin
4dcaac1feb 8265036: JFR: Remove use of -XX:StartFlightRecording= and -XX:FlightRecorderOptions=
Reviewed-by: cjplummer
2021-04-20 15:53:45 +00:00
Mikael Vidstedt
72c88fc45d 8257459: Bump minimum boot jdk to JDK 16
Reviewed-by: darcy, iris, erikj
2021-04-20 14:37:44 +00:00
Albert Mingkun Yang
c52e5f2be4 8265435: Remove dummy lists in G1CalculatePointersClosure
Reviewed-by: sjohanss, tschatzl
2021-04-20 12:48:08 +00:00
Thomas Schatzl
072ae7ec5e 8265436: G1: Improve gc+phases log output during full gc
Reviewed-by: ayang, mli
2021-04-20 10:36:12 +00:00
Roberto Castañeda Lozano
d81b0461b7 8263227: C2: inconsistent spilling due to dead nodes in exception block
Eliminate dead nodes created by call-catch cleanup even if they have multiple
projections. Assert that definitions dominate uses and projections are scheduled
next to their parent nodes.

Reviewed-by: neliasso, kvn
2021-04-20 10:06:49 +00:00
Andrew Haley
a25bae8239 8261445: Use memory_order_relaxed for os::random().
Reviewed-by: adinn, eosterlund, mdoerr, dholmes
2021-04-20 08:09:30 +00:00
Roberto Castañeda Lozano
51366439b1 8262725: IGV: crash when removing all graphs in a group
Make IGV close graph views when their groups are either removed or emptied, and
avoid faulty graph view computation for empty groups.

Reviewed-by: chagedorn, rrich
2021-04-20 07:58:26 +00:00
Per Liden
79798c656d 8265136: ZGC: Expose GarbageCollectorMXBeans for both pauses and cycles
Reviewed-by: sspitsyn, ayang
2021-04-20 07:53:43 +00:00
Yasumasa Suenaga
f1d4ae6cc9 8263718: unused-result warning happens at os_linux.cpp
Reviewed-by: dholmes, stuefe
2021-04-20 05:06:55 +00:00
Tagir F. Valeev
787908c778 8264221: Rewrite confusing stream API chain in SnippetMaps
Reviewed-by: jlahoda
2021-04-20 01:44:32 +00:00
Yasumasa Suenaga
142edd3a81 8265152: jpackage cleanup fails on Windows with IOException deleting msi
Reviewed-by: herrick, asemenyuk
2021-04-20 01:18:43 +00:00
Mikael Vidstedt
ab2240741c 8265486: ProblemList javax/sound/midi/Sequencer/Recording.java on macosx-aarch64
Reviewed-by: prr, serb
2021-04-19 22:29:53 +00:00
Chris Plummer
e0fd5fc069 8265028: JDWP debug agent thread lookup can be made faster
Reviewed-by: sspitsyn, amenkov
2021-04-19 21:15:14 +00:00
Erik Joelsson
713483c77d 8265373: Change to GCC 10.3 for building on Linux at Oracle
Reviewed-by: mikael
2021-04-19 19:46:13 +00:00
Daniel D. Daugherty
3990713691 8265463: ProblemList vmTestbase/vm/mlvm/mixed/stress/regression/b6969574/INDIFY_Test.java on Win-X64 -Xcomp
8265464: ProblemList vmTestbase/vm/mlvm/meth/stress/compiler/deoptimize/Test.java#id1 in -Xcomp configs

Reviewed-by: mikael
2021-04-19 18:49:48 +00:00
Alexander Matveev
5b43b39e55 8263154: [macos] DMG builds have finder errors
Reviewed-by: herrick, asemenyuk
2021-04-19 18:17:24 +00:00
Doug Simon
54cb388dce 8252600: [JVMCI] remove mx configuration
Reviewed-by: erikj, kvn
2021-04-19 17:45:20 +00:00
Yumin Qi
b703e0a4c8 8264569: Remove obsolete error messages from CDSTestUtils.java
Reviewed-by: iklam
2021-04-19 17:06:07 +00:00
Yi Yang
235daea06a 8265285: Unnecessary inclusion of bytecodeHistogram.hpp
Reviewed-by: dholmes, iklam
2021-04-19 16:54:37 +00:00
Weijun Wang
8bec6fe6dc 8264277: java.xml.crypto module should be granted FilePermission and SocketPermission
Reviewed-by: mullan
2021-04-19 16:11:54 +00:00
Claes Redestad
5303ccb885 8265135: Reduce work initializing VarForms
Reviewed-by: psandoz, mchung
2021-04-19 14:39:31 +00:00
Ivan Walulya
d9e40dd593 8199407: Skip Rebuild Remset Phase if there are no rebuild candidates
Reviewed-by: tschatzl, sjohanss
2021-04-19 14:37:16 +00:00
Weijun Wang
8dbf7aa1f9 8241306: Add SignatureMethodParameterSpec subclass for RSASSA-PSS params
Reviewed-by: mullan
2021-04-19 14:29:18 +00:00
Erik Joelsson
b14e0ee4d8 8265371: Change to Visual Studio 2019 16.9.3 for building on Windows at Oracle
Reviewed-by: mikael
2021-04-19 13:48:44 +00:00
Jorn Vernee
c88714875d 8265079: Implement VarHandle invoker caching
Reviewed-by: redestad, vlivanov, psandoz, mchung
2021-04-19 11:36:55 +00:00
Jie Fu
b64a3fb946 8265325: Optimize StubRoutines::dpow() for Math.pow(x, 0.5)
Reviewed-by: kvn, neliasso
2021-04-19 10:45:20 +00:00
Tejpal Rebari
d1c8c9eabb 8197811: Test java/awt/Choice/PopupPosTest/PopupPosTest.java fails on Windows
Reviewed-by: psadhukhan
2021-04-19 10:23:19 +00:00
Albert Mingkun Yang
7d01c988cf 8265414: Variable assigned but not used in G1FreeHumongousRegionClosure
Reviewed-by: tschatzl, iwalulya
2021-04-19 09:58:08 +00:00
Michael McMahon
d9e19f16f0 8265226: (dc) API note in DatagramChannel.open should link to StandardProtocolFamily.UNIX
Reviewed-by: iris, alanb
2021-04-19 09:31:52 +00:00
Thomas Stuefe
49b9e6896e 8262165: NMT report should state how many callsites had been skipped
Reviewed-by: zgu, shade
2021-04-19 09:18:55 +00:00
Stefan Johansson
e390e550fa 8265066: Split ReservedSpace constructor to avoid default parameter
Reviewed-by: tschatzl, stefank
2021-04-19 07:08:10 +00:00
Albert Mingkun Yang
c607d12e40 8249528: Remove obsolete comment in G1RootProcessor::process_java_roots
Reviewed-by: tschatzl, sangheki
2021-04-19 07:04:26 +00:00
Yi Yang
fa58aae8f6 8265245: depChecker_<cpu> don't have any functionalities
Reviewed-by: thartmann, neliasso
2021-04-19 06:27:15 +00:00
Yi Yang
a2b0e0f4c0 8265323: Leftover local variables in PcDesc
Reviewed-by: thartmann, neliasso
2021-04-19 06:26:12 +00:00
David Holmes
1ac25b8201 8264372: Threads::destroy_vm only ever returns true
Reviewed-by: shade, dcubed
2021-04-18 04:32:11 +00:00
David Holmes
73d5f3b586 8265313: Obsolete the unused AssertOnSuspendWaitFailure and TraceSuspendWaitFailures flags
Reviewed-by: shade, hseigel, dcubed
2021-04-18 04:26:57 +00:00
Ajit Ghaisas
cb8394a841 8265304: Temporarily make Metal the default 2D rendering pipeline for macOS
Reviewed-by: jdv, kcr, azvegint, prr
2021-04-17 12:33:07 +00:00
Aleksey Shipilev
66f89870f2 8265298: Hard VM crash when deadlock between "access" and higher ranked lock is detected
Reviewed-by: pchilanomate, dholmes
2021-04-17 06:21:19 +00:00
Denis Konoplev
926e3bc0c1 8264143: Lanai: RenderPerfTest.BgrSwBlitImage has artefacts on apple M1
Reviewed-by: jdv
2021-04-17 06:07:44 +00:00
Naoto Sato
ff4997014f 8265375: Bootcycle builds fail with StackOverflowError in cldrconverter
Reviewed-by: joehw
2021-04-16 22:23:30 +00:00
Sandhya Viswanathan
c108e7abdf 8265154: vinserti128 operand mix up for KNL platforms
Reviewed-by: thartmann, kvn
2021-04-16 21:28:30 +00:00
Daniel D. Daugherty
2c4075cbb7 8265381: ProblemList runtime/logging/RedefineClasses.java on macos-x64 -Xcomp
Reviewed-by: bpb
2021-04-16 21:20:51 +00:00
Daniel D. Daugherty
888d80b5e2 8265358: ProblemList jdk/jshell/ToolBasicTest.java on macOS-aarch64
8265361: ProblemList a few compiler/whitebox tests on macos-aarch64
8265363: ProblemList java/net/Socket/UdpSocket.java on macos-aarch64
8265368: ProblemList 3 java/net/httpclient/websocket tests on macos-aarch64
8265370: ProblemList java/net/MulticastSocket/Promiscuous.java on macos-aarch64

Reviewed-by: bpb, mikael
2021-04-16 20:21:15 +00:00
Ian Graves
0bdc3e7a41 8262744: Formatter '%g' conversion uses wrong format for BigDecimal rounding up to limits
Reviewed-by: rriggs, bpb
2021-04-16 20:05:48 +00:00
Erik Gahlin
4413dbfbdb 8263395: Incorrect use of Objects.nonNull
Reviewed-by: shade
2021-04-16 19:51:15 +00:00
Alexander Zuev
74d03abb7b 8039270: The background color of the button can't be displayed and when pressed the button, the background color can not be changed in accordance with the case described.
Reviewed-by: azvegint, trebari
2021-04-16 19:30:55 +00:00
Erik Gahlin
7c37c022a1 8244190: JFR: When starting a JVM with -XX:StartFlightRecording, output is written to stdout
Reviewed-by: mgronlun
2021-04-16 17:26:13 +00:00
Fernando Guallini
79adc16fd8 8264152: javax/net/ssl/DTLS/RespondToRetransmit.java timed out
Reviewed-by: xuelei
2021-04-16 16:51:41 +00:00
Brian Burkhalter
1c3fd46d7d 8265175: (fs) Files.copy(Path,Path,CopyOption...) should use sendfile on Linux
Reviewed-by: alanb
2021-04-16 15:46:37 +00:00
Guoxiong Li
cee4f1d9c4 8203925: tools/javac/importscope/T8193717.java ran out of java heap
Reviewed-by: vromero
2021-04-16 15:38:46 +00:00
Evgeny Nikitin
694e1cdcb8 8262060: compiler/whitebox/BlockingCompilation.java timed out
Reviewed-by: iignatyev
2021-04-16 14:33:27 +00:00
Alexander Zvegintsev
6946d91d7c 8075915: The eight controls without black backgrounds with WinLAF & GTK LAF & Nimbus LAF
Reviewed-by: psadhukhan, kizune, aivanov
2021-04-16 14:32:12 +00:00
Hamlin Li
714298a58e 8265259: G1: Fix HeapRegion::block_is_obj for unloading class in full gc
Reviewed-by: sjohanss, tschatzl
2021-04-16 12:40:25 +00:00
Zhengyu Gu
ff5bb8cf69 8265239: Shenandoah: Shenandoah heap region count could be off by 1
Reviewed-by: shade
2021-04-16 12:27:29 +00:00
Aleksey Shipilev
17b6592d8f 8265335: Epsilon: Minor typo in EpsilonElasticTLABDecay description
Reviewed-by: tschatzl
2021-04-16 12:10:36 +00:00
Roberto Castañeda Lozano
10ec38f80b 8262462: IGV: cannot remove specific groups imported via network
Reviewed-by: neliasso
2021-04-16 11:49:35 +00:00
Roland Westrelin
7137328006 8264958: C2 compilation fails with assert "n is later than its clone"
Reviewed-by: neliasso, thartmann
2021-04-16 11:34:45 +00:00
Thomas Schatzl
1d66a155c7 8265330: G1: Fix comment in G1FullGCPrepareTask::G1CalculatePointersClosure
Reviewed-by: shade, mli
2021-04-16 09:25:36 +00:00
Hamlin Li
b4ba74e3ac 8264987: G1: Fill BOTs for Survivor-turned-to-Old regions in full gc
Co-authored-by: Shoubing Ma <mashoubing1@huawei.com>
Reviewed-by: tschatzl, sjohanss
2021-04-16 08:07:00 +00:00
Ivan Walulya
fc89fe6458 8265119: G1: update_remset_before_rebuild mixes liveness in words with liveness in bytes
Reviewed-by: tschatzl, sjohanss
2021-04-16 07:29:55 +00:00
Robbin Ehn
50f3da8d59 8264480: Unreachable code in nmethod.cpp inside #ifdef DEBUG
Reviewed-by: chagedorn, kvn
2021-04-16 07:19:49 +00:00
Xiaohong Gong
e0151a6fb1 8264104: Eliminate unnecessary vector mask conversion during VectorUnbox for floating point VectorMask
Reviewed-by: kvn, vlivanov
2021-04-16 07:12:32 +00:00
Jaikiran Pai
64e21307a8 8262108: SimpleDateFormat formatting broken for sq_MK Locale
Reviewed-by: naoto
2021-04-16 06:45:39 +00:00
Tom Rodriguez
3423f3e1f5 8265180: JvmtiCompiledMethodLoadEvent should include the stub section of nmethods
Reviewed-by: kvn, sspitsyn
2021-04-15 23:42:16 +00:00
Naoto Sato
f6e54f2f9a 8258794: Support for CLDR version 39
Reviewed-by: joehw, erikj
2021-04-15 21:28:22 +00:00
Brian Burkhalter
e89fd15189 8261301: StringWriter.flush() is NOOP but documentation does not indicate it
Reviewed-by: naoto, rriggs
2021-04-15 20:19:40 +00:00
Vicente Romero
0b1b5c8d0b 8264373: javac hangs when annotation is declared with sealed public modifier
Reviewed-by: jlahoda
2021-04-15 19:07:11 +00:00
Daniel D. Daugherty
c7da64a488 8265302: ProblemList runtime/logging/RedefineClasses.java on linux-x64 -Xcomp
Reviewed-by: mikael
2021-04-15 17:30:11 +00:00
Mikael Vidstedt
838c11fc0e 8265293: ProblemList java/foreign/TestDowncall.java on macosx-aarch64
Reviewed-by: ccheung, dcubed
2021-04-15 16:57:17 +00:00
Jan Lahoda
325eecbccb 8255273: jshell crashes with UnsupportedOperationException: Should not get here.
Reviewed-by: vromero
2021-04-15 16:17:35 +00:00
Jan Lahoda
e43aee58e1 8262900: ToolBasicTest fails to access HTTP server it starts
Reviewed-by: sundar, vromero
2021-04-15 15:16:11 +00:00
Weijun Wang
c70589c68c 8265227: Move Proc.java from security/testlibrary to test/lib
Reviewed-by: rriggs, xuelei, rhalade, ssahoo
2021-04-15 15:07:47 +00:00
Roger Riggs
7b61a426e0 8265173: [test] divert spurious log output away from stream under test in ProcessBuilder Basic test
Reviewed-by: dholmes
2021-04-15 14:38:14 +00:00
Conor Cleary
4e90d74000 8048199: Replace anonymous inner classes with lambdas, where applicable, in JNDI
Reviewed-by: rriggs, dfuchs, aefimov, chegar
2021-04-15 14:08:27 +00:00
Conor Cleary
6293299dd3 8264824: java/net/Inet6Address/B6206527.java doesn't close ServerSocket properly
Reviewed-by: aefimov, dfuchs, michaelm, vtewari
2021-04-15 14:05:55 +00:00
Pankaj Bansal
6b907155f7 8265278: doc build fails after JDK-8262981
Reviewed-by: jdv, trebari
2021-04-15 14:04:22 +00:00
Denis Konoplev
0fee6ecac2 8264318: Lanai: DrawHugeImageTest.java fails on apple M1
Reviewed-by: serb, jdv
2021-04-15 13:50:22 +00:00
David Holmes
81877f7df2 8262501: jdk17 libjvm link failure with --as-needed and clock_gettime in librt
Co-authored-by: Matthias Klose <doko@openjdk.org>
Reviewed-by: erikj
2021-04-15 12:59:21 +00:00
Harold Seigel
b23dbdbdb3 8257804: Test runtime/modules/ModuleStress/ModuleStressGC.java fails: 'package test defined in module jdk.test, exports list being walked' missing from stdout/stderr
Reviewed-by: dholmes
2021-04-15 12:19:47 +00:00
Pankaj Bansal
9d669c912d 8262981: Create implementation for NSAccessibilitySlider protocol
Reviewed-by: kizune
2021-04-15 11:45:41 +00:00
Jayathirth D V
abdff7905f 8163086: java/awt/Window/TranslucentJAppletTest/TranslucentJAppletTest.java fails
Reviewed-by: psadhukhan
2021-04-15 11:32:07 +00:00
Prasanta Sadhukhan
b72d99e77b 8233564: [TESTBUG] MouseComboBoxTest.java is failing
Reviewed-by: jdv
2021-04-15 10:14:37 +00:00
Prasanta Sadhukhan
2b5869ad09 8233565: [TESTBUG] NullModalityDialogTest.java fails on MacOS
Reviewed-by: jdv
2021-04-15 09:55:29 +00:00
Thomas Schatzl
bba16f61bb 8264818: G1: Improve liveness check for empty pinned regions after full gc marking
Reviewed-by: sjohanss, ayang, mli
2021-04-15 08:44:52 +00:00
Thomas Schatzl
75da1e9a64 8264423: G1: Rename full gc attribute table states
Reviewed-by: sjohanss, mli
2021-04-15 08:12:37 +00:00
Thomas Schatzl
125a8479a9 8264788: Make SequentialSubTasksDone use-once
Reviewed-by: ayang, sjohanss
2021-04-15 08:11:01 +00:00
Rickard Bäckman
0793fcbbca 8260255: C1: LoopInvariantCodeMotion constructor can leave some fields uninitialized
Reviewed-by: neliasso, thartmann
2021-04-15 07:48:40 +00:00
Jie Fu
b224b56649 8265225: jdk/jfr/tool/TestConfigure.java fails to cleanup the output files after the testing
Reviewed-by: egahlin
2021-04-15 06:35:33 +00:00
Junji Wang
7c6e3796ef 8265120: hs_err improvement: align the output of Virtual space metadata
Reviewed-by: dholmes
2021-04-15 05:40:09 +00:00
Yumin Qi
e7cbeba866 8259070: Add jcmd option to dump CDS
Reviewed-by: ccheung, iklam, mli
2021-04-15 05:21:24 +00:00
David Holmes
593194864a 8265246: Fix macos-Aarch64 build after JDK-8263709
Reviewed-by: mikael
2021-04-15 03:01:49 +00:00
David Holmes
79bff21b43 8263709: Cleanup THREAD/TRAPS/CHECK usage in JRT_ENTRY routines
Reviewed-by: coleenp, hseigel, iklam, kvn
2021-04-15 02:20:31 +00:00
Nick Gasson
f4c3efd9cf 8265192: [macos_aarch64] configure script fails if GNU uname in PATH
Reviewed-by: erikj
2021-04-15 01:43:22 +00:00
Andy Herrick
e167577888 8265078: jpackage tests on Windows leave large temp files
Reviewed-by: asemenyuk, kcr
2021-04-14 19:56:24 +00:00
Mikael Vidstedt
05f851e45d 8265236: ProblemList java/foreign/TestUpcall.java on macosx-aarch64
Reviewed-by: dcubed
2021-04-14 19:53:53 +00:00
Brian Burkhalter
d1b28e7ad0 8265231: (fc) ReadDirect and WriteDirect tests fail after fix for JDK-8264821
Reviewed-by: alanb, dcubed, darcy, chegar
2021-04-14 19:53:19 +00:00
Mikael Vidstedt
57f86a071e 8265235: ProblemList java/foreign/TestIntrinsics.java on macosx-aarch64
Reviewed-by: dcubed
2021-04-14 19:19:49 +00:00
Evgeny Nikitin
4c83d24f0a 8058176: [mlvm] tests should not allow code cache exhaustion
Reviewed-by: iignatyev
2021-04-14 17:32:53 +00:00
Aleksey Shipilev
94067446ba 8264976: Minor numeric bug in AbstractSplittableWithBrineGenerator.makeSplitsSpliterator
Reviewed-by: psandoz, jlaskey
2021-04-14 16:16:41 +00:00
Joe Darcy
80026d81a4 8265174: Update Class.getDeclaredMethods to discuss synthetic and bridge methods
Reviewed-by: jfranck
2021-04-14 16:15:54 +00:00
Lance Andersen
ffb3771816 8265019: Update tests for additional TestNG test permissions
Reviewed-by: naoto, bpb, alanb
2021-04-14 15:42:55 +00:00
Brian Burkhalter
7e4cd48020 8264821: DirectIOTest fails on a system with large block size
Reviewed-by: chegar
2021-04-14 15:33:48 +00:00
Yasumasa Suenaga
0afcbd4b09 8264412: AArch64: CPU description should refer DMI
Reviewed-by: aph, gziemski
2021-04-14 15:11:08 +00:00
Michael McMahon
4661690981 8262883: doccheck: Broken links in java.base
Reviewed-by: lancea
2021-04-14 15:00:14 +00:00
Prasanta Sadhukhan
75b039a43c 8263970: Manual test javax/swing/JTextField/JapaneseReadingAttributes/JapaneseReadingAttributes.java failed
Reviewed-by: azvegint
2021-04-14 13:11:30 +00:00
Harold Seigel
f5b2f08912 8257836: Add additional test cases to TestSyncOnValueBasedClassEvent.java
Reviewed-by: lfoltan, pchilanomate
2021-04-14 12:16:46 +00:00
Sebastian Stenzel
27dd88bf9e 8262957: (fs) Fail fast in UnixFileStore.isExtendedAttributesEnabled
Reviewed-by: alanb
2021-04-14 09:55:52 +00:00
Yasumasa Suenaga
e2106d5af6 8265104: CpuLoad and SystemCpuLoad in OperatingSystem MXBean returns -1.0
Reviewed-by: dholmes, sgehwolf
2021-04-14 07:38:31 +00:00
Alex Blewitt
ebbce91e79 8264681: Use the blessed modifier order in java.security
Reviewed-by: mullan, shade
2021-04-14 06:01:00 +00:00
Ioi Lam
ea5c55a4ae 8265103: Remove unnecessary inclusion of oopMap.hpp
Reviewed-by: dholmes, stefank
2021-04-14 05:11:49 +00:00
Alexander Zvegintsev
26186ec3f6 8039261: [TEST_BUG]: There is not a minimal security level in Java Preferences and the TestApplet.html is blocked.
Reviewed-by: serb, pbansal, aivanov, kizune
2021-04-14 00:31:30 +00:00
Anton Kozlov
283d64f815 8262896: [macos_aarch64] Crash in jni_fast_GetLongField
Reviewed-by: aph, dholmes
2021-04-13 22:34:28 +00:00
Alexander Matveev
55d5649509 8263157: [macos]: java.library.path is being set incorrectly
Reviewed-by: asemenyuk, herrick
2021-04-13 21:36:55 +00:00
Erik Gahlin
e80012ede3 8264768: JFR: Allow events to be printed to the log
Reviewed-by: mgronlun
2021-04-13 20:06:39 +00:00
Brian Burkhalter
3b576ed99d 8265100: (fs) WindowsFileStore.hashCode() should read cached hash code once
Reviewed-by: alanb
2021-04-13 18:43:33 +00:00
Roberto Castañeda Lozano
8df8512bc8 8265125: IGV: cannot edit forms with NetBeans GUI builder
Reviewed-by: kvn
2021-04-13 17:07:43 +00:00
Weijun Wang
9cd5400d9b 8265138: Simplify DerUtils::checkAlg
Reviewed-by: xuelei
2021-04-13 16:56:36 +00:00
Wang Huang
c7975113a0 8264940: java/lang/invoke/6998541/Test6998541.java failed "guarantee(ik->is_initialized()) failed: java/lang/Byte$ByteCache must be initialized"
Co-authored-by: Wu Yan <wuyan34@huawei.com>
Reviewed-by: dholmes, kvn, dcubed
2021-04-13 16:41:57 +00:00
Patricio Chilano Mateo
943503ef6a 8265035: Remove unneeded exception check from refill_ic_stubs()
Reviewed-by: hseigel, dholmes
2021-04-13 15:32:57 +00:00
Mikael Vidstedt
fced0f08bf 8265113: ProblemList gtest/GTestWrapper.java:os.release_multi_mappings on macosx-aarch64
Reviewed-by: stuefe, akozlov, dcubed
2021-04-13 15:10:58 +00:00
Mikael Vidstedt
2aae29c922 8265111: ProblemList java/util/concurrent/locks/Lock/TimedAcquireLeak.java on macosx-aarch64
Reviewed-by: akozlov, hseigel
2021-04-13 15:09:15 +00:00
Mikael Vidstedt
a84d886f4c 8265112: ProblemList some java/foreign tests on macosx-aarch64
Reviewed-by: akozlov, hseigel
2021-04-13 15:06:26 +00:00
Mikael Vidstedt
87e39cb673 8265110: ProblemList compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/NativeCallTest.java on macosx-aarch64
Reviewed-by: akozlov, hseigel
2021-04-13 15:03:56 +00:00
Conor Cleary
784f1c1f74 8264200: java/nio/channels/DatagramChannel/SRTest.java fails intermittently
Reviewed-by: dfuchs, rriggs, msheppar
2021-04-13 14:06:10 +00:00
Stefan Johansson
a4f644eb2f 8265064: Move clearing and setting of members into helpers in ReservedSpace
Reviewed-by: tschatzl, iwalulya
2021-04-13 12:39:05 +00:00
Claes Redestad
7006070fa3 8265061: Simplify MethodHandleNatives::canBeCalledVirtual
Reviewed-by: jvernee, mchung
2021-04-13 10:39:35 +00:00
Xiaohong Gong
1935655622 8264957: Cleanup unused array Type::dual_type
Reviewed-by: jiefu, neliasso, thartmann
2021-04-13 09:58:32 +00:00
Roberto Castañeda Lozano
954b9a1ce6 8264795: IGV: Upgrade NetBeans platform
Upgrade IGV's underlying NetBeans platform to version 12.3, switch build system
from Ant to Maven, and fix broken unit tests in Data module.

Reviewed-by: kvn, chagedorn, neliasso, xliu
2021-04-13 09:27:39 +00:00
Stefan Johansson
f2f7aa3bec 8262291: Refactor reserve_memory_special_huge_tlbfs
Reviewed-by: iwalulya, stuefe
2021-04-13 08:59:09 +00:00
Mikael Vidstedt
008fc75a29 8264224: Add macosx-aarch64 to Oracle build configurations
Reviewed-by: serb, erikj
2021-04-13 00:58:34 +00:00
Fernando Guallini
f4e639577e 8264190: Harden TLS interop tests
Reviewed-by: rhalade
2021-04-12 21:04:10 +00:00
Vladimir Kozlov
18bec9cf9b 8265084: [BACKOUT] 8264954: unified handling for VectorMask object re-materialization during de-optimization
Reviewed-by: dcubed
2021-04-12 21:03:40 +00:00
Rafael Winterhalter
9dd96257c6 8263763: Synthetic constructor parameters of enum are not considered for annotation indices
Reviewed-by: darcy, jfranck
2021-04-12 21:01:08 +00:00
Martin Balao
1ee80e03ad 8261355: No data buffering in SunPKCS11 Cipher encryption when the underlying mechanism has no padding
Reviewed-by: valeriep
2021-04-12 20:58:08 +00:00
Daniel Fuchs
d84a7e55be 8264124: Update MXBean specification and implementation to extend mapping of CompositeType to records
Reviewed-by: mchung, chegar, alanb
2021-04-12 16:31:36 +00:00
Alexey Ushakov
714ae54f91 8258788: incorrect response to change in window insets [lanai]
Reviewed-by: serb, jdv
2021-04-12 16:28:14 +00:00
Daniel D. Daugherty
f4794378d4 8265082: test/hotspot/jtreg/gc/g1/TestG1SkipCompaction.java fails validate-source
Reviewed-by: mikael, erikj
2021-04-12 16:13:54 +00:00
Mikael Vidstedt
27f4b27138 8264623: Change to Xcode 12.4 for building on Macos at Oracle
Reviewed-by: erikj
2021-04-12 15:56:19 +00:00
Stefan Karlsson
7c20d97ac3 8265052: Break circular include dependency in objArrayOop.inline.hpp
Reviewed-by: tschatzl, egahlin, dholmes
2021-04-12 15:43:28 +00:00
Prasanta Sadhukhan
b90ad76d6b 8233567: [TESTBUG] FocusSubRequestTest.java fails on macos
Reviewed-by: azvegint, pbansal
2021-04-12 14:59:14 +00:00
Zhengyu Gu
125184e96f 8265012: Shenandoah: Backout JDK-8264718
Reviewed-by: shade
2021-04-12 12:47:40 +00:00
Hamlin Li
be0d46c142 8262068: Improve G1 Full GC by skipping compaction for regions with high survival ratio
Co-authored-by: Shoubing Ma <mashoubing1@huawei.com>
Reviewed-by: sjohanss, ayang
2021-04-12 12:41:11 +00:00
Jatin Bhateja
f71be8b5d7 8264954: unified handling for VectorMask object re-materialization during de-optimization
Reviewed-by: vlivanov
2021-04-12 12:13:49 +00:00
Chris Hegarty
3c9858ddfb 8264827: Large mapped buffer/segment crash the VM when calling isLoaded
Reviewed-by: alanb, mcimadamore
2021-04-12 11:21:34 +00:00
Thomas Schatzl
e604320bbd 8264783: G1 BOT verification should not verify beyond allocation threshold
Reviewed-by: mli, ayang
2021-04-12 09:14:39 +00:00
Martin Doerr
cb2806db4e 8265018: [AIX] FileDispatcherImpl.c:31:10: fatal error: 'sys/mount.h' file not found
Reviewed-by: clanger
2021-04-12 09:03:34 +00:00
Yi Yang
ecef1fc82b 8264972: Unused TypeFunc declared in OptoRuntime
Reviewed-by: thartmann, shade
2021-04-12 08:40:58 +00:00
Yi Yang
440c34a62b 8264644: Add PrintClassLoaderDataGraphAtExit to print the detailed CLD graph
Reviewed-by: coleenp, dholmes, shade
2021-04-12 08:23:20 +00:00
Stefan Karlsson
b1ebf82269 8264358: Don't create invalid oop in method handle tracing
Reviewed-by: neliasso, thartmann
2021-04-12 06:37:56 +00:00
Ioi Lam
627ad9fe22 8262328: Templatize JVMFlag boilerplate access methods
Reviewed-by: dholmes, gziemski
2021-04-10 15:39:27 +00:00
Ioi Lam
c15680e742 8264868: Reduce inclusion of registerMap.hpp and register.hpp
Reviewed-by: coleenp, dholmes
2021-04-10 06:09:52 +00:00
Xue-Lei Andrew Fan
5784f6b7f7 8264948: Check for TLS extensions total length
Reviewed-by: jnimeh
2021-04-10 03:48:45 +00:00
Hui Shi
42f4d70627 8264649: runtime/InternalApi/ThreadCpuTimesDeadlock.java crash in fastdebug C2 with -XX:-UseTLAB
Reviewed-by: thartmann, kvn
2021-04-10 00:03:57 +00:00
Vladimir Ivanov
76bd313d80 8264872: Dependencies: Migrate to PerfData counters
Reviewed-by: kvn, neliasso
2021-04-09 22:18:56 +00:00
Vladimir Ivanov
07c8ff47d2 8264871: Dependencies: Miscellaneous cleanups in dependencies.cpp
Reviewed-by: neliasso
2021-04-09 22:03:29 +00:00
Joe Darcy
863feab998 8005295: Use mandated information for printing of repeating annotations
Reviewed-by: jjg
2021-04-09 22:02:34 +00:00
Coleen Phillimore
f26cd2ac1c 8264997: Remove SystemDictionary::cache_get
Reviewed-by: hseigel
2021-04-09 20:47:06 +00:00
Naoto Sato
9ebc497b53 8264765: BreakIterator sees bogus sentence boundary in parenthesized “i.e.” phrase
Reviewed-by: joehw
2021-04-09 18:12:08 +00:00
William Kemper
ec31b3a137 8264727: Shenandoah: Remove extraneous whitespace from phase timings report
Reviewed-by: shade
2021-04-09 17:07:11 +00:00
Brian Burkhalter
cc54de76ca 8264400: (fs) WindowsFileStore equality depends on how the FileStore was constructed
Reviewed-by: alanb
2021-04-09 15:41:52 +00:00
Brian Burkhalter
6de0bb204a 8232861: (fc) FileChannel.force fails on WebDAV file systems (macOS)
Reviewed-by: alanb
2021-04-09 15:31:11 +00:00
Daniel D. Daugherty
1ca4abe9f2 8262881: port JVM/DI tests from JDK-4413752 to JVM/TI
Reviewed-by: sspitsyn, rehn
2021-04-09 15:01:36 +00:00
Coleen Phillimore
06e6b1f7ae 8259242: Remove ProtectionDomainSet_lock
Reviewed-by: dholmes, pchilanomate
2021-04-09 14:59:43 +00:00
Abdul Kolarkunnu
9bb1863ed7 8260923: Add more tests for SSLSocket input/output shutdown
Reviewed-by: coffeys
2021-04-09 13:57:58 +00:00
Vladimir Ivanov
33fa855d5a 8264732: Clean up LinkResolver::vtable_index_of_interface_method()
Reviewed-by: lfoltan, coleenp, dholmes
2021-04-09 11:36:20 +00:00
Vladimir Ivanov
b3782ead36 8264918: [JVMCI] getVtableIndexForInterfaceMethod doesn't check that type and method are related
Reviewed-by: kvn
2021-04-09 10:46:12 +00:00
Kazunori Ogata
f7a6c63ad3 8259822: [PPC64] Support the prefixed instruction format added in POWER10
Reviewed-by: cashford, mdoerr
2021-04-09 09:07:37 +00:00
Conor Cleary
a45733f840 8264779: Fix doclint warnings in java/nio
Reviewed-by: chegar, iris, alanb, naoto
2021-04-09 08:50:33 +00:00
Wang Huang
3e57924a6e 8264885: Fix the code style of macro in aarch64_neon_ad.m4
Reviewed-by: aph, shade
2021-04-09 06:29:03 +00:00
Aleksey Shipilev
051c117bf0 8264923: PNGImageWriter.write_zTXt throws Exception with a typo
Reviewed-by: aivanov, jdv, azvegint, kizune
2021-04-09 06:24:48 +00:00
Aleksey Shipilev
1c6b1134d0 8264513: Cleanup CardTableBarrierSetC2::post_barrier
Reviewed-by: tschatzl
2021-04-09 06:24:02 +00:00
Yi Yang
666fd62ee8 8264881: Remove the old development option MemProfiling
Reviewed-by: dholmes, coleenp, shade
2021-04-09 06:23:12 +00:00
Ioi Lam
951f277a71 8264874: Build interim-langtools for HotSpot only if Graal is enabled
Reviewed-by: kvn, erikj
2021-04-09 04:41:26 +00:00
Hai-May Chao
719f95e504 8260693: Provide the support for specifying a signer in keytool -genkeypair
Reviewed-by: weijun
2021-04-09 01:59:59 +00:00
Dong Bo
77b16739ab 8256245: AArch64: Implement Base64 decoding intrinsic
Reviewed-by: aph, ngasson
2021-04-09 01:28:11 +00:00
Guoxiong Li
57f1e7d934 8264696: Multi-catch clause causes compiler exception because it uses the package-private supertype
Reviewed-by: vromero
2021-04-08 21:34:51 +00:00
Weijun Wang
3d2b4cc567 8264864: Multiple byte tag not supported by ASN.1 encoding
Reviewed-by: xuelei
2021-04-08 21:26:05 +00:00
Joe Darcy
ccefa5e378 8261625: Add Elements.isAutomaticModule(ModuleElement)
Reviewed-by: vromero, jlahoda
2021-04-08 21:25:17 +00:00
Andrey Turbanov
8a2358074f 8264428: Cleanup usages of StringBuffer in java.desktop
Reviewed-by: azvegint, aivanov
2021-04-08 21:23:30 +00:00
Mahendra Chhipa
308f6796da 8264454: Jaxp unit test from open jdk needs to be improved
Reviewed-by: joehw
2021-04-08 21:21:11 +00:00
Alexey Semenyuk
5bd6c74547 8236127: Use value of --icon CLI option to set icon for exe installers
Reviewed-by: almatvee, herrick
2021-04-08 15:44:11 +00:00
Vladimir Kozlov
81d35e439d 8264063: Outer Safepoint poll load should not reference the head of inner strip mined loop.
Reviewed-by: roland, vlivanov
2021-04-08 15:04:38 +00:00
Lutz Schmidt
04fa1ed4d0 8264848: [macos] libjvm.dylib linker warning due to macOS version mismatch
Reviewed-by: erikj, dcubed, clanger
2021-04-08 13:37:22 +00:00
Julia Boes
214d6e21bb 8263506: Make sun.net.httpserver.UnmodifiableHeaders unmodifiable
Reviewed-by: michaelm, dfuchs
2021-04-08 13:09:26 +00:00
Harold Seigel
af13c64f68 8264711: More runtime TRAPS cleanups
Reviewed-by: lfoltan, pchilanomate, dholmes, dcubed
2021-04-08 12:13:19 +00:00
Zhengyu Gu
3aec2d9647 8264718: Shenandoah: enable string deduplication during root scanning
Reviewed-by: shade
2021-04-08 12:09:21 +00:00
Coleen Phillimore
255afbea92 8264672: runtime/ParallelLoad/ParallelSuperTest.java timed out
Reviewed-by: hseigel, lfoltan, dholmes
2021-04-08 11:44:23 +00:00
Denghui Dong
ec599da68c 8264633: Add missing logging to PlatformRecording#stop
Reviewed-by: egahlin
2021-04-08 08:11:43 +00:00
Xiaohong Gong
e89542fbe6 8264352: AArch64: Optimize vector "not/andNot" for NEON and SVE
Reviewed-by: aph, njian
2021-04-08 06:14:52 +00:00
Prasanta Sadhukhan
016db40c4a 8263907: Specification of CellRendererPane::paintComponent(..Rectangle) should clearly mention which method it delegates the call to
Reviewed-by: aivanov, serb
2021-04-08 04:41:18 +00:00
Ioi Lam
78d1164ce2 8214455: Relocate CDS archived regions to the top of the G1 heap
Reviewed-by: tschatzl, ccheung
2021-04-08 00:41:28 +00:00
Jie Fu
88eb2919f5 8264809: test-lib fails to build due to some warnings in ASN1Formatter and jfr
Reviewed-by: rriggs
2021-04-08 00:24:12 +00:00
Yasumasa Suenaga
a863ab69d3 8264551: Unexpected warning when jpackage creates an exe
Reviewed-by: asemenyuk, herrick
2021-04-07 23:11:22 +00:00
Vladimir Ivanov
6e2b82a45f 8264731: Introduce InstanceKlass::method_at_itable_or_null()
Reviewed-by: coleenp, dholmes
2021-04-07 21:07:12 +00:00
Kim Barrett
22b20f8e92 8264424: Support OopStorage bulk allocation
Reviewed-by: ayang, tschatzl
2021-04-07 19:43:19 +00:00
Alexandre Iline
ab3be7286a 8264863: Update JCov version to support JDK 17
Reviewed-by: erikj
2021-04-07 18:41:54 +00:00
Xin Liu
774e5ae009 8264742: member variable _monitor of MonitorLocker is redundant
Reviewed-by: coleenp, dholmes, phh
2021-04-07 17:51:25 +00:00
Anthony Scarpino
7a99a9874b 8262316: Reducing locks in RSA Blinding
Reviewed-by: jnimeh
2021-04-07 17:29:01 +00:00
Lutz Schmidt
d3fdd7399d 8264173: [s390] Improve Hardware Feature Detection And Reporting
Reviewed-by: mdoerr, goetz
2021-04-07 16:20:17 +00:00
Alexey Ivanov
9d6503978d 8263984: Invalidate printServices when there are no printers
Reviewed-by: serb, jdv
2021-04-07 15:29:52 +00:00
Phil Race
adb860ec10 8255800: Raster creation methods need some specification clean up
Reviewed-by: serb
2021-04-07 14:49:27 +00:00
Wang Huang
eab84554e8 8261137: Optimization of Box nodes in uncommon_trap
Co-authored-by: Wu Yan <wuyan34@huawei.com>
Co-authored-by: Ai Jiaming <aijiaming1@huawei.com>
Reviewed-by: kvn, vlivanov, thartmann
2021-04-07 10:48:17 +00:00
Alex Blewitt
92fad1b408 8264680: Use the blessed modifier order in java.desktop
Reviewed-by: serb, kizune, azvegint
2021-04-07 06:14:38 +00:00
Ioi Lam
17202c89d5 8264748: Do not include arguments.hpp from compilerDefinitions.hpp
Reviewed-by: gziemski, stefank
2021-04-07 05:37:37 +00:00
Ioi Lam
c3abdc9aad 8264797: Do not include klassVtable.hpp from instanceKlass.hpp
Reviewed-by: coleenp, stefank
2021-04-07 03:44:56 +00:00
Weijun Wang
eb5c097b6d 8262389: Use permitted_enctypes if default_tkt_enctypes or default_tgs_enctypes is not present
Reviewed-by: mullan
2021-04-06 23:58:21 +00:00
Jie Fu
bfb034abf9 8264524: jdk/internal/platform/docker/TestDockerMemoryMetrics.java fails due to swapping not working
Reviewed-by: sgehwolf
2021-04-06 23:03:45 +00:00
Aleksey Shipilev
a756d8d7ef 8264759: x86_32 Minimal VM build failure after JDK-8262355
Reviewed-by: thartmann, kvn
2021-04-06 18:14:15 +00:00
Jim Laskey
0f13e2277f 8264791: java/util/Random/RandomTestBsi1999.java failed "java.security.SecureRandom nextFloat consecutive"
Reviewed-by: darcy, bpb, dcubed
2021-04-06 17:05:42 +00:00
Michael McMahon
4bb80f3720 8262898: com/sun/net/httpserver/bugs/8199849/ParamTest.java times out
Reviewed-by: dfuchs
2021-04-06 16:01:59 +00:00
Xue-Lei Andrew Fan
2f5169965d 8264554: X509KeyManagerImpl calls getProtectionParameter with incorrect alias
Reviewed-by: mullan
2021-04-06 15:43:08 +00:00
Anton Kozlov
114e3c3e2d 8263856: Github Actions for macos/aarch64 cross-build
Reviewed-by: erikj
2021-04-06 13:45:46 +00:00
Aleksei Efimov
a611c462f9 8264048: Fix caching in Jar URL connections when an entry is missing
Co-authored-by: Daniel Fuchs <dfuchs@openjdk.org>
Reviewed-by: bchristi, dfuchs
2021-04-06 10:43:59 +00:00
Thomas Schatzl
bf26a2558f 8264027: Refactor "CLEANUP" region printing
Reviewed-by: kbarrett, ayang
2021-04-06 10:03:03 +00:00
Severin Gehwolf
eb6330e4f0 8264047: Duplicate global variable 'jvm' in libjavajpeg and libawt
Reviewed-by: serb
2021-04-06 09:43:50 +00:00
Nils Eliasson
81325483d8 8264359: Compiler directives should enable DebugNonSafepoints when PrintAssembly is requested
Reviewed-by: kvn, thartmann
2021-04-06 06:47:49 +00:00
Nils Eliasson
ec7b0028e8 8264626: C1 should be able to inline excluded methods
Reviewed-by: iveresov, thartmann
2021-04-06 06:47:00 +00:00
Ioi Lam
ff223530b6 8264565: Templatize num_arguments() functions of DCmd subclasses
Reviewed-by: coleenp, dholmes
2021-04-06 03:27:09 +00:00
Yi Yang
54b4070da7 8264634: CollectCLDClosure collects duplicated CLDs when dumping dynamic archive
Reviewed-by: minqi, iklam
2021-04-06 02:58:07 +00:00
Nick Gasson
43d4a6f615 8264564: AArch64: use MOVI instead of FMOV to zero FP register
Reviewed-by: aph
2021-04-06 02:44:05 +00:00
Hui Shi
dc608fd0f3 8264411: serviceability/jvmti/HeapMonitor tests intermittently fail due to large TLAB size
Reviewed-by: sspitsyn, cjplummer
2021-04-06 01:36:55 +00:00
Yasumasa Suenaga
b1a225e119 8263565: NPE was thrown when sun.jvm.hotspot.rmi.serverNamePrefix was set
Reviewed-by: cjplummer, amenkov
2021-04-06 00:09:04 +00:00
Yasumasa Suenaga
c41cd1521f 8264686: ClhsdbTestConnectArgument.java should use SATestUtils::validateSADebugDPrivileges
Reviewed-by: cjplummer
2021-04-05 23:48:30 +00:00
Jorn Vernee
b7baca7f32 8264288: Performance issue with MethodHandle.asCollector
Reviewed-by: jrose, vlivanov
2021-04-05 20:05:07 +00:00
Jim Laskey
920189918e 8264729: Random check-in failing header checks.
Reviewed-by: erikj, bpb
2021-04-05 19:03:18 +00:00
Yumin Qi
d920f8588c 8264540: WhiteBox.metaspaceReserveAlignment should return shared region alignment
Reviewed-by: ccheung, iklam
2021-04-05 18:31:12 +00:00
Brian Burkhalter
104e925dfd 8264512: jdk/test/jdk/java/util/prefs/ExportNode.java relies on default platform encoding
Reviewed-by: naoto
2021-04-05 16:42:09 +00:00
Jim Laskey
a0ec2cb289 8248862: Implement Enhanced Pseudo-Random Number Generators
Reviewed-by: darcy
2021-04-05 16:29:18 +00:00
Tejpal Rebari
39719da9d1 8253266: JList and JTable constructors should clear OPAQUE_SET before calling updateUI
Reviewed-by: psadhukhan, serb
2021-04-05 14:17:19 +00:00
Jim Laskey
a8005efde3 8166727: javac crashed: [jimage.dll+0x1942] ImageStrings::find+0x28
Reviewed-by: iklam, alanb
2021-04-05 14:12:26 +00:00
Anton Kozlov
7f9ece23dc 8264650: Cross-compilation to macos/aarch64
Reviewed-by: erikj
2021-04-05 06:58:11 +00:00
Jayathirth D V
0039c18e08 8264475: CopyArea ignores clip state in metal rendering pipeline
8251036: SwingSet2 - Dragging internal frame inside jframe leaves artifacts with MetalLookAndFeel

Reviewed-by: aghaisas, psadhukhan
2021-04-05 05:28:21 +00:00
Jatin Bhateja
f084bd2f61 8262355: Support for AVX-512 opmask register allocation.
Reviewed-by: vlivanov, njian, kvn
2021-04-04 17:47:23 +00:00
Kim Barrett
078066695b 8254050: HotSpot Style Guide should permit using the "override" virtual specifier
Reviewed-by: dholmes, jrose, stuefe, tschatzl, dcubed, iklam, kvn
2021-04-04 04:24:37 +00:00
Daniel D. Daugherty
f259eeaf65 8264393: JDK-8258284 introduced dangling TLH race
Reviewed-by: dholmes, rehn, eosterlund
2021-04-03 19:06:34 +00:00
Daniel D. Daugherty
9b2232bc1f 8264123: add ThreadsList.is_valid() support
Reviewed-by: dholmes, eosterlund, rehn
2021-04-03 19:03:04 +00:00
Jonathan Gibbons
e8eda655bb 8264664: use text blocks in javac module tests
Reviewed-by: darcy
2021-04-03 01:18:00 +00:00
Doug Lea
cec66cf8ef 8264572: ForkJoinPool.getCommonPoolParallelism() reports always 1
Reviewed-by: alanb
2021-04-02 22:44:20 +00:00
Daniel D. Daugherty
9c283da175 8264662: ProblemList vmTestbase/jit/escape/AdaptiveBlocking/AdaptiveBlocking001/AdaptiveBlocking001.java on win-x64 with ZGC
Reviewed-by: hseigel
2021-04-02 21:32:54 +00:00
Jonathan Gibbons
eb0ac86dc6 8264655: Minor internal doc comment cleanup
Reviewed-by: prappo
2021-04-02 20:47:35 +00:00
Brian Burkhalter
3991b329b1 8264539: Improve failure message of java/nio/file/WatchService/SensitivityModifier.java
Reviewed-by: alanb
2021-04-02 19:53:18 +00:00
Daniel D. Daugherty
4133dedeef 8264658: ProblemList javax/swing/JInternalFrame/8146321/JInternalFrameIconTest.java on linux-x64
Reviewed-by: pbansal
2021-04-02 19:17:05 +00:00
Daniel D. Daugherty
220ddbd99e 8264657: ProblemList java/awt/Focus/FrameMinimizeTest/FrameMinimizeTest.java on linux-x64
Reviewed-by: rriggs
2021-04-02 18:51:33 +00:00
Daniel D. Daugherty
d0f3cc92bc 8264656: ProblemList sun/security/ssl/SSLSocketImpl/SSLSocketImplThrowsWrongExceptions.java on linux-x64
Reviewed-by: rriggs
2021-04-02 18:13:20 +00:00
Naoto Sato
6c145c4768 8264544: Case-insensitive comparison issue with supplementary characters.
Co-authored-by: Chris Johnson <chriswjohnson.jdk@gmail.com>
Reviewed-by: joehw, iris, alanb
2021-04-02 16:32:45 +00:00
Vladimir Ivanov
f60e81bf7b 8264548: Dependencies: ClassHierarchyWalker::is_witness() cleanups
Reviewed-by: kvn
2021-04-02 16:10:02 +00:00
Xue-Lei Andrew Fan
177bc84fe8 8264606: More comment for ECDH public key validation
Reviewed-by: wetmore
2021-04-02 15:23:23 +00:00
Coleen Phillimore
885916eda0 8262280: Incorrect exception handling for VMThread in class redefinition
Reviewed-by: hseigel
2021-04-02 13:05:15 +00:00
Xiaohong Gong
7d0a0bad7f 8264109: Add vectorized implementation for VectorMask.andNot()
Reviewed-by: psandoz, njian
2021-04-02 10:00:47 +00:00
Ningsheng Jian
0935eaa4b4 8264409: AArch64: generate better code for Vector API allTrue
Reviewed-by: adinn, pli
2021-04-02 09:31:20 +00:00
Christoph Göttschkes
4793557fa8 8264502: (fc) FileDispatcherImpl.setDirect0 might return uninitialized variable on some platforms
Reviewed-by: alanb, bpb, michaelm
2021-04-02 09:19:53 +00:00
Jie Fu
da643cdb20 8264526: javax/swing/text/html/parser/Parser/8078268/bug8078268.java timeout
Reviewed-by: serb
2021-04-02 08:25:26 +00:00
Joe Darcy
66d9961cbd 8205502: Make exception message from AnnotationInvocationHandler more informative
Reviewed-by: bpb, naoto, iris
2021-04-01 23:13:19 +00:00
Coleen Phillimore
5e59d28def 8262046: Clean up parallel class loading code and comments
Reviewed-by: lfoltan, iklam
2021-04-01 21:16:58 +00:00
Andy Herrick
04f24fe9ad 8264403: [macos]: App names containing '.' characters results in an error message when launching
Reviewed-by: asemenyuk
2021-04-01 20:39:38 +00:00
Joe Darcy
b953386de1 8264609: Number.{byteValue, shortValue} spec should use @implSpec
Reviewed-by: psandoz, bpb
2021-04-01 19:46:56 +00:00
Ioi Lam
5858399062 8264285: Clean the modification of ccstr JVM flags
Reviewed-by: dholmes, coleenp
2021-04-01 18:25:14 +00:00
Vladimir Kozlov
6e0da9961f 8263448: CTW: fatal error: meet not symmetric
Reviewed-by: roland
2021-04-01 17:03:14 +00:00
Joe Darcy
328e9514a8 8169629: Annotations with lambda expressions cause AnnotationFormatError
Reviewed-by: jfranck
2021-04-01 16:46:32 +00:00
Jie Fu
c04a743bd4 8264557: Incorrect copyright year for test/micro/org/openjdk/bench/java/lang/MathBench.java after JDK-8264054
Reviewed-by: neliasso
2021-04-01 15:12:22 +00:00
Coleen Phillimore
4b19771401 8264150: CDS dumping code calls TRAPS functions in VM thread
Reviewed-by: dholmes, iklam
2021-04-01 15:09:12 +00:00
Coleen Phillimore
1dc75e9ef5 8264538: Rename SystemDictionary::parse_stream
Reviewed-by: lfoltan, hseigel
2021-04-01 14:55:11 +00:00
Vladimir Ivanov
80681b5470 8264546: Dependencies: Context class is always an InstanceKlass
Reviewed-by: kvn
2021-04-01 12:56:19 +00:00
Jan Lahoda
fdfa1dda08 8264306: Non deterministic generation of java/lang/invoke/MemberName.class
Reviewed-by: shade, jfranck
2021-04-01 11:38:45 +00:00
Hui Shi
011f6d13ab 8264223: CodeHeap::verify fails extra_hops assertion in fastdebug test
Reviewed-by: lucy, shade
2021-04-01 10:43:45 +00:00
Prasanta Sadhukhan
0696fd0e81 8263496: MetalHighContrastTheme.getControlHighlight cleanup
Reviewed-by: azvegint
2021-04-01 07:35:17 +00:00
Andrey Turbanov
6cf109503a 8264484: Replace uses of StringBuffer with StringBuilder in jdk.hotspot.agent
Reviewed-by: kevinw, amenkov, ysuenaga
2021-04-01 07:22:41 +00:00
Alex Blewitt
d2df9a7df8 8264331: Use the blessed modifier order in jdk.compiler
Reviewed-by: vromero, iris, shade
2021-04-01 06:53:54 +00:00
Alexander Scherbatiy
0228734902 8262470: Printed GlyphVector outline with low DPI has bad quality on Windows
Reviewed-by: serb, psadhukhan
2021-04-01 06:45:20 +00:00
Tagir F. Valeev
3997c99e0a 8264222: Use switch expression in jshell where possible
Reviewed-by: briangoetz
2021-04-01 06:02:21 +00:00
Koichi Sakata
39f0b27a12 8176026: SA: Huge heap sizes cause a negative value to be displayed in the jhisto heap total
Reviewed-by: cjplummer, kevinw, ysuenaga
2021-04-01 04:10:15 +00:00
Yi Yang
de495df78d 8264413: Data is written to file header even if its CRC32 was calculated
Reviewed-by: ccheung, minqi
2021-04-01 02:07:48 +00:00
Sandhya Viswanathan
52d8a22943 8264054: Bad XMM performance on java.lang.MathBench.sqrtDouble
Co-authored-by: Eric Caspole <ecaspole@openjdk.org>
Co-authored-by: Charlie Hunt <huntch@openjdk.org>
Reviewed-by: neliasso, kvn, vlivanov
2021-04-01 00:34:00 +00:00
Sergey Bylokhov
16acfafb6b 8012229: [lcms] Improve performance of color conversion for images with alpha channel
Reviewed-by: azvegint
2021-03-31 23:02:55 +00:00
Your Name
cb70ab0cb9 8263235: sanity/client/SwingSet/src/ColorChooserDemoTest.java failed throwing java.lang.NoClassDefFoundError
Reviewed-by: psadhukhan, serb
2021-03-31 20:33:16 +00:00
Man Cao
e2ec997b55 8263551: Provide shared lock-free FIFO queue implementation
Create a generalized lock-free queue implementation based on G1DirtyCardQueueSet::Queue.

Reviewed-by: kbarrett, iwalulya
2021-03-31 18:29:37 +00:00
Stefan Karlsson
dec344709f 8264346: nullptr_t undefined in global namespace for clang+libstdc++
Reviewed-by: dholmes, kbarrett
2021-03-31 16:43:56 +00:00
Stefan Karlsson
0fa35728a7 8264489: Add more logging to LargeCopyWithMark.java
Reviewed-by: kbarrett, alanb, bpb
2021-03-31 16:43:14 +00:00
Alex Blewitt
f43d14a2ff 8264396: Use the blessed modifier order in jdk.internal.jvmstat
Reviewed-by: cjplummer, kevinw, shade
2021-03-31 16:42:14 +00:00
Eric Caspole
6225ae636e 8264466: Cut-paste error in InterfaceCalls JMH
Reviewed-by: shade, thartmann
2021-03-31 15:20:05 +00:00
Coleen Phillimore
40c3249160 8264149: BreakpointInfo::set allocates metaspace object in VM thread
Reviewed-by: dholmes, iklam
2021-03-31 12:43:03 +00:00
Albert Mingkun Yang
999c134884 8264417: ParallelCompactData::region_offset should not accept pointers outside the current region
Reviewed-by: tschatzl, iwalulya
2021-03-31 11:35:10 +00:00
Sebastian Stenzel
604b14c43d 8264112: (fs) Reorder methods/constructor/fields in UnixUserDefinedFileAttributeView.java
Reviewed-by: alanb
2021-03-31 10:37:02 +00:00
Martin Doerr
9061271b0b 8261957: [PPC64] Support for Concurrent Thread-Stack Processing
Reviewed-by: lucy, nradomski
2021-03-31 09:37:16 +00:00
Anton Kozlov
8a4a9117f5 8262894: [macos_aarch64] SIGBUS in Assembler::ld_st2
Co-authored-by: Mikael Vidstedt <mikael@openjdk.org>
Reviewed-by: dholmes, gziemski
2021-03-31 09:34:12 +00:00
Christian Hagedorn
ab6faa607b 8263582: WB_IsMethodCompilable ignores compiler directives
Reviewed-by: iveresov, kvn, neliasso
2021-03-31 06:33:45 +00:00
Yumin Qi
928fa5b5f9 8244540: Print more information with -XX:+PrintSharedArchiveAndExit
Reviewed-by: iklam, ccheung
2021-03-31 03:10:38 +00:00
Vladimir Kozlov
e073486ffe 8262093: java/util/concurrent/tck/JSR166TestCase.java failed "assert(false) failed: unexpected node"
Reviewed-by: thartmann
2021-03-31 01:16:06 +00:00
Joe Darcy
815248ab27 8264148: Update spec for exceptions retrofitted for exception chaining
Reviewed-by: rriggs, smarks
2021-03-30 19:59:59 +00:00
Brian Burkhalter
353807c5f1 8263898: (fs) Files.newOutputStream on the "NUL" special device throws FileSystemException: "nul: Incorrect function" (win)
Reviewed-by: jpai, alanb
2021-03-30 18:18:37 +00:00
Attila Szegedi
2bd80f94a1 8264326: Modernize javax.script.ScriptEngineManager and related classes' implementation
Reviewed-by: sundar
2021-03-30 18:13:39 +00:00
Attila Szegedi
b08d6383b9 8262503: Support records in Dynalink
Reviewed-by: sundar
2021-03-30 18:06:34 +00:00
Hui Shi
21e7402b04 8263707: C1 RangeCheckEliminator support constant array and NewMultiArray
Reviewed-by: thartmann, neliasso
2021-03-30 16:04:59 +00:00
Patricio Chilano Mateo
2ad6f2d9bc 8263896: Make not_suspended parameter from ObjectMonitor::exit() have default value
Reviewed-by: rehn, dcubed, dholmes
2021-03-30 15:00:38 +00:00
Yi Yang
b65219881d 8264429: Test runtime/cds/appcds/VerifyWithDefaultArchive.java assumes OpenJDK build
Reviewed-by: dcubed, shade
2021-03-30 14:45:55 +00:00
Stefan Karlsson
2c9365d79c 8264271: Avoid creating non_oop_word oops
Reviewed-by: kbarrett, pliden
2021-03-30 13:28:37 +00:00
Sebastian Stenzel
daeca3fff2 8262958: (fs) UnixUserDefinedFileAttributeView cleanup
Reviewed-by: alanb
2021-03-30 13:13:08 +00:00
Hannes Wallnöfer
af02883575 8264191: Javadoc search is broken in Internet Explorer
Reviewed-by: jjg
2021-03-30 12:21:49 +00:00
Harold Seigel
6e74c3ab94 8264193: Remove TRAPS parameters for modules and defaultmethods
Reviewed-by: lfoltan, ccheung, coleenp, dholmes
2021-03-30 12:19:13 +00:00
Zhengyu Gu
ee5e00b05f 8264279: Shenandoah: Missing handshake after JDK-8263427
Reviewed-by: shade
2021-03-30 11:43:39 +00:00
Zhengyu Gu
ac604a18c9 8264374: Shenandoah: Remove leftover parallel reference processing argument
Reviewed-by: shade
2021-03-30 11:42:46 +00:00
Eric Liu
f3726a8700 8264020: Optimize double negation elimination
Reviewed-by: thartmann, chagedorn
2021-03-30 09:57:19 +00:00
Nils Eliasson
4ffa41c3db 8263615: Cleanup tightly_coupled_allocation
Reviewed-by: kvn, thartmann
2021-03-30 09:22:40 +00:00
Kim Barrett
4ea6abfbd1 8264324: Simplify allocation list management in OopStorage::reduce_deferred_updates
Reviewed-by: tschatzl, ayang
2021-03-30 08:46:07 +00:00
Alex Blewitt
8735259f05 8264333: Use the blessed modifier order in jdk.jshell
Reviewed-by: iris, shade
2021-03-30 08:15:50 +00:00
Roland Westrelin
d2a63f259e 8264360: Loop strip mining verification fails with "should be on the backedge"
Reviewed-by: kvn, thartmann
2021-03-30 07:58:49 +00:00
Roland Westrelin
8100a20e98 8263971: C2 crashes with SIGFPE with -XX:+StressGCM and -XX:+StressIGVN
Reviewed-by: chagedorn, thartmann
2021-03-30 07:40:49 +00:00
Yi Yang
bcdf4694e0 8264337: VM crashed when -XX:+VerifySharedSpaces
Reviewed-by: minqi, ccheung, shade
2021-03-30 07:20:10 +00:00
Sergey Tsypanov
1a681fa743 8263560: Remove needless wrapping with BufferedInputStream
Reviewed-by: prr, alanb, dfuchs, serb
2021-03-30 06:47:54 +00:00
Tom Rodriguez
182b11c31a 8264016: [JVMCI] add some thread local fields for use by JVMCI
Reviewed-by: dholmes, iklam, coleenp
2021-03-30 04:26:56 +00:00
7658 changed files with 121532 additions and 581306 deletions

View File

@@ -25,6 +25,7 @@ jobs:
platform_windows_aarch64: ${{ steps.check_platforms.outputs.platform_windows_aarch64 }}
platform_windows_x64: ${{ steps.check_platforms.outputs.platform_windows_x64 }}
platform_macos_x64: ${{ steps.check_platforms.outputs.platform_macos_x64 }}
platform_macos_aarch64: ${{ steps.check_platforms.outputs.platform_macos_aarch64 }}
dependencies: ${{ steps.check_deps.outputs.dependencies }}
steps:
@@ -41,6 +42,7 @@ jobs:
echo "::set-output name=platform_windows_aarch64::${{ contains(github.event.inputs.platforms, 'windows aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows aarch64'))) }}"
echo "::set-output name=platform_windows_x64::${{ contains(github.event.inputs.platforms, 'windows x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'windows x64'))) }}"
echo "::set-output name=platform_macos_x64::${{ contains(github.event.inputs.platforms, 'macos x64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos x64'))) }}"
echo "::set-output name=platform_macos_aarch64::${{ contains(github.event.inputs.platforms, 'macos aarch64') || (github.event.inputs.platforms == '' && (secrets.JDK_SUBMIT_PLATFORMS == '' || contains(secrets.JDK_SUBMIT_PLATFORMS, 'macos aarch64'))) }}"
if: steps.check_submit.outputs.should_run != 'false'
- name: Determine unique bundle identifier
@@ -1359,8 +1361,112 @@ jobs:
with:
name: transient_jdk-macos-x64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
path: |
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz
macos_aarch64_build:
name: macOS aarch64
runs-on: "macos-10.15"
needs: prerequisites
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_macos_aarch64 != 'false'
strategy:
fail-fast: false
matrix:
flavor:
- build release
- build debug
include:
- flavor: build release
- flavor: build debug
flags: --enable-debug
artifact: -debug
env:
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
BOOT_JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).BOOT_JDK_VERSION }}"
BOOT_JDK_FILENAME: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_FILENAME }}"
BOOT_JDK_URL: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_URL }}"
BOOT_JDK_SHA256: "${{ fromJson(needs.prerequisites.outputs.dependencies).MACOS_X64_BOOT_JDK_SHA256 }}"
steps:
- name: Checkout the source
uses: actions/checkout@v2
with:
path: jdk
- name: Restore boot JDK from cache
id: bootjdk
uses: actions/cache@v2
with:
path: ~/bootjdk/${{ env.BOOT_JDK_VERSION }}
key: bootjdk-${{ runner.os }}-${{ env.BOOT_JDK_VERSION }}-${{ env.BOOT_JDK_SHA256 }}-v1
- name: Download boot JDK
run: |
mkdir -p ${HOME}/bootjdk/${BOOT_JDK_VERSION} || true
wget -O "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" "${BOOT_JDK_URL}"
echo "${BOOT_JDK_SHA256} ${HOME}/bootjdk/${BOOT_JDK_FILENAME}" | shasum -a 256 -c >/dev/null -
tar -xf "${HOME}/bootjdk/${BOOT_JDK_FILENAME}" -C "${HOME}/bootjdk/${BOOT_JDK_VERSION}"
mv "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"*/* "${HOME}/bootjdk/${BOOT_JDK_VERSION}/"
if: steps.bootjdk.outputs.cache-hit != 'true'
- name: Restore jtreg artifact
id: jtreg_restore
uses: actions/download-artifact@v2
with:
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
path: ~/jtreg/
continue-on-error: true
- name: Restore jtreg artifact (retry)
uses: actions/download-artifact@v2
with:
name: transient_jtreg_${{ needs.prerequisites.outputs.bundle_id }}
path: ~/jtreg/
if: steps.jtreg_restore.outcome == 'failure'
- name: Checkout gtest sources
uses: actions/checkout@v2
with:
repository: "google/googletest"
ref: "release-${{ fromJson(needs.prerequisites.outputs.dependencies).GTEST_VERSION }}"
path: gtest
- name: Install dependencies
run: brew install make
- name: Select Xcode version
run: sudo xcode-select --switch /Applications/Xcode_12.4.app/Contents/Developer
- name: Configure
run: >
bash configure
--with-conf-name=macos-aarch64
--openjdk-target=aarch64-apple-darwin
${{ matrix.flags }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-version-build=0
--with-boot-jdk=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
--with-jtreg=${HOME}/jtreg
--with-gtest=${GITHUB_WORKSPACE}/gtest
--with-default-make-target="product-bundles test-bundles"
--with-zlib=system
--enable-jtreg-failure-handler
working-directory: jdk
- name: Build
run: make CONF_NAME=macos-aarch64
working-directory: jdk
- name: Persist test bundles
uses: actions/upload-artifact@v2
with:
name: transient_jdk-macos-aarch64${{ matrix.artifact }}_${{ needs.prerequisites.outputs.bundle_id }}
path: |
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-aarch64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-aarch64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_macos-aarch64_bin-tests${{ matrix.artifact }}.tar.gz
macos_x64_test:
name: macOS x64
@@ -1466,13 +1572,13 @@ jobs:
- name: Unpack jdk
run: |
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}"
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}"
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}"
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }}"
- name: Unpack tests
run: |
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}"
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}"
mkdir -p "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}"
tar -xf "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}"
- name: Install dependencies
run: brew install make
@@ -1482,13 +1588,13 @@ jobs:
- name: Find root of jdk image dir
run: |
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }} -name release -type f`
imageroot=`find ${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin${{ matrix.artifact }} -name release -type f`
echo "imageroot=`dirname ${imageroot}`" >> $GITHUB_ENV
- name: Run tests
run: >
JDK_IMAGE_DIR=${{ env.imageroot }}
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}
TEST_IMAGE_DIR=${HOME}/jdk-macos-x64${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_macos-x64_bin-tests${{ matrix.artifact }}
BOOT_JDK=${HOME}/bootjdk/${BOOT_JDK_VERSION}/Contents/Home
JT_HOME=${HOME}/jtreg
gmake test-prebuilt
@@ -1560,6 +1666,7 @@ jobs:
- linux_x86_test
- windows_x64_test
- macos_x64_test
- macos_aarch64_build
steps:
- name: Determine current artifacts endpoint

0
configure vendored Executable file → Normal file
View File

View File

@@ -76,7 +76,7 @@
<li><a href="#specifying-the-target-platform">Specifying the Target Platform</a></li>
<li><a href="#toolchain-considerations">Toolchain Considerations</a></li>
<li><a href="#native-libraries">Native Libraries</a></li>
<li><a href="#creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</a></li>
<li><a href="#cross-compiling-with-debian-sysroots">Cross compiling with Debian sysroots</a></li>
<li><a href="#building-for-armaarch64">Building for ARM/aarch64</a></li>
<li><a href="#building-for-musl">Building for musl</a></li>
<li><a href="#verifying-the-build">Verifying the Build</a></li>
@@ -320,6 +320,7 @@
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libfreetype6-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install freetype-devel</code>.</li>
<li>To install on Alpine Linux, try running <code>sudo apk add freetype-dev</code>.</li>
<li>To install on macOS, try running <code>brew install freetype</code>.</li>
</ul>
<p>Use <code>--with-freetype-include=&lt;path&gt;</code> and <code>--with-freetype-lib=&lt;path&gt;</code> if <code>configure</code> does not automatically locate the platform FreeType files.</p>
<h3 id="cups">CUPS</h3>
@@ -628,7 +629,7 @@ cp: cannot stat `arm-linux-gnueabihf/libSM.so&#39;: No such file or directory
cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</code></pre></li>
<li><p>If the X11 libraries are not properly detected by <code>configure</code>, you can point them out by <code>--with-x</code>.</p></li>
</ul>
<h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</h3>
<h3 id="cross-compiling-with-debian-sysroots">Cross compiling with Debian sysroots</h3>
<p>Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use <code>qemu-deboostrap</code> to create the <em>target</em> system chroot, which would have the native libraries and headers specific to that <em>target</em> system. After that, we can use the cross-compiler on the <em>build</em> system, pointing into chroot to get the build dependencies right. This allows building for foreign architectures with native compilation speed.</p>
<p>For example, cross-compiling to AArch64 from x86_64 could be done like this:</p>
<ul>
@@ -638,7 +639,7 @@ cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</c
<pre><code>sudo qemu-debootstrap \
--arch=arm64 \
--verbose \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
--resolve-deps \
buster \
~/sysroot-arm64 \
@@ -646,67 +647,125 @@ cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</c
<li><p>Make sure the symlinks inside the newly created chroot point to proper locations:</p>
<pre><code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></pre></li>
<li><p>Configure and build with newly created chroot as sysroot/toolchain-path:</p>
<pre><code>CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64 \
--with-toolchain-path=~/sysroot-arm64 \
--with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \
--with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \
--x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/
<pre><code>sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64
make images
ls build/linux-aarch64-server-release/</code></pre></li>
</ul>
<p>The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.</p>
<p>The build system should automatically detect the toolchain paths and dependencies, but sometimes it might require a little nudge with:</p>
<ul>
<li><p>Native compilers: override <code>CC</code> or <code>CXX</code> for <code>./configure</code></p></li>
<li><p>Freetype lib location: override <code>--with-freetype-lib</code>, for example <code>${sysroot}/usr/lib/${target}/</code></p></li>
<li><p>Freetype includes location: override <code>--with-freetype-include</code> for example <code>${sysroot}/usr/include/freetype2/</code></p></li>
<li><p>X11 libraries location: override <code>--x-libraries</code>, for example <code>${sysroot}/usr/lib/${target}/</code></p></li>
</ul>
<p>Architectures that are known to successfully cross-compile like this are:</p>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Target</th>
<th style="text-align: left;"><code>CC</code></th>
<th style="text-align: left;"><code>CXX</code></th>
<th style="text-align: left;"><code>--arch=...</code></th>
<th style="text-align: left;">Debian tree</th>
<th style="text-align: left;">Debian arch</th>
<th style="text-align: left;"><code>--openjdk-target=...</code></th>
<th><code>--with-jvm-variants=...</code></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">x86</td>
<td style="text-align: left;">default</td>
<td style="text-align: left;">default</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">i386</td>
<td style="text-align: left;">i386-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">armhf</td>
<td style="text-align: left;">gcc-arm-linux-gnueabihf</td>
<td style="text-align: left;">g++-arm-linux-gnueabihf</td>
<td style="text-align: left;">arm</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">armhf</td>
<td style="text-align: left;">arm-linux-gnueabihf</td>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">aarch64</td>
<td style="text-align: left;">gcc-aarch64-linux-gnu</td>
<td style="text-align: left;">g++-aarch64-linux-gnu</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">arm64</td>
<td style="text-align: left;">aarch64-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">ppc64el</td>
<td style="text-align: left;">gcc-powerpc64le-linux-gnu</td>
<td style="text-align: left;">g++-powerpc64le-linux-gnu</td>
<td style="text-align: left;">ppc64le</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">ppc64el</td>
<td style="text-align: left;">powerpc64le-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">s390x</td>
<td style="text-align: left;">gcc-s390x-linux-gnu</td>
<td style="text-align: left;">g++-s390x-linux-gnu</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">s390x</td>
<td style="text-align: left;">s390x-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">mipsle</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">mipsel</td>
<td style="text-align: left;">mipsel-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">mips64le</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">mips64el</td>
<td style="text-align: left;">mips64el-linux-gnueabi64</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">armel</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">arm</td>
<td style="text-align: left;">arm-linux-gnueabi</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">ppc</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">powerpc</td>
<td style="text-align: left;">powerpc-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">ppc64be</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">ppc64</td>
<td style="text-align: left;">powerpc64-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">m68k</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">m68k</td>
<td style="text-align: left;">m68k-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">alpha</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">alpha</td>
<td style="text-align: left;">alpha-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">sh4</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">sh4</td>
<td style="text-align: left;">sh4-linux-gnu</td>
<td>zero</td>
</tr>
</tbody>
</table>
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
<h3 id="building-for-musl">Building for musl</h3>

View File

@@ -454,6 +454,7 @@ rather than bundling the JDK's own copy.
* To install on an rpm-based Linux, try running `sudo yum install
freetype-devel`.
* To install on Alpine Linux, try running `sudo apk add freetype-dev`.
* To install on macOS, try running `brew install freetype`.
Use `--with-freetype-include=<path>` and `--with-freetype-lib=<path>`
if `configure` does not automatically locate the platform FreeType files.
@@ -1089,7 +1090,7 @@ Note that X11 is needed even if you only want to build a headless JDK.
* If the X11 libraries are not properly detected by `configure`, you can
point them out by `--with-x`.
### Creating And Using Sysroots With qemu-deboostrap
### Cross compiling with Debian sysroots
Fortunately, you can create sysroots for foreign architectures with tools
provided by your OS. On Debian/Ubuntu systems, one could use `qemu-deboostrap` to
@@ -1110,7 +1111,7 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
sudo qemu-debootstrap \
--arch=arm64 \
--verbose \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev \
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
--resolve-deps \
buster \
~/sysroot-arm64 \
@@ -1124,13 +1125,9 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
* Configure and build with newly created chroot as sysroot/toolchain-path:
```
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64 \
--with-toolchain-path=~/sysroot-arm64 \
--with-freetype-lib=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/ \
--with-freetype-include=~/sysroot-arm64/usr/include/freetype2/ \
--x-libraries=~/sysroot-arm64/usr/lib/aarch64-linux-gnu/
sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64
make images
ls build/linux-aarch64-server-release/
```
@@ -1138,17 +1135,34 @@ For example, cross-compiling to AArch64 from x86_64 could be done like this:
The build does not create new files in that chroot, so it can be reused for multiple builds
without additional cleanup.
The build system should automatically detect the toolchain paths and dependencies, but sometimes
it might require a little nudge with:
* Native compilers: override `CC` or `CXX` for `./configure`
* Freetype lib location: override `--with-freetype-lib`, for example `${sysroot}/usr/lib/${target}/`
* Freetype includes location: override `--with-freetype-include` for example `${sysroot}/usr/include/freetype2/`
* X11 libraries location: override `--x-libraries`, for example `${sysroot}/usr/lib/${target}/`
Architectures that are known to successfully cross-compile like this are:
Target `CC` `CXX` `--arch=...` `--openjdk-target=...`
------------ ------------------------- --------------------------- ------------- -----------------------
x86 default default i386 i386-linux-gnu
armhf gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf armhf arm-linux-gnueabihf
aarch64 gcc-aarch64-linux-gnu g++-aarch64-linux-gnu arm64 aarch64-linux-gnu
ppc64el gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu ppc64el powerpc64le-linux-gnu
s390x gcc-s390x-linux-gnu g++-s390x-linux-gnu s390x s390x-linux-gnu
Additional architectures might be supported by Debian/Ubuntu Ports.
Target Debian tree Debian arch `--openjdk-target=...` `--with-jvm-variants=...`
------------ ------------ ------------- ------------------------ --------------
x86 buster i386 i386-linux-gnu (all)
arm buster armhf arm-linux-gnueabihf (all)
aarch64 buster arm64 aarch64-linux-gnu (all)
ppc64le buster ppc64el powerpc64le-linux-gnu (all)
s390x buster s390x s390x-linux-gnu (all)
mipsle buster mipsel mipsel-linux-gnu zero
mips64le buster mips64el mips64el-linux-gnueabi64 zero
armel buster arm arm-linux-gnueabi zero
ppc sid powerpc powerpc-linux-gnu zero
ppc64be sid ppc64 powerpc64-linux-gnu (all)
m68k sid m68k m68k-linux-gnu zero
alpha sid alpha alpha-linux-gnu zero
sh4 sid sh4 sh4-linux-gnu zero
### Building for ARM/aarch64

View File

@@ -303,6 +303,7 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<li><p>Defaulted and deleted functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2346.htm">n2346</a>)</p></li>
<li><p>Dynamic initialization and destruction with concurrency (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2660.htm">n2660</a>)</p></li>
<li><p><code>final</code> virtual specifiers for classes and virtual functions (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">n2928</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">n3206</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p><code>override</code> virtual specifiers for virtual functions (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm">n2928</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm">n3206</a>), (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p>Local and unnamed types as template parameters (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm">n2657</a>)</p></li>
<li><p>Range-based <code>for</code> loops (<a href="http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2930.html">n2930</a>) (<a href="https://en.cppreference.com/w/cpp/language/range-for">range-for</a>)</p></li>
</ul>
@@ -330,7 +331,6 @@ while ( test_foo(args...) ) { // No, excess spaces around control</code></pre></
<h3 id="undecided-features">Undecided Features</h3>
<p>This list is incomplete; it serves to explicitly call out some features that have not yet been discussed.</p>
<ul>
<li><p><code>overrides</code> virtual specifiers for virtual functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm">n3272</a>)</p></li>
<li><p>Trailing return type syntax for functions (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm">n2541</a>)</p></li>
<li><p>Variable templates (<a href="https://isocpp.org/files/papers/N3651.pdf">n3651</a>)</p></li>
<li><p>Member initializers and aggregates (<a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3653.html">n3653</a>)</p></li>

View File

@@ -747,6 +747,11 @@ part of the avoidance of the C++ Standard Library in HotSpot code.
([n3206](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm)),
([n3272](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm))
* `override` virtual specifiers for virtual functions
([n2928](http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2009/n2928.htm)),
([n3206](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2010/n3206.htm)),
([n3272](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm))
* Local and unnamed types as template parameters
([n2657](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2657.htm))
@@ -813,9 +818,6 @@ in HotSpot code because of the "no implicit boolean" guideline.)
This list is incomplete; it serves to explicitly call out some
features that have not yet been discussed.
* `overrides` virtual specifiers for virtual functions
([n3272](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2011/n3272.htm))
* Trailing return type syntax for functions
([n2541](http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2008/n2541.htm))

View File

@@ -1,13 +0,0 @@
# jetbrains/runtime:jbr15env
FROM centos:7
RUN yum -y install centos-release-scl
RUN yum -y install devtoolset-8
RUN yum -y install zip bzip2 unzip tar wget make autoconf automake libtool gcc gcc-c++ libstdc++-devel alsa-devel cups-devel xorg-x11-devel libjpeg62-devel giflib-devel freetype-devel file which libXtst-devel libXt-devel libXrender-devel alsa-lib-devel fontconfig-devel libXrandr-devel libXi-devel git
# Install Java 15
RUN wget https://cdn.azul.com/zulu/bin/zulu15.27.17-ca-jdk15.0.0-linux_x64.tar.gz \
-O - | tar xz -C /
RUN mv /zulu15.27.17-ca-jdk15.0.0-linux_x64 /jdk15.0.0
ENV PATH /opt/rh/devtoolset-8/root/usr/bin:$PATH
RUN mkdir .git
RUN git config user.email "builduser@jetbrains.com"
RUN git config user.name "builduser"

View File

@@ -1,135 +0,0 @@
apply plugin: 'java'
import org.gradle.internal.os.OperatingSystem
repositories {
mavenCentral()
}
def test_jvm = {
if (project.hasProperty('jbsdkhome')) {
file(jbsdkhome + (OperatingSystem.current().isWindows()?"/bin/java.exe" : "/bin/java")).absolutePath
} else {
if (OperatingSystem.current().isMacOsX()) {
file('../../../build/macosx-x86_64-normal-server-release/images/jdk-bundle/jdk-11.0.4.jdk/Contents/Home/bin/java').absolutePath
} else if (OperatingSystem.current().isLinux()) {
file('../../../build/linux-x86_64-normal-server-release/images/jdk/bin/java').absolutePath
} else {
file('../../../build/windows-x86_64-normal-server-release/images/jdk/bin/java.exe').absolutePath
}
}
}
dependencies {
testCompile('junit:junit:4.12'){
exclude group: 'org.hamcrest'
}
testCompile 'org.hamcrest:hamcrest-library:1.3'
testCompile 'net.java.dev.jna:jna:4.4.0'
testCompile 'com.twelvemonkeys.imageio:imageio-tiff:3.3.2'
testCompile 'org.apache.commons:commons-lang3:3.0'
}
def jdk_modules = ["java.base", "java.logging", "java.prefs",
"java.se.ee", "java.sql", "java.datatransfer",
"java.management", "java.rmi", "java.security.jgss",
"java.sql.rowset", "java.desktop", "java.management.rmi",
"java.scripting", "java.security.sasl", "java.transaction",
"java.instrument", "java.naming", "java.se",
"java.smartcardio", "java.xml.crypto"]
def jdk_class_dirs = []
jdk_modules.collect(jdk_class_dirs) {
new File("../../../src/" + it + "/share/classes")
}
if (OperatingSystem.current().isMacOsX())
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/macosx/classes"
}
else if (OperatingSystem.current().isLinux()) {
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/solaris/classes"
}
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/unix/classes"
}
} else
jdk_modules.collect(jdk_class_dirs) {
"../../../src/" + it + "/windows/classes"
}
sourceSets.main.java.srcDirs = jdk_class_dirs
sourceSets {
test {
java {
srcDir "../../../test/jdk/jbu"
}
}
}
test.dependsOn.clear()
test.dependsOn tasks.compileTestJava
test {
systemProperty "jb.java2d.metal", "true"
systemProperty "testdata", file('../../../test/jdk/jbu/testdata').absolutePath
// Generate golden images for DroidFontTest and MixedTextTest
// systemProperty "gentestdata", ""
// Enable Java2D logging (https://confluence.jetbrains.com/display/JRE/Java2D+Rendering+Logging)
// systemProperty "sun.java2d.trace", "log"
// systemProperty "sun.java2d.trace", "log,pimpl"
outputs.upToDateWhen { false }
executable = test_jvm()
// Enable async/dtrace profiler
jvmArgs "-XX:+PreserveFramePointer"
// Enable native J2D logging (only in debug build)
// Can be turned on for J2D by adding "#define DEBUG 1" into jdk/src/share/native/sun/java2d/Trace.h
// environment 'J2D_TRACE_LEVEL', '4'
}
def buildDir = project.buildscript.sourceFile.parentFile.parentFile.parentFile.parentFile
def make_cmd = "make"
if (OperatingSystem.current().isWindows()) {
def cyg_make_cmd = new File("c:/cygwin64/bin/make.exe")
if (cyg_make_cmd.exists()) make_cmd = cyg_make_cmd.absolutePath
}
def test_run = false
task make_images {
doLast {
if (!test_run) {
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "images")
def proc = pb.redirectErrorStream(true).start()
proc.inputStream.eachLine { println it }
assert proc.waitFor() == 0
}
}
}
task make_clean {
doLast {
def pb = new ProcessBuilder().command(make_cmd.toString(), "-C", buildDir.absolutePath, "clean")
def proc = pb.redirectErrorStream(true).start()
proc.inputStream.eachLine { println it }
assert proc.waitFor() == 0
}
}
task run_test {
doLast {
test_run = true
}
}
tasks.cleanTest.dependsOn tasks.run_test
classes.dependsOn.clear()
classes.dependsOn tasks.make_images
tasks.cleanClasses.dependsOn tasks.make_clean

View File

@@ -1,54 +0,0 @@
VENDOR_NAME="JetBrains s.r.o."
VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION_WITH_DOTS}.${JDK_BUILD_NUMBER}-${build_number}"
[ -z "$bundle_type" ] || VENDOR_VERSION_STRING="${VENDOR_VERSION_STRING}-${bundle_type}"
do_reset_changes=0
do_reset_dcevm=0
HEAD_REVISION=0
function do_exit() {
exit_code=$1
[ $do_reset_changes -eq 1 ] && git checkout HEAD modules.list src/java.desktop/share/classes/module-info.java
if [ $do_reset_dcevm -eq 1 ]; then
[ ! -z $HEAD_REVISION ] && git reset --hard $HEAD_REVISION
fi
exit "$exit_code"
}
function update_jsdk_mods() {
__jsdk=$1
__jcef_mods=$2
__orig_jsdk_mods=$3
__updated_jsdk_mods=$4
# re-create java.desktop.jmod with updated module-info.class
tmp=.java.desktop.$$.tmp
mkdir "$tmp" || exit $?
"$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.desktop.jmod || exit $?
"$__jsdk"/bin/javac \
--patch-module java.desktop="$__orig_jsdk_mods"/java.desktop.jmod \
--module-path "$__jcef_mods" -d "$tmp"/classes src/java.desktop/share/classes/module-info.java || exit $?
"$__jsdk"/bin/jmod \
create --class-path "$tmp"/classes --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \
java.desktop.jmod || exit $?
mv java.desktop.jmod "$__updated_jsdk_mods" || exit $?
rm -rf "$tmp"
# re-create java.base.jmod with updated hashes
tmp=.java.base.$$.tmp
mkdir "$tmp" || exit $?
hash_modules=$("$JSDK"/bin/jmod describe "$__orig_jsdk_mods"/java.base.jmod | grep hashes | awk '{print $2}' | tr '\n' '|' | sed s/\|$//) || exit $?
"$__jsdk"/bin/jmod extract --dir "$tmp" "$__orig_jsdk_mods"/java.base.jmod || exit $?
rm "$__updated_jsdk_mods"/java.base.jmod || exit $? # temp exclude from path
"$__jsdk"/bin/jmod \
create --module-path "$__updated_jsdk_mods" --hash-modules "$hash_modules" \
--class-path "$tmp"/classes --cmds "$tmp"/bin --config "$tmp"/conf --header-files "$tmp"/include --legal-notice "$tmp"/legal --libs "$tmp"/lib \
java.base.jmod || exit $?
mv java.base.jmod "$__updated_jsdk_mods" || exit $?
rm -rf "$tmp"
}
function get_mods_list() {
__mods=$1
echo $(ls $__mods) | sed s/\.jmod/,/g | sed s/,$//g | sed s/' '//g
}

View File

@@ -1,84 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
source jb/project/tools/common/scripts/common.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
sh configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-boot-jdk=${BOOT_JDK} \
--enable-cds=yes || exit $?
make clean CONF=linux-aarch64-server-release || exit $?
make images CONF=linux-aarch64-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-aarch64-b${build_number}
BASE_DIR=build/linux-aarch64-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/release
tar -pcf $JBSDK.tar \
--exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
-C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-aarch64-b$build_number
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.aarch64
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.aarch64 | sed s/" "//g | sed s/,$//g) \
--output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR ${JBR_BUNDLE} || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-aarch64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

@@ -1,137 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_x64
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64}
source jb/project/tools/common/scripts/common.sh
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
[ "$bundle_type" == "fd" ] && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-x64-${fastdebug_infix}b${build_number}
echo Running jlink....
[ -d "$IMAGES_DIR"/"$__arch_name" ] && rm -rf "${IMAGES_DIR:?}"/"$__arch_name"
$JSDK/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--add-modules "$__modules" --output "$IMAGES_DIR"/"$__arch_name"
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$IMAGES_DIR"/"$__arch_name"/release
if [ "$__bundle_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__arch_name"/release > release
mv release "$IMAGES_DIR"/"$__arch_name"/release
fi
# jmod does not preserve file permissions (JDK-8173610)
[ -f "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper ] && chmod a+x "$IMAGES_DIR"/"$__arch_name"/lib/jcef_helper
echo Creating "$JBR".tar.gz ...
tar -pcf "$JBR".tar -C "$IMAGES_DIR" "$__arch_name" || do_exit $?
[ -f "$JBR".tar.gz ] && rm "$JBR.tar.gz"
gzip "$JBR".tar || do_exit $?
rm -rf "${IMAGES_DIR:?}"/"$__arch_name"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86_64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-x86_64-server-fastdebug
;;
esac
sh configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes || do_exit $?
make clean CONF=$RELEASE_NAME || exit $?
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods $JSDK $JCEF_PATH/jmods $JSDK/jmods $JSDK_MODS_DIR || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
jbr_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat $JSDK/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle $JBRSDK_BUNDLE $JBRSDK_BUNDLE $JSDK_MODS_DIR "$modules" || do_exit $?
if [ -z "$bundle_type" ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-linux-test-x64-b${build_number}
echo Creating "$JBRSDK_TEST" ...
make test-image CONF=$RELEASE_NAME || do_exit $?
tar -pcf "$JBRSDK_TEST".tar -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
gzip "$JBRSDK_TEST".tar || do_exit $?
fi
do_exit 0

View File

@@ -1,81 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
source jb/project/tools/common/scripts/common.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
linux32 bash configure \
--disable-warnings-as-errors \
--with-debug-level=release \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-opt=b${build_number} \
--with-boot-jdk=${BOOT_JDK} \
--enable-cds=yes || exit $?
make clean CONF=linux-x86-server-release || exit $?
make images CONF=linux-x86-server-release test-image || exit $?
JBSDK=${JBRSDK_BASE_NAME}-linux-x86-b${build_number}
BASE_DIR=build/linux-x86-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
echo Fixing permissions
chmod -R a+r $JSDK
rm -rf $BASE_DIR/$JBRSDK_BUNDLE
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || exit $?
echo Creating $JBSDK.tar.gz ...
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/release
tar -pcf $JBSDK.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man -C $BASE_DIR ${JBRSDK_BUNDLE} || exit $?
gzip $JBSDK.tar || exit $?
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-$JBSDK_VERSION
rm -rf $BASE_DIR/$JBR_BUNDLE
JBR=$JBR_BASE_NAME-linux-x86-b$build_number
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
echo Running jlink....
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g | sed s/,$//g) --output ${BASE_DIR}/${JBR_BUNDLE} || exit $?
echo Modifying release info ...
grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${BASE_DIR}/${JBR_BUNDLE}/release
echo Creating $JBR.tar.gz ...
tar -pcf $JBR.tar -C $BASE_DIR $JBR_BUNDLE || exit $?
gzip $JBR.tar || exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
tar -pcf $JBRSDK_TEST.tar -C $BASE_DIR --exclude='test/jdk/demos' --exclude='test/hotspot/gtest' test || exit $?
gzip $JBRSDK_TEST.tar || exit $?

View File

@@ -1,16 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.cs.allow-jit</key>
<true/>
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
<true/>
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
<true/>
<key>com.apple.security.cs.disable-library-validation</key>
<true/>
<key>com.apple.security.cs.disable-executable-page-protection</key>
<true/>
</dict>
</plist>

View File

@@ -1,139 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_mac
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo "$JBSDK_VERSION" | sed 's/_/\./g')
JCEF_PATH=${JCEF_PATH:=./jcef_mac}
MAJOR_JBSDK_VERSION=$(echo "$JBSDK_VERSION_WITH_DOTS" | awk -F "." '{print $1}')
BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 14)}
source jb/project/tools/common/scripts/common.sh
function create_image_bundle {
__bundle_name=$1
__arch_name=$2
__modules_path=$3
__modules=$4
tmp=.bundle.$$.tmp
mkdir "$tmp" || do_exit $?
[ "$bundle_type" == "fd" ] && fastdebug_infix="fastdebug-"
JBR=${__bundle_name}-${JBSDK_VERSION}-osx-x64-${fastdebug_infix}b${build_number}
JRE_CONTENTS=$tmp/$__arch_name/Contents
mkdir -p "$JRE_CONTENTS" || do_exit $?
echo Running jlink...
"$JSDK"/bin/jlink \
--module-path "$__modules_path" --no-man-pages --compress=2 \
--add-modules "$__modules" --output "$JRE_CONTENTS/Home" || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> "$JRE_CONTENTS/Home/release"
if [ "$__bundle_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
mv release $JRE_CONTENTS/Home/release
fi
cp -R "$JSDK"/../MacOS "$JRE_CONTENTS"
cp "$JSDK"/../Info.plist "$JRE_CONTENTS"
[ -n "$bundle_type" ] && (cp -a $JCEF_PATH/Frameworks "$JRE_CONTENTS" || do_exit $?)
echo Creating "$JBR".tar.gz ...
COPYFILE_DISABLE=1 tar -pczf "$JBR".tar.gz --exclude='*.dSYM' --exclude='man' -C "$tmp" "$__arch_name" || do_exit $?
rm -rf "$tmp"
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=macosx-x86_64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=macosx-x86_64-server-fastdebug
;;
esac
sh configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-version-pre= \
--with-version-build="$JDK_BUILD_NUMBER" \
--with-version-opt=b"$build_number" \
--with-boot-jdk="$BOOT_JDK" \
--enable-cds=yes || do_exit $?
make clean CONF=$RELEASE_NAME || do_exit $?
make images CONF=$RELEASE_NAME || do_exit $?
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk-bundle/jdk-$MAJOR_JBSDK_VERSION.jdk/Contents/Home
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* $JSDK_MODS_DIR # $JSDK/jmods is not changed
jbr_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" "jbr" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat "$JSDK"/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\n//g) || do_exit $?
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE" "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
if [ -z "$bundle_type" ]; then
JBRSDK_TEST=${JBRSDK_BUNDLE}-${JBSDK_VERSION}-osx-test-x64-b${build_number}
echo Creating "$JBRSDK_TEST" ...
make test-image CONF=$RELEASE_NAME || do_exit $?
[ -f "$JBRSDK_TEST.tar.gz" ] && rm "$JBRSDK_TEST.tar.gz"
COPYFILE_DISABLE=1 tar -pczf "$JBRSDK_TEST".tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi
do_exit 0

View File

@@ -1,120 +0,0 @@
#!/bin/bash
APP_DIRECTORY=$1
APPL_USER=$2
APPL_PASSWORD=$3
APP_NAME=$4
BUNDLE_ID=$5
FAKE_ROOT="${6:-fake-root}"
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$APPL_USER" ]] || [[ -z "$APPL_PASSWORD" ]]; then
echo "Usage: $0 AppDirectory Username Password"
exit 1
fi
if [[ ! -d "$APP_DIRECTORY" ]]; then
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
exit 1
fi
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
function publish-log() {
id=$1
file=$2
curl -T "$file" "$ARTIFACTORY_URL/$id" || true
}
function altool-upload() {
# Since altool uses same file for upload token we have to trick it into using different folders for token file location
# Also it copies zip into TMPDIR so we override it too, to simplify cleanup
OLD_HOME="$HOME"
export HOME="$FAKE_ROOT/home"
export TMPDIR="$FAKE_ROOT/tmp"
mkdir -p "$HOME"
mkdir -p "$TMPDIR"
export _JAVA_OPTIONS="-Duser.home=$HOME -Djava.io.tmpdir=$TMPDIR"
# Reduce amount of downloads, cache transporter libraries
shared_itmstransporter="$OLD_HOME/shared-itmstransporter"
if [[ -f "$shared_itmstransporter" ]]; then
cp -r "$shared_itmstransporter" "$HOME/.itmstransporter"
fi
# For some reason altool prints everything to stderr, not stdout
set +e
xcrun altool --notarize-app \
--username "$APPL_USER" --password "$APPL_PASSWORD" \
--primary-bundle-id "$BUNDLE_ID" \
--asc-provider JetBrainssro --file "$1" 2>&1 | tee "altool.init.out"
unset TMPDIR
export HOME="$OLD_HOME"
set -e
}
#immediately exit script with an error if a command fails
set -euo pipefail
file="$APP_NAME.zip"
log "Zipping $file..."
rm -rf "$file"
ditto -c -k --sequesterRsrc --keepParent "$APP_DIRECTORY/Contents" "$file"
log "Notarizing $file..."
rm -rf "altool.init.out" "altool.check.out"
altool-upload "$file"
rm -rf "$file"
notarization_info="$(grep -e "RequestUUID" "altool.init.out" | grep -oE '([0-9a-f-]{36})')"
if [ -z "$notarization_info" ]; then
log "Faile to read RequestUUID from altool.init.out"
exit 10
fi
PATH="$PATH:/usr/local/bin/"
log "Notarization request sent, awaiting response"
spent=0
while true; do
# For some reason altool prints everything to stderr, not stdout
xcrun altool --username "$APPL_USER" --notarization-info "$notarization_info" --password "$APPL_PASSWORD" >"altool.check.out" 2>&1 || true
status="$(grep -oe 'Status: .*' "altool.check.out" | cut -c 9- || true)"
log "Current status: $status"
if [ "$status" = "invalid" ]; then
log "Notarization failed"
ec=1
elif [ "$status" = "success" ]; then
log "Notarization succeeded"
ec=0
else
if [ "$status" != "in progress" ]; then
log "Unknown notarization status, waiting more, altool output:"
cat "altool.check.out"
fi
if [[ $spent -gt 60 ]]; then
log "Waiting time out (apx 60 minutes)"
ec=2
break
fi
sleep 60
((spent += 1))
continue
fi
developer_log="developer_log.json"
log "Fetching $developer_log"
# TODO: Replace cut with trim or something better
url="$(grep -oe 'LogFileURL: .*' "altool.check.out" | cut -c 13-)"
wget "$url" -O "$developer_log" && cat "$developer_log" || true
if [ $ec != 0 ]; then
log "Publishing $developer_log"
publish-log "$notarization_info" "$developer_log"
fi
break
done
cat "altool.check.out"
rm -rf "altool.init.out" "altool.check.out"
exit $ec

View File

@@ -1,94 +0,0 @@
#!/bin/bash
APP_DIRECTORY=$1
JB_CERT=$2
if [[ -z "$APP_DIRECTORY" ]] || [[ -z "$JB_CERT" ]]; then
echo "Usage: $0 AppDirectory CertificateID"
exit 1
fi
if [[ ! -d "$APP_DIRECTORY" ]]; then
echo "AppDirectory '$APP_DIRECTORY' does not exist or not a directory"
exit 1
fi
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
#immediately exit script with an error if a command fails
set -euo pipefail
# Cleanup files left from previous sign attempt (if any)
find "$APP_DIRECTORY" -name '*.cstemp' -exec rm '{}' \;
log "Signing libraries and executables..."
# -perm +111 searches for executables
for f in \
"Contents/Home/bin" \
"Contents/Home/lib" \
"Contents/Frameworks"; do
if [ -d "$APP_DIRECTORY/$f" ]; then
find "$APP_DIRECTORY/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
fi
done
log "Signing libraries in jars in $PWD"
# todo: add set -euo pipefail; into the inner sh -c
# `-e` prevents `grep -q && printf` loginc
# with `-o pipefail` there's no input for 'while' loop
find "$APP_DIRECTORY" -name '*.jar' \
-exec sh -c "set -u; unzip -l \"\$0\" | grep -q -e '\.dylib\$' -e '\.jnilib\$' -e '\.so\$' -e '^jattach\$' && printf \"\$0\0\" " {} \; |
while IFS= read -r -d $'\0' file; do
log "Processing libraries in $file"
rm -rf jarfolder jar.jar
mkdir jarfolder
filename="${file##*/}"
log "Filename: $filename"
cp "$file" jarfolder && (cd jarfolder && jar xf "$filename" && rm "$filename")
find jarfolder \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "jattach" \) \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
(cd jarfolder; zip -q -r -o ../jar.jar .)
mv jar.jar "$file"
done
rm -rf jarfolder jar.jar
log "Signing other files..."
for f in \
"Contents/MacOS"; do
if [ -d "$APP_DIRECTORY/$f" ]; then
find "$APP_DIRECTORY/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
fi
done
#log "Signing executable..."
#codesign --timestamp \
# -v -s "$JB_CERT" --options=runtime \
# --force \
# --entitlements entitlements.xml "$APP_DIRECTORY/Contents/MacOS/idea"
log "Signing whole app..."
codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--force \
--entitlements entitlements.xml "$APP_DIRECTORY"
log "Verifying java is not broken"
find "$APP_DIRECTORY" \
-type f -name 'java' -perm +111 -exec {} -version \;

View File

@@ -1,138 +0,0 @@
#!/bin/bash
#immediately exit script with an error if a command fails
set -euo pipefail
export COPY_EXTENDED_ATTRIBUTES_DISABLE=true
export COPYFILE_DISABLE=true
INPUT_FILE=$1
EXPLODED=$2.exploded
BACKUP_JMODS=$2.backup
USERNAME=$3
PASSWORD=$4
CODESIGN_STRING=$5
NOTARIZE=$6
BUNDLE_ID=$7
cd "$(dirname "$0")"
function log() {
echo "$(date '+[%H:%M:%S]') $*"
}
log "Deleting $EXPLODED ..."
if test -d "$EXPLODED"; then
find "$EXPLODED" -mindepth 1 -maxdepth 1 -exec chmod -R u+wx '{}' \;
fi
rm -rf "$EXPLODED"
mkdir "$EXPLODED"
rm -rf "$BACKUP_JMODS"
mkdir "$BACKUP_JMODS"
log "Unzipping $INPUT_FILE to $EXPLODED ..."
tar -xzvf "$INPUT_FILE" --directory $EXPLODED
rm "$INPUT_FILE"
BUILD_NAME="$(ls "$EXPLODED")"
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/jmods; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/jmods $BACKUP_JMODS
fi
if test -f $EXPLODED/$BUILD_NAME/Contents/MacOS/libjli.dylib; then
mv $EXPLODED/$BUILD_NAME/Contents/MacOS/libjli.dylib $BACKUP_JMODS
fi
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/Frameworks $BACKUP_JMODS
fi
log "$INPUT_FILE extracted and removed"
APPLICATION_PATH="$EXPLODED/$BUILD_NAME"
find "$APPLICATION_PATH/Contents/Home/bin" \
-maxdepth 1 -type f -name '*.jnilib' -print0 |
while IFS= read -r -d $'\0' file; do
if [ -f "$file" ]; then
log "Linking $file"
b="$(basename "$file" .jnilib)"
ln -sf "$b.jnilib" "$(dirname "$file")/$b.dylib"
fi
done
find "$APPLICATION_PATH/Contents/" \
-maxdepth 1 -type f -name '*.txt' -print0 |
while IFS= read -r -d $'\0' file; do
if [ -f "$file" ]; then
log "Moving $file"
mv "$file" "$APPLICATION_PATH/Contents/Resources"
fi
done
non_plist=$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist' | wc -l)
if [[ $non_plist -gt 0 ]]; then
log "Only Info.plist file is allowed in Contents directory but found $non_plist file(s):"
log "$(find "$APPLICATION_PATH/Contents/" -maxdepth 1 -type f -and -not -name 'Info.plist')"
exit 1
fi
log "Unlocking keychain..."
# Make sure *.p12 is imported into local KeyChain
security unlock-keychain -p "$PASSWORD" "/Users/$USERNAME/Library/Keychains/login.keychain"
attempt=1
limit=3
set +e
while [[ $attempt -le $limit ]]; do
log "Signing (attempt $attempt) $APPLICATION_PATH ..."
./sign.sh "$APPLICATION_PATH" "$CODESIGN_STRING"
ec=$?
if [[ $ec -ne 0 ]]; then
((attempt += 1))
if [ $attempt -eq $limit ]; then
set -e
fi
log "Signing failed, wait for 30 sec and try to sign again"
sleep 30
else
log "Signing done"
codesign -v "$APPLICATION_PATH" -vvvvv
log "Check sign done"
((attempt += limit))
fi
done
set -e
if [ "$NOTARIZE" = "yes" ]; then
log "Notarizing..."
# shellcheck disable=SC1090
source "$HOME/.notarize_token"
APP_NAME=$(echo ${INPUT_FILE} | awk -F"." '{ print $1 }')
# Since notarization tool uses same file for upload token we have to trick it into using different folders, hence fake root
# Also it leaves copy of zip file in TMPDIR, so notarize.sh overrides it and uses FAKE_ROOT as location for temp TMPDIR
FAKE_ROOT="$(pwd)/fake-root"
mkdir -p "$FAKE_ROOT"
echo "Notarization will use fake root: $FAKE_ROOT"
./notarize.sh "$APPLICATION_PATH" "$APPLE_USERNAME" "$APPLE_PASSWORD" "$APP_NAME" "$BUNDLE_ID" "$FAKE_ROOT"
rm -rf "$FAKE_ROOT"
set +e
log "Stapling..."
xcrun stapler staple "$APPLICATION_PATH"
else
log "Notarization disabled"
log "Stapling disabled"
fi
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
(
#cd "$EXPLODED"
#ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
if test -d $BACKUP_JMODS/jmods; then
mv $BACKUP_JMODS/jmods $EXPLODED/$BUILD_NAME/Contents/Home
fi
COPYFILE_DISABLE=1 tar -pczf $INPUT_FILE --exclude='*.dSYM' --exclude='man' -C $EXPLODED $BUILD_NAME
log "Finished zipping"
)
rm -rf "$EXPLODED"
log "Done"

View File

@@ -1,30 +0,0 @@
diff --git modules.list modules.list
index 7c4b3e9cb6d..5ed60349ca7 100644
--- modules.list
+++ modules.list
@@ -53,4 +53,7 @@ jdk.security.jgss,
jdk.unsupported,
jdk.xml.dom,
jdk.zipfs,
-jdk.hotspot.agent
+jdk.hotspot.agent,
+jcef,
+gluegen.rt,
+jogl.all
diff --git src/java.desktop/share/classes/module-info.java src/java.desktop/share/classes/module-info.java
index b663b382f52..3e9acdc0c27 100644
--- src/java.desktop/share/classes/module-info.java
+++ src/java.desktop/share/classes/module-info.java
@@ -109,7 +109,11 @@ module java.desktop {
// see make/GensrcModuleInfo.gmk
exports sun.awt to
jdk.accessibility,
- jdk.unsupported.desktop;
+ jdk.unsupported.desktop,
+ jcef,
+ jogl.all;
+
+ exports java.awt.peer to jcef;
exports java.awt.dnd.peer to jdk.unsupported.desktop;
exports sun.awt.dnd to jdk.unsupported.desktop;

File diff suppressed because it is too large Load Diff

View File

@@ -1,29 +0,0 @@
From 960dafbeeba190911955c208b611fecc15d66738 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 11 Mar 2020 14:19:34 +0100
Subject: [PATCH 03/34] Fix class cast exception on redefinition of class A,
that is superclass of B that has anonymous class C
---
src/hotspot/share/oops/instanceKlass.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 994fc8a3bc8..3be3a09ef8f 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -953,7 +953,10 @@ bool InstanceKlass::link_class_impl(TRAPS) {
if (!is_linked()) {
if (!is_rewritten()) {
- {
+ // (DCEVM): If class A is being redefined and class B->A (B is extended from A) and B is host class of anonymous class C
+ // then second redefinition fails with cannot cast klass exception. So we currently turn off bytecode verification
+ // on redefinition.
+ if (!AllowEnhancedClassRedefinition || !newest_version()->is_redefining()) {
bool verify_ok = verify_code(THREAD);
if (!verify_ok) {
return false;
--
2.23.0

View File

@@ -1,240 +0,0 @@
From 39df5f163d4a0f1fd6b92313a5570808f19d5e20 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 4 Oct 2020 21:12:12 +0200
Subject: [PATCH 05/34] Support for Lambda class redefinition
---
.../share/classfile/classLoaderData.cpp | 9 +++
.../share/classfile/classLoaderData.hpp | 2 +-
.../share/classfile/systemDictionary.cpp | 12 +++-
.../share/classfile/systemDictionary.hpp | 1 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 65 +++++++++++++++++--
.../prims/jvmtiEnhancedRedefineClasses.hpp | 1 +
.../share/prims/resolvedMethodTable.cpp | 2 +
src/hotspot/share/prims/unsafe.cpp | 1 +
8 files changed, 83 insertions(+), 10 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 0cd90bb8c27..4d64c6b454a 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -593,6 +593,15 @@ Dictionary* ClassLoaderData::create_dictionary() {
return new Dictionary(this, size, resizable);
}
+void ClassLoaderData::exchange_holders(ClassLoaderData* cld) {
+ oop holder_oop = _holder.peek();
+ _holder.replace(cld->_holder.peek());
+ cld->_holder.replace(holder_oop);
+ WeakHandle<vm_class_loader_data> exchange = _holder;
+ _holder = cld->_holder;
+ cld->_holder = exchange;
+}
+
// Tell the GC to keep this klass alive while iterating ClassLoaderDataGraph
oop ClassLoaderData::holder_phantom() const {
// A klass that was previously considered dead can be looked up in the
diff --git a/src/hotspot/share/classfile/classLoaderData.hpp b/src/hotspot/share/classfile/classLoaderData.hpp
index ba2393f8dd0..e2ae0a77351 100644
--- a/src/hotspot/share/classfile/classLoaderData.hpp
+++ b/src/hotspot/share/classfile/classLoaderData.hpp
@@ -181,7 +181,7 @@ class ClassLoaderData : public CHeapObj<mtClass> {
bool has_accumulated_modified_oops() { return _accumulated_modified_oops; }
oop holder_no_keepalive() const;
oop holder_phantom() const;
-
+ void exchange_holders(ClassLoaderData* cld);
private:
void unload();
bool keep_alive() const { return _keep_alive > 0; }
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index bd0cae7cb9b..8f2b46add4d 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1062,10 +1062,14 @@ InstanceKlass* SystemDictionary::parse_stream(Symbol* class_name,
Handle class_loader,
ClassFileStream* st,
const ClassLoadInfo& cl_info,
+ InstanceKlass* old_klass,
TRAPS) {
EventClassLoad class_load_start_event;
ClassLoaderData* loader_data;
+
+ bool is_redefining = (old_klass != NULL);
+
bool is_unsafe_anon_class = cl_info.unsafe_anonymous_host() != NULL;
// - for unsafe anonymous class: create a new CLD whith a class holder that uses
@@ -1094,8 +1098,12 @@ InstanceKlass* SystemDictionary::parse_stream(Symbol* class_name,
class_name,
loader_data,
cl_info,
- false, // pick_newest
+ is_redefining, // pick_newest
CHECK_NULL);
+ if (is_redefining && k != NULL) {
+ k->set_redefining(true);
+ k->set_old_version(old_klass);
+ }
if ((cl_info.is_hidden() || is_unsafe_anon_class) && k != NULL) {
// Hidden classes that are not strong and unsafe anonymous classes must update
@@ -1998,7 +2006,7 @@ void SystemDictionary::remove_from_hierarchy(InstanceKlass* k) {
k->remove_from_sibling_list();
}
-// (DCEVM)
+// (DCEVM)
void SystemDictionary::update_constraints_after_redefinition() {
constraints()->update_after_redefinition();
}
diff --git a/src/hotspot/share/classfile/systemDictionary.hpp b/src/hotspot/share/classfile/systemDictionary.hpp
index 4547449dbec..931e655d631 100644
--- a/src/hotspot/share/classfile/systemDictionary.hpp
+++ b/src/hotspot/share/classfile/systemDictionary.hpp
@@ -329,6 +329,7 @@ public:
Handle class_loader,
ClassFileStream* st,
const ClassLoadInfo& cl_info,
+ InstanceKlass* old_klass,
TRAPS);
// Resolve from stream (called by jni_DefineClass and JVM_DefineClass)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 92ce6c27b8a..8b765623dcd 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -494,6 +494,8 @@ void VM_EnhancedRedefineClasses::doit() {
ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
+ // SystemDictionary::methods_do(fix_invoke_method);
+
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
@@ -756,12 +758,34 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
// load hook event.
state->set_class_being_redefined(the_class, _class_load_kind);
- InstanceKlass* k = SystemDictionary::resolve_from_stream(the_class_sym,
- the_class_loader,
- protection_domain,
- &st,
- the_class,
- THREAD);
+ InstanceKlass* k;
+
+ if (InstanceKlass::cast(the_class)->is_anonymous()) {
+ const InstanceKlass* host_class = the_class->host_klass();
+
+ // Make sure it's the real host class, not another anonymous class.
+ while (host_class != NULL && host_class->is_anonymous()) {
+ host_class = host_class->host_klass();
+ }
+
+ k = SystemDictionary::parse_stream(the_class_sym,
+ the_class_loader,
+ protection_domain,
+ &st,
+ host_class,
+ the_class,
+ NULL,
+ THREAD);
+ k->class_loader_data()->exchange_holders(the_class->class_loader_data());
+ the_class->class_loader_data()->inc_keep_alive();
+ } else {
+ k = SystemDictionary::resolve_from_stream(the_class_sym,
+ the_class_loader,
+ protection_domain,
+ &st,
+ the_class,
+ THREAD);
+ }
// Clear class_being_redefined just to be sure.
state->clear_class_being_redefined();
@@ -1442,6 +1466,30 @@ void VM_EnhancedRedefineClasses::MethodDataCleaner::do_klass(Klass* k) {
}
}
+void VM_EnhancedRedefineClasses::fix_invoke_method(Method* method) {
+
+ constantPoolHandle other_cp = constantPoolHandle(method->constants());
+
+ for (int i = 0; i < other_cp->length(); i++) {
+ if (other_cp->tag_at(i).is_klass()) {
+ Klass* klass = other_cp->resolved_klass_at(i);
+ if (klass->new_version() != NULL) {
+ // Constant pool entry points to redefined class -- update to the new version
+ other_cp->klass_at_put(i, klass->newest_version());
+ }
+ assert(other_cp->resolved_klass_at(i)->new_version() == NULL, "Must be new klass!");
+ }
+ }
+
+ ConstantPoolCache* cp_cache = other_cp->cache();
+ if (cp_cache != NULL) {
+ cp_cache->clear_entries();
+ }
+
+}
+
+
+
void VM_EnhancedRedefineClasses::update_jmethod_ids() {
for (int j = 0; j < _matching_methods_length; ++j) {
Method* old_method = _matching_old_methods[j];
@@ -1979,7 +2027,10 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
// Find classes not directly redefined, but affected by a redefinition (because one of its supertypes is redefined)
AffectedKlassClosure closure(_affected_klasses);
// Updated in j10, from original SystemDictionary::classes_do
- ClassLoaderDataGraph::dictionary_classes_do(&closure);
+
+ ClassLoaderDataGraph::classes_do(&closure);
+ //ClassLoaderDataGraph::dictionary_classes_do(&closure);
+
log_trace(redefine, class, load)("%d classes affected", _affected_klasses->length());
// Sort the affected klasses such that a supertype is always on a smaller array index than its subtype.
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 60b62c3170a..d8a11b51fe9 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -116,6 +116,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void rollback();
static void mark_as_scavengable(nmethod* nm);
static void unpatch_bytecode(Method* method);
+ static void fix_invoke_method(Method* method);
// Figure out which new methods match old methods in name and signature,
// which methods have been added, and which are no longer present
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index 122bb8c186b..81b3aa96564 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -414,6 +414,8 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
Method* newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
+ log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+
assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
assert(newer_method != NULL, "method_with_idnum() should not be NULL");
assert(old_method != newer_method, "sanity check");
diff --git a/src/hotspot/share/prims/unsafe.cpp b/src/hotspot/share/prims/unsafe.cpp
index 72d81ec9d6c..027afa3fabd 100644
--- a/src/hotspot/share/prims/unsafe.cpp
+++ b/src/hotspot/share/prims/unsafe.cpp
@@ -865,6 +865,7 @@ Unsafe_DefineAnonymousClass_impl(JNIEnv *env,
host_loader,
&st,
cl_info,
+ NULL,
CHECK_NULL);
if (anonk == NULL) {
return NULL;
--
2.23.0

View File

@@ -1,135 +0,0 @@
From 5af1daedc86b5fec0f222cbdda3afbdf518985ea Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 23 May 2020 10:02:15 +0200
Subject: [PATCH 06/34] Fix "no original bytecode found" error if method with
bkp is missing
Sometimes IDE can deploy class with erroneous method, such method has
n bytecode, but breakpoint position can still exist.
---
src/hotspot/share/interpreter/bytecodes.cpp | 2 +-
.../share/interpreter/interpreterRuntime.cpp | 2 +-
src/hotspot/share/oops/method.cpp | 8 ++++----
src/hotspot/share/oops/method.hpp | 4 ++--
.../prims/jvmtiEnhancedRedefineClasses.cpp | 18 ++++++++++--------
5 files changed, 18 insertions(+), 16 deletions(-)
diff --git a/src/hotspot/share/interpreter/bytecodes.cpp b/src/hotspot/share/interpreter/bytecodes.cpp
index e377e36b88c..262ecc021b2 100644
--- a/src/hotspot/share/interpreter/bytecodes.cpp
+++ b/src/hotspot/share/interpreter/bytecodes.cpp
@@ -84,7 +84,7 @@ Bytecodes::Code Bytecodes::code_at(Method* method, int bci) {
Bytecodes::Code Bytecodes::non_breakpoint_code_at(const Method* method, address bcp) {
assert(method != NULL, "must have the method for breakpoint conversion");
assert(method->contains(bcp), "must be valid bcp in method");
- return method->orig_bytecode_at(method->bci_from(bcp));
+ return method->orig_bytecode_at(method->bci_from(bcp), false);
}
int Bytecodes::special_length_at(Bytecodes::Code code, address bcp, address end) {
diff --git a/src/hotspot/share/interpreter/interpreterRuntime.cpp b/src/hotspot/share/interpreter/interpreterRuntime.cpp
index ed3cc3eb6a2..504e59caf51 100644
--- a/src/hotspot/share/interpreter/interpreterRuntime.cpp
+++ b/src/hotspot/share/interpreter/interpreterRuntime.cpp
@@ -814,7 +814,7 @@ JRT_END
// Invokes
JRT_ENTRY(Bytecodes::Code, InterpreterRuntime::get_original_bytecode_at(JavaThread* thread, Method* method, address bcp))
- return method->orig_bytecode_at(method->bci_from(bcp));
+ return method->orig_bytecode_at(method->bci_from(bcp), false);
JRT_END
JRT_ENTRY(void, InterpreterRuntime::set_original_bytecode_at(JavaThread* thread, Method* method, address bcp, Bytecodes::Code new_code))
diff --git a/src/hotspot/share/oops/method.cpp b/src/hotspot/share/oops/method.cpp
index 516f2bb8f2f..1c88511a5fc 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -1853,14 +1853,14 @@ bool CompressedLineNumberReadStream::read_pair() {
#if INCLUDE_JVMTI
-Bytecodes::Code Method::orig_bytecode_at(int bci) const {
+Bytecodes::Code Method::orig_bytecode_at(int bci, bool no_fatal) const {
BreakpointInfo* bp = method_holder()->breakpoints();
for (; bp != NULL; bp = bp->next()) {
if (bp->match(this, bci)) {
return bp->orig_bytecode();
}
}
- {
+ if (!no_fatal) {
ResourceMark rm;
fatal("no original bytecode found in %s at bci %d", name_and_sig_as_C_string(), bci);
}
@@ -2006,7 +2006,7 @@ BreakpointInfo::BreakpointInfo(Method* m, int bci) {
_signature_index = m->signature_index();
_orig_bytecode = (Bytecodes::Code) *m->bcp_from(_bci);
if (_orig_bytecode == Bytecodes::_breakpoint)
- _orig_bytecode = m->orig_bytecode_at(_bci);
+ _orig_bytecode = m->orig_bytecode_at(_bci, false);
_next = NULL;
}
@@ -2015,7 +2015,7 @@ void BreakpointInfo::set(Method* method) {
{
Bytecodes::Code code = (Bytecodes::Code) *method->bcp_from(_bci);
if (code == Bytecodes::_breakpoint)
- code = method->orig_bytecode_at(_bci);
+ code = method->orig_bytecode_at(_bci, false);
assert(orig_bytecode() == code, "original bytecode must be the same");
}
#endif
diff --git a/src/hotspot/share/oops/method.hpp b/src/hotspot/share/oops/method.hpp
index 83ed2d9c3c1..4d4cc6dc012 100644
--- a/src/hotspot/share/oops/method.hpp
+++ b/src/hotspot/share/oops/method.hpp
@@ -230,7 +230,7 @@ class Method : public Metadata {
// JVMTI breakpoints
#if !INCLUDE_JVMTI
- Bytecodes::Code orig_bytecode_at(int bci) const {
+ Bytecodes::Code orig_bytecode_at(int bci, bool no_fatal) const {
ShouldNotReachHere();
return Bytecodes::_shouldnotreachhere;
}
@@ -239,7 +239,7 @@ class Method : public Metadata {
};
u2 number_of_breakpoints() const {return 0;}
#else // !INCLUDE_JVMTI
- Bytecodes::Code orig_bytecode_at(int bci) const;
+ Bytecodes::Code orig_bytecode_at(int bci, bool no_fatal) const;
void set_orig_bytecode_at(int bci, Bytecodes::Code code);
void set_breakpoint(int bci);
void clear_breakpoint(int bci);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 8b765623dcd..a859b8e1162 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1362,14 +1362,16 @@ void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method) {
if (code == Bytecodes::_breakpoint) {
int bci = method->bci_from(bcp);
- code = method->orig_bytecode_at(bci);
- java_code = Bytecodes::java_code(code);
- if (code != java_code &&
- (java_code == Bytecodes::_getfield ||
- java_code == Bytecodes::_putfield ||
- java_code == Bytecodes::_aload_0)) {
- // Let breakpoint table handling unpatch bytecode
- method->set_orig_bytecode_at(bci, java_code);
+ code = method->orig_bytecode_at(bci, true);
+ if (code != Bytecodes::_shouldnotreachhere) {
+ java_code = Bytecodes::java_code(code);
+ if (code != java_code &&
+ (java_code == Bytecodes::_getfield ||
+ java_code == Bytecodes::_putfield ||
+ java_code == Bytecodes::_aload_0)) {
+ // Let breakpoint table handling unpatch bytecode
+ method->set_orig_bytecode_at(bci, java_code);
+ }
}
} else {
java_code = Bytecodes::java_code(code);
--
2.23.0

View File

@@ -1,57 +0,0 @@
From 19d2274a5dff6e6b31474252b45e5e7484f0180b Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 24 May 2020 12:07:42 +0200
Subject: [PATCH 07/34] Replace deleted method with
Universe::throw_no_such_method_error
---
.../share/prims/resolvedMethodTable.cpp | 28 +++++++++----------
1 file changed, 14 insertions(+), 14 deletions(-)
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index 81b3aa96564..caf03ffe56d 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -404,25 +404,25 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
if (old_method->is_old()) {
+ InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
+ Method* newer_method;
+
// Method* new_method;
if (old_method->is_deleted()) {
- // FIXME:(DCEVM) - check if exception can be thrown
- // new_method = Universe::throw_no_such_method_error();
- continue;
- }
-
- InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
- Method* newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
+ newer_method = Universe::throw_no_such_method_error();
+ } else {
+ newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
- log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+ log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
- assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
- assert(newer_method != NULL, "method_with_idnum() should not be NULL");
- assert(old_method != newer_method, "sanity check");
+ assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
+ assert(newer_method != NULL, "method_with_idnum() should not be NULL");
+ assert(old_method != newer_method, "sanity check");
- if (_the_table->lookup(newer_method) != NULL) {
- // old method was already adjusted if new method exists in _the_table
- continue;
+ if (_the_table->lookup(newer_method) != NULL) {
+ // old method was already adjusted if new method exists in _the_table
+ continue;
+ }
}
java_lang_invoke_ResolvedMethodName::set_vmtarget(mem_name, newer_method);
--
2.23.0

File diff suppressed because it is too large Load Diff

View File

@@ -1,50 +0,0 @@
From ca47ab5a0a6ce8e2644736f323a335a957311af9 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 13 Jun 2020 18:50:59 +0200
Subject: [PATCH 09/34] Change log level in advanced redefinition
- Change log level for "Comparing different class ver.." to debug
- Fix adjust_method_entries_dcevm logging levels and severity
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 2 +-
src/hotspot/share/prims/resolvedMethodTable.cpp | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 6c9eb40ecf5..b09ba554e07 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -916,7 +916,7 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
// Calculated the difference between new and old class (field change, method change, supertype change, ...).
int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_class) {
int result = Klass::NoRedefinition;
- log_info(redefine, class, load)("Comparing different class versions of class %s",new_class->name()->as_C_string());
+ log_debug(redefine, class, load)("Comparing different class versions of class %s",new_class->name()->as_C_string());
assert(new_class->old_version() != NULL, "must have old version");
InstanceKlass* the_class = InstanceKlass::cast(new_class->old_version());
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index caf03ffe56d..eb9fcda44f3 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -413,7 +413,7 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
} else {
newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
- log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+ log_debug(redefine, class, update)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
assert(newer_method != NULL, "method_with_idnum() should not be NULL");
@@ -433,7 +433,7 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
ResourceMark rm;
if (!(*trace_name_printed)) {
- log_info(redefine, class, update)("adjust: name=%s", old_method->method_holder()->external_name());
+ log_debug(redefine, class, update)("adjust: name=%s", old_method->method_holder()->external_name());
*trace_name_printed = true;
}
log_debug(redefine, class, update, constantpool)
--
2.23.0

View File

@@ -1,26 +0,0 @@
From 7e236beee0375656d1955fc1168143c1639fb7f1 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 6 Oct 2020 22:15:31 +0200
Subject: [PATCH 10/34] AllowEnhancedClassRedefinition is false (disabled) by
default
---
src/hotspot/share/runtime/globals.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index 5b367704800..2710c6ea0e5 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -2466,7 +2466,7 @@ const size_t minimumSymbolTableSize = 1024;
diagnostic(bool, DeoptimizeNMethodBarriersALot, false, \
"Make nmethod barriers deoptimise a lot.") \
\
- product(bool, AllowEnhancedClassRedefinition, true, \
+ product(bool, AllowEnhancedClassRedefinition, false, \
"Allow enhanced class redefinition beyond swapping method " \
"bodies") \
\
--
2.23.0

View File

@@ -1,25 +0,0 @@
From d56e73885111b386771f564ec6beb305338993df Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 19 Oct 2020 20:00:04 +0200
Subject: [PATCH 12/34] Set HOTSPOT_VM_DISTRO=Dynamic Code Evolution
---
make/autoconf/version-numbers | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/make/autoconf/version-numbers b/make/autoconf/version-numbers
index aabdc5bed20..df8025a2e84 100644
--- a/make/autoconf/version-numbers
+++ b/make/autoconf/version-numbers
@@ -45,7 +45,7 @@ PRODUCT_NAME=OpenJDK
PRODUCT_SUFFIX="Runtime Environment"
JDK_RC_PLATFORM_NAME=Platform
COMPANY_NAME=N/A
-HOTSPOT_VM_DISTRO="OpenJDK"
+HOTSPOT_VM_DISTRO="Dynamic Code Evolution"
VENDOR_URL=https://openjdk.java.net/
VENDOR_URL_BUG=https://bugreport.java.com/bugreport/
VENDOR_URL_VM_BUG=https://bugreport.java.com/bugreport/crash.jsp
--
2.23.0

View File

@@ -1,71 +0,0 @@
From 7ebad43ed45805b0a3736c510f708ff17697ba7e Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 11 Oct 2020 10:43:28 +0200
Subject: [PATCH 13/34] Fix G1 nmethod registration
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 19 ++++++++++++++++---
.../prims/jvmtiEnhancedRedefineClasses.hpp | 3 ++-
2 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index b09ba554e07..718426f2819 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -216,7 +216,14 @@ void VM_EnhancedRedefineClasses::mark_as_scavengable(nmethod* nm) {
}
}
-void VM_EnhancedRedefineClasses::mark_as_scavengable_g1(nmethod* nm) {
+void VM_EnhancedRedefineClasses::unregister_nmethod_g1(nmethod* nm) {
+ // It should work not only for G1 but also for another GCs, but this way is safer now
+ if (!nm->is_zombie() && !nm->is_unloaded()) {
+ Universe::heap()->unregister_nmethod(nm);
+ }
+}
+
+void VM_EnhancedRedefineClasses::register_nmethod_g1(nmethod* nm) {
// It should work not only for G1 but also for another GCs, but this way is safer now
if (!nm->is_zombie() && !nm->is_unloaded()) {
Universe::heap()->register_nmethod(nm);
@@ -521,8 +528,9 @@ void VM_EnhancedRedefineClasses::doit() {
// For now, mark all nmethod's as scavengable that are not scavengable already
if (ScavengeRootsInCode) {
if (UseG1GC) {
- // this should work also for other GCs
- CodeCache::nmethods_do(mark_as_scavengable_g1);
+ // G1 holds references to nmethods in regions based on oops values. Since oops in nmethod can be changed in ChangePointers* closures
+ // we unregister nmethods from G1 heap, then closures are processed (oops are changed) and finally we register nmethod to G1 again
+ CodeCache::nmethods_do(unregister_nmethod_g1);
} else {
CodeCache::nmethods_do(mark_as_scavengable);
}
@@ -545,6 +553,11 @@ void VM_EnhancedRedefineClasses::doit() {
Universe::root_oops_do(&oopClosureNoBarrier);
+ if (UseG1GC) {
+ // this should work also for other GCs
+ CodeCache::nmethods_do(register_nmethod_g1);
+ }
+
}
log_trace(redefine, class, obsolete, metadata)("After updating instances");
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 9755944d70b..4c0412d343d 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -116,7 +116,8 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void rollback();
static void mark_as_scavengable(nmethod* nm);
- static void mark_as_scavengable_g1(nmethod* nm);
+ static void unregister_nmethod_g1(nmethod* nm);
+ static void register_nmethod_g1(nmethod* nm);
static void unpatch_bytecode(Method* method);
static void fix_invoke_method(Method* method);
--
2.23.0

View File

@@ -1,26 +0,0 @@
From 5c7e5f245f79d7e8575461dab0c356ed74c8e9a3 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Thu, 22 Oct 2020 20:15:20 +0200
Subject: [PATCH 14/34] Initialize method's _new_version/_old_version to NULL
---
src/hotspot/share/oops/method.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/oops/method.cpp b/src/hotspot/share/oops/method.cpp
index 1c88511a5fc..ce940cf10a9 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -91,7 +91,8 @@ Method* Method::allocate(ClassLoaderData* loader_data,
return new (loader_data, size, MetaspaceObj::MethodType, THREAD) Method(cm, access_flags);
}
-Method::Method(ConstMethod* xconst, AccessFlags access_flags) {
+Method::Method(ConstMethod* xconst, AccessFlags access_flags) : _new_version(NULL),
+ _old_version(NULL) {
NoSafepointVerifier no_safepoint;
set_constMethod(xconst);
set_access_flags(access_flags);
--
2.23.0

View File

@@ -1,193 +0,0 @@
From 6ffac6e5064ec6633fdbeb8520333dca00bc6a62 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 23 Oct 2020 10:20:26 +0200
Subject: [PATCH 15/34] Clear dcevm code separation
---
src/hotspot/share/classfile/systemDictionary.cpp | 4 ++--
src/hotspot/share/gc/serial/genMarkSweep.cpp | 8 +++++---
src/hotspot/share/interpreter/linkResolver.cpp | 16 +++++++++++-----
.../instrumentation/jfrEventClassTransformer.cpp | 2 +-
src/hotspot/share/oops/instanceKlass.cpp | 10 ++++++----
src/hotspot/share/oops/method.cpp | 2 +-
.../share/prims/jvmtiGetLoadedClasses.cpp | 2 +-
src/hotspot/share/runtime/reflection.cpp | 2 +-
8 files changed, 28 insertions(+), 18 deletions(-)
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 8f2b46add4d..9ac6ec96cb5 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1241,7 +1241,7 @@ InstanceKlass* SystemDictionary::resolve_from_stream(Symbol* class_name,
MutexLocker mu(THREAD, SystemDictionary_lock);
Klass* check = find_class(h_name, k->class_loader_data());
- assert((check == k && !k->is_redefining()) || (k->is_redefining() && check == k->old_version()), "should be present in the dictionary");
+ assert(check == k && !k->is_redefining() || k->is_redefining() && check == k->old_version(), "should be present in the dictionary");
} );
return k;
@@ -2290,7 +2290,7 @@ void SystemDictionary::check_constraints(unsigned int d_hash,
// also hold array classes.
assert(check->is_instance_klass(), "noninstance in systemdictionary");
- if ((defining == true) || ((k != check) && k->old_version() != check)) {
+ if ((defining == true) || (k != check && (!AllowEnhancedClassRedefinition || k->old_version() != check))) {
throwException = true;
ss.print("loader %s", loader_data->loader_name_and_id());
ss.print(" attempted duplicate %s definition for %s. (%s)",
diff --git a/src/hotspot/share/gc/serial/genMarkSweep.cpp b/src/hotspot/share/gc/serial/genMarkSweep.cpp
index 1d13c647452..548df01e557 100644
--- a/src/hotspot/share/gc/serial/genMarkSweep.cpp
+++ b/src/hotspot/share/gc/serial/genMarkSweep.cpp
@@ -334,7 +334,9 @@ void GenMarkSweep::mark_sweep_phase4() {
GenCompactClosure blk;
gch->generation_iterate(&blk, true);
- DcevmSharedGC::copy_rescued_objects_back(MarkSweep::_rescued_oops, true);
- DcevmSharedGC::clear_rescued_objects_resource(MarkSweep::_rescued_oops);
- MarkSweep::_rescued_oops = NULL;
+ if (AllowEnhancedClassRedefinition) {
+ DcevmSharedGC::copy_rescued_objects_back(MarkSweep::_rescued_oops, true);
+ DcevmSharedGC::clear_rescued_objects_resource(MarkSweep::_rescued_oops);
+ MarkSweep::_rescued_oops = NULL;
+ }
}
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index b6e9e0a308d..b2f24ddbeda 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -282,9 +282,14 @@ void LinkResolver::check_klass_accessibility(Klass* ref_klass, Klass* sel_klass,
if (!base_klass->is_instance_klass()) {
return; // no relevant check to do
}
-
- Reflection::VerifyClassAccessResults vca_result =
- Reflection::verify_class_access(ref_klass->newest_version(), InstanceKlass::cast(base_klass->newest_version()), true);
+ Klass* refKlassNewest = ref_klass;
+ Klass* baseKlassNewest = base_klass;
+ if (AllowEnhancedClassRedefinition) {
+ refKlassNewest = ref_klass->newest_version();
+ baseKlassNewest = base_klass->newest_version();
+ }
+ Reflection::VerifyClassAccessResults vca_result =
+ Reflection::verify_class_access(refKlassNewest, InstanceKlass::cast(baseKlassNewest), true);
if (vca_result != Reflection::ACCESS_OK) {
ResourceMark rm(THREAD);
char* msg = Reflection::verify_class_access_msg(ref_klass,
@@ -566,7 +571,8 @@ void LinkResolver::check_method_accessability(Klass* ref_klass,
// We'll check for the method name first, as that's most likely
// to be false (so we'll short-circuit out of these tests).
if (sel_method->name() == vmSymbols::clone_name() &&
- sel_klass->newest_version() == SystemDictionary::Object_klass()->newest_version() &&
+ ( !AllowEnhancedClassRedefinition && sel_klass == SystemDictionary::Object_klass() ||
+ AllowEnhancedClassRedefinition && sel_klass->newest_version() == SystemDictionary::Object_klass()->newest_version()) &&
resolved_klass->is_array_klass()) {
// We need to change "protected" to "public".
assert(flags.is_protected(), "clone not protected?");
@@ -1011,7 +1017,7 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
// or by the <init> method (in case of an instance field).
if (is_put && fd.access_flags().is_final()) {
- if (sel_klass != current_klass && sel_klass != current_klass->active_version()) {
+ if (sel_klass != current_klass && (!AllowEnhancedClassRedefinition || sel_klass != current_klass->active_version())) {
ResourceMark rm(THREAD);
stringStream ss;
ss.print("Update to %s final field %s.%s attempted from a different class (%s) than the field's declaring class",
diff --git a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
index 96fc139bea3..f7284197c5a 100644
--- a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
+++ b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
@@ -1471,7 +1471,7 @@ static InstanceKlass* create_new_instance_klass(InstanceKlass* ik, ClassFileStre
cld,
&cl_info,
ClassFileParser::INTERNAL, // internal visibility
- false,
+ false,
THREAD);
if (HAS_PENDING_EXCEPTION) {
log_pending_exception(PENDING_EXCEPTION);
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 3be3a09ef8f..f8e60941046 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -199,7 +199,9 @@ bool InstanceKlass::has_nest_member(InstanceKlass* k, TRAPS) const {
// able to perform that loading but we can't exclude the compiler threads from
// executing this logic. But it should actually be impossible to trigger loading here.
Klass* k2 = _constants->klass_at(cp_index, THREAD);
- k2 = k2->newest_version();
+ if (AllowEnhancedClassRedefinition) {
+ k2 = k2->newest_version();
+ }
assert(!HAS_PENDING_EXCEPTION || PENDING_EXCEPTION->is_a(SystemDictionary::VirtualMachineError_klass()),
"Exceptions should not be possible here");
if (k2 == k) {
@@ -1003,7 +1005,7 @@ bool InstanceKlass::link_class_impl(TRAPS) {
#endif
set_init_state(linked);
// (DCEVM) Must check for old version in order to prevent infinite loops.
- if (JvmtiExport::should_post_class_prepare() && old_version() == NULL /* JVMTI deadlock otherwise */) {
+ if (JvmtiExport::should_post_class_prepare() && (!AllowEnhancedClassRedefinition || old_version() == NULL) /* JVMTI deadlock otherwise */) {
Thread *thread = THREAD;
assert(thread->is_Java_thread(), "thread->is_Java_thread()");
JvmtiExport::post_class_prepare((JavaThread *) thread, this);
@@ -1084,7 +1086,7 @@ void InstanceKlass::initialize_impl(TRAPS) {
// we might end up throwing IE from link/symbol resolution sites
// that aren't expected to throw. This would wreak havoc. See 6320309.
while ((is_being_initialized() && !is_reentrant_initialization(jt))
- || (old_version() != NULL && InstanceKlass::cast(old_version())->is_being_initialized())) {
+ || (AllowEnhancedClassRedefinition && old_version() != NULL && InstanceKlass::cast(old_version())->is_being_initialized())) {
wait = true;
jt->set_class_to_be_initialized(this);
ol.wait_uninterruptibly(jt);
@@ -3782,7 +3784,7 @@ void InstanceKlass::verify_on(outputStream* st) {
guarantee(sib->is_klass(), "should be klass");
// TODO: (DCEVM) explain
- guarantee(sib->super() == super || super->newest_version() == SystemDictionary::Object_klass(), "siblings should have same superklass");
+ guarantee(sib->super() == super || AllowEnhancedClassRedefinition && super->newest_version() == SystemDictionary::Object_klass(), "siblings should have same superklass");
}
// Verify local interfaces
diff --git a/src/hotspot/share/oops/method.cpp b/src/hotspot/share/oops/method.cpp
index ce940cf10a9..2d8e5b0256b 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -2208,7 +2208,7 @@ void Method::ensure_jmethod_ids(ClassLoaderData* loader_data, int capacity) {
// Add a method id to the jmethod_ids
jmethodID Method::make_jmethod_id(ClassLoaderData* loader_data, Method* m) {
// FIXME: (DCEVM) ???
- if (m != m->newest_version()) {
+ if (AllowEnhancedClassRedefinition && m != m->newest_version()) {
m = m->newest_version();
}
ClassLoaderData* cld = loader_data;
diff --git a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
index 1c7677f270f..6c12ee64a6e 100644
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
@@ -75,7 +75,7 @@ public:
// the new version (SystemDictionary stores only new versions). But the LoadedClassesClosure's functionality was
// changed in java8 where jvmtiLoadedClasses collects all classes from all classloaders, therefore we
// must use new versions only.
- if (k->new_version()==NULL) {
+ if (AllowEnhancedClassRedefinition && k->new_version()==NULL) {
_classStack.push((jclass) _env->jni_reference(Handle(_cur_thread, k->java_mirror())));
if (_dictionary_walk) {
// Collect array classes this way when walking the dictionary (because array classes are
diff --git a/src/hotspot/share/runtime/reflection.cpp b/src/hotspot/share/runtime/reflection.cpp
index 0e7722dba7d..d67457f02ac 100644
--- a/src/hotspot/share/runtime/reflection.cpp
+++ b/src/hotspot/share/runtime/reflection.cpp
@@ -628,7 +628,7 @@ bool Reflection::verify_member_access(const Klass* current_class,
TRAPS) {
// (DCEVM) Decide accessibility based on active version
- if (current_class != NULL) {
+ if (AllowEnhancedClassRedefinition && current_class != NULL) {
current_class = current_class->active_version();
}
--
2.23.0

View File

@@ -1,26 +0,0 @@
From dc675de6ac42819b8536827ea450fcad13a97448 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Wed, 11 Nov 2020 18:45:15 +0100
Subject: [PATCH 16/34] Fix LoadedClassesClosure - fixes problems with remote
debugging
---
src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
index 6c12ee64a6e..2a469555dbd 100644
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
@@ -75,7 +75,7 @@ public:
// the new version (SystemDictionary stores only new versions). But the LoadedClassesClosure's functionality was
// changed in java8 where jvmtiLoadedClasses collects all classes from all classloaders, therefore we
// must use new versions only.
- if (AllowEnhancedClassRedefinition && k->new_version()==NULL) {
+ if (!AllowEnhancedClassRedefinition || k->new_version()==NULL) {
_classStack.push((jclass) _env->jni_reference(Handle(_cur_thread, k->java_mirror())));
if (_dictionary_walk) {
// Collect array classes this way when walking the dictionary (because array classes are
--
2.23.0

View File

@@ -1,183 +0,0 @@
From 1d682efa88c716e1849163d5abff3a3367581d16 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 16 Nov 2020 21:11:19 +0100
Subject: [PATCH 18/34] pre dcevm15 - fix GC spaces originally in removed CMS
patch
---
src/hotspot/share/gc/shared/space.cpp | 16 ++++++++--------
src/hotspot/share/gc/shared/space.hpp | 6 +++---
src/hotspot/share/gc/shared/space.inline.hpp | 14 ++++++++------
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 6 ++----
4 files changed, 21 insertions(+), 21 deletions(-)
diff --git a/src/hotspot/share/gc/shared/space.cpp b/src/hotspot/share/gc/shared/space.cpp
index 875a6dc854f..9772c32c42e 100644
--- a/src/hotspot/share/gc/shared/space.cpp
+++ b/src/hotspot/share/gc/shared/space.cpp
@@ -375,11 +375,11 @@ HeapWord* CompactibleSpace::forward_compact_top(size_t size, CompactPoint* cp, H
}
HeapWord* CompactibleSpace::forward(oop q, size_t size,
- CompactPoint* cp, HeapWord* compact_top) {
+ CompactPoint* cp, HeapWord* compact_top, bool force_forward) {
compact_top = forward_compact_top(size, cp, compact_top);
// store the forwarding pointer into the mark word
- if (cast_from_oop<HeapWord*>(q) != compact_top || (size_t)q->size() != size) {
+ if (force_forward || cast_from_oop<HeapWord*>(q) != compact_top || (size_t)q->size() != size) {
q->forward_to(oop(compact_top));
assert(q->is_gc_marked(), "encoding the pointer should preserve the mark");
} else {
@@ -501,7 +501,7 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
} else {
assert(space_index(old_obj) != space_index(new_obj), "old_obj and new_obj must be in different spaces");
- if (tenured_gen->is_in_reserved(new_obj)) {
+ if (new_in_tenured) {
// Must never rescue when moving from the new into the old generation.
assert(GenCollectedHeap::heap()->young_gen()->is_in_reserved(old_obj), "old_obj must be in DefNewGeneration");
assert(space_index(old_obj) > space_index(new_obj), "must be");
@@ -824,14 +824,14 @@ void OffsetTableContigSpace::verify() const {
// Compute the forward sizes and leave out objects whose position could
// possibly overlap other objects.
HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
- CompactPoint* cp, HeapWord* compact_top) {
+ CompactPoint* cp, HeapWord* compact_top, bool force_forward) {
size_t forward_size = size;
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
- assert(size != new_size, "instances without changed size have to be updated prior to GC run");
+ // assert(size != new_size, "instances without changed size have to be updated prior to GC run");
forward_size = new_size;
}
@@ -845,7 +845,7 @@ HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
return compact_top;
}
- return forward(oop(q), forward_size, cp, compact_top);
+ return forward(oop(q), forward_size, cp, compact_top, force_forward);
}
// Compute the forwarding addresses for the objects that need to be rescued.
@@ -861,11 +861,11 @@ HeapWord* CompactibleSpace::forward_rescued(CompactPoint* cp, HeapWord* compact_
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
- assert(size != new_size, "instances without changed size have to be updated prior to GC run");
+ // assert(size != new_size, "instances without changed size have to be updated prior to GC run");
size = new_size;
}
- compact_top = cp->space->forward(oop(q), size, cp, compact_top);
+ compact_top = cp->space->forward(oop(q), size, cp, compact_top, true);
assert(compact_top <= end(), "must not write over end of space!");
}
MarkSweep::_rescued_oops->clear();
diff --git a/src/hotspot/share/gc/shared/space.hpp b/src/hotspot/share/gc/shared/space.hpp
index c9bfc365f0f..f7648995454 100644
--- a/src/hotspot/share/gc/shared/space.hpp
+++ b/src/hotspot/share/gc/shared/space.hpp
@@ -405,7 +405,7 @@ public:
virtual void prepare_for_compaction(CompactPoint* cp) = 0;
// MarkSweep support phase3
DEBUG_ONLY(int space_index(oop obj));
- bool must_rescue(oop old_obj, oop new_obj);
+ virtual bool must_rescue(oop old_obj, oop new_obj);
HeapWord* rescue(HeapWord* old_obj);
virtual void adjust_pointers();
// MarkSweep support phase4
@@ -436,11 +436,11 @@ public:
// function of the then-current compaction space, and updates "cp->threshold
// accordingly".
virtual HeapWord* forward(oop q, size_t size, CompactPoint* cp,
- HeapWord* compact_top);
+ HeapWord* compact_top, bool force_forward);
// (DCEVM) same as forwad, but can rescue objects. Invoked only during
// redefinition runs
HeapWord* forward_with_rescue(HeapWord* q, size_t size, CompactPoint* cp,
- HeapWord* compact_top);
+ HeapWord* compact_top, bool force_forward);
HeapWord* forward_rescued(CompactPoint* cp, HeapWord* compact_top);
diff --git a/src/hotspot/share/gc/shared/space.inline.hpp b/src/hotspot/share/gc/shared/space.inline.hpp
index 5a93e93471b..fa645423685 100644
--- a/src/hotspot/share/gc/shared/space.inline.hpp
+++ b/src/hotspot/share/gc/shared/space.inline.hpp
@@ -163,6 +163,8 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
HeapWord* cur_obj = space->bottom();
HeapWord* scan_limit = space->scan_limit();
+ bool force_forward = false;
+
while (cur_obj < scan_limit) {
assert(!space->scanned_block_is_obj(cur_obj) ||
oop(cur_obj)->mark_raw().is_marked() || oop(cur_obj)->mark_raw().is_unlocked() ||
@@ -174,14 +176,15 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
size_t size = space->scanned_block_size(cur_obj);
if (redefinition_run) {
- compact_top = cp->space->forward_with_rescue(cur_obj, size, cp, compact_top);
+ compact_top = cp->space->forward_with_rescue(cur_obj, size, cp, compact_top, force_forward);
if (first_dead == NULL && oop(cur_obj)->is_gc_marked()) {
/* Was moved (otherwise, forward would reset mark),
set first_dead to here */
first_dead = cur_obj;
+ force_forward = true;
}
} else {
- compact_top = cp->space->forward(oop(cur_obj), size, cp, compact_top);
+ compact_top = cp->space->forward(oop(cur_obj), size, cp, compact_top, false);
}
cur_obj += size;
@@ -197,9 +200,9 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
// see if we might want to pretend this object is alive so that
// we don't have to compact quite as often.
- if (cur_obj == compact_top && dead_spacer.insert_deadspace(cur_obj, end)) {
+ if (!redefinition_run && cur_obj == compact_top && dead_spacer.insert_deadspace(cur_obj, end)) {
oop obj = oop(cur_obj);
- compact_top = cp->space->forward(obj, obj->size(), cp, compact_top);
+ compact_top = cp->space->forward(obj, obj->size(), cp, compact_top, force_forward);
end_of_live = end;
} else {
// otherwise, it really is a free region.
@@ -362,8 +365,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
Prefetch::write(compaction_top, copy_interval);
// copy object and reinit its mark
- assert(cur_obj != compaction_top || oop(cur_obj)->klass()->new_version() != NULL,
- "everything in this pass should be moving");
+ assert(redefinition_run || cur_obj != compaction_top, "everything in this pass should be moving");
if (redefinition_run && oop(cur_obj)->klass()->new_version() != NULL) {
Klass* new_version = oop(cur_obj)->klass()->new_version();
if (new_version->update_information() == NULL) {
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 718426f2819..1da6661dd3e 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -431,13 +431,11 @@ public:
Klass* new_klass = obj->klass()->new_version();
if (new_klass->update_information() != NULL) {
- int size_diff = obj->size() - obj->size_given_klass(new_klass);
-
- // Either new size is bigger or gap is to small to be filled
- if (size_diff < 0 || (size_diff > 0 && (size_t) size_diff < CollectedHeap::min_fill_size())) {
+ if (obj->size() - obj->size_given_klass(new_klass) != 0) {
// We need an instance update => set back to old klass
_needs_instance_update = true;
} else {
+ // Either new size is bigger or gap is to small to be filled
oop src = obj;
if (new_klass->is_copying_backwards()) {
copy_to_tmp(obj);
--
2.23.0

View File

@@ -1,942 +0,0 @@
From 297f564f6af79fb824f5b4e9119f1d3d0c827fb0 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 16 Nov 2020 20:20:12 +0100
Subject: [PATCH 19/34] dcevm15 - fix java15 patch compilation issues
---
.../share/classfile/classFileParser.hpp | 8 +-
.../share/classfile/classLoaderData.cpp | 2 +-
src/hotspot/share/classfile/dictionary.hpp | 10 +-
src/hotspot/share/classfile/javaClasses.hpp | 2 +
.../share/gc/g1/g1FullGCCompactTask.cpp | 4 +-
.../share/gc/g1/g1FullGCCompactionPoint.cpp | 8 +-
.../share/gc/g1/g1FullGCPrepareTask.cpp | 4 +-
src/hotspot/share/gc/shared/dcevmSharedGC.cpp | 14 +-
src/hotspot/share/gc/shared/dcevmSharedGC.hpp | 2 +-
src/hotspot/share/gc/shared/gcConfig.cpp | 2 +-
src/hotspot/share/gc/shared/space.cpp | 4 +-
.../share/interpreter/linkResolver.cpp | 2 +-
src/hotspot/share/oops/instanceKlass.cpp | 17 ++-
src/hotspot/share/oops/instanceKlass.hpp | 1 +
src/hotspot/share/oops/klass.cpp | 8 +-
src/hotspot/share/prims/jvm.cpp | 2 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 129 +++++++++---------
.../prims/jvmtiEnhancedRedefineClasses.hpp | 14 +-
src/hotspot/share/prims/jvmtiEnv.cpp | 11 +-
.../share/prims/jvmtiRedefineClasses.cpp | 1 +
src/hotspot/share/prims/methodHandles.hpp | 3 +
src/hotspot/share/runtime/arguments.cpp | 22 +--
src/hotspot/share/runtime/mutexLocker.cpp | 2 +-
23 files changed, 159 insertions(+), 113 deletions(-)
diff --git a/src/hotspot/share/classfile/classFileParser.hpp b/src/hotspot/share/classfile/classFileParser.hpp
index e5761e61767..0d266b9047e 100644
--- a/src/hotspot/share/classfile/classFileParser.hpp
+++ b/src/hotspot/share/classfile/classFileParser.hpp
@@ -150,9 +150,6 @@ class ClassFileParser {
const intArray* _method_ordering;
GrowableArray<Method*>* _all_mirandas;
- // Enhanced class redefinition
- const bool _pick_newest;
-
enum { fixed_buffer_size = 128 };
u_char _linenumbertable_buffer[fixed_buffer_size];
@@ -206,6 +203,9 @@ class ClassFileParser {
bool _has_vanilla_constructor;
int _max_bootstrap_specifier_index; // detects BSS values
+ // (DCEVM) Enhanced class redefinition
+ const bool _pick_newest;
+
void parse_stream(const ClassFileStream* const stream, TRAPS);
void mangle_hidden_class_name(InstanceKlass* const ik);
@@ -582,7 +582,7 @@ class ClassFileParser {
ClassLoaderData* loader_data() const { return _loader_data; }
const Symbol* class_name() const { return _class_name; }
const InstanceKlass* super_klass() const { return _super_klass; }
- Array<Klass*>* local_interfaces() const { return _local_interfaces; }
+ Array<InstanceKlass*>* local_interfaces() const { return _local_interfaces; }
ReferenceType reference_type() const { return _rt; }
AccessFlags access_flags() const { return _access_flags; }
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 4d64c6b454a..aadcd50ef4a 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -597,7 +597,7 @@ void ClassLoaderData::exchange_holders(ClassLoaderData* cld) {
oop holder_oop = _holder.peek();
_holder.replace(cld->_holder.peek());
cld->_holder.replace(holder_oop);
- WeakHandle<vm_class_loader_data> exchange = _holder;
+ WeakHandle<vm_weak_data> exchange = _holder;
_holder = cld->_holder;
cld->_holder = exchange;
}
diff --git a/src/hotspot/share/classfile/dictionary.hpp b/src/hotspot/share/classfile/dictionary.hpp
index 114a983e783..a50f4ff84d2 100644
--- a/src/hotspot/share/classfile/dictionary.hpp
+++ b/src/hotspot/share/classfile/dictionary.hpp
@@ -84,6 +84,11 @@ public:
void print_on(outputStream* st) const;
void verify();
+ // (DCEVM) Enhanced class redefinition
+ bool update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass);
+
+ void rollback_redefinition();
+
private:
DictionaryEntry* new_entry(unsigned int hash, InstanceKlass* klass);
@@ -106,11 +111,6 @@ public:
void free_entry(DictionaryEntry* entry);
- // Enhanced class redefinition
- bool update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass);
-
- void rollback_redefinition();
-
// (DCEVM) return old class if redefining in AllowEnhancedClassRedefinition, otherwise return "k"
static InstanceKlass* old_if_redefined(InstanceKlass* k) {
return (k != NULL && k->is_redefining()) ? ((InstanceKlass* )k->old_version()) : k;
diff --git a/src/hotspot/share/classfile/javaClasses.hpp b/src/hotspot/share/classfile/javaClasses.hpp
index a68c5139151..9abf2e1d105 100644
--- a/src/hotspot/share/classfile/javaClasses.hpp
+++ b/src/hotspot/share/classfile/javaClasses.hpp
@@ -255,7 +255,9 @@ class java_lang_Class : AllStatic {
static void set_init_lock(oop java_class, oop init_lock);
static void set_protection_domain(oop java_class, oop protection_domain);
static void set_class_loader(oop java_class, oop class_loader);
+ public: // DCEVM
static void set_component_mirror(oop java_class, oop comp_mirror);
+ private:
static void initialize_mirror_fields(Klass* k, Handle mirror, Handle protection_domain,
Handle classData, TRAPS);
static void initialize_mirror_fields(Klass* k, Handle mirror, Handle protection_domain, TRAPS);
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
index f70f4606dc8..a22ed48560d 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactTask.cpp
@@ -157,14 +157,14 @@ void G1FullGCCompactTask::serial_compaction_dcevm() {
size_t G1FullGCCompactTask::G1CompactRegionClosureDcevm::apply(oop obj) {
size_t size = obj->size();
- HeapWord* destination = (HeapWord*)obj->forwardee();
+ HeapWord* destination = cast_from_oop<HeapWord*>(obj->forwardee());
if (destination == NULL) {
// Object not moving
return size;
}
// copy object and reinit its mark
- HeapWord* obj_addr = (HeapWord*) obj;
+ HeapWord* obj_addr = cast_from_oop<HeapWord*>(obj);
if (!_rescue_oops_it->at_end() && **_rescue_oops_it == obj_addr) {
++(*_rescue_oops_it);
diff --git a/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp b/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
index 1e49571c999..755935a2c91 100644
--- a/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCCompactionPoint.cpp
@@ -174,7 +174,7 @@ void G1FullGCCompactionPoint::forward_dcevm(oop object, size_t size, bool force_
assert(_current_region != NULL, "Must have been initialized");
// Store a forwarding pointer if the object should be moved.
- if ((HeapWord*)object != _compaction_top || force_forward) {
+ if (cast_from_oop<HeapWord*>(object) != _compaction_top || force_forward) {
object->forward_to(oop(_compaction_top));
} else {
if (object->forwardee() != NULL) {
@@ -188,11 +188,11 @@ void G1FullGCCompactionPoint::forward_dcevm(oop object, size_t size, bool force_
} else {
// Make sure object has the correct mark-word set or that it will be
// fixed when restoring the preserved marks.
- assert(object->mark_raw() == markOopDesc::prototype_for_object(object) || // Correct mark
- object->mark_raw()->must_be_preserved(object) || // Will be restored by PreservedMarksSet
+ assert(object->mark_raw() == markWord::prototype_for_klass(object->klass()) || // Correct mark
+ object->mark_must_be_preserved() || // Will be restored by PreservedMarksSet
(UseBiasedLocking && object->has_bias_pattern_raw()), // Will be restored by BiasedLocking
"should have correct prototype obj: " PTR_FORMAT " mark: " PTR_FORMAT " prototype: " PTR_FORMAT,
- p2i(object), p2i(object->mark_raw()), p2i(markOopDesc::prototype_for_object(object)));
+ p2i(object), object->mark_raw().value(), markWord::prototype_for_klass(object->klass()).value());
}
assert(object->forwardee() == NULL, "should be forwarded to NULL");
}
diff --git a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
index a45681b60cf..2f06b9617e4 100644
--- a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
@@ -269,7 +269,7 @@ size_t G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::apply(oop object)
HeapWord* compact_top = _cp->forward_compact_top(forward_size);
if (compact_top == NULL || must_rescue(object, oop(compact_top))) {
- _cp->rescued_oops()->append((HeapWord*)object);
+ _cp->rescued_oops()->append(cast_from_oop<HeapWord*>(object));
} else {
_cp->forward_dcevm(object, forward_size, (size != forward_size));
}
@@ -295,7 +295,7 @@ bool G1FullGCPrepareTask::G1PrepareCompactLiveClosureDcevm::must_rescue(oop old_
int new_size = old_obj->size_given_klass(oop(old_obj)->klass()->new_version());
int original_size = old_obj->size();
- bool overlap = ((HeapWord*)old_obj + original_size < (HeapWord*)new_obj + new_size);
+ bool overlap = (cast_from_oop<HeapWord*>(old_obj) + original_size < cast_from_oop<HeapWord*>(new_obj) + new_size);
return overlap;
}
diff --git a/src/hotspot/share/gc/shared/dcevmSharedGC.cpp b/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
index 803e645f843..3dee097f1d3 100644
--- a/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
+++ b/src/hotspot/share/gc/shared/dcevmSharedGC.cpp
@@ -58,10 +58,10 @@ void DcevmSharedGC::copy_rescued_objects_back(GrowableArray<HeapWord*>* rescued_
DcevmSharedGC::update_fields(rescued_obj, new_obj);
} else {
rescued_obj->set_klass(new_klass);
- Copy::aligned_disjoint_words((HeapWord*)rescued_obj, (HeapWord*)new_obj, size);
+ Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(rescued_obj), cast_from_oop<HeapWord*>(new_obj), size);
}
} else {
- Copy::aligned_disjoint_words((HeapWord*)rescued_obj, (HeapWord*)new_obj, size);
+ Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(rescued_obj), cast_from_oop<HeapWord*>(new_obj), size);
}
new_obj->init_mark_raw();
@@ -111,11 +111,11 @@ void DcevmSharedGC::update_fields(oop q, oop new_location) {
// Save object somewhere, there is an overlap in fields
if (new_klass_oop->is_copying_backwards()) {
- if (((HeapWord *)q >= (HeapWord *)new_location && (HeapWord *)q < (HeapWord *)new_location + new_size) ||
- ((HeapWord *)new_location >= (HeapWord *)q && (HeapWord *)new_location < (HeapWord *)q + size)) {
+ if ((cast_from_oop<HeapWord*>(q) >= cast_from_oop<HeapWord*>(new_location) && cast_from_oop<HeapWord*>(q) < cast_from_oop<HeapWord*>(new_location) + new_size) ||
+ (cast_from_oop<HeapWord*>(new_location) >= cast_from_oop<HeapWord*>(q) && cast_from_oop<HeapWord*>(new_location) < cast_from_oop<HeapWord*>(q) + size)) {
tmp = NEW_RESOURCE_ARRAY(HeapWord, size);
q = (oop) tmp;
- Copy::aligned_disjoint_words((HeapWord*)tmp_obj, (HeapWord*)q, size);
+ Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(tmp_obj), cast_from_oop<HeapWord*>(q), size);
}
}
@@ -131,13 +131,13 @@ void DcevmSharedGC::update_fields(oop q, oop new_location) {
void DcevmSharedGC::update_fields(oop new_location, oop tmp_obj, int *cur) {
assert(cur != NULL, "just checking");
- char* to = (char*)(HeapWord*)new_location;
+ char* to = (char*)cast_from_oop<HeapWord*>(new_location);
while (*cur != 0) {
int size = *cur;
if (size > 0) {
cur++;
int offset = *cur;
- HeapWord* from = (HeapWord*)(((char *)(HeapWord*)tmp_obj) + offset);
+ HeapWord* from = (HeapWord*)(((char *)cast_from_oop<HeapWord*>(tmp_obj)) + offset);
if (size == HeapWordSize) {
*((HeapWord*)to) = *from;
} else if (size == HeapWordSize * 2) {
diff --git a/src/hotspot/share/gc/shared/dcevmSharedGC.hpp b/src/hotspot/share/gc/shared/dcevmSharedGC.hpp
index e2ef0171fb2..a4e27e00280 100644
--- a/src/hotspot/share/gc/shared/dcevmSharedGC.hpp
+++ b/src/hotspot/share/gc/shared/dcevmSharedGC.hpp
@@ -29,7 +29,7 @@
#include "gc/shared/genOopClosures.hpp"
#include "gc/shared/taskqueue.hpp"
#include "memory/iterator.hpp"
-#include "oops/markOop.hpp"
+#include "oops/markWord.hpp"
#include "oops/oop.hpp"
#include "runtime/timer.hpp"
#include "utilities/growableArray.hpp"
diff --git a/src/hotspot/share/gc/shared/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp
index f01d64d1434..5c1a09390f1 100644
--- a/src/hotspot/share/gc/shared/gcConfig.cpp
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp
@@ -100,7 +100,7 @@ void GCConfig::fail_if_non_included_gc_is_selected() {
void GCConfig::select_gc_ergonomically() {
if (AllowEnhancedClassRedefinition && !UseG1GC) {
// Enhanced class redefinition only supports serial GC at the moment
- FLAG_SET_ERGO(bool, UseSerialGC, true);
+ FLAG_SET_ERGO(UseSerialGC, true);
} else if (os::is_server_class_machine()) {
#if INCLUDE_G1GC
FLAG_SET_ERGO_IF_DEFAULT(UseG1GC, true);
diff --git a/src/hotspot/share/gc/shared/space.cpp b/src/hotspot/share/gc/shared/space.cpp
index 9772c32c42e..e8e3d7884c2 100644
--- a/src/hotspot/share/gc/shared/space.cpp
+++ b/src/hotspot/share/gc/shared/space.cpp
@@ -440,7 +440,7 @@ int CompactibleSpace::space_index(oop obj) {
index++;
}
- tty->print_cr("could not compute space_index for %08xh", (HeapWord*)obj);
+ tty->print_cr("could not compute space_index for %08xh", cast_from_oop<HeapWord*>(obj));
index = 0;
Generation* gen = heap->old_gen();
@@ -485,7 +485,7 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
bool new_in_tenured = tenured_gen->is_in_reserved(new_obj);
if (old_in_tenured == new_in_tenured) {
// Rescue if object may overlap with a higher memory address.
- bool overlap = ((HeapWord*)old_obj + original_size < (HeapWord*)new_obj + new_size);
+ bool overlap = (cast_from_oop<HeapWord*>(old_obj) + original_size < cast_from_oop<HeapWord*>(new_obj) + new_size);
if (old_in_tenured) {
// Old and new address are in same space, so just compare the address.
// Must rescue if object moves towards the top of the space.
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index b2f24ddbeda..9daeeb70b34 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -1031,7 +1031,7 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
assert(m != NULL, "information about the current method must be available for 'put' bytecodes");
bool is_initialized_static_final_update = (byte == Bytecodes::_putstatic &&
fd.is_static() &&
- !(m()->is_static_initializer() || m()->name() == vmSymbols::ha_class_initializer_name()));
+ !(m->is_static_initializer() || m->name() == vmSymbols::ha_class_initializer_name()));
bool is_initialized_instance_final_update = ((byte == Bytecodes::_putfield || byte == Bytecodes::_nofast_putfield) &&
!fd.is_static() &&
!m->is_object_initializer());
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index f8e60941046..5e40d78a87e 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -1316,7 +1316,7 @@ void InstanceKlass::init_implementor() {
// (DCEVM) - init_implementor() for dcevm
void InstanceKlass::init_implementor_from_redefine() {
assert(is_interface(), "not interface");
- Klass** addr = adr_implementor();
+ Klass* volatile* addr = adr_implementor();
assert(addr != NULL, "null addr");
if (addr != NULL) {
*addr = NULL;
@@ -1659,6 +1659,21 @@ void InstanceKlass::methods_do(void f(Method* method)) {
}
}
+void InstanceKlass::methods_do(void f(Method* method, TRAPS), TRAPS) {
+ // Methods aren't stable until they are loaded. This can be read outside
+ // a lock through the ClassLoaderData for profiling
+ if (!is_loaded()) {
+ return;
+ }
+
+ int len = methods()->length();
+ for (int index = 0; index < len; index++) {
+ Method* m = methods()->at(index);
+ assert(m->is_method(), "must be method");
+ f(m, CHECK);
+ }
+}
+
// (DCEVM) Update information contains mapping of fields from old class to the new class.
// Info is stored on HEAP, you need to call clear_update_information to free the space.
void InstanceKlass::store_update_information(GrowableArray<int> &values) {
diff --git a/src/hotspot/share/oops/instanceKlass.hpp b/src/hotspot/share/oops/instanceKlass.hpp
index 6ead9426728..b56d42cb177 100644
--- a/src/hotspot/share/oops/instanceKlass.hpp
+++ b/src/hotspot/share/oops/instanceKlass.hpp
@@ -1069,6 +1069,7 @@ public:
void clear_update_information();
void methods_do(void f(Method* method));
+ void methods_do(void f(Method* method, TRAPS), TRAPS);
void array_klasses_do(void f(Klass* k));
void array_klasses_do(void f(Klass* k, TRAPS), TRAPS);
diff --git a/src/hotspot/share/oops/klass.cpp b/src/hotspot/share/oops/klass.cpp
index 352d8f84631..88f5ec9ba4a 100644
--- a/src/hotspot/share/oops/klass.cpp
+++ b/src/hotspot/share/oops/klass.cpp
@@ -200,13 +200,13 @@ void* Klass::operator new(size_t size, ClassLoaderData* loader_data, size_t word
Klass::Klass(KlassID id) : _id(id),
_java_mirror(NULL),
_prototype_header(markWord::prototype()),
- _shared_class_path_index(-1),
- _new_version(NULL),
_old_version(NULL),
+ _new_version(NULL),
+ _redefinition_flags(Klass::NoRedefinition),
_is_redefining(false),
+ _update_information(NULL),
_is_copying_backwards(false),
- _redefinition_flags(Klass::NoRedefinition),
- _update_information(NULL) {
+ _shared_class_path_index(-1) {
CDS_ONLY(_shared_class_flags = 0;)
CDS_JAVA_HEAP_ONLY(_archived_mirror = 0;)
_primary_supers[0] = this;
diff --git a/src/hotspot/share/prims/jvm.cpp b/src/hotspot/share/prims/jvm.cpp
index 333b65ccfc1..13bcac352fb 100644
--- a/src/hotspot/share/prims/jvm.cpp
+++ b/src/hotspot/share/prims/jvm.cpp
@@ -1054,6 +1054,7 @@ static jclass jvm_lookup_define_class(JNIEnv *env, jclass lookup, const char *na
class_loader,
protection_domain,
&st,
+ NULL,
CHECK_NULL);
if (log_is_enabled(Debug, class, resolve) && defined_k != NULL) {
@@ -1074,6 +1075,7 @@ static jclass jvm_lookup_define_class(JNIEnv *env, jclass lookup, const char *na
class_loader,
&st,
cl_info,
+ NULL,
CHECK_NULL);
if (defined_k == NULL) {
THROW_MSG_0(vmSymbols::java_lang_Error(), "Failure to define a hidden class");
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 1da6661dd3e..619e3988e3a 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -24,11 +24,14 @@
#include "precompiled.hpp"
#include "aot/aotLoader.hpp"
+#include "classfile/classFileParser.hpp"
#include "classfile/classFileStream.hpp"
#include "classfile/metadataOnStackMark.hpp"
#include "classfile/systemDictionary.hpp"
#include "classfile/verifier.hpp"
#include "classfile/dictionary.hpp"
+#include "classfile/classLoaderDataGraph.hpp"
+#include "interpreter/linkResolver.hpp"
#include "interpreter/oopMapCache.hpp"
#include "interpreter/rewriter.hpp"
#include "logging/logStream.hpp"
@@ -37,17 +40,22 @@
#include "memory/resourceArea.hpp"
#include "memory/iterator.inline.hpp"
#include "oops/fieldStreams.hpp"
+#include "oops/fieldStreams.inline.hpp"
#include "oops/klassVtable.hpp"
#include "oops/oop.inline.hpp"
#include "oops/constantPool.inline.hpp"
+#include "oops/metadata.hpp"
+#include "oops/methodData.hpp"
#include "prims/jvmtiImpl.hpp"
#include "prims/jvmtiClassFileReconstituter.hpp"
#include "prims/jvmtiEnhancedRedefineClasses.hpp"
#include "prims/methodComparator.hpp"
#include "prims/resolvedMethodTable.hpp"
+#include "prims/methodHandles.hpp"
#include "runtime/deoptimization.hpp"
#include "runtime/jniHandles.inline.hpp"
#include "runtime/relocator.hpp"
+#include "runtime/fieldDescriptor.hpp"
#include "runtime/fieldDescriptor.inline.hpp"
#include "utilities/bitMap.inline.hpp"
#include "prims/jvmtiThreadState.inline.hpp"
@@ -55,6 +63,8 @@
#include "oops/constantPool.inline.hpp"
#include "gc/g1/g1CollectedHeap.hpp"
#include "gc/shared/dcevmSharedGC.hpp"
+#include "gc/shared/scavengableNMethods.hpp"
+#include "ci/ciObjectFactory.hpp"
Array<Method*>* VM_EnhancedRedefineClasses::_old_methods = NULL;
Array<Method*>* VM_EnhancedRedefineClasses::_new_methods = NULL;
@@ -66,6 +76,7 @@ int VM_EnhancedRedefineClasses::_matching_methods_length = 0;
int VM_EnhancedRedefineClasses::_deleted_methods_length = 0;
int VM_EnhancedRedefineClasses::_added_methods_length = 0;
Klass* VM_EnhancedRedefineClasses::_the_class_oop = NULL;
+u8 VM_EnhancedRedefineClasses::_id_counter = 0;
//
// Create new instance of enhanced class redefiner.
@@ -88,6 +99,7 @@ VM_EnhancedRedefineClasses::VM_EnhancedRedefineClasses(jint class_count, const j
_class_load_kind = class_load_kind;
_res = JVMTI_ERROR_NONE;
_any_class_has_resolved_methods = false;
+ _id = next_id();
}
static inline InstanceKlass* get_ik(jclass def) {
@@ -211,9 +223,7 @@ class FieldCopier : public FieldClosure {
// TODO: review...
void VM_EnhancedRedefineClasses::mark_as_scavengable(nmethod* nm) {
- if (!nm->on_scavenge_root_list()) {
- CodeCache::add_scavenge_root_nmethod(nm);
- }
+ ScavengableNMethods::register_nmethod(nm);
}
void VM_EnhancedRedefineClasses::unregister_nmethod_g1(nmethod* nm) {
@@ -414,7 +424,7 @@ public:
_tmp_obj_size = size;
_tmp_obj = (oop)resource_allocate_bytes(size * HeapWordSize);
}
- Copy::aligned_disjoint_words((HeapWord*)o, (HeapWord*)_tmp_obj, size);
+ Copy::aligned_disjoint_words(cast_from_oop<HeapWord*>(o), cast_from_oop<HeapWord*>(_tmp_obj), size);
}
virtual void do_object(oop obj) {
@@ -505,9 +515,6 @@ void VM_EnhancedRedefineClasses::doit() {
ClearCpoolCacheAndUnpatch clear_cpool_cache(thread);
ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
-
- // SystemDictionary::methods_do(fix_invoke_method);
-
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
@@ -564,8 +571,8 @@ void VM_EnhancedRedefineClasses::doit() {
InstanceKlass* old = InstanceKlass::cast(cur->old_version());
// Swap marks to have same hashcodes
- markOop cur_mark = cur->prototype_header();
- markOop old_mark = old->prototype_header();
+ markWord cur_mark = cur->prototype_header();
+ markWord old_mark = old->prototype_header();
cur->set_prototype_header(old_mark);
old->set_prototype_header(cur_mark);
@@ -579,14 +586,14 @@ void VM_EnhancedRedefineClasses::doit() {
// Revert pool holder for old version of klass (it was updated by one of ours closure!)
old->constants()->set_pool_holder(old);
- Klass* array_klasses = old->array_klasses();
+ ObjArrayKlass* array_klasses = old->array_klasses();
if (array_klasses != NULL) {
assert(cur->array_klasses() == NULL, "just checking");
// Transfer the array classes, otherwise we might get cast exceptions when casting array types.
// Also, set array klasses element klass.
cur->set_array_klasses(array_klasses);
- ObjArrayKlass::cast(array_klasses)->set_element_klass(cur);
+ array_klasses->set_element_klass(cur);
java_lang_Class::release_set_array_klass(cur->java_mirror(), array_klasses);
java_lang_Class::set_component_mirror(array_klasses->java_mirror(), cur->java_mirror());
}
@@ -641,11 +648,15 @@ void VM_EnhancedRedefineClasses::doit() {
//ClassLoaderDataGraph::classes_do(&clean_weak_method_links);
// Disable any dependent concurrent compilations
- SystemDictionary::notice_modification();
+ // SystemDictionary::notice_modification();
+
+ JvmtiExport::increment_redefinition_count();
// Set flag indicating that some invariants are no longer true.
// See jvmtiExport.hpp for detailed explanation.
- JvmtiExport::set_has_redefined_a_class();
+
+ // dcevm15: handled by _redefinition_count
+ // JvmtiExport::set_has_redefined_a_class();
#ifdef PRODUCT
if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
@@ -718,7 +729,7 @@ bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
}
// Cannot redefine or retransform an anonymous class.
- if (InstanceKlass::cast(k)->is_anonymous()) {
+ if (InstanceKlass::cast(k)->is_unsafe_anonymous()) {
return false;
}
return true;
@@ -804,22 +815,30 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
InstanceKlass* k;
- if (InstanceKlass::cast(the_class)->is_anonymous()) {
- const InstanceKlass* host_class = the_class->host_klass();
+ if (InstanceKlass::cast(the_class)->is_unsafe_anonymous()) {
+ const InstanceKlass* host_class = the_class->unsafe_anonymous_host();
// Make sure it's the real host class, not another anonymous class.
- while (host_class != NULL && host_class->is_anonymous()) {
- host_class = host_class->host_klass();
+ while (host_class != NULL && host_class->is_unsafe_anonymous()) {
+ host_class = host_class->unsafe_anonymous_host();
}
+ ClassLoadInfo cl_info(protection_domain,
+ host_class,
+ NULL, // dynamic_nest_host
+ NULL, // cp_patches
+ Handle(), // classData
+ false, // is_hidden
+ false, // is_strong_hidden
+ true); // FIXME: check if correct. can_access_vm_annotations
+
k = SystemDictionary::parse_stream(the_class_sym,
the_class_loader,
- protection_domain,
&st,
- host_class,
+ cl_info,
the_class,
- NULL,
THREAD);
+
k->class_loader_data()->exchange_holders(the_class->class_loader_data());
the_class->class_loader_data()->inc_keep_alive();
} else {
@@ -966,7 +985,7 @@ int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_
// Check interfaces
// Interfaces removed?
- Array<Klass*>* old_interfaces = the_class->transitive_interfaces();
+ Array<InstanceKlass*>* old_interfaces = the_class->transitive_interfaces();
for (i = 0; i < old_interfaces->length(); i++) {
InstanceKlass* old_interface = InstanceKlass::cast(old_interfaces->at(i));
if (!new_class->implements_interface_any_version(old_interface)) {
@@ -976,7 +995,7 @@ int VM_EnhancedRedefineClasses::calculate_redefinition_flags(InstanceKlass* new_
}
// Interfaces added?
- Array<Klass*>* new_interfaces = new_class->transitive_interfaces();
+ Array<InstanceKlass*>* new_interfaces = new_class->transitive_interfaces();
for (i = 0; i<new_interfaces->length(); i++) {
if (!the_class->implements_interface_any_version(new_interfaces->at(i))) {
result = result | Klass::ModifyClass;
@@ -1389,8 +1408,8 @@ void VM_EnhancedRedefineClasses::rollback() {
// Rewrite faster byte-codes back to their slower equivalent. Undoes rewriting happening in templateTable_xxx.cpp
// The reason is that once we zero cpool caches, we need to re-resolve all entries again. Faster bytecodes do not
// do that, they assume that cache entry is resolved already.
-void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method) {
- RawBytecodeStream bcs(method);
+void VM_EnhancedRedefineClasses::unpatch_bytecode(Method* method, TRAPS) {
+ RawBytecodeStream bcs(methodHandle(THREAD, method));
Bytecodes::Code code;
Bytecodes::Code java_code;
while (!bcs.is_last_bytecode()) {
@@ -1454,11 +1473,11 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
HandleMark hm(_thread);
InstanceKlass *ik = InstanceKlass::cast(k);
- constantPoolHandle other_cp = constantPoolHandle(ik->constants());
+ constantPoolHandle other_cp = constantPoolHandle(_thread, ik->constants());
// Update host klass of anonymous classes (for example, produced by lambdas) to newest version.
- if (ik->is_anonymous() && ik->host_klass()->new_version() != NULL) {
- ik->set_host_klass(InstanceKlass::cast(ik->host_klass()->newest_version()));
+ if (ik->is_unsafe_anonymous() && ik->unsafe_anonymous_host()->new_version() != NULL) {
+ ik->set_unsafe_anonymous_host(InstanceKlass::cast(ik->unsafe_anonymous_host()->newest_version()));
}
// Update implementor if there is only one, in this case implementor() can reference old class
@@ -1492,7 +1511,18 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
// If bytecode rewriting is enabled, we also need to unpatch bytecode to force resolution of zeroed entries
if (RewriteBytecodes) {
- ik->methods_do(unpatch_bytecode);
+ ik->methods_do(unpatch_bytecode, _thread);
+ }
+}
+
+u8 VM_EnhancedRedefineClasses::next_id() {
+ while (true) {
+ u8 id = _id_counter;
+ u8 next_id = id + 1;
+ u8 result = Atomic::cmpxchg(&_id_counter, id, next_id);
+ if (result == id) {
+ return next_id;
+ }
}
}
@@ -1512,31 +1542,8 @@ void VM_EnhancedRedefineClasses::MethodDataCleaner::do_klass(Klass* k) {
}
}
-void VM_EnhancedRedefineClasses::fix_invoke_method(Method* method) {
-
- constantPoolHandle other_cp = constantPoolHandle(method->constants());
-
- for (int i = 0; i < other_cp->length(); i++) {
- if (other_cp->tag_at(i).is_klass()) {
- Klass* klass = other_cp->resolved_klass_at(i);
- if (klass->new_version() != NULL) {
- // Constant pool entry points to redefined class -- update to the new version
- other_cp->klass_at_put(i, klass->newest_version());
- }
- assert(other_cp->resolved_klass_at(i)->new_version() == NULL, "Must be new klass!");
- }
- }
-
- ConstantPoolCache* cp_cache = other_cp->cache();
- if (cp_cache != NULL) {
- cp_cache->clear_entries();
- }
-
-}
-
-
-void VM_EnhancedRedefineClasses::update_jmethod_ids() {
+void VM_EnhancedRedefineClasses::update_jmethod_ids(TRAPS) {
for (int j = 0; j < _matching_methods_length; ++j) {
Method* old_method = _matching_old_methods[j];
jmethodID jmid = old_method->find_jmethod_id_or_null();
@@ -1547,10 +1554,10 @@ void VM_EnhancedRedefineClasses::update_jmethod_ids() {
if (jmid != NULL) {
// There is a jmethodID, change it to point to the new method
- methodHandle new_method_h(_matching_new_methods[j]);
+ methodHandle new_method_h(THREAD, _matching_new_methods[j]);
if (old_method->new_version() == NULL) {
- methodHandle old_method_h(_matching_old_methods[j]);
+ methodHandle old_method_h(THREAD, _matching_old_methods[j]);
jmethodID new_jmethod_id = Method::make_jmethod_id(old_method_h->method_holder()->class_loader_data(), old_method_h());
bool result = InstanceKlass::cast(old_method_h->method_holder())->update_jmethod_id(old_method_h(), new_jmethod_id);
} else {
@@ -1887,7 +1894,7 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
// track number of methods that are EMCP for add_previous_version() call below
check_methods_and_mark_as_obsolete();
- update_jmethod_ids();
+ update_jmethod_ids(THREAD);
_any_class_has_resolved_methods = the_class->has_resolved_methods() || _any_class_has_resolved_methods;
@@ -2119,12 +2126,12 @@ jvmtiError VM_EnhancedRedefineClasses::do_topological_class_sorting(TRAPS) {
Handle protection_domain(THREAD, klass->protection_domain());
+ ClassLoadInfo cl_info(protection_domain);
+
ClassFileParser parser(&st,
klass->name(),
klass->class_loader_data(),
- protection_domain,
- NULL, // host_klass
- NULL, // cp_patches
+ &cl_info,
ClassFileParser::INTERNAL, // publicity level
true,
THREAD);
@@ -2134,7 +2141,7 @@ jvmtiError VM_EnhancedRedefineClasses::do_topological_class_sorting(TRAPS) {
links.append(KlassPair(super_klass, klass));
}
- Array<Klass*>* local_interfaces = parser.local_interfaces();
+ Array<InstanceKlass*>* local_interfaces = parser.local_interfaces();
for (int j = 0; j < local_interfaces->length(); j++) {
Klass* iface = local_interfaces->at(j);
if (iface != NULL && _affected_klasses->contains(iface)) {
@@ -2157,7 +2164,7 @@ jvmtiError VM_EnhancedRedefineClasses::do_topological_class_sorting(TRAPS) {
links.append(KlassPair(super_klass, klass));
}
- Array<Klass*>* local_interfaces = klass->local_interfaces();
+ Array<InstanceKlass*>* local_interfaces = klass->local_interfaces();
for (int j = 0; j < local_interfaces->length(); j++) {
Klass* interfaceKlass = local_interfaces->at(j);
if (_affected_klasses->contains(interfaceKlass)) {
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 4c0412d343d..0066088b3b0 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -32,7 +32,7 @@
#include "memory/resourceArea.hpp"
#include "oops/objArrayKlass.hpp"
#include "oops/objArrayOop.hpp"
-#include "gc/shared/vmGCOperations.hpp"
+#include "gc/shared/gcVMOperations.hpp"
#include "../../../java.base/unix/native/include/jni_md.h"
//
@@ -59,6 +59,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
static int _deleted_methods_length;
static int _added_methods_length;
static Klass* _the_class_oop;
+ static u8 _id_counter;
// The instance fields are used to pass information from
// doit_prologue() to doit() and doit_epilogue().
@@ -91,6 +92,9 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
elapsedTimer _timer_heap_iterate;
elapsedTimer _timer_heap_full_gc;
+ // Redefinition id used by JFR
+ u8 _id;
+
// These routines are roughly in call order unless otherwise noted.
// Load and link new classes (either redefined or affected by redefinition - subclass, ...)
@@ -118,15 +122,14 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
static void mark_as_scavengable(nmethod* nm);
static void unregister_nmethod_g1(nmethod* nm);
static void register_nmethod_g1(nmethod* nm);
- static void unpatch_bytecode(Method* method);
- static void fix_invoke_method(Method* method);
+ static void unpatch_bytecode(Method* method, TRAPS);
// Figure out which new methods match old methods in name and signature,
// which methods have been added, and which are no longer present
void compute_added_deleted_matching_methods();
// Change jmethodIDs to point to the new methods
- void update_jmethod_ids();
+ void update_jmethod_ids(TRAPS);
// marking methods as old and/or obsolete
void check_methods_and_mark_as_obsolete();
@@ -141,6 +144,8 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void flush_dependent_code(InstanceKlass* k_h, TRAPS);
+ u8 next_id();
+
static void check_class(InstanceKlass* k_oop, TRAPS);
static void dump_methods();
@@ -181,6 +186,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
bool allow_nested_vm_operations() const { return true; }
jvmtiError check_error() { return _res; }
+ u8 id() { return _id; }
// Modifiable test must be shared between IsModifiableClass query
// and redefine implementation
diff --git a/src/hotspot/share/prims/jvmtiEnv.cpp b/src/hotspot/share/prims/jvmtiEnv.cpp
index b6838ac034d..fba0f48abd7 100644
--- a/src/hotspot/share/prims/jvmtiEnv.cpp
+++ b/src/hotspot/share/prims/jvmtiEnv.cpp
@@ -456,20 +456,23 @@ JvmtiEnv::RetransformClasses(jint class_count, const jclass* classes) {
EventRetransformClasses event;
jvmtiError error;
+ u8 op_id;
if (AllowEnhancedClassRedefinition) {
MutexLocker sd_mutex(EnhancedRedefineClasses_lock);
VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_retransform);
VMThread::execute(&op);
+ op_id = op.id();
error = (op.check_error());
} else {
VM_RedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_retransform);
VMThread::execute(&op);
+ op_id = op.id();
error = op.check_error();
}
if (error == JVMTI_ERROR_NONE) {
event.set_classCount(class_count);
- event.set_redefinitionId(op.id());
+ event.set_redefinitionId(op_id);
event.commit();
}
return error;
@@ -484,19 +487,23 @@ JvmtiEnv::RedefineClasses(jint class_count, const jvmtiClassDefinition* class_de
EventRedefineClasses event;
jvmtiError error;
+ u8 op_id;
+
if (AllowEnhancedClassRedefinition) {
MutexLocker sd_mutex(EnhancedRedefineClasses_lock);
VM_EnhancedRedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
VMThread::execute(&op);
+ op_id = op.id();
error = (op.check_error());
} else {
VM_RedefineClasses op(class_count, class_definitions, jvmti_class_load_kind_redefine);
VMThread::execute(&op);
+ op_id = op.id();
error = op.check_error();
}
if (error == JVMTI_ERROR_NONE) {
event.set_classCount(class_count);
- event.set_redefinitionId(op.id());
+ event.set_redefinitionId(op_id);
event.commit();
}
return error;
diff --git a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
index a7840848e10..346eac7c431 100644
--- a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
@@ -1271,6 +1271,7 @@ jvmtiError VM_RedefineClasses::load_new_class_versions(TRAPS) {
the_class_loader,
&st,
cl_info,
+ NULL,
THREAD);
// Clear class_being_redefined just to be sure.
state->clear_class_being_redefined();
diff --git a/src/hotspot/share/prims/methodHandles.hpp b/src/hotspot/share/prims/methodHandles.hpp
index 54f36202a5f..917d31efd77 100644
--- a/src/hotspot/share/prims/methodHandles.hpp
+++ b/src/hotspot/share/prims/methodHandles.hpp
@@ -180,6 +180,9 @@ public:
assert(ref_kind_is_valid(ref_kind), "");
return (ref_kind & 1) != 0;
}
+ static bool ref_kind_is_static(int ref_kind) {
+ return !ref_kind_has_receiver(ref_kind) && (ref_kind != JVM_REF_newInvokeSpecial);
+ }
static int ref_kind_to_flags(int ref_kind);
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index d05a2893498..3a92b8869dc 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -2128,13 +2128,15 @@ bool Arguments::check_gc_consistency() {
// of collectors.
uint i = 0;
if (UseSerialGC) i++;
- if (UseConcMarkSweepGC) i++;
- if (UseParallelGC || UseParallelOldGC) i++;
+ if (UseParallelGC) i++;
if (UseG1GC) i++;
+ if (UseEpsilonGC) i++;
+ if (UseZGC) i++;
+ if (UseShenandoahGC) i++;
if (AllowEnhancedClassRedefinition) {
// Must use serial GC. This limitation applies because the instance size changing GC modifications
// are only built into the mark and compact algorithm.
- if ((!UseSerialGC && !UseG1GC) && i >= 1) {
+ if (!UseSerialGC && !UseG1GC && i >= 1) {
jio_fprintf(defaultStream::error_stream(),
"Must use the Serial or G1 GC with enhanced class redefinition.\n");
return false;
@@ -4494,18 +4496,18 @@ void Arguments::setup_hotswap_agent() {
// TODO: open it only for org.hotswap.agent module
// Use to access java.lang.reflect.Proxy/proxyCache
- create_numbered_property("jdk.module.addopens", "java.base/java.lang=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.base/java.lang=ALL-UNNAMED", addopens_count++);
// Class of field java.lang.reflect.Proxy/proxyCache
- create_numbered_property("jdk.module.addopens", "java.base/jdk.internal.loader=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.base/jdk.internal.loader=ALL-UNNAMED", addopens_count++);
// Use to access java.io.Reader, java.io.InputStream, java.io.FileInputStream
- create_numbered_property("jdk.module.addopens", "java.base/java.io=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.base/java.io=ALL-UNNAMED", addopens_count++);
// java.beans.Introspector access
- create_numbered_property("jdk.module.addopens", "java.desktop/java.beans=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/java.beans=ALL-UNNAMED", addopens_count++);
// java.beans.Introspector access
- create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/com.sun.beans=ALL-UNNAMED", addopens_count++);
// com.sun.beans.introspect.ClassInfo access
- create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans.introspect=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/com.sun.beans.introspect=ALL-UNNAMED", addopens_count++);
// com.sun.beans.introspect.util.Cache access
- create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans.util=ALL-UNNAMED", addopens_count++);
+ create_numbered_module_property("jdk.module.addopens", "java.desktop/com.sun.beans.util=ALL-UNNAMED", addopens_count++);
}
diff --git a/src/hotspot/share/runtime/mutexLocker.cpp b/src/hotspot/share/runtime/mutexLocker.cpp
index 6f982072909..14a3ed730fe 100644
--- a/src/hotspot/share/runtime/mutexLocker.cpp
+++ b/src/hotspot/share/runtime/mutexLocker.cpp
@@ -287,7 +287,7 @@ void mutex_init() {
def(InitCompleted_lock , PaddedMonitor, leaf, true, _safepoint_check_never);
def(VtableStubs_lock , PaddedMutex , nonleaf, true, _safepoint_check_never);
def(Notify_lock , PaddedMonitor, nonleaf, true, _safepoint_check_always);
- def(EnhancedRedefineClasses_lock , PaddedMutex , nonleaf+7, false, Monitor::_safepoint_check_always); // for ensuring that class redefinition is not done in parallel
+ def(EnhancedRedefineClasses_lock , PaddedMutex , nonleaf+7, false, _safepoint_check_always); // for ensuring that class redefinition is not done in parallel
def(JNICritical_lock , PaddedMonitor, nonleaf, true, _safepoint_check_always); // used for JNI critical regions
def(AdapterHandlerLibrary_lock , PaddedMutex , nonleaf, true, _safepoint_check_always);
--
2.23.0

View File

@@ -1,25 +0,0 @@
From 336cab4f72c6e642e3077ea8d1a4860de33f5a4d Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 17 Nov 2020 17:40:24 +0100
Subject: [PATCH 20/34] dcevm15 - G1 fixes
---
src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
index 2f06b9617e4..476728a5d26 100644
--- a/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
+++ b/src/hotspot/share/gc/g1/g1FullGCPrepareTask.cpp
@@ -240,7 +240,7 @@ void G1FullGCPrepareTask::prepare_serial_compaction_dcevm() {
// collect remaining, not forwarded rescued oops using serial compact point
while (cp->last_rescued_oop() < cp->rescued_oops()->length()) {
- HeapRegion* hr = G1CollectedHeap::heap()->new_region(HeapRegion::GrainBytes / HeapWordSize, false, true);
+ HeapRegion* hr = G1CollectedHeap::heap()->new_region(HeapRegion::GrainBytes / HeapWordSize, HeapRegionType::Eden, true, G1NUMA::AnyNodeIndex);
if (hr == NULL) {
vm_exit_out_of_memory(0, OOM_MMAP_ERROR, "G1 - not enough of free regions after redefinition.");
}
--
2.23.0

View File

@@ -1,133 +0,0 @@
From cea4e2cca3c37233c728be7235f8f9d8be136cb5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Tue, 17 Nov 2020 18:52:57 +0100
Subject: [PATCH 21/34] dcevm15 - Fix flush dependent code
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 57 +++++++------------
.../prims/jvmtiEnhancedRedefineClasses.hpp | 4 +-
2 files changed, 25 insertions(+), 36 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 619e3988e3a..efaf11e1666 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -508,7 +508,7 @@ void VM_EnhancedRedefineClasses::doit() {
// Deoptimize all compiled code that depends on this class (do only once, because it clears whole cache)
// if (_max_redefinition_flags > Klass::ModifyClass) {
- flush_dependent_code(NULL, thread);
+ flush_dependent_code(thread);
// }
// Adjust constantpool caches for all classes that reference methods of the evolved class.
@@ -647,17 +647,8 @@ void VM_EnhancedRedefineClasses::doit() {
//MethodDataCleaner clean_weak_method_links;
//ClassLoaderDataGraph::classes_do(&clean_weak_method_links);
- // Disable any dependent concurrent compilations
- // SystemDictionary::notice_modification();
-
JvmtiExport::increment_redefinition_count();
- // Set flag indicating that some invariants are no longer true.
- // See jvmtiExport.hpp for detailed explanation.
-
- // dcevm15: handled by _redefinition_count
- // JvmtiExport::set_has_redefined_a_class();
-
#ifdef PRODUCT
if (log_is_enabled(Trace, redefine, class, obsolete, metadata)) {
#endif
@@ -1746,6 +1737,18 @@ void VM_EnhancedRedefineClasses::transfer_old_native_function_registrations(Inst
transfer.transfer_registrations(_matching_old_methods, _matching_methods_length);
}
+// First step is to walk the code cache for each class redefined and mark
+// dependent methods. Wait until all classes are processed to deoptimize everything.
+void VM_EnhancedRedefineClasses::mark_dependent_code(InstanceKlass* ik) {
+ assert_locked_or_safepoint(Compile_lock);
+
+ // All dependencies have been recorded from startup or this is a second or
+ // subsequent use of RedefineClasses
+ if (0 && JvmtiExport::all_dependencies_are_recorded()) {
+ CodeCache::mark_for_evol_deoptimization(ik);
+ }
+}
+
// DCEVM - it always deoptimizes everything! (because it is very difficult to find only correct dependencies)
// Deoptimize all compiled code that depends on this class.
//
@@ -1762,33 +1765,21 @@ void VM_EnhancedRedefineClasses::transfer_old_native_function_registrations(Inst
// subsequent calls to RedefineClasses need only throw away code
// that depends on the class.
//
-void VM_EnhancedRedefineClasses::flush_dependent_code(InstanceKlass* k_h, TRAPS) {
+void VM_EnhancedRedefineClasses::flush_dependent_code(TRAPS) {
assert_locked_or_safepoint(Compile_lock);
// All dependencies have been recorded from startup or this is a second or
// subsequent use of RedefineClasses
// FIXME: for now, deoptimize all!
- if (0 && k_h != NULL && JvmtiExport::all_dependencies_are_recorded()) {
- CodeCache::flush_evol_dependents_on(k_h);
- Klass* superCl = k_h->super();
- // Deoptimize super classes since redefined class can has a new method override
- while (superCl != NULL && !superCl->is_redefining()) {
- CodeCache::flush_evol_dependents_on(InstanceKlass::cast(superCl));
- superCl = superCl->super();
+ if (0 && JvmtiExport::all_dependencies_are_recorded()) {
+ int deopt = CodeCache::mark_dependents_for_evol_deoptimization();
+ log_debug(redefine, class, nmethod)("Marked %d dependent nmethods for deopt", deopt);
+ if (deopt != 0) {
+ CodeCache::flush_evol_dependents();
}
} else {
- CodeCache::mark_all_nmethods_for_deoptimization();
-
- ResourceMark rm(THREAD);
- DeoptimizationMarker dm;
-
- // Deoptimize all activations depending on marked nmethods
- Deoptimization::deoptimize_dependents();
-
- // Make the dependent methods not entrant
- CodeCache::make_marked_nmethods_not_entrant();
-
- // From now on we know that the dependency information is complete
+ CodeCache::mark_all_nmethods_for_evol_deoptimization();
+ CodeCache::flush_evol_dependents();
JvmtiExport::set_all_dependencies_are_recorded(true);
}
}
@@ -1881,11 +1872,7 @@ void VM_EnhancedRedefineClasses::redefine_single_class(InstanceKlass* new_class_
JvmtiBreakpoints& jvmti_breakpoints = JvmtiCurrentBreakpoints::get_jvmti_breakpoints();
jvmti_breakpoints.clearall_in_class_at_safepoint(the_class);
- // DCEVM Deoptimization is always for whole java world, call only once after all classes are redefined
- // Deoptimize all compiled code that depends on this class
-// if (_max_redefinition_flags <= Klass::ModifyClass) {
-// flush_dependent_code(the_class, THREAD);
-// }
+ mark_dependent_code(the_class);
_old_methods = the_class->methods();
_new_methods = new_class->methods();
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 0066088b3b0..bd5e7d153be 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -142,7 +142,9 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
// and in all direct and indirect subclasses.
void increment_class_counter(InstanceKlass *ik, TRAPS);
- void flush_dependent_code(InstanceKlass* k_h, TRAPS);
+ void mark_dependent_code(InstanceKlass* ik);
+
+ void flush_dependent_code(TRAPS);
u8 next_id();
--
2.23.0

View File

@@ -1,211 +0,0 @@
From 4f88dcec830d39452f69d1117729469fdb768a8f Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 12:05:26 +0100
Subject: [PATCH 22/34] dcevm15 - fix ResolvedMethodTable
---
src/hotspot/share/classfile/javaClasses.cpp | 5 -
src/hotspot/share/classfile/javaClasses.hpp | 1 -
.../share/prims/resolvedMethodTable.cpp | 139 +++++++++++-------
3 files changed, 84 insertions(+), 61 deletions(-)
diff --git a/src/hotspot/share/classfile/javaClasses.cpp b/src/hotspot/share/classfile/javaClasses.cpp
index 9b086a241f7..9a627786d0f 100644
--- a/src/hotspot/share/classfile/javaClasses.cpp
+++ b/src/hotspot/share/classfile/javaClasses.cpp
@@ -3996,11 +3996,6 @@ void java_lang_invoke_ResolvedMethodName::set_vmholder(oop resolved_method, oop
resolved_method->obj_field_put(_vmholder_offset, holder);
}
-void java_lang_invoke_ResolvedMethodName::set_vmholder_offset(oop resolved_method, Method* m) {
- assert(is_instance(resolved_method), "wrong type");
- resolved_method->obj_field_put(_vmholder_offset, m->method_holder()->java_mirror());
-}
-
oop java_lang_invoke_ResolvedMethodName::find_resolved_method(const methodHandle& m, TRAPS) {
const Method* method = m();
diff --git a/src/hotspot/share/classfile/javaClasses.hpp b/src/hotspot/share/classfile/javaClasses.hpp
index 9abf2e1d105..8f5993b7225 100644
--- a/src/hotspot/share/classfile/javaClasses.hpp
+++ b/src/hotspot/share/classfile/javaClasses.hpp
@@ -1107,7 +1107,6 @@ class java_lang_invoke_ResolvedMethodName : AllStatic {
static Method* vmtarget(oop resolved_method);
static void set_vmtarget(oop resolved_method, Method* method);
- static void set_vmholder_offset(oop resolved_method, Method* method);
static void set_vmholder(oop resolved_method, oop holder);
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index eb9fcda44f3..d0f1667b967 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -375,6 +375,67 @@ public:
}
};
+class AdjustMethodEntriesDcevm : public StackObj {
+ bool* _trace_name_printed;
+ GrowableArray<oop>* _oops_to_add;
+public:
+ AdjustMethodEntriesDcevm(GrowableArray<oop>* oops_to_add, bool* trace_name_printed) : _trace_name_printed(trace_name_printed), _oops_to_add(oops_to_add) {};
+ bool operator()(WeakHandle<vm_resolved_method_table_data>* entry) {
+ oop mem_name = entry->peek();
+ if (mem_name == NULL) {
+ // Removed
+ return true;
+ }
+
+ Method* old_method = (Method*)java_lang_invoke_ResolvedMethodName::vmtarget(mem_name);
+
+ if (old_method->is_old()) {
+
+ InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
+ Method* newer_method;
+
+ // Method* new_method;
+ if (old_method->is_deleted()) {
+ newer_method = Universe::throw_no_such_method_error();
+ } else {
+ newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
+
+ log_debug(redefine, class, update)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+
+ assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
+ assert(newer_method != NULL, "method_with_idnum() should not be NULL");
+ assert(old_method != newer_method, "sanity check");
+
+ Thread* thread = Thread::current();
+ ResolvedMethodTableLookup lookup(thread, method_hash(newer_method), newer_method);
+ ResolvedMethodGet rmg(thread, newer_method);
+
+ if (_local_table->get(thread, lookup, rmg)) {
+ // old method was already adjusted if new method exists in _the_table
+ return true;
+ }
+ }
+
+ java_lang_invoke_ResolvedMethodName::set_vmtarget(mem_name, newer_method);
+ java_lang_invoke_ResolvedMethodName::set_vmholder(mem_name, newer_method->method_holder()->java_mirror());
+
+ newer_klass->set_has_resolved_methods();
+ _oops_to_add->append(mem_name);
+
+ ResourceMark rm;
+ if (!(*_trace_name_printed)) {
+ log_debug(redefine, class, update)("adjust: name=%s", old_method->method_holder()->external_name());
+ *_trace_name_printed = true;
+ }
+ log_debug(redefine, class, update, constantpool)
+ ("ResolvedMethod method update: %s(%s)",
+ newer_method->name()->as_C_string(), newer_method->signature()->as_C_string());
+ }
+
+ return true;
+ }
+};
+
// It is called at safepoint only for RedefineClasses
void ResolvedMethodTable::adjust_method_entries(bool * trace_name_printed) {
assert(SafepointSynchronize::is_at_safepoint(), "only called at safepoint");
@@ -382,73 +443,41 @@ void ResolvedMethodTable::adjust_method_entries(bool * trace_name_printed) {
AdjustMethodEntries adjust(trace_name_printed);
_local_table->do_safepoint_scan(adjust);
}
-#endif // INCLUDE_JVMTI
-// (DCEVM) It is called at safepoint only for RedefineClasses
+// It is called at safepoint only for RedefineClasses
void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed) {
assert(SafepointSynchronize::is_at_safepoint(), "only called at safepoint");
// For each entry in RMT, change to new method
- GrowableArray<oop>* oops_to_add = new GrowableArray<oop>();
-
- for (int i = 0; i < _the_table->table_size(); ++i) {
- for (ResolvedMethodEntry* entry = _the_table->bucket(i);
- entry != NULL;
- entry = entry->next()) {
-
- oop mem_name = entry->object_no_keepalive();
- // except ones removed
- if (mem_name == NULL) {
- continue;
- }
- Method* old_method = (Method*)java_lang_invoke_ResolvedMethodName::vmtarget(mem_name);
-
- if (old_method->is_old()) {
-
- InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
- Method* newer_method;
-
- // Method* new_method;
- if (old_method->is_deleted()) {
- newer_method = Universe::throw_no_such_method_error();
- } else {
- newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
-
- log_debug(redefine, class, update)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
-
- assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
- assert(newer_method != NULL, "method_with_idnum() should not be NULL");
- assert(old_method != newer_method, "sanity check");
-
- if (_the_table->lookup(newer_method) != NULL) {
- // old method was already adjusted if new method exists in _the_table
- continue;
- }
- }
+ GrowableArray<oop> oops_to_add(0);
+ AdjustMethodEntriesDcevm adjust(&oops_to_add, trace_name_printed);
+ _local_table->do_safepoint_scan(adjust);
+ Thread* thread = Thread::current();
+ for (int i = 0; i < oops_to_add.length(); i++) {
+ oop mem_name = oops_to_add.at(i);
+ Method* method = (Method*)java_lang_invoke_ResolvedMethodName::vmtarget(mem_name);
- java_lang_invoke_ResolvedMethodName::set_vmtarget(mem_name, newer_method);
- java_lang_invoke_ResolvedMethodName::set_vmholder_offset(mem_name, newer_method);
+ // The hash table takes ownership of the WeakHandle, even if it's not inserted.
- newer_klass->set_has_resolved_methods();
- oops_to_add->append(mem_name);
+ ResolvedMethodTableLookup lookup(thread, method_hash(method), method);
+ ResolvedMethodGet rmg(thread, method);
- ResourceMark rm;
- if (!(*trace_name_printed)) {
- log_debug(redefine, class, update)("adjust: name=%s", old_method->method_holder()->external_name());
- *trace_name_printed = true;
- }
- log_debug(redefine, class, update, constantpool)
- ("ResolvedMethod method update: %s(%s)",
- newer_method->name()->as_C_string(), newer_method->signature()->as_C_string());
+ while (true) {
+ if (_local_table->get(thread, lookup, rmg)) {
+ break;
+ }
+ WeakHandle<vm_resolved_method_table_data> wh = WeakHandle<vm_resolved_method_table_data>::create(Handle(thread, mem_name));
+ // The hash table takes ownership of the WeakHandle, even if it's not inserted.
+ if (_local_table->insert(thread, lookup, wh)) {
+ log_insert(method);
+ wh.resolve();
+ break;
}
- }
- for (int i = 0; i < oops_to_add->length(); i++) {
- oop mem_name = oops_to_add->at(i);
- Method* method = (Method*)java_lang_invoke_ResolvedMethodName::vmtarget(mem_name);
- _the_table->basic_add(method, Handle(Thread::current(), mem_name));
}
}
}
+#endif // INCLUDE_JVMTI
+
// Verification
class VerifyResolvedMethod : StackObj {
public:
--
2.23.0

View File

@@ -1,88 +0,0 @@
From 5379e56465d3d3930ec7ea91b1c64db2cdf70170 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 12:05:50 +0100
Subject: [PATCH 23/34] dcevm15 - fix Universe::root_oops_do
---
src/hotspot/share/memory/universe.cpp | 38 +++++++++------------------
1 file changed, 12 insertions(+), 26 deletions(-)
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index f6e4253b5a5..8dad437bd51 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -39,6 +39,7 @@
#include "gc/shared/gcConfig.hpp"
#include "gc/shared/gcLogPrecious.hpp"
#include "gc/shared/gcTraceTime.inline.hpp"
+#include "gc/shared/weakProcessor.hpp"
#include "interpreter/interpreter.hpp"
#include "logging/log.hpp"
#include "logging/logStream.hpp"
@@ -75,6 +76,7 @@
#include "runtime/thread.inline.hpp"
#include "runtime/timerTrace.hpp"
#include "runtime/vmOperations.hpp"
+#include "services/management.hpp"
#include "services/memoryService.hpp"
#include "utilities/align.hpp"
#include "utilities/copy.hpp"
@@ -180,45 +182,29 @@ void Universe::basic_type_classes_do(KlassClosure *closure) {
// FIXME: (DCEVM) This method should iterate all pointers that are not within heap objects.
void Universe::root_oops_do(OopClosure *oopClosure) {
-
- class AlwaysTrueClosure: public BoolObjectClosure {
- public:
- void do_object(oop p) { ShouldNotReachHere(); }
- bool do_object_b(oop p) { return true; }
- };
- AlwaysTrueClosure always_true;
-
Universe::oops_do(oopClosure);
// ReferenceProcessor::oops_do(oopClosure); (tw) check why no longer there
JNIHandles::oops_do(oopClosure); // Global (strong) JNI handles
Threads::oops_do(oopClosure, NULL);
ObjectSynchronizer::oops_do(oopClosure);
- // TODO: review, flat profiler was removed in j10
- // FlatProfiler::oops_do(oopClosure);
- JvmtiExport::oops_do(oopClosure);
+ // (DCEVM) TODO: Check if this is correct?
+ Management::oops_do(oopClosure);
+ OopStorageSet::vm_global()->oops_do(oopClosure);
+ CLDToOopClosure cld_closure(oopClosure, ClassLoaderData::_claim_none);
+ ClassLoaderDataGraph::cld_do(&cld_closure);
// Now adjust pointers in remaining weak roots. (All of which should
// have been cleared if they pointed to non-surviving objects.)
// Global (weak) JNI handles
- JNIHandles::weak_oops_do(&always_true, oopClosure);
+ WeakProcessor::oops_do(oopClosure);
CodeBlobToOopClosure blobClosure(oopClosure, CodeBlobToOopClosure::FixRelocations);
CodeCache::blobs_do(&blobClosure);
- StringTable::oops_do(oopClosure);
+ AOT_ONLY(AOTLoader::oops_do(oopClosure);)
+ // StringTable::oops_do was removed in j15
+ // StringTable::oops_do(oopClosure);
- // (DCEVM) TODO: Check if this is correct?
- //CodeCache::scavenge_root_nmethods_oops_do(oopClosure);
- //Management::oops_do(oopClosure);
- //ref_processor()->weak_oops_do(&oopClosure);
- //PSScavenge::reference_processor()->weak_oops_do(&oopClosure);
-
-#if INCLUDE_AOT
- if (UseAOT) {
- AOTLoader::oops_do(oopClosure);
- }
-#endif
- // SO_AllClasses
- SystemDictionary::oops_do(oopClosure);
+ // PSScavenge::reference_processor()->weak_oops_do(oopClosure);
}
void Universe::oops_do(OopClosure* f) {
--
2.23.0

View File

@@ -1,67 +0,0 @@
From c6ea68e66d37d70739f7b0ee74131322b4526a68 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 12:03:32 +0100
Subject: [PATCH 24/34] Cleanup dcevm comments
---
src/hotspot/share/classfile/classLoaderDataGraph.hpp | 2 +-
src/hotspot/share/classfile/systemDictionary.hpp | 2 +-
src/hotspot/share/gc/shared/gcConfig.cpp | 2 +-
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderDataGraph.hpp b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
index f380aa3fa34..8ce94cccb47 100644
--- a/src/hotspot/share/classfile/classLoaderDataGraph.hpp
+++ b/src/hotspot/share/classfile/classLoaderDataGraph.hpp
@@ -104,7 +104,7 @@ class ClassLoaderDataGraph : public AllStatic {
static void dictionary_classes_do(KlassClosure* klass_closure);
- // Enhanced class redefinition
+ // (DCEVM) Enhanced class redefinition
static void rollback_redefinition();
// VM_CounterDecay iteration support
diff --git a/src/hotspot/share/classfile/systemDictionary.hpp b/src/hotspot/share/classfile/systemDictionary.hpp
index 931e655d631..1019dbd0d04 100644
--- a/src/hotspot/share/classfile/systemDictionary.hpp
+++ b/src/hotspot/share/classfile/systemDictionary.hpp
@@ -455,7 +455,7 @@ public:
static bool is_well_known_klass(Symbol* class_name);
#endif
- // Enhanced class redefinition
+ // (DCEVM) Enhanced class redefinition
static void remove_from_hierarchy(InstanceKlass* k);
static void update_constraints_after_redefinition();
diff --git a/src/hotspot/share/gc/shared/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp
index 5c1a09390f1..23fbf715378 100644
--- a/src/hotspot/share/gc/shared/gcConfig.cpp
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp
@@ -99,7 +99,7 @@ void GCConfig::fail_if_non_included_gc_is_selected() {
void GCConfig::select_gc_ergonomically() {
if (AllowEnhancedClassRedefinition && !UseG1GC) {
- // Enhanced class redefinition only supports serial GC at the moment
+ // (DCEVM) Enhanced class redefinition only supports serial GC at the moment
FLAG_SET_ERGO(UseSerialGC, true);
} else if (os::is_server_class_machine()) {
#if INCLUDE_G1GC
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index bd5e7d153be..5de375fb888 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -78,7 +78,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
// have any entries.
bool _any_class_has_resolved_methods;
- // Enhanced class redefinition, affected klasses contain all classes which should be redefined
+ // (DCEVM) Enhanced class redefinition, affected klasses contain all classes which should be redefined
// either because of redefine, class hierarchy or interface change
GrowableArray<Klass*>* _affected_klasses;
--
2.23.0

View File

@@ -1,43 +0,0 @@
From 507d97966c7145d0ae2533459cc504c7b0d6d5b6 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 18:49:05 +0100
Subject: [PATCH 25/34] Fix cpCache in not AllowEnhancedClassRedefinition mode
---
src/hotspot/share/oops/cpCache.hpp | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/oops/cpCache.hpp b/src/hotspot/share/oops/cpCache.hpp
index 121a13b1dda..64dcf6223f5 100644
--- a/src/hotspot/share/oops/cpCache.hpp
+++ b/src/hotspot/share/oops/cpCache.hpp
@@ -148,13 +148,13 @@ class ConstantPoolCacheEntry {
void set_bytecode_2(Bytecodes::Code code);
void set_f1(Metadata* f1) {
Metadata* existing_f1 = _f1; // read once
- //assert(existing_f1 == NULL || existing_f1 == f1, "illegal field change");
+ assert(AllowEnhancedClassRedefinition || existing_f1 == NULL || existing_f1 == f1, "illegal field change");
_f1 = f1;
}
void release_set_f1(Metadata* f1);
void set_f2(intx f2) {
intx existing_f2 = _f2; // read once
- //assert(existing_f2 == 0 || existing_f2 == f2, "illegal field change");
+ assert(AllowEnhancedClassRedefinition || existing_f2 == 0 || existing_f2 == f2, "illegal field change");
_f2 = f2;
}
void set_f2_as_vfinal_method(Method* f2) {
@@ -215,7 +215,9 @@ class ConstantPoolCacheEntry {
void initialize_resolved_reference_index(int ref_index) {
assert(_f2 == 0, "set once"); // note: ref_index might be zero also
_f2 = ref_index;
- _flags = 1 << is_resolved_ref_shift;
+ if (AllowEnhancedClassRedefinition) {
+ _flags = 1 << is_resolved_ref_shift;
+ }
}
void set_field( // sets entry to resolved field state
--
2.23.0

View File

@@ -1,32 +0,0 @@
From b516b615c20fafa2094dfb9f4cb08245b26418d0 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 22 Nov 2020 19:51:46 +0100
Subject: [PATCH 26/34] dcevm15 - add ClassLoaderDataGraph_lock on
ClassLoaderDataGraph::classes_do
ClassLoaderDataGraph::classes_do need safepoint or lock,
find_sorted_affected_classes is not in safepoint therefore it must be
locked
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index efaf11e1666..197e1c0029f 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -2063,7 +2063,10 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
AffectedKlassClosure closure(_affected_klasses);
// Updated in j10, from original SystemDictionary::classes_do
- ClassLoaderDataGraph::classes_do(&closure);
+ {
+ MutexLocker mcld(ClassLoaderDataGraph_lock);
+ ClassLoaderDataGraph::classes_do(&closure);
+ }
//ClassLoaderDataGraph::dictionary_classes_do(&closure);
log_trace(redefine, class, load)("%d classes affected", _affected_klasses->length());
--
2.23.0

View File

@@ -1,29 +0,0 @@
From c6498946006879314bdc6218ee72da5d9c88f237 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 28 Nov 2020 19:29:42 +0100
Subject: [PATCH 27/34] dcevm15 - check if has_nestmate_access_to has newest
host class
---
src/hotspot/share/oops/instanceKlass.cpp | 5 +++++
1 file changed, 5 insertions(+)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 5e40d78a87e..1d9623f2446 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -445,6 +445,11 @@ bool InstanceKlass::has_nestmate_access_to(InstanceKlass* k, TRAPS) {
return false;
}
+ if (AllowEnhancedClassRedefinition) {
+ // TODO: (DCEVM) check if it correct. It fix problems with lambdas (hidden)
+ cur_host = InstanceKlass::cast(cur_host->newest_version());
+ }
+
Klass* k_nest_host = k->nest_host(CHECK_false);
if (k_nest_host == NULL) {
return false;
--
2.23.0

View File

@@ -1,24 +0,0 @@
From 86c27155386c1c40642c99c63a242d1f5d8601a5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sat, 28 Nov 2020 19:31:08 +0100
Subject: [PATCH 28/34] Remove unused fieldType
---
src/hotspot/share/classfile/vmSymbols.hpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/hotspot/share/classfile/vmSymbols.hpp b/src/hotspot/share/classfile/vmSymbols.hpp
index 6a3b234b222..eb06684a288 100644
--- a/src/hotspot/share/classfile/vmSymbols.hpp
+++ b/src/hotspot/share/classfile/vmSymbols.hpp
@@ -465,7 +465,6 @@
template(static_offset_name, "staticOffset") \
template(static_base_name, "staticBase") \
template(field_offset_name, "fieldOffset") \
- template(field_type_name, "fieldType") \
\
/* name symbols needed by intrinsics */ \
\
--
2.23.0

View File

@@ -1,54 +0,0 @@
From 025d0d2903963fb79f83cf0d90418783d3ef6813 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 17:18:16 +0100
Subject: [PATCH 29/34] mark_as_scavengable only alive methods
---
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 14 ++++++++------
1 file changed, 8 insertions(+), 6 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 197e1c0029f..e00fac1f693 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -223,19 +223,21 @@ class FieldCopier : public FieldClosure {
// TODO: review...
void VM_EnhancedRedefineClasses::mark_as_scavengable(nmethod* nm) {
- ScavengableNMethods::register_nmethod(nm);
+ if (nm->is_alive()) {
+ ScavengableNMethods::register_nmethod(nm);
+ }
}
void VM_EnhancedRedefineClasses::unregister_nmethod_g1(nmethod* nm) {
// It should work not only for G1 but also for another GCs, but this way is safer now
- if (!nm->is_zombie() && !nm->is_unloaded()) {
+ if (nm->is_alive()) {
Universe::heap()->unregister_nmethod(nm);
}
}
void VM_EnhancedRedefineClasses::register_nmethod_g1(nmethod* nm) {
// It should work not only for G1 but also for another GCs, but this way is safer now
- if (!nm->is_zombie() && !nm->is_unloaded()) {
+ if (nm->is_alive()) {
Universe::heap()->register_nmethod(nm);
}
}
@@ -511,9 +513,9 @@ void VM_EnhancedRedefineClasses::doit() {
flush_dependent_code(thread);
// }
- // Adjust constantpool caches for all classes that reference methods of the evolved class.
- ClearCpoolCacheAndUnpatch clear_cpool_cache(thread);
- ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
+ // Adjust constantpool caches for all classes that reference methods of the evolved class.
+ ClearCpoolCacheAndUnpatch clear_cpool_cache(thread);
+ ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
// JSR-292 support
if (_any_class_has_resolved_methods) {
--
2.23.0

View File

@@ -1,28 +0,0 @@
From 27aabfefe7d799545049bb81ba19d4ed2ff6379c Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 17:20:11 +0100
Subject: [PATCH 30/34] dcevm15 - lock on
ClassLoaderDataGraph::rollback_redefinition
rollback is not in safepoint, therefore must be locked
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index e00fac1f693..db5fb1c472b 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -1382,7 +1382,9 @@ void VM_EnhancedRedefineClasses::calculate_instance_update_information(Klass* ne
// Rollback all changes - clear new classes from the system dictionary, return old classes to directory, free memory.
void VM_EnhancedRedefineClasses::rollback() {
log_info(redefine, class, load)("Rolling back redefinition, result=%d", _res);
+ ClassLoaderDataGraph_lock->lock();
ClassLoaderDataGraph::rollback_redefinition();
+ ClassLoaderDataGraph_lock->unlock();
for (int i = 0; i < _new_classes->length(); i++) {
SystemDictionary::remove_from_hierarchy(_new_classes->at(i));
--
2.23.0

View File

@@ -1,28 +0,0 @@
From 9b405cb642d5935c39c8dbd522ea2fdecfc29ef3 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 19:59:50 +0100
Subject: [PATCH 31/34] ResourceMark in G1IterateObjectClosureTask fixing
memory leaks
G1IterateObjectClosureTask is used only in redefinition full GC run
---
src/hotspot/share/gc/g1/g1CollectedHeap.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
index a29d2dddc2d..2af6df6c1e4 100644
--- a/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
+++ b/src/hotspot/share/gc/g1/g1CollectedHeap.cpp
@@ -2362,6 +2362,9 @@ class G1IterateObjectClosureTask : public AbstractGangTask {
_cl(cl), _g1h(g1h), _hrclaimer(g1h->workers()->active_workers()) { }
virtual void work(uint worker_id) {
+ Thread *thread = Thread::current();
+ HandleMark hm(thread); // make sure any handles created are deleted
+ ResourceMark rm(thread);
IterateObjectClosureRegionClosure blk(_cl);
_g1h->heap_region_par_iterate_from_worker_offset(&blk, &_hrclaimer, worker_id);
}
--
2.23.0

View File

@@ -1,91 +0,0 @@
From 40fe40884d4efc50864bb3f2dd88f0a2e7122d5a Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 20:05:03 +0100
Subject: [PATCH 32/34] dcevm15 - fix hidded classes
---
.../prims/jvmtiEnhancedRedefineClasses.cpp | 41 ++++++++++++++-----
1 file changed, 30 insertions(+), 11 deletions(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index db5fb1c472b..590f7fdfafe 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -722,7 +722,8 @@ bool VM_EnhancedRedefineClasses::is_modifiable_class(oop klass_mirror) {
}
// Cannot redefine or retransform an anonymous class.
- if (InstanceKlass::cast(k)->is_unsafe_anonymous()) {
+ // TODO: check if is correct in j15
+ if (InstanceKlass::cast(k)->is_unsafe_anonymous() || InstanceKlass::cast(k)->is_hidden()) {
return false;
}
return true;
@@ -808,21 +809,27 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
InstanceKlass* k;
- if (InstanceKlass::cast(the_class)->is_unsafe_anonymous()) {
- const InstanceKlass* host_class = the_class->unsafe_anonymous_host();
+ if (the_class->is_unsafe_anonymous() || the_class->is_hidden()) {
+ InstanceKlass* dynamic_host_class = NULL;
+ InstanceKlass* unsafe_anonymous_host = NULL;
- // Make sure it's the real host class, not another anonymous class.
- while (host_class != NULL && host_class->is_unsafe_anonymous()) {
- host_class = host_class->unsafe_anonymous_host();
+ if (the_class->is_hidden()) {
+ log_debug(redefine, class, load)("loading hidden class %s", the_class->name()->as_C_string());
+ dynamic_host_class = the_class->nest_host(THREAD);
+ }
+
+ if (the_class->is_unsafe_anonymous()) {
+ log_debug(redefine, class, load)("loading usafe anonymous %s", the_class->name()->as_C_string());
+ unsafe_anonymous_host = the_class->unsafe_anonymous_host();
}
ClassLoadInfo cl_info(protection_domain,
- host_class,
- NULL, // dynamic_nest_host
+ unsafe_anonymous_host,
NULL, // cp_patches
+ dynamic_host_class, // dynamic_nest_host
Handle(), // classData
- false, // is_hidden
- false, // is_strong_hidden
+ the_class->is_hidden(), // is_hidden
+ !the_class->is_non_strong_hidden(), // is_strong_hidden
true); // FIXME: check if correct. can_access_vm_annotations
k = SystemDictionary::parse_stream(the_class_sym,
@@ -833,7 +840,17 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
THREAD);
k->class_loader_data()->exchange_holders(the_class->class_loader_data());
- the_class->class_loader_data()->inc_keep_alive();
+
+ if (the_class->is_hidden()) {
+ // from jvm_lookup_define_class() (jvm.cpp):
+ // The hidden class loader data has been artificially been kept alive to
+ // this point. The mirror and any instances of this class have to keep
+ // it alive afterwards.
+ the_class->class_loader_data()->dec_keep_alive();
+ } else {
+ the_class->class_loader_data()->inc_keep_alive();
+ }
+
} else {
k = SystemDictionary::resolve_from_stream(the_class_sym,
the_class_loader,
@@ -1475,6 +1492,8 @@ void VM_EnhancedRedefineClasses::ClearCpoolCacheAndUnpatch::do_klass(Klass* k) {
ik->set_unsafe_anonymous_host(InstanceKlass::cast(ik->unsafe_anonymous_host()->newest_version()));
}
+ // FIXME: check new nest_host for hidden
+
// Update implementor if there is only one, in this case implementor() can reference old class
if (ik->is_interface()) {
Klass* implKlass = ik->implementor();
--
2.23.0

View File

@@ -1,27 +0,0 @@
From 29920b076b4ad96d85adbce0a1d947e5022ba3ad Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 20:08:57 +0100
Subject: [PATCH 33/34] dcevm15 - DON'T clear F2 in CP cache after indy
unevolving
It's not clear why it was cleared in dcevm7-11
---
src/hotspot/share/oops/cpCache.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/oops/cpCache.cpp b/src/hotspot/share/oops/cpCache.cpp
index 79a38dbeff0..650e6fab42d 100644
--- a/src/hotspot/share/oops/cpCache.cpp
+++ b/src/hotspot/share/oops/cpCache.cpp
@@ -650,7 +650,7 @@ void ConstantPoolCacheEntry::clear_entry() {
if (clearData) {
if (!is_resolved_reference()) {
- _f2 = 0;
+ // _f2 = 0;
}
// FIXME: (DCEVM) we want to clear flags, but parameter size is actually used
// after we return from the method, before entry is re-initialized. So let's
--
2.23.0

View File

@@ -1,49 +0,0 @@
From 1f13b20ab5553182680045b7d7324ff92da7e7f0 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Sun, 29 Nov 2020 21:28:06 +0100
Subject: [PATCH 34/34] dcevm15 - fix Universe::root_oops_do
Removed ClassLoaderDataGraph::cld_do was cause of crashes due multiple
oop patching. ClassLoaderDataGraph::cld_do replaced in dcevm15
previously used and removed SystemDictionary:oops_do
---
src/hotspot/share/memory/universe.cpp | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index 8dad437bd51..0199962a684 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -190,21 +190,26 @@ void Universe::root_oops_do(OopClosure *oopClosure) {
// (DCEVM) TODO: Check if this is correct?
Management::oops_do(oopClosure);
OopStorageSet::vm_global()->oops_do(oopClosure);
- CLDToOopClosure cld_closure(oopClosure, ClassLoaderData::_claim_none);
- ClassLoaderDataGraph::cld_do(&cld_closure);
+ // CLDToOopClosure cld_closure(oopClosure, ClassLoaderData::_claim_none);
+ // ClassLoaderDataGraph::cld_do(&cld_closure);
// Now adjust pointers in remaining weak roots. (All of which should
// have been cleared if they pointed to non-surviving objects.)
// Global (weak) JNI handles
WeakProcessor::oops_do(oopClosure);
+ JvmtiExport::oops_do(oopClosure);
+
CodeBlobToOopClosure blobClosure(oopClosure, CodeBlobToOopClosure::FixRelocations);
CodeCache::blobs_do(&blobClosure);
+
AOT_ONLY(AOTLoader::oops_do(oopClosure);)
+
// StringTable::oops_do was removed in j15
// StringTable::oops_do(oopClosure);
- // PSScavenge::reference_processor()->weak_oops_do(oopClosure);
+ // OopStorageSet::vm_global()->oops_do(oopClosure);
+
}
void Universe::oops_do(OopClosure* f) {
--
2.23.0

View File

@@ -1,119 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the release bundles without any additional modules (jcef)
# jcef - the release bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_win_x64
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WORK_DIR=$(pwd)
JCEF_PATH=${JCEF_PATH:=$WORK_DIR/jcef_win_x64}
source jb/project/tools/common/scripts/common.sh
function create_image_bundle {
__bundle_name=$1
__modules_path=$2
__modules=$3
[ -d $__bundle_name ] && rm -rf $__bundle_name
echo Running jlink ...
${JSDK}/bin/jlink \
--module-path $__modules_path --no-man-pages --compress=2 \
--add-modules $__modules --output $__bundle_name || do_exit $?
grep -v "^JAVA_VERSION" "$JSDK"/release | grep -v "^MODULES" >> $__bundle_name/release
if [ "$__bundle_name" == "$JBRSDK_BUNDLE" ]; then
sed 's/JBR/JBRSDK/g' $__bundle_name/release > release
mv release $__bundle_name/release
fi
}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-x86_64-server-release
case "$bundle_type" in
"jcef")
do_reset_changes=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
do_reset_changes=1
;;
"nomod" | "")
bundle_type=""
;;
"fd")
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=windows-x86_64-server-fastdebug
;;
esac
sh ./configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
--with-vendor-version-string="$VENDOR_VERSION_STRING" \
--with-version-pre= \
--with-version-build=$JDK_BUILD_NUMBER \
--with-version-opt=b${build_number} \
--with-toolchain-version=$TOOLCHAIN_VERSION \
--with-boot-jdk=$BOOT_JDK \
--disable-ccache \
--enable-cds=yes || do_exit $?
if [ -z "$bundle_type" ]; then
make LOG=info CONF=$RELEASE_NAME clean images test-image || do_exit $?
else
make LOG=info CONF=$RELEASE_NAME clean images || do_exit $?
fi
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JSDK_MODS_DIR=$IMAGES_DIR/jmods
JBRSDK_BUNDLE=jbrsdk
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
update_jsdk_mods "$JSDK" "$JCEF_PATH"/jmods "$JSDK"/jmods "$JSDK_MODS_DIR" || do_exit $?
cp $JCEF_PATH/jmods/* ${JSDK_MODS_DIR} # $JSDK/jmods is not unchanged
jbr_name_postfix="_${bundle_type}"
fi
# create runtime image bundle
modules=$(xargs < modules.list | sed s/" "//g) || do_exit $?
create_image_bundle "jbr${jbr_name_postfix}" $JSDK_MODS_DIR "$modules" || do_exit $?
# create sdk image bundle
modules=$(cat ${JSDK}/release | grep MODULES | sed s/MODULES=//g | sed s/' '/,/g | sed s/\"//g | sed s/\\r//g | sed s/\\n//g)
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ] || [ "$bundle_type" == "$JBRSDK_BUNDLE" ]; then
modules=${modules},$(get_mods_list "$JCEF_PATH"/jmods)
fi
create_image_bundle "$JBRSDK_BUNDLE" "$JSDK_MODS_DIR" "$modules" || do_exit $?
do_exit 0

View File

@@ -1,63 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
source jb/project/tools/common/scripts/common.sh
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WORK_DIR=$(pwd)
[ -z "$bundle_type" ] && (git apply -p0 < jb/project/tools/patches/exclude_jcef_module.patch || exit $?)
PATH="/usr/local/bin:/usr/bin:${PATH}"
./configure \
--disable-warnings-as-errors \
--with-target-bits=32 \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
--with-toolchain-version=${TOOLCHAIN_VERSION} \
--with-boot-jdk=${BOOT_JDK} \
--disable-ccache \
--enable-cds=yes || exit 1
make clean CONF=windows-x86-server-release || exit 1
make LOG=info images CONF=windows-x86-server-release test-image || exit 1
JBSDK=${JBRSDK_BASE_NAME}-windows-x86-b${build_number}
BASE_DIR=build/windows-x86-server-release/images
JSDK=${BASE_DIR}/jdk
JBRSDK_BUNDLE=jbrsdk
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE} && rsync -a --exclude demo --exclude sample ${JSDK}/ ${JBRSDK_BUNDLE} || exit 1
sed 's/JBR/JBRSDK/g' ${JSDK}/release > release
mv release ${JBRSDK_BUNDLE}/release
JBR_BUNDLE=jbr
rm -rf ${JBR_BUNDLE}
grep -v javafx modules.list | grep -v "jdk.internal.vm\|jdk.aot\|jcef" > modules.list.x86
${JSDK}/bin/jlink \
--module-path ${JSDK}/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules.list.x86 | sed s/" "//g) --output ${JBR_BUNDLE} || exit $?
echo Modifying release info ...
#grep -v \"^JAVA_VERSION\" ${JSDK}/release | grep -v \"^MODULES\" >> ${JBR_BUNDLE}/release

View File

@@ -1,77 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies udate release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# <empty> or nomod - the bundles without any additional modules (jcef)
# jcef - the bundles with jcef
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
source jb/project/tools/common/scripts/common.sh
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
function pack_jbr {
if [ -z "${bundle_type}" ]; then
JBR_BUNDLE=jbr
else
JBR_BUNDLE=jbr_${bundle_type}
[ -d ${BASE_DIR}/jbr ] && rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
fi
JBR_BASE_NAME=${JBR_BUNDLE}-${JBSDK_VERSION}
JBR=$JBR_BASE_NAME-windows-x64-b$build_number
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR jbr || do_exit $?
}
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
RELEASE_NAME=windows-x86_64-server-release
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-b${build_number}
case "$bundle_type" in
"nomod" | "")
bundle_type=""
;;
"fd")
RELEASE_NAME=macosx-x86_64-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-osx-x64-fastdebug-b${build_number}
;;
esac
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x64-b$build_number
BASE_DIR=.
if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "dcevm" ] || [ "$bundle_type" == "fd" ]; then
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
[ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz"
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || do_exit $?
fi
pack_jbr $bundle_type
if [ -z "$bundle_type" ]; then
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi

View File

@@ -1,42 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies the current version of OpenJDK e.g. 11_0_6
# JDK_BUILD_NUMBER - specifies the number of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
JBRSDK_BASE_NAME=jbrsdk-$JBSDK_VERSION
JBR_BASE_NAME=jbr-$JBSDK_VERSION
IMAGES_DIR=build/windows-x86-server-release/images
JSDK=$IMAGES_DIR/jdk
JBSDK=$JBRSDK_BASE_NAME-windows-x86-b$build_number
BASE_DIR=.
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || exit 1
JBR_BUNDLE=jbr
JBR_BASE_NAME=jbr-${JBSDK_VERSION}
JBR=$JBR_BASE_NAME-windows-x86-b$build_number
echo Creating $JBR.tar.gz ...
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR ${JBR_BUNDLE} || exit 1
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x86-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || exit 1

View File

@@ -52,94 +52,6 @@ $(eval $(call SetupJavaCompilation, BUILD_TOOLS_HOTSPOT, \
TARGETS += $(BUILD_TOOLS_HOTSPOT)
################################################################################
# Graal build tools
ifeq ($(INCLUDE_GRAAL), true)
VM_CI_SRC_DIR := $(TOPDIR)/src/jdk.internal.vm.ci/share/classes
SRC_DIR := $(TOPDIR)/src/jdk.internal.vm.compiler/share/classes
##############################################################################
# Compile the annotation processors
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_MATCH_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.core.match.processor/src \
, \
EXCLUDE_FILES := $(EXCLUDE_FILES), \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.match.processor, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.match.processor.jar, \
DISABLED_WARNINGS := options, \
))
TARGETS += $(BUILD_VM_COMPILER_MATCH_PROCESSOR)
##############################################################################
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_NODEINFO_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.nodeinfo.processor/src \
, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.nodeinfo.processor, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.nodeinfo.processor.jar, \
DISABLED_WARNINGS := options, \
))
TARGETS += $(BUILD_VM_COMPILER_NODEINFO_PROCESSOR)
##############################################################################
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_OPTIONS_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
DISABLED_WARNINGS := options, \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.options.processor/src \
, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.options.processor, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.options.processor.jar, \
))
TARGETS += $(BUILD_VM_COMPILER_OPTIONS_PROCESSOR)
##############################################################################
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_REPLACEMENTS_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.replacements.processor/src \
, \
EXCLUDE_FILES := $(EXCLUDE_FILES), \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.replacements.verifier, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.replacements.verifier.jar, \
DISABLED_WARNINGS := options, \
))
TARGETS += $(BUILD_VM_COMPILER_REPLACEMENTS_PROCESSOR)
##############################################################################
$(eval $(call SetupJavaCompilation, BUILD_VM_COMPILER_SERVICEPROVIDER_PROCESSOR, \
TARGET_RELEASE := $(TARGET_RELEASE_BOOTJDK), \
SRC := \
$(SRC_DIR)/org.graalvm.compiler.processor/src \
$(SRC_DIR)/org.graalvm.compiler.serviceprovider.processor/src \
, \
EXCLUDE_FILES := $(EXCLUDE_FILES), \
BIN := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.serviceprovider.processor, \
JAR := $(BUILDTOOLS_OUTPUTDIR)/jdk.vm.compiler.serviceprovider.processor.jar, \
DISABLED_WARNINGS := options, \
))
TARGETS += $(BUILD_VM_COMPILER_SERVICEPROVIDER_PROCESSOR)
##############################################################################
endif
all: $(TARGETS)
.PHONY: all

View File

@@ -154,13 +154,14 @@ COPYRIGHT_BOTTOM = \
<a href="$(REDISTRIBUTION_URL)">documentation redistribution policy</a>. \
$(DRAFT_MARKER_STR) <!-- Version $(VERSION_STRING) -->
JAVADOC_BOTTOM := \
# $1 - Optional "Other Versions" link
JAVADOC_BOTTOM = \
<a href="$(BUG_SUBMIT_URL)">Report a bug or suggest an enhancement</a><br> \
For further API reference and developer documentation see the \
<a href="$(JAVADOC_BASE_URL)" target="_blank">Java SE \
Documentation</a>, which contains more detailed, \
developer-targeted descriptions with conceptual overviews, definitions \
of terms, workarounds, and working code examples.<br> \
of terms, workarounds, and working code examples. $1<br> \
Java is a trademark or registered trademark of $(FULL_COMPANY_NAME) in \
the US and other countries.<br> \
$(call COPYRIGHT_BOTTOM, {@docroot}/../)
@@ -300,22 +301,21 @@ define SetupApiDocsGenerationBody
$1_OPTIONS += -Xdoclint/package:$$(call CommaList, $$(addprefix -, \
$$(JAVADOC_DISABLED_DOCLINT_PACKAGES)))
ifneq ($$($1_OTHER_VERSIONS), )
$1_LINKED_SHORT_NAME = <a href="$$($1_OTHER_VERSIONS)">$$($1_SHORT_NAME)</a>
else
$1_LINKED_SHORT_NAME = $$($1_SHORT_NAME)
endif
$1_DOC_TITLE := $$($1_LONG_NAME)<br>Version $$(VERSION_SPECIFICATION) API \
Specification
$1_WINDOW_TITLE := $$(subst &amp;,&,$$($1_SHORT_NAME))$$(DRAFT_MARKER_TITLE)
$1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_LINKED_SHORT_NAME)</strong> \
$1_HEADER_TITLE := <div $$(HEADER_STYLE)><strong>$$($1_SHORT_NAME)</strong> \
$$(DRAFT_MARKER_STR)</div>
ifneq ($$($1_OTHER_VERSIONS), )
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, <a href="$$($1_OTHER_VERSIONS)">Other versions.</a>)
else
$1_JAVADOC_BOTTOM := $$(call JAVADOC_BOTTOM, )
endif
$1_OPTIONS += -doctitle '$$($1_DOC_TITLE)'
$1_OPTIONS += -windowtitle '$$($1_WINDOW_TITLE)'
$1_OPTIONS += -header '$$($1_HEADER_TITLE)'
$1_OPTIONS += -bottom '$$(JAVADOC_BOTTOM)'
$1_OPTIONS += -bottom '$$($1_JAVADOC_BOTTOM)'
ifeq ($$(IS_DRAFT), true)
$1_OPTIONS += -top '$$(JAVADOC_TOP)'
endif

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -92,9 +92,11 @@ $(eval $(call SetupTarget, buildtools-modules, \
MAKEFILE := CompileModuleTools, \
))
# interim-langtools is needed by hotspot only when $(INCLUDE_GRAAL) is true
GRAAL_INTERIM_LANGTOOLS_true = interim-langtools
$(eval $(call SetupTarget, buildtools-hotspot, \
MAKEFILE := CompileToolsHotspot, \
DEPS := interim-langtools, \
DEPS := $(GRAAL_INTERIM_LANGTOOLS_$(INCLUDE_GRAAL)), \
))
################################################################################
@@ -660,18 +662,6 @@ $(eval $(call SetupTarget, test-image-libtest-jtreg-native, \
DEPS := build-test-libtest-jtreg-native, \
))
$(eval $(call SetupTarget, build-test-hotspot-jtreg-graal, \
MAKEFILE := test/JtregGraalUnit, \
TARGET := build-test-hotspot-jtreg-graal, \
DEPS := exploded-image, \
))
$(eval $(call SetupTarget, test-image-hotspot-jtreg-graal, \
MAKEFILE := test/JtregGraalUnit, \
TARGET := test-image-hotspot-jtreg-graal, \
DEPS := build-test-hotspot-jtreg-graal, \
))
ifneq ($(GTEST_FRAMEWORK_SRC), )
$(eval $(call SetupTarget, test-image-hotspot-gtest, \
MAKEFILE := hotspot/test/GtestImage, \
@@ -875,18 +865,6 @@ else
# copied and processed.
java.desktop-gensrc-src: java.base-gensrc java.base-copy
# The annotation processing for jdk.internal.vm.compiler
# and jdk.internal.vm.compiler.management needs classes from the current JDK.
jdk.internal.vm.compiler-gensrc-src: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler))
jdk.internal.vm.compiler.management-gensrc-src: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler.management))
# For these modules, the gensrc step is generating a module-info.java.extra
# file to be processed by the gensrc-moduleinfo target.
jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-src
jdk.internal.vm.compiler.management-gensrc-moduleinfo: jdk.internal.vm.compiler.management-gensrc-src
jdk.jdeps-gendata: java
# The ct.sym generation uses all the moduleinfos as input
@@ -1174,10 +1152,6 @@ else
ifneq ($(GTEST_FRAMEWORK_SRC), )
test-image: test-image-hotspot-gtest
endif
ifeq ($(INCLUDE_GRAAL), true)
test-image: test-image-hotspot-jtreg-graal
endif
endif
ifeq ($(BUILD_FAILURE_HANDLER), true)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -46,7 +46,7 @@ endif
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR JCOV JCOV_DIFF_CHANGESET, \
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
))
# Helper function to propagate TEST_OPTS values.
@@ -134,96 +134,6 @@ ifeq ($(GCOV_ENABLED), true)
JTREG_COV_OPTIONS += -e:GCOV_PREFIX="$(GCOV_OUTPUT_DIR)"
endif
################################################################################
# Optionally create AOT libraries for specified modules before running tests.
# Note, this could not be done during JDK build time.
################################################################################
# Parameter 1 is the name of the rule.
#
# Remaining parameters are named arguments.
# MODULE The module to generate a library for
# BIN Output directory in which to put the library
# VM_OPTIONS List of JVM arguments to use when creating library
# OPTIONS_VAR Name of variable to put AOT java options in
# PREREQS_VAR Name of variable to put all AOT prerequisite rule targets in
# for test rules to depend on
#
SetupAotModule = $(NamedParamsMacroTemplate)
define SetupAotModuleBody
$1_AOT_LIB := $$($1_BIN)/$$(call SHARED_LIBRARY,$$($1_MODULE))
$1_AOT_CCLIST := $$(wildcard $$(TOPDIR)/test/hotspot/jtreg/compiler/aot/scripts/$$($1_MODULE)-list.txt)
# Create jaotc flags.
# VM flags which don't affect AOT code generation are filtered out:
# -Xcomp, -XX:+-TieredCompilation
$1_JAOTC_OPTS := \
-J-Xmx4g --info \
$$(addprefix -J, $$(filter-out -Xcomp %TieredCompilation, $$($1_VM_OPTIONS))) \
$$(addprefix --compile-commands$(SPACE), $$($1_AOT_CCLIST)) \
--linker-path $$(LD_JAOTC) \
#
ifneq ($$(filter -ea, $$($1_VM_OPTIONS)), )
$1_JAOTC_OPTS += --compile-with-assertions
endif
ifneq ($$(filter -XX:+VerifyOops, $$($1_VM_OPTIONS)), )
$1_JAOTC_OPTS += -J-Dgraal.AOTVerifyOops=true
endif
$$($1_AOT_LIB): $$(JDK_UNDER_TEST)/release \
$$(call DependOnVariable, $1_JAOTC_OPTS) \
$$(call DependOnVariable, JDK_UNDER_TEST)
$$(call LogWarn, Generating $$(patsubst $$(OUTPUTDIR)/%, %, $$@))
$$(call MakeTargetDir)
$$(call ExecuteWithLog, $$@, \
$((COV_ENVIRONMENT) \
$$(FIXPATH) $$(JDK_UNDER_TEST)/bin/jaotc \
$$($1_JAOTC_OPTS) --output $$@ --module $$($1_MODULE) \
)
$$(call ExecuteWithLog, $$@.check, ( \
$$(FIXPATH) $$(JDK_UNDER_TEST)/bin/java \
$$($1_VM_OPTIONS) -XX:+UnlockDiagnosticVMOptions -XX:+UnlockExperimentalVMOptions \
-XX:+PrintAOT -XX:+UseAOTStrictLoading \
-XX:AOTLibrary=$$@ -version \
> $$@.verify-aot \
))
$1_AOT_OPTIONS += -XX:+UnlockExperimentalVMOptions
$1_AOT_OPTIONS += -XX:AOTLibrary=$$($1_AOT_LIB)
$1_AOT_TARGETS += $$($1_AOT_LIB)
endef
################################################################################
# Optionally create AOT libraries before running tests.
# Note, this could not be done during JDK build time.
################################################################################
# Parameter 1 is the name of the rule.
#
# Remaining parameters are named arguments.
# MODULES The modules to generate a library for
# VM_OPTIONS List of JVM arguments to use when creating libraries
#
# After calling this, the following variables are defined
# $1_AOT_OPTIONS List of all java options needed to use the AOT libraries
# $1_AOT_TARGETS List of all targets that the test rule will need to depend on
#
SetupAot = $(NamedParamsMacroTemplate)
define SetupAotBody
$$(info Running with AOTd libraries for $$($1_MODULES))
# Put aot libraries in a separate directory so they are not deleted between
# test runs and may be reused between make invocations.
$$(foreach m, $$($1_MODULES), \
$$(eval $$(call SetupAotModule, $1_$$m, \
MODULE := $$m, \
BIN := $$(TEST_SUPPORT_DIR)/aot/$1, \
VM_OPTIONS := $$($1_VM_OPTIONS), \
)) \
$$(eval $1_AOT_OPTIONS += $$($1_$$m_AOT_OPTIONS)) \
$$(eval $1_AOT_TARGETS += $$($1_$$m_AOT_TARGETS)) \
)
endef
################################################################################
# Setup global test running parameters
################################################################################
@@ -282,7 +192,6 @@ endif
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
$(eval $(call SetTestOpt,JAVA_OPTIONS,JTREG))
$(eval $(call SetTestOpt,AOT_MODULES,JTREG))
$(eval $(call SetTestOpt,JOBS,JTREG))
$(eval $(call SetTestOpt,TIMEOUT_FACTOR,JTREG))
@@ -293,7 +202,7 @@ $(eval $(call ParseKeywordVariable, JTREG, \
TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM RUN_PROBLEM_LISTS \
RETRY_COUNT MAX_OUTPUT, \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
EXTRA_PROBLEM_LISTS AOT_MODULES LAUNCHER_OPTIONS, \
EXTRA_PROBLEM_LISTS LAUNCHER_OPTIONS, \
))
ifneq ($(JTREG), )
@@ -305,11 +214,10 @@ endif
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
$(eval $(call SetTestOpt,AOT_MODULES,GTEST))
$(eval $(call ParseKeywordVariable, GTEST, \
SINGLE_KEYWORDS := REPEAT, \
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS, \
))
ifneq ($(GTEST), )
@@ -350,8 +258,6 @@ langtools_JTREG_PROBLEM_LIST += $(TOPDIR)/test/langtools/ProblemList.txt
hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
lib-test_JTREG_PROBLEM_LIST += $(TOPDIR)/test/lib-test/ProblemList.txt
langtools_JTREG_MAX_MEM := 768m
################################################################################
# Parse test selection
#
@@ -592,14 +498,7 @@ define SetupRunGtestTestBody
$1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
endif
ifneq ($$(GTEST_AOT_MODULES), )
$$(eval $$(call SetupAot, $1, \
MODULES := $$(GTEST_AOT_MODULES), \
VM_OPTIONS := $$(GTEST_VM_OPTIONS) $$(GTEST_JAVA_OPTIONS), \
))
endif
run-test-$1: pre-run-test $$($1_AOT_TARGETS)
run-test-$1: pre-run-test
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
@@ -610,7 +509,7 @@ define SetupRunGtestTestBody
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
--gtest_catch_exceptions=0 \
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
$$(GTEST_JAVA_OPTIONS) $$($1_AOT_OPTIONS) \
$$(GTEST_JAVA_OPTIONS) \
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
@@ -821,7 +720,7 @@ define SetupRunJtregTestBody
# Convert JTREG_foo into $1_JTREG_foo with a suitable value.
$$(eval $$(call SetJtregValue,$1,JTREG_TEST_MODE,agentvm))
$$(eval $$(call SetJtregValue,$1,JTREG_ASSERT,true))
$$(eval $$(call SetJtregValue,$1,JTREG_MAX_MEM,512m))
$$(eval $$(call SetJtregValue,$1,JTREG_MAX_MEM,768m))
$$(eval $$(call SetJtregValue,$1,JTREG_NATIVEPATH))
$$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
@@ -837,7 +736,7 @@ define SetupRunJtregTestBody
# Make sure MaxRAMPercentage is high enough to not cause OOM or swapping since
# we may end up with a lot of JVM's
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $(AWK) 'BEGIN { print 25 / $$($1_JTREG_JOBS); }')
JTREG_TIMEOUT_FACTOR ?= 4
@@ -917,7 +816,6 @@ define SetupRunJtregTestBody
endif
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_DIR=$(TEST_IMAGE_DIR)
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=$(TEST_IMAGE_DIR)/hotspot/jtreg/graal
ifneq ($$(JTREG_FAILURE_HANDLER_OPTIONS), )
$1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
@@ -934,17 +832,6 @@ define SetupRunJtregTestBody
endif
endif
ifneq ($$(JTREG_AOT_MODULES), )
$$(eval $$(call SetupAot, $1, \
MODULES := $$(JTREG_AOT_MODULES), \
VM_OPTIONS := $$(JTREG_VM_OPTIONS) $$(JTREG_JAVA_OPTIONS), \
))
endif
ifneq ($$($1_AOT_OPTIONS), )
$1_JTREG_BASIC_OPTIONS += -vmoptions:"$$($1_AOT_OPTIONS)"
endif
clean-workdir-$1:
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
@@ -979,7 +866,7 @@ define SetupRunJtregTestBody
done
endif
run-test-$1: pre-run-test clean-workdir-$1 $$($1_AOT_TARGETS)
run-test-$1: pre-run-test clean-workdir-$1
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2017, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2017, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -222,25 +222,6 @@ ifeq ($(MEMORY_SIZE), )
MEMORY_SIZE := 1024
endif
# Setup LD for AOT support
ifneq ($(DEVKIT_HOME), )
ifeq ($(OPENJDK_TARGET_OS), windows)
LD_JAOTC := $(DEVKIT_HOME)/VC/bin/x64/link.exe
LIBRARY_PREFIX :=
SHARED_LIBRARY_SUFFIX := .dll
else ifeq ($(OPENJDK_TARGET_OS), linux)
LD_JAOTC := $(DEVKIT_HOME)/bin/ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .so
else ifeq ($(OPENJDK_TARGET_OS), macosx)
LD_JAOTC := $(DEVKIT_HOME)/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .dylib
endif
else
LD := ld
endif
ifneq ($(wildcard $(JDK_IMAGE_DIR)/template.xml), )
TEST_OPTS_JCOV := true
JCOV_IMAGE_DIR := $(JDK_IMAGE_DIR)
@@ -286,9 +267,6 @@ $(call CreateNewSpec, $(NEW_SPEC), \
OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
NUM_CORES := $(NUM_CORES), \
MEMORY_SIZE := $(MEMORY_SIZE), \
LD_JAOTC := $(LD_JAOTC), \
LIBRARY_PREFIX := $(LIBRARY_PREFIX), \
SHARED_LIBRARY_SUFFIX := $(SHARED_LIBRARY_SUFFIX), \
include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
TEST_OPTS_JCOV := $(TEST_OPTS_JCOV), \
$(CUSTOM_NEW_SPEC_LINE), \

View File

@@ -104,6 +104,10 @@ fi
# Test and fix cpu on macos-aarch64, uname -p reports arm, buildsys expects aarch64
echo $OUT | grep arm-apple-darwin > /dev/null 2> /dev/null
if test $? != 0; then
# The GNU version of uname may be on the PATH which reports arm64 instead
echo $OUT | grep arm64-apple-darwin > /dev/null 2> /dev/null
fi
if test $? = 0; then
if [ `uname -m` = arm64 ]; then
OUT=aarch64`echo $OUT | sed -e 's/[^-]*//'`

View File

@@ -108,13 +108,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
OS_LDFLAGS_JVM_ONLY="-Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
OS_LDFLAGS="-mmacosx-version-min=$MACOSX_VERSION_MIN"
fi
if test "x$OPENJDK_TARGET_OS" = xlinux; then
# Hotspot needs to link librt to get the clock_* functions.
# But once our supported minimum build and runtime platform
# has glibc 2.17, this can be removed as the functions are
# in libc.
OS_LDFLAGS_JVM_ONLY="-lrt"
fi
fi
# Setup debug level-dependent LDFLAGS

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -76,8 +76,26 @@ AC_DEFUN([FLAGS_SETUP_RCFLAGS],
# platform independent
AC_DEFUN([FLAGS_SETUP_ASFLAGS],
[
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
# Force preprocessor to run, just to make sure
BASIC_ASFLAGS="-x assembler-with-cpp"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
BASIC_ASFLAGS="-nologo -c"
fi
AC_SUBST(BASIC_ASFLAGS)
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
JVM_BASIC_ASFLAGS="-x assembler-with-cpp -mno-omit-leaf-frame-pointer -mstack-alignment=16"
JVM_BASIC_ASFLAGS="-mno-omit-leaf-frame-pointer -mstack-alignment=16"
# Fix linker warning.
# Code taken from make/autoconf/flags-cflags.m4 and adapted.
JVM_BASIC_ASFLAGS+="-DMAC_OS_X_VERSION_MIN_REQUIRED=$MACOSX_VERSION_MIN_NODOTS \
-mmacosx-version-min=$MACOSX_VERSION_MIN"
if test -n "$MACOSX_VERSION_MAX"; then
JVM_BASIC_ASFLAGS+="$OS_CFLAGS \
-DMAC_OS_X_VERSION_MAX_ALLOWED=$MACOSX_VERSION_MAX_NODOTS"
fi
fi
])

View File

@@ -265,6 +265,14 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
fi
fi
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
MACHINE_FLAG="$MACHINE_FLAG -arch arm64"
elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
MACHINE_FLAG="$MACHINE_FLAG -arch x86_64"
fi
fi
# FIXME: global flags are not used yet...
# The "global" flags will *always* be set. Without them, it is not possible to
# get a working compilation.
@@ -366,15 +374,13 @@ AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
# Generate make dependency files
if test "x$TOOLCHAIN_TYPE" = xgcc; then
C_FLAG_DEPS="-MMD -MF"
GENDEPS_FLAGS="-MMD -MF"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
C_FLAG_DEPS="-MMD -MF"
GENDEPS_FLAGS="-MMD -MF"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
C_FLAG_DEPS="-qmakedep=gcc -MF"
GENDEPS_FLAGS="-qmakedep=gcc -MF"
fi
CXX_FLAG_DEPS="$C_FLAG_DEPS"
AC_SUBST(C_FLAG_DEPS)
AC_SUBST(CXX_FLAG_DEPS)
AC_SUBST(GENDEPS_FLAGS)
])
AC_DEFUN_ONCE([FLAGS_POST_TOOLCHAIN],

View File

@@ -240,11 +240,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
[AS_HELP_STRING([--with-native-debug-symbols],
[set the native debug symbol configuration (none, internal, external, zipped) @<:@varying@:>@])],
[
if test "x$OPENJDK_TARGET_OS" = xaix; then
if test "x$withval" = xexternal || test "x$withval" = xzipped; then
AC_MSG_ERROR([AIX only supports the parameters 'none' and 'internal' for --with-native-debug-symbols])
fi
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
if test "x$OPENJDK_TARGET_OS" = xwindows; then
if test "x$withval" = xinternal; then
AC_MSG_ERROR([Windows does not support the parameter 'internal' for --with-native-debug-symbols])
fi
@@ -254,12 +250,7 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
if test "x$STATIC_BUILD" = xtrue; then
with_native_debug_symbols="none"
else
if test "x$OPENJDK_TARGET_OS" = xaix; then
# AIX doesn't support 'external' so use 'internal' as default
with_native_debug_symbols="internal"
else
with_native_debug_symbols="external"
fi
with_native_debug_symbols="external"
fi
])
AC_MSG_RESULT([$with_native_debug_symbols])

View File

@@ -44,7 +44,7 @@
m4_define(jvm_features_valid, m4_normalize( \
ifdef([custom_jvm_features_valid], custom_jvm_features_valid) \
\
aot cds compiler1 compiler2 dtrace epsilongc g1gc graal jfr jni-check \
cds compiler1 compiler2 dtrace epsilongc g1gc jfr jni-check \
jvmci jvmti link-time-opt management minimal nmt opt-size parallelgc \
serialgc services shenandoahgc static-build vm-structs zero zgc \
))
@@ -55,14 +55,12 @@ m4_define(jvm_features_deprecated, m4_normalize(
))
# Feature descriptions
m4_define(jvm_feature_desc_aot, [enable ahead of time compilation (AOT)])
m4_define(jvm_feature_desc_cds, [enable class data sharing (CDS)])
m4_define(jvm_feature_desc_compiler1, [enable hotspot compiler C1])
m4_define(jvm_feature_desc_compiler2, [enable hotspot compiler C2])
m4_define(jvm_feature_desc_dtrace, [enable dtrace support])
m4_define(jvm_feature_desc_epsilongc, [include the epsilon (no-op) garbage collector])
m4_define(jvm_feature_desc_g1gc, [include the G1 garbage collector])
m4_define(jvm_feature_desc_graal, [enable Graal (jdk.internal.vm.compiler)])
m4_define(jvm_feature_desc_jfr, [enable JDK Flight Recorder (JFR)])
m4_define(jvm_feature_desc_jni_check, [enable -Xcheck:jni support])
m4_define(jvm_feature_desc_jvmci, [enable JVM Compiler Interface (JVMCI)])
@@ -94,7 +92,6 @@ AC_DEFUN_ONCE([JVM_FEATURES_PARSE_OPTIONS],
# For historical reasons, some jvm features have their own, shorter names.
# Keep those as aliases for the --enable-jvm-feature-* style arguments.
UTIL_ALIASED_ARG_ENABLE(aot, --enable-jvm-feature-aot)
UTIL_ALIASED_ARG_ENABLE(cds, --enable-jvm-feature-cds)
UTIL_ALIASED_ARG_ENABLE(dtrace, --enable-jvm-feature-dtrace)
@@ -229,34 +226,6 @@ AC_DEFUN([JVM_FEATURES_CHECK_AVAILABILITY],
fi
])
###############################################################################
# Check if the feature 'aot' is available on this platform.
#
AC_DEFUN_ONCE([JVM_FEATURES_CHECK_AOT],
[
JVM_FEATURES_CHECK_AVAILABILITY(aot, [
AC_MSG_CHECKING([if platform is supported by AOT])
# AOT is only available where JVMCI is available since it requires JVMCI.
if test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
AC_MSG_RESULT([yes])
elif test "x$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" = "xlinux-aarch64"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])
AVAILABLE=false
fi
AC_MSG_CHECKING([if AOT source code is present])
if test -e "${TOPDIR}/src/jdk.internal.vm.compiler" && \
test -e "${TOPDIR}/src/jdk.aot"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, missing src/jdk.internal.vm.compiler or src/jdk.aot])
AVAILABLE=false
fi
])
])
###############################################################################
# Check if the feature 'cds' is available on this platform.
#
@@ -296,25 +265,6 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_DTRACE],
])
])
###############################################################################
# Check if the feature 'graal' is available on this platform.
#
AC_DEFUN_ONCE([JVM_FEATURES_CHECK_GRAAL],
[
JVM_FEATURES_CHECK_AVAILABILITY(graal, [
AC_MSG_CHECKING([if platform is supported by Graal])
# Graal is only available where JVMCI is available since it requires JVMCI.
if test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
AC_MSG_RESULT([yes])
elif test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU])
AVAILABLE=false
fi
])
])
###############################################################################
# Check if the feature 'jfr' is available on this platform.
#
@@ -400,7 +350,8 @@ AC_DEFUN_ONCE([JVM_FEATURES_CHECK_ZGC],
fi
elif test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
if test "x$OPENJDK_TARGET_OS" = "xlinux" || \
test "x$OPENJDK_TARGET_OS" = "xwindows"; then
test "x$OPENJDK_TARGET_OS" = "xwindows" || \
test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no, $OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])
@@ -439,10 +390,8 @@ AC_DEFUN_ONCE([JVM_FEATURES_PREPARE_PLATFORM],
# The checks below should add unavailable features to
# JVM_FEATURES_PLATFORM_UNAVAILABLE.
JVM_FEATURES_CHECK_AOT
JVM_FEATURES_CHECK_CDS
JVM_FEATURES_CHECK_DTRACE
JVM_FEATURES_CHECK_GRAAL
JVM_FEATURES_CHECK_JFR
JVM_FEATURES_CHECK_JVMCI
JVM_FEATURES_CHECK_SHENANDOAHGC
@@ -475,18 +424,18 @@ AC_DEFUN([JVM_FEATURES_PREPARE_VARIANT],
elif test "x$variant" = "xcore"; then
JVM_FEATURES_VARIANT_UNAVAILABLE="cds minimal zero"
elif test "x$variant" = "xzero"; then
JVM_FEATURES_VARIANT_UNAVAILABLE="aot cds compiler1 compiler2 \
graal jvmci minimal zgc"
JVM_FEATURES_VARIANT_UNAVAILABLE="cds compiler1 compiler2 \
jvmci minimal zgc"
else
JVM_FEATURES_VARIANT_UNAVAILABLE="minimal zero"
fi
# Check which features should be off by default for this JVM variant.
if test "x$variant" = "xclient"; then
JVM_FEATURES_VARIANT_FILTER="aot compiler2 graal jvmci link-time-opt opt-size"
JVM_FEATURES_VARIANT_FILTER="compiler2 jvmci link-time-opt opt-size"
elif test "x$variant" = "xminimal"; then
JVM_FEATURES_VARIANT_FILTER="aot cds compiler2 dtrace epsilongc g1gc \
graal jfr jni-check jvmci jvmti management nmt parallelgc services \
JVM_FEATURES_VARIANT_FILTER="cds compiler2 dtrace epsilongc g1gc \
jfr jni-check jvmci jvmti management nmt parallelgc services \
shenandoahgc vm-structs zgc"
if test "x$OPENJDK_TARGET_CPU" = xarm ; then
JVM_FEATURES_VARIANT_FILTER="$JVM_FEATURES_VARIANT_FILTER opt-size"
@@ -496,7 +445,7 @@ AC_DEFUN([JVM_FEATURES_PREPARE_VARIANT],
link-time-opt"
fi
elif test "x$variant" = "xcore"; then
JVM_FEATURES_VARIANT_FILTER="aot compiler1 compiler2 graal jvmci \
JVM_FEATURES_VARIANT_FILTER="compiler1 compiler2 jvmci \
link-time-opt opt-size"
elif test "x$variant" = "xzero"; then
JVM_FEATURES_VARIANT_FILTER="jfr link-time-opt opt-size"
@@ -572,15 +521,6 @@ AC_DEFUN([JVM_FEATURES_VERIFY],
[
variant=$1
# Verify that dependencies are met for inter-feature relations.
if JVM_FEATURES_IS_ACTIVE(aot) && ! JVM_FEATURES_IS_ACTIVE(graal); then
AC_MSG_ERROR([Specified JVM feature 'aot' requires feature 'graal' for variant '$variant'])
fi
if JVM_FEATURES_IS_ACTIVE(graal) && ! JVM_FEATURES_IS_ACTIVE(jvmci); then
AC_MSG_ERROR([Specified JVM feature 'graal' requires feature 'jvmci' for variant '$variant'])
fi
if JVM_FEATURES_IS_ACTIVE(jvmci) && ! (JVM_FEATURES_IS_ACTIVE(compiler1) || \
JVM_FEATURES_IS_ACTIVE(compiler2)); then
AC_MSG_ERROR([Specified JVM feature 'jvmci' requires feature 'compiler2' or 'compiler1' for variant '$variant'])
@@ -596,15 +536,9 @@ AC_DEFUN([JVM_FEATURES_VERIFY],
# For backwards compatibility, disable a feature "globally" if one variant
# is missing the feature.
if ! JVM_FEATURES_IS_ACTIVE(aot); then
ENABLE_AOT="false"
fi
if ! JVM_FEATURES_IS_ACTIVE(cds); then
ENABLE_CDS="false"
fi
if ! JVM_FEATURES_IS_ACTIVE(graal); then
INCLUDE_GRAAL="false"
fi
if ! JVM_FEATURES_IS_ACTIVE(jvmci); then
INCLUDE_JVMCI="false"
fi
@@ -629,9 +563,7 @@ AC_DEFUN_ONCE([JVM_FEATURES_SETUP],
# For backwards compatibility, tentatively enable these features "globally",
# and disable them in JVM_FEATURES_VERIFY if a variant is found that are
# missing any of them.
ENABLE_AOT="true"
ENABLE_CDS="true"
INCLUDE_GRAAL="true"
INCLUDE_JVMCI="true"
for variant in $JVM_VARIANTS; do
@@ -668,8 +600,6 @@ AC_DEFUN_ONCE([JVM_FEATURES_SETUP],
AC_SUBST(JVM_FEATURES_zero)
AC_SUBST(JVM_FEATURES_custom)
AC_SUBST(ENABLE_AOT)
AC_SUBST(INCLUDE_GRAAL)
AC_SUBST(INCLUDE_JVMCI)
])

View File

@@ -23,38 +23,6 @@
# questions.
#
###############################################################################
#
# Check for graalunit libs, needed for running graalunit tests.
#
AC_DEFUN_ONCE([LIB_TESTS_SETUP_GRAALUNIT],
[
AC_ARG_WITH(graalunit-lib, [AS_HELP_STRING([--with-graalunit-lib],
[specify location of 3rd party libraries used by Graal unit tests])])
GRAALUNIT_LIB=
if test "x${with_graalunit_lib}" != x; then
AC_MSG_CHECKING([for graalunit libs])
if test "x${with_graalunit_lib}" = xno; then
AC_MSG_RESULT([disabled, graalunit tests can not be run])
elif test "x${with_graalunit_lib}" = xyes; then
AC_MSG_RESULT([not specified])
AC_MSG_ERROR([You must specify the path to 3rd party libraries used by Graal unit tests])
else
GRAALUNIT_LIB="${with_graalunit_lib}"
if test ! -d "${GRAALUNIT_LIB}"; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find graalunit 3rd party libraries as specified. (${with_graalunit_lib})])
else
AC_MSG_RESULT([$GRAALUNIT_LIB])
fi
fi
fi
UTIL_FIXUP_PATH([GRAALUNIT_LIB])
AC_SUBST(GRAALUNIT_LIB)
])
###############################################################################
#
# Setup and check for gtest framework source files

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -103,7 +103,6 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
LIB_SETUP_LIBFFI
LIB_SETUP_BUNDLED_LIBS
LIB_SETUP_MISC_LIBS
LIB_TESTS_SETUP_GRAALUNIT
LIB_TESTS_SETUP_GTEST
BASIC_JDKLIB_LIBS=""
@@ -124,6 +123,15 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lpthread"
fi
# librt for legacy clock_gettime
if test "x$OPENJDK_TARGET_OS" = xlinux; then
# Hotspot needs to link librt to get the clock_* functions.
# But once our supported minimum build and runtime platform
# has glibc 2.17, this can be removed as the functions are
# in libc.
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lrt"
fi
# Atomic library
# 32-bit platforms needs fallback library for 8-byte atomic ops on Zero
if HOTSPOT_CHECK_JVM_VARIANT(zero); then

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -480,9 +480,11 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
fi
# The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
# Macosx is osx and x86_64 is x64
# The macOS bundle name was revised in JDK 17
#
# macosx is macos and x86_64 is x64
if test "x$OPENJDK_$1_OS" = xmacosx; then
OPENJDK_$1_OS_BUNDLE="osx"
OPENJDK_$1_OS_BUNDLE="macos"
else
OPENJDK_$1_OS_BUNDLE="$OPENJDK_TARGET_OS"
fi

View File

@@ -392,7 +392,6 @@ LIBFFI_LIBS:=@LIBFFI_LIBS@
LIBFFI_CFLAGS:=@LIBFFI_CFLAGS@
ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@
LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
GRAALUNIT_LIB := @GRAALUNIT_LIB@
FILE_MACRO_CFLAGS := @FILE_MACRO_CFLAGS@
STATIC_LIBS_CFLAGS := @STATIC_LIBS_CFLAGS@
@@ -477,8 +476,7 @@ CXX_O_FLAG_NORM:=@CXX_O_FLAG_NORM@
CXX_O_FLAG_NONE:=@CXX_O_FLAG_NONE@
CXX_O_FLAG_SIZE:=@CXX_O_FLAG_SIZE@
C_FLAG_DEPS:=@C_FLAG_DEPS@
CXX_FLAG_DEPS:=@CXX_FLAG_DEPS@
GENDEPS_FLAGS := @GENDEPS_FLAGS@
DISABLE_WARNING_PREFIX := @DISABLE_WARNING_PREFIX@
CFLAGS_WARNINGS_ARE_ERRORS:=@CFLAGS_WARNINGS_ARE_ERRORS@
@@ -510,6 +508,8 @@ JVM_LDFLAGS := @JVM_LDFLAGS@
JVM_ASFLAGS := @JVM_ASFLAGS@
JVM_LIBS := @JVM_LIBS@
BASIC_ASFLAGS := @BASIC_ASFLAGS@
# These flags might contain variables set by a custom extension that is included later.
EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXXFLAGS = @EXTRA_CXXFLAGS@
@@ -523,9 +523,6 @@ CPP := @CPP@
# The linker can be gcc or ld on unix systems, or link.exe on windows systems.
LD := @LD@
# Linker used by the jaotc tool for AOT compilation.
LD_JAOTC:=@LD_JAOTC@
# Xcode SDK path
SDKROOT:=@SDKROOT@
@@ -765,7 +762,6 @@ TAR_INCLUDE_PARAM:=@TAR_INCLUDE_PARAM@
TAR_SUPPORTS_TRANSFORM:=@TAR_SUPPORTS_TRANSFORM@
# Build setup
ENABLE_AOT:=@ENABLE_AOT@
USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@
USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@
USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@
@@ -853,7 +849,6 @@ PNG_CFLAGS:=@PNG_CFLAGS@
#
INCLUDE_SA=@INCLUDE_SA@
INCLUDE_GRAAL=@INCLUDE_GRAAL@
INCLUDE_JVMCI=@INCLUDE_JVMCI@
OS_VERSION_MAJOR:=@OS_VERSION_MAJOR@

View File

@@ -664,18 +664,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
UTIL_LOOKUP_TOOLCHAIN_PROGS(LD, link)
TOOLCHAIN_VERIFY_LINK_BINARY(LD)
LDCXX="$LD"
# jaotc being a windows program expects the linker to be supplied with exe suffix.but without
# fixpath
LD_JAOTC="${LD##$FIXPATH }"
else
# All other toolchains use the compiler to link.
LD="$CC"
LDCXX="$CXX"
# jaotc expects 'ld' as the linker rather than the compiler.
UTIL_LOOKUP_TOOLCHAIN_PROGS(LD_JAOTC, ld)
fi
AC_SUBST(LD)
AC_SUBST(LD_JAOTC)
# FIXME: it should be CXXLD, according to standard (cf CXXCPP)
AC_SUBST(LDCXX)
@@ -696,8 +690,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
if test "x$TOOLCHAIN_TYPE" != xmicrosoft; then
AS="$CC -c"
else
# On windows, the assember is "ml.exe"
UTIL_LOOKUP_TOOLCHAIN_PROGS(AS, ml)
if test "x$OPENJDK_TARGET_CPU_BITS" = "x64"; then
# On 64 bit windows, the assember is "ml64.exe"
UTIL_LOOKUP_TOOLCHAIN_PROGS(AS, ml64)
else
# otherwise, the assember is "ml.exe"
UTIL_LOOKUP_TOOLCHAIN_PROGS(AS, ml)
fi
fi
AC_SUBST(AS)
@@ -879,7 +878,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
# On windows, the assember is "ml.exe". We currently don't need this so
# do not require.
UTIL_LOOKUP_PROGS(BUILD_AS, ml, [$VS_PATH])
if test "x$OPENJDK_BUILD_CPU_BITS" = "x64"; then
# On 64 bit windows, the assember is "ml64.exe"
UTIL_LOOKUP_PROGS(BUILD_AS, ml64, [$VS_PATH])
else
# otherwise the assember is "ml.exe"
UTIL_LOOKUP_PROGS(BUILD_AS, ml, [$VS_PATH])
fi
# On windows, the ar tool is lib.exe (used to create static libraries).
# We currently don't need this so do not require.

View File

@@ -62,19 +62,10 @@ endif
# Filter out jvmci specific modules if jvmci is disabled
ifeq ($(INCLUDE_JVMCI), false)
MODULES_FILTER += jdk.internal.vm.ci
endif
# Filter out Graal specific modules if Graal is disabled
ifeq ($(INCLUDE_GRAAL), false)
MODULES_FILTER += jdk.internal.vm.compiler
MODULES_FILTER += jdk.internal.vm.compiler.management
endif
# Filter out aot specific modules if aot is disabled
ifeq ($(ENABLE_AOT), false)
MODULES_FILTER += jdk.aot
endif
# jpackage is only on windows, macosx, and linux
ifeq ($(call isTargetOs, windows macosx linux), false)
MODULES_FILTER += jdk.jpackage

View File

@@ -163,7 +163,7 @@ $(eval $(call DefineNativeToolchain, TOOLCHAIN_BUILD_LINK_CXX, \
################################################################################
# Extensions of files handled by this macro.
NATIVE_SOURCE_EXTENSIONS := %.s %.S %.c %.cpp %.cc %.m %.mm
NATIVE_SOURCE_EXTENSIONS := %.S %.c %.cpp %.cc %.m %.mm
# Replaces native source extensions with the object file extension in a string.
# Param 1: the string containing source file names with extensions
@@ -349,42 +349,36 @@ define SetupCompileNativeFileBody
$1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CFLAGS) \
$$($1_OPT_CFLAGS) $$($1_CFLAGS) -c
$1_COMPILER := $$($$($1_BASE)_CC)
$1_DEP_FLAG := $(C_FLAG_DEPS)
else ifneq ($$(filter %.m, $$($1_FILENAME)), )
# Compile as an Objective-C file
$1_FLAGS := -x objective-c $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) \
$$($1_BASE_CFLAGS) $$($1_OPT_CFLAGS) $$($1_CFLAGS) -c
$1_COMPILER := $$($$($1_BASE)_CC)
$1_DEP_FLAG := $(C_FLAG_DEPS)
else ifneq ($$(filter %.s %.S, $$($1_FILENAME)), )
# Compile as assembler file
$1_FLAGS := $$($1_BASE_ASFLAGS)
else ifneq ($$(filter %.S, $$($1_FILENAME)), )
# Compile as preprocessed assembler file
$1_FLAGS := $(BASIC_ASFLAGS) $$($1_BASE_ASFLAGS)
$1_COMPILER := $(AS)
$1_DEP_FLAG :=
else ifneq ($$(filter %.cpp %.cc %.mm, $$($1_FILENAME)), )
# Compile as a C++ or Objective-C++ file
$1_FLAGS := $(CFLAGS_CCACHE) $$($1_USE_PCH_FLAGS) $$($1_BASE_CXXFLAGS) \
$$($1_OPT_CXXFLAGS) $$($1_CXXFLAGS) -c
$1_COMPILER := $$($$($1_BASE)_CXX)
$1_DEP_FLAG := $(CXX_FLAG_DEPS)
else
$$(error Internal error in NativeCompilation.gmk: no compiler for file $$($1_FILENAME))
endif
ifeq ($$(filter %.s %.S, $$($1_FILENAME)), )
# And this is the dependency file for this obj file.
$1_DEPS_FILE := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_OBJ))
# The dependency target file lists all dependencies as empty targets to
# avoid make error "No rule to make target" for removed files
$1_DEPS_TARGETS_FILE := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_OBJ))
# And this is the dependency file for this obj file.
$1_DEPS_FILE := $$(patsubst %$(OBJ_SUFFIX),%.d,$$($1_OBJ))
# The dependency target file lists all dependencies as empty targets to
# avoid make error "No rule to make target" for removed files
$1_DEPS_TARGETS_FILE := $$(patsubst %$(OBJ_SUFFIX),%.d.targets,$$($1_OBJ))
# Only try to load individual dependency information files if the global
# file hasn't been loaded (could happen if make was interrupted).
ifneq ($$($$($1_BASE)_DEPS_FILE_LOADED), true)
# Include previously generated dependency information. (if it exists)
-include $$($1_DEPS_FILE)
-include $$($1_DEPS_TARGETS_FILE)
endif
# Only try to load individual dependency information files if the global
# file hasn't been loaded (could happen if make was interrupted).
ifneq ($$($$($1_BASE)_DEPS_FILE_LOADED), true)
# Include previously generated dependency information. (if it exists)
-include $$($1_DEPS_FILE)
-include $$($1_DEPS_TARGETS_FILE)
endif
ifneq ($$(strip $$($1_CFLAGS) $$($1_CXXFLAGS) $$($1_OPTIMIZATION)), )
@@ -405,7 +399,7 @@ define SetupCompileNativeFileBody
$$(call MakeDir, $$(@D))
ifneq ($(TOOLCHAIN_TYPE), microsoft)
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_COMPILER) $$($1_DEP_FLAG) \
$$($1_COMPILER) $$(GENDEPS_FLAGS) \
$$(addsuffix .tmp, $$($1_DEPS_FILE)) \
$$($1_COMPILE_OPTIONS)))
ifneq ($$($1_DEPS_FILE), )
@@ -424,15 +418,25 @@ define SetupCompileNativeFileBody
# Keep as much as possible on one execution line for best performance
# on Windows. No need to save exit code from compilation since
# pipefail is always active on Windows.
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_COMPILER) -showIncludes $$($1_COMPILE_OPTIONS))) \
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
-e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
$(ECHO) $$@: \\ > $$($1_DEPS_FILE) ; \
$(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_OBJ).log \
| $(SORT) -u >> $$($1_DEPS_FILE) ; \
$(ECHO) >> $$($1_DEPS_FILE) ; \
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEPS_FILE) > $$($1_DEPS_TARGETS_FILE)
ifeq ($$(filter %.S, $$($1_FILENAME)), )
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_COMPILER) -showIncludes $$($1_COMPILE_OPTIONS))) \
| $(TR) -d '\r' | $(GREP) -v -e "^Note: including file:" \
-e "^$$($1_FILENAME)$$$$" || test "$$$$?" = "1" ; \
$(ECHO) $$@: \\ > $$($1_DEPS_FILE) ; \
$(SED) $(WINDOWS_SHOWINCLUDE_SED_PATTERN) $$($1_OBJ).log \
| $(SORT) -u >> $$($1_DEPS_FILE) ; \
$(ECHO) >> $$($1_DEPS_FILE) ; \
$(SED) $(DEPENDENCY_TARGET_SED_PATTERN) $$($1_DEPS_FILE) > $$($1_DEPS_TARGETS_FILE)
else
# For assembler calls just create empty dependency lists
$$(call ExecuteWithLog, $$@, $$(call MakeCommandRelative, \
$$($1_COMPILER) $$($1_FLAGS) \
$(CC_OUT_OPTION)$$($1_OBJ) -Ta $$($1_SRC_FILE))) \
| $(TR) -d '\r' | $(GREP) -v -e "Assembling:" || test "$$$$?" = "1" ; \
$(ECHO) > $$($1_DEPS_FILE) ; \
$(ECHO) > $$($1_DEPS_TARGETS_FILE)
endif
endif
endif
endef
@@ -814,7 +818,7 @@ define SetupNativeCompilationBody
-include $$($1_PCH_DEPS_TARGETS_FILE)
$1_PCH_COMMAND := $$($1_CC) $$($1_CFLAGS) $$($1_EXTRA_CFLAGS) $$($1_SYSROOT_CFLAGS) \
$$($1_OPT_CFLAGS) -x c++-header -c $(C_FLAG_DEPS) \
$$($1_OPT_CFLAGS) -x c++-header -c $(GENDEPS_FLAGS) \
$$(addsuffix .tmp, $$($1_PCH_DEPS_FILE))
$$($1_PCH_FILE): $$($1_PRECOMPILED_HEADER) $$($1_COMPILE_VARDEPS_FILE)
@@ -974,6 +978,13 @@ define SetupNativeCompilationBody
$(CD) $$($1_SYMBOLS_DIR) && \
$$($1_OBJCOPY) --add-gnu-debuglink=$$($1_DEBUGINFO_FILES) $$($1_TARGET)
else ifeq ($(call isTargetOs, aix), true)
# AIX does not provide the equivalent of OBJCOPY to extract debug symbols,
# so we copy the compiled object with symbols to the .debuginfo file, which
# happens prior to the STRIP_CMD on the original target object file.
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).debuginfo
$1_CREATE_DEBUGINFO_CMDS := $(CP) $$($1_TARGET) $$($1_DEBUGINFO_FILES)
else ifeq ($(call isTargetOs, macosx), true)
$1_DEBUGINFO_FILES := \
$$($1_SYMBOLS_DIR)/$$($1_BASENAME).dSYM/Contents/Info.plist \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -44,9 +44,6 @@ LANGTOOLS_MODULES= \
# These models require buildtools-hotspot to process for gensrc
HOTSPOT_MODULES= \
jdk.aot \
jdk.hotspot.agent \
jdk.internal.vm.ci \
jdk.internal.vm.compiler \
jdk.internal.vm.compiler.management \
#

View File

@@ -205,7 +205,7 @@ var getJibProfiles = function (input) {
// Exclude list to use when Jib creates a source bundle
data.src_bundle_excludes = [
"build", "{,**/}webrev*", "{,**/}.hg", "{,**/}JTwork", "{,**/}JTreport",
"build", "{,**/}webrev*", "{,**/}.hg", "{,**/}JTwork*", "{,**/}JTreport*",
"{,**/}.git"
];
// Include list to use when creating a minimal jib source bundle which
@@ -239,7 +239,7 @@ var getJibProfilesCommon = function (input, data) {
// List of the main profile names used for iteration
common.main_profile_names = [
"linux-x64", "linux-x86", "macosx-x64",
"linux-x64", "linux-x86", "macosx-x64", "macosx-aarch64",
"windows-x64", "windows-x86", "windows-aarch64",
"linux-aarch64", "linux-arm32", "linux-ppc64le", "linux-s390x"
];
@@ -251,8 +251,6 @@ var getJibProfilesCommon = function (input, data) {
configure_args: concat("--enable-jtreg-failure-handler",
"--with-exclude-translations=de,es,fr,it,ko,pt_BR,sv,ca,tr,cs,sk,ja_JP_A,ja_JP_HA,ja_JP_HI,ja_JP_I,zh_TW,zh_HK",
"--disable-manpages",
"--disable-jvm-feature-aot",
"--disable-jvm-feature-graal",
"--disable-jvm-feature-shenandoahgc",
versionArgs(input, common))
};
@@ -396,8 +394,13 @@ var getJibProfilesCommon = function (input, data) {
};
};
common.boot_jdk_version = "15";
common.boot_jdk_build_number = "36";
if (input.build_os == 'macosx' && input.build_cpu == 'aarch64') {
common.boot_jdk_version = "17";
common.boot_jdk_build_number = "19";
} else {
common.boot_jdk_version = "16";
common.boot_jdk_build_number = "36";
}
common.boot_jdk_home = input.get("boot_jdk", "install_path") + "/jdk-"
+ common.boot_jdk_version
+ (input.build_os == "macosx" ? ".jdk/Contents/Home" : "");
@@ -419,8 +422,10 @@ var getJibProfilesProfiles = function (input, common, data) {
"linux-x64": {
target_os: "linux",
target_cpu: "x64",
dependencies: ["devkit", "gtest", "graphviz", "pandoc"],
configure_args: concat(common.configure_args_64bit,
dependencies: ["devkit", "gtest", "build_devkit", "graphviz", "pandoc"],
configure_args: concat(
(input.build_cpu == "x64" ? common.configure_args_64bit
: "--openjdk-target=x86_64-linux-gnu"),
"--with-zlib=system", "--disable-dtrace",
(isWsl(input) ? [ "--host=x86_64-unknown-linux-gnu",
"--build=x86_64-unknown-linux-gnu" ] : [])),
@@ -447,6 +452,14 @@ var getJibProfilesProfiles = function (input, common, data) {
"SETFILE=/usr/bin/SetFile"),
},
"macosx-aarch64": {
target_os: "macosx",
target_cpu: "aarch64",
dependencies: ["devkit", "gtest"],
configure_args: concat(common.configure_args_64bit, "--with-zlib=system",
"--with-macosx-version-max=11.00.00"),
},
"windows-x64": {
target_os: "windows",
target_cpu: "x64",
@@ -557,7 +570,7 @@ var getJibProfilesProfiles = function (input, common, data) {
});
// Generate -gcov profiles
[ "linux-aarch64", "linux-x64", "macosx-x64" ].forEach(function (name) {
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64" ].forEach(function (name) {
var gcovName = name + "-gcov";
profiles[gcovName] = clone(profiles[name]);
profiles[gcovName].default_make_targets = ["product-bundles", "test-bundles"];
@@ -646,7 +659,7 @@ var getJibProfilesProfiles = function (input, common, data) {
});
// JCov profiles build JCov-instrumented JDK image based on images provided through dependencies.
[ "linux-aarch64", "linux-x64", "macosx-x64", "windows-x64" ]
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
.forEach(function (name) {
var jcovName = name + "-jcov";
profiles[jcovName] = clone(common.main_profile_base);
@@ -659,11 +672,7 @@ var getJibProfilesProfiles = function (input, common, data) {
["--with-jcov-input-jdk=" + input.get(name + ".jdk", "home_path")]);
});
//
// Define artifacts for profiles
//
// Macosx bundles are named osx
// tar.gz.
var artifactData = {
"linux-x64": {
platform: "linux-x64",
@@ -672,9 +681,13 @@ var getJibProfilesProfiles = function (input, common, data) {
platform: "linux-x86",
},
"macosx-x64": {
platform: "osx-x64",
platform: "macos-x64",
jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home",
},
"macosx-aarch64": {
platform: "macos-aarch64",
jdk_subdir: "jdk-" + data.version + ".jdk/Contents/Home",
},
"windows-x64": {
platform: "windows-x64",
jdk_suffix: "zip",
@@ -842,7 +855,7 @@ var getJibProfilesProfiles = function (input, common, data) {
});
// Artifacts of JCov profiles
[ "linux-aarch64", "linux-x64", "macosx-x64", "windows-x64" ]
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64", "windows-x64" ]
.forEach(function (name) {
var o = artifactData[name]
var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
@@ -862,7 +875,7 @@ var getJibProfilesProfiles = function (input, common, data) {
});
// Artifacts of gcov (native-code-coverage) profiles
[ "linux-aarch64", "linux-x64", "macosx-x64" ].forEach(function (name) {
[ "linux-aarch64", "linux-x64", "macosx-x64", "macosx-aarch64" ].forEach(function (name) {
var o = artifactData[name]
var pf = o.platform
var jdk_subdir = (o.jdk_subdir != null ? o.jdk_subdir : "jdk-" + data.version);
@@ -974,8 +987,11 @@ var getJibProfilesProfiles = function (input, common, data) {
// This gives us a guaranteed working version of lldb for the jtreg failure handler.
if (input.build_os == "macosx") {
macosxRunTestExtra = {
environment_path: input.get("devkit", "install_path")
+ "/Xcode.app/Contents/Developer/usr/bin"
dependencies: [ "lldb" ],
environment_path: [
input.get("gnumake", "install_path") + "/bin",
input.get("lldb", "install_path") + "/Xcode.app/Contents/Developer/usr/bin",
],
};
profiles["run-test"] = concatObjects(profiles["run-test"], macosxRunTestExtra);
profiles["run-test-prebuilt"] = concatObjects(profiles["run-test-prebuilt"], macosxRunTestExtra);
@@ -1029,10 +1045,10 @@ var getJibProfilesProfiles = function (input, common, data) {
var getJibProfilesDependencies = function (input, common) {
var devkit_platform_revisions = {
linux_x64: "gcc10.2.0-OL6.4+1.0",
macosx_x64: "Xcode11.3.1-MacOSX10.15+1.1",
windows_x64: "VS2019-16.7.2+1.1",
linux_aarch64: "gcc10.2.0-OL7.6+1.0",
linux_x64: "gcc10.3.0-OL6.4+1.0",
macosx: "Xcode12.4+1.0",
windows_x64: "VS2019-16.9.3+1.0",
linux_aarch64: "gcc10.3.0-OL7.6+1.0",
linux_arm: "gcc8.2.0-Fedora27+1.0",
linux_ppc64le: "gcc8.2.0-Fedora27+1.0",
linux_s390x: "gcc8.2.0-Fedora27+1.0"
@@ -1043,6 +1059,8 @@ var getJibProfilesDependencies = function (input, common) {
: input.target_platform);
if (input.target_platform == "windows_aarch64") {
devkit_platform = "windows_x64";
} else if (input.target_os == "macosx") {
devkit_platform = "macosx";
}
var devkit_cross_prefix = "";
if (!(input.target_os == "windows")) {
@@ -1061,22 +1079,23 @@ var getJibProfilesDependencies = function (input, common) {
boot_jdk_platform = "windows-" + input.build_cpu;
boot_jdk_ext = ".zip";
}
var boot_jdk = {
server: "jpg",
product: "jdk",
version: common.boot_jdk_version,
build_number: common.boot_jdk_build_number,
file: "bundles/" + boot_jdk_platform + "/jdk-" + common.boot_jdk_version + "_"
+ boot_jdk_platform + "_bin" + boot_jdk_ext,
configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
environment_path: common.boot_jdk_home + "/bin"
}
var makeBinDir = (input.build_os == "windows"
? input.get("gnumake", "install_path") + "/cygwin/bin"
: input.get("gnumake", "install_path") + "/bin");
var dependencies = {
boot_jdk: {
server: "jpg",
product: "jdk",
version: common.boot_jdk_version,
build_number: common.boot_jdk_build_number,
file: "bundles/" + boot_jdk_platform + "/jdk-" + common.boot_jdk_version + "_"
+ boot_jdk_platform + "_bin" + boot_jdk_ext,
configure_args: "--with-boot-jdk=" + common.boot_jdk_home,
environment_path: common.boot_jdk_home + "/bin"
},
boot_jdk: boot_jdk,
devkit: {
organization: common.organization,
@@ -1092,7 +1111,17 @@ var getJibProfilesDependencies = function (input, common) {
organization: common.organization,
ext: "tar.gz",
module: "devkit-" + input.build_platform,
revision: devkit_platform_revisions[input.build_platform]
revision: devkit_platform_revisions[input.build_platform],
// Only set --with-build-devkit when cross compiling.
configure_args: (input.build_cpu == input.target_cpu ? false
: "--with-build-devkit=" + input.get("build_devkit", "home_path"))
},
lldb: {
organization: common.organization,
ext: "tar.gz",
module: "devkit-macosx" + (input.build_cpu == "x64" ? "_x64" : ""),
revision: (input.build_cpu == "x64" ? "Xcode11.3.1-MacOSX10.15+1.1" : devkit_platform_revisions[devkit_platform])
},
cups: {
@@ -1120,8 +1149,7 @@ var getJibProfilesDependencies = function (input, common) {
},
jcov: {
// Until an official build of JCov is available, use custom
// build to support classfile version 60.
// Use custom build of JCov
// See CODETOOLS-7902734 for more info.
// server: "jpg",
// product: "jcov",
@@ -1129,7 +1157,7 @@ var getJibProfilesDependencies = function (input, common) {
// build_number: "b07",
// file: "bundles/jcov-3_0.zip",
organization: common.organization,
revision: "3.0-60-support+1.0",
revision: "3.0-7-jdk-asm+1.0",
ext: "zip",
environment_name: "JCOV_HOME",
},

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -61,7 +61,6 @@ BOOT_MODULES= \
# should carefully be considered if it should be upgradeable or not.
UPGRADEABLE_PLATFORM_MODULES= \
java.compiler \
jdk.aot \
jdk.internal.vm.compiler \
jdk.internal.vm.compiler.management \
#

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2020, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
@@ -25,19 +25,19 @@
# Versions and download locations for dependencies used by pre-submit testing.
BOOT_JDK_VERSION=15
BOOT_JDK_VERSION=16
JTREG_VERSION=5.1
JTREG_BUILD=b01
GTEST_VERSION=1.8.1
LINUX_X64_BOOT_JDK_FILENAME=openjdk-15_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk15/779bf45e88a44cbd9ea6621d33e33db1/36/GPL/openjdk-15_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=bb67cadee687d7b486583d03c9850342afea4593be4f436044d785fba9508fb7
LINUX_X64_BOOT_JDK_FILENAME=openjdk-16_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_linux-x64_bin.tar.gz
LINUX_X64_BOOT_JDK_SHA256=e952958f16797ad7dc7cd8b724edd69ec7e0e0434537d80d6b5165193e33b931
WINDOWS_X64_BOOT_JDK_FILENAME=openjdk-15_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk15/779bf45e88a44cbd9ea6621d33e33db1/36/GPL/openjdk-15_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=764e39a71252a9791118a31ae56a4247c049463bda5eb72497122ec50b1d07f8
WINDOWS_X64_BOOT_JDK_FILENAME=openjdk-16_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_windows-x64_bin.zip
WINDOWS_X64_BOOT_JDK_SHA256=a78bdeaad186297601edac6772d931224d7af6f682a43372e693c37020bd37d6
MACOS_X64_BOOT_JDK_FILENAME=openjdk-115_osx-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk15/779bf45e88a44cbd9ea6621d33e33db1/36/GPL/openjdk-15_osx-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=ab842c8c0953b816be308c098c1a021177a4776bef24da85b6bafbbd657c7e1a
MACOS_X64_BOOT_JDK_FILENAME=openjdk-16_osx-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk16/7863447f0ab643c585b9bdebf67c69db/36/GPL/openjdk-16_osx-x64_bin.tar.gz
MACOS_X64_BOOT_JDK_SHA256=16f3e39a31e86f3f51b0b4035a37494a47ed3c4ead760eafc6afd7afdf2ad9f2

View File

@@ -36,6 +36,6 @@ DEFAULT_VERSION_EXTRA3=0
DEFAULT_VERSION_DATE=2021-09-14
DEFAULT_VERSION_CLASSFILE_MAJOR=61 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="15 16 17"
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="16 17"
DEFAULT_JDK_SOURCE_TARGET_VERSION=17
DEFAULT_PROMOTED_VERSION_PRE=ea

View File

@@ -1,4 +1,4 @@
CLDR - Unicode Common Locale Data Repository
http://cldr.unicode.org
CLDR version installed: 38
CLDR version installed: 39

View File

@@ -46,7 +46,7 @@ $Revision$
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "38" >
<!ATTLIST version cldrVersion CDATA #FIXED "39" >
<!--@MATCH:any-->
<!--@VALUE-->
<!ATTLIST version draft (approved | contributed | provisional | unconfirmed | true | false) #IMPLIED >

View File

@@ -16,7 +16,7 @@ $Revision$
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:regex/\$Revision.*\$-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "38" >
<!ATTLIST version cldrVersion CDATA #FIXED "39" >
<!--@MATCH:version-->
<!--@VALUE-->

View File

@@ -17,7 +17,7 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!ATTLIST version number CDATA #REQUIRED >
<!--@MATCH:any-->
<!--@METADATA-->
<!ATTLIST version cldrVersion CDATA #FIXED "38" >
<!ATTLIST version cldrVersion CDATA #FIXED "39" >
<!--@MATCH:version-->
<!--@VALUE-->
<!ATTLIST version unicodeVersion CDATA #FIXED "13.0.0" >
@@ -384,6 +384,9 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!ATTLIST unitConstant status NMTOKEN #IMPLIED >
<!--@MATCH:literal/approximate, exact-->
<!--@VALUE-->
<!ATTLIST unitConstant description CDATA #IMPLIED >
<!--@MATCH:any-->
<!--@METADATA-->
<!ELEMENT unitQuantities ( unitQuantity* ) >
@@ -396,6 +399,8 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!ATTLIST unitQuantity status NMTOKEN #IMPLIED >
<!--@MATCH:regex/simple-->
<!--@VALUE-->
<!ATTLIST unitQuantity description CDATA #IMPLIED >
<!--@METADATA-->
<!ELEMENT convertUnits ( convertUnit* ) >
@@ -412,8 +417,10 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!--@MATCH:regex/[-+*/\._ 0-9a-zA-Z]+-->
<!--@VALUE-->
<!ATTLIST convertUnit systems NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/ussystem, uksystem-->
<!--@MATCH:set/literal/ussystem, uksystem, metric, si, other -->
<!--@VALUE-->
<!ATTLIST convertUnit description CDATA #IMPLIED >
<!--@METADATA-->
<!ELEMENT unitPreferenceData ( unitPreferences* ) >
<!ATTLIST unitPreferenceData draft (approved | contributed | provisional | unconfirmed) #IMPLIED >
@@ -1242,7 +1249,7 @@ Except as contained in this notice, the name of a copyright holder shall not be
<!ATTLIST grammaticalCase scope NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/units-->
<!ATTLIST grammaticalCase values NMTOKENS #IMPLIED >
<!--@MATCH:set/literal/ablative, accusative, comitative, dative, ergative, genitive, instrumental, locative, locativecopulative, nominative, oblique, partitive, prepositional, sociative, vocative-->
<!--@MATCH:set/literal/abessive, ablative, accusative, adessive, allative, causal, comitative, dative, delative, elative, ergative, essive, genitive, illative, inessive, instrumental, locative, locativecopulative, nominative, oblique, partitive, prepositional, sociative, sublative, superessive, terminative, translative, vocative-->
<!--@VALUE-->
<!ELEMENT grammaticalGender EMPTY >

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -318,7 +318,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="rn">Rundi</language>
<language type="ro">Roemeens</language>
<language type="rof">Rombo</language>
<language type="root">Root</language>
<language type="ru">Russies</language>
<language type="rup">Aromanies</language>
<language type="rw">Rwandees</language>
@@ -2371,9 +2370,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="America/Santa_Isabel">
<exemplarCity>Santa Isabel</exemplarCity>
</zone>
<zone type="Pacific/Honolulu">
<exemplarCity>Honolulu</exemplarCity>
</zone>
<zone type="Etc/UTC">
<long>
<standard>Gekoördineerde universele tyd</standard>
@@ -2493,12 +2489,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Australia/Broken_Hill">
<exemplarCity>Broken Hill</exemplarCity>
</zone>
<zone type="Australia/Currie">
<exemplarCity>Currie</exemplarCity>
</zone>
<zone type="Australia/Melbourne">
<exemplarCity>Melbourne</exemplarCity>
</zone>
<zone type="Australia/Currie">
<exemplarCity>Currie</exemplarCity>
</zone>
<zone type="Australia/Hobart">
<exemplarCity>Hobart</exemplarCity>
</zone>
@@ -3531,6 +3527,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="America/Nome">
<exemplarCity>Nome</exemplarCity>
</zone>
<zone type="Pacific/Honolulu">
<exemplarCity>Honolulu</exemplarCity>
</zone>
<zone type="Pacific/Johnston">
<exemplarCity>Johnston</exemplarCity>
</zone>
@@ -5773,7 +5772,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName>Wes-Afrikaanse CFA-frank</displayName>
<displayName count="one">Wes-Afrikaanse CFA-frank</displayName>
<displayName count="other">Wes-Afrikaanse CFA-frank</displayName>
<symbol draft="contributed">CFA</symbol>
<symbol draft="contributed">FCFA</symbol>
</currency>
<currency type="XPF">
<displayName>CFP-frank</displayName>
@@ -5995,7 +5994,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} karaat</unitPattern>
<unitPattern count="other">{0} karaat</unitPattern>
</unit>
<unit type="concentr-milligram-per-deciliter">
<unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>milligram per desiliter</displayName>
<unitPattern count="one">{0} milligram per desiliter</unitPattern>
<unitPattern count="other">{0} milligram per desiliter</unitPattern>
@@ -6917,7 +6916,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} kar.</unitPattern>
<unitPattern count="other">{0} kar.</unitPattern>
</unit>
<unit type="concentr-milligram-per-deciliter">
<unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/d</displayName>
<unitPattern count="one">{0} mg/d</unitPattern>
<unitPattern count="other">{0} mg/d</unitPattern>
@@ -7258,9 +7257,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} mm</unitPattern>
</unit>
<unit type="length-micrometer">
<displayName>µm</displayName>
<unitPattern count="one">{0} µm</unitPattern>
<unitPattern count="other">{0} µm</unitPattern>
<displayName>μm</displayName>
<unitPattern count="one">{0} μm</unitPattern>
<unitPattern count="other">{0} μm</unitPattern>
</unit>
<unit type="length-nanometer">
<displayName>nm</displayName>
@@ -7372,9 +7371,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
<displayName>µg</displayName>
<unitPattern count="one">{0} µg</unitPattern>
<unitPattern count="other">{0} µg</unitPattern>
<displayName>μg</displayName>
<unitPattern count="one">{0} μg</unitPattern>
<unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>VSA-ton</displayName>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -376,7 +376,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="ro">ሮማኒያን</language>
<language type="ro_MD">ሞልዳቪያንኛ</language>
<language type="rof">ሮምቦ</language>
<language type="root">ሩት</language>
<language type="ru">ራሽያኛ</language>
<language type="rup">አሮማንያን</language>
<language type="rw">ኪንያርዋንድኛ</language>
@@ -2986,9 +2985,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="America/Santa_Isabel">
<exemplarCity>ሳንታ ኢዛቤል</exemplarCity>
</zone>
<zone type="Pacific/Honolulu">
<exemplarCity>ሆኖሉሉ</exemplarCity>
</zone>
<zone type="Etc/UTC">
<long>
<standard>የተቀነባበረ ሁለገብ ሰዓት</standard>
@@ -3108,12 +3104,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Australia/Broken_Hill">
<exemplarCity>ብሮክን ሂል</exemplarCity>
</zone>
<zone type="Australia/Currie">
<exemplarCity>ከሪ</exemplarCity>
</zone>
<zone type="Australia/Melbourne">
<exemplarCity>ሜልቦርን</exemplarCity>
</zone>
<zone type="Australia/Currie">
<exemplarCity>ከሪ</exemplarCity>
</zone>
<zone type="Australia/Hobart">
<exemplarCity>ሆባርት</exemplarCity>
</zone>
@@ -4146,6 +4142,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="America/Nome">
<exemplarCity>ኖሜ</exemplarCity>
</zone>
<zone type="Pacific/Honolulu">
<exemplarCity>ሆኖሉሉ</exemplarCity>
</zone>
<zone type="Pacific/Johnston">
<exemplarCity>ጆንስተን</exemplarCity>
</zone>
@@ -6364,7 +6363,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName>የምዕራብ አፍሪካ ሴፋ ፍራንክ</displayName>
<displayName count="one">የምዕራብ አፍሪካ ሴፋ ፍራንክ</displayName>
<displayName count="other">የምዕራብ አፍሪካ ሴፋ ፍራንክ</displayName>
<symbol draft="contributed">CFA</symbol>
<symbol draft="contributed">FCFA</symbol>
</currency>
<currency type="XPF">
<displayName>ሲ ኤፍ ፒ ፍራንክ</displayName>
@@ -6590,7 +6589,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ካራት</unitPattern>
<unitPattern count="other">{0} ካራት</unitPattern>
</unit>
<unit type="concentr-milligram-per-deciliter">
<unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>ሚሊ ግራም በ ዴሲ ሊትር</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7023,9 +7022,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
<displayName>µg</displayName>
<unitPattern count="one">{0} µg</unitPattern>
<unitPattern count="other">{0} µg</unitPattern>
<displayName>μg</displayName>
<unitPattern count="one">{0} μg</unitPattern>
<unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ቶን</displayName>
@@ -7398,7 +7397,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPrefixPattern>ሚ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
<unitPrefixPattern>µ{0}</unitPrefixPattern>
<unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>ና{0}</unitPrefixPattern>
@@ -7546,7 +7545,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="one">{0} ካራት</unitPattern>
<unitPattern count="other">{0} ካራት</unitPattern>
</unit>
<unit type="concentr-milligram-per-deciliter">
<unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>mg/dL</displayName>
<unitPattern count="one">{0} mg/dL</unitPattern>
<unitPattern count="other">{0} mg/dL</unitPattern>
@@ -7974,9 +7973,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} mg</unitPattern>
</unit>
<unit type="mass-microgram">
<displayName>µg</displayName>
<unitPattern count="one">{0} µg</unitPattern>
<unitPattern count="other">{0} µg</unitPattern>
<displayName>μg</displayName>
<unitPattern count="one">{0} μg</unitPattern>
<unitPattern count="other">{0} μg</unitPattern>
</unit>
<unit type="mass-ton">
<displayName>ቶን</displayName>
@@ -8338,7 +8337,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPrefixPattern>ሚ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-6">
<unitPrefixPattern>µ{0}</unitPrefixPattern>
<unitPrefixPattern>μ{0}</unitPrefixPattern>
</compoundUnit>
<compoundUnit type="10p-9">
<unitPrefixPattern>ና{0}</unitPrefixPattern>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)
@@ -420,7 +420,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<language type="ro_MD">المولدوفية</language>
<language type="rof">الرومبو</language>
<language type="rom">الغجرية</language>
<language type="root">الجذر</language>
<language type="ru">الروسية</language>
<language type="rup">الأرومانيان</language>
<language type="rw">الكينيارواندا</language>
@@ -3663,9 +3662,6 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="America/Santa_Isabel">
<exemplarCity>سانتا إيزابيل</exemplarCity>
</zone>
<zone type="Pacific/Honolulu">
<exemplarCity>هونولولو</exemplarCity>
</zone>
<zone type="Etc/UTC">
<long>
<standard>التوقيت العالمي المنسق</standard>
@@ -3785,12 +3781,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="Australia/Broken_Hill">
<exemplarCity>بروكن هيل</exemplarCity>
</zone>
<zone type="Australia/Currie">
<exemplarCity>كوري</exemplarCity>
</zone>
<zone type="Australia/Melbourne">
<exemplarCity>ميلبورن</exemplarCity>
</zone>
<zone type="Australia/Currie">
<exemplarCity>كوري</exemplarCity>
</zone>
<zone type="Australia/Hobart">
<exemplarCity>هوبارت</exemplarCity>
</zone>
@@ -4823,6 +4819,9 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<zone type="America/Nome">
<exemplarCity>نوم</exemplarCity>
</zone>
<zone type="Pacific/Honolulu">
<exemplarCity>هونولولو</exemplarCity>
</zone>
<zone type="Pacific/Johnston">
<exemplarCity>جونستون</exemplarCity>
</zone>
@@ -8355,7 +8354,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName count="few">فرنك غرب أفريقي</displayName>
<displayName count="many">فرنك غرب أفريقي</displayName>
<displayName count="other">فرنك غرب أفريقي</displayName>
<symbol draft="contributed">CFA</symbol>
<symbol draft="contributed">FCFA</symbol>
</currency>
<currency type="XPD">
<displayName>بالاديوم</displayName>
@@ -8770,7 +8769,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} قيراطًا</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
<unit type="concentr-milligram-per-deciliter">
<unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>مغم/ديسيبل</displayName>
<unitPattern count="zero">{0} مغم/ديسيبل</unitPattern>
<unitPattern count="one">{0} مغم/ديسيبل</unitPattern>
@@ -10506,7 +10505,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="many">{0} قيراط</unitPattern>
<unitPattern count="other">{0} قيراط</unitPattern>
</unit>
<unit type="concentr-milligram-per-deciliter">
<unit type="concentr-milligram-ofglucose-per-deciliter">
<displayName>مغم/ديسبل</displayName>
<unitPattern count="zero">{0} مغم/ديسبل</unitPattern>
<unitPattern count="one">{0} مغم/ديسبل</unitPattern>
@@ -10624,13 +10623,13 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<unitPattern count="other">{0} تيرابت</unitPattern>
</unit>
<unit type="digital-gigabyte">
<displayName>غيغابايت</displayName>
<unitPattern count="zero">{0} غيغابايت</unitPattern>
<unitPattern count="one">{0} غيغابايت</unitPattern>
<unitPattern count="two">{0} غيغابايت</unitPattern>
<unitPattern count="few">{0} غيغابايت</unitPattern>
<unitPattern count="many">{0} غيغابايت</unitPattern>
<unitPattern count="other">{0} غيغابايت</unitPattern>
<displayName>GB</displayName>
<unitPattern count="zero">{0} GB</unitPattern>
<unitPattern count="one">{0} GB</unitPattern>
<unitPattern count="two">{0} GB</unitPattern>
<unitPattern count="few">{0} GB</unitPattern>
<unitPattern count="many">{0} GB</unitPattern>
<unitPattern count="other">{0} GB</unitPattern>
</unit>
<unit type="digital-gigabit">
<displayName>غيغابت</displayName>
@@ -10643,12 +10642,12 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
</unit>
<unit type="digital-megabyte">
<displayName>ميغابايت</displayName>
<unitPattern count="zero">{0} ميغابايت</unitPattern>
<unitPattern count="one">{0} ميغابايت</unitPattern>
<unitPattern count="two">{0} ميغابايت</unitPattern>
<unitPattern count="few">{0} ميغابايت</unitPattern>
<unitPattern count="many">{0} ميغابايت</unitPattern>
<unitPattern count="other">{0} ميغابايت</unitPattern>
<unitPattern count="zero">{0} MB</unitPattern>
<unitPattern count="one">{0} MB</unitPattern>
<unitPattern count="two">{0} MB</unitPattern>
<unitPattern count="few">{0} MB</unitPattern>
<unitPattern count="many">{0} MB</unitPattern>
<unitPattern count="other">{0} MB</unitPattern>
</unit>
<unit type="digital-megabit">
<displayName>ميغابت</displayName>
@@ -11030,7 +11029,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName>نقطة/سم</displayName>
<unitPattern count="zero">{0} نقطة/سم</unitPattern>
<unitPattern count="one">{0} نقطة/سم</unitPattern>
<unitPattern count="two">{0} نقطة/سم</unitPattern>
<unitPattern count="two">{0} بكسل/سم</unitPattern>
<unitPattern count="few">{0} نقاط/سم</unitPattern>
<unitPattern count="many">{0} نقطة/سم</unitPattern>
<unitPattern count="other">{0} نقطة/سم</unitPattern>
@@ -11039,7 +11038,7 @@ Warnings: All cp values have U+FE0F characters removed. See /annotationsDerived/
<displayName>نقطة لكل بوصة</displayName>
<unitPattern count="zero">{0} نقطة/بوصة</unitPattern>
<unitPattern count="one">{0} نقطة/بوصة</unitPattern>
<unitPattern count="two">{0} نقطة/بوصة</unitPattern>
<unitPattern count="two">{0} بكسل/بوصة</unitPattern>
<unitPattern count="few">{0} نقاط/بوصة</unitPattern>
<unitPattern count="many">{0} نقطة/بوصة</unitPattern>
<unitPattern count="other">{0} نقطة/بوصة</unitPattern>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ldml SYSTEM "../../common/dtd/ldml.dtd">
<!-- Copyright © 1991-2020 Unicode, Inc.
<!-- Copyright © 1991-2021 Unicode, Inc.
For terms of use, see http://www.unicode.org/copyright.html
Unicode and the Unicode Logo are registered trademarks of Unicode, Inc. in the U.S. and other countries.
CLDR data files are interpreted according to the LDML specification (http://unicode.org/reports/tr35/)

Some files were not shown because too many files have changed in this diff Show More