Compare commits

...

553 Commits

Author SHA1 Message Date
Alexey Ushakov
27255090d8 JBR-6612 Provide standard scripts for performance measurements
Initial implementation for linux and macOS
2024-02-16 18:33:11 +01:00
Nikita Tsarev
0dde92980d JBR-6297: Don't check for NSInputManager wantsToHandleMouseEvents in mouseDown by default 2024-02-15 20:42:32 +01:00
Vitaly Provodin
940c5e0e1f JBR-6649 add synchronization for creating UI 2024-02-15 12:05:11 +07:00
Vitaly Provodin
e0c5898502 update exclude list on results of 21.0.2_b357.3 test runs 2024-02-15 12:05:10 +07:00
Nikita Provotorov
168e0270fe JBR-6707 Compilation errors in main branch.
Replace assert-s introduced in JBR-2460 with the project-special DASSERT-s.

The patch has been backported from the main branch for better code consistency between the branches.
2024-02-15 01:11:00 +01:00
Dmitrii Morskii
cec4ca3d38 JBR-6671 added option 'freetype.font.rendering' 2024-02-14 18:03:51 +01:00
Nikita Tsarev
70d60692f0 JBR-6704: Fix extra IME events when a ctrl shortcut causes window focus switch [macOS] 2024-02-14 13:37:00 +01:00
Alexey Ushakov
2aa3828f59 JBR-6522 macOS: SIGSEGV at [libawt_lwawt.dylib+0x8eaa8] MTLGC_DestroyMTLGraphicsConfig
Performing flush of pending rendering operation before destroying MTLGraphicsConfig
2024-02-14 13:30:46 +01:00
Nikita Gubarkov
b530b4f4cb JBR-4618 Force window size update after display reconfiguration
- Re-create all GraphicsDevices on displayChanged()
2024-02-13 16:23:58 +01:00
Maxim Kartashev
79d1b6ce2f JBR-6617 Wayland: java/awt/Frame/HugeFrame/HugeFrame.java crashes JVM 2024-02-12 13:17:03 +04:00
Maxim Kartashev
93dabf3971 JBR-6598 Wayland: window gets un-maximized after switching
When the size of the buffer changes, cancel the frame callback
and make sure that the next surface commit happens with the new buffer.
2024-02-12 12:05:52 +03:00
Maxim Kartashev
e5988f7c32 JBR-6469 Wayland: java/awt/image/ColorModel/DrawCustomColorModel.java throws UnsupportedOperationException 2024-02-12 08:54:25 +03:00
Maxim Kartashev
d501835140 JBR-6467 Wayland: java/awt/GraphicsConfiguration/NormalizingTransformTest/NormalizingTransformTest.java fails 2024-02-12 08:53:32 +03:00
Vladimir Dvorak
1d45d6fbc9 JBR-6643 - fix GitHub actions builds 2024-02-09 08:29:44 +01:00
Vladimir Dvorak
b2abfd5d97 JBR-6419 - fix macos-aarch64 build problem 2024-02-08 08:51:15 +01:00
Vitaly Provodin
1d9ff70cbe update exclude list on results of 21.0.2_b351.1 test runs 2024-02-07 06:53:12 +07:00
Vitaly Provodin
0d245769ea JBR-6404 synchronize drawing and the test checking 2024-02-07 06:53:12 +07:00
Nikita Gubarkov
73099de6f8 JBR-6651 Exclude keycap emoji from EmojiVariation test. 2024-02-05 15:27:21 +01:00
Maxim Kartashev
58c242f128 JBR-6468 Wayland: java/awt/datatransfer/MimeFormatsTest.java fails by timeout
Excluded the test from jdk_awt_wayland as it can't be made to work
under Wayland.
2024-02-05 15:20:28 +04:00
Vitaly Provodin
32128820c1 update exclude list on results of 21.0.2_b346.3 test runs 2024-02-03 05:27:50 +07:00
Vladimir Dvorak
d950326ef9 JBR-6419 - resolve win+macos jdk build issues 2024-01-31 19:53:36 +01:00
Dmitrii Morskii
a1b7633997 JBR-6604 supported case when fonts directory is missing 2024-01-31 19:06:07 +01:00
Dmitry Batrak
2a504dfd37 JBR-6449 Introduce FontMetricsAccessor into JBR API
mute calculation of metrics via full text layout if overrider is installed
2024-01-31 19:07:00 +02:00
Vladimir Dvorak
b128bb4b21 JBR-6419 - support for enhanced redefinition of java.lang.Object 2024-01-29 21:20:28 +01:00
Maxim Kartashev
8b014c3f35 JBR-4203 test/hotspot/jtreg/compiler/arguments: Option should be unknown (non-X86CPU)
Added the -XX:-IgnoreUnrecognizedVMOptions option to the test driver for
command line options, since it is often used to check that a certain
option is not supported.
2024-01-25 17:06:06 +04:00
Dmitry
19c6253d8f JBR-3793 Accept unrecognized options and make them available in Java
This patch:

- Change default behavior to ignore unrecognized options (+IgnoreUnrecognizedVMOptions)

- Store all ignored values to: "java.vm.unrecognized.options" as "+BogusOption01 +BogusOption02" (space separated), see testcase

- Explicitly set -IgnoreUnrecognizedVMOptions for couple of tests, that rely on default behavior
2024-01-25 13:40:44 +04:00
Maxim Kartashev
405c272588 8319662: ForkJoinPool trims worker threads too slowly
8319498: ForkJoinPool.invoke(ForkJoinTask) does not specify behavior when task throws checked exception

Reviewed-by: alanb
2024-01-25 11:14:52 +04:00
Maxim Kartashev
3a6456e1f4 8288899: java/util/concurrent/ExecutorService/CloseTest.java failed with "InterruptedException: sleep interrupted"
Reviewed-by: alanb
2024-01-24 18:32:40 +04:00
Vitaly Provodin
283beedc05 fixup! update exclude list on results of 21.0.2_b341.4 test runs 2024-01-24 16:10:18 +07:00
Maxim Kartashev
512c96bbfb JBR-6547 WLToolkit: no app icon in GNOME
Allow to associate the application's window with .desktop file with icon
and other info with -Dawt.app.id=... (DBus application name similar to
WM_CLASS in X
2024-01-24 12:36:24 +04:00
Vitaly Provodin
ff28bfc856 update exclude list on results of 21.0.2_b341.4 test runs 2024-01-24 07:22:30 +07:00
Maxim Kartashev
d5a81ad9ea JBR-6559 Wayland: popups may stop working after a while
Cancel the frame callback when hiding a window.
2024-01-22 19:21:33 +04:00
Dmitry Batrak
f78a30a934 JBR-6579 jb/java/api/frontend/FontMetricsAccessorTest.java: Unexpected advance returned 2024-01-22 14:10:05 +02:00
Dmitry Batrak
793c5f4c06 JBR-6579 jb/java/api/frontend/FontMetricsAccessorTest.java: Unexpected advance returned 2024-01-22 14:10:05 +02:00
Dmitry Batrak
8bf6444304 JBR-6569 macOS: SIGILL at [libsystem_kernel] __kill in This decoder will only decode classes that adopt NSSecureCoding. Class 'AWTView' does not adopt it.
(cherry picked from commit 7af653070f)
(cherry picked from commit d24a9085796b1226d72154af8914d4f39960766a)
2024-01-22 10:29:40 +02:00
Dmitry Batrak
0871a2097a JBR-6449 Introduce FontMetricsAccessor into JBR API
fix test

(cherry picked from commit 5befaea6af)
(cherry picked from commit 7433ac2df11e77ad504c15fbda045d3beb3265fb)
2024-01-19 11:12:17 +02:00
Vitaly Provodin
d3d3111348 update exclude list on results of 21.0.2_b337 test runs 2024-01-19 06:28:25 +07:00
Tobias Hartmann
b81b6fae65 8322985: [BACKOUT] 8318562: Computational test more than 2x slower when AVX instructions are used
Backport-of: ed9f3243f0
2024-01-17 20:31:49 +07:00
Ravi Reddy
210d8cd65e 8322883: [BACKOUT] 8225377: type annotations are not visible to javac plugins across compilation boundaries
Reviewed-by: coffeys, robm
2024-01-17 20:31:49 +07:00
Weijun Wang
ff7394b5ab 8320597: RSA signature verification fails on signed data that does not encode params correctly
Backport-of: 11e4a925be
2024-01-17 20:31:48 +07:00
Prajwal Kumaraswamy
8eba4f387d 8317547: Enhance TLS connection support
Backport-of: c521825a5d986e5cb823615d60e51f954c0ff4dc
2024-01-17 20:31:48 +07:00
Roman Kennke
661276c44a 8321067: Unlock experimental options in EATests.java
Reviewed-by: shade
2024-01-17 20:31:48 +07:00
Ravi Reddy
10d2f52f3f 8320001: javac crashes while adding type annotations to the return type of a constructor
Backport-of: 5e24aaf4f7
2024-01-17 20:31:47 +07:00
Christoph Langer
25f70ebdac 8320601: ProblemList java/lang/invoke/lambda/LambdaFileEncodingSerialization.java on linux-all
Backport-of: f6e5559ae9
2024-01-17 20:31:47 +07:00
Martin Doerr
f56fc1eb28 8320363: ppc64 TypeEntries::type_unknown logic looks wrong, missed optimization opportunity
Backport-of: 6aa197667a
2024-01-17 20:31:47 +07:00
Ian Myers
6011ccf37d 8315684: Parallelize sun/security/util/math/TestIntegerModuloP.java
Backport-of: 0f77d250b6
2024-01-17 20:31:47 +07:00
Ian Myers
b7f5cd0a15 8315936: Parallelize gc/stress/TestStressG1Humongous.java test
Backport-of: 3f19df685c
2024-01-17 20:31:46 +07:00
Roman Kennke
06a7923a8d 8316401: sun/tools/jhsdb/JStackStressTest.java failed with "InternalError: We should have found a thread that owns the anonymous lock"
Backport-of: bd918f49d2
2024-01-17 20:31:46 +07:00
Roman Kennke
a8fc42cf6c 8318895: Deoptimization results in incorrect lightweight locking stack
Backport-of: ea1ffa3419
2024-01-17 20:31:46 +07:00
Aleksey Shipilev
f8996f7e12 8318078: ADLC: pass ASSERT and PRODUCT flags
Backport-of: 504b0bdaaa
2024-01-17 20:31:46 +07:00
Aleksey Shipilev
cfcd361a98 8319120: Unbound ScopedValue.get() throws the wrong exception
Backport-of: ee6f25b507
2024-01-17 20:31:45 +07:00
Aleksey Shipilev
c4d71d5db9 8319195: Move most tier 1 vector API regression tests to tier 3
Backport-of: 9dc40ba48e
2024-01-17 20:31:45 +07:00
Aleksey Shipilev
052b936fa4 8316415: Parallelize sun/security/rsa/SignedObjectChain.java subtests
Backport-of: 59847926b6
2024-01-17 20:31:45 +07:00
Aleksey Shipilev
f92d5acba2 8316581: Improve performance of Symbol::print_value_on()
Backport-of: 90bcdbd15f
2024-01-17 20:31:45 +07:00
Aleksey Shipilev
9e857e860d 8316967: Correct the scope of vmtimer in UnregisteredClasses::load_class
Backport-of: 83b6a1278f
2024-01-17 20:31:44 +07:00
Soumadipta Roy
961b8cd6e4 8315692: Parallelize gc/stress/TestStressRSetCoarsening.java test
Backport-of: a564d436c7
2024-01-17 20:31:44 +07:00
Jan Lahoda
024b299f1b 8319532: jshell - Non-sealed declarations sometimes break a snippet evaluation
Backport-of: 45e68ae207
2024-01-17 20:31:44 +07:00
Jan Lahoda
5d0486df0c 8318144: Match on enum constants with body compiles but fails with MatchException
Backport-of: 541ff7149f
2024-01-17 20:31:43 +07:00
Aleksey Shipilev
da6e27042f 8315082: [REDO] Generational ZGC: Tests crash with assert(index == 0 || is_power_of_2(index))
Backport-of: ceff47b462
2024-01-17 20:31:43 +07:00
Axel Boldt-Christmas
616215122e 8319700: [AArch64] C2 compilation fails with "Field too big for insn"
Backport-of: 3787ff8d1d
2024-01-17 20:31:43 +07:00
Gui Cao
db6d77286f 8320280: RISC-V: Avoid passing t0 as temp register to MacroAssembler::lightweight_lock/unlock
Backport-of: a6098e438d
2024-01-17 20:31:43 +07:00
Matthias Baesken
ae9bc810fe 8313616: support loading library members on AIX in os::dll_load
Reviewed-by: phh
Backport-of: 23fe2ece58
2024-01-17 20:31:42 +07:00
Erik Österlund
4cbdbd76e3 8310239: Add missing cross modifying fence in nmethod entry barriers
Backport-of: 4679e9aa00
2024-01-17 20:31:42 +07:00
Matthias Baesken
4a11ebcf53 8318587: refresh libraries cache on AIX in print_vm_info
Backport-of: cb383c05b2
2024-01-17 20:31:42 +07:00
Sandhya Viswanathan
bfb687d3a1 8318562: Computational test more than 2x slower when AVX instructions are used
Backport-of: 0881f2b0c4
2024-01-17 20:31:42 +07:00
Roman Marchenko
1644b1f94c 8319961: JvmtiEnvBase doesn't zero _ext_event_callbacks
Backport-of: 97ea5bf0ff
2024-01-17 20:31:41 +07:00
Sandhya Viswanathan
d86d172f37 8320209: VectorMaskGen clobbers rflags on x86_64
Backport-of: b05e69f789
2024-01-17 20:31:41 +07:00
Matthias Baesken
18c32c5757 8318957: enhance agentlib:jdwp help output by info about allow option
Backport-of: 53bb7cd415
2024-01-17 20:31:41 +07:00
Matthias Baesken
e7501eefe5 8318955: Add ReleaseIntArrayElements in Java_sun_awt_X11_XlibWrapper_SetBitmapShape XlbWrapper.c to early return
Backport-of: 81db1721d4
2024-01-17 20:31:41 +07:00
Matthias Baesken
1d52123510 8318591: avoid leaks in loadlib_aix.cpp reload_table()
Backport-of: 6d3cb459dc
2024-01-17 20:31:40 +07:00
Matthias Baesken
27c428335f 8318981: compiler/compilercontrol/TestConflictInlineCommands.java fails intermittent with 'disallowed by CompileCommand' missing from stdout/stderr
Backport-of: 88b9cdae8f
2024-01-17 20:31:40 +07:00
Christoph Langer
42b5a9fc9a 8306561: Possible out of bounds access in print_pointer_information
8319542: Fix boundaries of region to be tested with os::is_readable_range

Reviewed-by: mbaesken
Backport-of: d6ce62ebc0
2024-01-17 20:31:40 +07:00
Rajan Halade
333f6c3b5d 8319187: Add three eMudhra emSign roots
Backport-of: 0bda467f6e
2024-01-17 20:31:40 +07:00
Alexey Ivanov
1a89d6ceea 8316017: Refactor timeout handler in PassFailJFrame
Backport-of: 3abd772672
2024-01-17 20:31:39 +07:00
Aleksey Shipilev
7a8a68a665 8315545: C1: x86 cmove can use short branches
Backport-of: 6c821f5e1d
2024-01-17 20:31:39 +07:00
Aleksey Shipilev
70e800a278 8315554: C1: Replace "cmp reg, 0" with "test reg, reg" on x86
Backport-of: bd477810b1
2024-01-17 20:31:39 +07:00
Martin Doerr
e96bdac575 8316746: Top of lock-stack does not match the unlocked object
Backport-of: 7d8adfa855
2024-01-17 20:31:38 +07:00
Alexey Ivanov
81695d4d47 8316025: Use testUI() method of PassFailJFrame.Builder in FileChooserSymLinkTest.java
Backport-of: 7f47c51ace
2024-01-17 20:31:38 +07:00
Alexey Ivanov
0593574238 8294156: Allow PassFailJFrame.Builder to create test UI
Backport-of: 42b9ac8a07
2024-01-17 20:31:38 +07:00
Aleksey Shipilev
d3aaa4f656 8317834: java/lang/Thread/IsAlive.java timed out
Backport-of: 5522656af7
2024-01-17 20:31:38 +07:00
Aleksey Shipilev
3492e37ff4 8320053: GHA: Cross-compile gtest code
Backport-of: 77a6966114
2024-01-17 20:31:37 +07:00
Alexey Ivanov
459c4e7c63 8316003: Update FileChooserSymLinkTest.java to HTML instructions
Backport-of: c587211bf8
2024-01-17 20:31:37 +07:00
Alexey Ivanov
2e9206134f 8294158: HTML formatting for PassFailJFrame instructions
Backport-of: 14090ef603
2024-01-17 20:31:37 +07:00
Shivangi Gupta
0fc37fcdd7 8317039: Enable specifying the JDK used to run jtreg
8317807: JAVA_FLAGS removed from jtreg running in JDK-8317039

Reviewed-by: erikj
Backport-of: a250ae4d1b
2024-01-17 20:31:36 +07:00
Alexey Ivanov
65f81bb3ad 8313643: Update HarfBuzz to 8.2.2
8319268: Build failure with GCC8.3.1 after 8313643

Reviewed-by: prr, honkar
Backport-of: 2182c93689
2024-01-17 20:31:36 +07:00
Christoph Langer
1f69507f91 8318240: [AIX] Cleaners.java test failure
Backport-of: d4b761242d
2024-01-17 20:31:36 +07:00
Christoph Langer
f212871491 8313782: Add user-facing warning if THPs are enabled but cannot be used
Backport-of: dff99f7f3d
2024-01-17 20:31:35 +07:00
Christoph Langer
7d3b58b90f 8313781: Add regression tests for large page logging and user-facing error messages
Backport-of: abad0408e8
2024-01-17 20:31:35 +07:00
Robbin Ehn
5b72940547 8315195: RISC-V: Update hwprobe query for new extensions
Backport-of: 0d4cadb824
2024-01-17 20:31:35 +07:00
Rajan Halade
a9cc6da04e 8318759: Add four DigiCert root certificates
Backport-of: 0ea58048f9
2024-01-17 20:31:35 +07:00
Sergey Bylokhov
afff0fbd4b 8312191: ColorConvertOp.filter for the default destination is too slow
Backport-of: e5f05b5a96
2024-01-17 20:31:34 +07:00
Mandy Chung
316cfd37e8 8319436: Proxy.newProxyInstance throws NPE if loader is null and interface not visible from class loader
Backport-of: 8eb6f617b3
2024-01-17 20:31:34 +07:00
Stewart X Addison
7aa3212769 8319958: test/jdk/java/io/File/libGetXSpace.c does not compile on Windows 32-bit
Backport-of: 6a75c2406b
2024-01-17 20:31:34 +07:00
Amit Kumar
d12e1ffa65 8317581: [s390x] Multiple test failure with LockingMode=2
Backport-of: 839cb19ec2
2024-01-17 20:31:34 +07:00
Aleksey Shipilev
94d2c538dd 8316719: C2 compilation still fails with "bad AD file"
Backport-of: 1e687b4529
2024-01-17 20:31:33 +07:00
Rajat Mahajan
82fa7b0410 8316030: Update Libpng to 1.6.40
Backport-of: 158293d251
2024-01-17 20:31:33 +07:00
Fei Yang
e7329d5b87 8319184: RISC-V: improve MD5 intrinsic
Backport-of: fa331d7128
2024-01-17 20:31:33 +07:00
Goetz Lindenmaier
e071cdabf0 8319104: GtestWrapper crashes with SIGILL in AsyncLogTest::test_asynclog_raw on AIX opt
Reviewed-by: stuefe, jkern
Backport-of: 0b58bdec71
2024-01-17 20:31:33 +07:00
Man Cao
aad4880079 8312174: missing JVMTI events from vthreads parked during JVMTI attach
Backport-of: fda142ff6c
2024-01-17 20:31:32 +07:00
Matthias Baesken
b9ead6f141 8317603: Improve exception messages thrown by sun.nio.ch.Net native methods (win)
Backport-of: a9b41da9df
2024-01-17 20:31:32 +07:00
Amit Kumar
f373f20dbe 8316935: [s390x] Use consistent naming for lightweight locking in MacroAssembler
Backport-of: efb7e85ecf
2024-01-17 20:31:32 +07:00
Aleksey Shipilev
e721cc26f6 8318525: Atomic gtest should run as TEST_VM to access VM capabilities
Backport-of: 744f206fef
2024-01-17 20:31:31 +07:00
Aleksey Shipilev
d61a21786e 8315920: C2: "control input must dominate current control" assert failure
Backport-of: 4e1e579e8b
2024-01-17 20:31:31 +07:00
Aleksey Shipilev
25d06dc8a5 8316436: ContinuationWrapper uses unhandled nullptr oop
Backport-of: 292aad2c49
2024-01-17 20:31:31 +07:00
Jaikiran Pai
ab82d9c84f 8312433: HttpClient request fails due to connection being considered idle and closed
Backport-of: 486c7844f9
2024-01-17 20:31:30 +07:00
Martin Doerr
ef3492fce0 8310596: Utilize existing method frame::interpreter_frame_monitor_size_in_bytes()
Backport-of: 7fbad4cd5e
2024-01-17 20:31:30 +07:00
Pavel Rappo
157298c9f0 8319339: Internal error on spurious markup in a hybrid snippet
Reviewed-by: jjg
Backport-of: c9077b8b81
2024-01-17 20:31:30 +07:00
Matthias Baesken
92e8cfa583 8318961: increase javacserver connection timeout values and max retry attempts
Backport-of: b9983c7229
2024-01-17 20:31:30 +07:00
Thomas Stuefe
83d49e8d18 8319922: libCreationTimeHelper.so fails to link in JDK 21
Reviewed-by: sgehwolf
2024-01-17 20:31:29 +07:00
Thomas Stuefe
18dd1aa915 8319828: runtime/NMT/VirtualAllocCommitMerge.java may fail if mixing interpreted and compiled native invocations
Backport-of: 6b21ff61da
2024-01-17 20:31:29 +07:00
Aleksey Shipilev
725c15a627 8317507: C2 compilation fails with "Exceeded _node_regs array"
Backport-of: a5818972c1
2024-01-17 20:31:29 +07:00
Johannes Bechberger
edfc0afaee 8318736: com/sun/jdi/JdwpOnThrowTest.java failed with "transport error 202: bind failed: Address already in use"
Backport-of: 1a21c1a783
2024-01-17 20:31:29 +07:00
Liam Miller-Cushon
9afab6c7e8 8225377: type annotations are not visible to javac plugins across compilation boundaries
Backport-of: de6667cf11
2024-01-17 20:31:28 +07:00
Andrew Leonard
75abfa93e0 8317601: Windows build on WSL broken after JDK-8317340
Backport-of: bcc986b9d1
2024-01-17 20:31:28 +07:00
Amit Kumar
921ed065e2 8308479: [s390x] Implement alternative fast-locking scheme
Backport-of: 3fe6e0faca
2024-01-17 20:31:28 +07:00
Andrew Leonard
8c13ecedb2 8317340: Windows builds are not reproducible if MS VS compiler install path differs
Backport-of: 353d139682
2024-01-17 20:31:28 +07:00
Christian Hagedorn
696ac52df5 8314307: Improve loop handling
Reviewed-by: thartmann
Backport-of: afe46730e2405100ab2e016c8941264336aa807d
2024-01-17 20:31:27 +07:00
Frederic Thevenet
a98dabdf6c 8317510: Change Windows debug symbol files naming to avoid losing info when an executable and a library share the same name
Backport-of: d96f38b80c
2024-01-17 20:31:27 +07:00
Aleksey Shipilev
4f7257654f 8314191: C2 compilation fails with "bad AD file"
Backport-of: 969fcdb0de
2024-01-17 20:31:27 +07:00
Aleksey Shipilev
33ef6d8695 8316679: C2 SuperWord: wrong result, load should not be moved before store if not comparable
Reviewed-by: epeter, phh, thartmann
Backport-of: 48f1a925e5
2024-01-17 20:31:26 +07:00
Jayathirth D V
ab4df04dfb 8318951: Additional negative value check in JPEG decoding
Backport-of: 75ce02fe74
2024-01-17 20:31:26 +07:00
Alexey Ivanov
4161de1dbc 8294535: Add screen capture functionality to PassFailJFrame
Backport-of: dbb788f34d
2024-01-17 20:31:26 +07:00
Renjith Kannath Pariyangad
285ecf85d9 8301846: Invalid TargetDataLine after screen lock when using JFileChooser or COM library
Backport-of: 613a3cc689
2024-01-17 20:31:25 +07:00
Rajan Halade
22c01ed770 8317374: Add Let's Encrypt ISRG Root X2
Backport-of: e6f46a4326
2024-01-17 20:31:25 +07:00
Aleksey Shipilev
f176107ab9 8314580: PhaseIdealLoop::transform_long_range_checks fails with assert "was tested before"
Backport-of: 9def4538ab
2024-01-17 20:31:25 +07:00
Aleksey Shipilev
17d7fb4327 8318183: C2: VM may crash after hitting node limit
Backport-of: 31ef400f31
2024-01-17 20:31:25 +07:00
Aleksey Shipilev
04136e273b 8309209: C2 failed "assert(_stack_guard_state == stack_guard_reserved_disabled) failed: inconsistent state"
Reviewed-by: aph
Backport-of: 52ee570025
2024-01-17 20:31:24 +07:00
Aleksey Shipilev
389f36e373 8316645: RISC-V: Remove dependency on libatomic by adding cmpxchg 1b
8317335: Build on windows fails after 8316645

Reviewed-by: rehn
Backport-of: fb055e7e53
2024-01-17 20:31:24 +07:00
Aleksey Shipilev
94121b3a46 8316585: [REDO] runtime/InvocationTests spend a lot of time on dependency verification
Backport-of: 1e930db3c7
2024-01-17 20:31:24 +07:00
Evgeny Ignatenko
c295d9cd8f 8315362: NMT: summary diff reports threads count incorrectly
Reviewed-by: stuefe
Backport-of: 37aed6f46d
2024-01-17 20:31:24 +07:00
Evgeny Ignatenko
4cbb928253 8318474: Fix memory reporter for thread_count
Backport-of: 0baa9ecd76
2024-01-17 20:31:23 +07:00
Fei Yang
8bbe7e62b3 8319525: RISC-V: Rename *_riscv64.ad files to *_riscv.ad under riscv/gc
Backport-of: b2504a0f9c
2024-01-17 20:31:23 +07:00
Goetz Lindenmaier
2b4cceb479 8316461: Fix: make test outputs TEST SUCCESS after unsuccessful exit
Backport-of: e30e356442
2024-01-17 20:31:23 +07:00
Johannes Bechberger
5306cecc06 8317920: JDWP-agent sends broken exception event with onthrow option
Backport-of: 8f4ebd8921
2024-01-17 20:31:22 +07:00
Severin Gehwolf
c34812b166 8316304: (fs) Add support for BasicFileAttributes.creationTime() for Linux
Reviewed-by: phh
Backport-of: 0275efac88
2024-01-17 20:31:22 +07:00
Goetz Lindenmaier
0cf609d188 8315415: OutputAnalyzer.shouldMatchByLine() fails in some cases
Backport-of: 7b1e2bfe0f
2024-01-17 20:31:22 +07:00
Goetz Lindenmaier
4fa1f900a1 8314242: Update applications/scimark/Scimark.java to accept VM flags
Backport-of: 6bf4a33593
2024-01-17 20:31:22 +07:00
Andrew Leonard
d8ecce3b52 8286757: adlc tries to build with /pathmap but without /experimental:deterministic
Backport-of: 242eeaea47
2024-01-17 20:31:21 +07:00
Andrew Leonard
bd758e7284 8316648: jrt-fs.jar classes not reproducible between standard and bootcycle builds
Backport-of: 0f0c5b2d71
2024-01-17 20:31:21 +07:00
Calvin Cheung
17178ac505 8312434: SPECjvm2008/xml.transform with CDS fails with "can't seal package nu.xom"
Backport-of: 9f4a9fe488
2024-01-17 20:31:21 +07:00
Aleksey Shipilev
66d5254748 8316142: Enable parallelism in vmTestbase/nsk/monitoring/stress/lowmem tests
Backport-of: 4421951d8f
2024-01-17 20:31:20 +07:00
Martin Doerr
8f0c966914 8316659: assert(LockingMode != LM_LIGHTWEIGHT || flag == CCR0) failed: bad condition register
Backport-of: 6a4b665550
2024-01-17 20:31:20 +07:00
Tobias Hartmann
4f618c925e 8318889: C2: add bailout after assert Bad graph detected in build_loop_late
Backport-of: 83eb20651f
2024-01-17 20:31:20 +07:00
Frederic Thevenet
a64ae87dcc 8318669: Target OS detection in 'test-prebuilt' makefile target is incorrect when running on MSYS2
Backport-of: 202c0137b8
2024-01-17 20:31:20 +07:00
Matthias Baesken
51c12f79c7 8316411: compiler/compilercontrol/TestConflictInlineCommands.java fails intermittent with force inline by CompileCommand missing
Backport-of: e1870d360e
2024-01-17 20:31:19 +07:00
Matthias Baesken
738ae887e6 8318415: Adjust describing comment of os_getChildren after 8315026
Backport-of: 47bb1a1cef
2024-01-17 20:31:19 +07:00
Thomas Stuefe
d92d5d9b9d 8318089: Class space not marked as such with NMT when CDS is off
Backport-of: c0e154c876
2024-01-17 20:31:19 +07:00
Gui Cao
5a114d1b5b 8318953: RISC-V: Small refactoring for MacroAssembler::test_bit
Backport-of: 988e1dfe6e
2024-01-17 20:31:19 +07:00
Goetz Lindenmaier
5767001ef9 8161536: sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java fails with ProviderException
Backport-of: 939d7c5d84
2024-01-17 20:31:18 +07:00
Goetz Lindenmaier
93de115d67 8301457: Code in SendPortZero.java is uncommented even after JDK-8236852 was fixed
Backport-of: 298dda4c98
2024-01-17 20:31:18 +07:00
Goetz Lindenmaier
1ad89ec994 8309778: java/nio/file/Files/CopyAndMove.java fails when using second test directory
Backport-of: cfae6ef2f6
2024-01-17 20:31:18 +07:00
Aleksey Shipilev
6dd7bb019a 8316414: C2: large byte array clone triggers "failed: malformed control flow" assertion failure on linux-x86
Backport-of: 0a3a925ad8
2024-01-17 20:31:18 +07:00
Aleksey Shipilev
0fe4d1a02e 8303737: C2: Load can bypass subtype check that enforces it's from the right object type
Backport-of: 52983ed529
2024-01-17 20:31:17 +07:00
Aleksey Shipilev
45937e3fdf 8315442: Enable parallelism in vmTestbase/nsk/monitoring/stress/thread tests
Backport-of: 9013b03244
2024-01-17 20:31:16 +07:00
Aleksey Shipilev
ada8866e53 8315774: Enable parallelism in vmTestbase/gc/g1/unloading tests
Backport-of: 825e0ed2a1
2024-01-17 20:31:16 +07:00
Aleksey Shipilev
5a6e543cf0 8315437: Enable parallelism in vmTestbase/nsk/monitoring/stress/classload tests
Backport-of: dd214d0f95
2024-01-17 20:31:16 +07:00
Rob McKenna
96cdbd5850 8301341: LinkedTransferQueue does not respect timeout for poll()
8300663: java/util/concurrent/SynchronousQueue/Fairness.java failed with "Error: fair=true i=0 j=1"
8267502: JDK-8246677 caused 16x performance regression in SynchronousQueue

Reviewed-by: alanb
Backport-of: 8d1ab57065
2024-01-17 20:31:16 +07:00
Aleksey Shipilev
5ddc631521 8312126: NullPointerException in CertStore.getCRLs after 8297955
Backport-of: 3c743cfea0
2024-01-17 20:31:15 +07:00
Aleksey Shipilev
975ee0b997 8314330: java/foreign tests should respect vm flags when start new processes
Backport-of: 7b28d3608a
2024-01-17 20:31:15 +07:00
Aleksey Shipilev
feaad1ec26 8295555: Primitive wrapper caches could be @Stable
Backport-of: f7de726bd3
2024-01-17 20:31:15 +07:00
Aleksey Shipilev
a2e5f00e9f 8318528: Rename TestUnstructuredLocking test
Backport-of: 3f446c5156
2024-01-17 20:31:15 +07:00
Aleksey Shipilev
b4e578da29 8318540: make test cannot run .jasm tests directly
Backport-of: bd02cfd96f
2024-01-17 20:31:14 +07:00
Aleksey Shipilev
40dd000216 8267509: Improve IllegalAccessException message to include the cause of the exception
Backport-of: 36314a90c1
2024-01-17 20:31:14 +07:00
Goetz Lindenmaier
382c027f3b 8318705: [macos] ProblemList java/rmi/registry/multipleRegistries/MultipleRegistries.java
Backport-of: 37c40a11a7
2024-01-17 20:31:14 +07:00
Sergey Bylokhov
dd7d7ea2f6 8315971: ProblemList containers/docker/TestMemoryAwareness.java on linux-all
Backport-of: eb37c7e361
2024-01-17 20:31:13 +07:00
pavel_kharskii
07058afc2f 8318137: Change milestone to fcs for all releases
Reviewed-by: coffeys, mvs, rreddy
2024-01-17 20:31:13 +07:00
Hannes Greule
322546b97b 8317692: jcmd GC.heap_dump performance regression after JDK-8292818
Backport-of: 8f5f44070a
2024-01-17 20:31:13 +07:00
Manukumar V S
4c44c4a6b3 8317751: ProblemList ConsumeForModalDialogTest.java, MenuItemActivatedTest.java & MouseModifiersUnitTest_Standard.java for windows
8317964: java/awt/Mouse/MouseModifiersUnitTest/MouseModifiersUnitTest_Standard.java fails on macosx-all after JDK-8317751

Reviewed-by: aivanov, dmarkov
Backport-of: f40ea5109e
2024-01-17 20:31:13 +07:00
Matthias Baesken
74c1583844 8317959: Check return values of malloc in native java.base coding
Backport-of: ff0b397e13
2024-01-17 20:31:12 +07:00
Matthias Baesken
9698262126 8038244: (fs) Check return value of malloc in Java_sun_nio_fs_AixNativeDispatcher_getmntctl()
Backport-of: 6d6c9008d5
2024-01-17 20:31:12 +07:00
Christoph Langer
2dfba52ee4 8310512: Cleanup indentation in jfc files
Backport-of: 3be50da636
2024-01-17 20:31:12 +07:00
Christoph Langer
eae9556217 8315706: com/sun/tools/attach/warnings/DynamicLoadWarningTest.java real fix for failure on AIX
Backport-of: 21c2dac159
2024-01-17 20:31:12 +07:00
Sergey Bylokhov
10fa52a22d 8316060: test/hotspot/jtreg/runtime/reflect/ReflectOutOfMemoryError.java may fail if heap is huge
Backport-of: bd52bbfa27
2024-01-17 20:31:11 +07:00
Rajan Halade
c5a78f220c 8317373: Add Telia Root CA v2
Backport-of: d3ebb4a155
2024-01-17 20:31:11 +07:00
Laurent Bourgès
837178c21b 8316741: BasicStroke.createStrokedShape miter-limits failing on small shapes
Backport-of: a876beb63d
2024-01-17 20:31:11 +07:00
Aleksey Shipilev
baa3e01efd 8312592: New parentheses warnings after HarfBuzz 7.2.0 update
Backport-of: ea067fc3d2
2024-01-17 20:31:10 +07:00
Aleksey Shipilev
515c9d3820 8316778: test hprof lib: invalid array element type from JavaValueArray.elementSize
Backport-of: f7deaf4bef
2024-01-17 20:31:10 +07:00
Aleksey Shipilev
cc3ac70fbb 8315088: C2: assert(wq.size() - before == EMPTY_LOOP_SIZE) failed: expect the EMPTY_LOOP_SIZE nodes of this body if empty
Backport-of: fe4f90021f
2024-01-17 20:31:10 +07:00
Aleksey Shipilev
d42ceb6d14 8315869: UseHeavyMonitors not used
Reviewed-by: phh
Backport-of: 3301fb1e8a
2024-01-17 20:31:10 +07:00
Tobias Hartmann
d79b950b37 8314468: Improve Compiler loops
Reviewed-by: jwilhelm, epeter
Backport-of: 86e71472aefc26175cfc00d44f255f64893e477b
2024-01-17 20:31:09 +07:00
Matthias Baesken
24352fc713 8316894: make test TEST="jtreg:test/jdk/..." fails on AIX
Backport-of: 29348b3cf6
2024-01-17 20:31:09 +07:00
Thomas Stuefe
657092791a 8317987: C2 recompilations cause high memory footprint
Backport-of: c88b387881
2024-01-17 20:31:09 +07:00
Alexey Ivanov
fa4afa1d08 8314246: javax/swing/JToolBar/4529206/bug4529206.java fails intermittently on Linux
Backport-of: 808bb1f7bc
2024-01-17 20:31:09 +07:00
Aleksey Shipilev
41a080470d 8316880: AArch64: "stop: Header is not fast-locked" with -XX:-UseLSE since JDK-8315880
Reviewed-by: aph
Backport-of: b6a97c0780
2024-01-17 20:31:08 +07:00
Ludvig Janiuk
90089dd3e4 8317327: Remove JT_JAVA dead code in jib-profiles.js
Reviewed-by: ihse
2024-01-17 20:31:08 +07:00
Archie Cobbs
ad721336d6 8317818: Combinatorial explosion during 'this' escape analysis
Backport-of: 17535c34bc
2024-01-17 20:31:08 +07:00
Aleksey Shipilev
8f07717a0d 8316181: Move the fast locking implementation out of the .ad files
Backport-of: b48dbf6bfa
2024-01-17 20:31:07 +07:00
Aleksey Shipilev
fafbcf231f 8316396: Endless loop in C2 compilation triggered by AddNode::IdealIL
Reviewed-by: thartmann
Backport-of: b0d6c8472f
2024-01-17 20:31:07 +07:00
Aleksey Shipilev
3366f2cb2a 8316735: Print LockStack in hs_err files
Backport-of: 20ff603108
2024-01-17 20:31:07 +07:00
Rajan Halade
bd275d0bb7 8268916: Tests for AffirmTrust roots
Backport-of: 8c1bb2b280
2024-01-17 20:31:07 +07:00
Aleksey Shipilev
16831cb9de 8316958: Add test for unstructured locking
Backport-of: bcafec54a5
2024-01-17 20:31:06 +07:00
Aleksey Shipilev
05994467b8 8317262: LockStack::contains(oop) fails "assert(t->is_Java_thread()) failed: incorrect cast to JavaThread"
Backport-of: 4ea1b99c1a
2024-01-17 20:31:06 +07:00
Aleksey Shipilev
c36cede7f4 8295068: SSLEngine throws NPE parsing CertificateRequests
Backport-of: 5667afc362
2024-01-17 20:31:06 +07:00
Aleksey Shipilev
7171e21d5b 8309663: test fails "assert(check_alignment(result)) failed: address not aligned: 0x00000008baadbabe"
Backport-of: 83edffa608
2024-01-17 20:31:06 +07:00
Aleksey Shipilev
288accdd76 8316929: Shenandoah: Shenandoah degenerated GC and full GC need to cleanup old OopMapCache entries
Backport-of: e25121d1d9
2024-01-17 20:31:05 +07:00
Archie Cobbs
5e1defce38 8317336: Assertion error thrown during 'this' escape analysis
Backport-of: a8473b7079
2024-01-17 20:31:05 +07:00
Christoph Langer
343d49a4a1 8317803: Exclude java/net/Socket/asyncClose/Race.java on AIX
Backport-of: 1161e3da14
2024-01-17 20:31:05 +07:00
Christoph Langer
2288ef2372 8219652: [aix] Tests failing with JNI attach problems.
8317136: [AIX] Problem List runtime/jni/terminatedThread/TestTerminatedThread.java
8317790: Fix Bug entry for exclusion of runtime/jni/terminatedThread/TestTerminatedThread.java on AIX

Reviewed-by: mbaesken
Backport-of: 0b0f8b55a6
2024-01-17 20:31:04 +07:00
Christoph Langer
05575afcb4 8312078: [PPC] JcmdScale.java Failing on AIX
Backport-of: c1a3f143bf
2024-01-17 20:31:04 +07:00
Christoph Langer
7a6043978f 8317839: Exclude java/nio/channels/Channels/SocketChannelStreams.java on AIX
Backport-of: ca96fd3b07
2024-01-17 20:31:04 +07:00
Christoph Langer
6aaa8f6317 8311261: [AIX] TestAlwaysPreTouchStacks.java fails due to java.lang.RuntimeException: Did not find expected NMT output
Backport-of: d5c6b0d0bb
2024-01-17 20:31:04 +07:00
Rajan Halade
d670dfaa46 8317967: Enhance test/jdk/javax/net/ssl/TLSCommon/SSLEngineTestCase.java to handle default cases
Reviewed-by: mullan
Backport-of: 9728e21db1
2024-01-17 20:31:03 +07:00
Matthias Baesken
1db2f3f6ab 8312467: relax the builddir check in make/autoconf/basic.m4
Backport-of: 6e3cc131da
2024-01-17 20:31:03 +07:00
Thomas Stuefe
9edda54114 8317772: NMT: Make peak values available in release builds
Backport-of: 32ccf018eb
2024-01-17 20:31:03 +07:00
Aleksey Shipilev
d93d3ffb3b 8315062: [GHA] get-bootjdk action should return the abolute path
Backport-of: 99ea8bf2b9
2024-01-17 20:31:03 +07:00
Aleksey Shipilev
bb3ffeb6fa 8315960: test/jdk/java/io/File/TempDirDoesNotExist.java leaves test files behind
Reviewed-by: bpb
Backport-of: 373cdf257d
2024-01-17 20:31:02 +07:00
Aleksey Shipilev
a8cebab762 8317294: Classloading throws exceptions over already pending exceptions
Backport-of: d4c904d819
2024-01-17 20:31:02 +07:00
Daniel Fuchs
6d3817401f 8317736: Stream::handleReset locks twice
Backport-of: 508fa71753
2024-01-17 20:31:02 +07:00
Joachim Kern
961b6cd349 8315026: ProcessHandle implementation listing processes on AIX should use getprocs64
Backport-of: 4d9042043e
2024-01-17 20:31:02 +07:00
Prajwal Kumaraswamy
8fb85525ab 8316976: Improve signature handling
Backport-of: ed1269b7410759e8fa0d97d85328f20d11ae8d9a
2024-01-17 20:31:01 +07:00
Christoph Langer
b536370c18 8317705: ProblemList sun/tools/jstat/jstatLineCountsX.sh on linux-ppc64le and aix due to JDK-8248691
Backport-of: ad6dce376d
2024-01-17 20:31:01 +07:00
Christoph Langer
79761e4a71 8317711: Exclude gtest/GTestWrapper.java on AIX
Backport-of: ef41aa02b8
2024-01-17 20:31:01 +07:00
Christoph Langer
2c0a95a51f 8317706: Exclude java/awt/Graphics2D/DrawString/RotTransText.java on linux
Backport-of: fcff222f92
2024-01-17 20:31:01 +07:00
Ludvig Janiuk
a584dec284 8316906: Clarify TLABWasteTargetPercent flag
Backport-of: 77fac0f4c6
2024-01-17 20:31:00 +07:00
Aleksey Shipilev
e4b9ec73c6 8316418: containers/docker/TestMemoryWithCgroupV1.java get OOM killed with Parallel GC
Backport-of: 7352bb9105
2024-01-17 20:31:00 +07:00
Goetz Lindenmaier
7e9b407cd1 8309974: some JVMCI tests fail when VM options include -XX:+EnableJVMCI
Backport-of: 8b4af46be4
2024-01-17 20:31:00 +07:00
Goetz Lindenmaier
f89b59ed8f 8232839: JDI AfterThreadDeathTest.java failed due to "FAILED: Did not get expected IllegalThreadStateException on a StepRequest.enable()"
Backport-of: 84184f9473
2024-01-17 20:30:59 +07:00
Brian Burkhalter
eafcc264c1 8313368: (fc) FileChannel.size returns 0 on block special files
Backport-of: 4ba81f631f
2024-01-17 20:30:59 +07:00
Aleksey Shipilev
04185b9f87 8314120: Add tests for FileDescriptor.sync
Backport-of: 2e8a0ab272
2024-01-17 20:30:59 +07:00
Aleksey Shipilev
635786a69e 8316130: Incorrect control in LibraryCallKit::inline_native_notify_jvmti_funcs
Backport-of: 4b65483921
2024-01-17 20:30:59 +07:00
Aleksey Shipilev
94b8efda04 8316337: (bf) Concurrency issue in DirectByteBuffer.Deallocator
Backport-of: cf74b8c2a3
2024-01-17 20:30:58 +07:00
Aleksey Shipilev
60f1193954 8316179: Use consistent naming for lightweight locking in MacroAssembler
Backport-of: 639ba13c4b
2024-01-17 20:30:58 +07:00
Aleksey Shipilev
f48301bdba 8315942: Sort platform enums and definitions after JDK-8304913 follow-ups
Backport-of: 1941290b79
2024-01-17 20:30:58 +07:00
Matthias Baesken
099d9b1635 8314883: Java_java_util_prefs_FileSystemPreferences_lockFile0 write result errno in missing case
Backport-of: 97b94cb1cd
2024-01-17 20:30:57 +07:00
Matthias Baesken
262217e14b 8315499: build using devkit on Linux ppc64le RHEL puts path to devkit into libsplashscreen
Backport-of: ed2b4673de
2024-01-17 20:30:57 +07:00
Matthias Baesken
6a42d8d3eb 8312612: handle WideCharToMultiByte return values
Backport-of: d9559f9b24
2024-01-17 20:30:57 +07:00
Matthias Baesken
4953f49087 8316671: sun/security/ssl/SSLSocketImpl/SSLSocketCloseHang.java test fails intermittent with Read timed out
Backport-of: 1f7dfda705
2024-01-17 20:30:57 +07:00
Aleksey Shipilev
d49fb1f141 8313656: assert(!JvmtiExport::can_support_virtual_threads()) with -XX:-DoJVMTIVirtualThreadTransitions
Backport-of: b38bcae1ba
2024-01-17 20:30:57 +07:00
Zdenek Zambersky
065f1c80be 8316540: StoreReproducibilityTest fails on some locales
Backport-of: f7578e8048
2024-01-17 20:30:56 +07:00
Soumadipta Roy
a89d6ed2e5 8315683: Parallelize java/util/concurrent/tck/JSR166TestCase.java
Backport-of: 4415261688
2024-01-17 20:30:56 +07:00
Soumadipta Roy
8f565773ef 8315937: Enable parallelism in vmTestbase/nsk/stress/numeric tests
Backport-of: eb1f67b160
2024-01-17 20:30:56 +07:00
Soumadipta Roy
832b7162f7 8315766: Parallelize gc/stress/TestStressIHOPMultiThread.java test
Backport-of: edd454b502
2024-01-17 20:30:55 +07:00
Brian Burkhalter
6aa7c2e2f6 8316156: ByteArrayInputStream.transferTo causes MaxDirectMemorySize overflow
Backport-of: 5cacf212f0
2024-01-17 20:30:55 +07:00
Aleksey Shipilev
8c4ebd381d 8314551: More generic way to handshake GC threads with monitor deflation
Reviewed-by: rkennke
Backport-of: 31c4e03d5d
2024-01-17 20:30:55 +07:00
Christoph Langer
ac3614fd56 8316710: Exclude java/awt/font/Rotate/RotatedTextTest.java
Backport-of: ad6df41a9e
2024-01-17 20:30:55 +07:00
Aleksei Voitylov
17dd9524cd 8316879: RegionMatches1Tests fails if CompactStrings are disabled after JDK-8302163
Backport-of: cfcbfc6cae
2024-01-17 20:30:54 +07:00
Ilya Gavrilin
7cc20a9141 8313779: RISC-V: use andn / orn in the MD5 instrinsic
Backport-of: 4726960fcd
2024-01-17 20:30:54 +07:00
Aleksey Shipilev
ac8e6035aa 8316514: Better diagnostic header for VtableStub
Backport-of: 6c61bc1950
2024-01-17 20:30:54 +07:00
Ludovic Henry
b7f4a135f4 8316859: RISC-V: Disable detection of V through HWCAP
Backport-of: 311c7461c8
2024-01-17 20:30:54 +07:00
Robbin Ehn
6ff3f30826 8316566: RISC-V: Zero extended narrow oop passed to Atomic::cmpxchg
Backport-of: 2d154fcd0d
2024-01-17 20:30:53 +07:00
Goetz Lindenmaier
4a8ced14f3 8312440: assert(cast != nullptr) failed: must have added a cast to pin the node
Backport-of: 01e135c910
2024-01-17 20:30:53 +07:00
Goetz Lindenmaier
37fc05292c 8301247: JPackage app-image exe launches multiple exe's in JDK 17+
Backport-of: dcea9bf087
2024-01-17 20:30:53 +07:00
Goetz Lindenmaier
5d00ee3eb0 8315377: C2: assert(u->find_out_with(Op_AddP) == nullptr) failed: more than 2 chained AddP nodes?
Backport-of: ba1a46392f
2024-01-17 20:30:52 +07:00
Goetz Lindenmaier
58f20e3f78 8308103: Massive (up to ~30x) increase in C2 compilation time since JDK 17
Backport-of: c6ab9c2905
2024-01-17 20:30:52 +07:00
Goetz Lindenmaier
af16c4ab8f 8301489: C1: ShortLoopOptimizer might lift instructions before their inputs
Backport-of: 73d7aa1d2c
2024-01-17 20:30:52 +07:00
Vladimir Kempik
135b25c026 8317257: RISC-V: llvm build broken
Reviewed-by: fyang
Backport-of: bd7bb67d8f
2024-01-17 20:30:52 +07:00
Fei Yang
de3f9526c1 8316743: RISC-V: Change UseVectorizedMismatchIntrinsic option result to warning
Backport-of: 750da00129
2024-01-17 20:30:51 +07:00
Saravana Kumar Vijayasekaran
95d358c631 8317439: Updating RE Configs for BUILD REQUEST 21.0.2+1
Reviewed-by: robm
2024-01-17 20:30:51 +07:00
Coleen Phillimore
901f93f5c3 8317331: Solaris build failed with "declaration can not follow a statement (E_DECLARATION_IN_CODE)"
Backport-of: 852276d1f833d49802693f2a5a82ba6eb2722de6
2024-01-17 20:30:51 +07:00
Coleen Phillimore
c4d876876b 8314295: Enhance verification of verifier
Reviewed-by: dholmes, poonam, dlong
2024-01-17 20:30:51 +07:00
Gui Cao
6a7f65ca25 8316933: RISC-V: compiler/vectorapi/VectorCastShape128Test.java fails when using RVV
Backport-of: e39197ec62
2024-01-17 20:30:50 +07:00
Matthias Baesken
68b12a6b70 8316341: sun/security/pkcs11/PKCS11Test.java needs adjustment on Linux ppc64le Ubuntu 22
Backport-of: aa0ebeedb1
2024-01-17 20:30:50 +07:00
Manukumar V S
0ea8abdb20 8315606: Open source few swing text/html tests
Backport-of: 4127fbb9ed
2024-01-17 20:30:50 +07:00
Soumadipta Roy
77b781dd38 8315770: serviceability/sa/TestJmapCoreMetaspace.java should run with -XX:-VerifyDependencies
Backport-of: 877731d2a2
2024-01-17 20:30:49 +07:00
Man Cao
09ec05318a 8316468: os::write incorrectly handles partial write
Backport-of: 7ce5bd1590
2024-01-17 20:30:49 +07:00
Alexey Ivanov
fb095de54e 8316206: Test StretchedFontTest.java fails for Baekmuk font
Ignore broken fonts, i.e. the fonts for which
GlyphVector(TEXT).getVisualBounds().isEmpty() returns true

Backport-of: 00f585bd22
2024-01-17 20:30:49 +07:00
Matthias Baesken
752b671e6c 8313575: Refactor PKCS11Test tests
Backport-of: 7a08e6bdd6
2024-01-17 20:30:49 +07:00
Ludvig Janiuk
e20408eff3 8316199: Remove sun/tools/jstatd/TestJstatd* tests from problemlist for Windows.
Reviewed-by: coffeys, kevinw
Backport-of: 903b9e8dd9
2024-01-17 20:30:48 +07:00
Ludvig Janiuk
e71b59d7ab 8314476: TestJstatdPortAndServer.java failed with "java.rmi.NoSuchObjectException: no such object in table"
Reviewed-by: kevinw
Backport-of: 1d0250709a
2024-01-17 20:30:48 +07:00
Matthias Baesken
0f66010cfb 8313252: Java_sun_awt_windows_ThemeReader_paintBackground release resources in early returns
Backport-of: 3671d83c87
2024-01-17 20:30:48 +07:00
Matthias Baesken
85be5f6d67 8313164: src/java.desktop/windows/native/libawt/windows/awt_Robot.cpp GetRGBPixels adjust releasing of resources
Backport-of: b7545a69a2
2024-01-17 20:30:48 +07:00
Matthias Baesken
cee0e157c9 8315213: java/lang/ProcessHandle/TreeTest.java test enhance output of children
Backport-of: f3aeb024d9
2024-01-17 20:30:47 +07:00
Rajat Mahajan
f5d991027b 8294427: Check boxes and radio buttons have rendering issues on Windows in High DPI env
Backport-of: a63afa4aa6
2024-01-17 20:30:47 +07:00
Ilya Gavrilin
bba4c1fc3c 8313322: RISC-V: implement MD5 intrinsic
Backport-of: b093880acd
2024-01-17 20:30:47 +07:00
Aleksey Shipilev
0ca0d13821 8314045: ArithmeticException in GaloisCounterMode
Backport-of: f41c267f85
2024-01-17 20:30:47 +07:00
Aleksey Shipilev
9098c29c39 8316178: Better diagnostic header for CodeBlobs
Backport-of: d575968b4b
2024-01-17 20:30:46 +07:00
Rajan Halade
77c5d9958c 8308592: Framework for CA interoperability testing
Reviewed-by: mullan
Backport-of: da57d2a1eb
2024-01-17 20:30:46 +07:00
Aleksey Shipilev
e7f06a4413 8315578: PPC builds are broken after JDK-8304913
Backport-of: 9559e035d2
2024-01-17 20:30:46 +07:00
Aggelos Biboudis
4cdbfbeaff 8314632: Intra-case dominance check fails in the presence of a guard
Backport-of: 81f8c57e4a
2024-01-17 20:30:45 +07:00
Aggelos Biboudis
acc02b63c5 8314226: Series of colon-style fallthrough switch cases with guards compiled incorrectly
Backport-of: 3b0a6d2a68
2024-01-17 20:30:45 +07:00
Daniel Fuchs
fdf56a1704 8316031: SSLFlowDelegate should not log from synchronized block
Backport-of: dc5ca1d379
2024-01-17 20:30:45 +07:00
Christoph Langer
f45312b595 8316400: Exclude jdk/jfr/event/runtime/TestResidentSetSizeEvent.java on AIX
Backport-of: 2e2d49c76d
2024-01-17 20:30:45 +07:00
Christoph Langer
face1e4874 8316387: Exclude more failing multicast tests on AIX after JDK-8315651
8316399: Exclude java/net/MulticastSocket/Promiscuous.java on AIX

Reviewed-by: mbaesken
Backport-of: e62419823a
2024-01-17 20:30:44 +07:00
Christoph Langer
236d547320 8315651: Stop hiding AIX specific multicast socket errors via NetworkConfiguration (aix)
Backport-of: e22eb06a3b
2024-01-17 20:30:44 +07:00
Andreas Steiner
f91d47f8b3 8313244: NM flags handling in configure process
Backport-of: 12326770dc
2024-01-17 20:30:44 +07:00
Aleksey Shipilev
4e6c47a5a3 8315579: SPARC64 builds are broken after JDK-8304913
Backport-of: cfc148930b
2024-01-17 20:30:44 +07:00
Matthias Baesken
13857d3cd3 8313206: PKCS11 tests silently skip execution
Backport-of: 515add88ed
2024-01-17 20:30:43 +07:00
Chad Rakoczy
3fc92def68 8311813: C1: Uninitialized PhiResolver::_loop field
Backport-of: 489a32fe40
2024-01-17 20:30:43 +07:00
Matthias Baesken
7752965dfc 8315644: increase timeout of sun/security/tools/jarsigner/Warning.java
Backport-of: 8bbebbba8f
2024-01-17 20:30:43 +07:00
Matthias Baesken
a9f34f3850 8316123: ProblemList serviceability/dcmd/gc/RunFinalizationTest.java on AIX
Backport-of: 36552e7193
2024-01-17 20:30:43 +07:00
Elif Aslan
75c90691e3 8311514: Incorrect regex in TestMetaSpaceLog.java
Backport-of: 9084b6c9d5
2024-01-17 20:30:42 +07:00
Sean Coffey
939eae1fab 8316087: Test SignedLoggerFinderTest.java is still failing
Backport-of: ff240a9135
2024-01-17 20:30:42 +07:00
Sean Coffey
753785788b 8315696: SignedLoggerFinderTest.java test failed
Backport-of: e409d07ae8
2024-01-17 20:30:42 +07:00
Sean Coffey
88f129f26c 8314263: Signed jars triggering Logger finder recursion and StackOverflowError
Backport-of: 7daae1fb42
2024-01-17 20:30:41 +07:00
Aleksey Shipilev
9b5cda510c 8299614: Shenandoah: STW mark should keep nmethod/oops referenced from stack chunk alive
Backport-of: ece9bdfc83
2024-01-17 20:30:41 +07:00
Gui Cao
d062ffd38d 8315931: RISC-V: xxxMaxVectorTestsSmokeTest fails when using RVV
Backport-of: 4070829ae5
2024-01-17 20:30:41 +07:00
Rob McKenna
dca4cbcaec 8315702: jcmd Thread.dump_to_file slow with millions of virtual threads
Backport-of: 3c258ac907
2024-01-17 20:30:41 +07:00
Rob McKenna
c626930ca7 8314759: VirtualThread.parkNanos timeout adjustment when pinned should be replaced
Backport-of: d9fc6b6933
2024-01-17 20:30:40 +07:00
Rob McKenna
9d9042a047 8312166: (dc) DatagramChannel's socket adaptor does not release carrier thread when blocking in receive
Backport-of: 028068a655
2024-01-17 20:30:40 +07:00
Rob McKenna
f5753ba95e 8309545: Thread.interrupted from virtual thread needlessly resets interrupt status
Backport-of: 97df6cf55a
2024-01-17 20:30:40 +07:00
Aleksey Shipilev
633c0070f0 8316113: Infinite permission checking loop in java/net/spi/InetAddressResolverProvider/RuntimePermissionTest
Backport-of: 947dee7f2d
2024-01-17 20:30:40 +07:00
Matthias Baesken
9474939f15 8314121: test tools/jpackage/share/RuntimePackageTest.java#id0 fails on RHEL8
Backport-of: 8107eab3c0
2024-01-17 20:30:39 +07:00
Aleksey Shipilev
af543a91bd 8308452: Extend internal Architecture enum with byte order and address size
8310982: jdk/internal/util/ArchTest.java fails after JDK-8308452 failed with Method isARM()

Backport-of: d6dd0dc3e0
2024-01-17 20:30:39 +07:00
Matthias Baesken
cb2ee2b0ac 8315751: RandomTestBsi1999 fails often with timeouts on Linux ppc64le
Backport-of: 9887cd8adc
2024-01-17 20:30:39 +07:00
Joachim Kern
083534f827 8313873: java/nio/channels/DatagramChannel/SendReceiveMaxSize.java fails on AIX due to small default RCVBUF size and different IPv6 Header interpretation
Backport-of: 486fa08d4b
2024-01-17 20:30:38 +07:00
Jan Lahoda
38570fc4c4 8313792: Verify 4th party information in src/jdk.internal.le/share/legal/jline.md
Backport-of: 87a6acbeee
2024-01-17 20:30:38 +07:00
Christoph Langer
b6e2412226 8314094: java/lang/ProcessHandle/InfoTest.java fails on Windows when run as user with Administrator privileges
Backport-of: 69c9ec92d0
2024-01-17 20:30:38 +07:00
William Kemper
3a8248a466 8314935: Shenandoah: Unable to throw OOME on back-to-back Full GCs
Backport-of: 716201c77d
2024-01-17 20:30:38 +07:00
Jan Lahoda
1834eb285b 8315735: VerifyError when switch statement used with synchronized block
Backport-of: 726c9c977d
2024-01-17 20:30:37 +07:00
Sidraya Jayagond
7641d0e7fe 8311630: [s390] Implementation of Foreign Function & Memory API (Preview)
Backport-of: ec1f7a8480
2024-01-17 20:30:37 +07:00
Matthias Baesken
44bceadabc 8311631: When multiple users run tools/jpackage/share/LicenseTest.java, Permission denied for writing /var/tmp/*.files
Reviewed-by: asemenyuk
Backport-of: fac9f88c52
2024-01-17 20:30:37 +07:00
Matthias Baesken
fcc0fb20e4 8311938: Add default cups include location for configure on AIX
Backport-of: c4b8574b94
2024-01-17 20:30:37 +07:00
Andreas Steiner
9955e14f83 8312466: /bin/nm usage in AIX makes needs -X64 flag
Backport-of: 44576a7cca
2024-01-17 20:30:36 +07:00
Matthias Baesken
d7b4ecaca2 8315214: Do not run sun/tools/jhsdb tests concurrently
Backport-of: 1e7e2bcf35
2024-01-17 20:30:36 +07:00
Rajat Mahajan
cf44290faa 8311585: Add JRadioButtonMenuItem to bug8031573.java
Backport-of: 4f90abaf17
2024-01-17 20:30:36 +07:00
Christian Stein
f3cd8f0ea2 8315863: [GHA] Update checkout action to use v4
Backport-of: b74805d383
2024-01-17 20:30:36 +07:00
Terry Chow
8abdd092e0 8308593: Add KEEPALIVE Extended Socket Options Support for Windows
Backport-of: f3ade388da
2024-01-17 20:30:35 +07:00
Aleksey Shipilev
726ec03261 8315549: CITime misreports code/total nmethod sizes
Reviewed-by: kvn
Backport-of: ab12c5d32f
2024-01-17 20:30:35 +07:00
Vladimir Kempik
747b5e486a 8315612: RISC-V: intrinsic for unsignedMultiplyHigh
Backport-of: 5d3fdc1750
2024-01-17 20:30:35 +07:00
Robbin Ehn
a5ec8ea70a 8315206: RISC-V: hwprobe query is_set return wrong value
Backport-of: 876a725af9
2024-01-17 20:30:35 +07:00
Jan Lahoda
34d982cc74 8315452: Erroneous AST missing modifiers for partial input
Reviewed-by: asotona, vromero
Backport-of: 84425a6290
2024-01-17 20:30:34 +07:00
Aleksey Shipilev
2046a7ef84 8314495: Update to use jtreg 7.3.1
Reviewed-by: phh
Backport-of: c50315de8f
2024-01-17 20:30:34 +07:00
Mandy Chung
774dfe48bc 8315383: jlink SystemModulesPlugin incorrectly parses the options
8311591: Add SystemModulesPlugin test case that splits module descriptors with new local variables defined by DedupSetBuilder

Reviewed-by: phh
Backport-of: ea5aa61c8c
2024-01-17 20:30:34 +07:00
Aleksey Shipilev
fe45b485a6 8313167: Update to use jtreg 7.3
Backport-of: 9c6eb67e85
2024-01-17 20:30:33 +07:00
Rob McKenna
1fd6998976 8315688: Update jdk21u fix version to 21.0.2
Reviewed-by: mdoerr, coffeys
2024-01-17 20:29:41 +07:00
Christian Hagedorn
76cda3c028 8313760: [REDO] Enhance AES performance
Co-authored-by: Andrew Haley <aph@openjdk.org>
Reviewed-by: adinn, sviswanathan, rhalade, kvn, dlong
Backport-of: 49ddb19972
2024-01-17 20:29:12 +07:00
Christian Hagedorn
6442e93489 8313756: [BACKOUT] 8308682: Enhance AES performance
Backport-of: 207bd00c51
2024-01-17 20:29:11 +07:00
Ramesh Bhagavatam Gangadhar
25d4eb8016 8309305: sun/security/ssl/SSLSocketImpl/BlockedAsyncClose.java fails with jtreg test timeout
Reviewed-by: ssahoo
Backport-of: 8042a50b99
2024-01-17 20:29:11 +07:00
pavel_kharskii
67af6b32d5 8311681: Update the Jan CPU24_01 release date in master branch after forking Oct CPU23_10
Reviewed-by: coffeys
2024-01-17 20:29:11 +07:00
Ravi Reddy
d6fe8dcc84 8311680: Update the release version after forking Oct CPU23_10
Reviewed-by: robm
2024-01-17 20:29:11 +07:00
Sean Mullan
07165405a7 8308204: Enhanced certificate processing
Reviewed-by: jnimeh
Backport-of: ef0ea85bf1398b73bd308ba2b395c917b449aa3b
2024-01-17 20:29:10 +07:00
Vitaly Provodin
25d6e5c49f update exclude list on results of 21.0.1_b334.1 test runs 2024-01-17 20:25:38 +07:00
Dmitry Batrak
3cadc16ca0 JBR-6449 Introduce FontMetricsAccessor into JBR API
JBRE-MR-368

(cherry picked from commit f0d5a907ac)
2024-01-16 14:03:14 +02:00
Nikita Gubarkov
53f674d581 JBR-5837 retrieve up-to-date default screen device in FullscreenWindowProps test.
Calling setDisplayMode() or setFullScreenWindow() may cause display reconfiguration.
2024-01-12 18:05:10 +01:00
Dmitrii Morskii
477e644815 JBR-3098 move repaintPeer event from AppKit thread to EDT on macos 2024-01-12 17:31:02 +01:00
bourgesl
e05cf112f0 JBR-6505: removed extra setNeedDisplay() in startRedrawIfNeeded() to restore JavaDraw performance (more frames rendered than real vsync FPS)
(cherry picked from commit be91bc02530ff56c9a706f3851c003d9c1722a80)
2024-01-12 15:50:24 +01:00
Nikita Gubarkov
2790cd8b0b JBR-6264 Improved coordinate conversion in XWayland mode 2024-01-12 15:23:14 +01:00
Vitaly Provodin
45ba91253c update exclude list on results of 21.0.1_b331.1 test runs 2024-01-12 10:49:12 +07:00
Alexander Lobas
2ab60edd40 Merge pull request #265 from alexander-lobas/jbr21
Update AWTWindow.m
2024-01-11 20:42:34 +03:00
Alexander Lobas
2da0b35360 Update AWTWindow.m
Fix typo mistake
2024-01-11 20:40:44 +03:00
Dmitry Batrak
6f0fc2cc8f JBR-2651 jb/java/awt/Focus/PopupIncomingFocusTest.java intermittently fails by java.util.concurrent.TimeoutException
further attempt to stabilize test

(cherry picked from commit 50933cd23e)
(cherry picked from commit 6d2017b6a3fe9161810f2d4a550454da989ead41)
2024-01-05 12:11:47 +02:00
Maxim Kartashev
d8f2bdb21f JBR-6452 Wayland: avoid copying entire surface buffers 2024-01-03 18:28:01 +04:00
Vitaly Provodin
f132a9597f update exclude list on results of 21.0.1_b327 test runs 2024-01-03 11:05:37 +07:00
Vitaly Provodin
4f77d022aa update exclude list on results of 21.0.1_b325.2 test runs 2024-01-03 04:52:48 +07:00
Maxim Kartashev
21062b021e JBR-6452 Wayland: measure and improve surface buffer management
Improved rendering performance by
* reducing memory copy and making it more efficient,
* tying the next frame display to the frame event from Wayland,
  which dramatically reduces load for very quick Swing apps,
* limiting the number of buffers to 2.
2023-12-28 17:13:47 +04:00
Vitaly Provodin
7c4782fcf0 update exclude list on results of 21.0.1_b321.2 test runs 2023-12-28 18:09:30 +07:00
Vitaly Provodin
afa522d0b1 JBR-6454 add synchronization at disposing windows 2023-12-27 20:12:05 +07:00
bourgesl
7084e04b3d fixup! JBR-6377: fixed MTLLayer.redrawCount = 1 to avoid extra redraws with multiple windows
(cherry picked from commit acca2a46cb)
2023-12-23 14:49:52 +01:00
Alexey Ushakov
e95b9136f2 fixup! JBR-5621 Test failures with -Dsun.java2d.metal.displaySync=false 2023-12-23 12:00:34 +01:00
bourgesl
15b700cf3f JBR-6241: RenderPerf 23.12: remove older RenderPerfTest in src
(cherry picked from commit 47750067a1)
2023-12-22 16:16:02 +01:00
bourgesl
5a4f931f73 JBR-6241: RenderPerf 23.11 improvements: support parallel rendering on several frames and screens, refined Robot executor to use rounded duration (to 120Hz) and interval between viewed frames, added new command-line arguments
(cherry picked from commit 93e1f77450)
2023-12-22 16:16:02 +01:00
bourgesl
7698957b81 JBR-6377: fixed MTLLayer.redrawCount = 1 to avoid extra redraws with multiple windows
(cherry picked from commit 82c930da5f)
2023-12-22 16:15:40 +01:00
Dmitrii Morskii
317be56a4c Revert "JBR-6346 update Inter font version"
This reverts commit 0c68438ee5.
2023-12-21 19:35:28 +00:00
Alexey Ushakov
227110f74f JBR-5621 Test failures with -Dsun.java2d.metal.displaySync=false
Created intermediate buffer in the MTLLayer
Implemented frame separation of window updates for AWT and Swing
Remove frame delays as they greatly affect throughput
Fixed test/jdk/sun/java2d/GdiRendering/ClipShapeRendering.java
Resolved crash on multi-GPU systems
2023-12-21 19:32:10 +01:00
Dmitrii Morskii
d8ecbedcc3 JBR-6372 Wayland:
-correctly positioning SplashScreen on multiple monitors;
-correctly correctly handles cases of SplashScreen with gif with transparent parts;
-refactoring;
2023-12-20 16:13:18 +01:00
Alexey Ushakov
469636eebf JBR-6445 Prepare RepaintManager code for displaySync=false
Refactored AWTAccessor code
2023-12-20 11:11:11 +01:00
Maxim Kartashev
998c4c5208 JBR-6340 Popups displayed shifted after moving IDE to another monitor via shortcut with auto-maximize enabled in Mutter
Windows no longer change their "native" size when moved between monitors
with different scale on Linux. Use -Dresize.with.scale=true to revert
that.
2023-12-20 12:57:25 +04:00
Dmitry Batrak
dd80438af6 JBR-6436 crash in jb/java/awt/Focus/FullScreenFocusStealing.java and jb/java/awt/Window/FullScreenTwoFrames.java
(cherry picked from commit 98b3ac5221)
(cherry picked from commit 9d631697bf19e036dede03bd350cdeca3b672814)
2023-12-19 14:43:53 +02:00
Alexey Ushakov
8b47697a52 JBR-6433 Rounded corners of popups disappear after a while
Removed opacity from CAMetalLayer for layers with rounded corners
2023-12-18 17:24:28 +01:00
Dmitry Batrak
895efb402b JBR-5961 Wayland: can't switch between projects using menu
fix activation not working on Ubuntu 23 (mutter 45.2), after a mouse button has been pressed in the originally active window
2023-12-15 20:34:45 +02:00
Dmitry Batrak
944744c8ee JBR-2651 jb/java/awt/Focus/PopupIncomingFocusTest.java intermittently fails by java.util.concurrent.TimeoutException 2023-12-15 15:17:33 +02:00
Vitaly Provodin
bbcca84a2d update exclude list on results of 21.0.1_b310.2 test runs 2023-12-15 07:26:53 +04:00
Dmitrii Morskii
0c68438ee5 JBR-6346 update Inter font version 2023-12-14 17:32:31 +01:00
Nikita Provotorov
0d488a6314 JBR-4687: Japanese IME input window hides what is being typed.
Uses CFS_EXCLUDE instead of CFS_CANDIDATEPOS in the ::ImmSetCandidateWindow() native API, which is more powerful and allows to take into account the issue's case.

(cherry picked from commit 0afe6c37bb)
2023-12-14 14:22:39 +01:00
Alexander Lobas
e527571582 Merge pull request #261 from alexander-lobas/jbr21
JBR-6418 New macOS full-screen controls appear shifted down sometimes
2023-12-12 16:41:15 +03:00
Alexander Lobas
6cc5f2baba JBR-6418 New macOS full-screen controls appear shifted down sometimes 2023-12-12 16:40:17 +03:00
Maxim Kartashev
597d19a912 JBR-6416 Wayland: IDEA maximize button out of sync sometimes 2023-12-12 11:17:54 +04:00
Nikita Tsarev
a42b012ef0 JBR-6215: Override XToolkit's default nonintuitive behavior when translating F13-F24 keys 2023-12-09 18:41:01 +01:00
Sergey Shelomentsev
4b58f89a9a JBR-6354 fix custom title bar tests to avoid failure in MacOS 14 fullscreen mode
- moved common logic to a separate part
- moved parts of tests to swing package
2023-12-07 21:00:48 +02:00
Maxim Kartashev
df3bd87bee JBR-6391 Wayland: memory indicator tooltip flickers 2023-12-07 19:20:00 +04:00
Maxim Kartashev
0eb8209ab1 JBR-6395 8321183: Incorrect warning from cds about the modules file
Reviewed-by: ccheung, iklam
2023-12-06 12:21:33 +04:00
Vitaly Provodin
9f4e6662e9 update exclude list on results of 21.0.1_b306.2 test runs 2023-12-06 11:35:04 +07:00
Nikita Provotorov
13efa95553 JBR-6381: A lot of messages "xInputMethodConnection == NULL" in stderr.
Disables on of the printfs that causes the issue.

(cherry picked from commit c57030a2ef)
2023-12-02 00:40:30 +01:00
Nikita Provotorov
b5cf148c6a Update README.md.
Updates information about required packages for Linux development.
2023-12-01 22:29:45 +01:00
Nikita Provotorov
d04a3e17d7 Update README.md.
Adds information about 2023.2 and 2023.3 releases.

(cherry picked from commit 6aebe7dd66)
2023-12-01 22:13:05 +01:00
Vitaly Provodin
c9a508432d update exclude list on results of 21.0.1_b303.1 test runs 2023-11-28 20:37:07 +07:00
Vitaly Provodin
2787f34824 JBR-3902 create jbr_all test group 2023-11-28 20:37:07 +07:00
Nikita Provotorov
77d9ec21cf JBR-6282: java/awt/TextArea/TextAreaEditing/TextAreaEditing.java intermittently fails due to deadlock.
Makes the test invoke any UI-operation on EDT only (since AWT doesn't guarantee thread-safety of UI operations, see more at https://mail.openjdk.org/pipermail/client-libs-dev/2023-November/016172.html).

(cherry picked from commit 8dbb889509)
2023-11-27 23:40:52 +01:00
Dmitrii Morskii
69b08c737c JBR-6213 Wayland: removed blurring on cursor on multiple monitors with different scales 2023-11-27 16:36:16 +01:00
Nikita Tsarev
603cbc244f JBR-6331: Fix some memory safety issues in macOS keyboards 2023-11-27 14:03:36 +01:00
Nikita Provotorov
3a897b7784 JBR-6125: macOS14 java/awt/Window/Grab/GrabTest.java Frame can't be focused.
Fixes a data race in the test.

(cherry picked from commit 281211d5a748e460cea4f5ab1e3889ed9588df0c)
(cherry picked from commit ca5562225a)
2023-11-24 21:03:37 +01:00
Dmitry Batrak
b669d658b3 JBR-5751 java/awt/Focus/RowToleranceTransitivityTest.java: Focus got stuck while traversing.
(cherry picked from commit fb22b86eaeb61eec34d205419151ba845cdd397c)
2023-11-24 18:00:06 +02:00
Maxim Kartashev
69e5dcd065 JBR-6276 Wayland: WLToolkit logs too much
Changed the logging level for such messages to FINE
2023-11-24 17:02:35 +04:00
Vitaly Provodin
be6842220b JBR-6246 add default CDS archives into jbrsdk distributions and remove the step normalizing timestamp 2023-11-24 18:42:44 +07:00
Vitaly Provodin
9bbc81006a fixup! JBR-4511 remove --disable options from configure mac-aarch64 builds & unify configure for x64 and aarch64 2023-11-24 18:42:17 +07:00
Vitaly Provodin
e413bc69d7 update exclude list on results of 21.0.1_b293.3 test runs 2023-11-23 07:06:59 +07:00
Dmitry Drobotov
983139bd89 JBR-4479 Add text caret tracking for macOS Accessibility Zoom
(cherry picked from commit 0dfbf34b37)
2023-11-21 13:44:45 +01:00
Dmitry Drobotov
556f48375a JBR-6194 Fix VoiceOver reading old JComboBox value after changing it
1. Remove `value == nil` check in ComboBoxAccessiblity.accessibilityValue to fix the issue with not updated value of combo box. With `value == nil` check, the value was not reassigned on every get request of `accessibilityValue`, but only on get `accessibilitySelectedChildren`. When changing focus by Tab, only get `accessibilityValue` is called, and because `value` is already not nil, an old value was returned.

2. Set combo box role to NSAccessibilityPopUpButtonRole if it's not editable. Setting role to popup button fixes the bug when combo box value was not updated when using VO cursor navigation. Native MacOS non-editable combo boxes and non-editable HTML <select> elements also have the "popup button" role instead of "combo box", so the role should become more clear. Popup button role additionally enables opening the combo box menu with VO+Space shortcut, and changes VO instructions to be more appropriate when combo box is focused.

3. Add test for VoiceOver-specific issues of JComboBox.

(cherry picked from commit 8982db51d7)
2023-11-21 13:44:43 +01:00
Maxim Kartashev
4a8b300f2b JBR-6316 Wayland: WLSMSurfaceData.getReplacement() throws UOE
Also fixed the keyboard repeat manager so that it does not prevent
application from shutting down.
Also improved fullscreen support.
2023-11-21 15:03:37 +04:00
Maxim Kartashev
4b7d649cd6 JBR-6321 Wayland: popup windows do not respect screen bounds 2023-11-20 17:06:17 +04:00
Maxim Kartashev
5fe3e85c91 JBR-6313 Wayland: pasting from clipboard doesn't always work
Also added a flush-to-server command following each Wayland request
2023-11-20 15:02:35 +04:00
Maxim Kartashev
dab4ca13d8 JBR-6291 runtime/cds/appcds/dynamicArchive/TestDynamicDumpAtOom.java: Attempting to acquire lock OOMEStacks_lock/safepoint out of order 2023-11-20 12:44:09 +04:00
Vitaly Provodin
1dfc0d359d update exclude list on results of 21.0.1_b293.1 test runs 2023-11-16 05:20:42 +07:00
Vitaly Provodin
354610e9c5 update exclude list on results of 21.0.1_b286.4 test runs 2023-11-15 09:41:39 +07:00
Alexey Ushakov
78be8d231c JBR-6281 Remove MTLEvent sync from Metal rendering code
Removed sync code
2023-11-14 17:14:37 +01:00
Nikita Gubarkov
6dd845c6a3 JBR-5274 recreate CGraphicsDevice if it was changed.
- AWT code heavily relies on reference comparison when updating graphics devices & configurations, so we need to actually re-create CGraphicsDevice if it was changed.

- Also do not rely on graphicsConfig.getDefaultTransform() when firing `graphicsContextScaleTransform` property change, as graphics devices are mutable and returned default transform may change over time, e.g. when device is invalidated.
2023-11-14 15:38:03 +01:00
Maxim Kartashev
3b06c8988f JBR-6193 Impossible to resize snapped IDE when native header is turned off
Drop the maximized state right before the resize operation for
undecorated windows.

Also fixes setExtendedState() to work when changing snapped window's state
(MAXIMIZED_HORIZ or MAXIMIZED_VERT) to NORMAL.
2023-11-13 12:27:57 +04:00
Maxim Kartashev
287e065beb JBR-6276 Wayland: WLToolkit logs too much 2023-11-13 12:25:39 +04:00
Nikita Provotorov
60d09c6597 fixup! JBR-5980: Pasting from clipboard not working reliably in Windows.
(also fixes JBR-6267: Image retreived from the Clipboard is not the same image that was set to the Clipboard)

- Sets the system property awt.windows.clipboard.cache.disabled to false by default ;
- Adds memory barriers around the native flag AwtClipboard::isOwner ;
- Allows back WM_ACTIVATEAPP messages to reach ::DefWindowProc .
2023-11-11 22:13:30 +01:00
Nikita Provotorov
845c60f3bb fixup! JBR-5980: Pasting from clipboard not working reliably in Windows.
Adds memory barriers around the native flag AwtClipboard::isGettingOwnership.
2023-11-11 22:13:29 +01:00
Dmitrii Morskii
5ae7a8673a fixup! JBR-5965 Wayland: implement SplashScreen 2023-11-11 13:59:16 +01:00
Vitaly Provodin
f49a25c680 update exclude list on results of 21.0.1_b280.6 test runs 2023-11-11 06:45:44 +07:00
Alexander Lobas
fb90b5c110 JBR-5546 Iterating open windows with cmd backtick on Mac forces minimized windows to un-minimize 2023-11-10 23:57:20 +01:00
Alexander Lobas
7bd15f1934 JBR-5478 IDEA window doesn't fit the screen properly on turning off/on an external monitor 2023-11-10 23:57:20 +01:00
Alexander Lobas
d2d0488bc3 JBR-5409 "No Print Service Found" Error when saving to PDF 2023-11-10 23:52:53 +01:00
Alexander Lobas
0147cba952 JBR-5384 New UI: window header is hard to resize on the top edge, top/right corner 2023-11-10 23:52:53 +01:00
Alexander Lobas
540d5a32c4 JBR-5174 Opening project as tabs in Mac OS (version2)
JBR-5023 Configure TabbingIdentifier during create native window
JBR-5256 IDEA window resizes to zero height when exit full-screen mode with new window controls enabled
JBR-5197 Window control buttons are not visible in full-screen mode in dark themes when IDE window is focused
JBR-5175 jb/java/awt/Window/FullScreenTwoFrames.java: -[AWTWindow resetWindowFullScreeControls]: unrecognized selector sent to instance 0x60000232d5f0
JBR-5499 Window control buttons bugfix
JBR-4462 BigSur: project tab does not gain focus when click it after focusing another app
2023-11-10 23:52:52 +01:00
Alexander Lobas
54f70cfc23 JBR-4834 JBR-5139 Rounded corners on Mac OS and Windows: support custom border color 2023-11-10 23:52:11 +01:00
Dmitrii Morskii
0b777f2360 fixup! JBR-5965 Wayland: implement SplashScreen 2023-11-10 20:04:00 +01:00
Nikita Tsarev
b9b029b357 JBR-5678: Refactor Wayland keyboard support 2023-11-10 14:34:37 +01:00
Nikita Provotorov
a151e238d3 JBR-2460: Wrong position of input window and no input preview with fcitx and ubuntu 13.04.
This patch makes the fix of JBR-1573 (which caused JBR-4394) disabled by default, because it's incompatible with the native below-the-spot mode (a.k.a. over-the-spot in the X11's terminology).

(cherry picked from commit 3fe2a97aa0)
2023-11-09 22:27:16 +01:00
Nikita Provotorov
1775a1cfcf JBR-2460: Wrong position of input window and no input preview with fcitx and ubuntu 13.04.
- introduces and integrates jbNewXimClient: a new implementation of XIC creation routine (it's mostly refactoring and generalizing of AWT's existed code). Enabled by default and can be disabled via a new system property -Djb.awt.newXimClient.enabled=false ;
- introduces support of the X11's native over-the-spot input method style (it's almost the same as AWT's below-the-spot mode, but the input method's windows are drawn externally, not by AWT). Enabled by default and can be disabled via a new system property -Djb.awt.newXimClient.enabled=false. Doesn't work if -Djb.awt.newXimClient.enabled=false is set ;
- introduces sun.awt.X11.XInputMethod.ClientComponentCaretPositionTracker class that tracks all kind of events for the current client component that can lead to the caret position changing ;
- makes the XInputMethod class to update the input window's position (whenever the ClientComponentCaretPositionTracker discovers that's necessary) by setting the X11's XNSpotLocation property .

Check out the branch nprovotorov/backups/JBR-2460_wrong-position-of-input-window-and-no-input-preview for more granular patches.

(cherry picked from commit 826f75ee48)
2023-11-09 22:27:15 +01:00
Maxim Kartashev
0413f857ab JBR-6220 javax/swing/GraphicsConfigNotifier/StalePreferredSize.java became failing by time out on Linux 2023-11-07 13:29:58 +04:00
Nikita Provotorov
ab86812e28 JBR-5980: Pasting from clipboard not working reliably in Windows.
- Disables caching of the data placed into the clipboard. The behavior is controlled by the system property "awt.windows.clipboard.cache.disabled" (=true by default) ;
- Whenever the app gets focus additionally checks if another app has modified the clipboard. The behavior is controlled by the system property "awt.windows.clipboard.extraOwnershipChecksEnabled" (=true by default) .

(cherry picked from commit 473c41003d)
2023-11-06 13:47:56 +01:00
Nikita Provotorov
dad3d32da9 JBR-5980: Pasting from clipboard not working reliably in Windows.
Marks the native flag AwtClipboard::isGettingOwnership as volatile to avoid inconsistencies of CPU caches.

(cherry picked from commit b967f5bc91)
2023-11-06 13:47:48 +01:00
Dmitrii Morskii
0ba8323f49 fixup! JBR-5965 Wayland: implement SplashScreen 2023-11-04 16:58:34 +01:00
Dmitrii Morskii
825eb901c2 JBR-5965 Wayland: implement SplashScreen 2023-11-03 14:57:46 +01:00
Vitaly Provodin
0b6e65188d update exclude list on results of 21.0.1_b277.3 test runs 2023-11-03 20:15:56 +07:00
Maxim Kartashev
8bc89f222d JBR-6253 Wayland: can't run in weston because of xdg_wm_base version 3 2023-11-01 13:06:24 +04:00
Maxim Kartashev
b82fc5f02a JBR-6212 Wayland: app does not terminate upon Wayland protocol error 2023-11-01 12:17:46 +04:00
Vladimir Kharitonov
e29b134c47 JBR-6239 sign frameworks in cef_server.app 2023-10-31 15:52:53 +01:00
Vitaly Provodin
faff43cb95 update exclude list on results of 21.0.1_b270.3 test runs 2023-10-26 16:15:45 +07:00
Vitaly Provodin
3b769c378d fixup! 8312248: Enhanced archival support redux 2023-10-26 05:39:56 +07:00
Vitaly Provodin
a73783b4c4 JBR-4154 fix extracting version info from sources 2023-10-25 09:46:40 +07:00
Vitaly Provodin
b19dd54b28 fixup! JBR-6181 add Linux executables with bundled FreeType 2023-10-25 09:46:40 +07:00
Vladimir Kozlov
c3efc147d2 8317121: vector_masked_load instruction is moved too early after JDK-8286941
Reviewed-by: shade, vlivanov
Backport-of: cfabcbf858
2023-10-25 09:45:24 +07:00
Calvin Cheung
25bc0259d4 8314649: Enhanced archival support redux
Reviewed-by: iklam
2023-10-25 09:45:24 +07:00
Sean Mullan
29aa2eeac8 8309966: Enhanced TLS connections
Backport-of: d25ee81f56d67f2c51ba8b8c59f470c6f88ae47f
2023-10-25 09:45:23 +07:00
Calvin Cheung
77d852d248 8312248: Enhanced archival support redux
Backport-of: c2100a627d578901dffbbe631e5a6c9b88ca2209
2023-10-25 09:45:23 +07:00
pavel_kharskii
cc15e44d8b 8311682: Change milestone to fcs for all releases
Reviewed-by: coffeys
2023-10-25 09:45:23 +07:00
Prasadrao Koppula
e15c1dd7f8 8286503: Enhance security classes
Reviewed-by: wetmore
Backport-of: 7f5e120a631ffda3e6d5efc03bae572b21877b69
2023-10-25 09:45:23 +07:00
Jan Lahoda
bd4a1c5826 8313323: javac -g on a java file which uses unnamed variable leads to ClassFormatError when launching that class
Backport-of: adfc1d6cd2
2023-10-25 09:45:23 +07:00
Jan Lahoda
aeb212950c 8315534: Incorrect warnings about implicit annotation processing
Backport-of: 94a74a0a45
2023-10-25 09:45:23 +07:00
Martin Doerr
912bdf3d8c 8299658: C1 compilation crashes in LinearScan::resolve_exception_edge
Backport-of: cf2d33ca2e
2023-10-25 09:45:23 +07:00
airsquared
2319e12b5e 8309032: jpackage does not work for module projects unless --module-path is specified
Backport-of: dfe764e3f8
2023-10-25 09:45:23 +07:00
Roman Marchenko
b8b4f00c9d 8314024: SIGSEGV in PhaseIdealLoop::build_loop_late_post_work due to bad immediate dominator info
Reviewed-by: thartmann
Backport-of: ed1ea5fe7c
2023-10-25 09:45:23 +07:00
Alexander Scherbatiy
5eed624d8a 8311033: [macos] PrinterJob does not take into account Sides attribute
Backport-of: a3d67231a7
2023-10-25 09:45:23 +07:00
Aleksey Shipilev
6a8fe5883c 8315051: jdk/jfr/jvm/TestGetEventWriter.java fails with non-JVMCI GCs
Backport-of: 145d8bc1a3
2023-10-25 09:45:23 +07:00
Tobias Hartmann
344f6a777c 8313626: C2 crash due to unexpected exception control flow
Backport-of: f8203cb272
2023-10-25 09:45:23 +07:00
Ao Qi
2efe90455c 8315020: The macro definition for LoongArch64 zero build is not accurate.
Backport-of: 725ec0ce1b
2023-10-25 09:45:23 +07:00
Thomas Stuefe
49ecaa8e75 8312585: Rename DisableTHPStackMitigation flag to THPStackMitigation
Backport-of: 226cdc696d
2023-10-25 09:45:22 +07:00
Aleksey Shipilev
231bec2701 8314656: GHA: No need for Debian ports keyring installation after JDK-8313701
Backport-of: 76b9011c9e
2023-10-25 09:45:22 +07:00
Sergey Bylokhov
209c6bee4c 8312535: MidiSystem.getSoundbank() throws unexpected SecurityException
Backport-of: 87298d2ade
2023-10-25 09:45:22 +07:00
Alexander Matveev
d0ccbbab87 8308042: [macos] Developer ID Application Certificate not picked up by jpackage if it contains UNICODE characters
Backport-of: 57a322da9b
2023-10-25 09:45:22 +07:00
Chris Plummer
2186cf7412 8314679: SA fails to properly attach to JVM after having just detached from a different JVM
Backport-of: 38a9edfb7e
2023-10-25 09:45:22 +07:00
nibjen
25360cbb98 8312489: Increase jdk.jar.maxSignatureFileSize default which is too low for JARs such as WhiteSource/Mend unified agent jar
Reviewed-by: hchao
Backport-of: e47a84f23d
2023-10-25 09:45:22 +07:00
Matthias Baesken
0487e52815 8313691: use close after failing os::fdopen in vmError and ciEnv
Backport-of: 96304f37f8
2023-10-25 09:45:22 +07:00
Aleksey Shipilev
9379b05ecc 8313262: C2: Sinking node may cause required cast to be dropped
Backport-of: 1cee3b9fd9
2023-10-25 09:45:22 +07:00
Oli Gillespie
7e2f8a4119 8313874: JNI NewWeakGlobalRef throws exception for null arg
Backport-of: 028b3ae1b1
2023-10-25 09:45:22 +07:00
Oli Gillespie
cfc4c050a3 8313678: SymbolTable can leak Symbols during cleanup
Backport-of: 4b2703ad39
2023-10-25 09:45:22 +07:00
Thomas Stuefe
e8db310385 8314139: TEST_BUG: runtime/os/THPsInThreadStackPreventionTest.java could fail on machine with large number of cores
Backport-of: 7332502883
2023-10-25 09:45:22 +07:00
Andrew John Hughes
41fee9e215 8284772: GHA: Use GCC Major Version Dependencies Only
Backport-of: 7e843c22e7
2023-10-25 09:45:22 +07:00
Sidraya Jayagond
64479d7ab2 8309889: [s390] Missing return statement after calling jump_to_native_invoker method in generate_method_handle_dispatch.
Backport-of: 514816ed7d
2023-10-25 09:45:22 +07:00
Tyler Steele
eacc032c49 8309475: Test java/foreign/TestByteBuffer.java fails: a problem with msync (aix)
Backport-of: 395fc78880
2023-10-25 09:45:22 +07:00
Weibing Xiao
7771b08985 8314063: The socket is not closed in Connection::createSocket when the handshake failed for LDAP connection
Backport-of: f2383b3cbd
2023-10-25 09:45:21 +07:00
Thomas Stuefe
df7196fbba 8312620: WSL Linux build crashes after JDK-8310233
Backport-of: 25058cd23a
2023-10-25 09:45:21 +07:00
Thomas Stuefe
2f7800d8b1 8312182: THPs cause huge RSS due to thread start timing issue
8310687: JDK-8303215 is incomplete

Backport-of: 84b325b844
2023-10-25 09:45:21 +07:00
Thomas Stuefe
92e7de91ee 8303815: Improve Metaspace test speed
Backport-of: de0e46c2f6
2023-10-25 09:45:21 +07:00
Thomas Stuefe
09253b6333 8312394: [linux] SIGSEGV if kernel was built without hugepage support
Backport-of: 94eb44b192
2023-10-25 09:45:21 +07:00
Rajan Halade
318822fc47 8314960: Add Certigna Root CA - 2
Backport-of: e9ba8d5a0e
2023-10-25 09:45:21 +07:00
Patricio Chilano Mateo
8f23b927ce 8314850: SharedRuntime::handle_wrong_method() gets called too often when resolving Continuation.enter
Backport-of: 8e4240c316
2023-10-25 09:45:21 +07:00
Ben Taylor
24e0f40a32 8313796: AsyncGetCallTrace crash on unreadable interpreter method pointer
Backport-of: 0e2c72d7a5
2023-10-25 09:45:21 +07:00
Sean Coffey
986a132b17 8311592: ECKeySizeParameterSpec causes too many exceptions on third party providers
Backport-of: e554fdee25
2023-10-25 09:45:21 +07:00
Aleksey Shipilev
f52407b18e 8313701: GHA: RISC-V should use the official repository for bootstrap
Backport-of: 538f9557b8
2023-10-25 09:45:21 +07:00
Valerie Peng
17fd96ecc7 8309214: sun/security/pkcs11/KeyStore/CertChainRemoval.java fails after 8301154
Backport-of: ba6cdbe2c2
2023-10-25 09:45:21 +07:00
Roger Riggs
6d53ad1f88 8313312: Add missing classpath exception copyright header
Reviewed-by: bpb
Backport-of: 53ca75b18e
2023-10-25 09:45:21 +07:00
Aleksey Shipilev
81788680f8 8314020: Print instruction blocks in byte units
Backport-of: a602624ef4
2023-10-25 09:45:21 +07:00
Aleksey Shipilev
eaddbc06c1 8314730: GHA: Drop libfreetype6-dev transitional package in favor of libfreetype-dev
Backport-of: 69d900d2ce
2023-10-25 09:45:21 +07:00
Aleksey Shipilev
e6655ac474 8313901: [TESTBUG] test/hotspot/jtreg/compiler/codecache/CodeCacheFullCountTest.java fails with java.lang.VirtualMachineError
Backport-of: d1de3d082e
2023-10-25 09:45:20 +07:00
Alexey Ivanov
ad80a8af22 8312555: Ideographic characters aren't stretched by AffineTransform.scale(2, 1)
Ignore bitmaps embedded into fonts for non-uniform scales

Backport-of: 62610203f1
2023-10-25 09:45:20 +07:00
Matthias Baesken
ff79afb687 8314517: some tests fail in case ipv6 is disabled on the machine
Backport-of: 703817d21f
2023-10-25 09:45:20 +07:00
Matthias Baesken
8caae04364 8313602: increase timeout for jdk/classfile/CorpusTest.java
Backport-of: bdac348c80
2023-10-25 09:45:20 +07:00
Tyler Steele
119fa1793f 8312180: (bf) MappedMemoryUtils passes incorrect arguments to msync (aix)
Backport-of: fdac6a6ac8
2023-10-25 09:45:20 +07:00
Aleksey Shipilev
581a2aad23 8314501: Shenandoah: sun/tools/jhsdb/heapconfig/JMapHeapConfigTest.java fails
Backport-of: 812f475bc4
2023-10-25 09:45:20 +07:00
Aleksey Shipilev
afca23514f 8314426: runtime/os/TestTrimNative.java is failing on slow machines
Backport-of: 20e94784c9
2023-10-25 09:45:20 +07:00
Aleksey Shipilev
dce35c74cc 8313752: InstanceKlassFlags::print_on doesn't print the flag names
Backport-of: 735b16a696
2023-10-25 09:45:20 +07:00
Thomas Stuefe
8aa7819a6e 8310233: Fix THP detection on Linux
Backport-of: 37ca9024ef
2023-10-25 09:45:20 +07:00
David Holmes
d595bd9fa2 8311981: Test gc/stringdedup/TestStringDeduplicationAgeThreshold.java#ZGenerational timed out
Backport-of: f142470dea
2023-10-25 09:45:20 +07:00
Gui Cao
faba31cfa1 8314618: RISC-V: -XX:MaxVectorSize does not work as expected
Backport-of: a66b5df14a
2023-10-25 09:45:20 +07:00
Feilong Jiang
8ccf32d585 8314117: RISC-V: Incorrect VMReg encoding in RISCV64Frame.java
Backport-of: 5c91622885
2023-10-25 09:45:20 +07:00
Valerie Peng
4f101342ca 8302017: Allocate BadPaddingException only if it will be thrown
Backport-of: c27c87786a
2023-10-25 09:45:20 +07:00
Alexander Matveev
b7792c1b7c 8313904: [macos] All signing tests which verifies unsigned app images are failing
Reviewed-by: asemenyuk
Backport-of: ec0cc6300a
2023-10-25 09:45:20 +07:00
Aggelos Biboudis
3f2a8eefe4 8314423: Multiple patterns without unnamed variables
8314216: Case enumConstant, pattern compilation fails

Backport-of: 4331193010
2023-10-25 09:45:19 +07:00
Ben Taylor
3109817e37 8313765: Invalid CEN header (invalid zip64 extra data field size)
Backport-of: 13f6450e2e
2023-10-25 09:45:19 +07:00
Aleksey Shipilev
572c6f273a 8309591: Socket.setOption(TCP_QUICKACK) uses wrong level
Backport-of: 56a73a6f0f
2023-10-25 09:45:19 +07:00
Aleksey Shipilev
27bc02722a 8314262: GHA: Cut down cross-compilation sysroots deeper
Backport-of: 38687f1a3e
2023-10-25 09:45:19 +07:00
Thomas Schatzl
ce2871c888 8314144: gc/g1/ihop/TestIHOPStatic.java fails due to extra concurrent mark with -Xcomp
Reviewed-by: ayang
Backport-of: 1925508425
2023-10-25 09:45:19 +07:00
Raffaello Giulietti
58c85dfe31 8312976: MatchResult produces StringIndexOutOfBoundsException for groups outside match
Reviewed-by: rriggs
Backport-of: 61c58fdd00
2023-10-25 09:45:19 +07:00
Mandy Chung
3fef4fe04c 8240567: MethodTooLargeException thrown while creating a jlink image
Reviewed-by: phh
Backport-of: ec7da91bd8
2023-10-25 09:45:19 +07:00
Weibing Xiao
d33282c39a 8313657: com.sun.jndi.ldap.Connection.cleanup does not close connections on SocketTimeoutErrors
Backport-of: e56d3bc2da
2023-10-25 09:45:19 +07:00
Abhishek Kumar
6fa2c70b07 8311160: [macOS, Accessibility] VoiceOver: No announcements on JRadioButtonMenuItem and JCheckBoxMenuItem
Reviewed-by: asemenov, kizune
Backport-of: c1f4595e64
2023-10-25 09:45:19 +07:00
Matthias Baesken
3452504ee4 8311511: Improve description of NativeLibrary JFR event
Backport-of: 848abd2831
2023-10-25 09:45:19 +07:00
Aleksey Shipilev
32aed8a740 8310106: sun.security.ssl.SSLHandshake.getHandshakeProducer() incorrectly checks handshakeConsumers
Backport-of: db133dbc02
2023-10-25 09:45:19 +07:00
Aleksey Shipilev
666f684622 8314118: Update JMH devkit to 1.37
Backport-of: 06aa3c5628
2023-10-25 09:45:19 +07:00
Aleksey Shipilev
082d242e53 8312127: FileDescriptor.sync should temporarily increase parallelism
Reviewed-by: alanb
Backport-of: fbe51e388d
2023-10-25 09:45:19 +07:00
Aleksey Shipilev
863d0d38a0 8312625: Test serviceability/dcmd/vm/TrimLibcHeapTest.java failed: RSS use increased
Reviewed-by: stuefe
Backport-of: 117f42dbe9
2023-10-25 09:45:19 +07:00
Aleksey Shipilev
8fb4cda937 8313307: java/util/Formatter/Padding.java fails on some Locales
Backport-of: 408987e1ca
2023-10-25 09:45:18 +07:00
Aleksey Shipilev
5b7e8bd59c 8308474: DSA does not reset SecureRandom when initSign is called again
Reviewed-by: valeriep
Backport-of: bed9161c81
2023-10-25 09:45:18 +07:00
Aleksey Shipilev
b94ed3592d 8313248: C2: setScopedValueCache intrinsic exposes nullptr pre-values to store barriers
Backport-of: e8a37b90db
2023-10-25 09:45:18 +07:00
Aleksey Shipilev
5ca9d6a458 8312525: New test runtime/os/TestTrimNative.java#trimNative is failing: did not see the expected RSS reduction
Reviewed-by: stuefe
Backport-of: ad34be1f32
2023-10-25 09:45:18 +07:00
Aleksey Shipilev
1f20ac5bd6 8293114: JVM should trim the native heap
Reviewed-by: stuefe
Backport-of: 9e4fc568a6
2023-10-25 09:45:18 +07:00
Ravi Reddy
2a592da963 8308047: java/util/concurrent/ScheduledThreadPoolExecutor/BasicCancelTest.java timed out and also had jcmd pipe errors
Backport-of: 8c9d091f19
2023-10-25 09:45:18 +07:00
Aleksey Shipilev
e8ca1144e4 8313676: Amend TestLoadIndexedMismatch test to target intrinsic directly
Backport-of: 4b192a8dc3
2023-10-25 09:45:18 +07:00
Aleksey Shipilev
310650a2da 8313402: C1: Incorrect LoadIndexed value numbering
Reviewed-by: thartmann
Backport-of: 46fbedb2be
2023-10-25 09:45:18 +07:00
Aleksey Shipilev
2029c48fee 8313707: GHA: Bootstrap sysroots with --variant=minbase
Backport-of: 29f1d8ef50
2023-10-25 09:45:18 +07:00
Sergey Bylokhov
0a0814106a 8313576: GCC 7 reports compiler warning in bundled freetype 2.13.0
Backport-of: 8248e351d0
2023-10-25 09:45:18 +07:00
Tobias Hartmann
a4dba8b9a1 8312909: C1 should not inline through interface calls with non-subtype receiver
Backport-of: ab1c212ac1
2023-10-25 09:45:18 +07:00
Tobias Hartmann
852cc0d462 8304954: SegmentedCodeCache fails when using large pages
Backport-of: cad6114e1c
2023-10-25 09:45:18 +07:00
Christoph Langer
22002b37cd 8311926: java/lang/ScopedValue/StressStackOverflow.java takes 9mins in tier1
Backport-of: 7304316a8c
2023-10-25 09:45:18 +07:00
Jan Lahoda
35a47c6833 8312619: Strange error message when switching over long
Backport-of: cc2a75e11c
2023-10-25 09:45:18 +07:00
Jan Lahoda
e4e6cd9f72 8312984: javac may crash on a record pattern with too few components
Backport-of: c386091734
2023-10-25 09:45:17 +07:00
Jiangli Zhou
07fdb725ad 8312401: SymbolTable::do_add_if_needed hangs when called in InstanceKlass::add_initialization_error path with requesting length exceeds max_symbol_length
Backport-of: 36f3bae556
2023-10-25 09:45:17 +07:00
Christoph Langer
feb04e1262 8310211: serviceability/jvmti/thread/GetStackTrace/getstacktr03/getstacktr03.java failing
Backport-of: 16134f4422
2023-10-25 09:45:17 +07:00
Christoph Langer
a9185c18aa 8308609: java/lang/ScopedValue/StressStackOverflow.java fails with "-XX:-VMContinuations"
8310586: ProblemList java/lang/ScopedValue/StressStackOverflow.java#default with virtual threads on linux-all

Reviewed-by: mbaesken, alanb
Backport-of: 44a8aa0691
2023-10-25 09:45:17 +07:00
Matthias Baesken
787cb82170 8311955: c++filt is now ibm-llvm-cxxfilt when using xlc17 / clang on AIX
Backport-of: 0328886450
2023-10-25 09:45:17 +07:00
Aleksey Shipilev
9c01ab932c 8313428: GHA: Bump GCC versions for July 2023 updates
Backport-of: ec2f38fd38
2023-10-25 09:45:17 +07:00
Aleksey Shipilev
4e8632a443 8312591: GCC 6 build failure after JDK-8280982
Backport-of: 9454b2bbe1
2023-10-25 09:45:17 +07:00
Vladimir Kempik
553f1a32d0 8310268: RISC-V: misaligned memory access in String.Compare intrinsic
Backport-of: d6245b6832
2023-10-25 09:45:17 +07:00
Aleksey Shipilev
8a15b90086 8307766: Linux: Provide the option to override the timer slack
Reviewed-by: stuefe
Backport-of: 7173c3009e
2023-10-25 09:45:17 +07:00
Tobias Hartmann
c897d45c33 8312573: Failure during CompileOnly parsing leads to ShouldNotReachHere
Reviewed-by: kvn, tholenstein
2023-10-25 09:45:17 +07:00
Matthias Baesken
072adeda9a 8312395: Improve assertions in growableArray
Backport-of: b772e67e29
2023-10-25 09:45:17 +07:00
Matthias Baesken
804501f741 8310321: make JDKOPT_CHECK_CODESIGN_PARAMS more verbose
Backport-of: 9eed049098
2023-10-25 09:45:17 +07:00
Matthias Baesken
11fce43f16 8311921: Inform about MaxExpectedDataSegmentSize in case of pthread_create failures on AIX
Backport-of: aa7367f1ec
2023-10-25 09:45:17 +07:00
Matthias Baesken
337e993f67 8311917: MAP_FAILED definition seems to be obsolete in src/java.desktop/unix/native/common/awt/fontpath.c
Backport-of: a38a421f62
2023-10-25 09:45:17 +07:00
Paul Hohensee
f5c9ee7113 8313081: MonitoringSupport_lock should be unconditionally initialized after 8304074
Backport-of: a9d21c61fb
2023-10-25 09:45:16 +07:00
Aleksey Shipilev
6c1bc9df2e 8309746: Reconfigure check should include make/conf/version-numbers.conf
Backport-of: 955fc2faba
2023-10-25 09:45:16 +07:00
Matthias Baesken
1243d1e435 8311026: Some G1 specific tests do not set -XX:+UseG1GC
Backport-of: a7d168b522
2023-10-25 09:45:16 +07:00
Matthias Baesken
f7e85e502e 8311285: report some fontconfig related environment variables in hs_err file
Backport-of: 0ef03f1228
2023-10-25 09:45:16 +07:00
Aleksey Shipilev
5551e8e51d 8311249: Remove unused MemAllocator::obj_memory_range
Backport-of: 711cddd899
2023-10-25 09:45:16 +07:00
Gui Cao
84aa3af790 8311923: TestIRMatching.java fails on RISC-V
Backport-of: e7adbdb1f1
2023-10-25 09:45:16 +07:00
Johny Jose
942297f61e 8308184: Launching java with large number of jars in classpath with java.protocol.handler.pkgs system property set can lead to StackOverflowError
Reviewed-by: jpai, coffeys
Backport-of: 268ec61d4f
2023-10-25 09:45:16 +07:00
Vladimir Kempik
3c9ff2c691 8311862: RISC-V: small improvements to shift immediate instructions
Backport-of: f3b96f6937
2023-10-25 09:45:16 +07:00
Feilong Jiang
6b1d4b44fc 8310873: Re-enable locked_create_entry symbol check in runtime/NMT/CheckForProperDetailStackTrace.java for RISC-V
Backport-of: 87e6fab2c4
2023-10-25 09:45:16 +07:00
Weibing Xiao
9f599104e8 8297856: Improve handling of Bidi characters
Backport-of: 244b89fc786894cb8cca742f91875ebb98b603ff
2023-10-25 09:45:16 +07:00
Weibing Xiao
2243b952cb 8296581: Better system proxy support
Reviewed-by: coffeys
Backport-of: 111811e64245ae720a0617b7de0c52c60bb2bac1
2023-10-25 09:45:16 +07:00
Vladimir Kempik
3f274e2f69 8309502: RISC-V: String.indexOf intrinsic may produce misaligned memory loads
Backport-of: 6b94289386
2023-10-25 09:45:16 +07:00
Rob McKenna
f69c0e622e 8310171: Bump version numbers for 21.0.1
Reviewed-by: iris, erikj
2023-10-25 09:45:16 +07:00
Alexey Ushakov
8d1f3a7a9e Revert "JBR-5965 Wayland: implement SplashScreen"
This reverts commit a6588d4b45.
2023-10-22 13:42:09 +02:00
Alexey Ushakov
1dbeb23fd4 Revert "fixup! JBR-5965 Wayland: implement SplashScreen"
This reverts commit a06582873c.
2023-10-22 13:41:20 +02:00
Dmitrii Morskii
a06582873c fixup! JBR-5965 Wayland: implement SplashScreen 2023-10-21 13:11:56 +02:00
Vitaly Provodin
1e2bb86176 fixup! JBR-6181 add Linux executables with bundled FreeType 2023-10-21 15:07:40 +07:00
Konstantin Bulenkov
fa5c69eeb9 JBR-6214 [fwp jbr21] IDEA-299292 Use Inter semibold instead of Inter bold
Replaced Inter bold with semi-bold fonts
2023-10-20 17:20:01 +02:00
Dmitrii Morskii
a6588d4b45 JBR-5965 Wayland: implement SplashScreen 2023-10-18 20:02:46 +02:00
Maxim Kartashev
5b97a03736 JBR-6209 Wayland: popup windows cannot be moved 2023-10-18 19:26:36 +04:00
Nikita Gubarkov
6d87c216f5 JBR-6208 Extended glyph cache for Metal 2023-10-17 21:25:50 +02:00
Maxim Kartashev
fe1a207eb5 JBR-5977 Wayland: make undecorated windows natively resizeable 2023-10-17 16:36:03 +04:00
Maxim Kartashev
fac167c65f JBR-6207 Wayland: many popup windows positioned incorrectly
When popup's parent is also its top-level window, use that instead of
null
2023-10-17 12:40:23 +04:00
Vitaly Provodin
0861698478 JBR-6181 add Linux executables with bundled FreeType 2023-10-13 06:53:18 +04:00
Alexey Ushakov
054df02388 JBR-4983 MacOS Ventura - External monitor lagging
Added extra redraw request
Enabled the fix by default only for M2 and spans displays property enabled (Displays have separate spaces OFF)
2023-10-10 13:56:26 +02:00
Maxim Kartashev
e4d4fa74d2 JBR-6142 Impossible to move/resize IDE window after restart if several projects were initially opened on secondary monitor
Announce to Mutter that we are "client-decorated" when a Frame is
undecorated by setting _GTK_FRAME_EXTENTS to all zeroes.
This prevents Mutter from applying certain harmful heuristics.
2023-10-10 15:31:47 +04:00
Maxim Kartashev
8d1d4351b9 JBR-6183 Wayland: clipboard-related exception in headless environment 2023-10-10 11:43:03 +04:00
Dmitrii Morskii
246e3a3de9 JBR-6135 removed dependence on process reading TTF in fixed size chunks 2023-10-09 15:01:15 +02:00
bourgesl
1b65d2d228 JBR-6119: RenderPerf enhancements:
new executor modes (buffer & volatile), robot calibration & more statistics and CLI arguments
added version + help information, added time unit

(cherry picked from commit 2afc66470aa3d3a77ab590b9e0eb4c799be432be)
2023-10-04 20:58:39 +02:00
Alexey Ushakov
474629f98a JBR-6132 Crash in [MTLLayer blitTexture] when MTL_DEBUG_LAYER enabled
Blit operation should not be performed on textures with MTLTextureUsageRenderTarget only, so changing framebufferOnly to NO
2023-10-04 16:12:47 +02:00
Nikita Gubarkov
76c483eec1 JBR-6144 Build JBR with Vulkan support
1. Update dockerfile to checkout Vulkan headers
2. Fix --with-vulkan-include configure option
2023-10-04 14:53:17 +02:00
Alexey Ushakov
7685c6b5f9 JBR-6158 Cannot build jbr21 with wayland toolkit on wsl2
Added --with-wayland-lib option to provide custom library path
2023-10-03 19:59:01 +02:00
Maxim Kartashev
6a1c5bd43a JBR-5857 Wayland: implement clipboard support 2023-10-02 19:38:31 +04:00
Dmitry Batrak
5e738482b1 JBR-6145 [Wayland toolkit] Popup windows aren't focusable
A partial solution. Cases not still covered:
* Alt+tab from the app and back should keep popup focused if it was focused initially
* Mouse clicks between popup and owner should transfer focus as expected
2023-09-29 20:14:01 +03:00
Vitaly Provodin
17556b0ea3 update exclude list on results of 21_b243.1 test runs 2023-09-29 15:47:08 +04:00
Vitaly Provodin
7dda83bf0b JBR-6130 add VK_TAB release action 2023-09-29 15:47:08 +04:00
Maxim Kartashev
ca1889e682 JBR-6138 Wayland: utilize gtk_shell1 protocol to mark dialogs as modal 2023-09-29 09:38:21 +04:00
Maxim Kartashev
258cf006bc JBR-6117 Wayland: JVM shutdown hang 2023-09-28 09:01:26 +04:00
Nikita Provotorov
a240282285 JBR-5984: IM's candidate window is placed under popup windows.
- Implements the optional method [NSTextInputClient windowLevel] to tell the macOS IM subsystem correct level of the window;
- Adds a regression test ImWindowIsPlacedUnderPopup5984.java.

(cherry picked from commit 5a91aae9c2)
2023-09-26 22:01:45 +02:00
1493 changed files with 61085 additions and 30169 deletions

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2022, 2023, 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
@@ -104,6 +104,6 @@ runs:
- name: 'Export path to where BootJDK is installed'
id: path-name
run: |
# Export the path
echo 'path=bootjdk/jdk' >> $GITHUB_OUTPUT
# Export the absolute path
echo "path=`pwd`/bootjdk/jdk" >> $GITHUB_OUTPUT
shell: bash

View File

@@ -40,7 +40,7 @@ runs:
var: GTEST_VERSION
- name: 'Checkout GTest source'
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: google/googletest
ref: 'v${{ steps.version.outputs.value }}'

View File

@@ -47,7 +47,7 @@ runs:
key: jtreg-${{ steps.version.outputs.value }}
- name: 'Checkout the JTReg source'
uses: actions/checkout@v3
uses: actions/checkout@v4
with:
repository: openjdk/jtreg
ref: jtreg-${{ steps.version.outputs.value }}

View File

@@ -31,12 +31,6 @@ on:
gcc-major-version:
required: true
type: string
apt-gcc-version:
required: true
type: string
apt-gcc-cross-version:
required: true
type: string
extra-conf-options:
required: false
type: string
@@ -86,13 +80,12 @@ jobs:
- target-cpu: riscv64
gnu-arch: riscv64
debian-arch: riscv64
debian-repository: https://deb.debian.org/debian-ports
debian-keyring: /usr/share/keyrings/debian-ports-archive-keyring.gpg
debian-repository: https://httpredir.debian.org/debian/
debian-version: sid
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 'Get the BootJDK'
id: bootjdk
@@ -107,6 +100,10 @@ jobs:
with:
platform: linux-x64
- name: 'Get GTest'
id: gtest
uses: ./.github/actions/get-gtest
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
- name: 'Install toolchain and dependencies'
run: |
@@ -114,12 +111,11 @@ jobs:
sudo apt-get update
sudo apt-get install --only-upgrade apt
sudo apt-get install \
gcc-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \
g++-${{ inputs.gcc-major-version }}=${{ inputs.apt-gcc-version }} \
gcc-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-cross-version }} \
g++-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}=${{ inputs.apt-gcc-cross-version }} \
libxrandr-dev libxtst-dev libcups2-dev libasound2-dev \
debian-ports-archive-keyring
gcc-${{ inputs.gcc-major-version }} \
g++-${{ inputs.gcc-major-version }} \
gcc-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}} \
g++-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}} \
libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
- name: 'Check cache for sysroot'
@@ -138,9 +134,9 @@ jobs:
sudo debootstrap
--arch=${{ matrix.debian-arch }}
--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,libfreetype-dev,libpng-dev
--resolve-deps
$(test -n "${{ matrix.debian-keyring }}" && echo "--keyring=${{ matrix.debian-keyring }}")
--variant=minbase
${{ matrix.debian-version }}
sysroot
${{ matrix.debian-repository }}
@@ -153,7 +149,8 @@ jobs:
sudo chown ${USER} -R sysroot
rm -rf sysroot/{dev,proc,run,sys,var}
rm -rf sysroot/usr/{sbin,bin,share}
rm -rf sysroot/usr/lib/{apt,udev,systemd}
rm -rf sysroot/usr/lib/{apt,gcc,udev,systemd}
rm -rf sysroot/usr/libexec/gcc
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
- name: 'Configure'
@@ -162,6 +159,7 @@ jobs:
--with-conf-name=linux-${{ matrix.target-cpu }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-gtest=${{ steps.gtest.outputs.path }}
--with-zlib=system
--enable-debug
--disable-precompiled-headers

View File

@@ -49,9 +49,6 @@ on:
required: false
type: string
default: ''
apt-gcc-version:
required: true
type: string
apt-architecture:
required: false
type: string
@@ -81,7 +78,7 @@ jobs:
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 'Get the BootJDK'
id: bootjdk
@@ -114,7 +111,7 @@ jobs:
fi
sudo apt-get update
sudo apt-get install --only-upgrade apt
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }}=${{ inputs.apt-gcc-version }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }}=${{ inputs.apt-gcc-version }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
- name: 'Configure'

View File

@@ -68,7 +68,7 @@ jobs:
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 'Get the BootJDK'
id: bootjdk

View File

@@ -79,7 +79,7 @@ jobs:
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 'Get MSYS2'
uses: ./.github/actions/get-msys2

View File

@@ -127,7 +127,6 @@ jobs:
with:
platform: linux-x64
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
# The linux-x64 jdk bundle is used as buildjdk for the cross-compile job
@@ -141,11 +140,10 @@ jobs:
platform: linux-x86
gcc-major-version: '10'
gcc-package-suffix: '-multilib'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
apt-architecture: 'i386'
# Some multilib libraries do not have proper inter-dependencies, so we have to
# install their dependencies manually.
apt-extra-packages: 'libfreetype6-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386 libgcc-s1:i386 libstdc++6:i386'
apt-extra-packages: 'libfreetype-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libc6-i386 libgcc-s1:i386 libstdc++6:i386'
extra-conf-options: '--with-target-bits=32'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
@@ -160,7 +158,6 @@ jobs:
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
extra-conf-options: '--disable-precompiled-headers'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
@@ -175,7 +172,6 @@ jobs:
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
extra-conf-options: '--with-jvm-variants=zero --disable-precompiled-headers'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
@@ -190,7 +186,6 @@ jobs:
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
extra-conf-options: '--with-jvm-variants=minimal --disable-precompiled-headers'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
@@ -206,7 +201,6 @@ jobs:
# Technically this is not the "debug" level, but we can't inject a new matrix state for just this job
debug-levels: '[ "debug" ]'
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
extra-conf-options: '--with-debug-level=optimized --disable-precompiled-headers'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
@@ -220,8 +214,6 @@ jobs:
uses: ./.github/workflows/build-cross-compile.yml
with:
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
apt-gcc-cross-version: '10.4.0-4ubuntu1~22.04cross1'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-cross-compile == 'true'
@@ -287,7 +279,6 @@ jobs:
# build JDK, and we do not need the additional testing of the graphs.
extra-conf-options: '--disable-full-docs'
gcc-major-version: '10'
apt-gcc-version: '10.4.0-4ubuntu1~22.04'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.docs == 'true'

View File

@@ -105,7 +105,7 @@ jobs:
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v3
uses: actions/checkout@v4
- name: 'Get MSYS2'
uses: ./.github/actions/get-msys2

View File

@@ -1,7 +1,7 @@
[general]
project=jdk
project=jdk-updates
jbs=JDK
version=21
version=21.0.2
[checks]
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists

View File

@@ -21,11 +21,13 @@ can be found on the [releases page](https://github.com/JetBrains/JetBrainsRuntim
## Releases based on JDK 17
| IDE Version | Latest JBR | Date Released |
|-------------|--------------------------------------------------------------------------------------------------------|---------------|
| 2023.1 | [17.0.6-b829.5](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b829.5) | 01-Mar-2023 |
| 2022.3 | [17.0.6-b653.34](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b653.34) | 28-Feb-2023 |
| 2022.2 | [17.0.6-b469.82](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b469.82) | 06-Mar-2023 |
| IDE Version | Latest JBR | Date Released |
|-------------|---------------------------------------------------------------------------------------------------------|---------------|
| 2023.3 | [17.0.9b1087.7](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.9b1087.7) | 20-Nov-2023 |
| 2023.2 | [17.0.9b1000.46](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.9b1000.46) | 01-Nov-2023 |
| 2023.1 | [17.0.6-b829.5](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b829.5) | 01-Mar-2023 |
| 2022.3 | [17.0.6-b653.34](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b653.34) | 28-Feb-2023 |
| 2022.2 | [17.0.6-b469.82](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jbr-release-17.0.6b469.82) | 06-Mar-2023 |
## Releases based on JDK 11
@@ -124,8 +126,8 @@ $ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
### Ubuntu Linux
Install the necessary tools, libraries, and headers with:
```
$ sudo apt-get install autoconf make build-essential libx11-dev libxext-dev libxrender-dev libxtst-dev \
libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev
$ sudo apt-get install autoconf make build-essential libwayland-dev libx11-dev libxext-dev libxrender-dev \
libxtst-dev libxt-dev libxrandr-dev libcups2-dev libfontconfig1-dev libasound2-dev
```
Get Java 19 (for instance, [Azul Zulu Builds of OpenJDK 19](https://www.azul.com/downloads/?version=java-19-sts&os=linux&package=jdk)).

View File

@@ -55,3 +55,19 @@ RUN curl -OL https://github.com/Kitware/CMake/releases/download/v3.27.5/cmake-3.
.. \
&& make install
ENV PATH="/cmake-3.27.5-linux-x86_64/bin::${PATH}"
# Checkout Vulkan headers
RUN mkdir /vulkan \
&& cd /vulkan \
&& git init \
&& git remote add -f origin https://github.com/KhronosGroup/Vulkan-Headers.git \
&& git fetch origin \
&& git checkout v1.3.265 -- include \
&& rm -r .git \
&& mkdir /vulkan_hpp \
&& cd /vulkan_hpp \
&& git init \
&& git remote add -f origin https://github.com/KhronosGroup/Vulkan-Hpp.git \
&& git fetch origin \
&& git checkout v1.3.265 -- vulkan \
&& rm -r .git

View File

@@ -5,7 +5,7 @@ set -x
function check_bundle_type_maketest() {
# check whether last char is 't', if so remove it
if [ "${bundle_type: -1}" == "t" ]; then
if [ "${bundle_type: -1}" == "t" ] && [ "${bundle_type: -2}" != "ft" ]; then
bundle_type="${bundle_type%?}"
do_maketest=1
else
@@ -36,8 +36,8 @@ architecture=${3:-x64} # aarch64 or x64
check_bundle_type_maketest
tag_prefix="jdk-"
OPENJDK_TAG=$(git log --simplify-by-decoration --decorate=short --pretty=short | grep "$tag_prefix" | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | tr -d ',' | sort -t "-" -k 2 -g | tail -n 1)
tag_prefix="jbr-"
OPENJDK_TAG=$(git log --simplify-by-decoration --decorate=short --pretty=short | grep "$tag_prefix" | cut -d "(" -f2 | cut -d ")" -f1 | awk '{print $2}' | sort -t "-" -k 2 -g | tail -n 1 | tr -d ",")
VERSION_FEATURE=$(getVersionProp "DEFAULT_VERSION_FEATURE")
VERSION_INTERIM=$(getVersionProp "DEFAULT_VERSION_INTERIM")
VERSION_UPDATE=$(getVersionProp "DEFAULT_VERSION_UPDATE")
@@ -94,6 +94,12 @@ esac
WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS="--with-native-debug-symbols=zipped"
if [ "$bundle_type" == "nomodft" ]; then
WITH_BUNDLED_FREETYPE="--with-freetype=bundled"
else
WITH_BUNDLED_FREETYPE=""
fi
REPRODUCIBLE_BUILD_OPTS="--with-source-date=$SOURCE_DATE_EPOCH
--with-hotspot-build-time=$BUILD_TIME
--with-copyright-year=$COPYRIGHT_YEAR

View File

@@ -38,6 +38,7 @@ function do_configure {
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
$WITH_BUNDLED_FREETYPE \
|| do_exit $?
}
@@ -65,7 +66,6 @@ function create_image_bundle {
JBR=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix}b${build_number}
__root_dir=${__bundle_name}-${JBSDK_VERSION}-linux-${libc_type_suffix}aarch64-${fastdebug_infix:-}b${build_number}
echo Running jlink....
[ -d "$IMAGES_DIR"/"$__root_dir" ] && rm -rf "${IMAGES_DIR:?}"/"$__root_dir"
$JSDK/bin/jlink \
@@ -77,6 +77,7 @@ function create_image_bundle {
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi
@@ -100,16 +101,23 @@ function create_image_bundle {
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-aarch64-server-release
jbr_name_postfix=""
case "$bundle_type" in
"jcef")
do_reset_changes=1
jbr_name_postfix="_${bundle_type}"
do_maketest=1
;;
"nomod" | "")
bundle_type=""
;;
"nomodft" | "")
jbr_name_postfix="_ft"
;;
"fd")
do_reset_changes=1
jbr_name_postfix="_${bundle_type}"
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-aarch64-server-fastdebug
;;
@@ -133,11 +141,7 @@ if [ "$bundle_type" == "jcef" ] || [ "$bundle_type" == "fd" ]; then
git apply -p0 < jb/project/tools/patches/add_jcef_module_aarch64.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}"
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
jbr_name_postfix=""
fi
# create runtime image bundle

View File

@@ -38,6 +38,7 @@ function do_configure {
$STATIC_CONF_ARGS \
$REPRODUCIBLE_BUILD_OPTS \
$WITH_ZIPPED_NATIVE_DEBUG_SYMBOLS \
$WITH_BUNDLED_FREETYPE \
|| do_exit $?
}
@@ -76,6 +77,7 @@ function create_image_bundle {
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi
@@ -99,16 +101,23 @@ function create_image_bundle {
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86_64-server-release
jbr_name_postfix=""
case "$bundle_type" in
"jcef")
do_reset_changes=1
jbr_name_postfix="_${bundle_type}"
do_maketest=1
;;
"nomod" | "")
bundle_type=""
;;
"nomodft" | "")
jbr_name_postfix="_ft"
;;
"fd")
do_reset_changes=1
jbr_name_postfix="_${bundle_type}"
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-x86_64-server-fastdebug
;;
@@ -132,11 +141,7 @@ if [ "$bundle_type" == "jcef" ] || [ "$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}"
cat $JCEF_PATH/jcef.version >> $JSDK/release
else
jbr_name_postfix=""
fi
# create runtime image bundle

View File

@@ -65,6 +65,7 @@ function create_image_bundle {
sed 's/JBR/JBRSDK/g' "$IMAGES_DIR"/"$__root_dir"/release > release
mv release "$IMAGES_DIR"/"$__root_dir"/release
cp $IMAGES_DIR/jdk/lib/src.zip "$IMAGES_DIR"/"$__root_dir"/lib
cp $IMAGES_DIR/jdk/lib/server/*.jsa "$IMAGES_DIR"/"$__root_dir"/lib/server
copy_jmods "$__modules" "$__modules_path" "$IMAGES_DIR"/"$__root_dir"/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk "${JBR}_diz"
fi

View File

@@ -26,11 +26,6 @@ JCEF_PATH=${JCEF_PATH:=./jcef_mac}
BOOT_JDK=${BOOT_JDK:=$(/usr/libexec/java_home -v 17)}
function do_configure {
if [[ "${architecture}" == *aarch64* ]]; then
ENABLE_CDS="--enable-cds=no"
else
ENABLE_CDS="--enable-cds=yes"
fi
sh configure \
$WITH_DEBUG_LEVEL \
--with-vendor-name="$VENDOR_NAME" \
@@ -77,6 +72,7 @@ function create_image_bundle {
sed 's/JBR/JBRSDK/g' $JRE_CONTENTS/Home/release > release
mv release $JRE_CONTENTS/Home/release
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/src.zip $JRE_CONTENTS/Home/lib
cp $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk/Contents/Home/lib/server/*.jsa $JRE_CONTENTS/Home/lib/server
copy_jmods "$__modules" "$__modules_path" "$JRE_CONTENTS"/Home/jmods
zip_native_debug_symbols $IMAGES_DIR/jdk-bundle/jdk-$JBSDK_VERSION.jdk "${JBR}_diz"
fi
@@ -92,7 +88,7 @@ function create_image_bundle {
echo Creating "$JBR".tar.gz ...
# Normalize timestamp
find "$tmp"/"$__root_dir" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
#find "$tmp"/"$__root_dir" -print0 | xargs -0 touch -c -h -t "$TOUCH_TIME"
(cd "$tmp" &&
find "$__root_dir" -print0 | LC_ALL=C sort -z | \

View File

@@ -100,7 +100,7 @@ done
log "Signing whole frameworks..."
# shellcheck disable=SC2043
if [ "$JB_SIGN" = true ]; then for f in \
"Contents/Home/Frameworks" "Contents/Frameworks"; do
"Contents/Frameworks/cef_server.app/Contents/Frameworks" "Contents/Home/Frameworks" "Contents/Frameworks"; do
if [ -d "$APPLICATION_PATH/$f" ]; then
find "$APPLICATION_PATH/$f" \( -name '*.framework' -o -name '*.app' \) -maxdepth 1 | while read -r line
do

View File

@@ -0,0 +1,267 @@
prog.verbose=disabled
prog.printresults=enabled
global.env.outputwidth=640
global.env.outputheight=480
global.env.runcount=5
global.env.repcount=0
global.env.testtime=2500
global.results.workunits=units
global.results.timeunits=sec
global.results.ratio=unitspersec
global.dest.offscreen=disabled
global.dest.frame.defaultframe=enabled
global.dest.frame.transframe=disabled
global.dest.frame.shapedframe=disabled
global.dest.frame.shapedtransframe=disabled
global.dest.compatimg.compatimg=disabled
global.dest.compatimg.opqcompatimg=disabled
global.dest.compatimg.bmcompatimg=disabled
global.dest.compatimg.transcompatimg=disabled
global.dest.volimg.volimg=disabled
global.dest.volimg.opqvolimg=disabled
global.dest.volimg.bmvolimg=disabled
global.dest.volimg.transvolimg=disabled
global.dest.bufimg.IntXrgb=disabled
global.dest.bufimg.IntArgb=disabled
global.dest.bufimg.IntArgbPre=disabled
global.dest.bufimg.3ByteBgr=disabled
global.dest.bufimg.ByteIndexed=disabled
global.dest.bufimg.ByteGray=disabled
global.dest.bufimg.4ByteAbgr=disabled
global.dest.bufimg.4ByteAbgrPre=disabled
global.dest.bufimg.custom=disabled
graphics.opts.anim=2
graphics.opts.sizes=250
graphics.opts.alpharule=SrcOver
graphics.opts.transform=ident
graphics.opts.extraalpha=Off
graphics.opts.xormode=Off
graphics.opts.clip=Off
graphics.opts.renderhint=Default
graphics.render.opts.paint=random
graphics.render.opts.alphacolor=Off
graphics.render.opts.antialias=On
graphics.render.opts.stroke=width1
graphics.render.tests.drawLine=disabled
graphics.render.tests.drawLineHoriz=disabled
graphics.render.tests.drawLineVert=disabled
graphics.render.tests.fillRect=disabled
graphics.render.tests.drawRect=disabled
graphics.render.tests.fillOval=disabled
graphics.render.tests.drawOval=disabled
graphics.render.tests.fillPoly=disabled
graphics.render.tests.drawPoly=enabled
graphics.render.tests.shape.fillCubic=disabled
graphics.render.tests.shape.drawCubic=disabled
graphics.render.tests.shape.fillEllipse2D=disabled
graphics.render.tests.shape.drawEllipse2D=disabled
graphics.imaging.src.offscr.opaque=disabled
graphics.imaging.src.offscr.bitmask=disabled
graphics.imaging.src.offscr.translucent=disabled
graphics.imaging.src.opqcompatimg.opaque=disabled
graphics.imaging.src.opqcompatimg.bitmask=disabled
graphics.imaging.src.opqcompatimg.translucent=disabled
graphics.imaging.src.bmcompatimg.opaque=disabled
graphics.imaging.src.bmcompatimg.bitmask=disabled
graphics.imaging.src.bmcompatimg.translucent=disabled
graphics.imaging.src.transcompatimg.opaque=disabled
graphics.imaging.src.transcompatimg.bitmask=disabled
graphics.imaging.src.transcompatimg.translucent=disabled
graphics.imaging.src.opqvolimg.opaque=disabled
graphics.imaging.src.opqvolimg.bitmask=disabled
graphics.imaging.src.opqvolimg.translucent=disabled
graphics.imaging.src.bmvolimg.opaque=disabled
graphics.imaging.src.bmvolimg.bitmask=disabled
graphics.imaging.src.bmvolimg.translucent=disabled
graphics.imaging.src.transvolimg.opaque=disabled
graphics.imaging.src.transvolimg.bitmask=disabled
graphics.imaging.src.transvolimg.translucent=disabled
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
graphics.imaging.benchmarks.opts.touchsrc=Off
graphics.imaging.benchmarks.tests.drawimage=disabled
graphics.imaging.benchmarks.tests.drawimagebg=disabled
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
graphics.imaging.imageops.opts.op=convolve3x3zero
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
graphics.imaging.imageops.tests.rasterop.filternull=disabled
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
graphics.misc.copytests.copyAreaVert=disabled
graphics.misc.copytests.copyAreaHoriz=disabled
graphics.misc.copytests.copyAreaDiag=disabled
pixel.opts.renderto=Off
pixel.opts.renderfrom=Off
pixel.src.1BitBinary=disabled
pixel.src.2BitBinary=disabled
pixel.src.4BitBinary=disabled
pixel.src.ByteIndexed=disabled
pixel.src.ByteGray=disabled
pixel.src.Short555=disabled
pixel.src.Short565=disabled
pixel.src.ShortGray=disabled
pixel.src.3ByteBgr=disabled
pixel.src.4ByteAbgr=disabled
pixel.src.IntXrgb=disabled
pixel.src.IntXbgr=disabled
pixel.src.IntArgb=disabled
pixel.bimgtests.getrgb=disabled
pixel.bimgtests.setrgb=disabled
pixel.rastests.getdataelem=disabled
pixel.rastests.setdataelem=disabled
pixel.rastests.getpixel=disabled
pixel.rastests.setpixel=disabled
pixel.dbtests.getelem=disabled
pixel.dbtests.setelem=disabled
text.opts.data.tlength=16
text.opts.data.tscript=english
text.opts.font.fname=serif,physical
text.opts.font.fstyle=0
text.opts.font.fsize=13.0
text.opts.font.ftx=Identity
text.opts.graphics.textaa=Off
text.opts.graphics.tfm=Off
text.opts.graphics.gaa=Off
text.opts.graphics.gtx=Identity
text.opts.advopts.gvstyle=0
text.opts.advopts.tlruns=1
text.opts.advopts.maptype=FONT
text.Rendering.tests.drawString=disabled
text.Rendering.tests.drawChars=disabled
text.Rendering.tests.drawBytes=disabled
text.Rendering.tests.drawGlyphVectors=disabled
text.Rendering.tests.drawTextLayout=disabled
text.Measuring.tests.stringWidth=disabled
text.Measuring.tests.stringBounds=disabled
text.Measuring.tests.charsWidth=disabled
text.Measuring.tests.charsBounds=disabled
text.Measuring.tests.fontcandisplay=disabled
text.Measuring.tests.gvWidth=disabled
text.Measuring.tests.gvLogicalBounds=disabled
text.Measuring.tests.gvVisualBounds=disabled
text.Measuring.tests.gvPixelBounds=disabled
text.Measuring.tests.gvOutline=disabled
text.Measuring.tests.gvGlyphLogicalBounds=disabled
text.Measuring.tests.gvGlyphVisualBounds=disabled
text.Measuring.tests.gvGlyphPixelBounds=disabled
text.Measuring.tests.gvGlyphOutline=disabled
text.Measuring.tests.gvGlyphTransform=disabled
text.Measuring.tests.gvGlyphMetrics=disabled
text.Measuring.tests.tlAdvance=disabled
text.Measuring.tests.tlAscent=disabled
text.Measuring.tests.tlBounds=disabled
text.Measuring.tests.tlGetCaretInfo=disabled
text.Measuring.tests.tlGetNextHit=disabled
text.Measuring.tests.tlGetCaretShape=disabled
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
text.Measuring.tests.tlHitTest=disabled
text.Measuring.tests.tlOutline=disabled
text.construction.tests.gvfromfontstring=disabled
text.construction.tests.gvfromfontchars=disabled
text.construction.tests.gvfromfontci=disabled
text.construction.tests.gvfromfontglyphs=disabled
text.construction.tests.gvfromfontlayout=disabled
text.construction.tests.tlfromfont=disabled
text.construction.tests.tlfrommap=disabled
imageio.opts.size=250
imageio.opts.content=photo
imageio.input.opts.general.source.file=disabled
imageio.input.opts.general.source.url=disabled
imageio.input.opts.general.source.byteArray=disabled
imageio.input.opts.imageio.useCache=Off
imageio.input.image.toolkit.opts.format=
imageio.input.image.toolkit.tests.createImage=disabled
imageio.input.image.imageio.opts.format=
imageio.input.image.imageio.tests.imageioRead=disabled
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
imageio.input.image.imageio.reader.opts.installListener=Off
imageio.input.image.imageio.reader.tests.read=disabled
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
imageio.input.stream.tests.construct=disabled
imageio.input.stream.tests.read=disabled
imageio.input.stream.tests.readByteArray=disabled
imageio.input.stream.tests.readFullyByteArray=disabled
imageio.input.stream.tests.readBit=disabled
imageio.input.stream.tests.readByte=disabled
imageio.input.stream.tests.readUnsignedByte=disabled
imageio.input.stream.tests.readShort=disabled
imageio.input.stream.tests.readUnsignedShort=disabled
imageio.input.stream.tests.readInt=disabled
imageio.input.stream.tests.readUnsignedInt=disabled
imageio.input.stream.tests.readFloat=disabled
imageio.input.stream.tests.readLong=disabled
imageio.input.stream.tests.readDouble=disabled
imageio.input.stream.tests.skipBytes=disabled
imageio.output.opts.general.dest.file=disabled
imageio.output.opts.general.dest.byteArray=disabled
imageio.output.opts.imageio.useCache=Off
imageio.output.image.imageio.opts.format=
imageio.output.image.imageio.tests.imageioWrite=disabled
imageio.output.image.imageio.writer.opts.installListener=Off
imageio.output.image.imageio.writer.tests.write=disabled
imageio.output.stream.tests.construct=disabled
imageio.output.stream.tests.write=disabled
imageio.output.stream.tests.writeByteArray=disabled
imageio.output.stream.tests.writeBit=disabled
imageio.output.stream.tests.writeByte=disabled
imageio.output.stream.tests.writeShort=disabled
imageio.output.stream.tests.writeInt=disabled
imageio.output.stream.tests.writeFloat=disabled
imageio.output.stream.tests.writeLong=disabled
imageio.output.stream.tests.writeDouble=disabled
cmm.opts.profiles=1001
cmm.colorconv.data.fromRGB=disabled
cmm.colorconv.data.toRGB=disabled
cmm.colorconv.data.fromCIEXYZ=disabled
cmm.colorconv.data.toCIEXYZ=disabled
cmm.colorconv.ccop.ccopOptions.size=250
cmm.colorconv.ccop.ccopOptions.content=photo
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
cmm.colorconv.ccop.op_img=disabled
cmm.colorconv.ccop.op_rst=disabled
cmm.colorconv.ccop.op_draw=disabled
cmm.colorconv.embed.embedOptions.Images=512x512
cmm.colorconv.embed.embd_img_read=disabled
cmm.profiles.getHeader=disabled
cmm.profiles.getNumComponents=disabled

View File

@@ -0,0 +1,267 @@
prog.verbose=disabled
prog.printresults=enabled
global.env.outputwidth=640
global.env.outputheight=480
global.env.runcount=5
global.env.repcount=0
global.env.testtime=2500
global.results.workunits=units
global.results.timeunits=sec
global.results.ratio=unitspersec
global.dest.offscreen=disabled
global.dest.frame.defaultframe=enabled
global.dest.frame.transframe=disabled
global.dest.frame.shapedframe=disabled
global.dest.frame.shapedtransframe=disabled
global.dest.compatimg.compatimg=disabled
global.dest.compatimg.opqcompatimg=disabled
global.dest.compatimg.bmcompatimg=disabled
global.dest.compatimg.transcompatimg=disabled
global.dest.volimg.volimg=disabled
global.dest.volimg.opqvolimg=disabled
global.dest.volimg.bmvolimg=disabled
global.dest.volimg.transvolimg=disabled
global.dest.bufimg.IntXrgb=disabled
global.dest.bufimg.IntArgb=disabled
global.dest.bufimg.IntArgbPre=disabled
global.dest.bufimg.3ByteBgr=disabled
global.dest.bufimg.ByteIndexed=disabled
global.dest.bufimg.ByteGray=disabled
global.dest.bufimg.4ByteAbgr=disabled
global.dest.bufimg.4ByteAbgrPre=disabled
global.dest.bufimg.custom=disabled
graphics.opts.anim=2
graphics.opts.sizes=250
graphics.opts.alpharule=SrcOver
graphics.opts.transform=ident
graphics.opts.extraalpha=Off
graphics.opts.xormode=Off
graphics.opts.clip=Off
graphics.opts.renderhint=Default
graphics.render.opts.paint=random
graphics.render.opts.alphacolor=Off
graphics.render.opts.antialias=Off
graphics.render.opts.stroke=width1
graphics.render.tests.drawLine=disabled
graphics.render.tests.drawLineHoriz=disabled
graphics.render.tests.drawLineVert=disabled
graphics.render.tests.fillRect=disabled
graphics.render.tests.drawRect=disabled
graphics.render.tests.fillOval=disabled
graphics.render.tests.drawOval=disabled
graphics.render.tests.fillPoly=disabled
graphics.render.tests.drawPoly=enabled
graphics.render.tests.shape.fillCubic=disabled
graphics.render.tests.shape.drawCubic=disabled
graphics.render.tests.shape.fillEllipse2D=disabled
graphics.render.tests.shape.drawEllipse2D=disabled
graphics.imaging.src.offscr.opaque=disabled
graphics.imaging.src.offscr.bitmask=disabled
graphics.imaging.src.offscr.translucent=disabled
graphics.imaging.src.opqcompatimg.opaque=disabled
graphics.imaging.src.opqcompatimg.bitmask=disabled
graphics.imaging.src.opqcompatimg.translucent=disabled
graphics.imaging.src.bmcompatimg.opaque=disabled
graphics.imaging.src.bmcompatimg.bitmask=disabled
graphics.imaging.src.bmcompatimg.translucent=disabled
graphics.imaging.src.transcompatimg.opaque=disabled
graphics.imaging.src.transcompatimg.bitmask=disabled
graphics.imaging.src.transcompatimg.translucent=disabled
graphics.imaging.src.opqvolimg.opaque=disabled
graphics.imaging.src.opqvolimg.bitmask=disabled
graphics.imaging.src.opqvolimg.translucent=disabled
graphics.imaging.src.bmvolimg.opaque=disabled
graphics.imaging.src.bmvolimg.bitmask=disabled
graphics.imaging.src.bmvolimg.translucent=disabled
graphics.imaging.src.transvolimg.opaque=disabled
graphics.imaging.src.transvolimg.bitmask=disabled
graphics.imaging.src.transvolimg.translucent=disabled
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
graphics.imaging.benchmarks.opts.touchsrc=Off
graphics.imaging.benchmarks.tests.drawimage=disabled
graphics.imaging.benchmarks.tests.drawimagebg=disabled
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
graphics.imaging.imageops.opts.op=convolve3x3zero
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
graphics.imaging.imageops.tests.rasterop.filternull=disabled
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
graphics.misc.copytests.copyAreaVert=disabled
graphics.misc.copytests.copyAreaHoriz=disabled
graphics.misc.copytests.copyAreaDiag=disabled
pixel.opts.renderto=Off
pixel.opts.renderfrom=Off
pixel.src.1BitBinary=disabled
pixel.src.2BitBinary=disabled
pixel.src.4BitBinary=disabled
pixel.src.ByteIndexed=disabled
pixel.src.ByteGray=disabled
pixel.src.Short555=disabled
pixel.src.Short565=disabled
pixel.src.ShortGray=disabled
pixel.src.3ByteBgr=disabled
pixel.src.4ByteAbgr=disabled
pixel.src.IntXrgb=disabled
pixel.src.IntXbgr=disabled
pixel.src.IntArgb=disabled
pixel.bimgtests.getrgb=disabled
pixel.bimgtests.setrgb=disabled
pixel.rastests.getdataelem=disabled
pixel.rastests.setdataelem=disabled
pixel.rastests.getpixel=disabled
pixel.rastests.setpixel=disabled
pixel.dbtests.getelem=disabled
pixel.dbtests.setelem=disabled
text.opts.data.tlength=16
text.opts.data.tscript=english
text.opts.font.fname=serif,physical
text.opts.font.fstyle=0
text.opts.font.fsize=13.0
text.opts.font.ftx=Identity
text.opts.graphics.textaa=Off
text.opts.graphics.tfm=Off
text.opts.graphics.gaa=Off
text.opts.graphics.gtx=Identity
text.opts.advopts.gvstyle=0
text.opts.advopts.tlruns=1
text.opts.advopts.maptype=FONT
text.Rendering.tests.drawString=disabled
text.Rendering.tests.drawChars=disabled
text.Rendering.tests.drawBytes=disabled
text.Rendering.tests.drawGlyphVectors=disabled
text.Rendering.tests.drawTextLayout=disabled
text.Measuring.tests.stringWidth=disabled
text.Measuring.tests.stringBounds=disabled
text.Measuring.tests.charsWidth=disabled
text.Measuring.tests.charsBounds=disabled
text.Measuring.tests.fontcandisplay=disabled
text.Measuring.tests.gvWidth=disabled
text.Measuring.tests.gvLogicalBounds=disabled
text.Measuring.tests.gvVisualBounds=disabled
text.Measuring.tests.gvPixelBounds=disabled
text.Measuring.tests.gvOutline=disabled
text.Measuring.tests.gvGlyphLogicalBounds=disabled
text.Measuring.tests.gvGlyphVisualBounds=disabled
text.Measuring.tests.gvGlyphPixelBounds=disabled
text.Measuring.tests.gvGlyphOutline=disabled
text.Measuring.tests.gvGlyphTransform=disabled
text.Measuring.tests.gvGlyphMetrics=disabled
text.Measuring.tests.tlAdvance=disabled
text.Measuring.tests.tlAscent=disabled
text.Measuring.tests.tlBounds=disabled
text.Measuring.tests.tlGetCaretInfo=disabled
text.Measuring.tests.tlGetNextHit=disabled
text.Measuring.tests.tlGetCaretShape=disabled
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
text.Measuring.tests.tlHitTest=disabled
text.Measuring.tests.tlOutline=disabled
text.construction.tests.gvfromfontstring=disabled
text.construction.tests.gvfromfontchars=disabled
text.construction.tests.gvfromfontci=disabled
text.construction.tests.gvfromfontglyphs=disabled
text.construction.tests.gvfromfontlayout=disabled
text.construction.tests.tlfromfont=disabled
text.construction.tests.tlfrommap=disabled
imageio.opts.size=250
imageio.opts.content=photo
imageio.input.opts.general.source.file=disabled
imageio.input.opts.general.source.url=disabled
imageio.input.opts.general.source.byteArray=disabled
imageio.input.opts.imageio.useCache=Off
imageio.input.image.toolkit.opts.format=
imageio.input.image.toolkit.tests.createImage=disabled
imageio.input.image.imageio.opts.format=
imageio.input.image.imageio.tests.imageioRead=disabled
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
imageio.input.image.imageio.reader.opts.installListener=Off
imageio.input.image.imageio.reader.tests.read=disabled
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
imageio.input.stream.tests.construct=disabled
imageio.input.stream.tests.read=disabled
imageio.input.stream.tests.readByteArray=disabled
imageio.input.stream.tests.readFullyByteArray=disabled
imageio.input.stream.tests.readBit=disabled
imageio.input.stream.tests.readByte=disabled
imageio.input.stream.tests.readUnsignedByte=disabled
imageio.input.stream.tests.readShort=disabled
imageio.input.stream.tests.readUnsignedShort=disabled
imageio.input.stream.tests.readInt=disabled
imageio.input.stream.tests.readUnsignedInt=disabled
imageio.input.stream.tests.readFloat=disabled
imageio.input.stream.tests.readLong=disabled
imageio.input.stream.tests.readDouble=disabled
imageio.input.stream.tests.skipBytes=disabled
imageio.output.opts.general.dest.file=disabled
imageio.output.opts.general.dest.byteArray=disabled
imageio.output.opts.imageio.useCache=Off
imageio.output.image.imageio.opts.format=
imageio.output.image.imageio.tests.imageioWrite=disabled
imageio.output.image.imageio.writer.opts.installListener=Off
imageio.output.image.imageio.writer.tests.write=disabled
imageio.output.stream.tests.construct=disabled
imageio.output.stream.tests.write=disabled
imageio.output.stream.tests.writeByteArray=disabled
imageio.output.stream.tests.writeBit=disabled
imageio.output.stream.tests.writeByte=disabled
imageio.output.stream.tests.writeShort=disabled
imageio.output.stream.tests.writeInt=disabled
imageio.output.stream.tests.writeFloat=disabled
imageio.output.stream.tests.writeLong=disabled
imageio.output.stream.tests.writeDouble=disabled
cmm.opts.profiles=1001
cmm.colorconv.data.fromRGB=disabled
cmm.colorconv.data.toRGB=disabled
cmm.colorconv.data.fromCIEXYZ=disabled
cmm.colorconv.data.toCIEXYZ=disabled
cmm.colorconv.ccop.ccopOptions.size=250
cmm.colorconv.ccop.ccopOptions.content=photo
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
cmm.colorconv.ccop.op_img=disabled
cmm.colorconv.ccop.op_rst=disabled
cmm.colorconv.ccop.op_draw=disabled
cmm.colorconv.embed.embedOptions.Images=512x512
cmm.colorconv.embed.embd_img_read=disabled
cmm.profiles.getHeader=disabled
cmm.profiles.getNumComponents=disabled

View File

@@ -0,0 +1,267 @@
prog.verbose=disabled
prog.printresults=enabled
global.env.outputwidth=640
global.env.outputheight=480
global.env.runcount=5
global.env.repcount=0
global.env.testtime=2500
global.results.workunits=units
global.results.timeunits=sec
global.results.ratio=unitspersec
global.dest.offscreen=disabled
global.dest.frame.defaultframe=enabled
global.dest.frame.transframe=disabled
global.dest.frame.shapedframe=disabled
global.dest.frame.shapedtransframe=disabled
global.dest.compatimg.compatimg=disabled
global.dest.compatimg.opqcompatimg=disabled
global.dest.compatimg.bmcompatimg=disabled
global.dest.compatimg.transcompatimg=disabled
global.dest.volimg.volimg=disabled
global.dest.volimg.opqvolimg=disabled
global.dest.volimg.bmvolimg=disabled
global.dest.volimg.transvolimg=disabled
global.dest.bufimg.IntXrgb=disabled
global.dest.bufimg.IntArgb=disabled
global.dest.bufimg.IntArgbPre=disabled
global.dest.bufimg.3ByteBgr=disabled
global.dest.bufimg.ByteIndexed=disabled
global.dest.bufimg.ByteGray=disabled
global.dest.bufimg.4ByteAbgr=disabled
global.dest.bufimg.4ByteAbgrPre=disabled
global.dest.bufimg.custom=disabled
graphics.opts.anim=2
graphics.opts.sizes=250
graphics.opts.alpharule=SrcOver
graphics.opts.transform=ident
graphics.opts.extraalpha=Off
graphics.opts.xormode=Off
graphics.opts.clip=Off
graphics.opts.renderhint=Default
graphics.render.opts.paint=single
graphics.render.opts.alphacolor=Off
graphics.render.opts.antialias=Off
graphics.render.opts.stroke=width1
graphics.render.tests.drawLine=disabled
graphics.render.tests.drawLineHoriz=disabled
graphics.render.tests.drawLineVert=disabled
graphics.render.tests.fillRect=disabled
graphics.render.tests.drawRect=disabled
graphics.render.tests.fillOval=disabled
graphics.render.tests.drawOval=disabled
graphics.render.tests.fillPoly=disabled
graphics.render.tests.drawPoly=enabled
graphics.render.tests.shape.fillCubic=disabled
graphics.render.tests.shape.drawCubic=disabled
graphics.render.tests.shape.fillEllipse2D=disabled
graphics.render.tests.shape.drawEllipse2D=disabled
graphics.imaging.src.offscr.opaque=disabled
graphics.imaging.src.offscr.bitmask=disabled
graphics.imaging.src.offscr.translucent=disabled
graphics.imaging.src.opqcompatimg.opaque=disabled
graphics.imaging.src.opqcompatimg.bitmask=disabled
graphics.imaging.src.opqcompatimg.translucent=disabled
graphics.imaging.src.bmcompatimg.opaque=disabled
graphics.imaging.src.bmcompatimg.bitmask=disabled
graphics.imaging.src.bmcompatimg.translucent=disabled
graphics.imaging.src.transcompatimg.opaque=disabled
graphics.imaging.src.transcompatimg.bitmask=disabled
graphics.imaging.src.transcompatimg.translucent=disabled
graphics.imaging.src.opqvolimg.opaque=disabled
graphics.imaging.src.opqvolimg.bitmask=disabled
graphics.imaging.src.opqvolimg.translucent=disabled
graphics.imaging.src.bmvolimg.opaque=disabled
graphics.imaging.src.bmvolimg.bitmask=disabled
graphics.imaging.src.bmvolimg.translucent=disabled
graphics.imaging.src.transvolimg.opaque=disabled
graphics.imaging.src.transvolimg.bitmask=disabled
graphics.imaging.src.transvolimg.translucent=disabled
graphics.imaging.src.bufimg.IntXrgb.opaque=disabled
graphics.imaging.src.bufimg.IntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.IntXrgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgb.opaque=disabled
graphics.imaging.src.bufimg.IntArgb.bitmask=disabled
graphics.imaging.src.bufimg.IntArgb.translucent=disabled
graphics.imaging.src.bufimg.IntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.IntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.IntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.ByteGray.opaque=disabled
graphics.imaging.src.bufimg.ByteGray.bitmask=disabled
graphics.imaging.src.bufimg.ByteGray.translucent=disabled
graphics.imaging.src.bufimg.3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.3ByteBgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgr.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgr.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgr.translucent=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.opaque=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.bitmask=disabled
graphics.imaging.src.bufimg.4ByteAbgrPre.translucent=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.opaque=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.bitmask=disabled
graphics.imaging.src.bufimg.ByteIndexedBm.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntXrgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgb.translucent=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.opaque=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.bitmask=disabled
graphics.imaging.src.bufimg.unmanagedIntArgbPre.translucent=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.opaque=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.bitmask=disabled
graphics.imaging.src.bufimg.unmanaged3ByteBgr.translucent=disabled
graphics.imaging.benchmarks.opts.interpolation=Nearest neighbor
graphics.imaging.benchmarks.opts.touchsrc=Off
graphics.imaging.benchmarks.tests.drawimage=disabled
graphics.imaging.benchmarks.tests.drawimagebg=disabled
graphics.imaging.benchmarks.tests.drawimagescaleup=disabled
graphics.imaging.benchmarks.tests.drawimagescaledown=disabled
graphics.imaging.benchmarks.tests.drawimagescalesplit=disabled
graphics.imaging.benchmarks.tests.drawimagetxform=disabled
graphics.imaging.imageops.opts.op=convolve3x3zero
graphics.imaging.imageops.tests.graphics2d.drawimageop=disabled
graphics.imaging.imageops.tests.bufimgop.filternull=disabled
graphics.imaging.imageops.tests.bufimgop.filtercached=disabled
graphics.imaging.imageops.tests.rasterop.filternull=disabled
graphics.imaging.imageops.tests.rasterop.filtercached=disabled
graphics.misc.copytests.copyAreaVert=disabled
graphics.misc.copytests.copyAreaHoriz=disabled
graphics.misc.copytests.copyAreaDiag=disabled
pixel.opts.renderto=Off
pixel.opts.renderfrom=Off
pixel.src.1BitBinary=disabled
pixel.src.2BitBinary=disabled
pixel.src.4BitBinary=disabled
pixel.src.ByteIndexed=disabled
pixel.src.ByteGray=disabled
pixel.src.Short555=disabled
pixel.src.Short565=disabled
pixel.src.ShortGray=disabled
pixel.src.3ByteBgr=disabled
pixel.src.4ByteAbgr=disabled
pixel.src.IntXrgb=disabled
pixel.src.IntXbgr=disabled
pixel.src.IntArgb=disabled
pixel.bimgtests.getrgb=disabled
pixel.bimgtests.setrgb=disabled
pixel.rastests.getdataelem=disabled
pixel.rastests.setdataelem=disabled
pixel.rastests.getpixel=disabled
pixel.rastests.setpixel=disabled
pixel.dbtests.getelem=disabled
pixel.dbtests.setelem=disabled
text.opts.data.tlength=16
text.opts.data.tscript=english
text.opts.font.fname=serif,physical
text.opts.font.fstyle=0
text.opts.font.fsize=13.0
text.opts.font.ftx=Identity
text.opts.graphics.textaa=Off
text.opts.graphics.tfm=Off
text.opts.graphics.gaa=Off
text.opts.graphics.gtx=Identity
text.opts.advopts.gvstyle=0
text.opts.advopts.tlruns=1
text.opts.advopts.maptype=FONT
text.Rendering.tests.drawString=disabled
text.Rendering.tests.drawChars=disabled
text.Rendering.tests.drawBytes=disabled
text.Rendering.tests.drawGlyphVectors=disabled
text.Rendering.tests.drawTextLayout=disabled
text.Measuring.tests.stringWidth=disabled
text.Measuring.tests.stringBounds=disabled
text.Measuring.tests.charsWidth=disabled
text.Measuring.tests.charsBounds=disabled
text.Measuring.tests.fontcandisplay=disabled
text.Measuring.tests.gvWidth=disabled
text.Measuring.tests.gvLogicalBounds=disabled
text.Measuring.tests.gvVisualBounds=disabled
text.Measuring.tests.gvPixelBounds=disabled
text.Measuring.tests.gvOutline=disabled
text.Measuring.tests.gvGlyphLogicalBounds=disabled
text.Measuring.tests.gvGlyphVisualBounds=disabled
text.Measuring.tests.gvGlyphPixelBounds=disabled
text.Measuring.tests.gvGlyphOutline=disabled
text.Measuring.tests.gvGlyphTransform=disabled
text.Measuring.tests.gvGlyphMetrics=disabled
text.Measuring.tests.tlAdvance=disabled
text.Measuring.tests.tlAscent=disabled
text.Measuring.tests.tlBounds=disabled
text.Measuring.tests.tlGetCaretInfo=disabled
text.Measuring.tests.tlGetNextHit=disabled
text.Measuring.tests.tlGetCaretShape=disabled
text.Measuring.tests.tlGetLogicalHighlightShape=disabled
text.Measuring.tests.tlHitTest=disabled
text.Measuring.tests.tlOutline=disabled
text.construction.tests.gvfromfontstring=disabled
text.construction.tests.gvfromfontchars=disabled
text.construction.tests.gvfromfontci=disabled
text.construction.tests.gvfromfontglyphs=disabled
text.construction.tests.gvfromfontlayout=disabled
text.construction.tests.tlfromfont=disabled
text.construction.tests.tlfrommap=disabled
imageio.opts.size=250
imageio.opts.content=photo
imageio.input.opts.general.source.file=disabled
imageio.input.opts.general.source.url=disabled
imageio.input.opts.general.source.byteArray=disabled
imageio.input.opts.imageio.useCache=Off
imageio.input.image.toolkit.opts.format=
imageio.input.image.toolkit.tests.createImage=disabled
imageio.input.image.imageio.opts.format=
imageio.input.image.imageio.tests.imageioRead=disabled
imageio.input.image.imageio.reader.opts.seekForwardOnly=On
imageio.input.image.imageio.reader.opts.ignoreMetadata=On
imageio.input.image.imageio.reader.opts.installListener=Off
imageio.input.image.imageio.reader.tests.read=disabled
imageio.input.image.imageio.reader.tests.getImageMetadata=disabled
imageio.input.stream.tests.construct=disabled
imageio.input.stream.tests.read=disabled
imageio.input.stream.tests.readByteArray=disabled
imageio.input.stream.tests.readFullyByteArray=disabled
imageio.input.stream.tests.readBit=disabled
imageio.input.stream.tests.readByte=disabled
imageio.input.stream.tests.readUnsignedByte=disabled
imageio.input.stream.tests.readShort=disabled
imageio.input.stream.tests.readUnsignedShort=disabled
imageio.input.stream.tests.readInt=disabled
imageio.input.stream.tests.readUnsignedInt=disabled
imageio.input.stream.tests.readFloat=disabled
imageio.input.stream.tests.readLong=disabled
imageio.input.stream.tests.readDouble=disabled
imageio.input.stream.tests.skipBytes=disabled
imageio.output.opts.general.dest.file=disabled
imageio.output.opts.general.dest.byteArray=disabled
imageio.output.opts.imageio.useCache=Off
imageio.output.image.imageio.opts.format=
imageio.output.image.imageio.tests.imageioWrite=disabled
imageio.output.image.imageio.writer.opts.installListener=Off
imageio.output.image.imageio.writer.tests.write=disabled
imageio.output.stream.tests.construct=disabled
imageio.output.stream.tests.write=disabled
imageio.output.stream.tests.writeByteArray=disabled
imageio.output.stream.tests.writeBit=disabled
imageio.output.stream.tests.writeByte=disabled
imageio.output.stream.tests.writeShort=disabled
imageio.output.stream.tests.writeInt=disabled
imageio.output.stream.tests.writeFloat=disabled
imageio.output.stream.tests.writeLong=disabled
imageio.output.stream.tests.writeDouble=disabled
cmm.opts.profiles=1001
cmm.colorconv.data.fromRGB=disabled
cmm.colorconv.data.toRGB=disabled
cmm.colorconv.data.fromCIEXYZ=disabled
cmm.colorconv.data.toCIEXYZ=disabled
cmm.colorconv.ccop.ccopOptions.size=250
cmm.colorconv.ccop.ccopOptions.content=photo
cmm.colorconv.ccop.ccopOptions.srcType=INT_RGB
cmm.colorconv.ccop.ccopOptions.dstType=INT_RGB
cmm.colorconv.ccop.op_img=disabled
cmm.colorconv.ccop.op_rst=disabled
cmm.colorconv.ccop.op_draw=disabled
cmm.colorconv.embed.embedOptions.Images=512x512
cmm.colorconv.embed.embd_img_read=disabled
cmm.profiles.getHeader=disabled
cmm.profiles.getNumComponents=disabled

View File

@@ -0,0 +1,98 @@
ST=1 # sleep between iterations
# number of iterations (jvm spawned)
N=5
# number of repeats (within jvm)
R=3
type datamash 2>&1 > /dev/null ; ec=$?
if [ $ec -ne 0 ] ; then
echo "Missing datamash utility"
exit 1
fi
DATAMASH_CMD="datamash --format=%.2f -H count x min x q1 x median x q3 x max x mad x"
J2D_OPTS=""
OS=""
case "$OSTYPE" in
linux*) echo "Linux"
;;
darwin*) echo "OSX"
;;
*) echo "unknown: $OSTYPE"
exit 1
;;
esac
read -r -d '' RENDER_OPS_DOC << EOM
rendering_options:
-opengl # OpenGL pipeline (windows, linux, macOS)
-metal # Metal pipeline (macOS)
-tk tk_name # AWT toolkit (linux: WLToolkit|XToolkit)
-scale # UI scale
EOM
while [ $# -ge 1 ] ; do
case "$1" in
-opengl) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.opengl=true"
shift
;;
-metal) J2D_OPTS=$J2D_OPTS" -Dsun.java2d.metal=true"
shift
;;
-tk) shift
if [ $# -ge 1 ] ; then
J2D_OPTS=$J2D_OPTS" -Dawt.toolkit.name="$1
shift
else
echo "Invalid parameters for -tk option. Use: -tk tkname"
exit 1
fi
;;
-scale) shift
if [ $# -ge 1 ] ; then
J2D_OPTS=$J2D_OPTS" -Dsun.java2d.uiScale="$1
shift
else
echo "Invalid parameters for -scale option. Use: -scale scale"
exit 1
fi
;;
-dSync) shift
if [ $# -ge 1 ] ; then
J2D_OPTS=$J2D_OPTS" -Dsun.java2d.metal.displaySync="$1
shift
else
echo "Invalid parameters for -dSync option. Use: -dSync [true|false]"
exit 1
fi
;;
-jdk) shift
if [ $# -ge 1 ] ; then
JAVA=$1/bin/java
shift
else
echo "Invalid parameters for -jdk option"
exit 1
fi
;;
*) break
;;
esac
done
if [ -z "$JAVA" ] ; then
BUILD_DIR=`find $BASE_DIR/../../../../build -name '*-release' -type d | head -n 1`
JAVA=`find $BUILD_DIR/images/jdk -name java -type f | head -n 1`
fi
JAVA_HOME=`dirname $JAVA`/../
"$JAVA" -version
LANG=C
WS_ROOT=$BASE_DIR/../../../..
echo "N: $N"
echo "R: $R"
echo "J2D_OPTS: $J2D_OPTS"

View File

@@ -0,0 +1,53 @@
#!/bin/bash
BASE_DIR=$(dirname "$0")
source $BASE_DIR/run_inc.sh
J2DBENCH_DIR=$WS_ROOT/src/demo/share/java2d/J2DBench
if [ -z "$J2DBENCH" ]; then
if [ ! -f "$J2DBENCH_DIR/dist/J2DBench.jar" ]; then
PATH=$JAVA_HOME/bin:$PATH make -C $J2DBENCH_DIR
fi
if [ ! -f "$J2DBENCH_DIR/dist/J2DBench.jar" ]; then
echo "Cannot build J2DBench. You may use J2DBench env variable instead pointing to the J2DBench.jar."
exit 1
fi
J2DBENCH=$J2DBENCH_DIR/dist/J2DBench.jar
fi
if [ $# -ne 1 ] ; then
echo "Usage: run_j2b.sh [rendering_options] bench_name"
echo
echo "bench_name: poly250 poly250-rand_col poly250-AA-rand_col"
echo ""
echo "$RENDER_OPS_DOC"
exit 2
fi
if [ ! -f "$BASE_DIR/j2dbopts_$1.txt" ]; then
echo "Unknown test: $1"
exit 1
fi
OPTS="j2dbopts_$1.txt"
#OPTS=j2dbopts_poly250.txt
#OPTS=j2dbopts_poly250-rand_col.txt
#OPTS=j2dbopts_poly250-AA-rand_col.txt
echo "OPTS: $OPTS"
for i in `seq $N`; do
if [ $i -eq 1 ]; then
echo x
fi
echo `$JAVA $J2D_OPTS -jar $J2DBENCH \
-batch -loadopts $BASE_DIR/$OPTS -saveres pl.res \
-title pl -desc pl | awk '/averaged/{print $3}' | head -n1`
if [ $i -ne $N ]; then
sleep $ST
fi
done | $DATAMASH_CMD | expand -t12

83
jb/project/tools/perf/run_rp.sh Executable file
View File

@@ -0,0 +1,83 @@
#!/bin/bash
BASE_DIR=$(dirname "$0")
source $BASE_DIR/run_inc.sh
RENDERPERFTEST_DIR=$WS_ROOT/test/jdk/performance/client/RenderPerfTest
if [ -z "$RENDERPERFTEST" ]; then
if [ ! -f "$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar" ]; then
PATH=$JAVA_HOME/bin:$PATH make -C $RENDERPERFTEST_DIR
fi
if [ ! -f "$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar" ]; then
echo "Cannot build RenderPerfTest. You may use RENDERPERFTEST env variable instead pointing to the RenderPerfTest.jar."
exit 1
fi
RENDERPERFTEST=$RENDERPERFTEST_DIR/dist/RenderPerfTest.jar
fi
TRACE=false
#MODE=Robot
#MODE=Buffer
MODE=Volatile
while [ $# -ge 1 ] ; do
case "$1" in
-onscreen) MODE="Robot"
shift
;;
-volatile) MODE="Volatile"
shift
;;
-buffer) MODE="Buffer"
shift
;;
*) break
;;
esac
done
if [[ ($# -eq 1 && "$1" == "-help") || ($# -eq 0) ]] ; then
echo "Usage: run_rp.sh [rp_rendering_mode] [rendering_options] bench_name"
echo
echo "bench_name: ArgbSurfaceBlitImage ArgbSwBlitImage BgrSurfaceBlitImage BgrSwBlitImage"
echo " Image ImageAA Image_XOR VolImage VolImageAA"
echo " ClipFlatBox ClipFlatBoxAA ClipFlatOval ClipFlatOvalAA"
echo " FlatBox FlatBoxAA FlatOval FlatOvalAA FlatOval_XOR FlatQuad FlatQuadAA"
echo " RotatedBox RotatedBoxAA RotatedBox_XOR RotatedOval RotatedOvalAA"
echo " WiredBox WiredBoxAA WiredBubbles WiredBubblesAA WiredQuad WiredQuadAA"
echo " Lines LinesAA Lines_XOR"
echo " TextGray TextLCD TextLCD_XOR TextNoAA TextNoAA_XOR"
echo " LargeTextGray LargeTextLCD LargeTextNoAA WhiteTextGray WhiteTextLCD WhiteTextNoAA"
echo " LinGrad3RotatedOval LinGrad3RotatedOvalAA LinGradRotatedOval LinGradRotatedOvalAA"
echo " RadGrad3RotatedOval RadGrad3RotatedOvalAA"
echo ""
echo "rp_rendering_mode: "
echo " -onscreen : rendering to the window and check it using Robot"
echo " -volatile : rendering to volatile image (default)"
echo " -buffer : rendering to buffered image"
echo "$RENDER_OPS_DOC"
exit 2
fi
# use time + repeat
OPTS="$OPTS -r$R -t -e$MODE $1"
echo "OPTS: $OPTS"
echo "Unit: Milliseconds (not FPS), lower is better"
for i in `seq $N` ; do
if [ $i -eq 1 ]; then
echo x
fi
$JAVA $J2D_OPTS -DTRACE=$TRACE \
-jar $RENDERPERFTEST $OPTS 2>&1 | tail -n +2 | \
awk '/'$1'/{print $3 }'
if [ $i -ne $N ]; then
sleep $ST
fi
done | $DATAMASH_CMD | expand -t12

39
jb/project/tools/perf/run_sm.sh Executable file
View File

@@ -0,0 +1,39 @@
#!/bin/bash
BASE_DIR=$(dirname "$0")
source $BASE_DIR/run_inc.sh
SWINGMARK_DIR=$WS_ROOT/test/jdk/performance/client/SwingMark
if [ -z "$SWINGMARK" ]; then
if [ ! -f "$SWINGMARK_DIR/dist/SwingMark.jar" ]; then
PATH=$JAVA_HOME/bin:$PATH make -C $SWINGMARK_DIR
fi
if [ ! -f "$SWINGMARK_DIR/dist/SwingMark.jar" ]; then
echo "Cannot build SwingMark. You may use SWINGMARK env variable instead pointing to the SwingMark.jar."
exit 1
fi
SWINGMARK=$SWINGMARK_DIR/dist/SwingMark.jar
fi
if [ $# -eq 1 -a "$1" == "--help" ] ; then
shift
echo "Usage: run_sm [rendering_options]"
echo ""
echo "$RENDER_OPS_DOC"
exit 0
fi
for i in `seq $N` ; do
if [ $i -eq 1 ]; then
echo x
fi
# SwingMark gives 1 global 'Score: <value>'
echo `$JAVA $J2D_OPTS -jar $BASE_DIR/../../../../test/jdk/performance/client/SwingMark/dist/SwingMark.jar \
-r $R -q -lf javax.swing.plaf.metal.MetalLookAndFeel | awk '/Score/{print $2}'`
if [ $i -ne $N ]; then
sleep $ST
fi
done | $DATAMASH_CMD | expand -t12

View File

@@ -75,6 +75,7 @@ function create_image_bundle {
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done

View File

@@ -66,6 +66,7 @@ function create_image_bundle {
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done

View File

@@ -62,6 +62,7 @@ function create_image_bundle {
sed 's/JBR/JBRSDK/g' $__root_dir/release > release
mv release $__root_dir/release
cp $IMAGES_DIR/jdk/lib/src.zip $__root_dir/lib
cp $IMAGES_DIR/jdk/bin/server/*.jsa $__root_dir/bin/server
for dir in $(ls -d $IMAGES_DIR/jdk/*); do
rsync -amv --include="*/" --include="*.pdb" --exclude="*" $dir $__root_dir
done

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2023, 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
@@ -81,13 +81,11 @@ endif
ifneq ($(CMDS_DIR), )
DEPS += $(call FindFiles, $(CMDS_DIR))
ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+public)
# For public debug symbols on Windows, we have to use stripped pdbs, rename them
# and filter out a few launcher pdbs where there's a lib that goes by the same name
# For public debug symbols on Windows, we have to use stripped pdbs and rename them
rename_stripped = $(patsubst %.stripped.pdb,%.pdb,$1)
CMDS_DIR_FILTERED := $(subst modules_cmds,modules_cmds_filtered, $(CMDS_DIR))
FILES_CMDS := $(filter-out %.pdb, $(call FindFiles, $(CMDS_DIR))) \
$(filter-out %jimage.stripped.pdb %jpackage.stripped.pdb %java.stripped.pdb, \
$(filter %.stripped.pdb, $(call FindFiles, $(CMDS_DIR))))
$(filter %.stripped.pdb, $(call FindFiles, $(CMDS_DIR)))
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
SRC := $(CMDS_DIR), \
DEST := $(CMDS_DIR_FILTERED), \
@@ -96,18 +94,6 @@ ifneq ($(CMDS_DIR), )
))
DEPS += $(COPY_FILTERED_CMDS)
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
else ifeq ($(call isTargetOs, windows)+$(SHIP_DEBUG_SYMBOLS), true+full)
# For full debug symbols on Windows, we have to filter out a few launcher pdbs
# where there's a lib that goes by the same name
CMDS_DIR_FILTERED := $(subst modules_cmds,modules_cmds_filtered, $(CMDS_DIR))
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
SRC := $(CMDS_DIR), \
DEST := $(CMDS_DIR_FILTERED), \
FILES := $(filter-out %jimage.pdb %jpackage.pdb %java.pdb, \
$(call FindFiles, $(CMDS_DIR))), \
))
DEPS += $(COPY_FILTERED_CMDS)
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
else
JMOD_FLAGS += --cmds $(CMDS_DIR)
endif

View File

@@ -267,9 +267,6 @@ else
endif
endif
FILTERED_PDBS := %jimage.stripped.pdb %jpackage.stripped.pdb %java.stripped.pdb \
%jimage.pdb %jpackage.pdb %java.pdb %jimage.map %jpackage.map %java.map
# Param 1 - either JDK or JRE
SetupCopyDebuginfo = \
$(foreach m, $(ALL_$1_MODULES), \
@@ -283,8 +280,8 @@ SetupCopyDebuginfo = \
$(eval $(call SetupCopyFiles, COPY_$1_CMDS_DEBUGINFO_$m, \
SRC := $(SUPPORT_OUTPUTDIR)/modules_cmds/$m, \
DEST := $($1_IMAGE_DIR)/$(CMDS_TARGET_SUBDIR), \
FILES := $(filter-out $(FILTERED_PDBS), $(call FindDebuginfoFiles, \
$(SUPPORT_OUTPUTDIR)/modules_cmds/$m)), \
FILES := $(call FindDebuginfoFiles, \
$(SUPPORT_OUTPUTDIR)/modules_cmds/$m), \
)) \
$(eval $1_TARGETS += $$(COPY_$1_CMDS_DEBUGINFO_$m)) \
)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2012, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 2023, 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
@@ -138,7 +138,10 @@ ifeq ($(HAS_SPEC),)
# The spec files depend on the autoconf source code. This check makes sure
# the configuration is up to date after changes to configure.
$(SPECS): $(wildcard $(topdir)/make/autoconf/*) \
$(if $(CUSTOM_CONFIG_DIR), $(wildcard $(CUSTOM_CONFIG_DIR)/*))
$(if $(CUSTOM_CONFIG_DIR), $(wildcard $(CUSTOM_CONFIG_DIR)/*)) \
$(addprefix $(topdir)/make/conf/, version-numbers.conf branding.conf) \
$(if $(CUSTOM_CONF_DIR), $(wildcard $(addprefix $(CUSTOM_CONF_DIR)/, \
version-numbers.conf branding.conf)))
ifeq ($(CONF_CHECK), fail)
@echo Error: The configuration is not up to date for \
"'$(lastword $(subst /, , $(dir $@)))'."

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2023, 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,8 +46,10 @@ JIMAGE_PKGS := \
jdk/internal/jrtfs \
#
# Compile jrt-fs.jar with the interim compiler, as it
# ends up in the image, this will ensure reproducible classes
$(eval $(call SetupJavaCompilation, BUILD_JRTFS, \
COMPILER := bootjdk, \
COMPILER := interim, \
DISABLED_WARNINGS := options, \
TARGET_RELEASE := $(TARGET_RELEASE_JDK8), \
SRC := $(TOPDIR)/src/java.base/share/classes, \

View File

@@ -178,7 +178,8 @@ ifeq ($(TEST_JOBS), 0)
c = c * $(TEST_JOBS_FACTOR_JDL); \
c = c * $(TEST_JOBS_FACTOR_MACHINE); \
if (c < 1) c = 1; \
printf "%.0f", c; \
c = c + 0.5; \
printf "%d", c; \
}')
endif
@@ -356,7 +357,7 @@ ExpandJtregPath = \
# with test id: dir/Test.java#selection -> Test.java#selection -> .java#selection -> #selection
# without: dir/Test.java -> Test.java -> .java -> <<empty string>>
TestID = \
$(subst .sh,,$(subst .html,,$(subst .java,,$(suffix $(notdir $1)))))
$(subst .jasm,,$(subst .sh,,$(subst .html,,$(subst .java,,$(suffix $(notdir $1))))))
# The test id starting with a hash (#testid) will be stripped by all
# evals in ParseJtregTestSelectionInner and will be reinserted by calling
@@ -860,11 +861,12 @@ define SetupRunJtregTestBody
$$(eval $$(call SetupRunJtregTestCustom, $1))
clean-workdir-$1:
clean-outputdirs-$1:
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
$$(RM) -r $$($1_TEST_RESULTS_DIR)
$1_COMMAND_LINE := \
$$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
$$(JTREG_JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
$$($1_JTREG_BASIC_OPTIONS) \
-testjdk:$$(JDK_UNDER_TEST) \
@@ -907,7 +909,7 @@ define SetupRunJtregTestBody
done
endif
run-test-$1: pre-run-test clean-workdir-$1
run-test-$1: pre-run-test clean-outputdirs-$1
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \
@@ -944,9 +946,9 @@ define SetupRunJtregTestBody
$$(eval $1_TOTAL := 1) \
)
$1: run-test-$1 parse-test-$1 clean-workdir-$1
$1: run-test-$1 parse-test-$1 clean-outputdirs-$1
TARGETS += $1 run-test-$1 parse-test-$1 clean-workdir-$1
TARGETS += $1 run-test-$1 parse-test-$1 clean-outputdirs-$1
TEST_TARGETS += parse-test-$1
endef

View File

@@ -122,6 +122,7 @@ $(eval $(call SetupVariable,JT_HOME))
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols,NO_CHECK))
$(eval $(call SetupVariable,JTREG_JDK,$(BOOT_JDK)))
# Provide default values for tools that we need
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
@@ -157,6 +158,10 @@ ifeq ($(UNAME_OS), CYGWIN)
OPENJDK_TARGET_OS := windows
OPENJDK_TARGET_OS_TYPE := windows
OPENJDK_TARGET_OS_ENV := windows.cygwin
else ifeq ($(UNAME_OS), MINGW64)
OPENJDK_TARGET_OS := windows
OPENJDK_TARGET_OS_TYPE := windows
OPENJDK_TARGET_OS_ENV := windows.msys2
else
OPENJDK_TARGET_OS_TYPE:=unix
ifeq ($(UNAME_OS), Linux)
@@ -169,6 +174,9 @@ else
OPENJDK_TARGET_OS_ENV := $(OPENJDK_TARGET_OS)
endif
# Sanity check env detection
$(info Detected target OS, type and env: [$(OPENJDK_TARGET_OS)] [$(OPENJDK_TARGET_OS_TYPE)] [$(OPENJDK_TARGET_OS_ENV)])
# Assume little endian unless otherwise specified
OPENJDK_TARGET_CPU_ENDIAN := little
@@ -248,6 +256,7 @@ $(call CreateNewSpec, $(NEW_SPEC), \
TOPDIR := $(TOPDIR), \
OUTPUTDIR := $(OUTPUTDIR), \
BOOT_JDK := $(BOOT_JDK), \
JTREG_JDK := $(JTREG_JDK), \
JT_HOME := $(JT_HOME), \
JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
JCOV_IMAGE_DIR := $(JCOV_IMAGE_DIR), \

View File

@@ -124,6 +124,8 @@ JAR := $(FIXPATH) $(JAR_CMD)
JLINK := $(FIXPATH) $(JLINK_CMD)
JMOD := $(FIXPATH) $(JMOD_CMD)
JTREG_JAVA := $(FIXPATH) $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
################################################################################
# Some common tools. Assume most common name and no path.

View File

@@ -88,9 +88,9 @@ ifeq ($(call isTargetOs, windows), true)
$(eval $(call SetupZipArchive,BUILD_JGSS_BIN_ZIP, \
SRC := $(SUPPORT_OUTPUTDIR), \
INCLUDE_FILES := modules_libs/java.security.jgss/w2k_lsa_auth.dll \
modules_libs/java.security.jgss/w2k_lsa_auth.diz \
modules_libs/java.security.jgss/w2k_lsa_auth.map \
modules_libs/java.security.jgss/w2k_lsa_auth.pdb, \
modules_libs/java.security.jgss/w2k_lsa_auth.dll.diz \
modules_libs/java.security.jgss/w2k_lsa_auth.dll.map \
modules_libs/java.security.jgss/w2k_lsa_auth.dll.pdb, \
ZIP := $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)))
TARGETS += $(IMAGES_OUTPUTDIR)/$(JGSS_ZIP_NAME)

View File

@@ -406,9 +406,9 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
# WARNING: This might be a bad thing to do. You need to be sure you want to
# have a configuration in this directory. Do some sanity checks!
if test ! -e "$OUTPUTDIR/spec.gmk"; then
# If we have a spec.gmk, we have run here before and we are OK. Otherwise, check for
# other files
if test ! -e "$OUTPUTDIR/spec.gmk" && test ! -e "$OUTPUTDIR/configure-support/generated-configure.sh"; then
# If we have a spec.gmk or configure-support/generated-configure.sh,
# we have run here before and we are OK. Otherwise, check for other files
files_present=`$LS $OUTPUTDIR`
# Configure has already touched config.log and confdefs.h in the current dir when this check
# is performed.
@@ -423,8 +423,9 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
AC_MSG_NOTICE([Current directory is $CONFIGURE_START_DIR.])
AC_MSG_NOTICE([Since this is not the source root, configure will output the configuration here])
AC_MSG_NOTICE([(as opposed to creating a configuration in <src_root>/build/<conf-name>).])
AC_MSG_NOTICE([However, this directory is not empty. This is not allowed, since it could])
AC_MSG_NOTICE([seriously mess up just about everything.])
AC_MSG_NOTICE([However, this directory is not empty, additionally to some allowed files])
AC_MSG_NOTICE([it contains $filtered_files.])
AC_MSG_NOTICE([This is not allowed, since it could seriously mess up just about everything.])
AC_MSG_NOTICE([Try 'cd $TOPDIR' and restart configure])
AC_MSG_NOTICE([(or create a new empty directory and cd to it).])
AC_MSG_ERROR([Will not continue creating configuration in $CONFIGURE_START_DIR])

View File

@@ -816,6 +816,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
REPRODUCIBLE_CFLAGS=
]
)
AC_SUBST(REPRODUCIBLE_CFLAGS)
fi
# Prevent the __FILE__ macro from generating absolute paths into the built
@@ -849,6 +850,22 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
FILE_MACRO_CFLAGS=
]
)
if test "x$FILE_MACRO_CFLAGS" != x; then
# Add -pathmap for all VS system include paths using Windows
# full Long path name that is generated by the compiler
# Not enabled under WSL as there is no easy way to obtain the
# Windows full long paths, thus reproducible WSL builds will
# depend on building with the same VS toolchain install location.
if test "x$OPENJDK_BUILD_OS_ENV" != "xwindows.wsl1" && test "x$OPENJDK_BUILD_OS_ENV" != "xwindows.wsl2"; then
for ipath in ${$3SYSROOT_CFLAGS}; do
if test "x${ipath:0:2}" == "x-I"; then
ipath_path=${ipath#"-I"}
UTIL_FIXUP_WIN_LONG_PATH(ipath_path)
FILE_MACRO_CFLAGS="$FILE_MACRO_CFLAGS -pathmap:\"$ipath_path\"=vsi"
fi
done
fi
fi
fi
AC_MSG_CHECKING([how to prevent absolute paths in output])

View File

@@ -88,6 +88,16 @@ AC_DEFUN([FLAGS_SETUP_RCFLAGS],
AC_SUBST(RCFLAGS)
])
AC_DEFUN([FLAGS_SETUP_NMFLAGS],
[
# On AIX, we need to set NM flag -X64 for processing 64bit object files
if test "x$OPENJDK_TARGET_OS" = xaix; then
NMFLAGS="-X64"
fi
AC_SUBST(NMFLAGS)
])
################################################################################
# platform independent
AC_DEFUN([FLAGS_SETUP_ASFLAGS],

View File

@@ -428,6 +428,7 @@ AC_DEFUN([FLAGS_SETUP_FLAGS],
FLAGS_SETUP_ARFLAGS
FLAGS_SETUP_STRIPFLAGS
FLAGS_SETUP_RCFLAGS
FLAGS_SETUP_NMFLAGS
FLAGS_SETUP_ASFLAGS
FLAGS_SETUP_ASFLAGS_CPU_DEP([TARGET])

View File

@@ -847,6 +847,9 @@ AC_DEFUN([JDKOPT_CHECK_CODESIGN_PARAMS],
$RM "$CODESIGN_TESTFILE"
$TOUCH "$CODESIGN_TESTFILE"
CODESIGN_SUCCESS=false
$ECHO "check codesign, calling $CODESIGN $PARAMS $CODESIGN_TESTFILE" >&AS_MESSAGE_LOG_FD
eval \"$CODESIGN\" $PARAMS \"$CODESIGN_TESTFILE\" 2>&AS_MESSAGE_LOG_FD \
>&AS_MESSAGE_LOG_FD && CODESIGN_SUCCESS=true
$RM "$CODESIGN_TESTFILE"

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2016, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2023, 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
@@ -68,12 +68,20 @@ AC_DEFUN_ONCE([LIB_SETUP_CUPS],
fi
fi
if test "x$CUPS_FOUND" = xno; then
# Are the cups headers installed in the default /usr/include location?
AC_CHECK_HEADERS([cups/cups.h cups/ppd.h], [
CUPS_FOUND=yes
CUPS_CFLAGS=
DEFAULT_CUPS=yes
])
# Are the cups headers installed in the default AIX or /usr/include location?
if test "x$OPENJDK_TARGET_OS" = "xaix"; then
AC_CHECK_HEADERS([/opt/freeware/include/cups/cups.h /opt/freeware/include/cups/ppd.h], [
CUPS_FOUND=yes
CUPS_CFLAGS="-I/opt/freeware/include"
DEFAULT_CUPS=yes
])
else
AC_CHECK_HEADERS([cups/cups.h cups/ppd.h], [
CUPS_FOUND=yes
CUPS_CFLAGS=
DEFAULT_CUPS=yes
])
fi
fi
if test "x$CUPS_FOUND" = xno; then
HELP_MSG_MISSING_DEPENDENCY([cups])

View File

@@ -28,7 +28,7 @@
################################################################################
# Minimum supported versions
JTREG_MINIMUM_VERSION=7.2
JTREG_MINIMUM_VERSION=7.3.1
GTEST_MINIMUM_VERSION=1.13.0
###############################################################################
@@ -227,12 +227,47 @@ AC_DEFUN_ONCE([LIB_TESTS_SETUP_JTREG],
UTIL_FIXUP_PATH(JT_HOME)
AC_SUBST(JT_HOME)
# Specify a JDK for running jtreg. Defaults to the BOOT_JDK.
AC_ARG_WITH(jtreg-jdk, [AS_HELP_STRING([--with-jdk],
[path to JDK for running jtreg @<:@BOOT_JDK@:>@])])
AC_MSG_CHECKING([for jtreg jdk])
if test "x${with_jtreg_jdk}" != x; then
if test "x${with_jtreg_jdk}" = xno; then
AC_MSG_RESULT([no, jtreg jdk not specified])
elif test "x${with_jtreg_jdk}" = xyes; then
AC_MSG_RESULT([not specified])
AC_MSG_ERROR([--with-jtreg-jdk needs a value])
else
JTREG_JDK="${with_jtreg_jdk}"
AC_MSG_RESULT([$JTREG_JDK])
UTIL_FIXUP_PATH(JTREG_JDK)
if test ! -f "$JTREG_JDK/bin/java"; then
AC_MSG_ERROR([Could not find jtreg java at $JTREG_JDK/bin/java])
fi
fi
else
JTREG_JDK="${BOOT_JDK}"
AC_MSG_RESULT([no, using BOOT_JDK])
fi
UTIL_FIXUP_PATH(JTREG_JDK)
AC_SUBST([JTREG_JDK])
# For use in the configure script
JTREG_JAVA="$FIXPATH $JTREG_JDK/bin/java"
# Verify jtreg version
if test "x$JT_HOME" != x; then
AC_MSG_CHECKING([jtreg jar existence])
if test ! -f "$JT_HOME/lib/jtreg.jar"; then
AC_MSG_ERROR([Could not find jtreg jar at $JT_HOME/lib/jtreg.jar])
fi
AC_MSG_CHECKING([jtreg version number])
# jtreg -version looks like this: "jtreg 6.1+1-19"
# Extract actual version part ("6.1" in this case)
jtreg_version_full=`$JAVA -jar $JT_HOME/lib/jtreg.jar -version | $HEAD -n 1 | $CUT -d ' ' -f 2`
jtreg_version_full=$($JTREG_JAVA -jar $JT_HOME/lib/jtreg.jar -version | $HEAD -n 1 | $CUT -d ' ' -f 2)
jtreg_version=${jtreg_version_full/%+*}
AC_MSG_RESULT([$jtreg_version])

View File

@@ -34,6 +34,9 @@ AC_DEFUN_ONCE([LIB_SETUP_WAYLAND],
(expecting the headers under PATH/include)])])
AC_ARG_WITH(wayland-include, [AS_HELP_STRING([--with-wayland-include],
[specify directory for the wayland include files])])
AC_ARG_WITH(wayland-lib, [AS_HELP_STRING([--with-wayland-lib],
[specify directory for the wayland library files])])
if test "x$NEEDS_LIB_WAYLAND" = xfalse; then
if (test "x${with_wayland}" != x && test "x${with_wayland}" != xno) || \
@@ -73,6 +76,10 @@ AC_DEFUN_ONCE([LIB_SETUP_WAYLAND],
AC_MSG_ERROR([Can't find 'wayland-client.h' and 'wayland-cursor.h' under ${with_wayland_include} given with the --with-wayland-include option.])
fi
fi
if test "x${with_wayland_lib}" != x; then
WAYLAND_LIBS="-L${with_wayland_lib} -lwayland-client -lwayland-cursor"
fi
if test "x$WAYLAND_FOUND" = xno; then
# Are the wayland headers installed in the default /usr/include location?
AC_CHECK_HEADERS([wayland-client.h wayland-cursor.h],
@@ -97,7 +104,10 @@ AC_DEFUN_ONCE([LIB_SETUP_WAYLAND],
[specify whether we use vulkan])])
AC_ARG_WITH(vulkan-include, [AS_HELP_STRING([--with-vulkan-include],
[specify directory for the vulkan include files])])
[specify directory for the vulkan include files ({with-vulkan-include}/vulkan/vulkan.h)])])
AC_ARG_WITH(vulkan-hpp, [AS_HELP_STRING([--with-vulkan-hpp],
[specify directory for the vulkan-hpp include files ({with-vulkan-hpp}/vulkan/vulkan_raii.hpp)])])
AC_ARG_WITH(vulkan-shader-compiler, [AS_HELP_STRING([--with-vulkan-shader-compiler],
[specify which shader compiler to use: glslc/glslangValidator])])
@@ -120,17 +130,36 @@ AC_DEFUN_ONCE([LIB_SETUP_WAYLAND],
VULKAN_FOUND=no
if test "x${with_vulkan_include}" != x; then
AC_CHECK_HEADERS([${with_vulkan_include}/include/vulkan/vulkan.h],
[ VULKAN_FOUND=yes
VULKAN_FLAGS="-DVK_USE_PLATFORM_WAYLAND_KHR -I${with_vulkan_include}/include -DVULKAN_ENABLED"
],
[ AC_MSG_ERROR([Can't find 'vulkan/vulkan.h' under '${with_vulkan_include}']) ]
)
AC_MSG_CHECKING([for vulkan.h])
if test -s "${with_vulkan_include}/vulkan/vulkan.h"; then
VULKAN_FOUND=yes
VULKAN_FLAGS="-DVK_USE_PLATFORM_WAYLAND_KHR -I${with_vulkan_include} -DVULKAN_ENABLED"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([Can't find 'vulkan/vulkan.h' under '${with_vulkan_include}'])
fi
AC_MSG_CHECKING([for vulkan_raii.hpp])
if test "x${with_vulkan_hpp}" != x; then
VULKAN_FLAGS="-I${with_vulkan_hpp} ${VULKAN_FLAGS}"
VULKAN_HPP_DIR=${with_vulkan_hpp}
else
VULKAN_HPP_DIR=${with_vulkan_include}
fi
if test -s "$VULKAN_HPP_DIR/vulkan/vulkan_raii.hpp"; then
VULKAN_FOUND=yes
AC_MSG_RESULT([yes])
else
VULKAN_FOUND=no
AC_MSG_RESULT([no])
AC_MSG_ERROR([Can't find 'vulkan/vulkan_raii.hpp' under '$VULKAN_HPP_DIR'])
fi
fi
AC_LANG_PUSH([C++])
if test "x$VULKAN_FOUND" = xno; then
# Check vulkan sdk location
AC_CHECK_HEADERS([$VULKAN_SDK/include/vulkan/vulkan.h],
AC_CHECK_HEADERS([$VULKAN_SDK/include/vulkan/vulkan.h $VULKAN_SDK/include/vulkan/vulkan_raii.hpp],
[ VULKAN_FOUND=yes
VULKAN_FLAGS="-DVK_USE_PLATFORM_WAYLAND_KHR -I${VULKAN_SDK}/include -DVULKAN_ENABLED"
],
@@ -140,13 +169,14 @@ AC_DEFUN_ONCE([LIB_SETUP_WAYLAND],
if test "x$VULKAN_FOUND" = xno; then
# Check default /usr/include location
AC_CHECK_HEADERS([vulkan/vulkan.h],
AC_CHECK_HEADERS([vulkan/vulkan.h vulkan/vulkan_raii.hpp],
[ VULKAN_FOUND=yes
VULKAN_FLAGS="-DVK_USE_PLATFORM_WAYLAND_KHR -DVULKAN_ENABLED"
],
[ VULKAN_FOUND=no; break ]
)
fi
AC_LANG_POP([C++])
if test "x$VULKAN_FOUND" = xno; then
HELP_MSG_MISSING_DEPENDENCY([vulkan])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2022, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2023, 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
@@ -35,6 +35,7 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
X_CFLAGS=
X_LIBS=
else
x_libraries_orig="$x_libraries"
if test "x${with_x}" = xno; then
AC_MSG_ERROR([It is not possible to disable the use of X11. Remove the --without-x option.])
@@ -48,6 +49,7 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
fi
if test "x$x_libraries" = xNONE; then
x_libraries="${with_x}/lib"
x_libraries_orig="$x_libraries"
fi
else
# Check if the user has specified sysroot, but not --with-x, --x-includes or --x-libraries.
@@ -82,8 +84,8 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
AC_PATH_XTRA
# AC_PATH_XTRA creates X_LIBS and sometimes adds -R flags. When cross compiling
# this doesn't make sense so we remove it.
if test "x$COMPILE_TYPE" = xcross; then
# this doesn't make sense so we remove it; same for sysroot (devkit).
if test "x$COMPILE_TYPE" = xcross || (test "x$SYSROOT" != "x" && test "x$x_libraries_orig" = xNONE); then
X_LIBS=`$ECHO $X_LIBS | $SED 's/-R \{0,1\}[[^ ]]*//g'`
fi

View File

@@ -131,12 +131,6 @@ AC_DEFUN([LIB_SETUP_JVM_LIBS],
BASIC_JVM_LIBS_$1="$BASIC_JVM_LIBS_$1 -latomic"
fi
fi
# Because RISC-V only has word-sized atomics, it requires libatomic where
# other common architectures do not, so link libatomic by default.
if test "x$OPENJDK_$1_OS" = xlinux && test "x$OPENJDK_$1_CPU" = xriscv64; then
BASIC_JVM_LIBS_$1="$BASIC_JVM_LIBS_$1 -latomic"
fi
])
################################################################################

View File

@@ -567,8 +567,6 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
HOTSPOT_$1_CPU_DEFINE=PPC64
elif test "x$OPENJDK_$1_CPU" = xppc64le; then
HOTSPOT_$1_CPU_DEFINE=PPC64
elif test "x$OPENJDK_$1_CPU" = xriscv32; then
HOTSPOT_$1_CPU_DEFINE=RISCV32
elif test "x$OPENJDK_$1_CPU" = xriscv64; then
HOTSPOT_$1_CPU_DEFINE=RISCV64
@@ -577,10 +575,14 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
HOTSPOT_$1_CPU_DEFINE=SPARC
elif test "x$OPENJDK_$1_CPU" = xppc; then
HOTSPOT_$1_CPU_DEFINE=PPC32
elif test "x$OPENJDK_$1_CPU" = xriscv32; then
HOTSPOT_$1_CPU_DEFINE=RISCV32
elif test "x$OPENJDK_$1_CPU" = xs390; then
HOTSPOT_$1_CPU_DEFINE=S390
elif test "x$OPENJDK_$1_CPU" = xs390x; then
HOTSPOT_$1_CPU_DEFINE=S390
elif test "x$OPENJDK_$1_CPU" = xloongarch64; then
HOTSPOT_$1_CPU_DEFINE=LOONGARCH64
elif test "x$OPENJDK_$1_CPU" != x; then
HOTSPOT_$1_CPU_DEFINE=$(echo $OPENJDK_$1_CPU | tr a-z A-Z)
fi

View File

@@ -424,6 +424,7 @@ LIBFFI_CFLAGS:=@LIBFFI_CFLAGS@
ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@
LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
FILE_MACRO_CFLAGS := @FILE_MACRO_CFLAGS@
REPRODUCIBLE_CFLAGS := @REPRODUCIBLE_CFLAGS@
BRANCH_PROTECTION_CFLAGS := @BRANCH_PROTECTION_CFLAGS@
STATIC_LIBS_CFLAGS := @STATIC_LIBS_CFLAGS@
@@ -621,6 +622,7 @@ AR := @AR@
ARFLAGS:=@ARFLAGS@
NM:=@NM@
NMFLAGS:=@NMFLAGS@
STRIP:=@STRIP@
OBJDUMP:=@OBJDUMP@
CXXFILT:=@CXXFILT@
@@ -698,6 +700,9 @@ JAR = $(JAR_CMD)
JLINK = $(JLINK_CMD)
JMOD = $(JMOD_CMD)
JTREG_JDK := @JTREG_JDK@
JTREG_JAVA = @FIXPATH@ $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
BUILD_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@
BUILD_JAVA=@FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS)
BUILD_JAVAC=@FIXPATH@ $(BUILD_JDK)/bin/javac

View File

@@ -804,7 +804,11 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
case $TOOLCHAIN_TYPE in
gcc|clang)
UTIL_REQUIRE_TOOLCHAIN_PROGS(CXXFILT, c++filt)
if test "x$OPENJDK_TARGET_OS" = xaix; then
UTIL_REQUIRE_TOOLCHAIN_PROGS(CXXFILT, ibm-llvm-cxxfilt)
else
UTIL_REQUIRE_TOOLCHAIN_PROGS(CXXFILT, c++filt)
fi
;;
esac
])

View File

@@ -118,6 +118,24 @@ AC_DEFUN([UTIL_FIXUP_PATH],
fi
])
##############################################################################
# Fixup path to be a Windows full long path
# Note: Only supported with cygwin/msys2 (cygpath tool)
AC_DEFUN([UTIL_FIXUP_WIN_LONG_PATH],
[
# Only process if variable expands to non-empty
path="[$]$1"
if test "x$path" != x; then
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
win_path=$($PATHTOOL -wl "$path")
if test "x$win_path" != "x$path"; then
$1="$win_path"
fi
fi
fi
])
###############################################################################
# Check if the given file is a unix-style or windows-style executable, that is,
# if it expects paths in unix-style or windows-style.

View File

@@ -48,12 +48,12 @@ define GetSymbols
$(SED) -e 's/#.*//;s/global://;s/local://;s/\;//;s/^[ ]*/_/;/^_$$$$/d' | \
$(EGREP) -v "JNI_OnLoad|JNI_OnUnload|Agent_OnLoad|Agent_OnUnload|Agent_OnAttach" > \
$$(@D)/$$(basename $$(@F)).symbols || true; \
$(NM) $$($1_TARGET) | $(GREP) " T " | \
$(NM) $(NMFLAGS) $$($1_TARGET) | $(GREP) " T " | \
$(EGREP) "JNI_OnLoad|JNI_OnUnload|Agent_OnLoad|Agent_OnUnload|Agent_OnAttach" | \
$(CUT) -d ' ' -f 3 >> $$(@D)/$$(basename $$(@F)).symbols || true;\
else \
$(ECHO) "Getting symbols from nm"; \
$(NM) -m $$($1_TARGET) | $(GREP) "__TEXT" | \
$(NM) $(NMFLAGS) -m $$($1_TARGET) | $(GREP) "__TEXT" | \
$(EGREP) -v "non-external|private extern|__TEXT,__eh_frame" | \
$(SED) -e 's/.* //' > $$(@D)/$$(basename $$(@F)).symbols; \
fi
@@ -1050,13 +1050,13 @@ define SetupNativeCompilationBody
ifneq ($$($1_TYPE), STATIC_LIBRARY)
# Generate debuginfo files.
ifeq ($(call isTargetOs, windows), true)
$1_EXTRA_LDFLAGS += -debug "-pdb:$$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).pdb" \
"-map:$$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).map"
$1_EXTRA_LDFLAGS += -debug "-pdb:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).pdb" \
"-map:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).map"
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
$1_EXTRA_LDFLAGS += "-pdbstripped:$$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).stripped.pdb"
$1_EXTRA_LDFLAGS += "-pdbstripped:$$($1_SYMBOLS_DIR)/$$($1_BASENAME).stripped.pdb"
endif
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).pdb \
$$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).map
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_BASENAME).pdb \
$$($1_SYMBOLS_DIR)/$$($1_BASENAME).map
else ifeq ($(call isTargetOs, linux), true)
$1_DEBUGINFO_FILES := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).debuginfo
@@ -1104,7 +1104,11 @@ define SetupNativeCompilationBody
$1 += $$($1_DEBUGINFO_FILES)
ifeq ($$($1_ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
$1_DEBUGINFO_ZIP := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).diz
ifeq ($(call isTargetOs, windows), true)
$1_DEBUGINFO_ZIP := $$($1_SYMBOLS_DIR)/$$($1_BASENAME).diz
else
$1_DEBUGINFO_ZIP := $$($1_SYMBOLS_DIR)/$$($1_NOSUFFIX).diz
endif
$1 += $$($1_DEBUGINFO_ZIP)
# The dependency on TARGET is needed for debuginfo files

View File

@@ -26,7 +26,7 @@
# Versions and download locations for dependencies used by GitHub Actions (GHA)
GTEST_VERSION=1.13.0
JTREG_VERSION=7.2+1
JTREG_VERSION=7.3.1+1
LINUX_X64_BOOT_JDK_EXT=tar.gz
LINUX_X64_BOOT_JDK_URL=https://download.java.net/java/GA/jdk20/bdc68b4b9cbc4ebcb30745c85038d91d/36/GPL/openjdk-20_linux-x64_bin.tar.gz

View File

@@ -945,10 +945,7 @@ var getJibProfilesProfiles = function (input, common, data) {
target_os: input.build_os,
target_cpu: input.build_cpu,
dependencies: [ "jtreg", "gnumake", "boot_jdk", "devkit", "jib" ],
labels: "test",
environment: {
"JT_JAVA": common.boot_jdk_home
}
labels: "test"
}
};
profiles = concatObjects(profiles, testOnlyProfiles);
@@ -1188,9 +1185,9 @@ var getJibProfilesDependencies = function (input, common) {
jtreg: {
server: "jpg",
product: "jtreg",
version: "7.2",
version: "7.3.1",
build_number: "1",
file: "bundles/jtreg-7.2+1.zip",
file: "bundles/jtreg-7.3.1+1.zip",
environment_name: "JT_HOME",
environment_path: input.get("jtreg", "home_path") + "/bin",
configure_args: "--with-jtreg=" + input.get("jtreg", "home_path"),

View File

@@ -28,12 +28,12 @@
DEFAULT_VERSION_FEATURE=21
DEFAULT_VERSION_INTERIM=0
DEFAULT_VERSION_UPDATE=0
DEFAULT_VERSION_UPDATE=2
DEFAULT_VERSION_PATCH=0
DEFAULT_VERSION_EXTRA1=0
DEFAULT_VERSION_EXTRA2=0
DEFAULT_VERSION_EXTRA3=0
DEFAULT_VERSION_DATE=2023-09-19
DEFAULT_VERSION_DATE=2024-01-16
DEFAULT_VERSION_CLASSFILE_MAJOR=65 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_VERSION_DOCS_API_SINCE=11

View File

@@ -26,8 +26,8 @@
# Create a bundle in the build directory, containing what's needed to
# build and run JMH microbenchmarks from the OpenJDK build.
JMH_VERSION=1.36
COMMONS_MATH3_VERSION=3.2
JMH_VERSION=1.37
COMMONS_MATH3_VERSION=3.6.1
JOPT_SIMPLE_VERSION=5.0.4
BUNDLE_NAME=jmh-$JMH_VERSION.tar.gz

View File

@@ -62,7 +62,7 @@ ifeq ($(call check-jvm-feature, compiler2), true)
ADLC_CFLAGS += -I$(TOPDIR)/src/hotspot/share
# Add file macro mappings
ADLC_CFLAGS += $(FILE_MACRO_CFLAGS)
ADLC_CFLAGS += $(FILE_MACRO_CFLAGS) $(REPRODUCIBLE_CFLAGS)
ifeq ($(UBSAN_ENABLED), true)
ADLC_CFLAGS += $(UBSAN_CFLAGS)
@@ -133,6 +133,21 @@ ifeq ($(call check-jvm-feature, compiler2), true)
ADLCFLAGS += -DARM=1
endif
# Set ASSERT, NDEBUG and PRODUCT flags just like in JvmFlags.gmk
ifeq ($(DEBUG_LEVEL), release)
# release builds disable uses of assert macro from <assert.h>.
ADLCFLAGS += -DNDEBUG
# For hotspot, release builds differ internally between "optimized" and "product"
# in that "optimize" does not define PRODUCT.
ifneq ($(HOTSPOT_DEBUG_LEVEL), optimized)
ADLCFLAGS += -DPRODUCT
endif
else ifeq ($(DEBUG_LEVEL), fastdebug)
ADLCFLAGS += -DASSERT
else ifeq ($(DEBUG_LEVEL), slowdebug)
ADLCFLAGS += -DASSERT
endif
##############################################################################
# Concatenate all ad source files into a single file, which will be fed to
# adlc. Also include a #line directive at the start of every included file

View File

@@ -276,10 +276,10 @@ ifneq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
define SetupOperatorNewDeleteCheck
$1.op_check: $1
$$(call ExecuteWithLog, $1.op_check, \
$$(NM) $$< 2>&1 | $$(GREP) $$(addprefix -e , $$(MANGLED_SYMS)) | $$(GREP) $$(UNDEF_PATTERN) > $1.op_check || true)
$$(NM) $$(NMFLAGS) $$< 2>&1 | $$(GREP) $$(addprefix -e , $$(MANGLED_SYMS)) | $$(GREP) $$(UNDEF_PATTERN) > $1.op_check || true)
if [ -s $1.op_check ]; then \
$$(ECHO) "$$(notdir $$<): Error: Use of global operators new and delete is not allowed in Hotspot:"; \
$$(NM) $$< | $$(CXXFILT) | $$(EGREP) '$$(DEMANGLED_REGEXP)' | $$(GREP) $$(UNDEF_PATTERN); \
$$(NM) $$(NMFLAGS) $$< | $$(CXXFILT) | $$(EGREP) '$$(DEMANGLED_REGEXP)' | $$(GREP) $$(UNDEF_PATTERN); \
$$(ECHO) "See: $$(TOPDIR)/make/hotspot/lib/CompileJvm.gmk"; \
exit 1; \
fi

View File

@@ -53,7 +53,7 @@ endif
# platform dependent.
ifeq ($(call isTargetOs, linux), true)
DUMP_SYMBOLS_CMD := $(NM) --defined-only *$(OBJ_SUFFIX)
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) --defined-only *$(OBJ_SUFFIX)
ifneq ($(FILTER_SYMBOLS_PATTERN), )
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
endif
@@ -67,7 +67,7 @@ ifeq ($(call isTargetOs, linux), true)
else ifeq ($(call isTargetOs, macosx), true)
# nm on macosx prints out "warning: nm: no name list" to stderr for
# files without symbols. Hide this, even at the expense of hiding real errors.
DUMP_SYMBOLS_CMD := $(NM) -Uj *$(OBJ_SUFFIX) 2> /dev/null
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) -Uj *$(OBJ_SUFFIX) 2> /dev/null
ifneq ($(FILTER_SYMBOLS_PATTERN), )
FILTER_SYMBOLS_PATTERN := $(FILTER_SYMBOLS_PATTERN)|
endif
@@ -89,7 +89,7 @@ else ifeq ($(call isTargetOs, aix), true)
# which may be installed under /opt/freeware/bin. So better use an absolute path here!
# NM=/usr/bin/nm
DUMP_SYMBOLS_CMD := $(NM) -X64 -B -C *$(OBJ_SUFFIX)
DUMP_SYMBOLS_CMD := $(NM) $(NMFLAGS) -B -C *$(OBJ_SUFFIX)
FILTER_SYMBOLS_AWK_SCRIPT := \
'{ \
if (($$2="d" || $$2="D") && ($$3 ~ /^__vft/ || $$3 ~ /^gHotSpotVM/)) print $$3; \

View File

@@ -61,7 +61,7 @@ ifeq ($(call isTargetOs, windows), true)
$(eval $(call SetupCopyFiles, COPY_GTEST_PDB_$v, \
SRC := $(HOTSPOT_OUTPUTDIR)/variant-$v/libjvm/gtest, \
DEST := $(TEST_IMAGE_DIR)/hotspot/gtest/$v, \
FILES := jvm.pdb gtestLauncher.pdb, \
FILES := jvm.dll.pdb gtestLauncher.exe.pdb, \
)) \
$(eval TARGETS += $$(COPY_GTEST_PDB_$v)) \
) \

View File

@@ -329,7 +329,7 @@ class CompilerInterfaceVC10 extends CompilerInterface {
addAttr(rv, "PrecompiledHeaderOutputFile", outDir+Util.sep+"vm.pch");
addAttr(rv, "AssemblerListingLocation", outDir);
addAttr(rv, "ObjectFileName", outDir+Util.sep);
addAttr(rv, "ProgramDataBaseFileName", outDir+Util.sep+"jvm.pdb");
addAttr(rv, "ProgramDataBaseFileName", outDir+Util.sep+"jvm.dll.pdb");
// Set /nologo option
addAttr(rv, "SuppressStartupBanner", "true");
// Surpass the default /Tc or /Tp.
@@ -409,7 +409,7 @@ class CompilerInterfaceVC10 extends CompilerInterface {
addAttr(rv, "OutputFile", outDll);
addAttr(rv, "SuppressStartupBanner", "true");
addAttr(rv, "ModuleDefinitionFile", outDir+Util.sep+"vm.def");
addAttr(rv, "ProgramDatabaseFile", outDir+Util.sep+"jvm.pdb");
addAttr(rv, "ProgramDatabaseFile", outDir+Util.sep+"jvm.dll.pdb");
addAttr(rv, "SubSystem", "Windows");
addAttr(rv, "BaseAddress", "0x8000000");
addAttr(rv, "ImportLibrary", outDir+Util.sep+"jvm.lib");

View File

@@ -51,9 +51,9 @@ import javacserver.util.Log;
public class Client {
private static final Log.Level LOG_LEVEL = Log.Level.INFO;
// Wait 2 seconds for response, before giving up on javac server.
private static final int CONNECTION_TIMEOUT = 2000;
private static final int MAX_CONNECT_ATTEMPTS = 3;
// Wait 4 seconds for response, before giving up on javac server.
private static final int CONNECTION_TIMEOUT = 4000;
private static final int MAX_CONNECT_ATTEMPTS = 10;
private static final int WAIT_BETWEEN_CONNECT_ATTEMPTS = 2000;
private final ClientConfiguration conf;
@@ -130,7 +130,7 @@ public class Client {
Log.error("Connection attempt failed: " + ex.getMessage());
if (attempt >= MAX_CONNECT_ATTEMPTS) {
Log.error("Giving up");
throw new IOException("Could not connect to server", ex);
throw new IOException("Could not connect to server after " + MAX_CONNECT_ATTEMPTS + " attempts with timeout " + CONNECTION_TIMEOUT, ex);
}
}
Thread.sleep(WAIT_BETWEEN_CONNECT_ATTEMPTS);

View File

@@ -52,9 +52,7 @@ $(eval $(call SetupTextFileProcessing, BUILD_VERSION_JAVA, \
# Normalize OPENJDK_TARGET_CPU name to match jdk.internal.util.Architecture enum
ifneq ($(filter $(OPENJDK_TARGET_CPU), ppc64le), )
OPENJDK_TARGET_ARCH_CANONICAL = ppc64
else ifneq ($(filter $(OPENJDK_TARGET_CPU), s390x), )
ifneq ($(filter $(OPENJDK_TARGET_CPU), s390x), )
OPENJDK_TARGET_ARCH_CANONICAL = s390
else ifneq ($(filter $(OPENJDK_TARGET_CPU), x86_64 amd64), )
OPENJDK_TARGET_ARCH_CANONICAL = x64

View File

@@ -323,6 +323,8 @@ ifeq ($(call isTargetOs, windows macosx), false)
DISABLED_WARNINGS_gcc_gtk3_interface.c := parentheses type-limits unused-function, \
DISABLED_WARNINGS_gcc_OGLBufImgOps.c := format-nonliteral, \
DISABLED_WARNINGS_gcc_OGLPaints.c := format-nonliteral, \
DISABLED_WARNINGS_gcc_screencast_pipewire.c := undef, \
DISABLED_WARNINGS_gcc_screencast_portal.c := undef, \
DISABLED_WARNINGS_gcc_sun_awt_X11_GtkFileDialogPeer.c := parentheses, \
DISABLED_WARNINGS_gcc_X11SurfaceData.c := implicit-fallthrough pointer-to-int-cast, \
DISABLED_WARNINGS_gcc_XlibWrapper.c := type-limits pointer-to-int-cast, \
@@ -362,6 +364,7 @@ ifeq ($(call isTargetOs, windows macosx), false)
common/awt \
common/java2d \
common/font \
common/wayland \
#
LIBAWT_WLAWT_EXCLUDES := medialib debug opengl x11
@@ -382,6 +385,7 @@ ifeq ($(call isTargetOs, windows macosx), false)
common/font \
common/java2d/wl \
common/java2d/vulkan \
common/wayland \
libvmahpp \
#
@@ -605,6 +609,7 @@ else
LIBFREETYPE_LIBS := -lfreetype
endif
# gcc_ftobjs.c := maybe-uninitialized required for GCC 7 builds.
$(eval $(call SetupJdkLibrary, BUILD_LIBFREETYPE, \
NAME := freetype, \
OPTIMIZATION := HIGHEST, \
@@ -613,6 +618,7 @@ else
EXTRA_HEADER_DIRS := $(BUILD_LIBFREETYPE_HEADER_DIRS), \
DISABLED_WARNINGS_microsoft := 4267 4244 4996, \
DISABLED_WARNINGS_gcc := dangling-pointer stringop-overflow, \
DISABLED_WARNINGS_gcc_ftobjs.c := maybe-uninitialized, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
))
@@ -649,11 +655,18 @@ else
# hb-ft.cc is not presently needed, and requires freetype 2.4.2 or later.
LIBFONTMANAGER_EXCLUDE_FILES += libharfbuzz/hb-ft.cc
# list of disabled warnings and the compilers for which it was specifically added.
# array-bounds -> GCC 12 on Alpine Linux
# parentheses -> GCC 6
# range-loop-analysis -> clang on Xcode12
HARFBUZZ_DISABLED_WARNINGS_gcc := missing-field-initializers strict-aliasing \
unused-result array-bounds
unused-result array-bounds parentheses
# noexcept-type required for GCC 7 builds. Not required for GCC 8+.
# expansion-to-defined required for GCC 9 builds. Not required for GCC 10+.
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := class-memaccess noexcept-type expansion-to-defined dangling-reference
# maybe-uninitialized required for GCC 8 builds. Not required for GCC 9+.
HARFBUZZ_DISABLED_WARNINGS_CXX_gcc := class-memaccess noexcept-type \
expansion-to-defined dangling-reference maybe-uninitialized
HARFBUZZ_DISABLED_WARNINGS_clang := missing-field-initializers range-loop-analysis
HARFBUZZ_DISABLED_WARNINGS_microsoft := 4267 4244
@@ -894,6 +907,7 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false)
#
LIBSPLASHSCREEN_HEADER_DIRS += common/awt/utility
LIBSPLASHSCREEN_HEADER_DIRS += common/awt/systemscale
ifeq ($(USE_EXTERNAL_LIBGIF), false)
LIBSPLASHSCREEN_HEADER_DIRS += libsplashscreen/giflib
@@ -949,6 +963,8 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false)
endif
endif
LIBSPLASHSCREEN_CFLAGS += $(CFLAGS_JDKLIB) $(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS)
ifeq ($(call isTargetOs, macosx), true)
LIBSPLASHSCREEN_CFLAGS += -DWITH_MACOSX
@@ -963,11 +979,10 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false)
else ifeq ($(call isTargetOs, windows), true)
LIBSPLASHSCREEN_CFLAGS += -DWITH_WIN32
else
LIBWLSPLASHSCREEN_CFLAGS := -DWITH_WL $(LIBSPLASHSCREEN_CFLAGS) $(X_CFLAGS)
LIBSPLASHSCREEN_CFLAGS += -DWITH_X11 $(X_CFLAGS)
endif
LIBSPLASHSCREEN_LIBS :=
ifeq ($(call isTargetOs, macosx), true)
LIBSPLASHSCREEN_LIBS += \
$(LIBM) -lpthread -liconv -losxapp \
@@ -983,48 +998,59 @@ ifeq ($(ENABLE_HEADLESS_ONLY), false)
endif
LIBSPLASHSCREEN_HEADER_DIRS += \
libsplashscreen \
libosxapp \
java.base:libjava \
#
LIBSPLASHSCREEN_EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c
LIBSPLASHSCREEN_LDFLAGS := $(LDFLAGS_JDKLIB) $(call SET_SHARED_LIBRARY_ORIGIN)
LIBSPLASHSCREEN_LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ_LIBS) $(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS)
LIBSPLASHSCREEN_DISABLED_WARNINGS_gcc := sign-compare implicit-fallthrough shift-negative-value maybe-uninitialized unused-function type-limits unused-result
LIBSPLASHSCREEN_DISABLED_WARNINGS_clang := deprecated-non-prototype format-nonliteral sign-compare incompatible-pointer-types deprecated-declarations
LIBSPLASHSCREEN_DISABLED_WARNINGS_microsoft := 4018 4267 4244
LIBWLSPLASHSCREEN_HEADER_DIRS := common/wayland
LIBWLSPLASHSCREEN_EXTRA_SRC := common/wayland
$(eval $(call SetupJdkLibrary, BUILD_LIBSPLASHSCREEN, \
NAME := splashscreen, \
EXTRA_SRC := $(LIBSPLASHSCREEN_EXTRA_SRC), \
EXTRA_SRC := $(LIBSPLASHSCREEN_EXTRA_SRC) libxsplashscreen libsplashscreen, \
EXCLUDE_SRC_PATTERNS := $(LIBSPLASHSCREEN_EXCLUDE_SRC_PATTERNS), \
EXCLUDE_FILES := imageioJPEG.c jpegdecoder.c pngtest.c, \
DISABLED_WARNINGS_gcc := $(LIBSPLASHSCREEN_DISABLED_WARNINGS_gcc), \
DISABLED_WARNINGS_clang := $(LIBSPLASHSCREEN_DISABLED_WARNINGS_clang), \
DISABLED_WARNINGS_microsoft := $(LIBSPLASHSCREEN_DISABLED_WARNINGS_microsoft), \
EXCLUDE_FILES := $(LIBSPLASHSCREEN_EXCLUDE_FILES), \
EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
OPTIMIZATION := LOW, \
CFLAGS := $(CFLAGS_JDKLIB) $(LIBSPLASHSCREEN_CFLAGS) \
$(GIFLIB_CFLAGS) $(LIBJPEG_CFLAGS) $(PNG_CFLAGS) $(LIBZ_CFLAGS), \
EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS), \
DISABLED_WARNINGS_gcc_dgif_lib.c := sign-compare, \
DISABLED_WARNINGS_gcc_jcmaster.c := implicit-fallthrough, \
DISABLED_WARNINGS_gcc_jdphuff.c := shift-negative-value, \
DISABLED_WARNINGS_gcc_png.c := maybe-uninitialized, \
DISABLED_WARNINGS_gcc_pngerror.c := maybe-uninitialized, \
DISABLED_WARNINGS_gcc_splashscreen_gfx_impl.c := implicit-fallthrough maybe-uninitialized, \
DISABLED_WARNINGS_gcc_splashscreen_impl.c := implicit-fallthrough sign-compare unused-function, \
DISABLED_WARNINGS_gcc_splashscreen_sys.c := type-limits unused-result, \
DISABLED_WARNINGS_clang := deprecated-non-prototype, \
DISABLED_WARNINGS_clang_dgif_lib.c := sign-compare, \
DISABLED_WARNINGS_clang_gzwrite.c := format-nonliteral, \
DISABLED_WARNINGS_clang_splashscreen_impl.c := sign-compare, \
DISABLED_WARNINGS_clang_splashscreen_png.c := incompatible-pointer-types, \
DISABLED_WARNINGS_clang_splashscreen_sys.m := deprecated-declarations, \
DISABLED_WARNINGS_microsoft_dgif_lib.c := 4018 4267, \
DISABLED_WARNINGS_microsoft_splashscreen_impl.c := 4018 4267 4244, \
DISABLED_WARNINGS_microsoft_splashscreen_png.c := 4267, \
DISABLED_WARNINGS_microsoft_splashscreen_sys.c := 4267 4244, \
LDFLAGS := $(LDFLAGS_JDKLIB) \
$(call SET_SHARED_LIBRARY_ORIGIN), \
CFLAGS := $(LIBSPLASHSCREEN_CFLAGS), \
EXTRA_HEADER_DIRS := libxsplashscreen $(LIBSPLASHSCREEN_HEADER_DIRS), \
LDFLAGS := $(LIBSPLASHSCREEN_LDFLAGS), \
LDFLAGS_macosx := -L$(INSTALL_LIBRARIES_HERE), \
LDFLAGS_windows := -delayload:user32.dll, \
LIBS := $(JDKLIB_LIBS) $(LIBSPLASHSCREEN_LIBS) $(LIBZ_LIBS) \
$(GIFLIB_LIBS) $(LIBJPEG_LIBS) $(PNG_LIBS), \
LIBS := $(LIBSPLASHSCREEN_LIBS), \
LIBS_aix := -liconv, \
))
$(eval $(call SetupJdkLibrary, BUILD_LIBWLSPLASHSCREEN, \
NAME := wlsplashscreen, \
EXTRA_SRC := $(LIBSPLASHSCREEN_EXTRA_SRC) $(LIBWLSPLASHSCREEN_EXTRA_SRC) libwlsplashscreen libsplashscreen, \
EXCLUDE_SRC_PATTERNS := $(LIBSPLASHSCREEN_EXCLUDE_SRC_PATTERNS), \
DISABLED_WARNINGS_gcc := $(LIBSPLASHSCREEN_DISABLED_WARNINGS_gcc), \
DISABLED_WARNINGS_clang := $(LIBSPLASHSCREEN_DISABLED_WARNINGS_clang), \
EXCLUDE_FILES := $(LIBSPLASHSCREEN_EXCLUDE_FILES), \
EXCLUDES := $(LIBSPLASHSCREEN_EXCLUDES), \
OPTIMIZATION := LOW, \
CFLAGS := $(LIBWLSPLASHSCREEN_CFLAGS), \
EXTRA_HEADER_DIRS := $(LIBSPLASHSCREEN_HEADER_DIRS) $(LIBWLSPLASHSCREEN_HEADER_DIRS) libwlsplashscreen, \
LDFLAGS := $(LIBSPLASHSCREEN_LDFLAGS) -lrt, \
LIBS := -lwayland-client -lwayland-cursor $(LIBSPLASHSCREEN_LIBS) -lrt, \
LIBS_aix := -liconv, \
))
TARGETS += $(BUILD_LIBSPLASHSCREEN)
ifeq ($(call isTargetOs, linux), true)
TARGETS += $(BUILD_LIBWLSPLASHSCREEN)
endif
ifeq ($(call isTargetOs, macosx), true)
$(BUILD_LIBSPLASHSCREEN): $(call FindLib, $(MODULE), osxapp)

View File

@@ -49,8 +49,8 @@ elif [ "$OPENJDK_TARGET_OS" = "windows" ]; then
SKIP_BIN_DIFF="true"
SKIP_FULLDUMP_DIFF="true"
ACCEPTED_JARZIP_CONTENTS="
/modules_libs/java.security.jgss/w2k_lsa_auth.pdb
/modules_libs/java.security.jgss/w2k_lsa_auth.map
/modules_libs/java.security.jgss/w2k_lsa_auth.dll.pdb
/modules_libs/java.security.jgss/w2k_lsa_auth.dll.map
/modules_libs/java.security.jgss/w2k_lsa_auth.dll
"
elif [ "$OPENJDK_TARGET_OS" = "macosx" ]; then

View File

@@ -143,6 +143,8 @@ ifeq ($(call isTargetOs, linux), true)
# stripping during the test libraries' build.
BUILD_JDK_JTREG_LIBRARIES_CFLAGS_libFib := -g
BUILD_JDK_JTREG_LIBRARIES_STRIP_SYMBOLS_libFib := false
# nio tests' libCreationTimeHelper native needs -ldl linker flag
BUILD_JDK_JTREG_LIBRARIES_LIBS_libCreationTimeHelper := -ldl
endif
ifeq ($(ASAN_ENABLED), true)

View File

@@ -1,74 +0,0 @@
#
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
#
# Redistribution and use in source and binary forms, with or without
# modification, are permitted provided that the following conditions
# are met:
#
# - Redistributions of source code must retain the above copyright
# notice, this list of conditions and the following disclaimer.
#
# - Redistributions in binary form must reproduce the above copyright
# notice, this list of conditions and the following disclaimer in the
# documentation and/or other materials provided with the distribution.
#
# - Neither the name of Oracle nor the names of its
# contributors may be used to endorse or promote products derived
# from this software without specific prior written permission.
#
# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
# IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
# PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
# LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
# NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#
SOURCEPATH=src
CLASSES=build
DIST=dist
RESOURCES=resources
RENDERPERF_CLASSES = $(CLASSES)/renderperf/RenderPerfTest.class
RENDERPERF_SOURCES = $(SOURCEPATH)/renderperf/RenderPerfTest.java
RENDERPERF_RESOURCES = $(CLASSES)/renderperf/images/duke.png
all: mkdirs $(DIST)/RenderPerfTest.jar
run: mkdirs $(DIST)/RenderPerfTest.jar
java -jar $(DIST)/RenderPerfTest.jar
$(DIST)/RenderPerfTest.jar: \
$(RENDERPERF_CLASSES) $(RENDERPERF_RESOURCES) \
$(CLASSES)/renderperf.manifest
jar cvmf $(CLASSES)/renderperf.manifest $(DIST)/RenderPerfTest.jar -C $(CLASSES) .
$(CLASSES)/renderperf/images/%: $(RESOURCES)/images/%
cp -r $< $@
$(CLASSES)/renderperf.manifest:
echo "Main-Class: renderperf.RenderPerfTest" > $@
$(DIST):
mkdir $(DIST)
$(CLASSES):
mkdir $(CLASSES)
mkdir -p $(CLASSES)/renderperf/images
mkdirs: $(DIST) $(CLASSES)
$(RENDERPERF_CLASSES): $(RENDERPERF_SOURCES)
javac -g:none -d $(CLASSES) -sourcepath $(SOURCEPATH) $<
clean:
rm -rf $(CLASSES)
rm -rf $(DIST)

View File

@@ -1,34 +0,0 @@
-----------------------------------------------------------------------
Introduction
-----------------------------------------------------------------------
RenderPerfTest is a set of on-screen rendering microbenchmarks to
analyze the performance of Java2D graphical primitives rendering
-----------------------------------------------------------------------
How To Compile
-----------------------------------------------------------------------
#> cd RenderPerfTest
The benchmark can be compiled by using either ant:
#> ant
or gnumake (assuming there's 'javac' in the path):
#> gnumake
The jar files will be generated into RenderPerfTest/dist directory.
-----------------------------------------------------------------------
How To Run RenderPerfTest
-----------------------------------------------------------------------
Run all tests
#> ant run
or
#> java -jar dist/RenderPerfTest.jar
Run particular test cases
#> java -jar dist/RenderPerfTest.jar testWhiteTextBubblesGray ...

View File

@@ -1,94 +0,0 @@
<!--
Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
- Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.
- Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
- Neither the name of Oracle nor the names of its
contributors may be used to endorse or promote products derived
from this software without specific prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-->
<project name="RenderPerfTest" default="dist" basedir=".">
<description>
simple example build file
</description>
<!-- set global properties for this build -->
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="dist" location="dist"/>
<property name="resources" location="resources"/>
<target name="init">
<!-- Create the time stamp -->
<tstamp/>
<!-- Create the build directory structure used by compile -->
<mkdir dir="${build}"/>
</target>
<target name="compile" depends="init"
description="compile the source " >
<!-- Compile the java code from ${src} into ${build} -->
<javac includeantruntime="false" debug="off" srcdir="${src}" destdir="${build}"/>
</target>
<target name="run" depends="dist"
description="run RenderPerfTest" >
<java jar="${dist}/RenderPerfTest.jar"
fork="true"
>
</java>
</target>
<target name="resources" depends="init"
description="copy resources into build dir" >
<!-- Copy the resource files from ${resources} into ${build}/ -->
<mkdir dir="${dist}"/>
<mkdir dir="${dist}/renderperf"/>
<mkdir dir="${build}/renderperf/images"/>
<copy todir="${build}/renderperf/images">
<fileset dir="resources/renderperf/images" />
</copy>
</target>
<target name="dist" depends="compile, resources"
description="generate the distribution" >
<!-- Create the distribution directory -->
<mkdir dir="${dist}"/>
<!-- Put everything in ${build} into the J2DBench.jar file -->
<jar jarfile="${dist}/RenderPerfTest.jar" basedir="${build}">
<manifest>
<attribute name="Built-By" value="${user.name}"/>
<attribute name="Main-Class" value="renderperf.RenderPerfTest"/>
</manifest>
</jar>
</target>
<target name="clean"
description="clean up" >
<!-- Delete the ${build} and ${dist} directory trees -->
<delete dir="${build}"/>
<delete dir="${dist}"/>
</target>
</project>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

View File

@@ -1,739 +0,0 @@
/*
* Copyright (c) 2019, 2020 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
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation. Oracle designates this
* particular file as subject to the "Classpath" exception as provided
* by Oracle in the LICENSE file that accompanied this code.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
package renderperf;
import javax.imageio.ImageIO;
import javax.swing.*;
import java.awt.*;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.geom.AffineTransform;
import java.awt.geom.Point2D;
import java.awt.geom.QuadCurve2D;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.util.HashSet;
import java.util.Objects;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.atomic.AtomicBoolean;
public class RenderPerfTest {
private static HashSet<String> ignoredTests = new HashSet<>();
private final static int N = 1000;
private final static float WIDTH = 800;
private final static float HEIGHT = 800;
private final static float R = 25;
private final static int BW = 50;
private final static int BH = 50;
private final static int COUNT = 300;
private final static int DELAY = 10;
private final static int RESOLUTION = 5;
private final static int COLOR_TOLERANCE = 10;
private final static int MAX_MEASURE_TIME = 5000;
interface Configurable {
void configure(Graphics2D g2d);
}
interface Renderable {
void setup(Graphics2D g2d);
void render(Graphics2D g2d);
void update();
}
static class Particles {
private float[] bx;
private float[] by;
private float[] vx;
private float[] vy;
private float r;
private int n;
private float x0;
private float y0;
private float width;
private float height;
Particles(int n, float r, float x0, float y0, float width, float height) {
bx = new float[n];
by = new float[n];
vx = new float[n];
vy = new float[n];
this.n = n;
this.r = r;
this.x0 = x0;
this.y0 = y0;
this.width = width;
this.height = height;
for (int i = 0; i < n; i++) {
bx[i] = (float) (x0 + r + 0.1 + Math.random() * (width - 2 * r - 0.2 - x0));
by[i] = (float) (y0 + r + 0.1 + Math.random() * (height - 2 * r - 0.2 - y0));
vx[i] = 0.1f * (float) (Math.random() * 2 * r - r);
vy[i] = 0.1f * (float) (Math.random() * 2 * r - r);
}
}
void render(Graphics2D g2d, ParticleRenderer renderer) {
for (int i = 0; i < n; i++) {
renderer.render(g2d, i, bx, by, vx, vy);
}
}
void update() {
for (int i = 0; i < n; i++) {
bx[i] += vx[i];
if (bx[i] + r > width || bx[i] - r < x0) vx[i] = -vx[i];
by[i] += vy[i];
if (by[i] + r > height || by[i] - r < y0) vy[i] = -vy[i];
}
}
}
ParticleRenderable createPR(ParticleRenderer renderer) {
return new ParticleRenderable(renderer);
}
static class ParticleRenderable implements Renderable {
ParticleRenderer renderer;
Configurable configure;
ParticleRenderable(ParticleRenderer renderer, Configurable configure) {
this.renderer = renderer;
this.configure = configure;
}
ParticleRenderable(ParticleRenderer renderer) {
this(renderer, null);
}
@Override
public void setup(Graphics2D g2d) {
if (configure != null) configure.configure(g2d);
}
@Override
public void render(Graphics2D g2d) {
balls.render(g2d, renderer);
}
@Override
public void update() {
balls.update();
}
public ParticleRenderable configure(Configurable configure) {
this.configure = configure;
return this;
}
}
interface ParticleRenderer {
void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy);
}
static class FlatParticleRenderer implements ParticleRenderer {
Color[] colors;
float r;
FlatParticleRenderer(int n, float r) {
colors = new Color[n];
this.r = r;
for (int i = 0; i < n; i++) {
colors[i] = new Color((float) Math.random(),
(float) Math.random(), (float) Math.random());
}
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
g2d.setColor(colors[id % colors.length]);
g2d.fillOval((int)(x[id] - r), (int)(y[id] - r), (int)(2*r), (int)(2*r));
}
}
static class WhiteTextParticleRenderer implements ParticleRenderer {
float r;
WhiteTextParticleRenderer(float r) {
this.r = r;
}
void setPaint(Graphics2D g2d, int id) {
g2d.setColor(Color.WHITE);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
setPaint(g2d, id);
g2d.drawString("The quick brown fox jumps over the lazy dog",
(int)(x[id] - r), (int)(y[id] - r));
g2d.drawString("The quick brown fox jumps over the lazy dog",
(int)(x[id] - r), (int)y[id]);
g2d.drawString("The quick brown fox jumps over the lazy dog",
(int)(x[id] - r), (int)(y[id] + r));
}
}
static class TextParticleRenderer extends WhiteTextParticleRenderer {
Color[] colors;
float r;
TextParticleRenderer(int n, float r) {
super(r);
colors = new Color[n];
this.r = r;
for (int i = 0; i < n; i++) {
colors[i] = new Color((float) Math.random(),
(float) Math.random(), (float) Math.random());
}
}
void setPaint(Graphics2D g2d, int id) {
g2d.setColor(colors[id % colors.length]);
}
}
static class LargeTextParticleRenderer extends TextParticleRenderer {
LargeTextParticleRenderer(int n, float r) {
super(n, r);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
setPaint(g2d, id);
Font font = new Font("LucidaGrande", Font.PLAIN, 32);
g2d.setFont(font);
g2d.drawString("The quick brown fox jumps over the lazy dog",
(int)(x[id] - r), (int)(y[id] - r));
g2d.drawString("The quick brown fox jumps over the lazy dog",
(int)(x[id] - r), (int)y[id]);
g2d.drawString("The quick brown fox jumps over the lazy dog",
(int)(x[id] - r), (int)(y[id] + r));
}
}
static class FlatOvalRotParticleRenderer extends FlatParticleRenderer {
FlatOvalRotParticleRenderer(int n, float r) {
super(n, r);
}
void setPaint(Graphics2D g2d, int id) {
g2d.setColor(colors[id % colors.length]);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
setPaint(g2d, id);
if (Math.abs(vx[id] + vy[id]) > 0.001) {
AffineTransform t = (AffineTransform) g2d.getTransform().clone();
double l = vx[id] / Math.sqrt(vx[id] * vx[id] + vy[id] * vy[id]);
if (vy[id] < 0) {
l = -l;
}
g2d.translate(x[id], y[id]);
g2d.rotate(Math.acos(l));
g2d.fillOval(-(int)r, (int)(-0.5*r), (int) (2 * r), (int)r);
g2d.setTransform(t);
} else {
g2d.fillOval((int)(x[id] - r), (int)(y[id] - 0.5*r),
(int) (2 * r), (int) r);
}
}
}
static class LinGradOvalRotParticleRenderer extends FlatOvalRotParticleRenderer {
LinGradOvalRotParticleRenderer(int n, float r) {
super(n, r);
}
@Override
void setPaint(Graphics2D g2d, int id) {
Point2D start = new Point2D.Double(- r, - 0.5*r);
Point2D end = new Point2D.Double( 2 * r, r);
float[] dist = {0.0f, 1.0f};
Color[] cls = {colors[id %colors.length], colors[(colors.length - id) %colors.length]};
LinearGradientPaint p =
new LinearGradientPaint(start, end, dist, cls);
g2d.setPaint(p);
}
}
static class FlatBoxParticleRenderer extends FlatParticleRenderer {
FlatBoxParticleRenderer(int n, float r) {
super(n, r);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
g2d.setColor(colors[id % colors.length]);
g2d.fillRect((int)(x[id] - r), (int)(y[id] - r), (int)(2*r), (int)(2*r));
}
}
static class ImgParticleRenderer extends FlatParticleRenderer {
BufferedImage dukeImg;
ImgParticleRenderer(int n, float r) {
super(n, r);
try {
dukeImg = ImageIO.read(
Objects.requireNonNull(
RenderPerfTest.class.getClassLoader().getResourceAsStream(
"renderperf/images/duke.png")));
} catch (IOException e) {
throw new RuntimeException(e);
}
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
g2d.setColor(colors[id % colors.length]);
g2d.drawImage(dukeImg, (int)(x[id] - r), (int)(y[id] - r), (int)(2*r), (int)(2*r), null);
}
}
static class FlatBoxRotParticleRenderer extends FlatParticleRenderer {
FlatBoxRotParticleRenderer(int n, float r) {
super(n, r);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
g2d.setColor(colors[id % colors.length]);
if (Math.abs(vx[id] + vy[id]) > 0.001) {
AffineTransform t = (AffineTransform) g2d.getTransform().clone();
double l = vx[id] / Math.sqrt(vx[id] * vx[id] + vy[id] * vy[id]);
if (vy[id] < 0) {
l = -l;
}
g2d.translate(x[id], y[id]);
g2d.rotate(Math.acos(l));
g2d.fillRect(-(int)r, -(int)r, (int) (2 * r), (int) (2 * r));
g2d.setTransform(t);
} else {
g2d.fillRect((int)(x[id] - r), (int)(y[id] - r),
(int) (2 * r), (int) (2 * r));
}
}
}
static class WiredParticleRenderer extends FlatParticleRenderer {
WiredParticleRenderer(int n, float r) {
super(n, r);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
g2d.setColor(colors[id % colors.length]);
g2d.drawOval((int)(x[id] - r), (int)(y[id] - r), (int)(2*r), (int)(2*r));
}
}
static class WiredBoxParticleRenderer extends FlatParticleRenderer {
WiredBoxParticleRenderer(int n, float r) {
super(n, r);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
g2d.setColor(colors[id % colors.length]);
g2d.drawRect((int)(x[id] - r), (int)(y[id] - r), (int)(2*r), (int)(2*r));
}
}
static class SegParticleRenderer extends FlatParticleRenderer {
SegParticleRenderer(int n, float r) {
super(n, r);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
double v = Math.sqrt(vx[id]*vx[id]+vy[id]*vy[id]);
float nvx = (float) (vx[id]/v);
float nvy = (float) (vy[id]/v);
g2d.setColor(colors[id % colors.length]);
g2d.drawLine((int)(x[id] - r*nvx), (int)(y[id] - r*nvy),
(int)(x[id] + 2*r*nvx), (int)(y[id] + 2*r*nvy));
}
}
static class WiredQuadParticleRenderer extends FlatParticleRenderer {
WiredQuadParticleRenderer(int n, float r) {
super(n, r);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
if (id > 2 && (id % 3) == 0) {
g2d.setColor(colors[id % colors.length]);
g2d.draw(new QuadCurve2D.Float(x[id-3], y[id-3], x[id-2], y[id-2], x[id-1], y[id-1]));
}
}
}
static class FlatQuadParticleRenderer extends FlatParticleRenderer {
FlatQuadParticleRenderer(int n, float r) {
super(n, r);
}
@Override
public void render(Graphics2D g2d, int id, float[] x, float[] y, float[] vx, float[] vy) {
if (id > 2 && (id % 3) == 0) {
g2d.setColor(colors[id % colors.length]);
g2d.fill(new QuadCurve2D.Float(x[id-3], y[id-3], x[id-2], y[id-2], x[id-1], y[id-1]));
}
}
}
static class PerfMeter {
private String name;
private int frame = 0;
private JPanel panel;
private long time;
private double execTime = 0;
private Color expColor = Color.RED;
AtomicBoolean waiting = new AtomicBoolean(false);
private double fps;
PerfMeter(String name) {
this.name = name;
}
PerfMeter exec(final Renderable renderable) throws Exception {
final CountDownLatch latch = new CountDownLatch(COUNT);
final CountDownLatch latchFrame = new CountDownLatch(1);
final long endTime = System.currentTimeMillis() + MAX_MEASURE_TIME;
final JFrame f = new JFrame();
f.addWindowListener(new WindowAdapter() {
@Override
public void windowClosed(WindowEvent e) {
latchFrame.countDown();
}
});
SwingUtilities.invokeAndWait(new Runnable() {
@Override
public void run() {
panel = new JPanel()
{
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
time = System.nanoTime();
Graphics2D g2d = (Graphics2D) g.create();
renderable.setup(g2d);
renderable.render(g2d);
g2d.setColor(expColor);
g.fillRect(0, 0, BW, BH);
}
};
panel.setPreferredSize(new Dimension((int)(WIDTH + BW), (int)(HEIGHT + BH)));
panel.setBackground(Color.BLACK);
f.add(panel);
f.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
f.pack();
f.setVisible(true);
}
});
Robot robot = new Robot();
Timer timer = new Timer(DELAY, e -> {
if (waiting.compareAndSet(false, true)) {
Color c = robot.getPixelColor(
panel.getTopLevelAncestor().getX() + panel.getTopLevelAncestor().getInsets().left + BW / 2,
panel.getTopLevelAncestor().getY() + panel.getTopLevelAncestor().getInsets().top + BW / 2);
if (isAlmostEqual(c, Color.BLUE)) {
expColor = Color.RED;
} else {
expColor = Color.BLUE;
}
renderable.update();
panel.getParent().repaint();
} else {
while (!isAlmostEqual(
robot.getPixelColor(
panel.getTopLevelAncestor().getX() + panel.getTopLevelAncestor().getInsets().left + BW/2,
panel.getTopLevelAncestor().getY() + panel.getTopLevelAncestor().getInsets().top + BH/2),
expColor))
{
try {
Thread.sleep(RESOLUTION);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
time = System.nanoTime() - time;
execTime += time;
frame++;
waiting.set(false);
}
if (System.currentTimeMillis() < endTime) {
latch.countDown();
} else {
while(latch.getCount() > 0) latch.countDown();
}
});
timer.start();
latch.await();
SwingUtilities.invokeAndWait(() -> {
timer.stop();
f.setVisible(false);
f.dispose();
});
latchFrame.await();
if (execTime != 0 && frame != 0) {
fps = 1e9 / (execTime / frame);
} else {
fps = 0;
}
return this;
}
private void report() {
System.err.println(name + " : " + String.format("%.2f FPS", fps));
}
private boolean isAlmostEqual(Color c1, Color c2) {
return Math.abs(c1.getRed() - c2.getRed()) < COLOR_TOLERANCE ||
Math.abs(c1.getGreen() - c2.getGreen()) < COLOR_TOLERANCE ||
Math.abs(c1.getBlue() - c2.getBlue()) < COLOR_TOLERANCE;
}
}
private static final Particles balls = new Particles(N, R, BW, BH, WIDTH, HEIGHT);
private static final ParticleRenderer flatRenderer = new FlatParticleRenderer(N, R);
private static final ParticleRenderer flatOvalRotRenderer = new FlatOvalRotParticleRenderer(N, R);
private static final ParticleRenderer flatBoxRenderer = new FlatBoxParticleRenderer(N, R);
private static final ParticleRenderer flatBoxRotRenderer = new FlatBoxRotParticleRenderer(N, R);
private static final ParticleRenderer linGradOvalRotRenderer = new LinGradOvalRotParticleRenderer(N, R);
private static final ParticleRenderer wiredRenderer = new WiredParticleRenderer(N, R);
private static final ParticleRenderer wiredBoxRenderer = new WiredBoxParticleRenderer(N, R);
private static final ParticleRenderer segRenderer = new SegParticleRenderer(N, R);
private static final ParticleRenderer flatQuadRenderer = new FlatQuadParticleRenderer(N, R);
private static final ParticleRenderer wiredQuadRenderer = new WiredQuadParticleRenderer(N, R);
private static final ParticleRenderer imgRenderer = new ImgParticleRenderer(N, R);
private static final ParticleRenderer textRenderer = new TextParticleRenderer(N, R);
private static final ParticleRenderer largeTextRenderer = new LargeTextParticleRenderer(N, R);
private static final ParticleRenderer whiteTextRenderer = new WhiteTextParticleRenderer(R);
private static final Configurable AA = (Graphics2D g2d) ->
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
private static final Configurable TextLCD = (Graphics2D g2d) ->
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_LCD_HRGB);
private static final Configurable TextAA = (Graphics2D g2d) ->
g2d.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING,
RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
public void testFlatBubbles() throws Exception {
(new PerfMeter("FlatOval")).exec(createPR(flatRenderer)).report();
}
public void testFlatBubblesAA() throws Exception {
(new PerfMeter("FlatOvalAA")).exec(createPR(flatRenderer).configure(AA)).report();
}
public void testFlatBoxBubbles() throws Exception {
(new PerfMeter("FlatBox")).exec(createPR(flatBoxRenderer)).report();
}
public void testFlatBoxBubblesAA() throws Exception {
(new PerfMeter("FlatBoxAA")).exec(createPR(flatBoxRenderer).configure(AA)).report();
}
public void testImgBubbles() throws Exception {
(new PerfMeter("Image")).exec(createPR(imgRenderer)).report();
}
public void testImgBubblesAA() throws Exception {
(new PerfMeter("ImageAA")).exec(createPR(imgRenderer).configure(AA)).report();
}
public void testFlatBoxRotBubbles() throws Exception {
(new PerfMeter("RotatedBox")).exec(createPR(flatBoxRotRenderer)).report();
}
public void testFlatBoxRotBubblesAA() throws Exception {
(new PerfMeter("RotatedBoxAA")).exec(createPR(flatBoxRotRenderer).configure(AA)).report();
}
public void testFlatOvalRotBubbles() throws Exception {
(new PerfMeter("RotatedOval")).exec(createPR(flatOvalRotRenderer)).report();
}
public void testFlatOvalRotBubblesAA() throws Exception {
(new PerfMeter("RotatedOvalAA")).exec(createPR(flatOvalRotRenderer).configure(AA)).report();
}
public void testLinGradOvalRotBubbles() throws Exception {
(new PerfMeter("LinGradRotatedOval")).exec(createPR(linGradOvalRotRenderer)).report();
}
public void testLinGradOvalRotBubblesAA() throws Exception {
(new PerfMeter("LinGradRotatedOvalAA")).exec(createPR(linGradOvalRotRenderer).configure(AA)).report();
}
public void testWiredBubbles() throws Exception {
(new PerfMeter("WiredBubbles")).exec(createPR(wiredRenderer)).report();
}
public void testWiredBubblesAA() throws Exception {
(new PerfMeter("WiredBubblesAA")).exec(createPR(wiredRenderer).configure(AA)).report();
}
public void testWiredBoxBubbles() throws Exception {
(new PerfMeter("WiredBox")).exec(createPR(wiredBoxRenderer)).report();
}
public void testWiredBoxBubblesAA() throws Exception {
(new PerfMeter("WiredBoxAA")).exec(createPR(wiredBoxRenderer).configure(AA)).report();
}
public void testLines() throws Exception {
(new PerfMeter("Lines")).exec(createPR(segRenderer)).report();
}
public void testLinesAA() throws Exception {
(new PerfMeter("LinesAA")).exec(createPR(segRenderer).configure(AA)).report();
}
public void testFlatQuad() throws Exception {
(new PerfMeter("FlatQuad")).exec(createPR(flatQuadRenderer)).report();
}
public void testFlatQuadAA() throws Exception {
(new PerfMeter("FlatQuadAA")).exec(createPR(flatQuadRenderer).configure(AA)).report();
}
public void testWiredQuad() throws Exception {
(new PerfMeter("WiredQuad")).exec(createPR(wiredQuadRenderer)).report();
}
public void testWiredQuadAA() throws Exception {
(new PerfMeter("WiredQuadAA")).exec(createPR(wiredQuadRenderer).configure(AA)).report();
}
public void testTextBubblesNoAA() throws Exception {
(new PerfMeter("TextNoAA")).exec(createPR(textRenderer)).report();
}
public void testTextBubblesLCD() throws Exception {
(new PerfMeter("TextLCD")).exec(createPR(textRenderer).configure(TextLCD)).report();
}
public void testTextBubblesGray() throws Exception {
(new PerfMeter("TextGray")).exec(createPR(textRenderer).configure(TextAA)).report();
}
public void testLargeTextBubblesNoAA() throws Exception {
(new PerfMeter("LargeTextNoAA")).exec(createPR(largeTextRenderer)).report();
}
public void testLargeTextBubblesLCD() throws Exception {
(new PerfMeter("LargeTextLCD")).exec(createPR(largeTextRenderer).configure(TextLCD)).report();
}
public void testLargeTextBubblesGray() throws Exception {
(new PerfMeter("LargeTextGray")).exec(createPR(largeTextRenderer).configure(TextAA)).report();
}
public void testWhiteTextBubblesNoAA() throws Exception {
(new PerfMeter("WhiteTextNoAA")).exec(createPR(whiteTextRenderer)).report();
}
public void testWhiteTextBubblesLCD() throws Exception {
(new PerfMeter("WhiteTextLCD")).exec(createPR(whiteTextRenderer).configure(TextLCD)).report();
}
public void testWhiteTextBubblesGray() throws Exception {
(new PerfMeter("WhiteTextGray")).exec(createPR(whiteTextRenderer).configure(TextAA)).report();
}
public static void main(String[] args)
throws InvocationTargetException, IllegalAccessException, NoSuchMethodException
{
RenderPerfTest test = new RenderPerfTest();
if (args.length > 0) {
for (String testCase : args) {
Method m = RenderPerfTest.class.getDeclaredMethod(testCase);
m.invoke(test);
}
} else {
Method[] methods = RenderPerfTest.class.getDeclaredMethods();
for (Method m : methods) {
if (m.getName().startsWith("test") && !ignoredTests.contains(m.getName())) {
m.invoke(test);
}
}
}
}
}

View File

@@ -3809,202 +3809,6 @@ encode %{
__ br(target_reg);
%}
enc_class aarch64_enc_fast_lock(iRegP object, iRegP box, iRegP tmp, iRegP tmp2) %{
C2_MacroAssembler _masm(&cbuf);
Register oop = as_Register($object$$reg);
Register box = as_Register($box$$reg);
Register disp_hdr = as_Register($tmp$$reg);
Register tmp = as_Register($tmp2$$reg);
Label cont;
Label object_has_monitor;
Label count, no_count;
assert_different_registers(oop, box, tmp, disp_hdr);
// Load markWord from object into displaced_header.
__ ldr(disp_hdr, Address(oop, oopDesc::mark_offset_in_bytes()));
if (DiagnoseSyncOnValueBasedClasses != 0) {
__ load_klass(tmp, oop);
__ ldrw(tmp, Address(tmp, Klass::access_flags_offset()));
__ tstw(tmp, JVM_ACC_IS_VALUE_BASED_CLASS);
__ br(Assembler::NE, cont);
}
// Check for existing monitor
__ tbnz(disp_hdr, exact_log2(markWord::monitor_value), object_has_monitor);
if (LockingMode == LM_MONITOR) {
__ tst(oop, oop); // Set NE to indicate 'failure' -> take slow-path. We know that oop != 0.
__ b(cont);
} else if (LockingMode == LM_LEGACY) {
// Set tmp to be (markWord of object | UNLOCK_VALUE).
__ orr(tmp, disp_hdr, markWord::unlocked_value);
// Initialize the box. (Must happen before we update the object mark!)
__ str(tmp, Address(box, BasicLock::displaced_header_offset_in_bytes()));
// Compare object markWord with an unlocked value (tmp) and if
// equal exchange the stack address of our box with object markWord.
// On failure disp_hdr contains the possibly locked markWord.
__ cmpxchg(oop, tmp, box, Assembler::xword, /*acquire*/ true,
/*release*/ true, /*weak*/ false, disp_hdr);
__ br(Assembler::EQ, cont);
assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
// If the compare-and-exchange succeeded, then we found an unlocked
// object, will have now locked it will continue at label cont
// Check if the owner is self by comparing the value in the
// markWord of object (disp_hdr) with the stack pointer.
__ mov(rscratch1, sp);
__ sub(disp_hdr, disp_hdr, rscratch1);
__ mov(tmp, (address) (~(os::vm_page_size()-1) | markWord::lock_mask_in_place));
// If condition is true we are cont and hence we can store 0 as the
// displaced header in the box, which indicates that it is a recursive lock.
__ ands(tmp/*==0?*/, disp_hdr, tmp); // Sets flags for result
__ str(tmp/*==0, perhaps*/, Address(box, BasicLock::displaced_header_offset_in_bytes()));
__ b(cont);
} else {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
__ fast_lock(oop, disp_hdr, tmp, rscratch1, no_count);
__ b(count);
}
// Handle existing monitor.
__ bind(object_has_monitor);
// The object's monitor m is unlocked iff m->owner == NULL,
// otherwise m->owner may contain a thread or a stack address.
//
// Try to CAS m->owner from NULL to current thread.
__ add(tmp, disp_hdr, (in_bytes(ObjectMonitor::owner_offset())-markWord::monitor_value));
__ cmpxchg(tmp, zr, rthread, Assembler::xword, /*acquire*/ true,
/*release*/ true, /*weak*/ false, rscratch1); // Sets flags for result
if (LockingMode != LM_LIGHTWEIGHT) {
// Store a non-null value into the box to avoid looking like a re-entrant
// lock. The fast-path monitor unlock code checks for
// markWord::monitor_value so use markWord::unused_mark which has the
// relevant bit set, and also matches ObjectSynchronizer::enter.
__ mov(tmp, (address)markWord::unused_mark().value());
__ str(tmp, Address(box, BasicLock::displaced_header_offset_in_bytes()));
}
__ br(Assembler::EQ, cont); // CAS success means locking succeeded
__ cmp(rscratch1, rthread);
__ br(Assembler::NE, cont); // Check for recursive locking
// Recursive lock case
__ increment(Address(disp_hdr, in_bytes(ObjectMonitor::recursions_offset()) - markWord::monitor_value), 1);
// flag == EQ still from the cmp above, checking if this is a reentrant lock
__ bind(cont);
// flag == EQ indicates success
// flag == NE indicates failure
__ br(Assembler::NE, no_count);
__ bind(count);
__ increment(Address(rthread, JavaThread::held_monitor_count_offset()));
__ bind(no_count);
%}
enc_class aarch64_enc_fast_unlock(iRegP object, iRegP box, iRegP tmp, iRegP tmp2) %{
C2_MacroAssembler _masm(&cbuf);
Register oop = as_Register($object$$reg);
Register box = as_Register($box$$reg);
Register disp_hdr = as_Register($tmp$$reg);
Register tmp = as_Register($tmp2$$reg);
Label cont;
Label object_has_monitor;
Label count, no_count;
assert_different_registers(oop, box, tmp, disp_hdr);
if (LockingMode == LM_LEGACY) {
// Find the lock address and load the displaced header from the stack.
__ ldr(disp_hdr, Address(box, BasicLock::displaced_header_offset_in_bytes()));
// If the displaced header is 0, we have a recursive unlock.
__ cmp(disp_hdr, zr);
__ br(Assembler::EQ, cont);
}
// Handle existing monitor.
__ ldr(tmp, Address(oop, oopDesc::mark_offset_in_bytes()));
__ tbnz(tmp, exact_log2(markWord::monitor_value), object_has_monitor);
if (LockingMode == LM_MONITOR) {
__ tst(oop, oop); // Set NE to indicate 'failure' -> take slow-path. We know that oop != 0.
__ b(cont);
} else if (LockingMode == LM_LEGACY) {
// Check if it is still a light weight lock, this is is true if we
// see the stack address of the basicLock in the markWord of the
// object.
__ cmpxchg(oop, box, disp_hdr, Assembler::xword, /*acquire*/ false,
/*release*/ true, /*weak*/ false, tmp);
__ b(cont);
} else {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
__ fast_unlock(oop, tmp, box, disp_hdr, no_count);
__ b(count);
}
assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
// Handle existing monitor.
__ bind(object_has_monitor);
STATIC_ASSERT(markWord::monitor_value <= INT_MAX);
__ add(tmp, tmp, -(int)markWord::monitor_value); // monitor
if (LockingMode == LM_LIGHTWEIGHT) {
// If the owner is anonymous, we need to fix it -- in an outline stub.
Register tmp2 = disp_hdr;
__ ldr(tmp2, Address(tmp, ObjectMonitor::owner_offset()));
// We cannot use tbnz here, the target might be too far away and cannot
// be encoded.
__ tst(tmp2, (uint64_t)ObjectMonitor::ANONYMOUS_OWNER);
C2HandleAnonOMOwnerStub* stub = new (Compile::current()->comp_arena()) C2HandleAnonOMOwnerStub(tmp, tmp2);
Compile::current()->output()->add_stub(stub);
__ br(Assembler::NE, stub->entry());
__ bind(stub->continuation());
}
__ ldr(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset()));
Label notRecursive;
__ cbz(disp_hdr, notRecursive);
// Recursive lock
__ sub(disp_hdr, disp_hdr, 1u);
__ str(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset()));
__ cmp(disp_hdr, disp_hdr); // Sets flags for result
__ b(cont);
__ bind(notRecursive);
__ ldr(rscratch1, Address(tmp, ObjectMonitor::EntryList_offset()));
__ ldr(disp_hdr, Address(tmp, ObjectMonitor::cxq_offset()));
__ orr(rscratch1, rscratch1, disp_hdr); // Will be 0 if both are 0.
__ cmp(rscratch1, zr); // Sets flags for result
__ cbnz(rscratch1, cont);
// need a release store here
__ lea(tmp, Address(tmp, ObjectMonitor::owner_offset()));
__ stlr(zr, tmp); // set unowned
__ bind(cont);
// flag == EQ indicates success
// flag == NE indicates failure
__ br(Assembler::NE, no_count);
__ bind(count);
__ decrement(Address(rthread, JavaThread::held_monitor_count_offset()));
__ bind(no_count);
%}
%}
//----------FRAME--------------------------------------------------------------
@@ -16609,17 +16413,19 @@ instruct branchLoopEnd(cmpOp cmp, rFlagsReg cr, label lbl)
// ============================================================================
// inlined locking and unlocking
instruct cmpFastLock(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRegPNoSp tmp2)
instruct cmpFastLock(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRegPNoSp tmp2, iRegPNoSp tmp3)
%{
match(Set cr (FastLock object box));
effect(TEMP tmp, TEMP tmp2);
effect(TEMP tmp, TEMP tmp2, TEMP tmp3);
// TODO
// identify correct cost
ins_cost(5 * INSN_COST);
format %{ "fastlock $object,$box\t! kills $tmp,$tmp2" %}
ins_encode(aarch64_enc_fast_lock(object, box, tmp, tmp2));
ins_encode %{
__ fast_lock($object$$Register, $box$$Register, $tmp$$Register, $tmp2$$Register, $tmp3$$Register);
%}
ins_pipe(pipe_serial);
%}
@@ -16632,7 +16438,9 @@ instruct cmpFastUnlock(rFlagsReg cr, iRegP object, iRegP box, iRegPNoSp tmp, iRe
ins_cost(5 * INSN_COST);
format %{ "fastunlock $object,$box\t! kills $tmp, $tmp2" %}
ins_encode(aarch64_enc_fast_unlock(object, box, tmp, tmp2));
ins_encode %{
__ fast_unlock($object$$Register, $box$$Register, $tmp$$Register, $tmp2$$Register);
%}
ins_pipe(pipe_serial);
%}

View File

@@ -434,7 +434,7 @@ int LIR_Assembler::emit_unwind_handler() {
if (LockingMode == LM_MONITOR) {
__ b(*stub->entry());
} else {
__ unlock_object(r5, r4, r0, *stub->entry());
__ unlock_object(r5, r4, r0, r6, *stub->entry());
}
__ bind(*stub->continuation());
}
@@ -2558,6 +2558,7 @@ void LIR_Assembler::emit_lock(LIR_OpLock* op) {
Register obj = op->obj_opr()->as_register(); // may not be an oop
Register hdr = op->hdr_opr()->as_register();
Register lock = op->lock_opr()->as_register();
Register temp = op->scratch_opr()->as_register();
if (LockingMode == LM_MONITOR) {
if (op->info() != nullptr) {
add_debug_info_for_null_check_here(op->info());
@@ -2567,14 +2568,14 @@ void LIR_Assembler::emit_lock(LIR_OpLock* op) {
} else if (op->code() == lir_lock) {
assert(BasicLock::displaced_header_offset_in_bytes() == 0, "lock_reg must point to the displaced header");
// add debug info for NullPointerException only if one is possible
int null_check_offset = __ lock_object(hdr, obj, lock, *op->stub()->entry());
int null_check_offset = __ lock_object(hdr, obj, lock, temp, *op->stub()->entry());
if (op->info() != nullptr) {
add_debug_info_for_null_check(null_check_offset, op->info());
}
// done
} else if (op->code() == lir_unlock) {
assert(BasicLock::displaced_header_offset_in_bytes() == 0, "lock_reg must point to the displaced header");
__ unlock_object(hdr, obj, lock, *op->stub()->entry());
__ unlock_object(hdr, obj, lock, temp, *op->stub()->entry());
} else {
Unimplemented();
}

View File

@@ -314,6 +314,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
// "lock" stores the address of the monitor stack slot, so this is not an oop
LIR_Opr lock = new_register(T_INT);
LIR_Opr scratch = new_register(T_INT);
CodeEmitInfo* info_for_exception = nullptr;
if (x->needs_null_check()) {
@@ -322,7 +323,7 @@ void LIRGenerator::do_MonitorEnter(MonitorEnter* x) {
// this CodeEmitInfo must not have the xhandlers because here the
// object is already locked (xhandlers expect object to be unlocked)
CodeEmitInfo* info = state_for(x, x->state(), true);
monitor_enter(obj.result(), lock, syncTempOpr(), LIR_OprFact::illegalOpr,
monitor_enter(obj.result(), lock, syncTempOpr(), scratch,
x->monitor_no(), info_for_exception, info);
}
@@ -335,8 +336,9 @@ void LIRGenerator::do_MonitorExit(MonitorExit* x) {
LIR_Opr lock = new_register(T_INT);
LIR_Opr obj_temp = new_register(T_INT);
LIR_Opr scratch = new_register(T_INT);
set_no_result(x);
monitor_exit(obj_temp, lock, syncTempOpr(), LIR_OprFact::illegalOpr, x->monitor_no());
monitor_exit(obj_temp, lock, syncTempOpr(), scratch, x->monitor_no());
}
void LIRGenerator::do_NegateOp(NegateOp* x) {

View File

@@ -60,10 +60,10 @@ void C1_MacroAssembler::float_cmp(bool is_float, int unordered_result,
}
}
int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr, Register temp, Label& slow_case) {
const int aligned_mask = BytesPerWord -1;
const int hdr_offset = oopDesc::mark_offset_in_bytes();
assert_different_registers(hdr, obj, disp_hdr);
assert_different_registers(hdr, obj, disp_hdr, temp, rscratch2);
int null_check_offset = -1;
verify_oop(obj);
@@ -83,7 +83,7 @@ int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr
// Load object header
ldr(hdr, Address(obj, hdr_offset));
if (LockingMode == LM_LIGHTWEIGHT) {
fast_lock(obj, hdr, rscratch1, rscratch2, slow_case);
lightweight_lock(obj, hdr, temp, rscratch2, slow_case);
} else if (LockingMode == LM_LEGACY) {
Label done;
// and mark it as unlocked
@@ -125,10 +125,10 @@ int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr
}
void C1_MacroAssembler::unlock_object(Register hdr, Register obj, Register disp_hdr, Label& slow_case) {
void C1_MacroAssembler::unlock_object(Register hdr, Register obj, Register disp_hdr, Register temp, Label& slow_case) {
const int aligned_mask = BytesPerWord -1;
const int hdr_offset = oopDesc::mark_offset_in_bytes();
assert(hdr != obj && hdr != disp_hdr && obj != disp_hdr, "registers must be different");
assert_different_registers(hdr, obj, disp_hdr, temp, rscratch2);
Label done;
if (LockingMode != LM_LIGHTWEIGHT) {
@@ -149,7 +149,7 @@ void C1_MacroAssembler::unlock_object(Register hdr, Register obj, Register disp_
// be encoded.
tst(hdr, markWord::monitor_value);
br(Assembler::NE, slow_case);
fast_unlock(obj, hdr, rscratch1, rscratch2, slow_case);
lightweight_unlock(obj, hdr, temp, rscratch2, slow_case);
} else if (LockingMode == LM_LEGACY) {
// test if object header is pointing to the displaced header, and if so, restore
// the displaced header in the object - if the object header is not pointing to

View File

@@ -58,14 +58,16 @@ using MacroAssembler::null_check;
// hdr : must be r0, contents destroyed
// obj : must point to the object to lock, contents preserved
// disp_hdr: must point to the displaced header location, contents preserved
// temp : temporary register, must not be rscratch1 or rscratch2
// returns code offset at which to add null check debug information
int lock_object (Register swap, Register obj, Register disp_hdr, Label& slow_case);
int lock_object (Register swap, Register obj, Register disp_hdr, Register temp, Label& slow_case);
// unlocking
// hdr : contents destroyed
// obj : must point to the object to lock, contents preserved
// disp_hdr: must be r0 & must point to the displaced header location, contents destroyed
void unlock_object(Register swap, Register obj, Register lock, Label& slow_case);
// temp : temporary register, must not be rscratch1 or rscratch2
void unlock_object(Register swap, Register obj, Register lock, Register temp, Label& slow_case);
void initialize_object(
Register obj, // result: pointer to object after successful allocation

View File

@@ -45,6 +45,202 @@
typedef void (MacroAssembler::* chr_insn)(Register Rt, const Address &adr);
void C2_MacroAssembler::fast_lock(Register objectReg, Register boxReg, Register tmpReg,
Register tmp2Reg, Register tmp3Reg) {
Register oop = objectReg;
Register box = boxReg;
Register disp_hdr = tmpReg;
Register tmp = tmp2Reg;
Label cont;
Label object_has_monitor;
Label count, no_count;
assert_different_registers(oop, box, tmp, disp_hdr);
// Load markWord from object into displaced_header.
ldr(disp_hdr, Address(oop, oopDesc::mark_offset_in_bytes()));
if (DiagnoseSyncOnValueBasedClasses != 0) {
load_klass(tmp, oop);
ldrw(tmp, Address(tmp, Klass::access_flags_offset()));
tstw(tmp, JVM_ACC_IS_VALUE_BASED_CLASS);
br(Assembler::NE, cont);
}
// Check for existing monitor
tbnz(disp_hdr, exact_log2(markWord::monitor_value), object_has_monitor);
if (LockingMode == LM_MONITOR) {
tst(oop, oop); // Set NE to indicate 'failure' -> take slow-path. We know that oop != 0.
b(cont);
} else if (LockingMode == LM_LEGACY) {
// Set tmp to be (markWord of object | UNLOCK_VALUE).
orr(tmp, disp_hdr, markWord::unlocked_value);
// Initialize the box. (Must happen before we update the object mark!)
str(tmp, Address(box, BasicLock::displaced_header_offset_in_bytes()));
// Compare object markWord with an unlocked value (tmp) and if
// equal exchange the stack address of our box with object markWord.
// On failure disp_hdr contains the possibly locked markWord.
cmpxchg(oop, tmp, box, Assembler::xword, /*acquire*/ true,
/*release*/ true, /*weak*/ false, disp_hdr);
br(Assembler::EQ, cont);
assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
// If the compare-and-exchange succeeded, then we found an unlocked
// object, will have now locked it will continue at label cont
// Check if the owner is self by comparing the value in the
// markWord of object (disp_hdr) with the stack pointer.
mov(rscratch1, sp);
sub(disp_hdr, disp_hdr, rscratch1);
mov(tmp, (address) (~(os::vm_page_size()-1) | markWord::lock_mask_in_place));
// If condition is true we are cont and hence we can store 0 as the
// displaced header in the box, which indicates that it is a recursive lock.
ands(tmp/*==0?*/, disp_hdr, tmp); // Sets flags for result
str(tmp/*==0, perhaps*/, Address(box, BasicLock::displaced_header_offset_in_bytes()));
b(cont);
} else {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
lightweight_lock(oop, disp_hdr, tmp, tmp3Reg, no_count);
b(count);
}
// Handle existing monitor.
bind(object_has_monitor);
// The object's monitor m is unlocked iff m->owner == NULL,
// otherwise m->owner may contain a thread or a stack address.
//
// Try to CAS m->owner from NULL to current thread.
add(tmp, disp_hdr, (in_bytes(ObjectMonitor::owner_offset())-markWord::monitor_value));
cmpxchg(tmp, zr, rthread, Assembler::xword, /*acquire*/ true,
/*release*/ true, /*weak*/ false, rscratch1); // Sets flags for result
if (LockingMode != LM_LIGHTWEIGHT) {
// Store a non-null value into the box to avoid looking like a re-entrant
// lock. The fast-path monitor unlock code checks for
// markWord::monitor_value so use markWord::unused_mark which has the
// relevant bit set, and also matches ObjectSynchronizer::enter.
mov(tmp, (address)markWord::unused_mark().value());
str(tmp, Address(box, BasicLock::displaced_header_offset_in_bytes()));
}
br(Assembler::EQ, cont); // CAS success means locking succeeded
cmp(rscratch1, rthread);
br(Assembler::NE, cont); // Check for recursive locking
// Recursive lock case
increment(Address(disp_hdr, in_bytes(ObjectMonitor::recursions_offset()) - markWord::monitor_value), 1);
// flag == EQ still from the cmp above, checking if this is a reentrant lock
bind(cont);
// flag == EQ indicates success
// flag == NE indicates failure
br(Assembler::NE, no_count);
bind(count);
increment(Address(rthread, JavaThread::held_monitor_count_offset()));
bind(no_count);
}
void C2_MacroAssembler::fast_unlock(Register objectReg, Register boxReg, Register tmpReg,
Register tmp2Reg) {
Register oop = objectReg;
Register box = boxReg;
Register disp_hdr = tmpReg;
Register tmp = tmp2Reg;
Label cont;
Label object_has_monitor;
Label count, no_count;
assert_different_registers(oop, box, tmp, disp_hdr);
if (LockingMode == LM_LEGACY) {
// Find the lock address and load the displaced header from the stack.
ldr(disp_hdr, Address(box, BasicLock::displaced_header_offset_in_bytes()));
// If the displaced header is 0, we have a recursive unlock.
cmp(disp_hdr, zr);
br(Assembler::EQ, cont);
}
// Handle existing monitor.
ldr(tmp, Address(oop, oopDesc::mark_offset_in_bytes()));
tbnz(tmp, exact_log2(markWord::monitor_value), object_has_monitor);
if (LockingMode == LM_MONITOR) {
tst(oop, oop); // Set NE to indicate 'failure' -> take slow-path. We know that oop != 0.
b(cont);
} else if (LockingMode == LM_LEGACY) {
// Check if it is still a light weight lock, this is is true if we
// see the stack address of the basicLock in the markWord of the
// object.
cmpxchg(oop, box, disp_hdr, Assembler::xword, /*acquire*/ false,
/*release*/ true, /*weak*/ false, tmp);
b(cont);
} else {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
lightweight_unlock(oop, tmp, box, disp_hdr, no_count);
b(count);
}
assert(oopDesc::mark_offset_in_bytes() == 0, "offset of _mark is not 0");
// Handle existing monitor.
bind(object_has_monitor);
STATIC_ASSERT(markWord::monitor_value <= INT_MAX);
add(tmp, tmp, -(int)markWord::monitor_value); // monitor
if (LockingMode == LM_LIGHTWEIGHT) {
// If the owner is anonymous, we need to fix it -- in an outline stub.
Register tmp2 = disp_hdr;
ldr(tmp2, Address(tmp, ObjectMonitor::owner_offset()));
// We cannot use tbnz here, the target might be too far away and cannot
// be encoded.
tst(tmp2, (uint64_t)ObjectMonitor::ANONYMOUS_OWNER);
C2HandleAnonOMOwnerStub* stub = new (Compile::current()->comp_arena()) C2HandleAnonOMOwnerStub(tmp, tmp2);
Compile::current()->output()->add_stub(stub);
br(Assembler::NE, stub->entry());
bind(stub->continuation());
}
ldr(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset()));
Label notRecursive;
cbz(disp_hdr, notRecursive);
// Recursive lock
sub(disp_hdr, disp_hdr, 1u);
str(disp_hdr, Address(tmp, ObjectMonitor::recursions_offset()));
cmp(disp_hdr, disp_hdr); // Sets flags for result
b(cont);
bind(notRecursive);
ldr(rscratch1, Address(tmp, ObjectMonitor::EntryList_offset()));
ldr(disp_hdr, Address(tmp, ObjectMonitor::cxq_offset()));
orr(rscratch1, rscratch1, disp_hdr); // Will be 0 if both are 0.
cmp(rscratch1, zr); // Sets flags for result
cbnz(rscratch1, cont);
// need a release store here
lea(tmp, Address(tmp, ObjectMonitor::owner_offset()));
stlr(zr, tmp); // set unowned
bind(cont);
// flag == EQ indicates success
// flag == NE indicates failure
br(Assembler::NE, no_count);
bind(count);
decrement(Address(rthread, JavaThread::held_monitor_count_offset()));
bind(no_count);
}
// Search for str1 in str2 and return index or -1
// Clobbers: rscratch1, rscratch2, rflags. May also clobber v0-v1, when icnt1==-1.
void C2_MacroAssembler::string_indexof(Register str2, Register str1,

View File

@@ -35,6 +35,11 @@
enum shift_kind kind = Assembler::LSL, unsigned shift = 0);
public:
// Code used by cmpFastLock and cmpFastUnlock mach instructions in .ad file.
// See full description in macroAssembler_aarch64.cpp.
void fast_lock(Register object, Register box, Register tmp, Register tmp2, Register tmp3);
void fast_unlock(Register object, Register box, Register tmp, Register tmp2);
void string_compare(Register str1, Register str2,
Register cnt1, Register cnt2, Register result,
Register tmp1, Register tmp2, FloatRegister vtmp1,

View File

@@ -508,7 +508,7 @@ bool frame::is_interpreted_frame_valid(JavaThread* thread) const {
// first the method
Method* m = *interpreter_frame_method_addr();
Method* m = safe_interpreter_frame_method();
// validate the method we'd find in this potential sender
if (!Method::is_valid_method(m)) return false;

View File

@@ -1290,6 +1290,9 @@ static bool aarch64_test_and_branch_reachable(int branch_offset, int target_offs
return test_and_branch_to_trampoline_delta < test_and_branch_delta_limit;
}
ZLoadBarrierStubC2Aarch64::ZLoadBarrierStubC2Aarch64(const MachNode* node, Address ref_addr, Register ref)
: ZLoadBarrierStubC2(node, ref_addr, ref), _test_and_branch_reachable_entry(), _offset(), _deferred_emit(false), _test_and_branch_reachable(false) {}
ZLoadBarrierStubC2Aarch64::ZLoadBarrierStubC2Aarch64(const MachNode* node, Address ref_addr, Register ref, int offset)
: ZLoadBarrierStubC2(node, ref_addr, ref), _test_and_branch_reachable_entry(), _offset(offset), _deferred_emit(false), _test_and_branch_reachable(false) {
PhaseOutput* const output = Compile::current()->output();
@@ -1319,6 +1322,12 @@ int ZLoadBarrierStubC2Aarch64::get_stub_size() {
return cb.insts_size();
}
ZLoadBarrierStubC2Aarch64* ZLoadBarrierStubC2Aarch64::create(const MachNode* node, Address ref_addr, Register ref) {
ZLoadBarrierStubC2Aarch64* const stub = new (Compile::current()->comp_arena()) ZLoadBarrierStubC2Aarch64(node, ref_addr, ref);
register_stub(stub);
return stub;
}
ZLoadBarrierStubC2Aarch64* ZLoadBarrierStubC2Aarch64::create(const MachNode* node, Address ref_addr, Register ref, int offset) {
ZLoadBarrierStubC2Aarch64* const stub = new (Compile::current()->comp_arena()) ZLoadBarrierStubC2Aarch64(node, ref_addr, ref, offset);
register_stub(stub);

View File

@@ -265,10 +265,12 @@ private:
bool _deferred_emit;
bool _test_and_branch_reachable;
ZLoadBarrierStubC2Aarch64(const MachNode* node, Address ref_addr, Register ref);
ZLoadBarrierStubC2Aarch64(const MachNode* node, Address ref_addr, Register ref, int offset);
int get_stub_size();
public:
static ZLoadBarrierStubC2Aarch64* create(const MachNode* node, Address ref_addr, Register ref);
static ZLoadBarrierStubC2Aarch64* create(const MachNode* node, Address ref_addr, Register ref, int offset);
virtual void emit_code(MacroAssembler& masm);

View File

@@ -48,7 +48,7 @@ static void z_keep_alive_load_barrier(MacroAssembler& _masm, const MachNode* nod
__ relocate(barrier_Relocation::spec(), ZBarrierRelocationFormatMarkBadBeforeMov);
__ movzw(tmp, barrier_Relocation::unpatched);
__ tst(ref, tmp);
ZLoadBarrierStubC2* const stub = ZLoadBarrierStubC2::create(node, ref_addr, ref);
ZLoadBarrierStubC2Aarch64* const stub = ZLoadBarrierStubC2Aarch64::create(node, ref_addr, ref);
__ br(Assembler::NE, *stub->entry());
z_uncolor(_masm, node, ref);
__ bind(*stub->continuation());

View File

@@ -622,7 +622,7 @@ void InterpreterMacroAssembler::remove_activation(
// Check that all monitors are unlocked
{
Label loop, exception, entry, restart;
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
const int entry_size = frame::interpreter_frame_monitor_size_in_bytes();
const Address monitor_block_top(
rfp, frame::interpreter_frame_monitor_block_top_offset * wordSize);
const Address monitor_block_bot(
@@ -692,6 +692,12 @@ void InterpreterMacroAssembler::remove_activation(
// testing if reserved zone needs to be re-enabled
Label no_reserved_zone_enabling;
// check if already enabled - if so no re-enabling needed
assert(sizeof(StackOverflow::StackGuardState) == 4, "unexpected size");
ldrw(rscratch1, Address(rthread, JavaThread::stack_guard_state_offset()));
cmpw(rscratch1, (u1)StackOverflow::stack_guard_enabled);
br(Assembler::EQ, no_reserved_zone_enabling);
// look for an overflow into the stack reserved zone, i.e.
// interpreter_frame_sender_sp <= JavaThread::reserved_stack_activation
ldr(rscratch1, Address(rthread, JavaThread::reserved_stack_activation_offset()));
@@ -725,7 +731,7 @@ void InterpreterMacroAssembler::remove_activation(
//
// Kills:
// r0
// c_rarg0, c_rarg1, c_rarg2, c_rarg3, .. (param regs)
// c_rarg0, c_rarg1, c_rarg2, c_rarg3, c_rarg4, .. (param regs)
// rscratch1, rscratch2 (scratch regs)
void InterpreterMacroAssembler::lock_object(Register lock_reg)
{
@@ -740,6 +746,8 @@ void InterpreterMacroAssembler::lock_object(Register lock_reg)
const Register swap_reg = r0;
const Register tmp = c_rarg2;
const Register obj_reg = c_rarg3; // Will contain the oop
const Register tmp2 = c_rarg4;
const Register tmp3 = c_rarg5;
const int obj_offset = in_bytes(BasicObjectLock::obj_offset());
const int lock_offset = in_bytes(BasicObjectLock::lock_offset());
@@ -760,7 +768,7 @@ void InterpreterMacroAssembler::lock_object(Register lock_reg)
if (LockingMode == LM_LIGHTWEIGHT) {
ldr(tmp, Address(obj_reg, oopDesc::mark_offset_in_bytes()));
fast_lock(obj_reg, tmp, rscratch1, rscratch2, slow_case);
lightweight_lock(obj_reg, tmp, tmp2, tmp3, slow_case);
b(count);
} else if (LockingMode == LM_LEGACY) {
// Load (object->mark() | 1) into swap_reg
@@ -858,6 +866,7 @@ void InterpreterMacroAssembler::unlock_object(Register lock_reg)
const Register swap_reg = r0;
const Register header_reg = c_rarg2; // Will contain the old oopMark
const Register obj_reg = c_rarg3; // Will contain the oop
const Register tmp_reg = c_rarg4; // Temporary used by lightweight_unlock
save_bcp(); // Save in case of exception
@@ -891,7 +900,7 @@ void InterpreterMacroAssembler::unlock_object(Register lock_reg)
ldr(header_reg, Address(obj_reg, oopDesc::mark_offset_in_bytes()));
tbnz(header_reg, exact_log2(markWord::monitor_value), slow_case);
fast_unlock(obj_reg, header_reg, swap_reg, rscratch1, slow_case);
lightweight_unlock(obj_reg, header_reg, swap_reg, tmp_reg, slow_case);
b(count);
bind(slow_case);
} else if (LockingMode == LM_LEGACY) {

View File

@@ -2737,6 +2737,10 @@ void MacroAssembler::cmpxchg(Register addr, Register expected,
mov(result, expected);
lse_cas(result, new_val, addr, size, acquire, release, /*not_pair*/ true);
compare_eq(result, expected, size);
#ifdef ASSERT
// Poison rscratch1 which is written on !UseLSE branch
mov(rscratch1, 0x1f1f1f1f1f1f1f1f);
#endif
} else {
Label retry_load, done;
prfm(Address(addr), PSTL1STRM);
@@ -6212,16 +6216,16 @@ void MacroAssembler::double_move(VMRegPair src, VMRegPair dst, Register tmp) {
}
}
// Implements fast-locking.
// Implements lightweight-locking.
// Branches to slow upon failure to lock the object, with ZF cleared.
// Falls through upon success with ZF set.
//
// - obj: the object to be locked
// - hdr: the header, already loaded from obj, will be destroyed
// - t1, t2: temporary registers, will be destroyed
void MacroAssembler::fast_lock(Register obj, Register hdr, Register t1, Register t2, Label& slow) {
void MacroAssembler::lightweight_lock(Register obj, Register hdr, Register t1, Register t2, Label& slow) {
assert(LockingMode == LM_LIGHTWEIGHT, "only used with new lightweight locking");
assert_different_registers(obj, hdr, t1, t2);
assert_different_registers(obj, hdr, t1, t2, rscratch1);
// Check if we would have space on lock-stack for the object.
ldrw(t1, Address(rthread, JavaThread::lock_stack_top_offset()));
@@ -6233,6 +6237,7 @@ void MacroAssembler::fast_lock(Register obj, Register hdr, Register t1, Register
// Clear lock-bits, into t2
eor(t2, hdr, markWord::unlocked_value);
// Try to swing header from unlocked to locked
// Clobbers rscratch1 when UseLSE is false
cmpxchg(/*addr*/ obj, /*expected*/ hdr, /*new*/ t2, Assembler::xword,
/*acquire*/ true, /*release*/ true, /*weak*/ false, t1);
br(Assembler::NE, slow);
@@ -6244,16 +6249,16 @@ void MacroAssembler::fast_lock(Register obj, Register hdr, Register t1, Register
strw(t1, Address(rthread, JavaThread::lock_stack_top_offset()));
}
// Implements fast-unlocking.
// Implements lightweight-unlocking.
// Branches to slow upon failure, with ZF cleared.
// Falls through upon success, with ZF set.
//
// - obj: the object to be unlocked
// - hdr: the (pre-loaded) header of the object
// - t1, t2: temporary registers
void MacroAssembler::fast_unlock(Register obj, Register hdr, Register t1, Register t2, Label& slow) {
void MacroAssembler::lightweight_unlock(Register obj, Register hdr, Register t1, Register t2, Label& slow) {
assert(LockingMode == LM_LIGHTWEIGHT, "only used with new lightweight locking");
assert_different_registers(obj, hdr, t1, t2);
assert_different_registers(obj, hdr, t1, t2, rscratch1);
#ifdef ASSERT
{
@@ -6293,6 +6298,7 @@ void MacroAssembler::fast_unlock(Register obj, Register hdr, Register t1, Regist
orr(t1, hdr, markWord::unlocked_value);
// Try to swing header from locked to unlocked
// Clobbers rscratch1 when UseLSE is false
cmpxchg(obj, hdr, t1, Assembler::xword,
/*acquire*/ true, /*release*/ true, /*weak*/ false, t2);
br(Assembler::NE, slow);

View File

@@ -1582,8 +1582,8 @@ public:
// Code for java.lang.Thread::onSpinWait() intrinsic.
void spin_wait();
void fast_lock(Register obj, Register hdr, Register t1, Register t2, Label& slow);
void fast_unlock(Register obj, Register hdr, Register t1, Register t2, Label& slow);
void lightweight_lock(Register obj, Register hdr, Register t1, Register t2, Label& slow);
void lightweight_unlock(Register obj, Register hdr, Register t1, Register t2, Label& slow);
private:
// Check the current thread doesn't need a cross modify fence.

View File

@@ -1759,6 +1759,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
const Register obj_reg = r19; // Will contain the oop
const Register lock_reg = r13; // Address of compiler lock object (BasicLock)
const Register old_hdr = r13; // value of old header at unlock time
const Register lock_tmp = r14; // Temporary used by lightweight_lock/unlock
const Register tmp = lr;
Label slow_path_lock;
@@ -1812,7 +1813,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
} else {
assert(LockingMode == LM_LIGHTWEIGHT, "must be");
__ ldr(swap_reg, Address(obj_reg, oopDesc::mark_offset_in_bytes()));
__ fast_lock(obj_reg, swap_reg, tmp, rscratch1, slow_path_lock);
__ lightweight_lock(obj_reg, swap_reg, tmp, lock_tmp, slow_path_lock);
}
__ bind(count);
__ increment(Address(rthread, JavaThread::held_monitor_count_offset()));
@@ -1953,7 +1954,7 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
assert(LockingMode == LM_LIGHTWEIGHT, "");
__ ldr(old_hdr, Address(obj_reg, oopDesc::mark_offset_in_bytes()));
__ tbnz(old_hdr, exact_log2(markWord::monitor_value), slow_path_unlock);
__ fast_unlock(obj_reg, old_hdr, swap_reg, rscratch1, slow_path_unlock);
__ lightweight_unlock(obj_reg, old_hdr, swap_reg, lock_tmp, slow_path_unlock);
__ decrement(Address(rthread, JavaThread::held_monitor_count_offset()));
}

View File

@@ -688,7 +688,7 @@ void TemplateInterpreterGenerator::generate_stack_overflow_check(void) {
// monitor entry size: see picture of stack set
// (generate_method_entry) and frame_amd64.hpp
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
const int entry_size = frame::interpreter_frame_monitor_size_in_bytes();
// total overhead size: entry_size + (saved rbp through expr stack
// bottom). be sure to change this if you add/subtract anything
@@ -769,7 +769,7 @@ void TemplateInterpreterGenerator::lock_method() {
const Address monitor_block_top(
rfp,
frame::interpreter_frame_monitor_block_top_offset * wordSize);
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
const int entry_size = frame::interpreter_frame_monitor_size_in_bytes();
#ifdef ASSERT
{

View File

@@ -3813,7 +3813,7 @@ void TemplateTable::monitorenter()
rfp, frame::interpreter_frame_monitor_block_top_offset * wordSize);
const Address monitor_block_bot(
rfp, frame::interpreter_frame_initial_sp_offset * wordSize);
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
const int entry_size = frame::interpreter_frame_monitor_size_in_bytes();
Label allocated;
@@ -3916,7 +3916,7 @@ void TemplateTable::monitorexit()
rfp, frame::interpreter_frame_monitor_block_top_offset * wordSize);
const Address monitor_block_bot(
rfp, frame::interpreter_frame_initial_sp_offset * wordSize);
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
const int entry_size = frame::interpreter_frame_monitor_size_in_bytes();
Label found;

View File

@@ -219,7 +219,7 @@ int C1_MacroAssembler::lock_object(Register hdr, Register obj, Register disp_hdr
Register t2 = hdr; // blow
Register t3 = Rtemp; // blow
fast_lock_2(obj /* obj */, t1, t2, t3, 1 /* savemask - save t1 */, slow_case);
lightweight_lock(obj /* obj */, t1, t2, t3, 1 /* savemask - save t1 */, slow_case);
// Success: fall through
} else if (LockingMode == LM_LEGACY) {
@@ -282,8 +282,8 @@ void C1_MacroAssembler::unlock_object(Register hdr, Register obj, Register disp_
Register t2 = hdr; // blow
Register t3 = Rtemp; // blow
fast_unlock_2(obj /* object */, t1, t2, t3, 1 /* savemask (save t1) */,
slow_case);
lightweight_unlock(obj /* object */, t1, t2, t3, 1 /* savemask (save t1) */,
slow_case);
// Success: Fall through
} else if (LockingMode == LM_LEGACY) {

View File

@@ -93,8 +93,8 @@ void C2_MacroAssembler::fast_lock(Register Roop, Register Rbox, Register Rscratc
if (LockingMode == LM_LIGHTWEIGHT) {
fast_lock_2(Roop /* obj */, Rbox /* t1 */, Rscratch /* t2 */, Rscratch2 /* t3 */,
1 /* savemask (save t1) */, done);
lightweight_lock(Roop /* obj */, Rbox /* t1 */, Rscratch /* t2 */, Rscratch2 /* t3 */,
1 /* savemask (save t1) */, done);
// Success: set Z
cmp(Roop, Roop);
@@ -143,8 +143,8 @@ void C2_MacroAssembler::fast_unlock(Register Roop, Register Rbox, Register Rscra
if (LockingMode == LM_LIGHTWEIGHT) {
fast_unlock_2(Roop /* obj */, Rbox /* t1 */, Rscratch /* t2 */, Rscratch2 /* t3 */,
1 /* savemask (save t1) */, done);
lightweight_unlock(Roop /* obj */, Rbox /* t1 */, Rscratch /* t2 */, Rscratch2 /* t3 */,
1 /* savemask (save t1) */, done);
cmp(Roop, Roop); // Success: Set Z
// Fall through

View File

@@ -279,7 +279,6 @@ BasicObjectLock* frame::interpreter_frame_monitor_begin() const {
return (BasicObjectLock*) addr_at(interpreter_frame_monitor_block_bottom_offset);
}
// Pointer beyond the "oldest/deepest" BasicObjectLock on stack.
BasicObjectLock* frame::interpreter_frame_monitor_end() const {
BasicObjectLock* result = (BasicObjectLock*) *addr_at(interpreter_frame_monitor_block_top_offset);
// make sure the pointer points inside the frame
@@ -421,7 +420,7 @@ bool frame::is_interpreted_frame_valid(JavaThread* thread) const {
// first the method
Method* m = *interpreter_frame_method_addr();
Method* m = safe_interpreter_frame_method();
// validate the method we'd find in this potential sender
if (!Method::is_valid_method(m)) return false;

View File

@@ -814,7 +814,7 @@ void InterpreterMacroAssembler::remove_activation(TosState state, Register ret_a
{
Label loop;
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
const int entry_size = frame::interpreter_frame_monitor_size_in_bytes();
const Register Rbottom = R3;
const Register Rcur_obj = Rtemp;
@@ -911,7 +911,7 @@ void InterpreterMacroAssembler::lock_object(Register Rlock) {
}
if (LockingMode == LM_LIGHTWEIGHT) {
fast_lock_2(Robj, R0 /* t1 */, Rmark /* t2 */, Rtemp /* t3 */, 0 /* savemask */, slow_case);
lightweight_lock(Robj, R0 /* t1 */, Rmark /* t2 */, Rtemp /* t3 */, 0 /* savemask */, slow_case);
b(done);
} else if (LockingMode == LM_LEGACY) {
// On MP platforms the next load could return a 'stale' value if the memory location has been modified by another thread.
@@ -1033,8 +1033,8 @@ void InterpreterMacroAssembler::unlock_object(Register Rlock) {
cmpoop(Rtemp, Robj);
b(slow_case, ne);
fast_unlock_2(Robj /* obj */, Rlock /* t1 */, Rmark /* t2 */, Rtemp /* t3 */,
1 /* savemask (save t1) */, slow_case);
lightweight_unlock(Robj /* obj */, Rlock /* t1 */, Rmark /* t2 */, Rtemp /* t3 */,
1 /* savemask (save t1) */, slow_case);
b(done);

View File

@@ -1748,14 +1748,14 @@ void MacroAssembler::read_polling_page(Register dest, relocInfo::relocType rtype
POISON_REG(mask, 1, R2, poison) \
POISON_REG(mask, 2, R3, poison)
// Attempt to fast-lock an object
// Attempt to lightweight-lock an object
// Registers:
// - obj: the object to be locked
// - t1, t2, t3: temp registers. If corresponding bit in savemask is set, they get saved, otherwise blown.
// Result:
// - Success: fallthrough
// - Error: break to slow, Z cleared.
void MacroAssembler::fast_lock_2(Register obj, Register t1, Register t2, Register t3, unsigned savemask, Label& slow) {
void MacroAssembler::lightweight_lock(Register obj, Register t1, Register t2, Register t3, unsigned savemask, Label& slow) {
assert(LockingMode == LM_LIGHTWEIGHT, "only used with new lightweight locking");
assert_different_registers(obj, t1, t2, t3);
@@ -1806,14 +1806,14 @@ void MacroAssembler::fast_lock_2(Register obj, Register t1, Register t2, Registe
// Success: fall through
}
// Attempt to fast-unlock an object
// Attempt to lightweight-unlock an object
// Registers:
// - obj: the object to be unlocked
// - t1, t2, t3: temp registers. If corresponding bit in savemask is set, they get saved, otherwise blown.
// Result:
// - Success: fallthrough
// - Error: break to slow, Z cleared.
void MacroAssembler::fast_unlock_2(Register obj, Register t1, Register t2, Register t3, unsigned savemask, Label& slow) {
void MacroAssembler::lightweight_unlock(Register obj, Register t1, Register t2, Register t3, unsigned savemask, Label& slow) {
assert(LockingMode == LM_LIGHTWEIGHT, "only used with new lightweight locking");
assert_different_registers(obj, t1, t2, t3);

View File

@@ -1009,23 +1009,23 @@ public:
void cas_for_lock_acquire(Register oldval, Register newval, Register base, Register tmp, Label &slow_case, bool allow_fallthrough_on_failure = false, bool one_shot = false);
void cas_for_lock_release(Register oldval, Register newval, Register base, Register tmp, Label &slow_case, bool allow_fallthrough_on_failure = false, bool one_shot = false);
// Attempt to fast-lock an object
// Attempt to lightweight-lock an object
// Registers:
// - obj: the object to be locked
// - t1, t2, t3: temp registers. If corresponding bit in savemask is set, they get saved, otherwise blown.
// Result:
// - Success: fallthrough
// - Error: break to slow, Z cleared.
void fast_lock_2(Register obj, Register t1, Register t2, Register t3, unsigned savemask, Label& slow);
void lightweight_lock(Register obj, Register t1, Register t2, Register t3, unsigned savemask, Label& slow);
// Attempt to fast-unlock an object
// Attempt to lightweight-unlock an object
// Registers:
// - obj: the object to be unlocked
// - t1, t2, t3: temp registers. If corresponding bit in savemask is set, they get saved, otherwise blown.
// Result:
// - Success: fallthrough
// - Error: break to slow, Z cleared.
void fast_unlock_2(Register obj, Register t1, Register t2, Register t3, unsigned savemask, Label& slow);
void lightweight_unlock(Register obj, Register t1, Register t2, Register t3, unsigned savemask, Label& slow);
#ifndef PRODUCT
// Preserves flags and all registers.

View File

@@ -1155,8 +1155,8 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
if (LockingMode == LM_LIGHTWEIGHT) {
log_trace(fastlock)("SharedRuntime lock fast");
__ fast_lock_2(sync_obj /* object */, disp_hdr /* t1 */, tmp /* t2 */, Rtemp /* t3 */,
0x7 /* savemask */, slow_lock);
__ lightweight_lock(sync_obj /* object */, disp_hdr /* t1 */, tmp /* t2 */, Rtemp /* t3 */,
0x7 /* savemask */, slow_lock);
// Fall through to lock_done
} else if (LockingMode == LM_LEGACY) {
const Register mark = tmp;
@@ -1242,8 +1242,8 @@ nmethod* SharedRuntime::generate_native_wrapper(MacroAssembler* masm,
if (method->is_synchronized()) {
if (LockingMode == LM_LIGHTWEIGHT) {
log_trace(fastlock)("SharedRuntime unlock fast");
__ fast_unlock_2(sync_obj, R2 /* t1 */, tmp /* t2 */, Rtemp /* t3 */,
7 /* savemask */, slow_unlock);
__ lightweight_unlock(sync_obj, R2 /* t1 */, tmp /* t2 */, Rtemp /* t3 */,
7 /* savemask */, slow_unlock);
// Fall through
} else if (LockingMode == LM_LEGACY) {
// See C1_MacroAssembler::unlock_object() for more comments

View File

@@ -530,7 +530,7 @@ void TemplateInterpreterGenerator::generate_stack_overflow_check(void) {
const Register RmaxStack = R2;
// monitor entry size
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
const int entry_size = frame::interpreter_frame_monitor_size_in_bytes();
// total overhead size: entry_size + (saved registers, thru expr stack bottom).
// be sure to change this if you add/subtract anything to/from the overhead area
@@ -569,7 +569,7 @@ void TemplateInterpreterGenerator::generate_stack_overflow_check(void) {
void TemplateInterpreterGenerator::lock_method() {
// synchronize method
const int entry_size = frame::interpreter_frame_monitor_size() * wordSize;
const int entry_size = frame::interpreter_frame_monitor_size_in_bytes();
assert ((entry_size % StackAlignmentInBytes) == 0, "should keep stack alignment");
#ifdef ASSERT

View File

@@ -4270,7 +4270,7 @@ void TemplateTable::monitorenter() {
// check for null object
__ null_check(Robj, Rtemp);
const int entry_size = (frame::interpreter_frame_monitor_size() * wordSize);
const int entry_size = (frame::interpreter_frame_monitor_size_in_bytes());
assert (entry_size % StackAlignmentInBytes == 0, "keep stack alignment");
Label allocate_monitor, allocated;
@@ -4381,7 +4381,7 @@ void TemplateTable::monitorexit() {
// check for null object
__ null_check(Robj, Rtemp);
const int entry_size = (frame::interpreter_frame_monitor_size() * wordSize);
const int entry_size = (frame::interpreter_frame_monitor_size_in_bytes());
Label found, throw_exception;
// find matching slot

View File

@@ -3141,7 +3141,7 @@ void LIR_Assembler::emit_profile_type(LIR_OpProfileType* op) {
// Klass seen before, nothing to do (regardless of unknown bit).
//beq(CCR1, do_nothing);
__ andi_(R0, klass, TypeEntries::type_unknown);
__ andi_(R0, tmp, TypeEntries::type_unknown);
// Already unknown. Nothing to do anymore.
//bne(CCR0, do_nothing);
__ crorc(CCR0, Assembler::equal, CCR1, Assembler::equal); // cr0 eq = cr1 eq or cr0 ne

View File

@@ -115,7 +115,7 @@ void C1_MacroAssembler::lock_object(Register Rmark, Register Roop, Register Rbox
}
if (LockingMode == LM_LIGHTWEIGHT) {
fast_lock(Roop, Rmark, Rscratch, slow_int);
lightweight_lock(Roop, Rmark, Rscratch, slow_int);
} else if (LockingMode == LM_LEGACY) {
// ... and mark it unlocked.
ori(Rmark, Rmark, markWord::unlocked_value);
@@ -181,7 +181,7 @@ void C1_MacroAssembler::unlock_object(Register Rmark, Register Roop, Register Rb
ld(Rmark, oopDesc::mark_offset_in_bytes(), Roop);
andi_(R0, Rmark, markWord::monitor_value);
bne(CCR0, slow_int);
fast_unlock(Roop, Rmark, slow_int);
lightweight_unlock(Roop, Rmark, slow_int);
} else if (LockingMode == LM_LEGACY) {
// Check if it is still a light weight lock, this is is true if we see
// the stack address of the basicLock in the markWord of the object.

View File

@@ -324,7 +324,7 @@ bool frame::is_interpreted_frame_valid(JavaThread* thread) const {
// first the method
Method* m = *interpreter_frame_method_addr();
Method* m = safe_interpreter_frame_method();
// validate the method we'd find in this potential sender
if (!Method::is_valid_method(m)) return false;
@@ -454,7 +454,6 @@ intptr_t *frame::initial_deoptimization_info() {
frame::frame(void* sp, void* fp, void* pc) : frame((intptr_t*)sp, (address)pc) {}
#endif
// Pointer beyond the "oldest/deepest" BasicObjectLock on stack.
BasicObjectLock* frame::interpreter_frame_monitor_end() const {
BasicObjectLock* result = (BasicObjectLock*) at(ijava_idx(monitors));
// make sure the pointer points inside the frame

View File

@@ -424,9 +424,6 @@
template <typename RegisterMapT>
static void update_map_with_saved_link(RegisterMapT* map, intptr_t** link_addr);
// Size of a monitor in bytes.
static int interpreter_frame_monitor_size_in_bytes();
// The size of a cInterpreter object.
static inline int interpreter_frame_cinterpreterstate_size_in_bytes();

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