Compare commits

..

672 Commits
1567 ... 520

Author SHA1 Message Date
Alexey Ushakov
39ff48e0b3 JBR-2312 [backport to 193] JBR-2210 IDEA fails to start (JVM crashes) when using the -Dfile.encoding=UTF-8in IDEA's vmoptions file
Returning devanagari subset back for ja.UTF-8 to get non-null font name from WFontConfiguration.getTextComponentFontName(). It is a regression from JDK-8208179.

(cherry picked from commit b51254a975)
2020-04-20 18:18:00 +07:00
Artem Bochkarev
1fe81305fb JBR-2143: enable X11_DISABLE_OVERRIDE_FLAG by default only in KDE-desktop env
fixed "XFCE: No context menu or main menu popups from Full screen mode"

(cherry picked from commit 8b027c4fbf)
2020-04-14 08:43:39 +07:00
Vitaly Provodin
33623d6f88 updated JTreg exclude list 2020-04-14 08:43:39 +07:00
Pengfei Li
905ad271c5 JBR-2274 runtime/LoadClass/LongBCP.java fails because of compilation error
8208623: [TESTBUG] runtime/LoadClass/LongBCP.java fails in AUFS file system

Limit the maximal file name length to 242 for AUFS file system

Reviewed-by: dholmes, redestad
(cherry picked from commit d7dbec973c)
2020-04-13 20:19:01 +07:00
Elena Sayapina
ec53d786e4 JBR-2242 [backport to 193] JBR-2235 JBR 11.0.6 doesn't start from a directory with a non-ASCII name
Changed CP_THREAD_ACP to CP_ACP to fix JDK-8242283: Can't start JVM when java home path includes non-ASCII character.

Complete fix for JBR-2235 includes the following commits:
- cherry-pick 3490262a: JDK-8240197: Cannot start JVM when $JAVA_HOME includes CJK characters
- cherry-pick 04e885b4: JDK-8232168: Fix non wide char canonicalization on Windows
- cherry-pick 77ae10cd: JDK-8218547: Simplify JLI_Open on Windows in native code (libjli)
- cherry-pick 99b28daf: JDK-8240725: Some functions might not work with CJK character
2020-04-13 20:17:40 +07:00
Yasumasa Suenaga
cac4cd540e 8240725: Some functions might not work with CJK character
Reviewed-by: naoto

Backported the fix to jbr11.
Resolved conflicts in src/java.base/windows/native/libjava/canonicalize_md.c.
2020-04-13 20:16:58 +07:00
Matthias Baesken
ec42379972 8218547: Simplify JLI_Open on Windows in native code (libjli)
Reviewed-by: alanb, clanger
2020-04-13 20:16:56 +07:00
Ralf Schmelter
b6cb19d6eb 8232168: Fix non wide char canonicalization on Windows
Reviewed-by: clanger, alanb, ccheung
2020-04-13 20:16:53 +07:00
Vitaly Provodin
30526614a3 updated JTreg exclude list 2020-04-01 11:51:56 +07:00
Vitaly Provodin
0f62b4daa4 Revert "JBR-2212 add JBR building scripts"
This reverts commit ad2ef007
2020-04-01 11:51:33 +07:00
Vitaly Provodin
ad2ef007fd JBR-2212 add JBR building scripts 2020-04-01 10:56:13 +07:00
Elena Sayapina
d07e32c60c JBR-2242 [backport to 193] JBR-2235 JBR 11.0.6 doesn't start from a directory with a non-ASCII name
Apply JDK-8240823 fix from 11.0.8 (which is a backport of JDK-8240197 to jdk11)
8240197: Cannot start JVM when $JAVA_HOME includes CJK characters

(cherry picked from commit 9074c5df)
2020-03-31 13:04:24 +07:00
Artem Bochkarev
c8a21f38ab JBR-2116 [backport 193] JBR-2111: enable X11_DISABLE_OVERRIDE_FLAG by default
(cherry picked from commit 31b590c16c)
2020-02-10 19:29:12 +07:00
Vitaly Provodin
e31571f59e updated JTreg exclude list
(cherry picked from commit 48468b08d0)
2020-02-05 14:44:56 +07:00
Vitaly Provodin
3e172fa91a updated JTreg exclude list 2020-02-03 19:15:43 +07:00
Elena Sayapina
9da4fc9e9d updated JTreg exclude list 2020-02-03 18:11:34 +07:00
Dmitry Batrak
08f8cbd374 fix merge issue after 'fix merge issues after merge from OpenJDK 11.0.6' 2020-02-03 11:23:27 +03:00
Dmitry Batrak
b9c087590c fix merge issues after merge from OpenJDK 11.0.6
(cherry picked from commit 5e77712607)
2020-02-03 13:28:00 +07:00
andrew
448d47e792 Added tag jdk-11.0.6-ga for changeset 837b7afec083
(cherry picked from commit cde27e425b)
2020-02-03 13:23:00 +07:00
xuelei
f8bc788dd2 8234037: Improve Object Identifier Processing
Reviewed-by: weijun, mschoene, ssahoo

(cherry picked from commit 71e46c4318)
2020-02-03 13:22:59 +07:00
bae
29e381c1f0 8232419: Improve Registry registration
Reviewed-by: andrew

(cherry picked from commit ef559ffd56)
2020-02-03 13:22:58 +07:00
igerasim
8481c3dc1c 8231790: Provide better FileSystemProviders
Reviewed-by: alanb, skoivu, rhalade

(cherry picked from commit 71336b75f0)
2020-02-03 13:22:57 +07:00
jnimeh
442f3e20a7 8231780: Better TLS messaging support
Reviewed-by: ascarpino, rhalade, mschoene

(cherry picked from commit 2aa28b4ed4)
2020-02-03 13:22:57 +07:00
phh
df258eff88 8230318: Better trust store usage
Reviewed-by: andrew
Contributed-by: Clive Verghese <verghese@amazon.com>

(cherry picked from commit c5a210aaaf)
2020-02-03 13:22:56 +07:00
weijun
9f23beebe9 8231139: Improved keystore support
Reviewed-by: mullan, ahgross

(cherry picked from commit 43013180d6)
2020-02-03 13:22:55 +07:00
chegar
65b5766a96 8220598: Malformed copyright year range in a few files in java.base
Reviewed-by: dfuchs, lancea, rriggs, weijun

(cherry picked from commit fbc4b4c665)
2020-02-03 13:22:54 +07:00
robm
3280617e9c 8231422: Better serial filter handling
Reviewed-by: rriggs

(cherry picked from commit b5bba8ea40)
2020-02-03 13:22:54 +07:00
igerasim
5dce0d80c5 8230279: Improve Pack200 file reading
Reviewed-by: henryjen, jlaskey

(cherry picked from commit f8aab69542)
2020-02-03 13:22:53 +07:00
weijun
314503eddb 8229951: Better Ticket Granting Services
Reviewed-by: ahgross, valeriep

(cherry picked from commit bd0b23b658)
2020-02-03 13:22:52 +07:00
rriggs
577cb97e63 8230967: Improve Registry support of clients
Reviewed-by: skoivu, smarks, rhalade

(cherry picked from commit 879773164f)
2020-02-03 13:22:52 +07:00
xuelei
4813724abe 8229728: Implement negotiation parameters
Reviewed-by: jnimeh, ahgross, rhalade

(cherry picked from commit 0e71f74d71)
2020-02-03 13:22:51 +07:00
igerasim
c7821247a4 8228548: Normalize normalization for all
Reviewed-by: chegar, rhalade, igerasim

(cherry picked from commit d4ec5a832c)
2020-02-03 13:22:50 +07:00
prr
40b60b3caf 8227816: More Colorful ICC profiles
Reviewed-by: serb, psadhukhan, mschoene, rhalade

(cherry picked from commit 27b2606b4d)
2020-02-03 13:22:49 +07:00
mbalao
c7dd6f09ac 8227758: More valid PKIX processing
Reviewed-by: andrew

(cherry picked from commit e650919a59)
2020-02-03 13:22:49 +07:00
weijun
c7c8bef038 8226352: Improve Kerberos interop capabilities
Reviewed-by: ahgross, mullan, valeriep

(cherry picked from commit 12191c9bce)
2020-02-03 13:22:48 +07:00
alitvinov
867cd8dc26 8225279: Better XRender interpolation
Reviewed-by: serb, prr, rhalade, ahgross

(cherry picked from commit 9084b24162)
2020-02-03 13:22:47 +07:00
serb
a7a4e59705 8224909: Unlink Set of LinkedHashSets
Reviewed-by: prr, mschoene, rhalade, psadhukhan

(cherry picked from commit 7411ddf127)
2020-02-03 13:22:46 +07:00
lfoltan
42d4a2ff8d 8225261: Better method resolutions
Reviewed-by: ahgross, dholmes, hseigel, jwilhelm, rhalade
Contributed-by: lois.foltan@oracle.com

(cherry picked from commit 102d54732b)
2020-02-03 13:22:46 +07:00
erikj
642536fc10 8235687: Contents/MacOS/libjli.dylib cannot be a symlink
Reviewed-by: tbell

(cherry picked from commit 276971e4fa)
2020-02-03 13:22:45 +07:00
clanger
832827cae5 8235585: Enable macOS codesigning for all libraries and executables
Reviewed-by: erikj, clanger
Contributed-by: rene.schuenemann@gmail.com

(cherry picked from commit 7f6d996caf)
2020-02-03 13:22:44 +07:00
xuelei
601e327f7e 8233954: UnsatisfiedLinkError or NoSuchAlgorithmException after removing sunec.dll
Reviewed-by: ascarpino

(cherry picked from commit d5ee71294d)
2020-02-03 13:22:43 +07:00
clanger
251589f727 8235403: Further cleanup to test serviceability/sa/ClhsdbCDSCore.java
Reviewed-by: iklam, iignatyev

(cherry picked from commit 9901421af3)
2020-02-03 13:22:42 +07:00
mbaesken
a1aaeff0da 8234625: hs test serviceability/sa/ClhsdbCDSCore.java fails on macOS 10.15
Reviewed-by: clanger, iignatyev

(cherry picked from commit 8cc97c6045)
2020-02-03 13:22:42 +07:00
rhalade
4c1094413e 8233223: Add Amazon Root CA certificates
Reviewed-by: mullan

(cherry picked from commit 3f47742f62)
2020-02-03 13:22:40 +07:00
cgo
cf0c011e42 8234906: [TESTBUG] TestDivZeroCheckControl fails for client VMs due to Unrecognized VM option LoopUnrollLimit
Reviewed-by: kvn

(cherry picked from commit ed4ae15cf8)
2020-02-03 13:22:40 +07:00
sgehwolf
7d14b56d63 8235142: JDK-8193255 backport broke bootstrap with JDK 10
Summary: Use Paths.get() over Path.of()
Reviewed-by: goetz, martin, clanger

(cherry picked from commit 0ab0134dd5)
2020-02-03 13:22:39 +07:00
mdoerr
8b1553d5f3 8234645: ARM32: C1: PatchingStub for field access: not enough bytes
Reviewed-by: cgo, goetz

(cherry picked from commit 14f0820ea4)
2020-02-03 13:22:38 +07:00
apetcher
a13158ba64 8221172: SunEC specific test is not limited to SunEC
Summary: Fixing a minor test bug in the SignatureDigestTruncate regression test
Reviewed-by: mullan

(cherry picked from commit 1158496e83)
2020-02-03 13:22:38 +07:00
itakiguchi
546cd1ce6a 8230873: [AIX] GUI app does not work with UTF-8 locale on minimum software requirements
Summary: Fix fontconfig.properties file for AIX UTF-8 locales
Reviewed-by: clanger

(cherry picked from commit 24e6cfae03)
2020-02-03 13:22:37 +07:00
rpatil
888297fd55 8231098: (tz) Upgrade time-zone data to tzdata2019c
Reviewed-by: martin, naoto

(cherry picked from commit 61d09e90db)
2020-02-03 13:22:36 +07:00
dmarkov
92a8f390fe 8230782: Robot.createScreenCapture() fails if “awt.robot.gtk” is set to false
Reviewed-by: prr, serb

(cherry picked from commit 19ef68d422)
2020-02-03 13:22:35 +07:00
prr
782fbe745d 8233097: Fontmetrics for large Fonts has zero width
Reviewed-by: jdv, serb

(cherry picked from commit c000469738)
2020-02-03 13:22:34 +07:00
mbalao
8faf8dff8d 8233404: System property to set the number of PBE iterations in JCEKS keystores
Reviewed-by: weijun

(cherry picked from commit 58c295fe50)
2020-02-03 13:22:34 +07:00
coffeys
ed1b6616fc 8231124: Missing closedir call with JDK-8223490
Reviewed-by: naoto

(cherry picked from commit c9b31e318f)
2020-02-03 13:22:33 +07:00
valeriep
3c14275e9b 8225745: NoSuchAlgorithmException exception for SHA256withECDSA with RSASSA-PSS support
Summary: Fixed SignatureUtil and ECDSA signature impl to handle EC parameters
Reviewed-by: weijun

(cherry picked from commit bae167a609)
2020-02-03 13:22:32 +07:00
prr
ff23c63114 8210776: Upgrade X Window System 6.8.2 to the latest XWD 1.0.7
Reviewed-by: serb

(cherry picked from commit 1f3187a64e)
2020-02-03 13:22:31 +07:00
jiefu
01e7c20d5e 8234245: sun/security/lib/cacerts/VerifyCACerts.java fails due to wrong checksum
Reviewed-by: mullan

(cherry picked from commit a84c3e58fd)
2020-02-03 13:22:30 +07:00
lancea
5a30c5036f 8234080: jdk/nio/zipfs/CRCWriteTest.java fails
Reviewed-by: clanger, amlu

(cherry picked from commit 451349a83a)
2020-02-03 13:22:30 +07:00
rhalade
5d1d42e523 8232019: Add LuxTrust certificate updates to the existing root program
Reviewed-by: mullan

(cherry picked from commit 1191071c97)
2020-02-03 13:22:29 +07:00
weijun
f386f7a4b3 8225392: Comparison builds are failing due to cacerts file
Reviewed-by: erikj, martin, mullan

(cherry picked from commit 845abd8827)
2020-02-03 13:22:28 +07:00
weijun
9373a8f417 8193255: Root Certificates should be stored in text format and assembled at build time
Reviewed-by: clanger, erikj, mullan

(cherry picked from commit 5c10bb898c)
2020-02-03 13:22:27 +07:00
roland
cf7d59a73b 8232539: SIGSEGV in C2 Node::unique_ctrl_out
Reviewed-by: thartmann, kvn

(cherry picked from commit fc58e2f9f5)
2020-02-03 13:22:26 +07:00
mdoerr
0a744dfb95 8234591: [11u] Build with old C compiler broken by 8223490
Reviewed-by: phh

(cherry picked from commit a05e19384d)
2020-02-03 13:22:26 +07:00
xgong
60e52409f3 8234321: Call cache flush after generating trampoline.
Reviewed-by: adinn, iklam

(cherry picked from commit 96071d26df)
2020-02-03 13:22:25 +07:00
coffeys
be91c3c05d 8232984: Upgrading Joni License version to 2.1.16
Reviewed-by: coffeys
Contributed-by: kiran.sidhartha.ravikumar@oracle.com

(cherry picked from commit 30fc90d18b)
2020-02-03 13:22:24 +07:00
neugens
e24119fa54 8234107: Several AWT modal dialog tests failing on Linux after JDK-8231991
Summary: Fix off by one in wheel detection logic
Reviewed-by: prr

(cherry picked from commit 8066115162)
2020-02-03 13:22:24 +07:00
neugens
ca281a6f27 8231991: Mouse wheel change focus on awt/swing windows
Summary: Avoid focus logic when only mouse wheel is moved up/down.
Reviewed-by: serb, dmarkov

(cherry picked from commit 84efcadaef)
2020-02-03 13:22:23 +07:00
mdoerr
5c988b7cfa 8233820: Test crashed with assert(phi->operand_count() != 1 || phi->subst() != phi) failed: missed trivial simplification
Summary: Verification code needs to skip illegal phi functions.
Reviewed-by: thartmann, vlivanov

(cherry picked from commit f549b9e6e1)
2020-02-03 13:22:22 +07:00
mdoerr
3c10c0d313 8233081: C1: PatchingStub for field access copies too much
Reviewed-by: thartmann, dlong

(cherry picked from commit a639457de2)
2020-02-03 13:22:22 +07:00
mdoerr
4dc628dd91 8231949: [PPC64, s390]: Make async profiling more reliable
Summary: Better checks if method from interpreter frame is valid.
Reviewed-by: rrich, ghaug, goetz

(cherry picked from commit ee06dfa001)
2020-02-03 13:22:21 +07:00
mdoerr
a64077d383 8230669: [s390] C1: assert(is_bound() || is_unused()) failed: Label was never bound to a location, but it was used as a jmp target
Reviewed-by: phh, xliu

(cherry picked from commit 50a2759494)
2020-02-03 13:22:20 +07:00
serb
517cc7e30c 8229810: [macos] NullPointerException getting bounds of GraphicsConfiguration
Reviewed-by: jdv

(cherry picked from commit fa52b57aaf)
2020-02-03 13:22:20 +07:00
serb
b756e015eb 8229515: [macos] access to window property of NSView on wrong thread
Reviewed-by: prr, dmarkov

(cherry picked from commit 6e93c2ff06)
2020-02-03 13:22:19 +07:00
coffeys
31d18c1469 8228645: Don't run sun/security/pkcs11/Cipher/TestKATForGCM.java on buggy NSS solaris versions
Reviewed-by: valeriep

(cherry picked from commit 934b08f5cd)
2020-02-03 13:22:18 +07:00
valeriep
aae4c2e685 8226651: Setting the mgfHash in CK_RSA_PKCS_PSS_PARAMS has no effect
Summary: Fixed to get the MGF digest algorithm from MGF1ParameterSpec
Reviewed-by: xuelei

(cherry picked from commit cf808f7f30)
2020-02-03 13:22:18 +07:00
naoto
f23be01fca 8228465: HOST locale provider holds wrong era name for GregorianCalendar in US locale
Reviewed-by: lancea

(cherry picked from commit 073273e07b)
2020-02-03 13:22:17 +07:00
coffeys
7f3819c337 8223490: Optimize search algorithm for determining default time zone
Reviewed-by: naoto, rriggs

(cherry picked from commit 8830a96a5b)
2020-02-03 13:22:16 +07:00
hannesw
458cf36d53 8227391: Update double-conversion to version 3.1.5
Reviewed-by: attila

(cherry picked from commit 3a638115eb)
2020-02-03 13:22:16 +07:00
mbalao
50f2e9b200 8227437: S4U2proxy cannot continue because server's TGT cannot be found
Reviewed-by: weijun, clanger

(cherry picked from commit e30e3208ea)
2020-02-03 13:22:15 +07:00
serb
88033e8e9b 8224152: [macOS] ProblemList tests that leave rubbish on the screen
Reviewed-by: prr

(cherry picked from commit 5d41473916)
2020-02-03 13:22:14 +07:00
joehw
f9c783a767 8224157: BCEL: update to version 6.3.1
Reviewed-by: dfuchs, lancea

(cherry picked from commit 41f9b781b3)
2020-02-03 13:22:14 +07:00
xuelei
458abe7a4d 8217610: TLSv1.3 fail with ClassException when EC keys are stored in PKCS11
Reviewed-by: valeriep

(cherry picked from commit 0b4e78a254)
2020-02-03 13:22:13 +07:00
xyin
ed80d5bf43 8198882: Add 10 JNDI tests to com/sun/jndi/dns/AttributeTests/
Reviewed-by: vtewari, rriggs

(cherry picked from commit d36b532d81)
2020-02-03 13:22:12 +07:00
stuefe
902814f111 8221539: [metaspace] Improve MetaspaceObj::is_metaspace_obj() and friends
Reviewed-by: adinn, coleenp, mdoerr

(cherry picked from commit 84d66f3db3)
2020-02-03 13:22:11 +07:00
jjiang
2c5bef8b9c 8215524: Finished message validation failure should be decrypt_error alert
Reviewed-by: xuelei

(cherry picked from commit 4c3a88527b)
2020-02-03 13:22:11 +07:00
serb
c26b97f4bb 8215200: IllegalArgumentException in sun.lwawt.macosx.CPlatformWindow
Reviewed-by: dmarkov, kaddepalli

(cherry picked from commit 1613d1c3d6)
2020-02-03 13:22:10 +07:00
xuelei
081b5e5766 8214321: Misleading code in SSLCipher
Reviewed-by: ascarpino

(cherry picked from commit d88f30eb3d)
2020-02-03 13:22:09 +07:00
serb
e1b0d2b986 8214046: [macosx] Undecorated Frame does not Iconify when set to
Reviewed-by: dmarkov

(cherry picked from commit d1a6f6e0cb)
2020-02-03 13:22:09 +07:00
valeriep
ca6af6ee00 8213008: Cipher with UNWRAP_MODE should support the generation of an AES key type
Summary: Replaced CKK_GENERIC_SECRET with alorithm-specific key type in P11RSACipher unwrap impl
Reviewed-by: ascarpino

(cherry picked from commit 5a67563b9c)
2020-02-03 13:22:08 +07:00
rraghavan
acc71fffe5 8227439: Turn off AOT by default
Summary: Made UseAOT, AOTLibrary experimental and UseAOT false by default
Reviewed-by: iignatyev, kvn

(cherry picked from commit 632ecffb12)
2020-02-03 13:22:06 +07:00
clanger
18b07b5b7e 8226869: Test java/util/Locale/LocaleProvidersRun.java should enable assertions
Reviewed-by: naoto

(cherry picked from commit 2d8557b92e)
2020-02-03 13:22:05 +07:00
mli
0bc9ccc257 8210403: Refactor java.util.Locale:i18n shell tests to plain java tests
Reviewed-by: naoto
Contributed-by: ying.z.zhou@oracle.com

(cherry picked from commit a2d358d896)
2020-02-03 13:22:04 +07:00
mbaesken
0565da70c4 8233202: exclude javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java
Reviewed-by: clanger

(cherry picked from commit 06f2989b91)
2020-02-03 13:22:03 +07:00
bpb
77aa727978 8232178: MacVolumesTest failed after upgrade to MacOS Catalina
Reviewed-by: lancea

(cherry picked from commit b3a8ec4cd6)
2020-02-03 13:22:03 +07:00
mbaesken
bf47b95287 8232052: use string literal for format string when handling PauseAtStartupFile
Reviewed-by: clanger, stuefe

(cherry picked from commit a01f2b150a)
2020-02-03 13:22:02 +07:00
bpb
c900642199 8231254: (fs) Add test for macOS Catalina changes to protect system software
Reviewed-by: alanb

(cherry picked from commit e7de300e73)
2020-02-03 13:22:01 +07:00
valeriep
3f592f03c4 8229243: SunPKCS11-Solaris provider tests failing on Solaris 11.4
Summary: For CK_GCM_PARAMS, try the spec definition first before falling back to the header file definition
Reviewed-by: xuelei

(cherry picked from commit 8ed35599f3)
2020-02-03 13:22:00 +07:00
mbaesken
fbb4d668fa 8231222: fix pkcs11 P11_DEBUG guarded native traces
Reviewed-by: clanger

(cherry picked from commit 32fdadd613)
2020-02-03 13:21:59 +07:00
valeriep
a9a95d6c02 8228835: Memory leak in PKCS11 provider when using AES GCM
Summary: updated freeCKMechanismPtr to free mechanism-specific memories
Reviewed-by: jnimeh

(cherry picked from commit abd2afe1f5)
2020-02-03 13:21:58 +07:00
shade
a40f7e352e 8225695: 32-bit build failures after JDK-8080462 (Update SunPKCS11 provider with PKCS11 v2.40 support)
Reviewed-by: alanb

(cherry picked from commit 789cde0a48)
2020-02-03 13:21:58 +07:00
valeriep
bf149010a1 8176837: SunPKCS11 provider needs to check more details on PKCS11 Mechanism
Summary: Disable mechanisms with partial support, e.g. can decrypt but cannot encrypt
Reviewed-by: xuelei

(cherry picked from commit 4a716e2bd5)
2020-02-03 13:21:57 +07:00
valeriep
fb152418ab 8080462: Update SunPKCS11 provider with PKCS11 v2.40 support
Summary: Added support for GCM, PSS, and other mechanisms
Reviewed-by: jnimeh

(cherry picked from commit 3426afe277)
2020-02-03 13:21:55 +07:00
jboes
97289299fc 8209178: Proxied HttpsURLConnection doesn't send BODY when retrying POST request
Summary: Preserve BODY in poster output stream before sending CONNECT request
Reviewed-by: bae

(cherry picked from commit 2c2a107579)
2020-02-03 13:21:54 +07:00
coffeys
cc67bc1e19 8212752: Typo in SSL log message related to inactive/disabled signature scheme
Reviewed-by: coffeys
Contributed-by: jai.forums2013@gmail.com

(cherry picked from commit 0e5f9c8398)
2020-02-03 13:21:53 +07:00
xuelei
bcec0fde2a 8212738: Incorrectly named signature scheme ecdsa_secp512r1_sha512
Reviewed-by: ascarpino

(cherry picked from commit e01762e302)
2020-02-03 13:21:53 +07:00
iignatyev
2e983359a8 8208236: [TESTBUG] vmTestbase/nsk/stress/stack tests fail by timeout
Reviewed-by: dholmes

(cherry picked from commit 7e6d43f2e0)
2020-02-03 13:21:52 +07:00
bobv
eb19031fa7 8211740: [AOT] -XX:AOTLibrary doesn't accept windows path
Reviewed-by: kvn, iignatyev

(cherry picked from commit 4feb1771cd)
2020-02-03 13:21:51 +07:00
vdeshpande
874446daec 8221092: UseAVX=3 has performance degredation on Skylake (X7) processors
Summary: Fix for UseAVX=3 has performance degredation on Skylake (X7) processors
Reviewed-by: kvn

(cherry picked from commit ad589e3b4c)
2020-02-03 13:21:50 +07:00
weijun
c739f25540 8227381: GSS login fails with PREAUTH_FAILED
Reviewed-by: xuelei

(cherry picked from commit b19e4e7e32)
2020-02-03 13:21:50 +07:00
weijun
118913183c 8227061: KDC.java test behaves incorrectly when AS-REQ contains a PAData not PA-ENC-TS-ENC
Reviewed-by: mullan

(cherry picked from commit 31b44bf445)
2020-02-03 13:21:49 +07:00
weijun
7c181a4367 8226719: Kerberos login to Windows 2000 failed with "Inappropriate type of checksum in message"
Reviewed-by: xuelei

(cherry picked from commit faa4d7370d)
2020-02-03 13:21:48 +07:00
mseledtsov
b6b92aacc9 8230115: Problemlist JFR TestNetworkUtilization test
Summary: Added test to the problem list
Reviewed-by: dcubed

(cherry picked from commit 8104d8dd82)
2020-02-03 13:21:47 +07:00
azeller
f3a69914e9 8231457: Asserts on AIX because os::elapsed_counter() is not monotonic
Summary: replace gettimeofday with javaTimeNanos
Reviewed-by: dholmes, stuefe

(cherry picked from commit 5b11fae577)
2020-02-03 13:21:47 +07:00
mbalao
266ce408a4 8233944: Make KerberosPrincipal.KRB_NT_ENTERPRISE field package private
Reviewed-by: clanger

(cherry picked from commit 1b1ee81b21)
2020-02-03 13:21:46 +07:00
fyang
20af9d1b13 8233839: aarch64: missing memory barrier in NewObjectArrayStub and NewTypeArrayStub
Reviewed-by: adinn

(cherry picked from commit 87efc9126a)
2020-02-03 13:21:45 +07:00
lmesnik
a3fd102443 8230881: serviceability/sa/TestJmapCore tests fail with java.lang.RuntimeException: Could not find dump file
Reviewed-by: dholmes, cjplummer

(cherry picked from commit d7c34d2bcc)
2020-02-03 13:21:44 +07:00
cjplummer
289790a09c 8228625: [TESTBUG] sun/tools/jhsdb/JShellHeapDumpTest.java fails with RuntimeException 'JShellToolProvider' missing from stdout/stderr
Summary: Give jshell process time to fully startup and stablize before requesting heap dump
Reviewed-by: sspitsyn, amenkov

(cherry picked from commit a7cf6a8277)
2020-02-03 13:21:43 +07:00
thartmann
bd131e63b1 8230388: Problemlist additional compiler/rtm tests
Summary: Putting tests on the problem list.
Reviewed-by: roland

(cherry picked from commit 8e94d9247e)
2020-02-03 13:21:43 +07:00
dcubed
15d06b2d17 8226899: Problemlist compiler/rtm tests
Reviewed-by: kvn

(cherry picked from commit e76ae699d3)
2020-02-03 13:21:42 +07:00
igerasim
98806edef8 8233886: TEST_BUG jdk/java/net/CookieHandler/B6791927.java hit hardcoded expiration date
Reviewed-by: chegar, vtewari

(cherry picked from commit 5a324e6eae)
2020-02-03 13:21:41 +07:00
rriggs
7204b19d77 8224505: TestQuotedLogOutput failure after ProcessBuilder changes
Reviewed-by: alanb

(cherry picked from commit 10e4cc830d)
2020-02-03 13:21:40 +07:00
dfuchs
069264200e 8216363: NullPointerException in java.util.logging.Handler#isLoggable
Summary: The implementation is changed to match the spec: isLoggable(null) returns false.
Reviewed-by: mchung, lancea

(cherry picked from commit 59ae671635)
2020-02-03 13:21:39 +07:00
jnimeh
a77c89ada1 8211866: TLS 1.3 CertificateRequest message sometimes offers disallowed signature algorithms
Reviewed-by: xuelei

(cherry picked from commit 980886ace9)
2020-02-03 13:21:39 +07:00
serb
d4aac84259 8211147: Incorrect comparator com.sun.beans.introspect.MethodInfo.MethodOrder
Reviewed-by: prr

(cherry picked from commit 74e6b1d499)
2020-02-03 13:21:38 +07:00
weijun
865cd8ade0 8209771: jdk.test.lib.Utils::runAndCheckException error
Reviewed-by: dholmes

(cherry picked from commit 171853966e)
2020-02-03 13:21:37 +07:00
kvn
ddd6db4a55 8202359: [GRAAL] compiler/uncommontrap/TestDeoptOOM.java failed with OutOfMemoryError
Summary: exclude this test from running with Java Graal
Reviewed-by: iveresov

(cherry picked from commit 9082655773)
2020-02-03 13:21:36 +07:00
igerasim
381206df90 8200381: Typos in javadoc - missing verb "be" and alike
Reviewed-by: lancea, darcy, wetmore

(cherry picked from commit b46b385c97)
2020-02-03 13:21:36 +07:00
michaelm
9fdd5cd346 8185898: setRequestProperty(key, null) results in HTTP header without colon in request
Reviewed-by: chegar, dfuchs

(cherry picked from commit c415d45310)
2020-02-03 13:21:34 +07:00
serb
0ebf68e12d 8144125: [macOS] java/awt/event/ComponentEvent/MovedResizedTwiceTest/MovedResizedTwiceTest.java failed automatically
Reviewed-by: dmarkov

(cherry picked from commit 5c26690e26)
2020-02-03 13:21:34 +07:00
jpai
2fc01e977a 8232879: Writing out data with the Zip File System leads to a CRC failure
Reviewed-by: lancea, clanger
Contributed-by: Jaikiran Pai <jai.forums2013@gmail.com>

(cherry picked from commit 9f4825e253)
2020-02-03 13:21:33 +07:00
mbaesken
769e244c0b 8233203: fix non-product build on AIX when compiling with xlc16/legacy-xlc
Reviewed-by: clanger, mdoerr

(cherry picked from commit 32ac71c499)
2020-02-03 13:21:32 +07:00
dmarkov
97712edf4a 8225505: ctrl-F1 does not show the tooltip of a menu item (JMenuItems)
Reviewed-by: psadhukhan, serb

(cherry picked from commit 101cd5996c)
2020-02-03 13:21:31 +07:00
serb
9283f60751 8221246: NullPointerException within Win32ShellFolder2
Reviewed-by: prr

(cherry picked from commit 0359fc6005)
2020-02-03 13:21:31 +07:00
lucy
7cc340396a 8231403: [ppc]: Align ReservedCodeCacheSize default value with other platforms
Reviewed-by: goetz

(cherry picked from commit 1064cda1bd)
2020-02-03 13:21:30 +07:00
mbaesken
33215b24a0 8232381: add result NULL-checking to freetypeScaler.c
Reviewed-by: clanger, prr

(cherry picked from commit 33465f55e9)
2020-02-03 13:21:30 +07:00
ecaspole
e5a64d9b45 8233075: JFR - nmetods - misspelled in several places
Reviewed-by: hseigel, mseledtsov

(cherry picked from commit 0e0762b050)
2020-02-03 13:21:29 +07:00
roland
903eb7dba1 8231620: assert(bol->is_Bool()) crash during split if due to FastLockNode
Reviewed-by: vlivanov, thartmann

(cherry picked from commit 262666e870)
2020-02-03 13:21:28 +07:00
mbalao
acb9ed6b83 8215032: Support Kerberos cross-realm referrals (RFC 6806)
Reviewed-by: weijun

(cherry picked from commit 88be2910ce)
2020-02-03 13:21:27 +07:00
neliasso
90c824cc48 8214773: Replace use of thread unsafe strtok
Reviewed-by: thartmann, dholmes

(cherry picked from commit c75fb10878)
2020-02-03 13:21:27 +07:00
mdoerr
ae3c398f88 8216426: Usage of array placement new may lead to memory corruption
Reviewed-by: rehn, kbarrett, rkennke, eosterlund

(cherry picked from commit 20ed2bda8e)
2020-02-03 13:21:26 +07:00
bobv
475e51d02e 8220476: Incorrect GPL header in src/jdk.internal.jvmstat/share/classes/sun/jvmstat/perfdata/monitor/protocol/local/PerfDataFile.java
Reviewed-by: lancea

(cherry picked from commit 0300ab165a)
2020-02-03 13:21:25 +07:00
gadams
9191e4d01f 8220474: Incorrect GPL header in src/java.instrument/share/classes/java/lang/instrument/package-info.java
Reviewed-by: dholmes

(cherry picked from commit 8fe3161d7e)
2020-02-03 13:21:25 +07:00
dtitov
fa2603f058 8221532: Incorrect copyright header in FileSystemSupport_md.c
Reviewed-by: cjplummer, gadams

(cherry picked from commit 610d83566b)
2020-02-03 13:21:24 +07:00
prr
dc417274b0 8212071: Need to set the FreeType LCD Filter to reduce fringing.
Reviewed-by: prr, lbourges
Contributed-by: John Neffenger <john@status6.com>

(cherry picked from commit 620deb17d4)
2020-02-03 13:21:24 +07:00
gromero
cecc1158a8 8209972: [GRAAL] Don't run RTM tests with Graal
Reviewed-by: kvn, goetz

(cherry picked from commit c781a9f263)
2020-02-03 13:21:23 +07:00
ihse
22001f0498 8214311: dtrace gensrc has missing dependencies
Reviewed-by: tbell, erikj, clanger

(cherry picked from commit ff3df98fdf)
2020-02-03 13:21:23 +07:00
cito
23c95ded58 8223697: jfr tool can't format duration values greater than 1 minute
Reviewed-by: egahlin

(cherry picked from commit 976cf67f3f)
2020-02-03 13:21:22 +07:00
egahlin
3338456f5c 8215771: The jfr tool should pretty print reference chains
Reviewed-by: mgronlun

(cherry picked from commit cd2cea1e6f)
2020-02-03 13:21:21 +07:00
mdoerr
9a04bcf7b6 8232005: [s390, PPC64] More exception checks missing in interpreter
Reviewed-by: rrich, goetz

(cherry picked from commit 49820156ad)
2020-02-03 13:21:21 +07:00
xuelei
f68485346b 8218580: endpoint identification algorithm should be case-insensitive
Reviewed-by: jnimeh

(cherry picked from commit cafadfe2fc)
2020-02-03 13:21:20 +07:00
rkennke
fc6fea804c 8231085: C2/GC: Better GC-interface for expanding clone
Reviewed-by: eosterlund

(cherry picked from commit 0bd132ffb4)
2020-02-03 13:21:20 +07:00
jiefu
d3cd341660 8229169: False failure of GenericTaskQueue::pop_local on architectures with weak memory model
Reviewed-by: mdoerr, kbarrett, tschatzl

(cherry picked from commit 09c387dd3a)
2020-02-03 13:21:19 +07:00
iignatyev
8bb6783826 8207922: ctw of jdk.security.auth failed with "Unexpected zero exit codebefore finishing all compilations"
Reviewed-by: roland, thartmann

(cherry picked from commit b6284527df)
2020-02-03 13:21:19 +07:00
fyang
edb467d653 8231988: Unexpected test result caused by C2 IdealLoopTree::do_remove_empty_loop
Summary: Duplicate cmp node in empty loop if it has other users
Reviewed-by: neliasso, thartmann
Contributed-by: wanghuang3@huawei.com, xietuo@huawei.com

(cherry picked from commit 1fa5608196)
2020-02-03 13:21:18 +07:00
jwilhelm
e1e26eec57 8214052: [testbug] vmTestbase/vm/compiler/CodeCacheInfoOnCompilation - wrong shell used
Reviewed-by: jwilhelm
Contributed-by: merkel05@gmail.com

(cherry picked from commit f83757e077)
2020-02-03 13:21:17 +07:00
shade
72622176d4 8232051: Epsilon should warn about Xms/Xmx/AlwaysPreTouch configuration
Reviewed-by: zgu

(cherry picked from commit 7ba305cd72)
2020-02-03 13:21:16 +07:00
chagedorn
c40ceb3690 8232874: Add missing test for 8230062
Summary: Adds a missing test which verifies the bug fix of 8230062.
Reviewed-by: roland, thartmann

(cherry picked from commit fd33162fc5)
2020-02-03 13:21:16 +07:00
dfuchs
5016e40ed6 8221395: HttpClient leaving connections in CLOSE_WAIT state until Java process ends
Summary: When a non WebSocket connection is not returned to the pool, it needs to be closed even if HttpConnection::isOpen yields false.
Reviewed-by: chegar, michaelm

(cherry picked from commit 7194705ba6)
2020-02-03 13:21:15 +07:00
mbaesken
6d78da7015 8215411: some GetByteArrayElements calls miss corresponding Release
Reviewed-by: dholmes, jcbeyler

(cherry picked from commit 1bef94548a)
2020-02-03 13:21:15 +07:00
kbarrett
3e490c83ac 8229156: ProblemList gc/stress/gclocker/TestExcessGCLockerCollections.java
Reviewed-by: shade

(cherry picked from commit e6ceb0fe6a)
2020-02-03 13:21:14 +07:00
mbaesken
d13b98396b 8231751: on aix handle Power 9 in os::get_summary_cpu_info
Reviewed-by: clanger, mdoerr

(cherry picked from commit 2f52b1143b)
2020-02-03 13:21:13 +07:00
ysuenaga
bd8b0859e0 8232592: <Unknown compiled code> is shown in jstack mixed mode
Reviewed-by: cjplummer, phh

(cherry picked from commit d4798270c1)
2020-02-03 13:21:13 +07:00
rschmelter
839a5cd78e 8191521: handle long relative path specified in -Xbootclasspath/a on windows
8231885: Fix/remove malformed assert in os_windows.cpp
8231930: Windows build fails after JDK-8191521
Reviewed-by: ccheung, clanger

(cherry picked from commit e6ecc6977e)
2020-02-03 13:21:12 +07:00
cito
e3613c02ad 8225694: Destination option missing in FlightRecorderMXBeanImpl
Reviewed-by: egahlin

(cherry picked from commit 54594a3a5a)
2020-02-03 13:21:12 +07:00
serb
a89b58dd8b 8134672: [TEST_BUG] Some tests should check isDisplayChangeSupported
Reviewed-by: prr

(cherry picked from commit c9ae2287e7)
2020-02-03 13:21:11 +07:00
serb
f0256c70a7 8215105: java/awt/Robot/HiDPIScreenCapture/ScreenCaptureTest.java: Wrong Pixel Color
Reviewed-by: prr

(cherry picked from commit 6a0075a0d9)
2020-02-03 13:21:10 +07:00
serb
1525af526e 8225101: Crash at sun.awt.X11.XlibWrapper.XkbGetUpdatedMap when change keybord map
Reviewed-by: prr, pbansal

(cherry picked from commit 131c15e84a)
2020-02-03 13:21:10 +07:00
poonam
bc42e87114 8229420: [Redo] jstat reports incorrect values for OU for CMS GC
Reviewed-by: tschatzl, sgehwolf

(cherry picked from commit 139cef3f71)
2020-02-03 13:21:09 +07:00
vkempik
6c8eb59ac4 8229872: (fs) Increase buffer size used with getmntent
Summary: Dynamically allocate memory for getmntent
Reviewed-by: alanb

(cherry picked from commit 29dcde44a9)
2020-02-03 13:21:08 +07:00
rhalade
c2566ae858 8231887: ComodoCA.java fails because certificate was revoked
Reviewed-by: mullan, clanger

(cherry picked from commit 0be3a3d510)
2020-02-03 13:21:08 +07:00
dfuchs
03267e201e 8216561: HttpClient: The logic of retry on connect exception is inverted
Summary: Allows retry on connect exception by default, ensuring that the second attempt takes into account the time spent in the first attempt in order to honor the connect timeout value (if present).
Reviewed-by: chegar

(cherry picked from commit 41f7f7ec92)
2020-02-03 13:21:07 +07:00
erikj
c7e2ac524e 8213005: Missing symbols in hs_err files on Windows after JDK-8212028
Reviewed-by: ctornqvi

(cherry picked from commit 194ff2a76c)
2020-02-03 13:21:07 +07:00
erikj
695de94fec 8212028: Use run-test makefile framework for testing in Oracle's Mach5
Reviewed-by: ihse

(cherry picked from commit 6c6ebdfe5c)
2020-02-03 13:21:06 +07:00
erikj
c60536fea2 8211037: Load jib jars dynamically from JibArtifactManager
Reviewed-by: ihse

(cherry picked from commit 6153b10950)
2020-02-03 13:21:05 +07:00
ccheung
391473d61a 8190737: use unicode version of the canonicalize() function to handle long path on windows
Summary: also calling CreateFileW in zip_util.c to handle long path
Reviewed-by: sherman, iklam

(cherry picked from commit 530914ca89)
2020-02-03 13:21:05 +07:00
igerasim
60133f0aba 8230303: JDB hangs when running monitor command
Reviewed-by: sspitsyn

(cherry picked from commit e5113d0e43)
2020-02-03 13:21:04 +07:00
chagedorn
c61a8c8450 8230062: assert(i == p->size()-1) failed: must be last element of the pack
Summary: Avoids vectorization of reduction chain in which an intermediate result is used.
Reviewed-by: roland, thartmann

(cherry picked from commit 0d8c2743b8)
2020-02-03 13:21:03 +07:00
shade
d2f1d2ffe1 8231503: [TESTBUG] compiler/{jvmci,aot} tests should not run with GCs that do not support JVMCI/AOT
Reviewed-by: kvn, dlong, stefank

(cherry picked from commit be9046a53e)
2020-02-03 13:21:03 +07:00
stefank
2844e3c119 8221913: Add GC.selected() jtreg-ext function
Reviewed-by: kbarrett, pliden

(cherry picked from commit e65e644a0f)
2020-02-03 13:21:02 +07:00
joehw
a84102aa87 8016914: CoreDocumentImpl.setXmlVersion NPE
Reviewed-by: lancea

(cherry picked from commit f8d10b4428)
2020-02-03 13:21:01 +07:00
coffeys
2cf444bc0f 8231770: Test java/util/zip/FlaterTest.java fails with -Xcheck:jni
Reviewed-by: alanb, coffeys, chegar
Contributed-by: kiran.sidhartha.ravikumar@oracle.com

(cherry picked from commit c775ddc60a)
2020-02-03 13:21:01 +07:00
jiefu
4b0e9f2740 8229020: Failure on CPUs allowing loads reordering: assert(_tasks[t] == 1) failed: What else?
Reviewed-by: tschatzl, kbarrett

(cherry picked from commit 4aef972c9f)
2020-02-03 13:21:00 +07:00
serb
b9e1694e52 8213568: Typo in java/awt/GraphicsEnvironment/LoadLock/GE_init5.java
Reviewed-by: prr

(cherry picked from commit 0c2b9693a2)
2020-02-03 13:21:00 +07:00
dtitov
d4c4f7dc95 8220175: serviceability/dcmd/framework/VMVersionTest.java fails with a timeout
Reviewed-by: sspitsyn, cjplummer

(cherry picked from commit e1391531d8)
2020-02-03 13:20:59 +07:00
serb
69d3ad3713 8219504: Test for JDK-8211435 can be run on all platforms
Reviewed-by: kaddepalli, dmarkov, sveerabhadra

(cherry picked from commit d6b010d653)
2020-02-03 13:20:58 +07:00
kbarrett
862ce55989 8048556: Unnecessary GCLocker-initiated young GCs
Summary: Fixed recognition of unnecessary GCLocker collections.
Reviewed-by: pliden, tschatzl

(cherry picked from commit eaf5d37349)
2020-02-03 13:20:58 +07:00
egahlin
966c698af1 8224217: RecordingInfo should use textual representation of path
Reviewed-by: mgronlun

(cherry picked from commit 5c230b3b50)
2020-02-03 13:20:57 +07:00
shade
815d7c8dec 8231201: hs_err should print coalesced safepoint operations in Events section
Reviewed-by: phh, dholmes

(cherry picked from commit 2adb57d11e)
2020-02-03 13:20:57 +07:00
pliden
c147cf7d5c 8221456: nmethod::make_unloaded() clears _method member too early
Reviewed-by: eosterlund, thartmann

(cherry picked from commit 47f5eccb68)
2020-02-03 13:20:56 +07:00
prr
c814d77b3d 8229800: WindowsServerCore 1809 does not provide d2d1.dll library required by awt.dll
Reviewed-by: jdv, serb, aaivanov

(cherry picked from commit e80dcbc58d)
2020-02-03 13:20:55 +07:00
mbaesken
a148b9e7ad 8228368: avoid incompatible pointer to integer conversion initializing gint in gtk2_interface
Reviewed-by: prr

(cherry picked from commit 7864dbf77b)
2020-02-03 13:20:55 +07:00
dzhou
6f205375f2 8215913: [Test_bug]java/util/Locale/LocaleProvidersRun.java failed on de_DE and ja_JP locale.
Reviewed-by: naoto, rgoel, rriggs

(cherry picked from commit 57add311ce)
2020-02-03 13:20:54 +07:00
pliden
0945a66e4a 8231294: ZGC: vmTestbase/nsk/jvmti/ResourceExhausted/resexhausted002 fails
Reviewed-by: shade, dholmes

(cherry picked from commit ccdec15cf8)
2020-02-03 13:20:54 +07:00
pliden
273aff426c 8231296: ZGC: vmTestbase/nsk/jvmti/Allocate/alloc001/ fails
Reviewed-by: sspitsyn, dcubed, iignatyev

(cherry picked from commit 78a3117309)
2020-02-03 13:20:53 +07:00
bpb
d6fb6dbded 8229022: BufferedReader performance can be improved by using StringBuilder
Reviewed-by: igerasim, vtewari, dfuchs

(cherry picked from commit 934b31bb1f)
2020-02-03 13:20:53 +07:00
aeubanks
897db0d955 8229899: Make java.io.File.isInvalid() less racy
Reviewed-by: alanb, martin, shade

(cherry picked from commit 7dfb4e1422)
2020-02-03 13:20:52 +07:00
thartmann
dcd069af25 8231223: C2's conditional move optimization fails with assert(bol->Opcode() == Op_Bool) failed
Summary: Bail out if the range check If has an Opaque4Node input instead of a BoolNode.
Reviewed-by: roland, kvn

(cherry picked from commit 849ccb0f71)
2020-02-03 13:20:51 +07:00
roland
83b86ac717 8230061: # assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node
Reviewed-by: thartmann, neliasso

(cherry picked from commit 23635b2c44)
2020-02-03 13:20:51 +07:00
shade
9dab4d0de3 8230671: x86_32 build failures after JDK-8229496
Reviewed-by: thartmann

(cherry picked from commit 0da8b2e292)
2020-02-03 13:20:50 +07:00
thartmann
1aab11d1ec 8229496: SIGFPE (division by zero) in C2 OSR compiled method
Summary: Adding a CastNode to keep the dependency between the div/mod operation and the zero check.
Reviewed-by: roland, mdoerr

(cherry picked from commit fd962940f0)
2020-02-03 13:20:49 +07:00
rrich
8b981b1356 8230363: C2: Let ConnectionGraph::not_global_escape(Node* n) return false if n is not in the CG
Reviewed-by: thartmann, mdoerr

(cherry picked from commit d44fd1fc25)
2020-02-03 13:20:48 +07:00
roland
ee8cf142fe 8231665: 8231055 broke escapeAnalysis/TestSelfArrayCopy.java
Reviewed-by: thartmann

(cherry picked from commit c6e27a2803)
2020-02-03 13:20:48 +07:00
roland
bba465cc9d 8231055: C2: arraycopy with same non escaping src and dest but different positions causes wrong execution
Reviewed-by: thartmann, vlivanov

(cherry picked from commit f8d3ac276a)
2020-02-03 13:20:47 +07:00
clanger
e8b43c3bb3 8223869: Problem list java/awt/FontMetrics/MaxAdvanceIsMax.java on more platforms
Reviewed-by: goetz

(cherry picked from commit 2963e93679)
2020-02-03 13:20:47 +07:00
roland
b16bb1e1aa 8229483: Sinking load out of loop may trigger: assert(found_sfpt) failed: no node in loop that's not input to safepoint
Reviewed-by: thartmann, neliasso

(cherry picked from commit e8f49f1c08)
2020-02-03 13:20:46 +07:00
mbaesken
24e4e90f6e 8229284: jdk/internal/platform/cgroup/TestCgroupMetrics.java fails for - memory:getMemoryUsage
Reviewed-by: mseledtsov, sgehwolf

(cherry picked from commit 27ebcae325)
2020-02-03 13:20:46 +07:00
clanger
d9eb3d038c 8231318: Several compiler/aot tests fail for JDK11 on Windows when only MSVC 2017 is installed
Reviewed-by: kvn

(cherry picked from commit eff0d1b71b)
2020-02-03 13:20:45 +07:00
sgehwolf
b0fee4ddeb 8228434: jdk/net/Sockets/Test.java fails after JDK-8227642
Summary: Move container constant to separate test lib class
Reviewed-by: alanb

(cherry picked from commit 56c966e762)
2020-02-03 13:20:44 +07:00
sgehwolf
66eadf40d2 8227642: [TESTBUG] Make docker tests podman compatible
Reviewed-by: mseledtsov, iignatyev

(cherry picked from commit 63e4311f2e)
2020-02-03 13:20:44 +07:00
bobv
230633f3e4 8224502: [TESTBUG] JDK docker test TestSystemMetrics.java fails with access issues and OOM
Reviewed-by: sgehwolf, mseledtsov

(cherry picked from commit ae26ba75f9)
2020-02-03 13:20:43 +07:00
simonis
637e68c482 8220528: [AIX] Fix basic Xinerama and Xrender functionality
Reviewed-by: clanger, stuefe, serb

(cherry picked from commit 8b929de8d4)
2020-02-03 13:20:43 +07:00
mgronlun
c7bb67da59 8227605: Kitchensink fails "assert((((klass)->trace_id() & (JfrTraceIdEpoch::leakp_in_use_this_epoch_bit())) != 0)) failed: invariant"
Reviewed-by: dholmes, dcubed, egahlin

(cherry picked from commit 5839e78f3e)
2020-02-03 13:20:42 +07:00
mgronlun
86776127b4 8227411: TestTimeMultiple.java failed "assert(!lease()) failed: invariant"
Reviewed-by: egahlin

(cherry picked from commit 549fdb70a7)
2020-02-03 13:20:42 +07:00
mgronlun
50b9694fbb 8217362: Emergency dump does not work when disk=false is set
Reviewed-by: egahlin, ysuenaga
Contributed-by: yasuenag@gmail.com

(cherry picked from commit 07d0133874)
2020-02-03 13:20:41 +07:00
alanb
b635341ea0 8215449: Several tests failing when jtreg run with -vmoption:--illegal-access=deny
Reviewed-by: redestad, mchung, jjg, adinn, clanger

(cherry picked from commit 61a4546299)
2020-02-03 13:20:40 +07:00
mseledtsov
153602caaa 8228687: [TESTBUG] exclude Container tests from hotspot_misc group
Summary: Excluded hotspot_containers from hotspot_misc
Reviewed-by: dcubed, adinn

(cherry picked from commit f90998904e)
2020-02-03 13:20:40 +07:00
vromero
59a395825a 8210789: langtools/tools/javac/T8152616.java missing @modules
Reviewed-by: jjg

(cherry picked from commit 72b5b8fe0b)
2020-02-03 13:20:39 +07:00
shurailine
d54188f24e 8208364: java/lang/reflect/callerCache/ReflectionCallerCacheTest.java missing module dependencies declaration
Reviewed-by: mchung

(cherry picked from commit 1e549d3f92)
2020-02-03 13:20:39 +07:00
mbaesken
f6d3860180 8228902: add os::dll_load to the unified logging os category
Reviewed-by: coleenp, mdoerr

(cherry picked from commit b1a2d8708a)
2020-02-03 13:20:38 +07:00
mbaesken
15f68062b2 8230861: missing ReleaseStringUTFChars in Java_sun_security_pkcs11_wrapper_PKCS11_connect
Reviewed-by: alanb, stuefe

(cherry picked from commit f1c036af5f)
2020-02-03 13:20:38 +07:00
mbaesken
e2db292151 8230856: Java_java_net_NetworkInterface_getByName0 on unix misses ReleaseStringUTFChars in early return
Reviewed-by: dfuchs, stuefe, vtewari

(cherry picked from commit ac5e1d600c)
2020-02-03 13:20:37 +07:00
mbaesken
c6ba3e8644 8230900: missing ReleaseStringUTFChars in java.desktop native code
Reviewed-by: clanger, prr

(cherry picked from commit a6d9a208f2)
2020-02-03 13:20:37 +07:00
mbaesken
63838c33a2 8230901: missing ReleaseStringUTFChars in serviceability native code
Reviewed-by: stuefe, sspitsyn

(cherry picked from commit 4e995ce9d1)
2020-02-03 13:20:36 +07:00
jiefu
87d6fb04e3 8230943: False deadlock detection with -XX:+CIPrintCompileQueue after JDK-8163511
Reviewed-by: dholmes, thartmann

(cherry picked from commit 9dee330c79)
2020-02-03 13:20:35 +07:00
azeller
3daf61e5f5 8230110: TestLinkageErrorInGenerateOopMap times out
Reviewed-by: stuefe, clanger, thartmann

(cherry picked from commit fdc03195eb)
2020-02-03 13:20:34 +07:00
mgronlun
fb44a596fb 8224172: assert(jfr_is_event_enabled(id)) failed: invariant
Reviewed-by: dcubed, dholmes

(cherry picked from commit 67ed8faeec)
2020-02-03 13:20:34 +07:00
egahlin
dda8476316 8216064: -XX:StartFlightRecording:settings= doesn't work properly
Reviewed-by: mgronlun

(cherry picked from commit 536200abd3)
2020-02-03 13:20:33 +07:00
stuefe
4ca67d4f76 8227035: JVM::printFlags fails in native OOM situations
Reviewed-by: goetz, gziemski

(cherry picked from commit 37fa50ad95)
2020-02-03 13:20:33 +07:00
stuefe
f567203e2d 8227032: MetaspaceUtils::print_report crashes when called before initialization
Reviewed-by: tschatzl, goetz

(cherry picked from commit 9c5d154d85)
2020-02-03 13:20:32 +07:00
stuefe
331acc866d 8227031: Print NMT statistics on fatal errors
Reviewed-by: mbaesken, mdoerr

(cherry picked from commit 1dbb83d6ec)
2020-02-03 13:20:31 +07:00
mbalao
ac092f3122 8230923: SunJSSE is not properly initialized in FIPS mode from a configuration file
Reviewed-by: andrew

(cherry picked from commit 896fe14e07)
2020-02-03 13:20:31 +07:00
clanger
ce528b1911 8231247: (zipfs) Test failure in jdk/nio/zipfs/InvalidZipHeaderTests.java after backport of JDK-8222807
Reviewed-by: goetz

(cherry picked from commit 3574794cea)
2020-02-03 13:20:30 +07:00
mseledtsov
5637b6ff28 8226779: [TESTBUG] Test JFR API from Java agent
Summary: Created new tests for JFR plus Java Agent
Reviewed-by: egahlin

(cherry picked from commit ba91288a28)
2020-02-03 13:20:30 +07:00
egahlin
8979e5e21e 8214750: Unnecessary <p> tags in jfr classes
Reviewed-by: mgronlun

(cherry picked from commit ed44eb9758)
2020-02-03 13:20:29 +07:00
rschmelter
b26b4ca84e 8227435: Perf::attach() should not throw a java.lang.Exception
Reviewed-by: sspitsyn, clanger, dholmes

(cherry picked from commit 5f32cecaf1)
2020-02-03 13:20:28 +07:00
dcubed
1c11e73227 8227338: templateInterpreter.cpp: copy_table() needs to be safer
Reviewed-by: dholmes, eosterlund, sspitsyn, kbarrett

(cherry picked from commit cca764cceb)
2020-02-03 13:20:28 +07:00
mbaesken
c5760ea575 8223438: add VirtualizationInformation JFR event
Reviewed-by: clanger, egahlin

(cherry picked from commit fd530693a7)
2020-02-03 13:20:27 +07:00
lancea
587ed266a1 8222807: Address iteration with invalid ZIP header entries
Reviewed-by: redestad, clanger

(cherry picked from commit ed6fba57ee)
2020-02-03 13:20:26 +07:00
rschmelter
3c3f2b0477 8222529: sun.jdwp.listenerAddress agent property uses wrong encoding
Reviewed-by: sspitsyn, amenkov, clanger, erikj

(cherry picked from commit d0b47d84dd)
2020-02-03 13:20:26 +07:00
clanger
9324bf334c 8222440: (zipfs) JarFileSystem does not correctly handle versioned entries if no root entry is present
Reviewed-by: lancea

(cherry picked from commit 23bcfb1622)
2020-02-03 13:20:25 +07:00
lancea
901c37acb6 8211919: ZipDirectoryStream should provide a stream of paths that are relative to the directory
Reviewed-by: alanb, clanger

(cherry picked from commit b8fca4849f)
2020-02-03 13:20:24 +07:00
sherman
bf333df438 8211385: (zipfs) ZipDirectoryStream yields a stream of absolute paths when directory is relative
Reviewed-by: alanb, lancea

(cherry picked from commit f3610a5923)
2020-02-03 13:20:24 +07:00
stuefe
23402c3c64 8214975: No hs-err file if fatal error is raised during dynamic initialization
Reviewed-by: dholmes, dcubed, clanger

(cherry picked from commit aa0e1862af)
2020-02-03 13:20:23 +07:00
sgehwolf
e29deb6a70 8227397: Add --with-extra-asflags configure option
Reviewed-by: phh

(cherry picked from commit cae492bf2c)
2020-02-03 13:20:22 +07:00
roland
b5583f4f8c 8229701: aarch64: C2 OSR compilation fails with "shouldn't process one node several times" in final graph reshaping
Reviewed-by: thartmann, kvn

(cherry picked from commit 9ce169d3f0)
2020-02-03 13:20:22 +07:00
jiefu
d3c249e32f 8230376: [TESTBUG] runtime/StackTrace/HiddenFrameTest.java fails with release VM
Reviewed-by: dholmes

(cherry picked from commit 958579aa25)
2020-02-03 13:20:21 +07:00
coleenp
97c0affd48 8216977: ShowHiddenFrames use in java_lang_StackTraceElement::fill_in appears broken
Summary: Return NULL source file and negative line number for hidden frames.
Reviewed-by: dholmes, hseigel

(cherry picked from commit 1d9f47e5b1)
2020-02-03 13:20:21 +07:00
roland
1c4d79a505 8209835: Aarch64: elide barriers on all volatile operations
Reviewed-by: aph, adinn

(cherry picked from commit c3d8700c8c)
2020-02-03 13:20:15 +07:00
mbaesken
ab514cf24b 8229182: runtime/containers/docker/TestMemoryAwareness.java test fails on SLES12
Reviewed-by: clanger, mseledtsov

(cherry picked from commit f5d33c65a9)
2020-02-03 13:20:09 +07:00
mbaesken
745fd10567 8230769: BufImg_SetupICM add ReleasePrimitiveArrayCritical call in early return
Reviewed-by: prr, stuefe

(cherry picked from commit 8b940e1571)
2020-02-03 13:20:04 +07:00
mbaesken
eb97cf7245 8230711: ConnectionGraph::unique_java_object(Node* N) return NULL if n is not in the CG
Reviewed-by: mdoerr

(cherry picked from commit b39decf7e5)
2020-02-03 13:19:58 +07:00
mbaesken
64acb52642 8230466: check malloc/calloc results in jdk.hotspot.agent
Reviewed-by: cjplummer, ysuenaga, sspitsyn

(cherry picked from commit 8064329207)
2020-02-03 13:19:53 +07:00
coleenp
7457b2cc8c 8210559: ClassLoaderData Symbols can leak
Summary: unrefcount the symbol names when the CLD is destroyed
Reviewed-by: lfoltan, jiangli, iklam

(cherry picked from commit 9af589e612)
2020-02-03 13:19:48 +07:00
shade
97a42d136c 8230813: Add JDK-8010500 to compiler/loopopts/superword/TestFuzzPreLoop.java bug list
Reviewed-by: zgu

(cherry picked from commit 2edd846525)
2020-02-03 13:19:42 +07:00
shade
114a12eb28 8230238: Add another regression test for JDK-8134739
Reviewed-by: kvn

(cherry picked from commit 4f861ec281)
2020-02-03 13:19:37 +07:00
thartmann
0c2042ab62 8213014: Crash in CompileBroker::make_thread due to OOM
Summary: Added missing null checks and checks for pending exception.
Reviewed-by: kvn, dholmes, mdoerr

(cherry picked from commit b698664672)
2020-02-03 13:19:31 +07:00
smarks
be3131039c 8227368: EnumSet.class serialization broken in JDK 9+
Reviewed-by: plevart, clanger

(cherry picked from commit 9acfc97d0a)
2020-02-03 13:19:26 +07:00
mdoerr
e8f1a1904e 8213604: Fix missing includes after JDK-8212673
Reviewed-by: tschatzl, roland

(cherry picked from commit 9ee5c461a3)
2020-02-03 13:19:21 +07:00
egahlin
d632c2a999 8216283: Allow shorter method sampling interval than 10 ms
Reviewed-by: mgronlun

(cherry picked from commit afc75a9be5)
2020-02-03 13:19:16 +07:00
cito
685ab28cc9 8221569: JFR tool produces incorrect output when both --categories and --events are specified
Reviewed-by: mgronlun
Contributed-by: chihiro.ito@oracle.com, erik.gahlin@oracle.com

(cherry picked from commit 4c3cd262eb)
2020-02-03 13:19:11 +07:00
mseledtsov
f35131497c 8222888: [TESTBUG] docker/TestJFREvents.java fails due to "RuntimeException: JAVA_MAIN_CLASS_ is not defined"
Summary: Introduced unique environment variable
Reviewed-by: egahlin, lmesnik, sgehwolf

(cherry picked from commit d58f2786e0)
2020-02-03 13:19:05 +07:00
mseledtsov
f491668352 8221711: [TESTBUG] create more tests for JFR in container environment
Summary: Added test cases for environment and network events
Reviewed-by: egahlin

(cherry picked from commit 07f40b07fe)
2020-02-03 13:19:00 +07:00
ysuenaga
c5291bb0ea 8220555: JFR tool shows potentially misleading message when it cannot access a file
Reviewed-by: egahlin, mseledtsov

(cherry picked from commit 05fa67b8aa)
2020-02-03 13:18:55 +07:00
thartmann
54566f03ab 8229016: C2 scalarization crashes with assert(node->Opcode() == Op_CastP2X) failed: ConvP2XNode required
Summary: Detect array copy to self to avoid emitting another load to the to-be-removed allocation.
Reviewed-by: kvn

(cherry picked from commit bb0a118507)
2020-02-03 13:18:49 +07:00
rkennke
d9a334a819 8212673: jtreg/applications/runthese/RunThese30M.java fails in C2 with "assert(!had_error) failed: bad dominance"
Reviewed-by: thartmann, kvn, shade

(cherry picked from commit b440240952)
2020-02-03 13:18:44 +07:00
neliasso
8338417fbc 8218468: Load barrier slow path node should be MachTypeNode
Reviewed-by: shade, pliden, kvn

(cherry picked from commit f593eedf20)
2020-02-03 13:18:39 +07:00
cjplummer
741def697d 8220352: Crash with assert(external_guard || result != __null) failed: Invalid JNI handle
Summary: Don't delete globalrefs that might still be referenced
Reviewed-by: gadams, jcbeyler, sspitsyn

(cherry picked from commit 38ca7f71fa)
2020-02-03 13:18:34 +07:00
hseigel
de5e083b27 8215699: -Xlog::file cannot be used with named pipe
Summary: If the log file is a named pipe then change the default file_count to zero so no log file rotation is attempted.
Reviewed-by: lfoltan, coleenp

(cherry picked from commit 00b69ecc81)
2020-02-03 13:18:28 +07:00
shade
5ce4638c29 8230646: Epsilon does not extend TLABs to max size
Reviewed-by: tschatzl, zgu

(cherry picked from commit d7590fb32f)
2020-02-03 13:18:23 +07:00
mikael
2284734d93 8218935: Make jfr strncpy uses GCC 8.x friendly
Reviewed-by: clanger

(cherry picked from commit c61023ee9d)
2020-02-03 13:18:18 +07:00
mgronlun
9733d2b268 8229437: assert(is_aligned(ref, HeapWordSize)) failed: invariant
Reviewed-by: egahlin

(cherry picked from commit f47afca78a)
2020-02-03 13:18:13 +07:00
mgronlun
78250f5c3e 8228834: Regression caused by JDK-8214542 not installing complete checkpoint data to candidates
Reviewed-by: egahlin

(cherry picked from commit d9ddb3e20b)
2020-02-03 13:18:08 +07:00
mgronlun
612f0010a6 8214542: JFR: Old Object Sample event slow on a deep heap in debug builds
Reviewed-by: egahlin, rwestberg

(cherry picked from commit 6f692c140d)
2020-02-03 13:18:03 +07:00
xliu
f1f8f683e4 8229450: C2 compilation fails with assert(found_sfpt) failed
Reviewed-by: roland, thartmann

(cherry picked from commit 905d073f20)
2020-02-03 13:17:58 +07:00
eosterlund
2c3766f7a8 8210158: Accessorize JFR getEventWriter() intrinsics
Reviewed-by: kvn, neliasso, roland, rbackman

(cherry picked from commit 64a8947f2c)
2020-02-03 13:17:57 +07:00
eosterlund
2efcf36499 8208601: Introduce native oop barriers in C2 for OopHandle
Reviewed-by: neliasso, kvn

(cherry picked from commit 9257edcd56)
2020-02-03 13:17:52 +07:00
naoto
6277d9c4c0 8227127: Era designator not displayed correctly using the COMPAT provider
Reviewed-by: rriggs

(cherry picked from commit a04e50c329)
2020-02-03 13:17:47 +07:00
eosterlund
c923a07fd2 8208582: Introduce native oop barriers in C1 for OopHandle
Reviewed-by: coleenp, kvn

(cherry picked from commit 84bfbbb5c9)
2020-02-03 13:17:42 +07:00
ctornqvi
c2619571c2 8212627: [TESTBUG] runtime/CreateMirror/ArraysNewInstanceBug.java timed out
Reviewed-by: coleenp, dcubed, hseigel

(cherry picked from commit c16692d216)
2020-02-03 13:17:41 +07:00
thartmann
af866e1346 8210387: C2 compilation fails with "assert(node->_last_del == _last) failed: must have deleted the edge just produced"
Summary: Refresh iterator and start from the beginning while there is progress when removing dead regions.
Reviewed-by: kvn

(cherry picked from commit 63803b0322)
2020-02-03 13:17:40 +07:00
ascarpino
3e617704e2 8214098: sun.security.ssl.HandshakeHash.T12HandshakeHash constructor check backwards.
Reviewed-by: xuelei

(cherry picked from commit 58d18a3f0e)
2020-02-03 13:17:35 +07:00
neliasso
517600b0fe 8224538: LoadBarrierNode::common_barrier must check address
Reviewed-by: thartmann, kvn

(cherry picked from commit d988aa4291)
2020-02-03 13:17:30 +07:00
thartmann
37263c4289 8228772: C2 compilation fails due to unschedulable graph if DominatorSearchLimit is reached
Summary: Ignore membar if the load is already control dependent on it.
Reviewed-by: neliasso, kvn

(cherry picked from commit cf1d91b771)
2020-02-03 13:17:24 +07:00
neliasso
c769d6036c 8215755: ZGC: split_barrier_thru_phi: check number of inputs of phi
Reviewed-by: pliden, thartmann

(cherry picked from commit ed6dd0063c)
2020-02-03 13:17:19 +07:00
pliden
ed9aee4467 8215708: ZGC: Add missing LoadBarrierNode::size_of()
Reviewed-by: eosterlund, neliasso

(cherry picked from commit 2485fd3607)
2020-02-03 13:17:14 +07:00
roland
f32efc6dea 8209691: Allow MemBar on single memory slice
Reviewed-by: kvn, vlivanov

(cherry picked from commit 4e678448cc)
2020-02-03 13:17:08 +07:00
stuefe
f7782342ac 8225225: stringStream internal buffer should always be zero terminated
Reviewed-by: coleenp, dholmes

(cherry picked from commit e47b5a7cce)
2020-02-03 13:17:03 +07:00
stuefe
8d0134195f 8220394: bufferedStream does not honor size limit
Reviewed-by: dholmes, clanger

(cherry picked from commit 11525a9f35)
2020-02-03 13:16:57 +07:00
mseledtsov
43d401f3dc 8213448: [TESTBUG] enhance jfr/jvm/TestDumpOnCrash
Summary: added 2 more crash scenarios, removed dumponexit, and more
Reviewed-by: egahlin

(cherry picked from commit cb6a1b8ab4)
2020-02-03 13:16:57 +07:00
iklam
2cd6c650a0 8209647: constantPoolHandle::constantPoolHandle(ConstantPool*) when precompiled header is disabled
Summary: Added fieldDescriptor.inline.hpp
Reviewed-by: coleenp, shade

(cherry picked from commit 6b97023215)
2020-02-03 13:16:52 +07:00
iklam
3109b7f803 8209545: Simplify HeapShared::archive_module_graph_objects
Summary: Added archivable_static_fields array in heapShared.cpp
Reviewed-by: jiangli

(cherry picked from commit d5af21716b)
2020-02-03 13:16:47 +07:00
iklam
17365e8828 8206115: Use shared macros for JavaClasses::compute_offsets and MetaspaceShared::serialize_well_known_classes
Summary: Added BASIC_JAVA_CLASSES_DO in javaClasses.hpp
Reviewed-by: jiangli, redestad, coleenp

(cherry picked from commit 069a255c6b)
2020-02-03 13:16:46 +07:00
redestad
14a78ed84e 8209120: Archive the Integer.IntegerCache
Reviewed-by: jiangli, alanb, plevart, iklam, mchung

(cherry picked from commit 8d20f0cbcf)
2020-02-03 13:16:41 +07:00
jiangli
aae76713ae 8207263: Store the Configuration for system modules into CDS archive.
Summary: Archive boot layer Configuration.
Reviewed-by: redestad, iklam, ccheung

(cherry picked from commit cb086a6016)
2020-02-03 13:16:36 +07:00
redestad
4cfd1e0a40 8209003: Consolidate use of empty collections in java.lang.module
Reviewed-by: alanb, mchung

(cherry picked from commit 3c65b74093)
2020-02-03 13:16:35 +07:00
rkennke
44564c507b 8213381: Hook to allow GC to inject Node::Ideal() calls
Reviewed-by: kvn, eosterlund, roland

(cherry picked from commit 7892c95c0b)
2020-02-03 13:16:30 +07:00
thartmann
d5fb010162 8228888: C2 compilation fails with assert "m has strange control"
Summary: Weakened too strong assert.
Reviewed-by: kvn, roland

(cherry picked from commit 8865a01155)
2020-02-03 13:16:24 +07:00
thartmann
1f61ae05a2 8209833: C2 compilation fails with "assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place"
Summary: Deoptimize if exception is thrown in _clone intrinsic.
Reviewed-by: kvn

(cherry picked from commit 2b7bea7f17)
2020-02-03 13:16:19 +07:00
roland
06e2ae32b6 8216135: C2 assert(!had_error) failed: bad dominance
Reviewed-by: thartmann, kvn

(cherry picked from commit 481b87fbfa)
2020-02-03 13:16:13 +07:00
stefank
865926005b 8227086: Use AS_NO_KEEPALIVE loads in HeapDumper
Reviewed-by: kbarrett, sspitsyn

(cherry picked from commit 292eb6d30b)
2020-02-03 13:16:08 +07:00
mchung
9a2864cf0b 8193325: StackFrameInfo::getByteCodeIndex returns wrong value if bci > 32767
Reviewed-by: coleenp, fparain, shade, plevart

(cherry picked from commit 0183200122)
2020-02-03 13:16:03 +07:00
stuefe
d95da97089 8221406: Windows 32bit build error in NetworkInterface_winXP.c
Reviewed-by: clanger

(cherry picked from commit 25c9571a16)
2020-02-03 13:15:58 +07:00
egahlin
94c7a82100 8214925: JFR tool fails to execute
Reviewed-by: mgronlun, mseledtsov

(cherry picked from commit f2cef3852a)
2020-02-03 13:15:57 +07:00
egahlin
b5e1dd3d5b 8214896: JFR Tool left files behind
Reviewed-by: mgronlun

(cherry picked from commit 2699b817ca)
2020-02-03 13:15:51 +07:00
egahlin
f4dda58221 8205516: JFR tool
Reviewed-by: mgronlun

(cherry picked from commit ba1180e7a8)
2020-02-03 13:15:46 +07:00
ysuenaga
6eb8d2fcb9 8209790: SA tools not providing option to connect to debug server
Reviewed-by: sspitsyn, cjplummer

(cherry picked from commit eefbab5cbd)
2020-02-03 13:15:45 +07:00
mbaesken
a6299ba3a6 8224958: add os::dll_load calls to event log
Reviewed-by: dholmes, mdoerr, stuefe

(cherry picked from commit be146bff04)
2020-02-03 13:15:41 +07:00
stuefe
f289dcb8b0 8224193: stringStream should not use Resouce Area
Reviewed-by: goetz, coleenp, dholmes

(cherry picked from commit 820f0b9976)
2020-02-03 13:15:40 +07:00
stuefe
aace02838c 8222015: Small VM.metaspace improvements
Reviewed-by: jiangli, coleenp

(cherry picked from commit 12d30d9e28)
2020-02-03 13:15:35 +07:00
kbarrett
39351020c1 8214315: G1: fatal error: acquiring lock SATB_Q_FL_lock/1 out of order with lock tty_lock/0
Summary: Add new 'tty' lock rank.
Reviewed-by: eosterlund, tschatzl

(cherry picked from commit bd821c49f8)
2020-02-03 13:15:25 +07:00
goetz
595ee37a97 8229408: Bump update version for OpenJDK: jdk-11.0.6
Reviewed-by: shade

(cherry picked from commit 882499cc66)
2020-02-03 13:15:24 +07:00
bell-sw
6a2aa95650 Merge SunLayoutEngine.java: upstream version:
https://github.com/bell-sw/jdk11u-openjdk/commit/27522184
    https://github.com/JetBrains/JetBrainsRuntime/commit/1e1b932a
    https://github.com/JetBrains/JetBrainsRuntime/commit/bac12d45

(cherry picked from commit 9bfe5d8b56)
2020-02-03 13:15:24 +07:00
prr
a0698c858d 8210384: SunLayoutEngine.isAAT() font is expensive on MacOS
Reviewed-by: dmarkov, kaddepalli

Conflicts:
    src/java.desktop/share/classes/sun/font/SunLayoutEngine.java
(cherry picked from commit a0ac78c60f)
2020-02-03 13:15:19 +07:00
lbourges
c3eae1c3c6 8230728: Thin stroked shapes are not rendered if affine transform has flip bit
Summary: use abs(at.getDeterminant()) in userSpaceLineWidth() to ensure positive value
Reviewed-by: prr, jdv

(cherry picked from commit 5d6fcc8939)
2020-02-03 13:15:14 +07:00
lbourges
1005e7dcaa 8231693: Backout "8230728: Thin stroked shapes are not rendered if affine transform has flip bit" from jdk11u
Summary: revert push to jdk11u
Reviewed-by: sgehwolf

(cherry picked from commit 4b9128c444)
2020-02-03 13:15:13 +07:00
lbourges
c714985bab 8230728: Thin stroked shapes are not rendered if affine transform has flip bit
Summary: use abs(at.getDeterminant()) in userSpaceLineWidth() to ensure positive value
Reviewed-by: prr, jdv

(cherry picked from commit d448321ce9)
2020-02-03 13:15:13 +07:00
bell-sw
72eb557f5b Simple merge: windows.fontconfig.properties:
https://github.com/bell-sw/jdk11u-openjdk/commit/40094fc9
    https://github.com/JetBrains/JetBrainsRuntime/commit/85065319
    https://github.com/JetBrains/JetBrainsRuntime/commit/9b80ea79

(cherry picked from commit fe75742083)
2020-02-03 13:05:00 +07:00
prr
964b07c49e 8208179: Devanagari not shown with logical fonts on Windows after removal of Lucida Sans from JDK
Reviewed-by: jdv, naoto

Conflicts:
    make/data/fontconfig/windows.fontconfig.properties

(cherry picked from commit ba595302f4)
2020-02-03 13:04:52 +07:00
serb
5546c85aaf 8213119: [macos] java/awt/GraphicsDevice/CheckDisplayModes.java fails
Reviewed-by: prr, jdv

(cherry picked from commit 7de747cf61)
2020-02-03 12:52:53 +07:00
bell-sw
2d165bf223 Manual merge: the change from upstream: https://github.com/bell-sw/jdk11u-openjdk/commit/e410e72f vs
CGraphicsEnvironment.java: JRE-359 CGraphicsEnvironment.getDefaultScreenDevice() returns null: https://github.com/JetBrains/JetBrainsRuntime/commit/6d73b251
  CGLGraphicsConfig.java: JRE-238 [736] java.awt.AWTError: access denied: https://github.com/JetBrains/JetBrainsRuntime/commit/5d98c94e
  CGraphicsDevice.m: JRE-907 macOS: add ability to check for scaled display mode: https://github.com/JetBrains/JetBrainsRuntime/commit/e496262a

(cherry picked from commit 539b211b99)
2020-02-03 12:52:53 +07:00
serb
2bdf533a5f 8211992: GraphicsConfiguration.getDevice().getDisplayMode() causes JVM crash on Mac
Reviewed-by: prr

Conflicts:
    src/java.desktop/macosx/classes/sun/awt/CGraphicsEnvironment.java
    src/java.desktop/macosx/classes/sun/java2d/opengl/CGLGraphicsConfig.java
    src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsDevice.m
(cherry picked from commit e776046f66)
2020-02-03 12:52:52 +07:00
serb
4ccf2b6b59 8146238: [macosx] Java2D Queue Flusher crash on OSX after switching between user accounts
Reviewed-by: prr, avu

(cherry picked from commit 837953074c)
2020-02-03 12:52:52 +07:00
bell-sw
ed7b4a8678 Revert "IDEA-148133 [IU-143.382] [MacOS] IDEA crashes regularly"
Reverting JB fix: 7262736e7e
    New fix: 5e55c482b4
    Bug ID: https://bugs.openjdk.java.net/browse/JDK-8146238
    (the new fix comes in the next commit)

(cherry picked from commit 45cb20c9e8)
2020-02-03 12:52:51 +07:00
psadhukhan
86d38287d5 8231084: Large performance regression in SwingMark TextArea in 14-b13
8231336: Corrupted option dialog in JTHarness with JDK14b13
Reviewed-by: serb, prr

(cherry picked from commit 426d5f0163)
2020-02-03 12:52:51 +07:00
bell-sw
5a42420d1c Revert "JBR-1875 Modal dialogs text partly lost"
Reverting this change: https://github.com/JetBrains/JetBrainsRuntime/commit/598452f0
- going to get fresh one from the upstream (next two commits)

(cherry picked from commit 14d9cd0813)
2020-02-03 12:39:25 +07:00
Vitaly Provodin
5a1176c417 updated JTreg exclude list 2020-01-29 09:52:45 +07:00
Denis Fokin
cd148f0f27 JBR-2043 [backport to 193] JBR-1928 NullPointerException from Swing on IDE startup
(cherry picked from commit 915d369d98)
2020-01-22 19:20:39 +07:00
Elena Sayapina
5af3688de4 JBR-2087 [backport to 193] JBR-2086 JetBrainsMono fonts update to v1.0.1
(cherry picked from commit a4b373e631)
2020-01-22 18:27:19 +07:00
Anton Tarasov
b2a897fd13 JBR-2082 Revealing taskbar does not work when "Automatically hide the taskbar"
(cherry picked from commit b31a41fb2f)
2020-01-22 11:32:06 +03:00
Alexey Ushakov
a6f08bafa7 JBR-2072 Rendering issue with brackets in 13 size
Backported: JBR-1997 JetBrainsMono fonts update to v0.22
(cherry picked from commit 5d7fd2e1e5)
2020-01-17 20:17:13 +03:00
Kirill Kirichenko
707fabff0d JBR-1874 Cursor not changing from 'default' to 'text'. Additional fix after reopening.
(cherry picked from commit 5a29d4ade9)
2020-01-14 17:09:09 +07:00
Vitaly Provodin
f5312c93f4 updated JTreg exclude list 2019-12-26 10:07:52 +07:00
Vitaly Provodin
685098cb8d updated JTreg exclude list 2019-12-25 17:55:45 +07:00
Artem Bochkarev
07b2edea8f JBR-2045 [backport to 193] JBR-1680: allow to disable 'override-redirect' logic of XWindowPeer
with fixed fail of: javax/swing/JOptionPane/8081019/bug8081019.java

(cherry picked from commit 9094054cdc)
(cherry picked from commit 78363232b3)
2019-12-24 15:49:23 +07:00
Artem Bochkarev
a9f00fc57c JBR-2044 [backport to 193] JBR-1089: allow to create FileDialog without parent
was broken in 8fd21b3746
fixed test FileDialogModalFocusTest.java

(cherry picked from commit 5e0a9f5993)
2019-12-24 14:45:15 +07:00
Artem Bochkarev
c280523599 JBR-2036 [backport to 193] JBR-2005: don't set appearance of file chooser if OSX version < 10.14
(cherry picked from commit 2adf5275f1)
2019-12-24 11:40:43 +07:00
Alexey Ushakov
4ebbb3b93a JBR-2032 [backport to 193] JBR-2023 PhpStorm/Webstorm 2019.3 crashes on start on MacOS 10.14.6 on libfreetype.6.dylib
Corrected compile time check to disable fontconfig on Mac

(cherry picked from commit 36e8544049)
2019-12-23 18:58:32 +07:00
Vitaly Provodin
16fc5a58f8 JBR-2014 Add jdk.hotspot.agent module to jbr
(cherry picked from commit 418d5fd97e)
2019-12-17 11:33:18 +03:00
Artem Bochkarev
f71aa5893e JBR-2010: backport JBR-1794
backport 8234522: [macos] Crash with use of native file dialog

cherry-picked from hg changeset (Node ID e07a60855a7631b5eac32da1f1e71d72986a2c06, Parent  221a47a6f6d335560d9dd532a1ac593e316b5954)

(cherry picked from commit 09eabbd567)
2019-12-11 15:03:47 +03:00
Vitaly Provodin
bcff453516 updated JTreg exclude list 2019-12-04 10:48:47 +07:00
Elena Sayapina
8feade0e4d JBR-1994 [backport to 193] JBR-1694: java.lang.IllegalArgumentException: Null charset name
Move GB18030.class from sun/nio/cs/ext (jdk.charsets) to sun/nio/cs (java.base),
so the charset is available during VM initialization on Windows.

(cherry picked from commit 588cfef576)
2019-12-03 12:05:55 +07:00
andrew
4f5d13993c Added tag jdk-11.0.5-ga for changeset 6385eb06af94
(cherry picked from commit 8e9e71b1d0)
2019-12-02 15:05:40 +07:00
weijun
39e4f50bbf 8219013: Update Apache Santuario (XML Signature) to version 2.1.3
Reviewed-by: mullan

(cherry picked from commit adb67de9a5)
2019-12-02 15:05:19 +07:00
kaddepalli
c731aed351 8219914: Change the environment variable for Java Access Bridge logging to have a directory. Reviewed-by: prr 2019-11-29 12:25:52 +07:00
alvdavi
4e9ae6a2e1 8228825: Enhance ECDSA operations Reviewed-by: andrew 2019-11-29 12:25:52 +07:00
rriggs
ccf3e35f7c 8227601: Better collection of references Reviewed-by: smarks, ahgross, skoivu, rhalade 2019-11-29 12:25:52 +07:00
igerasim
c23cd357ba 8226765: Commentary on Javadoc comments Reviewed-by: jjg, rhalade, skoivu, andrew 2019-11-29 12:25:52 +07:00
prr
c4166930b4 8225597: Enhance font glyph mapping Reviewed-by: serb, psadhukhan, mschoene, rhalade 2019-11-29 12:25:52 +07:00
igerasim
f330e19fbd 8225298: Improve TLS connection support Reviewed-by: dfuchs, igerasim, michaelm, rhalade, skoivu 2019-11-29 12:25:52 +07:00
prr
3eeb407631 8225292: Better Graphics2D drawing Reviewed-by: serb, psadhukhan, mschoene, rhalade 2019-11-29 12:25:52 +07:00
prr
cd5a91c0d5 8224915: Better serial attributes Reviewed-by: serb, psadhukhan, mschoene, rhalade 2019-11-29 12:25:51 +07:00
joehw
74820c7ae0 8224532: Better Path supports Reviewed-by: rriggs, lancea, dfuchs, mschoene 2019-11-29 12:25:51 +07:00
thartmann
8e7e75bc9c 8224062: Improve String index handling Reviewed-by: kvn, rhalade, mschoene 2019-11-29 12:25:51 +07:00
aefimov
519cd961ae 8223892: Improved handling of jar files Reviewed-by: dfuchs, chegar, michaelm, rhalade, ahgross 2019-11-29 12:25:51 +07:00
hannesw
0e1cc3673b 8223518: Unexpected exception in jjs Reviewed-by: sundar, mschoene, rhalade, jlaskey 2019-11-29 12:25:51 +07:00
joehw
3c2ca749d7 8223505: Better pattern compilation Reviewed-by: rriggs, lancea, dfuchs, mschoene 2019-11-29 12:25:51 +07:00
igerasim
84f9cf70e2 8222684: Better support for patterns 8223163: Better pattern recognition Reviewed-by: ahgross, bchristi, jeff, rhalade, rriggs, smarks 2019-11-29 12:25:51 +07:00
rriggs
62a1148ce9 8221858: Build Better Processes Reviewed-by: alanb, rhalade, ahgross, darcy 2019-11-29 12:25:51 +07:00
serb
845c25cf78 8221497: Optional Panes in Swing Reviewed-by: prr, alitvinov, mschoene, rhalade 2019-11-29 12:25:51 +07:00
weijun
080815d543 8209901: Canonical file handling Reviewed-by: mullan, alanb, ahgross 2019-11-29 12:25:51 +07:00
weijun
9169e56bd3 8224025: Fix for JDK-8220302 is not complete Reviewed-by: ahgross, mullan, valeriep 2019-11-29 12:25:51 +07:00
weijun
4a86f90542 8220302: Better Kerberos ccache handling Reviewed-by: valeriep 2019-11-29 12:25:51 +07:00
alitvinov
0f7417d9f3 8218877: Help transform transformers Reviewed-by: serb, prr, mschoene, bpb, ssahoo 2019-11-29 12:25:50 +07:00
michaelm
4cc144c6bb 8218573: Better socket support Reviewed-by: alanb, ahgross, chegar, igerasim 2019-11-29 12:25:50 +07:00
aefimov
fefb347a7f 8213429: Windows file handling redux Reviewed-by: alanb, dfuchs, weijun, bpb, rhalade, ahgross 2019-11-29 12:25:50 +07:00
bpb
487af65c13 8230085: (fs) FileStore::isReadOnly is always true on macOS Catalina Reviewed-by: alanb 2019-11-29 12:25:50 +07:00
clanger
9b4d8e92f8 8230850: Test sun/tools/jcmd/TestProcessHelper.java fails intermittently Reviewed-by: stuefe, cjplummer, sgehwolf 2019-11-29 12:25:50 +07:00
redestad
cc170b1b95 8229773: Resolve permissions for code source URLs lazily Reviewed-by: alanb, mullan, rriggs, dfuchs 2019-11-29 12:25:50 +07:00
rpatil
a04881c013 8228469: (tz) Upgrade time-zone data to tzdata2019b Reviewed-by: naoto, martin 2019-11-29 12:25:50 +07:00
naoto
36f73f60fd 8212970: TZ database in "vanguard" format support Reviewed-by: rriggs, joehw, erikj, scolebourne 2019-11-29 12:25:50 +07:00
rhalade
6f4930ab64 8228337: problemList failing/ignored manual tests in security-libs Reviewed-by: ascarpino 2019-11-29 12:25:50 +07:00
iignatyev
48fdd25b4b 8222154: upgrade gtest to 1.8.1 Reviewed-by: jwilhelm, rwestberg 2019-11-29 12:25:50 +07:00
lancea
f848c89089 8229887: (zipfs) zip file corruption when replacing an existing STORED entry Reviewed-by: alanb, redestad, dfuchs 2019-11-29 12:25:50 +07:00
jjiang
6f47f0432b 8225390: ProblemList sun/security/pkcs11/sslecc/ClientJSSEServerJSSE.java due to JDK-8161536 Reviewed-by: xuelei 2019-11-29 12:25:49 +07:00
jjiang
e53c626335 8204203: Many pkcs11 tests failed in Provider initialization, after compiler on Windows changed Summary: Build NSS 3.41 with VS2017 and also upgrade to this NSS for macosx Reviewed-by: valeriep 2019-11-29 12:25:49 +07:00
chegar
71a4bb2f7c 8225425: java.lang.UnsatisfiedLinkError: net.dll: Can't find dependent libraries Reviewed-by: dfuchs, alanb, erikj 2019-11-29 12:24:59 +07:00
stuefe
1430d4dcdd 8221407: Windows 32bit build error in libsunmscapi/security.cpp Reviewed-by: clanger 2019-11-29 12:24:59 +07:00
martin
03ffe67459 8213406: (fs) More than one instance of built-in FileSystem observed in heap Reviewed-by: alanb, cushon, weijun 2019-11-29 12:24:59 +07:00
redestad
dc953ecebb 8224589: Improve startup behavior of SecurityProperties Reviewed-by: alanb 2019-11-29 12:24:59 +07:00
aph
f34511c71f 8215879: AArch64: ReservedStackAccess may leave stack guard in inconsistent state Reviewed-by: aph, dholmes Contributed-by: Andrey Petushkov <andrey.petushkov@gmail.com> 2019-11-29 12:24:58 +07:00
ngasson
0e181495b8 8229118: [TESTBUG] serviceability/sa/ClhsdbFindPC fails on AArch64 Reviewed-by: cjplummer, adinn 2019-11-29 12:24:58 +07:00
joehw
c3319de838 8225005: Xerces 2.12.0: License file Reviewed-by: lancea 2019-11-29 12:24:58 +07:00
joehw
ab66121fb7 8222991: Xerces 2.12.0: Validation Reviewed-by: lancea 2019-11-29 12:24:58 +07:00
joehw
e964759c56 8222743: Xerces 2.12.0: DOM Implementation Reviewed-by: lancea 2019-11-29 12:24:58 +07:00
joehw
2fabdba65c 8222415: Xerces 2.12.0: Parsing Configuration Reviewed-by: lancea 2019-11-29 12:24:58 +07:00
aph
90ecdc08f4 8219993: AArch64: Compiled CI stubs are unsafely modified Reviewed-by: adinn 2019-11-29 12:24:58 +07:00
dpochepk
871d906083 8216989: CardTableBarrierSetAssembler::gen_write_ref_array_post_barrier() does not check for zero length on AARCH64 Reviewed-by: adinn 2019-11-29 12:24:58 +07:00
shade
05822e2bd5 8219583: Windows build failure after JDK-8214777 (Avoid some GCC 8.X strncpy() errors in HotSpot) Reviewed-by: kbarrett, mikael 2019-11-29 12:24:58 +07:00
mikael
264aa9b832 8214777: Avoid some GCC 8.X strncpy() errors in HotSpot Reviewed-by: kbarrett, rehn 2019-11-29 12:24:58 +07:00
dchuyko
4536d898e2 8215130: Fix errors in LittleCMS 2.9 reported by GCC 8 Reviewed-by: prr 2019-11-29 12:24:58 +07:00
dchuyko
43f38f2532 8220072: GCC 8.3 reports errors in java.base Reviewed-by: rriggs 2019-11-29 12:24:57 +07:00
michaelm
b94e86479d 8222968: ByteArrayPublisher is not thread-safe resulting in broken re-use of HttpRequests Reviewed-by: chegar, dfuchs 2019-11-29 12:24:57 +07:00
kvn
dbe7ff0625 8207965: C2-only debug build fails Reviewed-by: kvn, iignatyev Contributed-by: xxinliu@amazon.com 2019-11-29 12:24:57 +07:00
vromero
ad27700e9e 8225386: test for JDK-8216261 fails in Windows Reviewed-by: jjg 2019-11-29 12:24:57 +07:00
vromero
5e7a4f377c 8216261: Javap ignores default modifier on interfaces Reviewed-by: jjg, darcy 2019-11-29 12:24:57 +07:00
weijun
d3b8bd0b05 8229767: Typo in java.security: Sasl.createClient and Sasl.createServer Reviewed-by: xuelei 2019-11-29 12:24:57 +07:00
coffeys
855b6bf39a 8218553: Enhance keystore load debug output Reviewed-by: weijun 2019-11-29 12:24:57 +07:00
weijun
18c428c1cc 8200400: Restrict Sasl mechanisms Reviewed-by: mullan 2019-11-29 12:24:57 +07:00
aivanov
629588d9af 8222108: Reduce minRefreshTime for updating remote printer list on Windows Reviewed-by: prr, serb 2019-11-29 12:24:57 +07:00
bpb
213a879353 8218280: LineNumberReader throws "Mark invalid" exception if CRLF straddles buffer. Reviewed-by: dfuchs, prappo 2019-11-29 12:24:57 +07:00
erikj
71abcd8598 8214003: Limit default test jobs based on memory size Reviewed-by: shade, tbell 2019-11-29 12:24:57 +07:00
erikj
4272e92d73 8211727: Adjust default concurrency settings for running tests on Sparc Reviewed-by: ctornqvi, tbell, mikael 2019-11-29 12:24:57 +07:00
mdoerr
c6fbe5730a 8229925: [s390, PPC64] Exception check missing in interpreter Reviewed-by: dholmes, rrich 2019-11-29 12:24:57 +07:00
redestad
fd78a398f6 8224202: Speed up Properties.load Reviewed-by: rriggs, igerasim 2019-11-29 12:24:56 +07:00
mbaesken
835a7876cf 8224221: add memprotect calls to event log Reviewed-by: dholmes, mdoerr 2019-11-29 12:24:56 +07:00
dpochepk
94cd5f5bef 8218966: AArch64: String.compareTo() can read memory after string Reviewed-by: adinn, dsamersoff 2019-11-29 12:24:56 +07:00
mbaesken
08ba3807eb 8227630: adjust format specifiers in loadlib_aix.cpp Reviewed-by: mdoerr, shade 2019-11-29 12:24:56 +07:00
mbaesken
821ec62c63 8227869: fix wrong format specifiers in os_aix.cpp Reviewed-by: dholmes, mdoerr, clanger 2019-11-29 12:24:56 +07:00
mbaesken
d6bca8f68e 8228658: test GetTotalSafepointTime.java fails on fast Linux machines with Total safepoint time 0 ms Reviewed-by: dholmes, jcbeyler 2019-11-29 12:24:56 +07:00
rriggs
5ae8ce8d8a 8216528: test/jdk/java/rmi/transport/runtimeThreadInheritanceLeak/RuntimeThreadInheritanceLeak.java failing with Xcomp Reviewed-by: dholmes, alanb Contributed-by: fujie@loongson.cn 2019-11-29 12:24:56 +07:00
alanb
cd7e468592 8216046: test/jdk/java/beans/PropertyEditor/Test6397609.java failing Reviewed-by: alanb, serb Contributed-by: fujie@loongson.cn 2019-11-29 12:24:56 +07:00
ysuenaga
1bb3d9f9df 8223814: SA: jhsdb common help needs to be more detailed Reviewed-by: dholmes, sspitsyn, ysuenaga Contributed-by: Osamu Sakamoto <sakamoto.osamu@nttcom.co.jp> 2019-11-29 12:24:56 +07:00
ysuenaga
bc55a82a56 8227594: sadebugd/DebugdConnectTest.java fails due to "java.rmi.NotBoundException: SARemoteDebugger" Reviewed-by: cjplummer, sspitsyn 2019-11-29 12:24:56 +07:00
roland
dd59567dca 8210389: C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc Reviewed-by: kvn, thartmann 2019-11-29 12:24:56 +07:00
xuelei
c0e1dc66e1 8224991: Problemlist javax/net/ssl/ServerName/SSLEngineExplorerMatchedSNI.java Reviewed-by: mullan 2019-11-29 12:24:56 +07:00
dsamersoff
01475ad9e9 8229352: Use of an uninitialized register in 32-bit ARM template interpreter Reviewed-by: dlong, shade Contributed-by: christoph.goettschkes@microdoc.com 2019-11-29 12:24:55 +07:00
ngasson
4c9911e19d 8217368: AArch64: C2 recursive stack locking optimisation not triggered Reviewed-by: aph, drwhite 2019-11-29 12:24:55 +07:00
adinn
74e4e3affd 8230099: Prepare for backport of JDK-8217368 Reviewed-by: aph 2019-11-29 12:24:55 +07:00
ngasson
db305785dd 8209413: AArch64: NPE in clhsdb jstack command Reviewed-by: aph 2019-11-29 12:24:55 +07:00
lmesnik
991e64f1e9 8225388: Running jcmd Compiler.CodeHeap_Analytics all 0 cause crash. Reviewed-by: thartmann, sspitsyn 2019-11-29 12:24:55 +07:00
thartmann
cfd7234f1e 8224658: Unsafe access C2 compile fails with assert(flat != TypePtr::BOTTOM) failed: cannot alias-analyze an untyped ptr: adr_type = NULL Summary: Handle unsafe off-heap access with constant zero address. Reviewed-by: vlivanov, roland 2019-11-29 12:24:55 +07:00
vlivanov
4f5217456b 8218879: Keep track of memory accesses originated from Unsafe Reviewed-by: thartmann 2019-11-29 12:24:55 +07:00
dpochepk
85a1dfebfb 8215792: AArch64: String.indexOf generates incorrect result Reviewed-by: dsamersoff 2019-11-29 12:24:55 +07:00
lancea
b806f1b616 8225189: Multiple JNI calls within critical region in ZIP Library Reviewed-by: alanb 2019-11-29 12:24:55 +07:00
roland
3ea8d216dc 8214857: "bad trailing membar" assert failure at memnode.cpp:3220 Reviewed-by: adinn, thartmann 2019-11-29 12:24:55 +07:00
roland
fa61cabc13 8211233: MemBarNode::trailing_membar() and MemBarNode::leading_membar() need to handle dying subgraphs better Reviewed-by: kvn, thartmann 2019-11-29 12:24:55 +07:00
roland
73f547cf7a 8209420: Track membars for volatile accesses so they can be properly optimized Reviewed-by: adinn, aph, thartmann 2019-11-29 12:24:55 +07:00
vlivanov
a118cbe192 8202952: C2: Unexpected dead nodes after matching Reviewed-by: kvn 2019-11-29 12:24:54 +07:00
pliden
a5c5f1a10d 8229406: ZGC: Fix incorrect statistics Reviewed-by: pliden, eosterlund Contributed-by: albert.th@alibaba-inc.com 2019-11-29 12:24:54 +07:00
fmatte
6420eef8f6 8225715: jhsdb jmap fails to write binary heap dump of a jshell process Summary: Add a Null check for getSourceFileName() before writing into thread dump. Reviewed-by: cjplummer, kevinw 2019-11-29 12:24:54 +07:00
mseledtsov
4ebbdeb59c 8222299: [TESTBUG] move hotspot container tests to hotspot/containers Summary: Moved the tests, updated relevant files Reviewed-by: dholmes, iignatyev, shade 2019-11-29 12:24:54 +07:00
jiefu
debfb99891 8221894: Add comments for docker tests in the test doc Reviewed-by: erikj, dholmes, shade 2019-11-29 12:24:54 +07:00
mseledtsov
72f2ef97ea 8219997: [TESTBUG] Create test for JFR events in Docker container: CPU, Memory and Process Info Summary: Start docker with limits on CPU/Mem, verify JFR reports correct data Reviewed-by: egahlin 2019-11-29 12:24:54 +07:00
mseledtsov
145d4e02f5 8220672: [TESTBUG] TestCPUSets should check that cpuset does not exceed available cores Summary: making sure cpuset size does not exceed available cores Reviewed-by: dholmes, lmesnik, shade 2019-11-29 12:24:54 +07:00
stuefe
d8b36a059f 8210314: [aix] NMT does not show "Safepoint" memory type Reviewed-by: goetz, mbaesken 2019-11-29 12:24:54 +07:00
mdoerr
ceb70c88c5 8228649: [PPC64] SA reads wrong slots from interpreter frames Summary: Make frame layout consistent between dbg and product build and implement offsets accordingly. Reviewed-by: goetz, gromero 2019-11-29 12:24:54 +07:00
mikael
a2ce3a9b36 8218581: Incorrect exception message generation Reviewed-by: hseigel 2019-11-29 12:24:54 +07:00
shade
34ba2bec92 8228725: AArch64: Purge method call format support Reviewed-by: adinn 2019-11-29 12:24:54 +07:00
roland
7dec4b5574 8210390: C2 still crashes with "assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node" Reviewed-by: thartmann, kvn 2019-11-29 12:24:54 +07:00
bsrbnd
4022c7aeef 8225644: C1 dumps incorrect class name in ClassCastException message Reviewed-by: vlivanov, bsrbnd Contributed-by: fujie@loongson.cn, bsrbnd@gmail.com 2019-11-29 12:24:54 +07:00
vlivanov
7d2a80804f 8226409: Enable argument profiling for sun.misc.Unsafe.put*/get* Reviewed-by: kvn 2019-11-29 12:24:53 +07:00
zgu
5b486ac09c 8219370: NMT: Move synchronization primitives from mtInternal to mtSynchronizer Reviewed-by: dholmes, rehn 2019-11-29 12:24:53 +07:00
neliasso
bd70ede024 8219517: assert(false) failed: infinite loop in PhaseIterGVN::optimize Reviewed-by: kvn, thartmann 2019-11-29 12:24:53 +07:00
roland
1597d47f12 8211232: GraphKit::make_runtime_call() sometimes attaches wrong memory state to call Reviewed-by: kvn 2019-11-29 12:24:53 +07:00
pbansal
84163df099 8226964: [Yaru] GTK L&F: There is no difference between menu selected and de-selected Reviewed-by: prr, kcr 2019-11-29 12:24:53 +07:00
pli
d8dfa99fa0 8228601: AArch64: Fix interpreter code at JVMCI deoptimization entry Reviewed-by: adinn, aph 2019-11-29 12:24:53 +07:00
lbourges
a211c3c0ce 8228711: Path rendered incorrectly when it goes outside the clipping region Summary: fixed closePath() to preserve last position and its outcode in Stroker and TransformingPathConsumer2D.PathClipFilter Reviewed-by: prr, kcr 2019-11-29 12:24:53 +07:00
egahlin
91e3719d65 8220657: JFR.dump does not work when filename is set Reviewed-by: ysuenaga 2019-11-29 12:24:53 +07:00
bchristi
ba188f66b2 8216401: Allow "file:" URLs in Class-Path of local JARs Reviewed-by: alanb, mchung 2019-11-29 12:24:53 +07:00
yzhang
fcd62573a1 8213134: AArch64: vector shift failed with MaxVectorSize=8 Summary: add vshiftcnt instructions for vector64 and add vsra/vsrl instructions to AArch64 backend. To detect shift failures, MaxVectorSize options are added to jtreg test cases. Reviewed-by: aph, kvn 2019-11-29 12:24:53 +07:00
lancea
6f39e773ac 8226530: ZipFile reads wrong entry size from ZIP64 entries Reviewed-by: bpb, clanger, shade 2019-11-29 12:24:53 +07:00
tnakamura
e6d6efd23a 8220227: Host Locale Provider getDisplayCountry returns error message under non-English Win10 Summary: Adjusting to detect translated Unknown messages Reviewed-by: naoto 2019-11-29 12:24:53 +07:00
mbaesken
dab6a1781a 8227834: build.log output from failing commands : include the hs_error file path in case of crashes in build Reviewed-by: tbell 2019-11-29 12:24:53 +07:00
mbaesken
fb7631adec 8228501: java_props_macosx.c - provide missing CFRelease for CFLocaleCopyCurrent Reviewed-by: naoto 2019-11-29 12:24:52 +07:00
mbaesken
a6e88165f6 8228578: fix CFData object leak in macosx KeystoreImpl.m Reviewed-by: weijun 2019-11-29 12:24:52 +07:00
ihse
fb153ec1b6 8217896: Make better use of LCPUs when building on AIX Reviewed-by: ihse Contributed-by: Andrew Leonard <andrew_m_leonard@uk.ibm.com> 2019-11-29 12:24:52 +07:00
shade
25f88d4c15 8228400: Remove built-in AArch64 simulator Reviewed-by: adinn, aph, dsamersoff 2019-11-29 12:24:52 +07:00
mbaesken
de89ccb66c 8228764: New library dependencies due to JDK-8222720 Reviewed-by: goetz, dholmes 2019-11-29 12:24:52 +07:00
goetz
2735ae6a5d 8209939: [testbug][ppc] Test SafepointPollingPages fails after 8208499 with UseSIGTRAP on. Reviewed-by: mdoerr, ghaug 2019-11-29 12:24:52 +07:00
itakiguchi
618260c5a0 8227919: 8213232 causes crashes on solaris sparc64 Reviewed-by: prr, vkempik 2019-11-29 12:24:52 +07:00
jiangli
32d1673220 8202035: Archive the set of ModuleDescriptor and ModuleReference objects for observable system modules with unnamed initial module. Summary: Support system module archiving with unnamed initial module at dump time. Reviewed-by: erikj, coleenp, mchung, iklam, ccheung Contributed-by: alan.bateman@oracle.com, jiangli.zhou@oracle.com 2019-11-29 12:24:52 +07:00
mseledtsov
8138d5afb1 8224165: [TESTBUG] Docker tests produce excessive output Summary: Trimmed child process output, saving child stdout to file Reviewed-by: dholmes, lmesnik 2019-11-29 12:24:52 +07:00
mseledtsov
038cc41c8b 8221710: [TESTBUG] more configurable parameters for docker testing Summary: Introduced docker test config properties Reviewed-by: lmesnik, iignatyev, egahlin 2019-11-29 12:24:52 +07:00
dpochepk
07d5807758 8205421: AARCH64: StubCodeMark should be placed after alignment Reviewed-by: aph 2019-11-29 12:24:52 +07:00
mbaesken
f6efcce3cc 8228585: jdk/internal/platform/cgroup/TestCgroupMetrics.java - NumberFormatException because of large long values (memory limit_in_bytes) Reviewed-by: dholmes, sgehwolf 2019-11-29 12:24:52 +07:00
zgu
59940c7194 8208499: NMT: Missing memory tag for Safepoint polling page Summary: Added missing memory tag and cleanup memory type enum Reviewed-by: shade, coleenp 2019-11-29 12:24:51 +07:00
zgu
98f8b80d42 8219244: NMT: Change ThreadSafepointState's allocation type from mtInternal to mtThread Reviewed-by: coleenp, minqi 2019-11-29 12:24:51 +07:00
ccheung
ec59a3fb09 8223336: Assert in VirtualMemoryTracker::remove_released_region when running the SharedArchiveConsistency.java test with -XX:NativeMemoryTracking=detail Summary: added the missing call MemTracker::record_virtual_memory_reserve_and_commit() Reviewed-by: jiangli, zgu 2019-11-29 12:24:51 +07:00
serb
8e408a4bd0 8217676: Upgrade libpng to 1.6.37 Reviewed-by: prr, jdv, kcr 2019-11-29 12:24:51 +07:00
bobv
ce7888a3b0 8221340: [TESTBUG] TestCgroupMetrics.java fails after fix for JDK-8219562 Reviewed-by: mseledtsov, rriggs 2019-11-29 12:24:51 +07:00
bobv
4862b5b192 8219562: Line of code in osContainer_linux.cpp L102 appears unreachable Reviewed-by: rriggs, sgehwolf 2019-11-29 12:24:51 +07:00
mseledtsov
4a22495ac2 8221527: [TESTBUG] DockerBasicTest.java contains hard-coded reference to JDK 10 Summary: Using Docker test library to get the image name Reviewed-by: dholmes 2019-11-29 12:24:51 +07:00
bobv
8156bf8cad 8212528: Wrong cgroup subsystem being used for some CPU Container Metrics Reviewed-by: rriggs, sgehwolf 2019-11-29 12:24:51 +07:00
ngasson
694b84a22c 8221529: [TESTBUG] Docker tests use old/deprecated image on AArch64 Reviewed-by: aph, sgehwolf, mseledtsov 2019-11-29 12:24:51 +07:00
mseledtsov
026d1222ec 8221342: [TESTBUG] Generate Dockerfile for docker testing Summary: Dockerfile is generated; introduced properties to specify custom base image Reviewed-by: sgehwolf, dholmes, jiefu 2019-11-29 12:24:51 +07:00
mseledtsov
526724a9c0 8220313: [TESTBUG] Update base image for Docker testing to OL 7.6 Summary: Updated the OL version in Dockerfile in FROM field Reviewed-by: dcubed 2019-11-29 12:24:51 +07:00
bobv
ef6b500605 8220674: [TESTBUG] MetricsMemoryTester failcount test in docker container only works with debug JVMs Reviewed-by: sspitsyn, sgehwolf 2019-11-29 12:24:51 +07:00
bobv
75a1c22997 8217766: Container Support doesn't work for some Join Controllers combinations Reviewed-by: rriggs, sgehwolf 2019-11-29 12:24:51 +07:00
sgehwolf
5809bd03be 8220579: [Containers] SubSystem.java out of sync with osContainer_linux.cpp Reviewed-by: bobv, adinn 2019-11-29 12:24:50 +07:00
psadhukhan
a0b2e469ac 8225423: GTK L&F: JSplitPane: There is no divider shown Reviewed-by: prr, serb 2019-11-29 12:24:50 +07:00
alitvinov
22cca7cb81 8227392: Colors with alpha are painted incorrectly on Linux, after JDK-8214579 8224825: java/awt/Color/AlphaColorTest.java fails in linux-x64 system Reviewed-by: prr 2019-11-29 12:24:50 +07:00
hseigel
49b2c81f4d 8226798: JVM crash in klassItable::initialize_itable_for_interface(int, InstanceKlass*, bool, Thread*) Summary: When calculating vtable size at class load time, do not look for miranda method if matching package private method is found in a super class. Reviewed-by: acorn, lfoltan 2019-11-29 12:24:50 +07:00
vlivanov
d5aed127bb 8225141: Better handling of classes in error state in fast class initialization checks Reviewed-by: dlong, dholmes 2019-11-29 12:24:50 +07:00
dcubed
c550319f0c 8208706: compiler/tiered/ConstantGettersTransitionsTest.java fails to compile Reviewed-by: dholmes 2019-11-29 12:24:50 +07:00
iignatyev
feacf8c19f 8208701: Fix for JDK-8208655 causes test failures in CI tier1 Reviewed-by: dholmes, dcubed 2019-11-29 12:24:50 +07:00
iignatyev
69894cd01f 8208655: use JTreg skipped status in hotspot tests Reviewed-by: kvn, hseigel, iklam 2019-11-29 12:24:50 +07:00
stuefe
372070f588 8221408: Windows 32bit build build errors/warnings in hotspot Reviewed-by: kbarrett, dholmes 2019-11-29 12:24:50 +07:00
shade
91b70c4d9e 8221725: AArch64 build failures after JDK-8221408 (Windows 32bit build build errors/warnings in hotspot) Reviewed-by: dholmes, stuefe 2019-11-29 12:24:50 +07:00
coleenp
3d4d569983 8222914: Partial backport of JDK-8218266 8215505: Cleanup jvm.cpp obsolete code after JDK-8210094: Better loading of classloader classes Summary: remove dead code, protection_domains can be unloaded in the dictionary pd_set. Reviewed-by: lfoltan, dholmes, zgu, hseigel 2019-11-29 12:24:50 +07:00
dfuchs
11587d28f2 8216562: UnknownBodyLength sometimes fails due to "Connection reset by peer" Summary: uses a longer linger time and avoids closing socket too early. Reviewed-by: chegar 2019-11-29 12:24:49 +07:00
dfuchs
38ddbc72e7 8210130: java/net/httpclient/UnknownBodyLengthTest.java failed Summary: The fix improves the test robustness by making it retry once in case of IO/Connect exception. Reviewed-by: chegar 2019-11-29 12:24:49 +07:00
dtitov
33775ea579 8225543: Jcmd fails to attach to the Java process on Linux using the main class name if whitespace options were used to launch the process Reviewed-by: sspitsyn, dholmes 2019-11-29 12:24:49 +07:00
dtitov
c596eda6fc 8221730: jcmd process name matching broken Reviewed-by: jcbeyler, dholmes, cjplummer 2019-11-29 12:24:49 +07:00
dtitov
46af26f628 8205654: serviceability/dcmd/framework/HelpTest.java timed out 8218705: Test sun/tools/jcmd/TestJcmdDefaults.java fails on Linux Reviewed-by: sspitsyn, dholmes 2019-11-29 12:24:49 +07:00
sviswanathan
f2bdd74ae5 8217371: Incorrect LP64 guard in x86.ad after JDK-8210764 (Update avx512 implementation) Reviewed-by: kvn, neliasso, thartmann 2019-11-29 12:24:49 +07:00
hseigel
a7400926bb 8228596: Class redefinition fails when condy instructions are removed Summary: Make sure has_dynamic_constant flag value gets copied to merged constant pool, when it is set to TRUE Reviewed-by: coleenp, dcubed, sspitsyn 2019-11-29 12:24:49 +07:00
zgu
35974c48d6 8217785: Padding ParallelTaskTerminator::_offered_termination variable Reviewed-by: shade, tschatzl 2019-11-29 12:24:49 +07:00
dholmes
f2f2ad67b1 8222387: Out-of-bounds access to CPU _family_id_xxx array Reviewed-by: dholmes, kvn Contributed-by: Jinke Fan <fanjinke51@yeah.net> 2019-11-29 12:24:49 +07:00
thartmann
8b3c56edb5 8220341: Class redefinition fails with assert(!is_unloaded()) failed: unloaded method on the stack Summary: Skip unloaded methods in compile queue during marking. Reviewed-by: kvn, neliasso, eosterlund, coleenp 2019-11-29 12:24:49 +07:00
thartmann
cf13d54f2b 8163511: Allocation of compile task fails with assert: "Leaking compilation tasks?" Summary: Use weak handles for compile tasks to allow unloading of referenced methods. Reviewed-by: kvn, coleenp, eosterlund 2019-11-29 12:24:49 +07:00
roland
ca92dbea10 8215044: C2 crash in loopTransform.cpp with assert(cl->trip_count() > 0) failed: peeling a fully unrolled loop Reviewed-by: thartmann, kvn 2019-11-29 12:24:49 +07:00
vdeshpande
bb95f980aa 8224558: Fix replicateB encoding Reviewed-by: thartmann, vlivanov 2019-11-29 12:24:48 +07:00
qpzhang
7ac32a957c 8163363: AArch64: Stack size in tools/launcher/Settings.java needs to be adjusted Summary: Specify a proper min stack size input to -Xss for aarch64 Reviewed-by: aph 2019-11-29 12:24:48 +07:00
ecaspole
51b3a8b151 8216375: Revert JDK-8145579 after JDK-8076988 is resolved Summary: Remove obsolete code Reviewed-by: thartmann, dlong 2019-11-29 12:24:48 +07:00
ecaspole
39031388d4 8076988: reevaluate trivial method policy Summary: Removed some checks to qualify as trivial Reviewed-by: shade, thartmann, dlong 2019-11-29 12:24:48 +07:00
redestad
c52178849f 8209186: Rename SimpleThresholdPolicy to TieredThresholdPolicy Reviewed-by: thartmann, pliden, kvn 2019-11-29 12:24:48 +07:00
rrich
1e7520f894 8228618: s390: c1/c2 fail to add a metadata relocation in the static call stub. Reviewed-by: mdoerr, goetz 2019-11-29 12:24:48 +07:00
joehw
73a9d228d8 8213734: SAXParser.parse(File, ..) does not close resources when Exception occurs. Reviewed-by: lancea 2019-11-29 12:24:48 +07:00
coffeys
e68266ef05 8213561: ZipFile/MultiThreadedReadTest.java timed out in tier1 Reviewed-by: lancea 2019-11-29 12:24:48 +07:00
kbarrett
c6b446af02 8220690: ATTRIBUTE_ALIGNED requires GNU extensions enabled Summary: Use __typeof__(x) instead of typeof(x). Reviewed-by: shade, sgehwolf 2019-11-29 12:24:48 +07:00
valeriep
9100e2b570 8226607: Inconsistent info between pcsclite.md and MUSCLE headers Summary: Updated the info based on MUSCLE v1.8.24 Reviewed-by: ascarpino 2019-11-29 12:24:48 +07:00
valeriep
7087eaec00 8218780: Update MUSCLE PCSC-Lite header files Summary: update the PCSC-lite header files to 1.8.24 release Reviewed-by: coffeys 2019-11-29 12:24:48 +07:00
ogatak
a875315c21 8224090: [PPC64] Fix SLP patterns for filling an array with double float literals Reviewed-by: mdoerr, simonis 2019-11-29 12:24:48 +07:00
stuefe
5b8dafa160 8227041: runtime/memory/RunUnitTestsConcurrently.java has a memory leak Reviewed-by: stefank, coleenp 2019-11-29 12:24:47 +07:00
sgroeger
2b9e81f96c 8226468: [aix] loadquery failed error message displayed Reviewed-by: stuefe, mbaesken 2019-11-29 12:24:47 +07:00
mbaesken
a108c6a251 8227247: tools/sjavac/IdleShutdown.java fails with AssertionError: Error too big on windows Reviewed-by: jjg, stuefe 2019-11-29 12:24:47 +07:00
kevinw
0527a7ee0a 8219513: compiler/codegen/aes/TestCipherBlockChainingEncrypt.java timeout on Solaris-sparc Reviewed-by: kvn, iignatyev Contributed-by: fairoz.matte@oracle.com 2019-11-29 12:24:47 +07:00
hseigel
d3a73ae583 8215901: [TESTBUG] TestCheckedEnsureLocalCapacity.java fails intermittently Summary: Change pattern match to not require that the matching string start at the beginning of a line. Reviewed-by: dcubed, dholmes 2019-11-29 12:24:47 +07:00
joehw
1b3990bbe8 8213325: (props) Properties.loadFromXML does not fully comply with the spec Reviewed-by: alanb, rriggs, dfuchs, naoto 2019-11-29 12:24:47 +07:00
dzhou
5a6501c033 8210408: Refactor java.util.ResourceBundle:i18n shell tests to plain java tests Reviewed-by: naoto 2019-11-29 12:24:47 +07:00
dtitov
49b93fc0a5 8206074: nsk/jdi/EventRequestManager/createStepRequest/crstepreq001/TestDescription.java is timing out Reviewed-by: cjplummer, gadams 2019-11-29 12:24:47 +07:00
pliden
63cf5826b7 8215451: JNI IsSameObject should not keep objects alive Reviewed-by: eosterlund, kbarrett 2019-11-29 12:24:47 +07:00
tvaleev
7d60956ff4 8214687: Optimize Collections.nCopies().hashCode() and equals() Reviewed-by: igerasim, smarks 2019-11-29 12:24:47 +07:00
jiefu
9da926c7a3 8219919: RuntimeStub name lost with PrintFrameConverterAssembly Reviewed-by: kvn 2019-11-29 12:24:47 +07:00
manc
0350cad963 8223227: Rename acquire_tag_map() to tag_map_acquire() in jvmtiEnvBase Reviewed-by: dholmes, jcbeyler 2019-11-29 12:24:46 +07:00
manc
31e61204a1 8223177: Data race on JvmtiEnvBase::_tag_map in double-checked locking Summary: Add memory fences on accesses to JvmtiEnvBase::_tag_map Reviewed-by: dholmes, jcbeyler, sspitsyn 2019-11-29 12:24:46 +07:00
bpb
baa8d855f9 8202252: (aio) Closed AsynchronousSocketChannel keeps completion handler alive Summary: Clear handler instance variable after use Reviewed-by: rriggs, alanb 2019-11-29 12:24:46 +07:00
eosterlund
cda4d52840 8224531: SEGV while collecting Klass statistics Reviewed-by: coleenp, kbarrett, tschatzl 2019-11-29 12:24:46 +07:00
eosterlund
d716566537 8212992: Change mirror accessor in Klass::verify_on() to use AS_NO_KEEPALIVE Reviewed-by: coleenp, pliden 2019-11-29 12:24:46 +07:00
eosterlund
808e3190b5 8210063: ZGC: Enable load barriers for IN_NATIVE runtime barriers Reviewed-by: pliden 2019-11-29 12:24:46 +07:00
eosterlund
ab69ef628e 8227277: HeapInspection::find_instances_at_safepoint walks dead objects Reviewed-by: dholmes, kbarrett, tschatzl, coleenp 2019-11-29 12:24:46 +07:00
redestad
063cd195f7 8220682: Heap dumping and inspection fails with JDK-8214712 Reviewed-by: jcbeyler, jiangli, sspitsyn 2019-11-29 12:24:46 +07:00
mgronlun
0d7ddd0044 8227011: Starting a JFR recording in response to JVMTI VMInit and / or Java agent premain corrupts memory Reviewed-by: egahlin, rwestberg 2019-11-29 12:24:46 +07:00
dcubed
884e063cdb 8227117: normal interpreter table is not restored after single stepping with TLH Reviewed-by: sspitsyn, eosterlund, dholmes, coleenp 2019-11-29 12:24:46 +07:00
coleenp
68a9ce537e 8228485: JVM crashes when bootstrap method for condy triggers loading of class whose static initializer throws exception Summary: Add case for JVM_CONSTANT_Dynamic in error_message function. Reviewed-by: dholmes, shade 2019-11-29 12:24:46 +07:00
igerasim
ba958e68ae 8226543: Reduce GC pressure during message digest calculations in password-based encryption Reviewed-by: mullan 2019-11-29 12:24:45 +07:00
jlahoda
a89ddcd623 8208269: Javadoc does not support module-info in a multi-release jar Summary: Ensuring correct version is set when reading multi-release jars. Reviewed-by: jjg 2019-11-29 12:24:45 +07:00
roland
db7c827e90 8209684: Intrinsics that assume some input non null should use GraphKit::must_be_not_null() Reviewed-by: kvn, thartmann 2019-11-29 12:24:45 +07:00
zgu
d2d403e6fb 8218566: NMT: missing memory tag for assert poison page Reviewed-by: shade, stuefe 2019-11-29 12:24:45 +07:00
zgu
5f5620da86 8218558: NMT stack traces in output should show mt component for virtual memory allocations Reviewed-by: shade, stuefe, coleenp 2019-11-29 12:24:45 +07:00
mbalao
a31c378062 8223482: Unsupported ciphersuites may be offered by a TLS client Reviewed-by: xuelei, andrew 2019-11-29 12:24:45 +07:00
unknown
4e318fe17e 8221892: ThreadPoolExecutor: Thread.isAlive() is not equivalent to not being startable Reviewed-by: martin, dholmes 2019-11-29 12:24:45 +07:00
weijun
4317086b95 8225257: sun/security/tools/keytool/PSS.java timed out Reviewed-by: valeriep 2019-11-29 12:24:45 +07:00
rpatil
5e2b75e1b7 8224560: (tz) Upgrade time-zone data to tzdata2019a 8225580: tzdata2018i integration causes test failures on jdk-13 8215982: (tz) Upgrade time-zone data to tzdata2018i Reviewed-by: andrew, naoto 2019-11-29 12:24:45 +07:00
weijun
d9a9191583 8222987: sun/security/tools/keytool/PSS.java times out on Solaris-SPARC Reviewed-by: mullan, xuelei 2019-11-29 12:24:45 +07:00
naoto
e678c7c484 8222980: Upgrade IANA Language Subtag Registry to Version 2019-04-03 Reviewed-by: bpb, lancea 2019-11-29 12:24:45 +07:00
coffeys
685987cedb 8133489: Better messaging for PKIX path validation matching Reviewed-by: xuelei 2019-11-29 12:24:44 +07:00
kbarrett
ddc24ff413 8217576: C1 atomic access handlers use incorrect decorators Summary: Fix decorator defaulting. Reviewed-by: tschatzl, eosterlund 2019-11-29 12:24:44 +07:00
rehn
6b216b260e 8220173: assert(_handle_mark_nesting > 1) failed: memory leak: allocating handle outside HandleMark Reviewed-by: dcubed, redestad 2019-11-29 12:24:44 +07:00
rkennke
d913f69bc3 8223244: Fix usage of ARRAYCOPY_DISJOINT decorator Reviewed-by: eosterlund, shade 2019-11-29 12:24:44 +07:00
mdoerr
60a9fa82d2 8225347: [s390] Unexpected exit from stack overflow test Reviewed-by: simonis 2019-11-29 12:24:44 +07:00
rrich
aae91dfee0 8223572: ~ThreadInVMForHandshake() should call handle_special_runtime_exit_condition() Reviewed-by: dcubed, rehn, dholmes 2019-11-29 12:24:44 +07:00
naoto
65bdba16cf 8220037: Inconsistencies of generated timezone files between Windows and Linux Reviewed-by: rriggs 2019-11-29 12:24:44 +07:00
naoto
04f49461ee 8217366: ZoneStrings are not populated for all the Locales Reviewed-by: rriggs 2019-11-29 12:24:44 +07:00
psadhukhan
34d4d46bdb 8214702: Wrong text position for whitespaced string in printing Swing text Reviewed-by: prr, serb 2019-11-29 12:24:44 +07:00
alanb
aca014f9e8 8208780: (se) test SelectWithConsumer.testReadableAndWriteable(): failure Reviewed-by: bpb 2019-11-29 12:24:44 +07:00
mbaesken
6b89e3c9a8 8215961: jdk/jfr/event/os/TestCPUInformation.java fails on AArch64 Reviewed-by: aph, goetz, lucy 2019-11-29 12:24:44 +07:00
roland
0a7186408e 8215265: C2: range check elimination may allow illegal out of bound access Reviewed-by: thartmann, kvn 2019-11-29 12:24:44 +07:00
joehw
3f02f6a9e2 8180901: Transformer.reset() resets the state only once Reviewed-by: rriggs, lancea 2019-11-29 12:24:43 +07:00
neliasso
afdcfe7996 8087128: C2: Disallow definition split on MachCopySpill nodes Reviewed-by: kvn 2019-11-29 12:24:43 +07:00
eosterlund
ee7a8b2836 8216987: ciMethodData::load_data() unpacks MDOs with non-atomic copy Reviewed-by: kvn, mdoerr, thartmann 2019-11-29 12:24:43 +07:00
eosterlund
876a237923 8216427: ciMethodData::load_extra_data() does not always unpack the last entry Reviewed-by: thartmann, kvn 2019-11-29 12:24:43 +07:00
dholmes
59614ead06 8193234: When using -Xcheck:jni an internally allocated buffer can leak Reviewed-by: shade, hseigel 2019-11-29 12:24:43 +07:00
roland
6feab1c871 8224580: Matcher can cause oop field/array element to be reloaded Reviewed-by: neliasso, rkennke, dlong 2019-11-29 12:24:43 +07:00
vlivanov
5ee1e4169f 8218163: C2: Continuous deoptimization w/ Reason_speculate_class_check and Action_none Reviewed-by: kvn, neliasso 2019-11-29 12:24:43 +07:00
thartmann
d8718869c7 8218721: C1's CEE optimization produces safepoint poll with invalid debug information Summary: Bail out of CEE if one of the gotos is a safepoint but the if is not. Reviewed-by: vlivanov, mdoerr 2019-11-29 12:24:43 +07:00
prr
7493143634 8222362: Upgrade to Freetype 2.10.0 Reviewed-by: serb, erikj 2019-11-29 12:24:43 +07:00
coffeys
24c3cb08db 8217364: Custom URLStreamHandler for jrt or file protocol can override default handler Reviewed-by: redestad 2019-11-29 12:24:42 +07:00
xuelei
e951925064 8216326: SSLSocket stream close() does not close the associated socket Reviewed-by: jnimeh 2019-11-29 12:24:42 +07:00
rriggs
de811fa971 8216205: Java API documentation formatting error in System.getEnv Reviewed-by: lancea, bchristi, alanb 2019-11-29 12:24:42 +07:00
ysuenaga
133b9def4b 8216155: C4819 warning at libfreetype sources on Windows Reviewed-by: erikj 2019-11-29 12:24:42 +07:00
roland
ea5250cb69 8215483: Off heap memory accesses should be vectorized Reviewed-by: neliasso, kvn 2019-11-29 12:24:42 +07:00
dmarkov
45fbb55e57 8214579: JFrame does not paint content in XVFB / X11vnc environment Reviewed-by: prr 2019-11-29 12:24:42 +07:00
mgronlun
2941a8707c 8214287: SpecJbb2005StressModule got uncaught exception Reviewed-by: egahlin, jwilhelm 2019-11-29 12:24:42 +07:00
joehw
19298a4a63 8213117: adoptNode corrupts attribute values Reviewed-by: lancea 2019-11-29 12:24:42 +07:00
mdoerr
053f38c8b2 8224230: [PPC64, s390] Support AsyncGetCallTrace Reviewed-by: goetz, jcbeyler, sspitsyn 2019-11-29 12:24:42 +07:00
weijun
8ff154d460 8221801: Update src/java.base/share/legal/public_suffix.md Reviewed-by: xuelei 2019-11-29 12:24:42 +07:00
psadhukhan
2ec6c1bb18 8221411: NullPointerException in RasterPrinterJob without PrinterResolution Reviewed-by: prr 2019-11-29 12:24:42 +07:00
jnimeh
930b5fc653 8218723: Use SunJCE Mac in SecretKeyFactory PBKDF2 implementation Reviewed-by: apetcher 2019-11-29 12:24:41 +07:00
stuefe
e45e48522c 8224487: outputStream should not be copyable Reviewed-by: kbarrett, coleenp 2019-11-29 12:24:41 +07:00
stuefe
86f28c5e03 8221480: jcmd VM.metaspace shall print limits in basic mode Reviewed-by: adinn, rehn 2019-11-29 12:24:41 +07:00
shade
0aa8b848c0 8224033: os::snprintf should be used in virtualizationSupport.cpp Reviewed-by: mbaesken, stuefe 2019-11-29 12:24:41 +07:00
mbaesken
645e73c407 8222720: Provide extended VMWare/vSphere virtualization related info in the hs_error file on linux/windows x86_64 Reviewed-by: dholmes, rehn 2019-11-29 12:24:41 +07:00
mdoerr
1035e46d44 8225663: [testbug] Missing JNIEXPORT in XAbortProvoker native function Reviewed-by: mbaesken, gromero, kvn 2019-11-29 12:24:41 +07:00
gromero
a70c4d4ebb 8223660: jtreg: Decouple Unsafe from RTM tests Reviewed-by: mdoerr, shade 2019-11-29 12:24:41 +07:00
rschmelter
5f901c5982 8220570: Additonal trace when native thread creation fails Summary: Added additonal trace when native thread creation fails Reviewed-by: dholmes, goetz 2019-11-29 12:24:41 +07:00
rschmelter
ea20050764 8221325: Add information about swap space to print_memory_info() on MacOS Reviewed-by: stuefe, dholmes 2019-11-29 12:24:41 +07:00
shade
8cdd6bee6a 8218715: [TESTBUG] TestUseOptoBiasInliningWithoutEliminateLocks needs to unlock WhiteBoxAPI Reviewed-by: kvn 2019-11-29 12:24:41 +07:00
roland
24146de984 8217990: C2 UseOptoBiasInlining: load of markword optimized to 0 if running with -XX:-EliminateLocks Reviewed-by: thartmann, mdoerr, rrich, kvn 2019-11-29 12:24:41 +07:00
roland
165e0fed91 8216549: Mismatched unsafe access to non escaping object fails Reviewed-by: vlivanov, kvn, thartmann 2019-11-29 12:24:41 +07:00
fyang
c39dfe852e 8217359: C2 compiler triggers SIGSEGV after transformation in ConvI2LNode::Ideal Reviewed-by: thartmann Contributed-by: jitao8@huawei.com 2019-11-29 12:24:40 +07:00
vlivanov
c6bc4e331a 8217760: C2: Missing symbolic info on a call from intrinsics when invoked through MethodHandle Reviewed-by: thartmann, roland 2019-11-29 12:24:40 +07:00
thartmann
2735859ea2 8218201: Failures when vmIntrinsics::_getClass is not inlined Summary: Fix BCEscapeAnalyzer to correctly handle _getClass intrinsic. Reviewed-by: kvn, dlong, redestad, neliasso 2019-11-29 12:24:40 +07:00
zgu
bb2650fd53 8216199: Local variable arg defined but never used in BCEscapeAnalyzer::compute_escape_for_intrinsic() Summary: Removed unused local variable Reviewed-by: thartmann 2019-11-29 12:24:40 +07:00
unknown
5205b67c07 8221120: CopyOnWriteArrayList.set should always have volatile write semantics Reviewed-by: martin 2019-11-29 12:24:40 +07:00
qpzhang
01239bc9f9 8221220: AArch64: Add StoreStore membar explicitly for Volatile Writes in TemplateTable Reviewed-by: aph 2019-11-29 12:24:40 +07:00
fyang
454e3ab3f7 8219635: aarch64: missing LoadStore barrier in TemplateTable::fast_storefield Reviewed-by: aph Contributed-by: patrick@os.amperecomputing.com 2019-11-29 12:24:40 +07:00
fyang
167932904a 8218185: aarch64: missing LoadStore barrier in TemplateTable::putfield_or_static Reviewed-by: aph Contributed-by: lunliu93@gmail.com 2019-11-29 12:24:40 +07:00
dkejriwal
cf1eb0bce6 8206879: Currency decimal marker incorrect for Peru Reviewed-by: naoto, rpatil 2019-11-29 12:24:40 +07:00
igerasim
cb0a40ad69 6996807: FieldReflectorKey hash code computation can be improved Reviewed-by: rriggs 2019-11-29 12:24:40 +07:00
gromero
c98f4944ae 8221434: Fix typo in lib-x11 autoconf error message about missing headers Reviewed-by: dholmes 2019-11-29 12:24:39 +07:00
xliu
3312aa5fbf 8223537: testlibrary_tests/ctw/ClassesListTest.java fails with Agent timeout frequently Summary: Always purge_stale_tasks() in CompileQueue::get(). Reviewed-by: thartmann, kvn 2019-11-29 12:24:39 +07:00
stuefe
ecc6c105e6 8224034: [TESTBUG] runtime/ErrorHandlerTest/ErrorHandler fails intermittently for case 13 on Windows Reviewed-by: dholmes 2019-11-29 12:24:39 +07:00
stuefe
ce5d9b023d 8224181: On child process spawn, child may write to random file descriptor instead of the fail pipe Reviewed-by: rriggs, martin 2019-11-29 12:24:39 +07:00
stuefe
989fcdab48 8225178: [Solaris] os::signal() should call sigaction() with SA_SIGINFO Reviewed-by: dcubed, dholmes 2019-11-29 12:24:39 +07:00
jiangli
9ce25e0256 8210926: vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java failed with JVMTI_ERROR_INVALID_CLASS in CDS mode Summary: Reset InstanceKlass _init_state to 'allocated' before writing out shared classes at dump time. Reviewed-by: dholmes, coleenp 2019-11-29 12:24:39 +07:00
tschatzl
eabc627267 8200365: TestOptionsWithRanges.java of '-XX:TLABWasteTargetPercent=100' fails intermittently Summary: For initial TLAB sizing, increase the number of expected refills to 2. Reviewed-by: phh, sangheki 2019-11-29 12:24:39 +07:00
aivanov
0399ca1b86 8218682: [TEST_BUG] DashOffset fails in mach5 8198411: [TEST_BUG] Two java2d tests are unstable in mach5 Summary: Skip testing VolatileImage if IndexColorModel is detected Reviewed-by: prr, serb 2019-11-29 12:24:39 +07:00
dlong
3ea3cb34f0 8204521: compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java fails trying to delete temp file Reviewed-by: kvn 2019-11-29 12:24:39 +07:00
kaddepalli
518b306a9d 8196681: Java Access Bridge logging and debug flags dynamically controlled Reviewed-by: serb, sveerabhadra 2019-11-29 12:24:39 +07:00
goetz
432d67fccb 8215534: [testbug] some jfr test don't check @requires vm.hasJFR Reviewed-by: sundar, egahlin 2019-11-29 12:24:39 +07:00
coffeys
46e71c37bd 8148188: Enhance the security libraries to record events of interest Reviewed-by: egahlin, mullan, weijun, xuelei 2019-11-29 12:24:39 +07:00
ysuenaga
e4b113a046 8225636: SA can't handle prelinked libraries Reviewed-by: sspitsyn, cjplummer 2019-11-29 12:24:38 +07:00
naoto
74e785d99d 8214770: java/time/test/java/time/format/TestNonIsoFormatter.java failed in non-english locales. Reviewed-by: lancea, bpb 2019-11-29 12:24:38 +07:00
mbaesken
57f4ebeafb 8220355: Improve assertion texts and exception messages in eventHandlerVMInit Reviewed-by: alanb, sspitsyn, jcbeyler 2019-11-29 12:24:38 +07:00
mbaesken
d25deac18b 8223574: add more thread-related system settings info to hs_error file on AIX Reviewed-by: goetz, mdoerr 2019-11-29 12:24:38 +07:00
mbaesken
3c49912fc5 8222280: Provide virtualization related info in the hs_error file on AIX Reviewed-by: clanger, mdoerr 2019-11-29 12:24:38 +07:00
azeller
7929fce046 8194231: java/net/DatagramSocket/ReuseAddressTest.java failed with java.net.BindException: Address already in use: Cannot bind Summary: Changed test to no longer use hardcoded ports. Reviewed-by: chegar, clanger 2019-11-29 12:24:38 +07:00
thartmann
7b2ac0579e 8219807: C2 crash in IfNode::up_one_dom(Node*, bool) Summary: Guard against regions degraded to copies. Reviewed-by: kvn 2019-11-29 12:24:38 +07:00
mbaesken
904b065be3 8217093: Support extended-length paths in parse_manifest.c on windows Reviewed-by: chegar, clanger 2019-11-29 12:24:38 +07:00
mdoerr
3fb686a350 8211097: aix: fix build after JDK-8210919 Reviewed-by: shade, mbaesken, erikj 2019-11-29 12:24:38 +07:00
ihse
0513b87831 8210919: Remove statically linked libjli on Windows Reviewed-by: erikj 2019-11-29 12:24:38 +07:00
ihse
fc5c718661 8210729: Clean up macosx static library handling Reviewed-by: erikj 2019-11-29 12:24:38 +07:00
mgronlun
cddb74d2a2 8214161: java.lang.IllegalAccessError: class jdk.internal.event.X509CertificateEvent (in module java.base) cannot access class jdk.jfr.internal.handlers.EventHandler (in module jdk.jfr) because module java.base does not read module jdk.jfr Reviewed-by: egahlin, dholmes 2019-11-29 12:24:38 +07:00
mgronlun
f030750af7 8213172: CDS and JFR tests fail with assert(JdkJfrEvent::is(klass)) failed: invariant Reviewed-by: egahlin, dholmes 2019-11-29 12:24:38 +07:00
egahlin
dad134d6d8 8203629: Produce events in the JDK without a dependency on jdk.jfr Reviewed-by: mgronlun 2019-11-29 12:24:37 +07:00
igerasim
38cf3dcc11 8217344: Make comparison overflow-aware in ECDHKeyAgreement.engineGenerateSecret() Reviewed-by: apetcher 2019-11-29 12:24:37 +07:00
xliu
4d9f1c2080 8222670: pathological case of JIT recompilation and code cache bloat Summary: Prevent downgraded compilation tasks from recompiling. Reviewed-by: sgehwolf, thartmann 2019-11-29 12:24:37 +07:00
xuelei
4f80f3f6d4 8221253: TLSv1.3 may generate TLSInnerPlainText longer than 2^14+1 bytes Reviewed-by: jnimeh 2019-11-29 12:24:37 +07:00
thartmann
7de85f3a86 8177899: Tests fail due to code cache exhaustion on machines with many cores Summary: Implemented upper limit on CICompilerCount based on code cache size. Reviewed-by: kvn, mdoerr 2019-11-29 12:24:37 +07:00
mbaesken
3700f363ab 8219241: Provide basic virtualization related info in the hs_error file on linux/windows x86_64 Reviewed-by: dholmes, mdoerr 2019-11-29 12:24:37 +07:00
robm
fd51d57e83 8139965: Hang seen when using com.sun.jndi.ldap.search.replyQueueSize Reviewed-by: dfuchs 2019-11-29 12:24:37 +07:00
aoqi
eb2c633229 8170639: [Linux] jsig is limited to a maximum of 64 signals Reviewed-by: dholmes, iklam 2019-11-29 12:24:37 +07:00
ysuenaga
b942fc1590 8224252: [TESTBUG] hotspot/test/serviceability/sa/sadebugd/SADebugDTest.java is timing out again after fix for JDK-8163805 Reviewed-by: cjplummer, sspitsyn 2019-11-29 12:24:37 +07:00
clanger
fdbe934361 8223553: Fix code constructs that do not compile with the Eclipse Java Compiler Reviewed-by: smarks, dfuchs 2019-11-29 12:24:37 +07:00
stuefe
9310557f64 8213017: jspawnhelper: need to handle pipe write failure when sending return code Reviewed-by: alanb 2019-11-29 12:24:37 +07:00
unknown
7dd62453a1 8224698: ConcurrentSkipListMap.java does not compile with the Eclipse Java Compiler Reviewed-by: martin, clanger, smarks, dfuchs 2019-11-29 12:24:37 +07:00
goetz
968a703563 8224838: Bump update version for OpenJDK: jdk-11.0.5 Reviewed-by: clanger 2019-11-29 12:24:36 +07:00
xuelei
8ae0ca788b 8210985: Update the default SSL session cache size to 20480 Summary: Change SSLSessionContext.getSessionCacheSize to return 20480 by default instead of 0. Reviewed-by: jnimeh, mullan 2019-11-29 12:24:36 +07:00
bell-sw
7cc6dabacb Merge conflict fix. Conflict against: https://github.com/JetBrains/JetBrainsRuntime/commit/0456745 2019-11-29 12:24:36 +07:00
prr
98222a3ab1 8225286: Better rendering of native glyphs Reviewed-by: serb, psadhukhan, mschoene, rhalade
Conflicts:
	src/java.desktop/share/native/libfontmanager/freetypeScaler.c
2019-11-29 12:24:36 +07:00
prr
6ca28a465e 8223886: Add in font table referene Reviewed-by: serb, psadhukhan, mschoene, rhalade
Conflicts:
	src/java.desktop/share/native/libfontmanager/hb-jdk-font.cc
Cherrypick merge failed. The change applied manually:
	https://github.com/bell-sw/jdk11u-openjdk/commit/0634e836
2019-11-29 12:24:36 +07:00
bell-sw
86f9f3d218 Merge conflict fix. Conflict against: https://github.com/JetBrains/JetBrainsRuntime/commit/690696bb 2019-11-29 12:24:36 +07:00
prr
dccdba4195 8222690: Better Glyph Images Reviewed-by: serb, psadhukhan, mschoene, rhalade
Conflicts:
	src/java.desktop/share/native/libfontmanager/DrawGlyphList.c
2019-11-29 12:24:36 +07:00
bell-sw
904035e893 Merge conflict fix. Minor clash with the change: https://github.com/JetBrains/JetBrainsRuntime/commit/1e1b932a 2019-11-29 12:24:36 +07:00
prr
cb01742e4d 8220186: Improve use of font temporary files Reviewed-by: serb, psadhukhan, mschoene, rhalade
Conflicts:
	src/java.desktop/share/classes/sun/font/FreetypeFontScaler.java
2019-11-29 12:24:36 +07:00
bell-sw
7d4b3df1d1 Merge conflict fix. Minor clash with the change: https://github.com/JetBrains/JetBrainsRuntime/commit/e3ba0bd6 2019-11-29 12:24:36 +07:00
serb
2f7d8d675a 8215756: Memory leaks in the AWT on macOS Reviewed-by: dmarkov
Conflicts:
	src/java.desktop/macosx/native/libawt_lwawt/awt/AWTView.m
2019-11-29 12:24:36 +07:00
valeriep
cd45e7d047 8216039: TLS with BC and RSASSA-PSS breaks ECDHServerKeyExchange Summary: Add internal Signature init methods to select provider based on both key and parameter Reviewed-by: xuelei 2019-11-29 12:24:35 +07:00
valeriep
62eedcd00e 8214096: sun.security.util.SignatureUtil passes null parameter, so JCE validation fails Summary: Changed SignatureUtil.specialSetParameter to ignore null signature parameters Reviewed-by: mullan, weijun 2019-11-29 12:24:35 +07:00
weijun
e5b9dff996 8215694: keytool cannot generate RSASSA-PSS certificates Reviewed-by: xuelei 2019-11-29 12:24:35 +07:00
redestad
fc7e5e237f 8215380: Backout accidental change to String::length Reviewed-by: darcy, smarks 2019-11-29 12:24:35 +07:00
bell-sw
de40b3e2e8 Merge conflict fix. Automatic merge failed due to cherrypicking commit from outdated mercurial branch without the change: https://github.com/bell-sw/jdk11u-openjdk/commit/aa8dc084 2019-11-29 12:24:35 +07:00
redestad
41960fba8c 8215281: Use String.isEmpty() when applicable in java.base Reviewed-by: dfuchs, alanb
Conflicts:
	src/java.base/share/classes/sun/security/ssl/SSLContextImpl.java
	src/java.base/share/classes/sun/security/ssl/X509TrustManagerImpl.java
2019-11-29 12:24:35 +07:00
bell-sw
91790b3703 Merge conflict fix. Automatic cherrypick merge failed due to commit on outdated mercurial branch without the change: https://github.com/bell-sw/jdk11u-openjdk/commit/d5bd6969 2019-11-29 12:24:35 +07:00
apetcher
a9557a4d3a 8147502: Digest is incorrectly truncated for ECDSA signatures when the bit length of n is less than the field size Summary: Truncate the digest according to the group order, not the field size Reviewed-by: jnimeh
Conflicts:
	src/jdk.crypto.ec/share/classes/sun/security/ec/ECDSASignature.java
2019-11-29 12:24:35 +07:00
Alexey Ushakov
feafd8965a JBR-1970 [bkp to 193] JBR-1962 Allow to change font config
-Djava2d.font.loadFontConf=true option loads .fonts.conf from user.home (if available)

(cherry picked from commit 165ca35138)
(cherry picked from commit faa8d3d258)
2019-11-27 16:41:03 +03:00
Vitaly Provodin
9fb7d40dbe updated JTreg exclude list 2019-11-25 11:59:03 +07:00
Vitaly Provodin
f276e66ddc updated JTreg exclude list 2019-11-20 10:29:29 +07:00
Denis Fokin
5832699aa0 JBR-1967 backport to 193: JBR-1883 Button states are changed on Toolbar after significant delay
(cherry picked from commit 6c1c66e3e7)
2019-11-19 12:23:16 +03:00
Vitaly Provodin
b8619feb9e updated JTreg exclude list 2019-11-18 16:25:30 +07:00
Alexey Ushakov
cd4c15fca4 JBR-1959 [bkp to 193] JBR-1954 .AppleSystemUIFont font rendering issues still exist for non-HiDPI displays on macOS Catalina
Removed workaround for fixed JBR-226 to have correct device transform. Additional transform for font size calculation is not necessary any more.

(cherry picked from commit c430a66615)
2019-11-15 16:13:51 +03:00
Alexey Ushakov
85fbfd586d JBR-1925 JetBrainsMono fonts update to v0.20
Updated the fonts to v0.20

(cherry picked from commit 41f4fddd34)
2019-11-14 18:10:31 +07:00
Konstantin Bulenkov
82259164e9 Remove JetBrains Mono Italic until UX-973 is fixed
(cherry picked from commit 529d5c8bcc)
2019-11-14 18:10:25 +07:00
Denis Fokin
fbebc4470b JBR-1947 backport: JBR-1932 Dialogs leak via CPlatformWindow
(cherry picked from commit 7fe266a4a3)
2019-11-05 12:59:46 +03:00
Alexey Ushakov
bbbe066b74 JBR-1915 .AppleSystemUIFont font rendering issues on macOS Catalina
Restored CoreText rendering (JBR-1756, JBR-1863, JBR-1868)
Use actual font size for calculating advances

(cherry picked from commit 0ff4014388)
2019-10-31 14:22:43 +03:00
Denis Fokin
fadf7ba13a JBR-1931 Provide separate means to get in fullscreen and get out of fullscreen
(cherry picked from commit a19f3595ba)
2019-10-28 17:16:22 +03:00
Elena Sayapina
fb450839b4 JBR-1417 Regression test update, fixed focus issue on a certain TC agents by adding frame.toFront()
(cherry picked from commit b99c1e7b5c)
2019-10-16 19:43:01 +07:00
Vitaly Provodin
4c11caa0ce JBR-1821: Notarize JBR bundles as a standalone app 2019-10-16 14:32:49 +07:00
Elena Sayapina
fad2dbc187 JBR-1417 Regression test update, additional focus check was added
(cherry picked from commit d757108517)
2019-10-16 13:20:37 +07:00
Elena Sayapina
5c51d79ef9 JBR-1417 Regression test update, fixed test compilation, added missed import
(cherry picked from commit 6ea9530d9f)
2019-10-16 12:23:45 +07:00
Elena Sayapina
928e884754 JBR-1417 Regression test update, made fail check more straightforward
(cherry picked from commit 9fe5c778d9)
2019-10-16 12:23:40 +07:00
4581 changed files with 76112 additions and 1009218 deletions

1
.gitignore vendored
View File

@@ -24,4 +24,3 @@ test/nashorn/lib
NashornProfile.txt
**/JTreport/**
**/JTwork/**
/jb/project/java-gradle/.idea/workspace.xml

57
.hgtags
View File

@@ -576,60 +576,3 @@ aa260c24480a2bd7d21ad1c863e6fe9a3973011e jdk-11.0.6+6
1859de77ee6cd7e10ac0b9e71027d9f974a6e481 jdk-11.0.6+9
837b7afec083aaddeef0a6c3e6501b2200eaf1d4 jdk-11.0.6+10
837b7afec083aaddeef0a6c3e6501b2200eaf1d4 jdk-11.0.6-ga
8cdfd6139b1efc9064b10f24a82848b1bb4a0550 jdk-11.0.7+1
15cc1c8a63718c394e9cd1f35d735bb74a850084 jdk-11.0.7+2
f2d8162261ae3c1e50eb0667b3c9669caa67c652 jdk-11.0.7+3
d3d1f7f67de13fd5c227424b9ddc514c0ca32aff jdk-11.0.7+4
f03574cfc0d728ca7b5146ca22c707717f9f899f jdk-11.0.7+5
17d2e0c27889a00a3df7de9bcea0e8caf0d1771a jdk-11.0.7+6
f56b853d452bd339e3f4360cf4be42cc90f9284c jdk-11.0.7+7
3c570d183ab2afc0b204a8e980be69e7fbe761ef jdk-11.0.7+8
7201cd0c64776aa574d252b03a4c92b25d0a7d7f jdk-11.0.7+9
44ce940b344b9f240be4807f5b8f06e178e3aecd jdk-11.0.7+10
44ce940b344b9f240be4807f5b8f06e178e3aecd jdk-11.0.7-ga
2eb415c82056bdc308d23ee6761f422de46dc5e5 jdk-11.0.8+1
88eaa453331e9aeca979d58509538ebb74831ce4 jdk-11.0.8+2
2c0c9cfe2a4e1340f7db106e2220dbd0d5b86092 jdk-11.0.8+3
aa6c93b4f1acf4166d74d0252b35c53ad71d8540 jdk-11.0.8+4
8df1a601187c0b4cb9e525075bd7b85ee3d72595 jdk-11.0.8+5
e42c6d1a1993c720a4643140190bb1ba6f1bbf9f jdk-11.0.8+6
46d4984bb3c6dd1b0f5135505b77921d23c69841 jdk-11.0.8+7
40b646e9d8fbb2d70992b61e4f4b08ca5652c907 jdk-11.0.8+8
59f8565ee5e224697a9e09ee2c557836733bc579 jdk-11.0.8+9
0b0d55cb09b29360ab254edeef32a3b386e9713e jdk-11.0.8+10
0b0d55cb09b29360ab254edeef32a3b386e9713e jdk-11.0.8-ga
5cc275af8419178813299cc0ed81a2a85dadfdcd jdk-11.0.9+1
3112657edde9491fb83f098f1a8b7e9275bcb2f7 jdk-11.0.9+2
d8a0513b92ee262d4e64c1e13d43e1b3f3e5c5d5 jdk-11.0.9+3
cb299db4a5698b814f6b3ba1f3d73d01f6a0e1f6 jdk-11.0.9+4
55237fa85afb404bc0dc0f4948a6459d8d3e5dac jdk-11.0.9+5
c07e785e36f587b95e151de382844cea3d1a5868 jdk-11.0.9+6
1ba4c16a8afa3f5aaa7830fc1f14a0137cc2553b jdk-11.0.9+7
8711e8554e15ae2fa38718d5c7dc858da10e8a4a jdk-11.0.9+8
e872676174c7f171a9864becba83cb783cfec9d0 jdk-11.0.9+9
6ac1b68e7c0034e08a96d7d37e93e5075a6e8d61 jdk-11.0.9+10
4397fa4529b2794ddcdf3445c0611fe383243fb4 jdk-11.0.9+11
4397fa4529b2794ddcdf3445c0611fe383243fb4 jdk-11.0.9-ga
4fd46d208f0a4b55924af8e0c2fb6bcf46e18ec6 jdk-11.0.9.1+0
27723943c0dd65a191cbefe031cec001521e4b13 jdk-11.0.9.1+1
31affc22b3b5f5d43783ffadf57f22848bad9db8 jdk-11.0.9.1-ga
f3168de4eb0dd74bf8e81537f62742bde5e412c3 jdk-11.0.10+1
a35aa07b57bab3690224e3af939ee085d50eb476 jdk-11.0.10+2
bca12c00a776f8cee7a0eeaf788499b9eab9cf9d jdk-11.0.10+3
9504fa6f98f5aad0aa1ac36d5bff3260a32020c8 jdk-11.0.10+4
5f5c3544ccb4d0bbc638e665524b292860dd9515 jdk-11.0.10+5
4b9bc2a1dde0631958393125997855382325964d jdk-11.0.10+6
c45f74d45787a857d35b5a66c9b0304c91a9c5d0 jdk-11.0.10+7
43428f69099f6f87f6e1922deacbf13e1adb751f jdk-11.0.10+8
8b3498547395ee80a6e731078056b2aeb3e3c5e8 jdk-11.0.10+9
8b3498547395ee80a6e731078056b2aeb3e3c5e8 jdk-11.0.10-ga
4ed322bf6b0098353ceaecf35662fadf457cd81d jdk-11.0.11+1
b68647c6ecc1e73111d8047448d75966f255460f jdk-11.0.11+2
14cc036b17a5f4be5b0643e6b24ed32563684ab9 jdk-11.0.11+3
c4405735470a92e2c45490b89a8099252f3481d2 jdk-11.0.11+4
38430a8a4488582612c6a87ab58d109cc5217e8b jdk-11.0.11+5
e41ae00add1d76a8f25adb558933382947ea840d jdk-11.0.11+6
14f9928caac31368d27f13e4e21ca25c1e0be950 jdk-11.0.11+7
9f0347b029d3a0349f23befcfb68ee02d85d9034 jdk-11.0.11+8
15862747ee15445292b4b9949b4f0f4badba4812 jdk-11.0.11+9
15862747ee15445292b4b9949b4f0f4badba4812 jdk-11.0.11-ga

View File

@@ -1,7 +1,9 @@
<component name="CopyrightManager">
<copyright>
<option name="allowReplaceRegexp" value="JetBrains" />
<option name="notice" value="Copyright 2000-&amp;#36;today.year JetBrains s.r.o.&#10;DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.&#10; &#10;This code is free software; you can redistribute it and/or modify it&#10;under the terms of the GNU General Public License version 2 only, as&#10;published by the Free Software Foundation.&#10;&#10;This code is distributed in the hope that it will be useful, but WITHOUT&#10;ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or&#10;FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License&#10;version 2 for more details (a copy is included in the LICENSE file that&#10;accompanied this code).&#10;&#10;You should have received a copy of the GNU General Public License version&#10;2 along with this work; if not, write to the Free Software Foundation,&#10;Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.&#10;&#10;Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA&#10;or visit www.oracle.com if you need additional information or have any&#10;questions." />
<option name="notice" value="Copyright 2000-&amp;#36;today.year JetBrains s.r.o.&#10;&#10;Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);&#10;you may not use this file except in compliance with the License.&#10;You may obtain a copy of the License at&#10;&#10;http://www.apache.org/licenses/LICENSE-2.0&#10;&#10;Unless required by applicable law or agreed to in writing, software&#10;distributed under the License is distributed on an &quot;AS IS&quot; BASIS,&#10;WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.&#10;See the License for the specific language governing permissions and&#10;limitations under the License." />
<option name="keyword" value="Copyright" />
<option name="allowReplaceKeyword" value="JetBrains" />
<option name="myName" value="JetBrains" />
<option name="myLocal" value="true" />
</copyright>
</component>

14
.idea/vcs.xml generated
View File

@@ -1,19 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="IssueNavigationConfiguration">
<option name="links">
<list>
<IssueNavigationLink>
<option name="issueRegexp" value="[A-Z]+\-\d+" />
<option name="linkRegexp" value="http://youtrack.jetbrains.com/issue/$0" />
</IssueNavigationLink>
<IssueNavigationLink>
<option name="issueRegexp" value="^(\d+)\:" />
<option name="linkRegexp" value="https://bugs.openjdk.java.net/browse/JDK-$1" />
</IssueNavigationLink>
</list>
</option>
</component>
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>

146
README.md
View File

@@ -1,156 +1,68 @@
[![official JetBrains project](http://jb.gg/badges/official.svg)](https://confluence.jetbrains.com/display/ALL/JetBrains+on+GitHub)
# Welcome to JetBrains Runtime!
# Downloads
JetBrains Runtime is a fork of [OpenJDK](https://github.com/openjdk/jdk) available for Windows, Mac OS X, and Linux.
It includes a number enhancements in font rendering, HiDPI support, ligatures, performance improvements, and bugfixes.
|Windows-x64 |macOS |Linux-x64 |
|-------------|-------------|-------------|
|<a href="https://bintray.com/jetbrains/intellij-jdk/openjdk9-windows-x64/_latestVersion"> <img src="https://api.bintray.com/packages/jetbrains/intellij-jdk/openjdk9-windows-x64/images/download.svg"/></a>|<a href="https://bintray.com/jetbrains/intellij-jdk/openjdk9-osx-x64/_latestVersion"> <img src="https://api.bintray.com/packages/jetbrains/intellij-jdk/openjdk9-osx-x64/images/download.svg"/></a>|<a href="https://bintray.com/jetbrains/intellij-jdk/openjdk9-linux-x64/_latestVersion"><img src="https://api.bintray.com/packages/jetbrains/intellij-jdk/openjdk9-linux-x64/images/download.svg"/></a>|
## Releases
Download the latest releases of JetBrains Runtime to use with JetBrains IDEs. The full list
can be found on the [releases page](https://github.com/JetBrains/JetBrainsRuntime/releases).
### For 2021.2 IDEs
# How JetBrains Runtime is organised
## Workspaces
| Release/tag | Date |
| --- | --- |
| [jb11_0_11-b1504.12](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jb11_0_11-b1504.12) | 12-Jul-2021 |
| [jb11_0_11-b1504.8](https://github.com/JetBrains/JetBrainsRuntime/releases/tag/jb11_0_11-b1504.8) | 06-Jul-2021 |
| [jb11_0_11-b1504.5](https://confluence.jetbrains.com/pages/viewpage.action?pageId=221478946) | 29-Jun-2021 |
| [jb11_0_11-b1504.3](https://confluence.jetbrains.com/pages/viewpage.action?pageId=218857540) | 15-Jun-2021 |
[github.com/JetBrains/JetBrainsRuntime](https://github.com/JetBrains/JetBrainsRuntime)
### For 2020.3 IDEs
| Release/tag | Date |
| --- | --- |
| [jb11_0_11-b1145.115](https://confluence.jetbrains.com/pages/viewpage.action?pageId=219349001) | 21-Jun-2021 |
| [jb11_0_11-b1145.96](https://confluence.jetbrains.com/pages/viewpage.action?pageId=207519955) | 18-Feb-2021 |
| [jb11_0_11-b1145.77](https://confluence.jetbrains.com/pages/viewpage.action?pageId=205389940) | 19-Jan-2021 |
## Contents
- [Welcome to JetBrains Runtime](#jetbrains-runtime)
- [Products Built on JetBrains Runtime](#products-built-on-jetbrains-runtime)
- [Getting Sources](#getting-sources)
- [macOS, Linux](#macos-linux)
- [Windows](#sources-windows)
- [Configuring the Build Environment](#configuring-the-build-environment)
- [Linux (Docker)](#linux-docker)
- [Ubuntu Linux](#ubuntu-linux)
- [Windows](#build-windows)
- [macOS](#macos)
- [Contributing](#contributing)
- [Resources](#resources)
## Products Built on JetBrains Runtime
* [Android Studio](https://developer.android.com/studio). The official IDE for Google's Android operating system.
* [CLion](https://www.jetbrains.com/clion/). A cross-platform IDE for C and C++ from JetBrains.
* [DataGrip](https://www.jetbrains.com/datagrip/). The IDE for Databases and SQL from JetBrains.
* [GoLand](https://www.jetbrains.com/go/). The cross-platform Go IDE from JetBrains.
* [IntelliJ IDEA](https://www.jetbrains.com/idea/). The IDE for JVM from JetBrains.
* [JProfiler](https://www.ej-technologies.com/products/jprofiler/overview.html). The Java profiler.
* [PhpStorm](https://www.jetbrains.com/phpstorm/). The PHP IDE from JetBrains.
* [PyCharm](https://www.jetbrains.com/pycharm/). The Python IDE from JetBrains.
* [Rider](https://www.jetbrains.com/rider/). The cross-platform .NET IDE from JetBrains.
* [RubyMine](https://www.jetbrains.com/ruby/). The Ruby and Rails IDE from JetBrains.
* [WebStorm](https://www.jetbrains.com/webstorm/). The JavaScript IDE from JetBrains.
* [YourKit](https://www.yourkit.com/). Java and .NET profilers.
## Getting Sources
### macOS, Linux
## Getting sources
__OSX, Linux:__
```
git config --global core.autocrlf input
git clone git@github.com:JetBrains/JetBrainsRuntime.git
```
### Windows
<a name="sources-windows"></a>
__Windows:__
```
git config --global core.autocrlf false
git clone git@github.com:JetBrains/JetBrainsRuntime.git
```
## Configuring the Build Environment
Here are quick per-platform instructions for those who can't wait to get started.
Please refer to [OpenJDK build docs](http://hg.openjdk.java.net/jdk/jdk11/raw-file/tip/doc/building.html) for in-depth
coverage of all the details.
> **_TIP:_** To get a preliminary report of what's missing, run `./configure` and check its output.
> It would usually have a meaningful advice on how to solve the problem.
### Linux (Docker)
Create a container:
# Configure Local Build Environment
## Linux (docker)
```
$ cd jb/project/docker
$ docker build .
...
Successfully built 942ea9900054
```
Run these commands in the new container:
```
$ docker run -v `pwd`../../../../:/JetBrainsRuntime -it 942ea9900054
# cd /JetBrainsRuntime
# sh ./configure
# make images CONF=linux-x86_64-normal-server-release
```
### 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 \
openjdk-11-jdk
```
Then run the following:
## Linux (Ubuntu 18.10 desktop)
```
$ 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
$ cd JetBrainsRuntime
$ sh ./configure --disable-warnings-as-errors
$ make images
```
### Windows
<a name="build-windows"></a>
Install the following:
* [Cygwin x64](http://www.cygwin.com/).
Required packages: `autoconf`, `binutils`, `cpio`, `diffutils`, `file`, `gawk`, `gcc-core`, `make`, `m4`, `unzip`, `zip`.
Install those together with Cygwin.
* [Visual Studio compiler toolset](https://visualstudio.microsoft.com/downloads/).
Install with the desktop development kit, which includes Windows SDK and compilers.
Visual Studio 2015 is supported by default.
* [Java 11](https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html).
If you have problems while configuring, read [Java tips on Cygwin](http://horstmann.com/articles/cygwin-tips.html).
## Windows
#### TBD
From the command line:
```
"c:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\vcvarsall.bat" amd64
"c:\Program_Files\cygwin64\bin\mintty.exe" /bin/bash -l
```
The first command sets up environment variables, the second starts a Cygwin shell with the proper environment.
## OSX
install Xcode console tools, autoconf (via homebrew)
run
In the Cygwin shell:
```
$ cd JetBrainsRuntime
$ bash configure --enable-option-checking=fatal --with-toolchain-version=2015 \
--with-boot-jdk="/cygdrive/c/Program Files/Java/jdk-11.0.5" --disable-warnings-as-errors
$ make images
sh ./configure --prefix=$(pwd)/build --disable-warnings-as-errors
make images
```
### macOS
Install the following:
* Xcode command line developer tools and `autoconf` via [Homebrew](getDpiInfo).
* [Java 11](https://docs.aws.amazon.com/corretto/latest/corretto-11-ug/downloads-list.html).
From the command line:
```
$ cd JetBrainsRuntime
$ sh ./configure --prefix=$(pwd)/build --disable-warnings-as-errors
$ make images
```
## Contributing
We are happy to receive your pull requests!
Before you submit one, please sign our [Contributor License Agreement (CLA)](https://www.jetbrains.com/agreements/cla/).
## Resources
* [JetBrains Runtime on github](https://github.com/JetBrains/JetBrainsRuntime).
* [OpenJDK build instructions](http://hg.openjdk.java.net/jdk/jdk11/raw-file/tip/doc/building.html).
* [OpenJDK test instructions](http://hg.openjdk.java.net/jdk/jdk11/raw-file/tip/doc/building.html#running-tests).
* [How to develop OpenJDK with CLion](https://blog.jetbrains.com/clion/2020/03/openjdk-with-clion/).
## Contribution
We will be happy to receive your pull requests. Before you submit one, please sign our Contributor License Agreement (CLA) https://www.jetbrains.com/agreements/cla/

View File

@@ -68,12 +68,10 @@
</ul></li>
<li><a href="#running-tests">Running Tests</a></li>
<li><a href="#cross-compiling">Cross-compiling</a><ul>
<li><a href="#cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</a></li>
<li><a href="#boot-jdk-and-build-jdk">Boot JDK and Build JDK</a></li>
<li><a href="#specifying-the-target-platform">Specifying the Target Platform</a></li>
<li><a href="#toolchain-considerations">Toolchain Considerations</a></li>
<li><a href="#native-libraries">Native Libraries</a></li>
<li><a href="#creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</a></li>
<li><a href="#building-for-armaarch64">Building for ARM/aarch64</a></li>
<li><a href="#verifying-the-build">Verifying the Build</a></li>
</ul></li>
@@ -279,7 +277,7 @@
</tr>
<tr class="even">
<td style="text-align: left;">Windows</td>
<td style="text-align: left;">Microsoft Visual Studio 2017 update 15.9.16</td>
<td style="text-align: left;">Microsoft Visual Studio 2017 update 15.5.5</td>
</tr>
</tbody>
</table>
@@ -371,10 +369,10 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<p>On Linux you can also get a JDK from the Linux distribution. On apt-based distros (like Debian and Ubuntu), <code>sudo apt-get install openjdk-&lt;VERSION&gt;-jdk</code> is typically enough to install a JDK &lt;VERSION&gt;. On rpm-based distros (like Fedora and Red Hat), try <code>sudo yum install java-&lt;VERSION&gt;-openjdk-devel</code>.</p>
<h2 id="external-library-requirements">External Library Requirements</h2>
<p>Different platforms require different external libraries. In general, libraries are not optional - that is, they are either required or not used.</p>
<p>If a required library is not detected by <code>configure</code>, you need to provide the path to it. There are two forms of the <code>configure</code> arguments to point to an external library: <code>--with-&lt;LIB&gt;=&lt;path&gt;</code> or <code>--with-&lt;LIB&gt;-include=&lt;path to include&gt; --with-&lt;LIB&gt;-lib=&lt;path to lib&gt;</code>. The first variant is more concise, but require the include files and library files to reside in a default hierarchy under this directory. In most cases, it works fine.</p>
<p>If a required library is not detected by <code>configure</code>, you need to provide the path to it. There are two forms of the <code>configure</code> arguments to point to an external library: <code>--with-&lt;LIB&gt;=&lt;path&gt;</code> or <code>--with-&lt;LIB&gt;-include=&lt;path to include&gt; --with-&lt;LIB&gt;-lib=&lt;path to lib&gt;</code>. The first variant is more concise, but require the include files an library files to reside in a default hierarchy under this directory. In most cases, it works fine.</p>
<p>As a fallback, the second version allows you to point to the include directory and the lib directory separately.</p>
<h3 id="freetype">FreeType</h3>
<p>FreeType2 from <a href="http://www.freetype.org/">The FreeType Project</a> is not required on any platform. The exception is on Unix-based platforms when configuring such that the build artifacts will reference a system installed library, rather than bundling the JDK's own copy.</p>
<p>FreeType2 from <a href="http://www.freetype.org/">The FreeType Project</a> is not required on any platform. The exception is on Unix-based platforms when configuring such that the build artifacts will reference a system installed library, rather than bundling the JDKs own copy.</p>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libfreetype6-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install freetype-devel</code>.</li>
@@ -435,7 +433,7 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<p>To build the JDK, you need a &quot;configuration&quot;, which consists of a directory where to store the build output, coupled with information about the platform, the specific build machine, and choices that affect how the JDK is built.</p>
<p>The configuration is created by the <code>configure</code> script. The basic invocation of the <code>configure</code> script looks like this:</p>
<pre><code>bash configure [options]</code></pre>
<p>This will create an output directory containing the configuration and setup an area for the build result. This directory typically looks like <code>build/linux-x64-server-release</code>, but the actual name depends on your specific configuration. (It can also be set directly, see <a href="#using-multiple-configurations">Using Multiple Configurations</a>). This directory is referred to as <code>$BUILD</code> in this documentation.</p>
<p>This will create an output directory containing the configuration and setup an area for the build result. This directory typically looks like <code>build/linux-x64-normal-server-release</code>, but the actual name depends on your specific configuration. (It can also be set directly, see <a href="#using-multiple-configurations">Using Multiple Configurations</a>). This directory is referred to as <code>$BUILD</code> in this documentation.</p>
<p><code>configure</code> will try to figure out what system you are running on and where all necessary build components are. If you have all prerequisites for building installed, it should find everything. If it fails to detect any component automatically, it will exit and inform you about the problem.</p>
<p>Some command line examples:</p>
<ul>
@@ -567,47 +565,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<p>This requires a more complex setup and build procedure. This section assumes you are familiar with cross-compiling in general, and will only deal with the particularities of cross-compiling the JDK. If you are new to cross-compiling, please see the <a href="https://en.wikipedia.org/wiki/Cross_compiler#External_links">external links at Wikipedia</a> for a good start on reading materials.</p>
<p>Cross-compiling the JDK requires you to be able to build both for the build platform and for the target platform. The reason for the former is that we need to build and execute tools during the build process, both native tools and Java tools.</p>
<p>If all you want to do is to compile a 32-bit version, for the same OS, on a 64-bit machine, consider using <code>--with-target-bits=32</code> instead of doing a full-blown cross-compilation. (While this surely is possible, it's a lot more work and will take much longer to build.)</p>
<h3 id="cross-compiling-the-easy-way-with-openjdk-devkits">Cross compiling the easy way with OpenJDK devkits</h3>
<p>The OpenJDK build system provides out-of-the box support for creating and using so called devkits. A <code>devkit</code> is basically a collection of a cross-compiling toolchain and a sysroot environment which can easily be used together with the <code>--with-devkit</code> configure option to cross compile the OpenJDK. On Linux/x86_64, the following command:</p>
<pre><code>bash configure --with-devkit=&lt;devkit-path&gt; --openjdk-target=ppc64-linux-gnu &amp;&amp; make</code></pre>
<p>will configure and build OpenJDK for Linux/ppc64 assuming that <code>&lt;devkit-path&gt;</code> points to a Linux/x86_64 to Linux/ppc64 devkit.</p>
<p>Devkits can be created from the <code>make/devkit</code> directory by executing:</p>
<pre><code>make [ TARGETS=&quot;&lt;TARGET_TRIPLET&gt;+&quot; ] [ BASE_OS=&lt;OS&gt; ] [ BASE_OS_VERSION=&lt;VER&gt; ]</code></pre>
<p>where <code>TARGETS</code> contains one or more <code>TARGET_TRIPLET</code>s of the form described in <a href="https://sourceware.org/autobook/autobook/autobook_17.html">section 3.4 of the GNU Autobook</a>. If no targets are given, a native toolchain for the current platform will be created. Currently, at least the following targets are known to work:</p>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Supported devkit targets</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">x86_64-linux-gnu</td>
</tr>
<tr class="even">
<td style="text-align: left;">aarch64-linux-gnu</td>
</tr>
<tr class="odd">
<td style="text-align: left;">arm-linux-gnueabihf</td>
</tr>
<tr class="even">
<td style="text-align: left;">ppc64-linux-gnu</td>
</tr>
<tr class="odd">
<td style="text-align: left;">ppc64le-linux-gnu</td>
</tr>
<tr class="even">
<td style="text-align: left;">s390x-linux-gnu</td>
</tr>
</tbody>
</table>
<p><code>BASE_OS</code> must be one of &quot;OEL6&quot; for Oracle Enterprise Linux 6 or &quot;Fedora&quot; (if not specified &quot;OEL6&quot; will be the default). If the base OS is &quot;Fedora&quot; the corresponding Fedora release can be specified with the help of the <code>BASE_OS_VERSION</code> option (with &quot;27&quot; as default version). If the build is successful, the new devkits can be found in the <code>build/devkit/result</code> subdirectory:</p>
<pre><code>cd make/devkit
make TARGETS=&quot;ppc64le-linux-gnu aarch64-linux-gnu&quot; BASE_OS=Fedora BASE_OS_VERSION=21
ls -1 ../../build/devkit/result/
x86_64-linux-gnu-to-aarch64-linux-gnu
x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
<p>Notice that devkits are not only useful for targeting different build platforms. Because they contain the full build dependencies for a system (i.e. compiler and root file system), they can easily be used to build well-known, reliable and reproducible build environments. You can for example create and use a devkit with GCC 7.3 and a Fedora 12 sysroot environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't have GCC 7.3 by default) to produce OpenJDK binaries which will run on all Linux systems with runtime libraries newer than the ones from Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).</p>
<h3 id="boot-jdk-and-build-jdk">Boot JDK and Build JDK</h3>
<p>When cross-compiling, make sure you use a boot JDK that runs on the <em>build</em> system, and not on the <em>target</em> system.</p>
<p>To be able to build, we need a &quot;Build JDK&quot;, which is a JDK built from the current sources (that is, the same as the end result of the entire build process), but able to run on the <em>build</em> system, and not the <em>target</em> system. (In contrast, the Boot JDK should be from an older release, e.g. JDK 8 when building JDK 9.)</p>
@@ -677,72 +634,6 @@ cp: cannot stat `arm-linux-gnueabihf/libSM.so&#39;: No such file or directory
cp: cannot stat `arm-linux-gnueabihf/libXt.so&#39;: No such file or directory</code></pre></li>
<li><p>If the X11 libraries are not properly detected by <code>configure</code>, you can point them out by <code>--with-x</code>.</p></li>
</ul>
<h3 id="creating-and-using-sysroots-with-qemu-deboostrap">Creating And Using Sysroots With qemu-deboostrap</h3>
<p>Fortunately, you can create sysroots for foreign architectures with tools provided by your OS. On Debian/Ubuntu systems, one could use <code>qemu-deboostrap</code> to create the <em>target</em> system chroot, which would have the native libraries and headers specific to that <em>target</em> system. After that, we can use the cross-compiler on the <em>build</em> system, pointing into chroot to get the build dependencies right. This allows building for foreign architectures with native compilation speed.</p>
<p>For example, cross-compiling to AArch64 from x86_64 could be done like this:</p>
<ul>
<li><p>Install cross-compiler on the <em>build</em> system:</p>
<pre><code>apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu</code></pre></li>
<li><p>Create chroot on the <em>build</em> system, configuring it for <em>target</em> system:</p>
<pre><code>sudo qemu-debootstrap --arch=arm64 --verbose \
--include=fakeroot,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng12-dev \
--resolve-deps jessie /chroots/arm64 http://httpredir.debian.org/debian/</code></pre></li>
<li><p>Configure and build with newly created chroot as sysroot/toolchain-path:</p>
<pre><code>CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure --openjdk-target=aarch64-linux-gnu --with-sysroot=/chroots/arm64/ --with-toolchain-path=/chroots/arm64/
make images
ls build/linux-aarch64-normal-server-release/</code></pre></li>
</ul>
<p>The build does not create new files in that chroot, so it can be reused for multiple builds without additional cleanup.</p>
<p>Architectures that are known to successfully cross-compile like this are:</p>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Target</th>
<th style="text-align: left;"><code>CC</code></th>
<th style="text-align: left;"><code>CXX</code></th>
<th style="text-align: left;"><code>--arch=...</code></th>
<th style="text-align: left;"><code>--openjdk-target=...</code></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">x86</td>
<td style="text-align: left;">default</td>
<td style="text-align: left;">default</td>
<td style="text-align: left;">i386</td>
<td style="text-align: left;">i386-linux-gnu</td>
</tr>
<tr class="even">
<td style="text-align: left;">armhf</td>
<td style="text-align: left;">gcc-arm-linux-gnueabihf</td>
<td style="text-align: left;">g++-arm-linux-gnueabihf</td>
<td style="text-align: left;">armhf</td>
<td style="text-align: left;">arm-linux-gnueabihf</td>
</tr>
<tr class="odd">
<td style="text-align: left;">aarch64</td>
<td style="text-align: left;">gcc-aarch64-linux-gnu</td>
<td style="text-align: left;">g++-aarch64-linux-gnu</td>
<td style="text-align: left;">arm64</td>
<td style="text-align: left;">aarch64-linux-gnu</td>
</tr>
<tr class="even">
<td style="text-align: left;">ppc64el</td>
<td style="text-align: left;">gcc-powerpc64le-linux-gnu</td>
<td style="text-align: left;">g++-powerpc64le-linux-gnu</td>
<td style="text-align: left;">ppc64el</td>
<td style="text-align: left;">powerpc64le-linux-gnu</td>
</tr>
<tr class="odd">
<td style="text-align: left;">s390x</td>
<td style="text-align: left;">gcc-s390x-linux-gnu</td>
<td style="text-align: left;">g++-s390x-linux-gnu</td>
<td style="text-align: left;">s390x</td>
<td style="text-align: left;">s390x-linux-gnu</td>
</tr>
</tbody>
</table>
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
<p>The JDK contains two different ports for the aarch64 platform, one is the original aarch64 port from the <a href="http://openjdk.java.net/projects/aarch64-port">AArch64 Port Project</a> and one is a 64-bit version of the Oracle contributed ARM port. When targeting aarch64, by the default the original aarch64 port is used. To select the Oracle ARM 64 port, use <code>--with-cpu-port=arm64</code>. Also set the corresponding value (<code>aarch64</code> or <code>arm64</code>) to --with-abi-profile, to ensure a consistent build.</p>
@@ -852,12 +743,7 @@ cannot create ... Permission denied
spawn failed</code></pre>
<p>This can be a sign of a Cygwin problem. See the information about solving problems in the <a href="#cygwin">Cygwin</a> section. Rebooting the computer might help temporarily.</p>
<h3 id="getting-help">Getting Help</h3>
<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <script type="text/javascript">
<!--
h='&#x6f;&#112;&#x65;&#110;&#106;&#100;&#x6b;&#46;&#106;&#x61;&#118;&#x61;&#46;&#110;&#x65;&#116;';a='&#64;';n='&#98;&#x75;&#x69;&#108;&#100;&#x2d;&#100;&#x65;&#118;';e=n+a+h;
document.write('<a h'+'ref'+'="ma'+'ilto'+':'+e+'" clas'+'s="em' + 'ail">'+e+'<\/'+'a'+'>');
// -->
</script><noscript>&#98;&#x75;&#x69;&#108;&#100;&#x2d;&#100;&#x65;&#118;&#32;&#x61;&#116;&#32;&#x6f;&#112;&#x65;&#110;&#106;&#100;&#x6b;&#32;&#100;&#x6f;&#116;&#32;&#106;&#x61;&#118;&#x61;&#32;&#100;&#x6f;&#116;&#32;&#110;&#x65;&#116;</noscript>. Please include the relevant parts of the configure and/or build log.</p>
<p>If none of the suggestions in this document helps you, or if you find what you believe is a bug in the build system, please contact the Build Group by sending a mail to <a href="mailto:build-dev@openjdk.java.net">build-dev@openjdk.java.net</a>. Please include the relevant parts of the configure and/or build log.</p>
<p>If you need general help or advice about developing for the JDK, you can also contact the Adoption Group. See the section on <a href="#contributing-to-openjdk">Contributing to OpenJDK</a> for more information.</p>
<h2 id="hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</h2>
<h3 id="setting-up-a-forest-for-pushing-changes-defpath">Setting Up a Forest for Pushing Changes (defpath)</h3>

View File

@@ -293,7 +293,7 @@ issues.
Linux gcc 7.3.0
macOS Apple Xcode 9.4 (using clang 9.1.0)
Solaris Oracle Solaris Studio 12.4 (with compiler version 5.13)
Windows Microsoft Visual Studio 2017 update 15.9.16
Windows Microsoft Visual Studio 2017 update 15.5.5
### gcc
@@ -436,8 +436,8 @@ If a required library is not detected by `configure`, you need to provide the
path to it. There are two forms of the `configure` arguments to point to an
external library: `--with-<LIB>=<path>` or `--with-<LIB>-include=<path to
include> --with-<LIB>-lib=<path to lib>`. The first variant is more concise,
but require the include files and library files to reside in a default
hierarchy under this directory. In most cases, it works fine.
but require the include files an library files to reside in a default hierarchy
under this directory. In most cases, it works fine.
As a fallback, the second version allows you to point to the include directory
and the lib directory separately.
@@ -447,7 +447,7 @@ and the lib directory separately.
FreeType2 from [The FreeType Project](http://www.freetype.org/) is not required
on any platform. The exception is on Unix-based platforms when configuring such
that the build artifacts will reference a system installed library,
rather than bundling the JDK's own copy.
rather than bundling the JDKs own copy.
* To install on an apt-based Linux, try running `sudo apt-get install
libfreetype6-dev`.
@@ -586,8 +586,8 @@ bash configure [options]
This will create an output directory containing the configuration and setup an
area for the build result. This directory typically looks like
`build/linux-x64-server-release`, but the actual name depends on your specific
configuration. (It can also be set directly, see [Using Multiple
`build/linux-x64-normal-server-release`, but the actual name depends on your
specific configuration. (It can also be set directly, see [Using Multiple
Configurations](#using-multiple-configurations)). This directory is referred to
as `$BUILD` in this documentation.
@@ -875,64 +875,6 @@ If all you want to do is to compile a 32-bit version, for the same OS, on a
full-blown cross-compilation. (While this surely is possible, it's a lot more
work and will take much longer to build.)
### Cross compiling the easy way with OpenJDK devkits
The OpenJDK build system provides out-of-the box support for creating and using
so called devkits. A `devkit` is basically a collection of a cross-compiling
toolchain and a sysroot environment which can easily be used together with the
`--with-devkit` configure option to cross compile the OpenJDK. On Linux/x86_64,
the following command:
```
bash configure --with-devkit=<devkit-path> --openjdk-target=ppc64-linux-gnu && make
```
will configure and build OpenJDK for Linux/ppc64 assuming that `<devkit-path>`
points to a Linux/x86_64 to Linux/ppc64 devkit.
Devkits can be created from the `make/devkit` directory by executing:
```
make [ TARGETS="<TARGET_TRIPLET>+" ] [ BASE_OS=<OS> ] [ BASE_OS_VERSION=<VER> ]
```
where `TARGETS` contains one or more `TARGET_TRIPLET`s of the form
described in [section 3.4 of the GNU Autobook](
https://sourceware.org/autobook/autobook/autobook_17.html). If no
targets are given, a native toolchain for the current platform will be
created. Currently, at least the following targets are known to work:
Supported devkit targets
------------------------
x86_64-linux-gnu
aarch64-linux-gnu
arm-linux-gnueabihf
ppc64-linux-gnu
ppc64le-linux-gnu
s390x-linux-gnu
`BASE_OS` must be one of "OEL6" for Oracle Enterprise Linux 6 or
"Fedora" (if not specified "OEL6" will be the default). If the base OS
is "Fedora" the corresponding Fedora release can be specified with the
help of the `BASE_OS_VERSION` option (with "27" as default version).
If the build is successful, the new devkits can be found in the
`build/devkit/result` subdirectory:
```
cd make/devkit
make TARGETS="ppc64le-linux-gnu aarch64-linux-gnu" BASE_OS=Fedora BASE_OS_VERSION=21
ls -1 ../../build/devkit/result/
x86_64-linux-gnu-to-aarch64-linux-gnu
x86_64-linux-gnu-to-ppc64le-linux-gnu
```
Notice that devkits are not only useful for targeting different build
platforms. Because they contain the full build dependencies for a
system (i.e. compiler and root file system), they can easily be used
to build well-known, reliable and reproducible build environments. You
can for example create and use a devkit with GCC 7.3 and a Fedora 12
sysroot environment (with glibc 2.11) on Ubuntu 14.04 (which doesn't
have GCC 7.3 by default) to produce OpenJDK binaries which will run on
all Linux systems with runtime libraries newer than the ones from
Fedora 12 (e.g. Ubuntu 16.04, SLES 11 or RHEL 6).
### Boot JDK and Build JDK
When cross-compiling, make sure you use a boot JDK that runs on the *build*
@@ -1076,51 +1018,6 @@ Note that X11 is needed even if you only want to build a headless JDK.
* If the X11 libraries are not properly detected by `configure`, you can
point them out by `--with-x`.
### Creating And Using Sysroots With qemu-deboostrap
Fortunately, you can create sysroots for foreign architectures with tools
provided by your OS. On Debian/Ubuntu systems, one could use `qemu-deboostrap` to
create the *target* system chroot, which would have the native libraries and headers
specific to that *target* system. After that, we can use the cross-compiler on the *build*
system, pointing into chroot to get the build dependencies right. This allows building
for foreign architectures with native compilation speed.
For example, cross-compiling to AArch64 from x86_64 could be done like this:
* Install cross-compiler on the *build* system:
```
apt install g++-aarch64-linux-gnu gcc-aarch64-linux-gnu
```
* Create chroot on the *build* system, configuring it for *target* system:
```
sudo qemu-debootstrap --arch=arm64 --verbose \
--include=fakeroot,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng12-dev \
--resolve-deps jessie /chroots/arm64 http://httpredir.debian.org/debian/
```
* Configure and build with newly created chroot as sysroot/toolchain-path:
```
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ sh ./configure --openjdk-target=aarch64-linux-gnu --with-sysroot=/chroots/arm64/ --with-toolchain-path=/chroots/arm64/
make images
ls build/linux-aarch64-normal-server-release/
```
The build does not create new files in that chroot, so it can be reused for multiple builds
without additional cleanup.
Architectures that are known to successfully cross-compile like this are:
Target `CC` `CXX` `--arch=...` `--openjdk-target=...`
------------ ------------------------- --------------------------- ------------ ----------------------
x86 default default i386 i386-linux-gnu
armhf gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf armhf arm-linux-gnueabihf
aarch64 gcc-aarch64-linux-gnu g++-aarch64-linux-gnu arm64 aarch64-linux-gnu
ppc64el gcc-powerpc64le-linux-gnu g++-powerpc64le-linux-gnu ppc64el powerpc64le-linux-gnu
s390x gcc-s390x-linux-gnu g++-s390x-linux-gnu s390x s390x-linux-gnu
Additional architectures might be supported by Debian/Ubuntu Ports.
### Building for ARM/aarch64
A common cross-compilation target is the ARM CPU. When building for ARM, it is

View File

@@ -1,54 +0,0 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>IDE support in the JDK</title>
<style type="text/css">
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css" />
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
</head>
<body>
<header id="title-block-header">
<h1 class="title">IDE support in the JDK</h1>
</header>
<nav id="TOC">
<ul>
<li><a href="#introduction">Introduction</a><ul>
<li><a href="#ide-support-for-native-code">IDE support for native code</a></li>
<li><a href="#ide-support-for-java-code">IDE support for Java code</a></li>
</ul></li>
</ul>
</nav>
<h2 id="introduction">Introduction</h2>
<p>When you are familiar with building and testing the JDK, you may want to configure an IDE to work with the source code. The instructions differ a bit depending on whether you are interested in working with the native (C/C++) or the Java code.</p>
<h3 id="ide-support-for-native-code">IDE support for native code</h3>
<p>There are a few ways to generate IDE configuration for the native sources, depending on which IDE to use.</p>
<h4 id="visual-studio-code">Visual Studio Code</h4>
<p>The make system can generate a <a href="https://code.visualstudio.com">Visual Studio Code</a> workspace that has C/C++ source indexing configured correctly, as well as launcher targets for tests and the Java launcher. After configuring, a workspace for the configuration can be generated using:</p>
<pre class="shell"><code>make vscode-project</code></pre>
<p>This creates a file called <code>jdk.code-workspace</code> in the build output folder. The full location will be printed after the workspace has been generated. To use it, choose <code>File -&gt; Open Workspace...</code> in Visual Studio Code.</p>
<h5 id="alternative-indexers">Alternative indexers</h5>
<p>The main <code>vscode-project</code> target configures the default C++ support in Visual Studio Code. There are also other source indexers that can be installed, that may provide additional features. It's currently possible to generate configuration for two such indexers, <a href="https://clang.llvm.org/extra/clangd/">clangd</a> and <a href="https://github.com/Andersbakken/rtags">rtags</a>. These can be configured by appending the name of the indexer to the make target, such as:</p>
<pre class="shell"><code>make vscode-project-clangd</code></pre>
<p>Additional instructions for configuring the given indexer will be displayed after the workspace has been generated.</p>
<h4 id="visual-studio">Visual Studio</h4>
<p>This section is a work in progress.</p>
<pre class="shell"><code>make ide-project</code></pre>
<h4 id="compilation-database">Compilation Database</h4>
<p>The make system can generate generic native code indexing support in the form of a <a href="https://clang.llvm.org/docs/JSONCompilationDatabase.html">Compilation Database</a> that can be used by many different IDEs and source code indexers.</p>
<pre class="shell"><code>make compile-commands</code></pre>
<p>It's also possible to generate the Compilation Database for the HotSpot source code only, which is a bit faster as it includes less information.</p>
<pre class="shell"><code>make compile-commands-hotspot</code></pre>
<h3 id="ide-support-for-java-code">IDE support for Java code</h3>
<p>This section is a work in progress.</p>
</body>
</html>

View File

@@ -1,73 +0,0 @@
% IDE support in the JDK
## Introduction
When you are familiar with building and testing the JDK, you may want to
configure an IDE to work with the source code. The instructions differ a bit
depending on whether you are interested in working with the native (C/C++) or
the Java code.
### IDE support for native code
There are a few ways to generate IDE configuration for the native sources,
depending on which IDE to use.
#### Visual Studio Code
The make system can generate a [Visual Studio Code](https://code.visualstudio.com)
workspace that has C/C++ source indexing configured correctly, as well as
launcher targets for tests and the Java launcher. After configuring, a workspace
for the configuration can be generated using:
```shell
make vscode-project
```
This creates a file called `jdk.code-workspace` in the build output folder. The
full location will be printed after the workspace has been generated. To use it,
choose `File -> Open Workspace...` in Visual Studio Code.
##### Alternative indexers
The main `vscode-project` target configures the default C++ support in Visual
Studio Code. There are also other source indexers that can be installed, that
may provide additional features. It's currently possible to generate
configuration for two such indexers, [clangd](https://clang.llvm.org/extra/clangd/)
and [rtags](https://github.com/Andersbakken/rtags). These can be configured by
appending the name of the indexer to the make target, such as:
```shell
make vscode-project-clangd
```
Additional instructions for configuring the given indexer will be displayed
after the workspace has been generated.
#### Visual Studio
This section is a work in progress.
```shell
make ide-project
```
#### Compilation Database
The make system can generate generic native code indexing support in the form of
a [Compilation Database](https://clang.llvm.org/docs/JSONCompilationDatabase.html)
that can be used by many different IDEs and source code indexers.
```shell
make compile-commands
```
It's also possible to generate the Compilation Database for the HotSpot source
code only, which is a bit faster as it includes less information.
```shell
make compile-commands-hotspot
```
### IDE support for Java code
This section is a work in progress.

View File

@@ -11,14 +11,14 @@
span.underline{text-decoration: underline;}
div.column{display: inline-block; vertical-align: top; width: 50%;}
</style>
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css" />
<link rel="stylesheet" href="../make/data/docs-resources/resources/jdk-default.css">
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv-printshiv.min.js"></script>
<![endif]-->
<style type="text/css">pre, code, tt { color: #1d6ae5; }</style>
</head>
<body>
<header id="title-block-header">
<header>
<h1 class="title">Testing the JDK</h1>
</header>
<nav id="TOC">
@@ -32,13 +32,11 @@
</ul></li>
<li><a href="#test-results-and-summary">Test results and summary</a></li>
<li><a href="#test-suite-control">Test suite control</a><ul>
<li><a href="#general-keywords-test_opts">General keywords (TEST_OPTS)</a></li>
<li><a href="#jtreg-keywords">JTReg keywords</a></li>
<li><a href="#gtest-keywords">Gtest keywords</a></li>
</ul></li>
<li><a href="#notes-for-specific-tests">Notes for Specific Tests</a><ul>
<li><a href="#docker-tests">Docker Tests</a></li>
<li><a href="#client-ui-tests">Client UI Tests</a></li>
</ul></li>
</ul>
</nav>
@@ -91,24 +89,11 @@ TEST FAILURE</code></pre>
<p>To separate multiple keyword=value pairs, use <code>;</code> (semicolon). Since the shell normally eats <code>;</code>, the recommended usage is to write the assignment inside qoutes, e.g. <code>JTREG=&quot;...;...&quot;</code>. This will also make sure spaces are preserved, as in <code>JTREG=&quot;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug&quot;</code>.</p>
<p>(Other ways are possible, e.g. using backslash: <code>JTREG=JOBS=1\;TIMEOUT=8</code>. Also, as a special technique, the string <code>%20</code> will be replaced with space for certain options, e.g. <code>JTREG=VM_OPTIONS=-XshowSettings%20-Xlog:gc+ref=debug</code>. This can be useful if you have layers of scripts and have trouble getting proper quoting of command line arguments through.)</p>
<p>As far as possible, the names of the keywords have been standardized between test suites.</p>
<h3 id="general-keywords-test_opts">General keywords (TEST_OPTS)</h3>
<p>Some keywords are valid across different test suites. If you want to run tests from multiple test suites, or just dont want to care which test suite specific control variable to use, then you can use the general TEST_OPTS control variable.</p>
<p>There are also some keywords that applies globally to the test runner system, not to any specific test suites. These are also available as TEST_OPTS keywords.</p>
<h4 id="jobs">JOBS</h4>
<p>Currently only applies to JTReg.</p>
<h4 id="timeout_factor">TIMEOUT_FACTOR</h4>
<p>Currently only applies to JTReg.</p>
<h4 id="vm_options">VM_OPTIONS</h4>
<p>Applies to JTReg, GTest and Micro.</p>
<h4 id="java_options">JAVA_OPTIONS</h4>
<p>Applies to JTReg, GTest and Micro.</p>
<h4 id="aot_modules">AOT_MODULES</h4>
<p>Applies to JTReg and GTest.</p>
<h3 id="jtreg-keywords">JTReg keywords</h3>
<h4 id="jobs-1">JOBS</h4>
<h4 id="jobs">JOBS</h4>
<p>The test concurrency (<code>-concurrency</code>).</p>
<p>Defaults to TEST_JOBS (if set by <code>--with-test-jobs=</code>), otherwise it defaults to JOBS, except for Hotspot, where the default is <em>number of CPU cores/2</em>, but never more than 12.</p>
<h4 id="timeout_factor-1">TIMEOUT_FACTOR</h4>
<h4 id="timeout">TIMEOUT</h4>
<p>The timeout factor (<code>-timeoutFactor</code>).</p>
<p>Defaults to 4.</p>
<h4 id="test_mode">TEST_MODE</h4>
@@ -127,21 +112,13 @@ TEST FAILURE</code></pre>
<p>Limit memory consumption (<code>-Xmx</code> and <code>-vmoption:-Xmx</code>, or none).</p>
<p>Limit memory consumption for JTReg test framework and VM under test. Set to 0 to disable the limits.</p>
<p>Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).</p>
<h4 id="keywords">KEYWORDS</h4>
<p>JTReg kewords sent to JTReg using <code>-k</code>. Please be careful in making sure that spaces and special characters (like <code>!</code>) are properly quoted. To avoid some issues, the special value <code>%20</code> can be used instead of space.</p>
<h4 id="extra_problem_lists">EXTRA_PROBLEM_LISTS</h4>
<p>Use additional problem lists file or files, in addition to the default ProblemList.txt located at the JTReg test roots.</p>
<p>If multiple file names are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
<p>The file names should be either absolute, or relative to the JTReg test root of the tests to be run.</p>
<h4 id="options">OPTIONS</h4>
<p>Additional options to the JTReg test framework.</p>
<p>Use <code>JTREG=&quot;OPTIONS=--help all&quot;</code> to see all available JTReg options.</p>
<h4 id="java_options-1">JAVA_OPTIONS</h4>
<h4 id="java_options">JAVA_OPTIONS</h4>
<p>Additional Java options to JTReg (<code>-javaoption</code>).</p>
<h4 id="vm_options-1">VM_OPTIONS</h4>
<h4 id="vm_options">VM_OPTIONS</h4>
<p>Additional VM options to JTReg (<code>-vmoption</code>).</p>
<h4 id="aot_modules-1">AOT_MODULES</h4>
<p>Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
<h3 id="gtest-keywords">Gtest keywords</h3>
<h4 id="repeat">REPEAT</h4>
<p>The number of times to repeat the tests (<code>--gtest_repeat</code>).</p>
@@ -149,23 +126,11 @@ TEST FAILURE</code></pre>
<h4 id="options-1">OPTIONS</h4>
<p>Additional options to the Gtest test framework.</p>
<p>Use <code>GTEST=&quot;OPTIONS=--help&quot;</code> to see all available Gtest options.</p>
<h4 id="aot_modules-2">AOT_MODULES</h4>
<p>Generate AOT modules before testing for the specified module, or set of modules. If multiple modules are specified, they should be separated by space (or, to help avoid quoting issues, the special value <code>%20</code>).</p>
<h2 id="notes-for-specific-tests">Notes for Specific Tests</h2>
<h3 id="docker-tests">Docker Tests</h3>
<p>Docker tests with default parameters may fail on systems with glibc versions not compatible with the one used in the default docker image (e.g., Oracle Linux 7.6 for x86). For example, they pass on Ubuntu 16.04 but fail on Ubuntu 18.04 if run like this on x86:</p>
<pre><code>$ make run-test TEST=&quot;jtreg:test/hotspot/jtreg/containers/docker&quot;</code></pre>
<p>To run these tests correctly, additional parameters for the correct docker image are required on Ubuntu 18.04 by using <code>JAVA_OPTIONS</code>.</p>
<pre><code>$ make run-test TEST=&quot;jtreg:test/hotspot/jtreg/containers/docker&quot; JTREG=&quot;JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest&quot;</code></pre>
<h3 id="client-ui-tests">Client UI Tests</h3>
<p>Some Client UI tests use key sequences which may be reserved by the operating system. Usually that causes the test failure. So it is highly recommended to disable system key shortcuts prior testing. The steps to access and disable system key shortcuts for various platforms are provided below.</p>
<h4 id="macos">MacOS</h4>
<p>Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts; select or deselect desired shortcut.</p>
<p>For example, test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java fails on MacOS because it uses <code>CTRL + F1</code> key sequence to show or hide tooltip message but the key combination is reserved by the operating system. To run the test correctly the default global key shortcut should be disabled using the steps described above, and then deselect “Turn keyboard access on or off” option which is responsible for <code>CTRL + F1</code> combination.</p>
<h4 id="linux">Linux</h4>
<p>Open the Activities overview and start typing Settings; Choose Settings, click Devices, then click Keyboard; set or override desired shortcut.</p>
<h4 id="windows">Windows</h4>
<p>Type <code>gpedit</code> in the Search and then click Edit group policy; navigate to User Configuration -&gt; Administrative Templates -&gt; Windows Components -&gt; File Explorer; in the right-side pane look for “Turn off Windows key hotkeys” and double click on it; enable or disable hotkeys.</p>
<p>Note: restart is required to make the settings take effect.</p>
</body>
</html>

View File

@@ -162,35 +162,6 @@ proper quoting of command line arguments through.)
As far as possible, the names of the keywords have been standardized between
test suites.
### General keywords (TEST_OPTS)
Some keywords are valid across different test suites. If you want to run
tests from multiple test suites, or just don't want to care which test suite specific
control variable to use, then you can use the general TEST_OPTS control variable.
There are also some keywords that applies globally to the test runner system,
not to any specific test suites. These are also available as TEST_OPTS keywords.
#### JOBS
Currently only applies to JTReg.
#### TIMEOUT_FACTOR
Currently only applies to JTReg.
#### VM_OPTIONS
Applies to JTReg, GTest and Micro.
#### JAVA_OPTIONS
Applies to JTReg, GTest and Micro.
#### AOT_MODULES
Applies to JTReg and GTest.
### JTReg keywords
#### JOBS
@@ -200,7 +171,7 @@ Defaults to TEST_JOBS (if set by `--with-test-jobs=`), otherwise it defaults to
JOBS, except for Hotspot, where the default is *number of CPU cores/2*, but
never more than 12.
#### TIMEOUT_FACTOR
#### TIMEOUT
The timeout factor (`-timeoutFactor`).
Defaults to 4.
@@ -234,24 +205,6 @@ to disable the limits.
Defaults to 512m, except for hotspot, where it defaults to 0 (no limit).
#### KEYWORDS
JTReg kewords sent to JTReg using `-k`. Please be careful in making sure that
spaces and special characters (like `!`) are properly quoted. To avoid some
issues, the special value `%20` can be used instead of space.
#### EXTRA_PROBLEM_LISTS
Use additional problem lists file or files, in addition to the default
ProblemList.txt located at the JTReg test roots.
If multiple file names are specified, they should be separated by space (or, to
help avoid quoting issues, the special value `%20`).
The file names should be either absolute, or relative to the JTReg test root of
the tests to be run.
#### OPTIONS
Additional options to the JTReg test framework.
@@ -263,12 +216,6 @@ Additional Java options to JTReg (`-javaoption`).
#### VM_OPTIONS
Additional VM options to JTReg (`-vmoption`).
#### AOT_MODULES
Generate AOT modules before testing for the specified module, or set of
modules. If multiple modules are specified, they should be separated by space
(or, to help avoid quoting issues, the special value `%20`).
### Gtest keywords
#### REPEAT
@@ -283,12 +230,6 @@ Additional options to the Gtest test framework.
Use `GTEST="OPTIONS=--help"` to see all available Gtest options.
#### AOT_MODULES
Generate AOT modules before testing for the specified module, or set of
modules. If multiple modules are specified, they should be separated by space
(or, to help avoid quoting issues, the special value `%20`).
## Notes for Specific Tests
### Docker Tests
@@ -304,35 +245,6 @@ required on Ubuntu 18.04 by using `JAVA_OPTIONS`.
$ make run-test TEST="jtreg:test/hotspot/jtreg/containers/docker" JTREG="JAVA_OPTIONS=-Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest"
### Client UI Tests
Some Client UI tests use key sequences which may be reserved by the operating
system. Usually that causes the test failure. So it is highly recommended to disable
system key shortcuts prior testing. The steps to access and disable system key shortcuts
for various platforms are provided below.
#### MacOS
Choose Apple menu; System Preferences, click Keyboard, then click Shortcuts;
select or deselect desired shortcut.
For example, test/jdk/javax/swing/TooltipManager/JMenuItemToolTipKeyBindingsTest/JMenuItemToolTipKeyBindingsTest.java fails
on MacOS because it uses `CTRL + F1` key sequence to show or hide tooltip message
but the key combination is reserved by the operating system. To run the test correctly
the default global key shortcut should be disabled using the steps described above, and then deselect
"Turn keyboard access on or off" option which is responsible for `CTRL + F1` combination.
#### Linux
Open the Activities overview and start typing Settings; Choose Settings, click Devices,
then click Keyboard; set or override desired shortcut.
#### Windows
Type `gpedit` in the Search and then click Edit group policy; navigate to
User Configuration -> Administrative Templates -> Windows Components -> File Explorer;
in the right-side pane look for "Turn off Windows key hotkeys" and double click on it;
enable or disable hotkeys.
Note: restart is required to make the settings take effect.
---
# Override some definitions in the global css file that are not optimal for
# this document.

View File

@@ -1,12 +1,9 @@
# jetbrains/runtime:jbr11dev8env
# jetbrains/runtime:jbr11env
FROM centos:7
RUN yum -y install centos-release-scl
RUN yum -y install devtoolset-8
RUN yum -y install zip bzip2 unzip tar wget make autoconf automake libtool alsa-devel cups-devel xorg-x11-devel libjpeg62-devel giflib-devel freetype-devel file which libXtst-devel libXt-devel libXrender-devel alsa-lib-devel fontconfig-devel libXrandr-devel libXi-devel git
RUN yum -y install zip bzip2 unzip tar wget make autoconf automake libtool gcc gcc-c++ libstdc++-devel alsa-devel cups-devel xorg-x11-devel libjpeg62-devel giflib-devel freetype-devel file which libXtst-devel libXt-devel libXrender-devel alsa-lib-devel fontconfig-devel libXrandr-devel libXi-devel
# Install Java 11
RUN wget https://cdn.azul.com/zulu/bin/zulu11.45.27-ca-jdk11.0.10-linux_x64.tar.gz \
RUN wget https://bintray.com/jetbrains/intellij-jbr/download_file?file_path=jbrsdk-11_0_3-linux-x64-b360.2.tar.gz \
-O - | tar xz -C /
ENV JAVA_HOME /zulu11.45.27-ca-jdk11.0.10-linux_x64
ENV PATH $JAVA_HOME/bin:/opt/rh/devtoolset-8/root/usr/bin:$PATH
RUN git config --global user.email "teamcity@buildserver.intellij.net"
RUN git config --global user.name "builduser"
ENV JAVA_HOME /jbrsdk
ENV PATH $JAVA_HOME/bin:$PATH

View File

@@ -1,7 +0,0 @@
FROM i386/ubuntu:xenial
RUN linux32 apt-get update && apt-get install -y --no-install-recommends apt-utils
COPY jbrsdk-11.0.5-b1 /jbrsdk-11.0.5-b1
RUN linux32 apt-get -y install file build-essential zip unzip curl libx11-dev libxext-dev \
libxrender-dev libxrandr-dev libxtst-dev libxt-dev libcups2-dev libasound2-data \
libpng12-0 libasound2 libfreetype6 libfontconfig1-dev libasound2-dev autoconf

View File

@@ -495,6 +495,7 @@ set(SOURCE_FILES
../../../src/hotspot/cpu/aarch64/vtableStubs_aarch64.cpp
../../../src/hotspot/cpu/aarch64/relocInfo_aarch64.hpp
../../../src/hotspot/cpu/aarch64/vm_version_aarch64.hpp
../../../src/hotspot/cpu/aarch64/cpustate_aarch64.hpp
../../../src/hotspot/cpu/aarch64/immediate_aarch64.cpp
../../../src/hotspot/cpu/aarch64/vmreg_aarch64.cpp
../../../src/hotspot/cpu/aarch64/jniFastGetField_aarch64.cpp
@@ -519,6 +520,7 @@ set(SOURCE_FILES
../../../src/hotspot/cpu/aarch64/c1_FrameMap_aarch64.hpp
../../../src/hotspot/cpu/aarch64/templateTable_aarch64.cpp
../../../src/hotspot/cpu/aarch64/vmStructs_aarch64.hpp
../../../src/hotspot/cpu/aarch64/decode_aarch64.hpp
../../../src/hotspot/cpu/aarch64/c1_CodeStubs_aarch64.cpp
../../../src/hotspot/cpu/aarch64/nativeInst_aarch64.hpp
../../../src/hotspot/cpu/aarch64/codeBuffer_aarch64.hpp
@@ -527,6 +529,7 @@ set(SOURCE_FILES
../../../src/hotspot/cpu/aarch64/assembler_aarch64.cpp
../../../src/hotspot/cpu/aarch64/register_aarch64.cpp
../../../src/hotspot/cpu/aarch64/vm_version_ext_aarch64.cpp
../../../src/hotspot/cpu/aarch64/aarch64_call.cpp
../../../src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp
../../../src/hotspot/cpu/aarch64/bytecodes_aarch64.hpp
../../../src/hotspot/cpu/aarch64/c1_MacroAssembler_aarch64.hpp
@@ -1172,11 +1175,13 @@ set(SOURCE_FILES
../../../src/hotspot/share/jfr/recorder/stringpool/jfrStringPoolBuffer.hpp
../../../src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.cpp
../../../src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.hpp
../../../src/hotspot/share/jfr/recorder/repository/jfrChunkSizeNotifier.hpp
../../../src/hotspot/share/jfr/recorder/repository/jfrChunkState.hpp
../../../src/hotspot/share/jfr/recorder/repository/jfrRepository.cpp
../../../src/hotspot/share/jfr/recorder/repository/jfrChunkState.cpp
../../../src/hotspot/share/jfr/recorder/repository/jfrRepository.hpp
../../../src/hotspot/share/jfr/recorder/repository/jfrChunkWriter.hpp
../../../src/hotspot/share/jfr/recorder/repository/jfrChunkSizeNotifier.cpp
../../../src/hotspot/share/jfr/recorder/repository/jfrEmergencyDump.cpp
../../../src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointBlob.hpp
../../../src/hotspot/share/jfr/recorder/checkpoint/jfrCheckpointWriter.cpp
@@ -1249,6 +1254,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/jfr/leakprofiler/checkpoint/objectSampleDescription.hpp
../../../src/hotspot/share/jfr/leakprofiler/checkpoint/rootResolver.hpp
../../../src/hotspot/share/jfr/leakprofiler/leakProfiler.hpp
../../../src/hotspot/share/jfr/leakprofiler/emitEventOperation.hpp
../../../src/hotspot/share/jfr/leakprofiler/sampling/objectSample.hpp
../../../src/hotspot/share/jfr/leakprofiler/sampling/objectSampler.hpp
../../../src/hotspot/share/jfr/leakprofiler/sampling/sampleList.cpp
@@ -1264,6 +1270,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/jfr/leakprofiler/utilities/rootType.hpp
../../../src/hotspot/share/jfr/leakprofiler/utilities/unifiedOop.hpp
../../../src/hotspot/share/jfr/leakprofiler/startOperation.hpp
../../../src/hotspot/share/jfr/leakprofiler/emitEventOperation.cpp
../../../src/hotspot/share/jfr/leakprofiler/chains/edgeUtils.cpp
../../../src/hotspot/share/jfr/leakprofiler/chains/rootSetClosure.cpp
../../../src/hotspot/share/jfr/leakprofiler/chains/edge.hpp
@@ -1474,6 +1481,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/runtime/basicLock.hpp
../../../src/hotspot/share/runtime/compilationPolicy.cpp
../../../src/hotspot/share/runtime/java.hpp
../../../src/hotspot/share/runtime/simpleThresholdPolicy.cpp
../../../src/hotspot/share/runtime/objectMonitor.inline.hpp
../../../src/hotspot/share/runtime/mutexLocker.cpp
../../../src/hotspot/share/runtime/serviceThread.cpp
@@ -1516,6 +1524,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/runtime/compilationPolicy.hpp
../../../src/hotspot/share/runtime/basicLock.cpp
../../../src/hotspot/share/runtime/java.cpp
../../../src/hotspot/share/runtime/simpleThresholdPolicy.hpp
../../../src/hotspot/share/runtime/perfData.inline.hpp
../../../src/hotspot/share/runtime/statSampler.hpp
../../../src/hotspot/share/runtime/vm_operations.cpp
@@ -1548,6 +1557,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/runtime/handshake.hpp
../../../src/hotspot/share/runtime/thread.inline.hpp
../../../src/hotspot/share/runtime/perfMemory.hpp
../../../src/hotspot/share/runtime/simpleThresholdPolicy.inline.hpp
../../../src/hotspot/share/runtime/javaCalls.cpp
../../../src/hotspot/share/runtime/reflection.cpp
../../../src/hotspot/share/runtime/icache.cpp

View File

@@ -2,7 +2,6 @@
set(CMAKE_CXX_STANDARD 98)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_GNU_SOURCE -D_REENTRANT -DVM_LITTLE_ENDIAN -D_LP64 -DTARGET_ARCH_x86 ")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DINCLUDE_SUFFIX_CPU=_x86 -DAMD64 -DHOTSPOT_LIB_ARCH='amd64' -DCOMPILER1 -DCOMPILER2")
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DFT2_BUILD_LIBRARY")
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTARGET_COMPILER_gcc")
@@ -17,55 +16,15 @@ if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -D_ALLBSD_SOURCE -DTARGET_OS_FAMILY_bsd")
endif ()
if ("${CMAKE_SYSTEM_NAME}" MATCHES "CYGWIN") #not sure about TARGET_COMPILER
if ("${CMAKE_SYSTEM_NAME}" MATCHES "CYGWIN") #not shure about TARGET_COMPILER
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DTARGET_COMPILER_visCPP -DWIN64 -D_WINDOWS -DTARGET_OS_FAMILY_windows")
endif ()
add_custom_target(configure
COMMAND bash configure --disable-warnings-as-errors
COMMAND bash configure
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../)
add_custom_target(configure_debug
COMMAND bash configure --disable-warnings-as-errors --enable-debug
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../)
if (${CMAKE_SYSTEM_NAME} MATCHES "Linux")
set(JDK_RELEASE_TARGET "linux-x86_64-normal-server-release")
set(JDK_DEBUG_TARGET "linux-x86_64-normal-server-fastdebug")
endif ()
if (${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(JDK_RELEASE_TARGET "macosx-x86_64-normal-server-release")
set(JDK_DEBUG_TARGET "macosx-x86_64-normal-server-fastdebug")
add_compile_definitions(MACOSX)
endif ()
add_custom_target(build
COMMAND make CONF=${JDK_RELEASE_TARGET}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../
DEPENDS ${SOURCE_FILES})
add_custom_target(build_images
COMMAND make images CONF=${JDK_RELEASE_TARGET}
COMMAND make COMPILER_WARNINGS_FATAL=false images
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../
DEPENDS ${SOURCE_FILES})
add_custom_target(build_debug
COMMAND make CONF=${JDK_DEBUG_TARGET}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../
DEPENDS ${SOURCE_FILES})
add_custom_target(build_images_debug
COMMAND make images CONF=${JDK_DEBUG_TARGET}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../
DEPENDS ${SOURCE_FILES})
add_custom_target(make_clean
COMMAND make clean CONF=${JDK_RELEASE_TARGET}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../
DEPENDS ${SOURCE_FILES})
add_custom_target(make_clean_debug
COMMAND make clean CONF=${JDK_DEBUG_TARGET}
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}/../../../
DEPENDS ${SOURCE_FILES})
DEPENDS ${SOURCE_FILES})

View File

@@ -6,7 +6,6 @@ include(../java-common.cmake)
include_directories(
../../../src/java.base/share/native/include
../../../src/java.base/share/native/libjava
../../../src/java.base/share/native/libzip/zlib
../../../src/java.desktop/share/native/common
../../../src/java.desktop/share/native/common/awt/debug
../../../src/java.desktop/share/native/common/font
@@ -59,7 +58,6 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux"
../../../src/java.desktop/unix/native/common/font
../../../src/java.desktop/unix/native/common/java2d/opengl
../../../src/java.desktop/unix/native/common/java2d/opengl/J2D_GL
../../../src/java.desktop/unix/native/common/java2d/x11
../../../src/java.desktop/unix/native/common
../../../src/java.desktop/unix/native/include
../../../src/java.desktop/unix/native/libawt/java2d
@@ -194,19 +192,16 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/include/freetype/fttypes.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftparams.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftmm.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/config
../../../src/java.desktop/share/native/libfreetype/include/freetype/config/ftstdlib.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/config/ftheader.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/config/ftconfig.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/config/ftoption.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/config/ftmodule.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftcolor.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftmodapi.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/fttrigon.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftbbox.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftgzip.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftdriver.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/sfnt.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/internal.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/ftdrv.h
@@ -221,13 +216,13 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/tttypes.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/ftvalid.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/ftobjs.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/ftpic.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/fttrace.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/ftmemory.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/fthash.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/ftgloadr.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/ftpsprop.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/ftserv.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/services
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svprop.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svmm.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/internal/services/svcfftl.h
@@ -277,8 +272,6 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftbdf.h
../../../src/java.desktop/share/native/libfreetype/include/freetype/ftrender.h
../../../src/java.desktop/share/native/libfreetype/include/ft2build.h
../../../src/java.desktop/share/native/libfreetype/src
../../../src/java.desktop/share/native/libfreetype/src/type1
../../../src/java.desktop/share/native/libfreetype/src/type1/t1objs.c
../../../src/java.desktop/share/native/libfreetype/src/type1/t1load.h
../../../src/java.desktop/share/native/libfreetype/src/type1/t1afm.h
@@ -293,42 +286,40 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/src/type1/t1driver.c
../../../src/java.desktop/share/native/libfreetype/src/type1/t1parse.c
../../../src/java.desktop/share/native/libfreetype/src/type1/t1gload.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt
../../../src/java.desktop/share/native/libfreetype/src/sfnt/sfobjs.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttcmap.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttpost.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/sfntpic.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttkern.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttcolr.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/pngshim.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttmtx.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttload.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/sfdriver.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttsbit.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttcmapc.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttcpal.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttkern.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttpost.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/sfntpic.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/sfobjs.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttcmap.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttmtx.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/pngshim.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttcolr.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttsbit.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/sfdriver.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttload.c
../../../src/java.desktop/share/native/libfreetype/src/sfnt/sferrors.h
../../../src/java.desktop/share/native/libfreetype/src/sfnt/ttcpal.h
../../../src/java.desktop/share/native/libfreetype/src/smooth
../../../src/java.desktop/share/native/libfreetype/src/smooth/ftgrays.c
../../../src/java.desktop/share/native/libfreetype/src/smooth/ftsmooth.h
../../../src/java.desktop/share/native/libfreetype/src/smooth/ftspic.h
../../../src/java.desktop/share/native/libfreetype/src/smooth/ftsmerrs.h
../../../src/java.desktop/share/native/libfreetype/src/smooth/ftgrays.h
../../../src/java.desktop/share/native/libfreetype/src/smooth/ftspic.c
../../../src/java.desktop/share/native/libfreetype/src/smooth/ftsmooth.c
../../../src/java.desktop/share/native/libfreetype/src/cff
../../../src/java.desktop/share/native/libfreetype/src/cff/cffload.h
../../../src/java.desktop/share/native/libfreetype/src/cff/cffgload.c
../../../src/java.desktop/share/native/libfreetype/src/cff/cffobjs.c
../../../src/java.desktop/share/native/libfreetype/src/cff/cffparse.h
../../../src/java.desktop/share/native/libfreetype/src/cff/cffpic.h
../../../src/java.desktop/share/native/libfreetype/src/cff/cffcmap.h
../../../src/java.desktop/share/native/libfreetype/src/cff/cffdrivr.c
../../../src/java.desktop/share/native/libfreetype/src/cff/cffparse.c
@@ -336,10 +327,10 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/src/cff/cffobjs.h
../../../src/java.desktop/share/native/libfreetype/src/cff/cffgload.h
../../../src/java.desktop/share/native/libfreetype/src/cff/cffload.c
../../../src/java.desktop/share/native/libfreetype/src/cff/cffpic.c
../../../src/java.desktop/share/native/libfreetype/src/cff/cffdrivr.h
../../../src/java.desktop/share/native/libfreetype/src/cff/cffcmap.c
../../../src/java.desktop/share/native/libfreetype/src/cff/cfferrs.h
../../../src/java.desktop/share/native/libfreetype/src/psaux
../../../src/java.desktop/share/native/libfreetype/src/psaux/psarrst.h
../../../src/java.desktop/share/native/libfreetype/src/psaux/psstack.h
../../../src/java.desktop/share/native/libfreetype/src/psaux/cffdecode.h
@@ -376,7 +367,6 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/src/psaux/afmparse.c
../../../src/java.desktop/share/native/libfreetype/src/psaux/psauxmod.h
../../../src/java.desktop/share/native/libfreetype/src/psaux/psread.h
../../../src/java.desktop/share/native/libfreetype/src/cid
../../../src/java.desktop/share/native/libfreetype/src/cid/cidtoken.h
../../../src/java.desktop/share/native/libfreetype/src/cid/cidriver.c
../../../src/java.desktop/share/native/libfreetype/src/cid/cidparse.c
@@ -389,12 +379,11 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/src/cid/cidparse.h
../../../src/java.desktop/share/native/libfreetype/src/cid/cidobjs.c
../../../src/java.desktop/share/native/libfreetype/src/cid/cidload.h
../../../src/java.desktop/share/native/libfreetype/src/autofit
../../../src/java.desktop/share/native/libfreetype/src/autofit/afindic.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afdummy.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afmodule.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afwarp.c
../../../src/java.desktop/share/native/libfreetype/src/autofit/afblue.cin
../../../src/java.desktop/share/native/libfreetype/src/autofit/afpic.c
../../../src/java.desktop/share/native/libfreetype/src/autofit/afglobal.c
../../../src/java.desktop/share/native/libfreetype/src/autofit/afcover.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afwrtsys.h
@@ -407,10 +396,10 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/src/autofit/afranges.c
../../../src/java.desktop/share/native/libfreetype/src/autofit/afcjk.c
../../../src/java.desktop/share/native/libfreetype/src/autofit/afstyles.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afblue.dat
../../../src/java.desktop/share/native/libfreetype/src/autofit/aferrors.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afdummy.c
../../../src/java.desktop/share/native/libfreetype/src/autofit/afindic.c
../../../src/java.desktop/share/native/libfreetype/src/autofit/afpic.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afglobal.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afwarp.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afmodule.c
@@ -420,58 +409,64 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/src/autofit/aftypes.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afcjk.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afranges.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afblue.hin
../../../src/java.desktop/share/native/libfreetype/src/autofit/afloader.c
../../../src/java.desktop/share/native/libfreetype/src/autofit/aflatin.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afangles.h
../../../src/java.desktop/share/native/libfreetype/src/autofit/afhints.c
../../../src/java.desktop/share/native/libfreetype/src/pshinter
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshmod.c
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshrec.h
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshpic.c
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshglob.h
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshalgo.c
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshmod.h
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshnterr.h
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshpic.h
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshrec.c
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshalgo.h
../../../src/java.desktop/share/native/libfreetype/src/pshinter/pshglob.c
../../../src/java.desktop/share/native/libfreetype/src/truetype
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.c
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttpload.c
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttgxvar.c
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttsubpix.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/tterrors.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttdriver.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttpic.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttobjs.c
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttgload.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttgxvar.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttpload.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttinterp.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttpic.c
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttdriver.c
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttsubpix.c
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttobjs.h
../../../src/java.desktop/share/native/libfreetype/src/truetype/ttgload.c
../../../src/java.desktop/share/native/libfreetype/src/raster
../../../src/java.desktop/share/native/libfreetype/src/raster/ftmisc.h
../../../src/java.desktop/share/native/libfreetype/src/raster/rasterrs.h
../../../src/java.desktop/share/native/libfreetype/src/raster/rastpic.c
../../../src/java.desktop/share/native/libfreetype/src/raster/ftrend1.h
../../../src/java.desktop/share/native/libfreetype/src/raster/ftraster.h
../../../src/java.desktop/share/native/libfreetype/src/raster/rastpic.h
../../../src/java.desktop/share/native/libfreetype/src/raster/ftraster.c
../../../src/java.desktop/share/native/libfreetype/src/raster/ftrend1.c
../../../src/java.desktop/share/native/libfreetype/src/psnames
../../../src/java.desktop/share/native/libfreetype/src/psnames/psnamerr.h
../../../src/java.desktop/share/native/libfreetype/src/psnames/psmodule.c
../../../src/java.desktop/share/native/libfreetype/src/psnames/pspic.h
../../../src/java.desktop/share/native/libfreetype/src/psnames/pstables.h
../../../src/java.desktop/share/native/libfreetype/src/psnames/psmodule.h
../../../src/java.desktop/share/native/libfreetype/src/base
../../../src/java.desktop/share/native/libfreetype/src/psnames/pspic.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftobjs.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftfntfmt.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftinit.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftapi.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftdbgmem.c
../../../src/java.desktop/share/native/libfreetype/src/base/fthash.c
../../../src/java.desktop/share/native/libfreetype/src/base/basepic.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftpic.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftbitmap.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftpsprop.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftcid.c
../../../src/java.desktop/share/native/libfreetype/src/base/md5.h
../../../src/java.desktop/share/native/libfreetype/src/base/ftglyph.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftgloadr.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftsystem.c
@@ -485,9 +480,11 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libfreetype/src/base/ftsnames.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftdebug.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftmm.c
../../../src/java.desktop/share/native/libfreetype/src/base/basepic.h
../../../src/java.desktop/share/native/libfreetype/src/base/ftbase.h
../../../src/java.desktop/share/native/libfreetype/src/base/ftfstype.c
../../../src/java.desktop/share/native/libfreetype/src/base/fttrigon.c
../../../src/java.desktop/share/native/libfreetype/src/base/md5.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftbbox.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftstroke.c
../../../src/java.desktop/share/native/libfreetype/src/base/ftgasp.c
@@ -745,214 +742,38 @@ set(SOURCE_FILES
../../../src/java.desktop/share/native/libjavajpeg/jidctred.c
../../../src/java.desktop/share/native/libjavajpeg/jpegint.h
../../../src/java.desktop/share/native/libjavajpeg/jdpostct.c
../../../src/java.desktop/share/native/libfontmanager
../../../src/java.desktop/share/native/libfontmanager/DrawGlyphList.c
../../../src/java.desktop/share/native/libfontmanager/HBShaper.c
../../../src/java.desktop/share/native/libfontmanager/scriptMapping.c
../../../src/java.desktop/share/native/libfontmanager/harfbuzz
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-buffer.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-fdsc-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-post-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-indic-machine.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-type.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-plan.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-common.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-use-machine.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-base-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-head-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-set.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-coretext.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic-win1256.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-khmer.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shaper-list.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-face.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-buffer.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-var.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-cff-interp-common.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-map.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-post-macroman.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-fallback.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-common.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-deprecated.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-blob.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-normalize.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-unicode.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-version.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-stat-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-name-language.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-ltag-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-font.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-color.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-cff-interp-cs-common.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-kern.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-cff-common.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-default.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-face.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-coretext.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-cff1-table.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-just-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-color-colr-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-tag.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-deprecated.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-cff1.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-kerx-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-vorg-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-blob.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-font.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-unicode.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-indic-table.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-kern-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-normalize.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-common.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-buffer-serialize.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-name-language.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-gpos-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-var-avar-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-cff-common.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-fallback-shape.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-cff1-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-face.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-string-array.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-cff1.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-lcar-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-var-hvar-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-gsubgpos.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-var.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-atomic.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-static.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ucdn
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ucdn/ucdn.c
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ucdn/ucdn.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ucdn/ucdn_db.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-morx-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-cff2-interp-cs.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ucdn.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-khmer-machine.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-name.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-thai.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-hhea-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-var-mvar-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shape.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-tag.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-plan.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-os2-unicode-ranges.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-warning.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-hdmx-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-khmer.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ft.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-cff-common.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-gdef-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-glyf-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-fallback.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-buffer.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-map.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-glyf.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-name-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-set.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-color.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-cff2-table.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shape-plan.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shape-plan.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-font.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-use.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-color-sbix-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-indic.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-unicode.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-unicode-emoji-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-feat-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-object.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-myanmar.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-gasp-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-buffer-deserialize-json.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-vector.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-myanmar-machine.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic-fallback.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-debug.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-tag-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-vowel-constraints.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shaper.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-iter.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-blob.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-face.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-trak-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-cff1-interp-cs.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-hmtx-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-ankr-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-cff-interp-dict-common.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-map.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-common.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-input.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-color-cbdt-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-color-cpal-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-cff2.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-utf.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-hebrew.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-map.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-var-fvar-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-font.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-map.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shaper.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-jstf-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-mutex.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-os2-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-face.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-layout-gsub-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-input.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-math-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-cmap-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-layout-bsln-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-aat-map.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-font.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-maxp-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-buffer-deserialize-text.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-map.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-cff2.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-array.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-set.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shape-plan.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shape.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-hangul.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-null.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-cff2-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-name.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset-glyf.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-set-digest.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-indic.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-open-file.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-machinery.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-myanmar.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-subset.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-color-svg-table.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-use.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-dsalgs.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-use-table.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-math.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-math.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ft.h
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-arabic.hh
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-ot-shape-complex-vowel-constraints.cc
../../../src/java.desktop/share/native/libfontmanager/harfbuzz/hb-shaper-impl.hh
../../../src/java.desktop/share/native/libfontmanager/glyphblitting.h
../../../src/java.desktop/share/native/libfontmanager/hb-jdk.h
../../../src/java.desktop/share/native/libfontmanager/fontconfig.h
../../../src/java.desktop/share/native/libfontmanager/hb-jdk-font.cc
../../../src/java.desktop/share/native/libfontmanager/freetypeScaler.c
../../../src/java.desktop/share/native/libfontmanager/scriptMapping.h
../../../src/java.desktop/share/native/libfontmanager/ColorGlyphSurfaceData.c
@@ -1028,10 +849,7 @@ set(SOURCE_FILES
../../../src/jdk.jdwp.agent/share/native/include/jdwpTransport.h
../../../src/hotspot/share/include/jmm.h
../../../src/java.base/share/native/include/jni.h
../../../src/java.base/share/native/include/jvmticmlr.h
../../../src/java.base/share/native/libzip/zlib/zutil.c
../../../src/java.base/share/native/libzip/zlib/inflate.c)
../../../src/java.base/share/native/include/jvmticmlr.h)
if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
set(SOURCE_FILES
@@ -1093,6 +911,7 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin")
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CFileDialog.h
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/AWTWindow.h
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/LWCToolkit.h
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CGraphicsConfig.m
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CDesktopPeer.m
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/PrintModel.h
../../../src/java.desktop/macosx/native/libawt_lwawt/awt/CTrayIcon.m
@@ -1330,8 +1149,10 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux"
../../../src/java.desktop/unix/native/libawt/awt/awt_Mlib.c
../../../src/java.desktop/unix/native/libawt/awt/awt_LoadLibrary.c
../../../src/java.desktop/unix/native/libawt/awt/initIDs.c
../../../src/java.desktop/unix/native/libawt_xawt/awt
../../../src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
../../../src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRSurfaceData.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/randr.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/list.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_DrawingSurface.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/swing_GTKStyle.c
@@ -1346,6 +1167,8 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux"
../../../src/java.desktop/unix/native/libawt_xawt/awt/multi_font.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/multiVis.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_Event.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/Xrandr.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/robot_common.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_util.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/list.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/gtk2_interface.h
@@ -1353,15 +1176,24 @@ if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin" OR ${CMAKE_SYSTEM_NAME} MATCHES "Linux"
../../../src/java.desktop/unix/native/libawt_xawt/awt/gtk3_interface.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/gtk_interface.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_Robot.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/HPkeysym.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_Event.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/multiVis.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/canvas.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_AWTEvent.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/multi_font.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/robot_common.h
../../../src/java.desktop/unix/native/libawt_xawt/awt/sun_awt_X11_GtkFileDialogPeer.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_GraphicsEnv.c
../../../src/java.desktop/unix/native/libawt_xawt/awt/awt_InputMethod.c
../../../src/java.desktop/unix/native/libawt_xawt/java2d/x11/XRBackendNative.c
../../../src/java.desktop/unix/native/libawt_xawt/xawt/awt_Desktop.c
../../../src/java.desktop/unix/native/libawt_xawt/xawt/XToolkit.c
../../../src/java.desktop/unix/native/libawt_xawt/xawt/awt_Taskbar.c
../../../src/java.desktop/unix/native/libawt_xawt/xawt/gnome_interface.c
../../../src/java.desktop/unix/native/libawt_xawt/xawt/XlibWrapper.c
../../../src/java.desktop/unix/native/libawt_xawt/xawt/gnome_interface.h
../../../src/java.desktop/unix/native/libawt_xawt/xawt/awt_Taskbar.h
../../../src/java.desktop/unix/native/libawt_xawt/xawt/XWindow.c
../../../src/java.desktop/unix/native/libfontmanager/X11FontScaler.c
../../../src/java.desktop/unix/native/libfontmanager/X11TextRenderer.c
../../../src/java.desktop/unix/native/libsplashscreen/splashscreen_config.h

View File

@@ -1,16 +0,0 @@
VENDOR_NAME="JetBrains s.r.o."
VENDOR_VERSION_STRING="JBR-${JBSDK_VERSION_WITH_DOTS}.${JDK_BUILD_NUMBER}-${build_number}"
[ -z ${bundle_type} ] || VENDOR_VERSION_STRING="${VENDOR_VERSION_STRING}-${bundle_type}"
do_reset_changes=0
do_reset_dcevm=0
HEAD_REVISION=0
function do_exit() {
exit_code=$1
[ $do_reset_changes -eq 1 ] && git checkout HEAD modules.list src/java.desktop/share/classes/module-info.java
if [ $do_reset_dcevm -eq 1 ]; then
[ ! -z $HEAD_REVISION ] && git reset --hard $HEAD_REVISION
fi
exit $exit_code
}

View File

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

View File

@@ -1,154 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# jcef - the release bundles with jcef
# dcevm - the release bundles with dcevm patches
# nomod - the release bundles without any additional modules (jcef)
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located.
# By default imported modules should be located in ./modular-sdk
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_linux_x64
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=./modular-sdk}"
JCEF_PATH=${JCEF_PATH:=./jcef_linux_x64}
source jb/project/tools/common.sh
function create_jbr {
JBR_BUNDLE=jbr_${bundle_type}
case "${bundle_type}" in
"jcef" | "dcevm" | "nomod" | "fd")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
;;
*)
echo "***ERR*** bundle was not specified" && do_exit 1
;;
esac
cat modules.list > modules_tmp.list
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
JBR=${JBR_BASE_NAME}-linux-x64-b${build_number}
echo Running jlink....
$JSDK/bin/jlink \
--module-path $JSDK/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output $BASE_DIR/$JBR_BUNDLE || do_exit $?
if [[ "${bundle_type}" == *jcef* ]] || [[ "${bundle_type}" == *dcevm* ]] || [[ "${bundle_type}" == fd ]]; then
cp -R $BASE_DIR/$JBR_BUNDLE $BASE_DIR/jbr
rsync -av ${JCEF_PATH}/ $BASE_DIR/$JBR_BUNDLE/lib --exclude="modular-sdk" || do_exit $?
fi
grep -v "^JAVA_VERSION" $JSDK/release | grep -v "^MODULES" >> $BASE_DIR/$JBR_BUNDLE/release
echo Creating ${JBR}.tar.gz ...
rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
tar -pcf ${JBR}.tar -C ${BASE_DIR} jbr || do_exit $?
gzip -f ${JBR}.tar || do_exit $?
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=linux-x86_64-normal-server-release
JBSDK=${JBRSDK_BASE_NAME}-linux-x64-b${build_number}
case "$bundle_type" in
"jcef")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
;;
"nomod")
WITH_IMPORT_MODULES=""
;;
"fd")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=linux-x86_64-normal-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-linux-x64-fastdebug-b${build_number}
;;
*)
echo "***ERR*** bundle was not specified" && do_exit 1
;;
esac
sh configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
$WITH_IMPORT_MODULES \
--enable-cds=yes || do_exit $?
make clean images CONF=$RELEASE_NAME || do_exit $?
JSDK=build/${RELEASE_NAME}/images/jdk
echo Fixing permissions
chmod -R a+r $JSDK
BASE_DIR=build/${RELEASE_NAME}/images
JBRSDK_BUNDLE=jbrsdk
rm -rf ${BASE_DIR}/${JBRSDK_BUNDLE}
cp -r $JSDK $BASE_DIR/$JBRSDK_BUNDLE || do_exit $?
if [[ "${bundle_type}" == *jcef* ]] || [[ "${bundle_type}" == *dcevm* ]] || [[ "${bundle_type}" == fd ]]; then
rsync -av ${JCEF_PATH}/ $BASE_DIR/$JBRSDK_BUNDLE/lib --exclude="modular-sdk" || do_exit $?
fi
if [ "${bundle_type}" == "jcef" ] || [ "${bundle_type}" == "fd" ]; then
echo Creating $JBSDK.tar.gz ...
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/release
tar -pcf ${JBSDK}.tar --exclude=*.debuginfo --exclude=demo --exclude=sample --exclude=man \
-C ${BASE_DIR} ${JBRSDK_BUNDLE} || do_exit $?
gzip -f ${JBSDK}.tar || do_exit $?
fi
create_jbr || do_exit $?
if [ "$bundle_type" == "jcef" ]; then
make test-image CONF=$RELEASE_NAME || do_exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-linux-test-x64-b$build_number
echo Creating $JBSDK_TEST.tar.gz ...
tar -pcf ${JBRSDK_TEST}.tar -C ${BASE_DIR} --exclude='test/jdk/demos' test || do_exit $?
gzip -f ${JBRSDK_TEST}.tar || do_exit $?
fi
do_exit 0

View File

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

View File

@@ -1,218 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# jcef - the release bundles with jcef
# dcevm - the release bundles with dcevm patches
# nomod - the release bundles without any additional modules (jcef)
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located.
# By default imported modules should be located in ./modular-sdk
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_mac
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
architecture=$5 # aarch64 or x64
enable_aot=$6 # temporary param for building test jre with aot under aarch64
JBSDK_VERSION_WITH_DOTS=$(echo $JBSDK_VERSION | sed 's/_/\./g')
WITH_IMPORT_MODULES="--with-import-modules=${MODULAR_SDK_PATH:=./modular-sdk}"
JCEF_PATH=${JCEF_PATH:=./jcef_mac}
architecture=${architecture:=x64}
source jb/project/tools/common.sh
function copyJNF {
__contents_dir=$1
mkdir -p ${__contents_dir}/Frameworks
cp -Rp Frameworks/JavaNativeFoundation.framework ${__contents_dir}/Frameworks
}
function create_jbr {
JBR_BUNDLE=jbr_${bundle_type}
case "${bundle_type}" in
"jcef" | "dcevm" | "nomod" | "fd")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
;;
*)
echo "***ERR*** bundle was not specified" && do_exit 1
;;
esac
if [[ "${architecture}" == *aarch64* ]] && [[ "${enable_aot}" != *enable_aot* ]]; then
# aot isn't supported yet, so remove dependent modules
echo "Exclude jdk.internal.vm.compiler and jdk.aot (because aot not supported yet)"
cat modules.list | \
grep -v "jdk.internal.vm.compiler\|jdk.aot" \
> modules_tmp.list
else
cat modules.list > modules_tmp.list
fi
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
JRE_CONTENTS=${BASE_DIR}/${JBR_BUNDLE}/Contents
JRE_HOME=${JRE_CONTENTS}/Home
if [ -d "${JRE_CONTENTS}" ]; then
rm -rf ${JRE_CONTENTS}
fi
mkdir -p ${JRE_CONTENTS}
JBR=${JBR_BASE_NAME}-osx-${architecture}-b${build_number}
echo Running jlink....
${BASE_DIR}/$JBRSDK_BUNDLE/Contents/Home/bin/jlink \
--module-path ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/jmods --no-man-pages --compress=2 \
--add-modules $(xargs < modules_tmp.list | sed s/" "//g) --output ${JRE_HOME} || do_exit $?
grep -v "^JAVA_VERSION" ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release | grep -v "^MODULES" >> ${JRE_HOME}/release
cp -R ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/MacOS ${JRE_CONTENTS}
cp ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Info.plist ${JRE_CONTENTS}
rm -rf ${JRE_CONTENTS}/Frameworks || do_exit $?
if [[ "${architecture}" == *aarch64* ]]; then
# we can't notarize this library as usual framework (with headers and tbd-file)
# but single library notarizes correctly
copyJNF ${JRE_CONTENTS}
fi
if [[ "${bundle_type}" == *jcef* ]] || [[ "${bundle_type}" == *dcevm* ]] || [[ "${bundle_type}" == fd ]]; then
cp -a ${JCEF_PATH}/Frameworks ${JRE_CONTENTS} || do_exit $?
fi
echo Creating ${JBR}.tar.gz ...
rm -rf ${BASE_DIR}/jbr
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
COPYFILE_DISABLE=1 tar -pczf ${JBR}.tar.gz --exclude='*.dSYM' --exclude='man' -C ${BASE_DIR} jbr || do_exit $?
rm -rf ${BASE_DIR}/${JBR_BUNDLE}
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WITH_DEBUG_LEVEL="--with-debug-level=release"
CONF_ARCHITECTURE=x86_64
if [[ "${architecture}" == *aarch64* ]]; then
CONF_ARCHITECTURE=aarch64
fi
CONF_NAME=macosx-${CONF_ARCHITECTURE}-normal-server-release
JBSDK=${JBRSDK_BASE_NAME}-osx-${architecture}-b${build_number}
case "$bundle_type" in
"jcef")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
;;
"dcevm")
HEAD_REVISION=$(git rev-parse HEAD)
git am jb/project/tools/patches/dcevm/*.patch || do_exit $?
do_reset_dcevm=1
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
;;
"nomod")
WITH_IMPORT_MODULES=""
;;
"fd")
git apply -p0 < jb/project/tools/patches/add_jcef_module.patch || do_exit $?
do_reset_changes=1
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
CONF_NAME=macosx-${CONF_ARCHITECTURE}-normal-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-osx-${architecture}-fastdebug-b${build_number}
;;
*)
echo "***ERR*** bundle was not specified" && do_exit 1
;;
esac
if [[ "${architecture}" == *aarch64* ]]; then
# NOTE: aot, cds aren't supported yet
WITH_JVM_FEATURES="--with-jvm-features=-aot"
if [[ "${enable_aot}" == *enable_aot* ]]; then
echo "Enable unstable jvm feature: AOT"
WITH_JVM_FEATURES=""
fi
sh configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-jvm-features=shenandoahgc \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
$WITH_IMPORT_MODULES \
--with-boot-jdk=`/usr/libexec/java_home -v 11` \
--disable-hotspot-gtest --disable-javac-server --disable-full-docs --disable-manpages \
--enable-cds=no \
$WITH_JVM_FEATURES \
--with-extra-cflags="-F$(pwd)/Frameworks" \
--with-extra-cxxflags="-F$(pwd)/Frameworks" \
--with-extra-ldflags="-F$(pwd)/Frameworks" || do_exit $?
else
sh configure \
--disable-warnings-as-errors \
$WITH_DEBUG_LEVEL \
--with-vendor-name="${VENDOR_NAME}" \
--with-vendor-version-string="${VENDOR_VERSION_STRING}" \
--with-version-pre= \
--with-version-build=${JDK_BUILD_NUMBER} \
--with-version-opt=b${build_number} \
$WITH_IMPORT_MODULES \
--with-boot-jdk=`/usr/libexec/java_home -v 11` \
--enable-cds=yes || do_exit $?
fi
make clean CONF=$CONF_NAME || do_exit $?
make images CONF=$CONF_NAME || do_exit $?
JSDK=build/${CONF_NAME}/images/jdk-bundle
BASE_DIR=jre
JBRSDK_BUNDLE=jbrsdk
rm -rf $BASE_DIR
mkdir $BASE_DIR || do_exit $?
cp -a $JSDK/jdk-$JBSDK_VERSION_WITH_DOTS.jdk $BASE_DIR/$JBRSDK_BUNDLE || do_exit $?
if [[ "${bundle_type}" == *jcef* ]] || [[ "${bundle_type}" == *dcevm* ]] || [[ "${bundle_type}" == fd ]]; then
cp -a ${JCEF_PATH}/Frameworks $BASE_DIR/$JBRSDK_BUNDLE/Contents/
fi
if [ "${bundle_type}" == "jcef" ] || [ "${bundle_type}" == "fd" ]; then
echo Creating $JBSDK.tar.gz ...
if [[ "${architecture}" == *aarch64* ]]; then
copyJNF $BASE_DIR/$JBRSDK_BUNDLE/Contents
fi
sed 's/JBR/JBRSDK/g' ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release > release
mv release ${BASE_DIR}/${JBRSDK_BUNDLE}/Contents/Home/release
[ -f "${JBSDK}.tar.gz" ] && rm "${JBSDK}.tar.gz"
COPYFILE_DISABLE=1 tar -pczf ${JBSDK}.tar.gz -C ${BASE_DIR} \
--exclude='.DS_Store' --exclude='*~' \
--exclude='Home/demo' --exclude='Home/man' --exclude='Home/sample' \
${JBRSDK_BUNDLE} || do_exit $?
fi
create_jbr || do_exit $?
if [ "$bundle_type" == "jcef" ]; then
make test-image CONF=$CONF_NAME || do_exit $?
JBRSDK_TEST=$JBRSDK_BASE_NAME-osx-test-${architecture}-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
[ -f "${JBRSDK_TEST}.tar.gz" ] && rm "${JBRSDK_TEST}.tar.gz"
COPYFILE_DISABLE=1 tar -pczf ${JBRSDK_TEST}.tar.gz -C build/${CONF_NAME}/images \
--exclude='test/jdk/demos' test || do_exit $?
fi
do_exit 0

View File

@@ -25,31 +25,16 @@ find "$APP_DIRECTORY" -name '*.cstemp' -exec rm '{}' \;
log "Signing libraries and executables..."
# -perm +111 searches for executables
for f in \
"Contents/Home/bin" \
"Contents/Home/lib"; do
"Contents/Home/lib" "Contents/MacOS"; do
if [ -d "$APP_DIRECTORY/$f" ]; then
find "$APP_DIRECTORY/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \
-exec codesign --timestamp --force \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
fi
done
if [ -d "$APP_DIRECTORY/Contents/Frameworks" ]; then
log "Signing frameworks..."
for f in $APP_DIRECTORY/Contents/Frameworks/*; do
find "$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" \) \
-exec codesign --timestamp --force \
-v -s "$JB_CERT" \
--entitlements entitlements.xml {} \;
codesign --timestamp --force \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml "$f"
done
fi
log "Signing libraries in jars in $PWD"
# todo: add set -euo pipefail; into the inner sh -c
@@ -68,7 +53,7 @@ find "$APP_DIRECTORY" -name '*.jar' \
find jarfolder \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -name "jattach" \) \
-exec codesign --timestamp --force \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
@@ -80,11 +65,11 @@ rm -rf jarfolder jar.jar
log "Signing other files..."
for f in \
"Contents/MacOS"; do
"Contents/MacOS" "Contents/Home/bin"; do
if [ -d "$APP_DIRECTORY/$f" ]; then
find "$APP_DIRECTORY/$f" \
-type f \( -name "*.jnilib" -o -name "*.dylib" -o -name "*.so" -o -perm +111 \) \
-exec codesign --timestamp --force \
-exec codesign --timestamp \
-v -s "$JB_CERT" --options=runtime \
--entitlements entitlements.xml {} \;
fi

View File

@@ -1,4 +1,4 @@
#!/bin/bash -x
#!/bin/bash
#immediately exit script with an error if a command fails
set -euo pipefail
@@ -8,7 +8,6 @@ export COPYFILE_DISABLE=true
INPUT_FILE=$1
EXPLODED=$2.exploded
BACKUP_JMODS=$2.backup
USERNAME=$3
PASSWORD=$4
CODESIGN_STRING=$5
@@ -27,19 +26,13 @@ if test -d "$EXPLODED"; then
fi
rm -rf "$EXPLODED"
mkdir "$EXPLODED"
rm -rf "$BACKUP_JMODS"
mkdir "$BACKUP_JMODS"
log "Unzipping $INPUT_FILE to $EXPLODED ..."
tar -xzvf "$INPUT_FILE" --directory $EXPLODED
#unzip -q "$INPUT_FILE" -d "$EXPLODED"
#rm "$INPUT_FILE"
BUILD_NAME="$(ls "$EXPLODED")"
sed -i '' s/BNDL/APPL/ $EXPLODED/$BUILD_NAME/Contents/Info.plist
rm -f $EXPLODED/$BUILD_NAME/Contents/CodeResources
rm "$INPUT_FILE"
if test -d $EXPLODED/$BUILD_NAME/Contents/Home/jmods; then
mv $EXPLODED/$BUILD_NAME/Contents/Home/jmods $BACKUP_JMODS
fi
#log "$INPUT_FILE unzipped and removed"
log "$INPUT_FILE extracted and removed"
APPLICATION_PATH="$EXPLODED/$BUILD_NAME"
@@ -102,7 +95,7 @@ if [ "$NOTARIZE" = "yes" ]; then
log "Notarizing..."
# shellcheck disable=SC1090
source "$HOME/.notarize_token"
APP_NAME=$(echo ${INPUT_FILE} | awk -F"." '{ print $1 }')
APP_NAME="${INPUT_FILE%.*}"
# Since notarization tool uses same file for upload token we have to trick it into using different folders, hence fake root
# Also it leaves copy of zip file in TMPDIR, so notarize.sh overrides it and uses FAKE_ROOT as location for temp TMPDIR
FAKE_ROOT="$(pwd)/fake-root"
@@ -111,7 +104,6 @@ if [ "$NOTARIZE" = "yes" ]; then
./notarize.sh "$APPLICATION_PATH" "$APPLE_USERNAME" "$APPLE_PASSWORD" "$APP_NAME" "$BUNDLE_ID" "$FAKE_ROOT"
rm -rf "$FAKE_ROOT"
set +e
log "Stapling..."
xcrun stapler staple "$APPLICATION_PATH"
else
@@ -121,14 +113,9 @@ fi
log "Zipping $BUILD_NAME to $INPUT_FILE ..."
(
#cd "$EXPLODED"
#ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
if test -d $BACKUP_JMODS/jmods; then
mv $BACKUP_JMODS/jmods $EXPLODED/$BUILD_NAME/Contents/Home
fi
tar -pczvf $INPUT_FILE --exclude='*.dSYM' --exclude='man' -C $EXPLODED $BUILD_NAME
cd "$EXPLODED"
ditto -c -k --sequesterRsrc --keepParent "$BUILD_NAME" "../$INPUT_FILE"
log "Finished zipping"
)
rm -rf "$EXPLODED"
log "Done"
log "Done"

View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,488 +0,0 @@
From caa877d9126bd91d6719675a83928ba01bffb69a Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Wed, 12 Dec 2018 19:38:28 +0100
Subject: [PATCH 03/28] Support for Concurrent Mark Sweep (CMS) collector
---
.../share/gc/cms/compactibleFreeListSpace.cpp | 139 ++++++++++++------
.../share/gc/cms/compactibleFreeListSpace.hpp | 5 +-
.../gc/cms/concurrentMarkSweepThread.cpp | 10 +-
src/hotspot/share/gc/serial/markSweep.cpp | 2 +-
src/hotspot/share/gc/shared/gcConfig.cpp | 2 +-
src/hotspot/share/gc/shared/space.cpp | 16 +-
src/hotspot/share/gc/shared/space.hpp | 6 +-
src/hotspot/share/gc/shared/space.inline.hpp | 16 +-
.../prims/jvmtiEnhancedRedefineClasses.cpp | 12 +-
src/hotspot/share/runtime/arguments.cpp | 6 +-
10 files changed, 135 insertions(+), 79 deletions(-)
diff --git a/src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp b/src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp
index 4c9918627a2..f335173576f 100644
--- a/src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp
+++ b/src/hotspot/share/gc/cms/compactibleFreeListSpace.cpp
@@ -376,55 +376,58 @@ CompactibleFreeListSpace::CompactibleFreeListSpace(BlockOffsetSharedArray* bs, M
_used_stable = 0;
}
+#define forward_compact_top_DEFN() \
+ assert(this == cp->space, "'this' should be current compaction space."); \
+ size_t compaction_max_size = pointer_delta(end(), compact_top); \
+ assert(adjustObjectSize(size) == cp->space->adjust_object_size_v(size), \
+ "virtual adjustObjectSize_v() method is not correct"); \
+ size_t adjusted_size = adjustObjectSize(size); \
+ assert(compaction_max_size >= MinChunkSize || compaction_max_size == 0, \
+ "no small fragments allowed"); \
+ assert(minimum_free_block_size() == MinChunkSize, \
+ "for de-virtualized reference below"); \
+ /* Can't leave a nonzero size, residual fragment smaller than MinChunkSize */ \
+ if (adjusted_size + MinChunkSize > compaction_max_size && \
+ adjusted_size != compaction_max_size) { \
+ do { \
+ /* switch to next compaction space*/ \
+ cp->space->set_compaction_top(compact_top); \
+ cp->space = cp->space->next_compaction_space(); \
+ if (cp->space == NULL) { \
+ cp->gen = CMSHeap::heap()->young_gen(); \
+ assert(cp->gen != NULL, "compaction must succeed"); \
+ cp->space = cp->gen->first_compaction_space(); \
+ assert(cp->space != NULL, "generation must have a first compaction space"); \
+ } \
+ compact_top = cp->space->bottom(); \
+ cp->space->set_compaction_top(compact_top); \
+ /* The correct adjusted_size may not be the same as that for this method */ \
+ /* (i.e., cp->space may no longer be "this" so adjust the size again. */ \
+ /* Use the virtual method which is not used above to save the virtual */ \
+ /* dispatch. */ \
+ adjusted_size = cp->space->adjust_object_size_v(size); \
+ compaction_max_size = pointer_delta(cp->space->end(), compact_top); \
+ assert(cp->space->minimum_free_block_size() == 0, "just checking"); \
+ } while (adjusted_size > compaction_max_size); \
+ }
+
+
HeapWord* CompactibleFreeListSpace::forward_compact_top(size_t size,
CompactPoint* cp, HeapWord* compact_top) {
- ShouldNotReachHere();
- return NULL;
+ forward_compact_top_DEFN()
+ return compact_top;
}
// Like CompactibleSpace forward() but always calls cross_threshold() to
// update the block offset table. Removed initialize_threshold call because
// CFLS does not use a block offset array for contiguous spaces.
HeapWord* CompactibleFreeListSpace::forward(oop q, size_t size,
- CompactPoint* cp, HeapWord* compact_top) {
- // q is alive
- // First check if we should switch compaction space
- assert(this == cp->space, "'this' should be current compaction space.");
- size_t compaction_max_size = pointer_delta(end(), compact_top);
- assert(adjustObjectSize(size) == cp->space->adjust_object_size_v(size),
- "virtual adjustObjectSize_v() method is not correct");
- size_t adjusted_size = adjustObjectSize(size);
- assert(compaction_max_size >= MinChunkSize || compaction_max_size == 0,
- "no small fragments allowed");
- assert(minimum_free_block_size() == MinChunkSize,
- "for de-virtualized reference below");
- // Can't leave a nonzero size, residual fragment smaller than MinChunkSize
- if (adjusted_size + MinChunkSize > compaction_max_size &&
- adjusted_size != compaction_max_size) {
- do {
- // switch to next compaction space
- cp->space->set_compaction_top(compact_top);
- cp->space = cp->space->next_compaction_space();
- if (cp->space == NULL) {
- cp->gen = CMSHeap::heap()->young_gen();
- assert(cp->gen != NULL, "compaction must succeed");
- cp->space = cp->gen->first_compaction_space();
- assert(cp->space != NULL, "generation must have a first compaction space");
- }
- compact_top = cp->space->bottom();
- cp->space->set_compaction_top(compact_top);
- // The correct adjusted_size may not be the same as that for this method
- // (i.e., cp->space may no longer be "this" so adjust the size again.
- // Use the virtual method which is not used above to save the virtual
- // dispatch.
- adjusted_size = cp->space->adjust_object_size_v(size);
- compaction_max_size = pointer_delta(cp->space->end(), compact_top);
- assert(cp->space->minimum_free_block_size() == 0, "just checking");
- } while (adjusted_size > compaction_max_size);
- }
+ CompactPoint* cp, HeapWord* compact_top, bool force_forward) {
+ forward_compact_top_DEFN()
// store the forwarding pointer into the mark word
- if ((HeapWord*)q != compact_top) {
+ // the size of object changed for: new_version() != NULL
+ if (force_forward || (HeapWord*)q != compact_top || q->klass()->new_version() != NULL) {
q->forward_to(oop(compact_top));
assert(q->is_gc_marked(), "encoding the pointer should preserve the mark");
} else {
@@ -2209,13 +2212,60 @@ CompactibleFreeListSpace::refillLinearAllocBlock(LinearAllocBlock* blk) {
// Support for compaction
void CompactibleFreeListSpace::prepare_for_compaction(CompactPoint* cp) {
- scan_and_forward(this, cp, false);
- // of the free lists doesn't work after.
+ if (!Universe::is_redefining_gc_run()) {
+ scan_and_forward(this, cp, false);
+ } else {
+ // Redefinition run
+ scan_and_forward(this, cp, true);
+ }
// Prepare_for_compaction() uses the space between live objects
// so that later phase can skip dead space quickly. So verification
// of the free lists doesn't work after.
}
+bool CompactibleFreeListSpace::must_rescue(oop old_obj, oop new_obj) {
+ // Only redefined objects can have the need to be rescued.
+ if (oop(old_obj)->klass()->new_version() == NULL) return false;
+
+ int new_size = adjustObjectSize(old_obj->size_given_klass(oop(old_obj)->klass()->new_version()));
+ int original_size = adjustObjectSize(old_obj->size());
+
+ Generation* tenured_gen = CMSHeap::heap()->old_gen();
+ bool old_in_tenured = tenured_gen->is_in_reserved(old_obj);
+ bool new_in_tenured = tenured_gen->is_in_reserved(new_obj);
+ if (old_in_tenured == new_in_tenured) {
+ // Rescue if object may overlap with a higher memory address.
+ bool overlap = ((HeapWord*)old_obj + original_size < (HeapWord*)new_obj + new_size);
+ if (old_in_tenured) {
+ // Old and new address are in same space, so just compare the address.
+ // Must rescue if object moves towards the top of the space.
+ assert(space_index(old_obj) == space_index(new_obj), "old_obj and new_obj must be in same space");
+ } else {
+ // In the new generation, eden is located before the from space, so a
+ // simple pointer comparison is sufficient.
+ assert(CMSHeap::heap()->young_gen()->is_in_reserved(old_obj), "old_obj must be in DefNewGeneration");
+ assert(CMSHeap::heap()->young_gen()->is_in_reserved(new_obj), "new_obj must be in DefNewGeneration");
+ assert(overlap == (space_index(old_obj) < space_index(new_obj)), "slow and fast computation must yield same result");
+ }
+ return overlap;
+
+ } else {
+ assert(space_index(old_obj) != space_index(new_obj), "old_obj and new_obj must be in different spaces");
+ if (new_in_tenured) {
+ // Must never rescue when moving from the new into the old generation.
+ assert(CMSHeap::heap()->young_gen()->is_in_reserved(old_obj), "old_obj must be in DefNewGeneration");
+ assert(space_index(old_obj) > space_index(new_obj), "must be");
+ return false;
+
+ } else /* if (tenured_gen->is_in_reserved(old_obj)) */ {
+ // Must always rescue when moving from the old into the new generation.
+ assert(CMSHeap::heap()->young_gen()->is_in_reserved(new_obj), "new_obj must be in DefNewGeneration");
+ assert(space_index(old_obj) < space_index(new_obj), "must be");
+ return true;
+ }
+ }
+}
+
void CompactibleFreeListSpace::adjust_pointers() {
// In other versions of adjust_pointers(), a bail out
// based on the amount of live data in the generation
@@ -2228,7 +2278,12 @@ void CompactibleFreeListSpace::adjust_pointers() {
}
void CompactibleFreeListSpace::compact() {
- scan_and_compact(this, false);
+ if(!Universe::is_redefining_gc_run()) {
+ scan_and_compact(this, false);
+ } else {
+ // Redefinition run
+ scan_and_compact(this, true);
+ }
}
// Fragmentation metric = 1 - [sum of (fbs**2) / (sum of fbs)**2]
diff --git a/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp b/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp
index 9fd2ea58320..d29b81f6fca 100644
--- a/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp
+++ b/src/hotspot/share/gc/cms/compactibleFreeListSpace.hpp
@@ -201,7 +201,7 @@ class CompactibleFreeListSpace: public CompactibleSpace {
// Support for compacting cms
HeapWord* cross_threshold(HeapWord* start, HeapWord* end);
HeapWord* forward_compact_top(size_t size, CompactPoint* cp, HeapWord* compact_top);
- HeapWord* forward(oop q, size_t size, CompactPoint* cp, HeapWord* compact_top);
+ HeapWord* forward(oop q, size_t size, CompactPoint* cp, HeapWord* compact_top, bool force_forward);
// Initialization helpers.
void initializeIndexedFreeListArray();
@@ -576,6 +576,9 @@ class CompactibleFreeListSpace: public CompactibleSpace {
// Support for compaction.
void prepare_for_compaction(CompactPoint* cp);
+
+ bool must_rescue(oop old_obj, oop new_obj);
+
void adjust_pointers();
void compact();
// Reset the space to reflect the fact that a compaction of the
diff --git a/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp b/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp
index 3ada5755875..b6e930922d7 100644
--- a/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp
+++ b/src/hotspot/share/gc/cms/concurrentMarkSweepThread.cpp
@@ -78,10 +78,12 @@ void ConcurrentMarkSweepThread::run_service() {
while (!should_terminate()) {
sleepBeforeNextCycle();
if (should_terminate()) break;
- GCIdMark gc_id_mark;
- GCCause::Cause cause = _collector->_full_gc_requested ?
- _collector->_full_gc_cause : GCCause::_cms_concurrent_mark;
- _collector->collect_in_background(cause);
+ if (!Universe::is_redefining_gc_run()) {
+ GCIdMark gc_id_mark;
+ GCCause::Cause cause = _collector->_full_gc_requested ?
+ _collector->_full_gc_cause : GCCause::_cms_concurrent_mark;
+ _collector->collect_in_background(cause);
+ }
}
// Check that the state of any protocol for synchronization
diff --git a/src/hotspot/share/gc/serial/markSweep.cpp b/src/hotspot/share/gc/serial/markSweep.cpp
index d0ff86c8215..b4ed59f020c 100644
--- a/src/hotspot/share/gc/serial/markSweep.cpp
+++ b/src/hotspot/share/gc/serial/markSweep.cpp
@@ -247,7 +247,7 @@ void MarkSweep::copy_rescued_objects_back() {
FREE_RESOURCE_ARRAY(HeapWord, rescued_ptr, size);
- new_obj->init_mark();
+ new_obj->init_mark_raw();
assert(oopDesc::is_oop(new_obj), "must be a valid oop");
}
_rescued_oops->clear();
diff --git a/src/hotspot/share/gc/shared/gcConfig.cpp b/src/hotspot/share/gc/shared/gcConfig.cpp
index 9779df92447..adb0f5dd25c 100644
--- a/src/hotspot/share/gc/shared/gcConfig.cpp
+++ b/src/hotspot/share/gc/shared/gcConfig.cpp
@@ -106,7 +106,7 @@ void GCConfig::fail_if_unsupported_gc_is_selected() {
}
void GCConfig::select_gc_ergonomically() {
- if (AllowEnhancedClassRedefinition) {
+ if (AllowEnhancedClassRedefinition && !UseConcMarkSweepGC) {
// Enhanced class redefinition only supports serial GC at the moment
FLAG_SET_ERGO(bool, UseSerialGC, true);
} else if (os::is_server_class_machine()) {
diff --git a/src/hotspot/share/gc/shared/space.cpp b/src/hotspot/share/gc/shared/space.cpp
index bc0dd1980db..56b144b46f1 100644
--- a/src/hotspot/share/gc/shared/space.cpp
+++ b/src/hotspot/share/gc/shared/space.cpp
@@ -388,11 +388,11 @@ HeapWord* CompactibleSpace::forward_compact_top(size_t size, CompactPoint* cp, H
}
HeapWord* CompactibleSpace::forward(oop q, size_t size,
- CompactPoint* cp, HeapWord* compact_top) {
+ CompactPoint* cp, HeapWord* compact_top, bool force_forward) {
compact_top = forward_compact_top(size, cp, compact_top);
// store the forwarding pointer into the mark word
- if ((HeapWord*)q != compact_top || (size_t)q->size() != size) {
+ if (force_forward || (HeapWord*)q != compact_top || (size_t)q->size() != size) {
q->forward_to(oop(compact_top));
assert(q->is_gc_marked(), "encoding the pointer should preserve the mark");
} else {
@@ -514,7 +514,7 @@ bool CompactibleSpace::must_rescue(oop old_obj, oop new_obj) {
} else {
assert(space_index(old_obj) != space_index(new_obj), "old_obj and new_obj must be in different spaces");
- if (tenured_gen->is_in_reserved(new_obj)) {
+ if (new_in_tenured) {
// Must never rescue when moving from the new into the old generation.
assert(GenCollectedHeap::heap()->young_gen()->is_in_reserved(old_obj), "old_obj must be in DefNewGeneration");
assert(space_index(old_obj) > space_index(new_obj), "must be");
@@ -858,14 +858,14 @@ void OffsetTableContigSpace::verify() const {
// Compute the forward sizes and leave out objects whose position could
// possibly overlap other objects.
HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
- CompactPoint* cp, HeapWord* compact_top) {
+ CompactPoint* cp, HeapWord* compact_top, bool force_forward) {
size_t forward_size = size;
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
- assert(size != new_size, "instances without changed size have to be updated prior to GC run");
+ // assert(size != new_size, "instances without changed size have to be updated prior to GC run");
forward_size = new_size;
}
@@ -879,7 +879,7 @@ HeapWord* CompactibleSpace::forward_with_rescue(HeapWord* q, size_t size,
return compact_top;
}
- return forward(oop(q), forward_size, cp, compact_top);
+ return forward(oop(q), forward_size, cp, compact_top, force_forward);
}
// Compute the forwarding addresses for the objects that need to be rescued.
@@ -895,11 +895,11 @@ HeapWord* CompactibleSpace::forward_rescued(CompactPoint* cp, HeapWord* compact_
// (DCEVM) There is a new version of the class of q => different size
if (oop(q)->klass()->new_version() != NULL) {
size_t new_size = oop(q)->size_given_klass(oop(q)->klass()->new_version());
- assert(size != new_size, "instances without changed size have to be updated prior to GC run");
+ // assert(size != new_size, "instances without changed size have to be updated prior to GC run");
size = new_size;
}
- compact_top = cp->space->forward(oop(q), size, cp, compact_top);
+ compact_top = cp->space->forward(oop(q), size, cp, compact_top, true);
assert(compact_top <= end(), "must not write over end of space!");
}
MarkSweep::_rescued_oops->clear();
diff --git a/src/hotspot/share/gc/shared/space.hpp b/src/hotspot/share/gc/shared/space.hpp
index 8eb5669fb79..901c89d8a30 100644
--- a/src/hotspot/share/gc/shared/space.hpp
+++ b/src/hotspot/share/gc/shared/space.hpp
@@ -421,7 +421,7 @@ public:
virtual void prepare_for_compaction(CompactPoint* cp) = 0;
// MarkSweep support phase3
DEBUG_ONLY(int space_index(oop obj));
- bool must_rescue(oop old_obj, oop new_obj);
+ virtual bool must_rescue(oop old_obj, oop new_obj);
HeapWord* rescue(HeapWord* old_obj);
virtual void adjust_pointers();
// MarkSweep support phase4
@@ -452,11 +452,11 @@ public:
// function of the then-current compaction space, and updates "cp->threshold
// accordingly".
virtual HeapWord* forward(oop q, size_t size, CompactPoint* cp,
- HeapWord* compact_top);
+ HeapWord* compact_top, bool force_forward);
// (DCEVM) same as forwad, but can rescue objects. Invoked only during
// redefinition runs
HeapWord* forward_with_rescue(HeapWord* q, size_t size, CompactPoint* cp,
- HeapWord* compact_top);
+ HeapWord* compact_top, bool force_forward);
HeapWord* forward_rescued(CompactPoint* cp, HeapWord* compact_top);
diff --git a/src/hotspot/share/gc/shared/space.inline.hpp b/src/hotspot/share/gc/shared/space.inline.hpp
index 6b109fcd2e5..8c255d6d428 100644
--- a/src/hotspot/share/gc/shared/space.inline.hpp
+++ b/src/hotspot/share/gc/shared/space.inline.hpp
@@ -163,6 +163,8 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
HeapWord* cur_obj = space->bottom();
HeapWord* scan_limit = space->scan_limit();
+ bool force_forward = false;
+
while (cur_obj < scan_limit) {
assert(!space->scanned_block_is_obj(cur_obj) ||
oop(cur_obj)->mark_raw()->is_marked() || oop(cur_obj)->mark_raw()->is_unlocked() ||
@@ -174,14 +176,15 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
size_t size = space->scanned_block_size(cur_obj);
if (redefinition_run) {
- compact_top = cp->space->forward_with_rescue(cur_obj, size, cp, compact_top);
+ compact_top = cp->space->forward_with_rescue(cur_obj, size, cp, compact_top, force_forward);
if (first_dead == NULL && oop(cur_obj)->is_gc_marked()) {
/* Was moved (otherwise, forward would reset mark),
set first_dead to here */
first_dead = cur_obj;
+ force_forward = true;
}
} else {
- compact_top = cp->space->forward(oop(cur_obj), size, cp, compact_top);
+ compact_top = cp->space->forward(oop(cur_obj), size, cp, compact_top, false);
}
cur_obj += size;
@@ -197,9 +200,9 @@ inline void CompactibleSpace::scan_and_forward(SpaceType* space, CompactPoint* c
// see if we might want to pretend this object is alive so that
// we don't have to compact quite as often.
- if (cur_obj == compact_top && dead_spacer.insert_deadspace(cur_obj, end)) {
+ if (!redefinition_run && cur_obj == compact_top && dead_spacer.insert_deadspace(cur_obj, end)) {
oop obj = oop(cur_obj);
- compact_top = cp->space->forward(obj, obj->size(), cp, compact_top);
+ compact_top = cp->space->forward(obj, obj->size(), cp, compact_top, force_forward);
end_of_live = end;
} else {
// otherwise, it really is a free region.
@@ -352,7 +355,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
HeapWord* compaction_top = (HeapWord*)oop(cur_obj)->forwardee();
if (redefinition_run && space->must_rescue(oop(cur_obj), oop(cur_obj)->forwardee())) {
- space->rescue(cur_obj);
+ space->rescue(cur_obj);
debug_only(Copy::fill_to_words(cur_obj, size, 0));
cur_obj += size;
continue;
@@ -362,8 +365,7 @@ inline void CompactibleSpace::scan_and_compact(SpaceType* space, bool redefiniti
Prefetch::write(compaction_top, copy_interval);
// copy object and reinit its mark
- assert(cur_obj != compaction_top || oop(cur_obj)->klass()->new_version() != NULL,
- "everything in this pass should be moving");
+ assert(redefinition_run || cur_obj != compaction_top, "everything in this pass should be moving");
if (redefinition_run && oop(cur_obj)->klass()->new_version() != NULL) {
Klass* new_version = oop(cur_obj)->klass()->new_version();
if (new_version->update_information() == NULL) {
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 92ce6c27b8a..41e82ae7a69 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -54,6 +54,7 @@
#include "prims/jvmtiThreadState.inline.hpp"
#include "utilities/events.hpp"
#include "oops/constantPool.inline.hpp"
+#include "gc/cms/cmsHeap.hpp"
Array<Method*>* VM_EnhancedRedefineClasses::_old_methods = NULL;
Array<Method*>* VM_EnhancedRedefineClasses::_new_methods = NULL;
@@ -416,13 +417,11 @@ public:
Klass* new_klass = obj->klass()->new_version();
if (new_klass->update_information() != NULL) {
- int size_diff = obj->size() - obj->size_given_klass(new_klass);
-
- // Either new size is bigger or gap is to small to be filled
- if (size_diff < 0 || (size_diff > 0 && (size_t) size_diff < CollectedHeap::min_fill_size())) {
+ if (obj->size() - obj->size_given_klass(new_klass) != 0) {
// We need an instance update => set back to old klass
_needs_instance_update = true;
} else {
+ // Either new size is bigger or gap is to small to be filled
oop src = obj;
if (new_klass->is_copying_backwards()) {
copy_to_tmp(obj);
@@ -432,11 +431,6 @@ public:
// FIXME: instance updates...
//guarantee(false, "instance updates!");
MarkSweep::update_fields(obj, src, new_klass->update_information());
-
- if (size_diff > 0) {
- HeapWord* dead_space = ((HeapWord *)obj) + obj->size();
- CollectedHeap::fill_with_object(dead_space, size_diff);
- }
}
} else {
obj->set_klass(obj->klass()->new_version());
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index a11dfe48dd6..013ba213c00 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -2045,14 +2045,14 @@ bool Arguments::check_gc_consistency() {
if (AllowEnhancedClassRedefinition) {
// Must use serial GC. This limitation applies because the instance size changing GC modifications
// are only built into the mark and compact algorithm.
- if (!UseSerialGC && i >= 1) {
+ if ((!UseSerialGC && !UseConcMarkSweepGC) && i >= 1) {
jio_fprintf(defaultStream::error_stream(),
- "Must use the serial GC with enhanced class redefinition\n");
+ "Must use the serial or concurrent mark sweep GC with enhanced class redefinition.\n");
return false;
}
}
- if (i > 1) {
+ if (i > 2) {
jio_fprintf(defaultStream::error_stream(),
"Conflicting collector combinations in option list; "
"please refer to the release notes for the combinations "
--
2.23.0

View File

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

View File

@@ -1,655 +0,0 @@
From c8850725d4c84f93beaee3c05f9d8f9862fe6159 Mon Sep 17 00:00:00 2001
From: skybber <lada.dvorak7@gmail.com>
Date: Thu, 15 Nov 2018 03:20:08 +0700
Subject: [PATCH 05/28] HotswapAgent integration
It include:
- option to compile DCEVM only version with -DDCEVM_ONLY added
to CFLAGS (bash configure --with-extra-cflags="-DDCEVM_ONLY"), by
default compilation goes with HotswapAgent
Allow ha class initializer calls
Add --add-opens for necessary modules/packages
- java.base/java.lang - for reflection access to Proxy.proxyCache
- java.base/jdk.internal.loader - for access proxyCache class
- java.desktop/java.beans - for reflection access to Introspector
- java.desktop/com.sun.beans
- java.base/java.io
- com.sun.beans.util
Open jdk module to access ClassInfo.CACHE
- be quiet if HotswapAgent is not found in lib/, it is compatible with
old DCEVM
- disable HotswapAgent for -Xshare:dump
- disable HotswapAgent in jvm tools
- disable HotswapAgent in keytool
---
make/launcher/Launcher-java.base.gmk | 1 +
make/launcher/Launcher-java.rmi.gmk | 2 +
make/launcher/Launcher-java.scripting.gmk | 3 +-
make/launcher/Launcher-java.security.jgss.gmk | 3 +
make/launcher/Launcher-jdk.aot.gmk | 2 +
make/launcher/Launcher-jdk.compiler.gmk | 5 +-
make/launcher/Launcher-jdk.hotspot.agent.gmk | 1 +
make/launcher/Launcher-jdk.jartool.gmk | 2 +
make/launcher/Launcher-jdk.javadoc.gmk | 3 +-
make/launcher/Launcher-jdk.jcmd.gmk | 13 +++-
make/launcher/Launcher-jdk.jconsole.gmk | 1 +
make/launcher/Launcher-jdk.jdeps.gmk | 3 +
make/launcher/Launcher-jdk.jdi.gmk | 1 +
make/launcher/Launcher-jdk.jlink.gmk | 5 +-
make/launcher/Launcher-jdk.jshell.gmk | 1 +
make/launcher/Launcher-jdk.jstatd.gmk | 1 +
make/launcher/Launcher-jdk.pack.gmk | 1 +
make/launcher/Launcher-jdk.rmic.gmk | 1 +
.../Launcher-jdk.scripting.nashorn.shell.gmk | 3 +-
src/hotspot/share/classfile/vmSymbols.hpp | 1 +
.../share/interpreter/linkResolver.cpp | 2 +-
src/hotspot/share/runtime/arguments.cpp | 67 +++++++++++++++++++
src/hotspot/share/runtime/arguments.hpp | 3 +
src/hotspot/share/runtime/globals.hpp | 12 +++-
.../sun/beans/introspect/package-info.java | 26 +++++++
.../classes/com/sun/beans/package-info.java | 26 +++++++
.../com/sun/beans/util/package-info.java | 26 +++++++
.../share/classes/module-info.java | 3 +
28 files changed, 208 insertions(+), 10 deletions(-)
create mode 100644 src/java.desktop/share/classes/com/sun/beans/introspect/package-info.java
create mode 100644 src/java.desktop/share/classes/com/sun/beans/package-info.java
create mode 100644 src/java.desktop/share/classes/com/sun/beans/util/package-info.java
diff --git a/make/launcher/Launcher-java.base.gmk b/make/launcher/Launcher-java.base.gmk
index f6d4aa28fe6..38ba29530d8 100644
--- a/make/launcher/Launcher-java.base.gmk
+++ b/make/launcher/Launcher-java.base.gmk
@@ -52,6 +52,7 @@ endif
$(eval $(call SetupBuildLauncher, keytool, \
MAIN_CLASS := sun.security.tools.keytool.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
################################################################################
diff --git a/make/launcher/Launcher-java.rmi.gmk b/make/launcher/Launcher-java.rmi.gmk
index a69a90bcc81..07046232275 100644
--- a/make/launcher/Launcher-java.rmi.gmk
+++ b/make/launcher/Launcher-java.rmi.gmk
@@ -27,8 +27,10 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, rmid, \
MAIN_CLASS := sun.rmi.server.Activation, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, rmiregistry, \
MAIN_CLASS := sun.rmi.registry.RegistryImpl, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-java.scripting.gmk b/make/launcher/Launcher-java.scripting.gmk
index 057d2bf3aca..cf100e20789 100644
--- a/make/launcher/Launcher-java.scripting.gmk
+++ b/make/launcher/Launcher-java.scripting.gmk
@@ -27,5 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jrunscript, \
MAIN_CLASS := com.sun.tools.script.shell.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-java.security.jgss.gmk b/make/launcher/Launcher-java.security.jgss.gmk
index 7411e1a21c4..2b856bfccb4 100644
--- a/make/launcher/Launcher-java.security.jgss.gmk
+++ b/make/launcher/Launcher-java.security.jgss.gmk
@@ -28,13 +28,16 @@ include LauncherCommon.gmk
ifeq ($(OPENJDK_TARGET_OS), windows)
$(eval $(call SetupBuildLauncher, kinit, \
MAIN_CLASS := sun.security.krb5.internal.tools.Kinit, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, klist, \
MAIN_CLASS := sun.security.krb5.internal.tools.Klist, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, ktab, \
MAIN_CLASS := sun.security.krb5.internal.tools.Ktab, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
endif
diff --git a/make/launcher/Launcher-jdk.aot.gmk b/make/launcher/Launcher-jdk.aot.gmk
index 10717a5e1c5..2c52c31a555 100644
--- a/make/launcher/Launcher-jdk.aot.gmk
+++ b/make/launcher/Launcher-jdk.aot.gmk
@@ -31,6 +31,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jaotc, \
MAIN_CLASS := jdk.tools.jaotc.Main, \
EXTRA_JAVA_ARGS := -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI \
+ -XX:+DisableHotswapAgent \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.amd64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
@@ -40,6 +41,7 @@ $(eval $(call SetupBuildLauncher, jaotc, \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
, \
JAVA_ARGS := --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
+ -XX:+DisableHotswapAgent \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.sparc=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
diff --git a/make/launcher/Launcher-jdk.compiler.gmk b/make/launcher/Launcher-jdk.compiler.gmk
index f71c37adf74..744969546de 100644
--- a/make/launcher/Launcher-jdk.compiler.gmk
+++ b/make/launcher/Launcher-jdk.compiler.gmk
@@ -27,12 +27,14 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javac, \
MAIN_CLASS := com.sun.tools.javac.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, serialver, \
MAIN_CLASS := sun.tools.serialver.SerialVer, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
@@ -41,6 +43,7 @@ ifeq ($(ENABLE_SJAVAC), yes)
# into any real images
$(eval $(call SetupBuildLauncher, sjavac, \
MAIN_CLASS := com.sun.tools.sjavac.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
OUTPUT_DIR := $(JDK_OUTPUTDIR)/bin, \
))
diff --git a/make/launcher/Launcher-jdk.hotspot.agent.gmk b/make/launcher/Launcher-jdk.hotspot.agent.gmk
index 76da3600368..9f12b05b172 100644
--- a/make/launcher/Launcher-jdk.hotspot.agent.gmk
+++ b/make/launcher/Launcher-jdk.hotspot.agent.gmk
@@ -27,5 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jhsdb, \
MAIN_CLASS := sun.jvm.hotspot.SALauncher, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
diff --git a/make/launcher/Launcher-jdk.jartool.gmk b/make/launcher/Launcher-jdk.jartool.gmk
index f74e82bfdae..647d82b65b1 100644
--- a/make/launcher/Launcher-jdk.jartool.gmk
+++ b/make/launcher/Launcher-jdk.jartool.gmk
@@ -27,8 +27,10 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jar, \
MAIN_CLASS := sun.tools.jar.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jarsigner, \
MAIN_CLASS := sun.security.tools.jarsigner.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-jdk.javadoc.gmk b/make/launcher/Launcher-jdk.javadoc.gmk
index 889028a2b17..c3d2093be04 100644
--- a/make/launcher/Launcher-jdk.javadoc.gmk
+++ b/make/launcher/Launcher-jdk.javadoc.gmk
@@ -27,6 +27,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javadoc, \
MAIN_CLASS := jdk.javadoc.internal.tool.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jcmd.gmk b/make/launcher/Launcher-jdk.jcmd.gmk
index 7117fa78059..761a52d8466 100644
--- a/make/launcher/Launcher-jdk.jcmd.gmk
+++ b/make/launcher/Launcher-jdk.jcmd.gmk
@@ -30,6 +30,7 @@ $(eval $(call SetupBuildLauncher, jinfo, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
+ -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
@@ -37,28 +38,36 @@ $(eval $(call SetupBuildLauncher, jmap, \
MAIN_CLASS := sun.tools.jmap.JMap, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
- -Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
+ -Dsun.jvm.hotspot.debugger.useWindbgDebugger \
+ -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
$(eval $(call SetupBuildLauncher, jps, \
MAIN_CLASS := sun.tools.jps.Jps, \
+ JAVA_ARGS := \
+ -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jstack, \
MAIN_CLASS := sun.tools.jstack.JStack, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
- -Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
+ -Dsun.jvm.hotspot.debugger.useWindbgDebugger \
+ -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
$(eval $(call SetupBuildLauncher, jstat, \
MAIN_CLASS := sun.tools.jstat.Jstat, \
+ JAVA_ARGS := \
+ -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jcmd, \
MAIN_CLASS := sun.tools.jcmd.JCmd, \
+ JAVA_ARGS := \
+ -XX:+DisableHotswapAgent, \
))
# Hook to include the corresponding custom file, if present.
diff --git a/make/launcher/Launcher-jdk.jconsole.gmk b/make/launcher/Launcher-jdk.jconsole.gmk
index 575b9e0595b..2f442f69113 100644
--- a/make/launcher/Launcher-jdk.jconsole.gmk
+++ b/make/launcher/Launcher-jdk.jconsole.gmk
@@ -30,6 +30,7 @@ $(eval $(call SetupBuildLauncher, jconsole, \
JAVA_ARGS := --add-opens java.base/java.io=jdk.jconsole \
-Djconsole.showOutputViewer \
-Djdk.attach.allowAttachSelf=true, \
+ -XX:+DisableHotswapAgent, \
CFLAGS_windows := -DJAVAW, \
LIBS_windows := user32.lib, \
))
diff --git a/make/launcher/Launcher-jdk.jdeps.gmk b/make/launcher/Launcher-jdk.jdeps.gmk
index 217523c48cc..5448278dae7 100644
--- a/make/launcher/Launcher-jdk.jdeps.gmk
+++ b/make/launcher/Launcher-jdk.jdeps.gmk
@@ -27,15 +27,18 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javap, \
MAIN_CLASS := com.sun.tools.javap.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jdeps, \
MAIN_CLASS := com.sun.tools.jdeps.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jdeprscan, \
MAIN_CLASS := com.sun.tools.jdeprscan.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jdi.gmk b/make/launcher/Launcher-jdk.jdi.gmk
index fcce98cf430..27bd448e3ae 100644
--- a/make/launcher/Launcher-jdk.jdi.gmk
+++ b/make/launcher/Launcher-jdk.jdi.gmk
@@ -27,4 +27,5 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jdb, \
MAIN_CLASS := com.sun.tools.example.debug.tty.TTY, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-jdk.jlink.gmk b/make/launcher/Launcher-jdk.jlink.gmk
index df2173996d7..9e61edeb2c8 100644
--- a/make/launcher/Launcher-jdk.jlink.gmk
+++ b/make/launcher/Launcher-jdk.jlink.gmk
@@ -27,18 +27,21 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jimage,\
MAIN_CLASS := jdk.tools.jimage.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES, \
))
$(eval $(call SetupBuildLauncher, jlink,\
MAIN_CLASS := jdk.tools.jlink.internal.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES \
-DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jmod,\
MAIN_CLASS := jdk.tools.jmod.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES \
-DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jshell.gmk b/make/launcher/Launcher-jdk.jshell.gmk
index 349eb88e9eb..7287f8f998a 100644
--- a/make/launcher/Launcher-jdk.jshell.gmk
+++ b/make/launcher/Launcher-jdk.jshell.gmk
@@ -27,5 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jshell, \
MAIN_CLASS := jdk.internal.jshell.tool.JShellToolProvider, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jstatd.gmk b/make/launcher/Launcher-jdk.jstatd.gmk
index e9286d63094..e1657910c67 100644
--- a/make/launcher/Launcher-jdk.jstatd.gmk
+++ b/make/launcher/Launcher-jdk.jstatd.gmk
@@ -27,6 +27,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jstatd, \
MAIN_CLASS := sun.tools.jstatd.Jstatd, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
# Hook to include the corresponding custom file, if present.
diff --git a/make/launcher/Launcher-jdk.pack.gmk b/make/launcher/Launcher-jdk.pack.gmk
index a93fd2a9017..64bbbb7c949 100644
--- a/make/launcher/Launcher-jdk.pack.gmk
+++ b/make/launcher/Launcher-jdk.pack.gmk
@@ -28,6 +28,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, pack200, \
MAIN_MODULE := java.base, \
MAIN_CLASS := com.sun.java.util.jar.pack.Driver, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
################################################################################
diff --git a/make/launcher/Launcher-jdk.rmic.gmk b/make/launcher/Launcher-jdk.rmic.gmk
index d60c3d9b60b..b8a55900b0e 100644
--- a/make/launcher/Launcher-jdk.rmic.gmk
+++ b/make/launcher/Launcher-jdk.rmic.gmk
@@ -27,5 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, rmic, \
MAIN_CLASS := sun.rmi.rmic.Main, \
+ JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk b/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
index 82311e69fd6..bd39f8595b2 100644
--- a/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
+++ b/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
@@ -27,6 +27,7 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jjs, \
MAIN_CLASS := jdk.nashorn.tools.jjs.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT \
+ -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES, \
))
diff --git a/src/hotspot/share/classfile/vmSymbols.hpp b/src/hotspot/share/classfile/vmSymbols.hpp
index 26ff6ee9853..2409af9b06e 100644
--- a/src/hotspot/share/classfile/vmSymbols.hpp
+++ b/src/hotspot/share/classfile/vmSymbols.hpp
@@ -342,6 +342,7 @@
/* common method and field names */ \
template(object_initializer_name, "<init>") \
template(class_initializer_name, "<clinit>") \
+ template(ha_class_initializer_name, "$$ha$clinit") \
template(println_name, "println") \
template(printStackTrace_name, "printStackTrace") \
template(main_name, "main") \
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index 0c24146ff00..9dc184d02f5 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -1009,7 +1009,7 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
assert(!m.is_null(), "information about the current method must be available for 'put' bytecodes");
bool is_initialized_static_final_update = (byte == Bytecodes::_putstatic &&
fd.is_static() &&
- !m()->is_static_initializer());
+ !(m()->is_static_initializer() || m()->name() == vmSymbols::ha_class_initializer_name()));
bool is_initialized_instance_final_update = ((byte == Bytecodes::_putfield || byte == Bytecodes::_nofast_putfield) &&
!fd.is_static() &&
!m->is_object_initializer());
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index 013ba213c00..2b5ba619f43 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -3962,6 +3962,8 @@ jint Arguments::parse(const JavaVMInitArgs* initial_cmd_args) {
// Set object alignment values.
set_object_alignment();
+ setup_hotswap_agent();
+
#if !INCLUDE_CDS
if (DumpSharedSpaces || RequireSharedSpaces) {
jio_fprintf(defaultStream::error_stream(),
@@ -4295,3 +4297,68 @@ bool Arguments::copy_expand_pid(const char* src, size_t srclen,
*b = '\0';
return (p == src_end); // return false if not all of the source was copied
}
+
+void Arguments::setup_hotswap_agent() {
+
+ if (DumpSharedSpaces)
+ return;
+
+ if (!AllowEnhancedClassRedefinition)
+ return;
+
+ // Set HotswapAgent
+ if (!DisableHotswapAgent) {
+
+ char ext_path_str[JVM_MAXPATHLEN];
+
+ os::jvm_path(ext_path_str, sizeof(ext_path_str));
+ for (int i = 0; i < 3; i++) {
+ char *end = strrchr(ext_path_str, *os::file_separator());
+ if (end != NULL) *end = '\0';
+ }
+ size_t ext_path_length = strlen(ext_path_str);
+ if (ext_path_length >= 3) {
+ if (strcmp(ext_path_str + ext_path_length - 3, "lib") != 0) {
+ if (ext_path_length < JVM_MAXPATHLEN - 4) {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length, "%slib", os::file_separator());
+ ext_path_length += 4;
+ }
+ }
+ }
+ if (ext_path_length < JVM_MAXPATHLEN - 10) {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length,
+ "%shotswap%shotswap-agent.jar", os::file_separator(), os::file_separator());
+ }
+
+ int fd = ::open(ext_path_str, O_RDONLY);
+ if (fd >= 0) {
+ os::close(fd);
+ size_t length = strlen(ext_path_str) + 1;
+ char *options = NEW_C_HEAP_ARRAY(char, length, mtArguments);
+ jio_snprintf(options, length, "%s", ext_path_str);
+ add_init_agent("instrument", ext_path_str, false);
+ jio_fprintf(defaultStream::output_stream(), "Starting HotswapAgent '%s'\n", ext_path_str);
+ }
+// else
+// {
+// jio_fprintf(defaultStream::error_stream(), "HotswapAgent not found on path:'%s'\n", ext_path_str);
+// }
+ }
+
+ // TODO: open it only for org.hotswap.agent module
+ // Use to access java.lang.reflect.Proxy/proxyCache
+ create_numbered_property("jdk.module.addopens", "java.base/java.lang=ALL-UNNAMED", addopens_count++);
+ // Class of field java.lang.reflect.Proxy/proxyCache
+ create_numbered_property("jdk.module.addopens", "java.base/jdk.internal.loader=ALL-UNNAMED", addopens_count++);
+ // Use to access java.io.Reader, java.io.InputStream, java.io.FileInputStream
+ create_numbered_property("jdk.module.addopens", "java.base/java.io=ALL-UNNAMED", addopens_count++);
+ // java.beans.Introspector access
+ create_numbered_property("jdk.module.addopens", "java.desktop/java.beans=ALL-UNNAMED", addopens_count++);
+ // java.beans.Introspector access
+ create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans=ALL-UNNAMED", addopens_count++);
+ // com.sun.beans.introspect.ClassInfo access
+ create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans.introspect=ALL-UNNAMED", addopens_count++);
+ // com.sun.beans.introspect.util.Cache access
+ create_numbered_property("jdk.module.addopens", "java.desktop/com.sun.beans.util=ALL-UNNAMED", addopens_count++);
+
+}
diff --git a/src/hotspot/share/runtime/arguments.hpp b/src/hotspot/share/runtime/arguments.hpp
index cc7f71a4404..b2bab2e1f44 100644
--- a/src/hotspot/share/runtime/arguments.hpp
+++ b/src/hotspot/share/runtime/arguments.hpp
@@ -507,6 +507,9 @@ class Arguments : AllStatic {
static size_t conservative_max_heap_alignment() { return _conservative_max_heap_alignment; }
+ // Initialize HotswapAgent
+ static void setup_hotswap_agent();
+
// Return the maximum size a heap with compressed oops can take
static size_t max_heap_for_compressed_oops();
diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index a6c33744760..b8dba232fc1 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -32,6 +32,12 @@
#include <float.h> // for DBL_MAX
+#ifdef DCEVM_ONLY
+#define DISABLED_HOTSWAP_AGENT true
+#else
+#define DISABLED_HOTSWAP_AGENT false
+#endif
+
// The larger HeapWordSize for 64bit requires larger heaps
// for the same application running in 64bit. See bug 4967770.
// The minimum alignment to a heap word size is done. Other
@@ -2678,8 +2684,10 @@ define_pd_global(uint64_t,MaxRAM, 1ULL*G);
\
product(bool, AllowEnhancedClassRedefinition, true, \
"Allow enhanced class redefinition beyond swapping method " \
- "bodies")
-
+ "bodies") \
+ \
+ product(bool, DisableHotswapAgent, DISABLED_HOTSWAP_AGENT, \
+ "Disable integrated Hotswap Agent (HotswapVM only)")
#define VM_FLAGS(develop, \
develop_pd, \
product, \
diff --git a/src/java.desktop/share/classes/com/sun/beans/introspect/package-info.java b/src/java.desktop/share/classes/com/sun/beans/introspect/package-info.java
new file mode 100644
index 00000000000..6636e4dd62a
--- /dev/null
+++ b/src/java.desktop/share/classes/com/sun/beans/introspect/package-info.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 1998, 2017, 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 com.sun.beans.introspect;
diff --git a/src/java.desktop/share/classes/com/sun/beans/package-info.java b/src/java.desktop/share/classes/com/sun/beans/package-info.java
new file mode 100644
index 00000000000..5c097eeaa53
--- /dev/null
+++ b/src/java.desktop/share/classes/com/sun/beans/package-info.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 1998, 2017, 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 com.sun.beans;
diff --git a/src/java.desktop/share/classes/com/sun/beans/util/package-info.java b/src/java.desktop/share/classes/com/sun/beans/util/package-info.java
new file mode 100644
index 00000000000..2d5d735ffa8
--- /dev/null
+++ b/src/java.desktop/share/classes/com/sun/beans/util/package-info.java
@@ -0,0 +1,26 @@
+/*
+ * Copyright (c) 1998, 2017, 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 com.sun.beans.util;
diff --git a/src/java.desktop/share/classes/module-info.java b/src/java.desktop/share/classes/module-info.java
index b663b382f52..2a8f0a67d52 100644
--- a/src/java.desktop/share/classes/module-info.java
+++ b/src/java.desktop/share/classes/module-info.java
@@ -104,6 +104,9 @@ module java.desktop {
exports javax.swing.text.rtf;
exports javax.swing.tree;
exports javax.swing.undo;
+ exports com.sun.beans;
+ exports com.sun.beans.introspect;
+ exports com.sun.beans.util;
// qualified exports may be inserted at build time
// see make/GensrcModuleInfo.gmk
--
2.23.0

View File

@@ -1,258 +0,0 @@
From 1552e3854e11fb835452aa531ef53b78bb4588a5 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sun, 4 Oct 2020 21:12:12 +0200
Subject: [PATCH 06/28] Support for Lambda class redefinition
---
.../share/classfile/classLoaderData.cpp | 9 +++
.../share/classfile/classLoaderData.hpp | 1 +
.../share/classfile/systemDictionary.cpp | 12 +++-
.../share/classfile/systemDictionary.hpp | 2 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 65 +++++++++++++++++--
.../prims/jvmtiEnhancedRedefineClasses.hpp | 1 +
.../share/prims/resolvedMethodTable.cpp | 4 +-
src/hotspot/share/prims/unsafe.cpp | 1 +
8 files changed, 85 insertions(+), 10 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index ab2615da0ed..1bc67adf5a7 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -663,6 +663,15 @@ Dictionary* ClassLoaderData::create_dictionary() {
return new Dictionary(this, size, resizable);
}
+void ClassLoaderData::exchange_holders(ClassLoaderData* cld) {
+ oop holder_oop = _holder.peek();
+ _holder.replace(cld->_holder.peek());
+ cld->_holder.replace(holder_oop);
+ WeakHandle<vm_class_loader_data> exchange = _holder;
+ _holder = cld->_holder;
+ cld->_holder = exchange;
+}
+
// Tell the GC to keep this klass alive while iterating ClassLoaderDataGraph
oop ClassLoaderData::holder_phantom() const {
// A klass that was previously considered dead can be looked up in the
diff --git a/src/hotspot/share/classfile/classLoaderData.hpp b/src/hotspot/share/classfile/classLoaderData.hpp
index 7e357929971..00a84610b43 100644
--- a/src/hotspot/share/classfile/classLoaderData.hpp
+++ b/src/hotspot/share/classfile/classLoaderData.hpp
@@ -292,6 +292,7 @@ class ClassLoaderData : public CHeapObj<mtClass> {
void accumulate_modified_oops() { if (has_modified_oops()) _accumulated_modified_oops = true; }
void clear_accumulated_modified_oops() { _accumulated_modified_oops = false; }
bool has_accumulated_modified_oops() { return _accumulated_modified_oops; }
+ void exchange_holders(ClassLoaderData* cld);
private:
void unload();
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 19bc8d9899a..a6a03d3c0e9 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -971,12 +971,16 @@ InstanceKlass* SystemDictionary::parse_stream(Symbol* class_name,
Handle protection_domain,
ClassFileStream* st,
const InstanceKlass* host_klass,
+ InstanceKlass* old_klass,
GrowableArray<Handle>* cp_patches,
TRAPS) {
EventClassLoad class_load_start_event;
ClassLoaderData* loader_data;
+
+ bool is_redefining = (old_klass != NULL);
+
if (host_klass != NULL) {
// Create a new CLD for anonymous class, that uses the same class loader
// as the host_klass
@@ -1000,8 +1004,12 @@ InstanceKlass* SystemDictionary::parse_stream(Symbol* class_name,
protection_domain,
host_klass,
cp_patches,
- false, // pick_newest
+ is_redefining, // pick_newest
CHECK_NULL);
+ if (is_redefining && k != NULL) {
+ k->set_redefining(true);
+ k->set_old_version(old_klass);
+ }
if (host_klass != NULL && k != NULL) {
// Anonymous classes must update ClassLoaderData holder (was host_klass loader)
@@ -1844,7 +1852,7 @@ void SystemDictionary::remove_from_hierarchy(InstanceKlass* k) {
k->remove_from_sibling_list();
}
-// (DCEVM)
+// (DCEVM)
void SystemDictionary::update_constraints_after_redefinition() {
constraints()->update_after_redefinition();
}
diff --git a/src/hotspot/share/classfile/systemDictionary.hpp b/src/hotspot/share/classfile/systemDictionary.hpp
index 06f6c869d63..1dbbffa197f 100644
--- a/src/hotspot/share/classfile/systemDictionary.hpp
+++ b/src/hotspot/share/classfile/systemDictionary.hpp
@@ -304,6 +304,7 @@ public:
protection_domain,
st,
NULL, // host klass
+ NULL, // old class
NULL, // cp_patches
THREAD);
}
@@ -312,6 +313,7 @@ public:
Handle protection_domain,
ClassFileStream* st,
const InstanceKlass* host_klass,
+ InstanceKlass* old_klass,
GrowableArray<Handle>* cp_patches,
TRAPS);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 41e82ae7a69..b94caa39562 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -488,6 +488,8 @@ void VM_EnhancedRedefineClasses::doit() {
ClassLoaderDataGraph::classes_do(&clear_cpool_cache);
+ // SystemDictionary::methods_do(fix_invoke_method);
+
// JSR-292 support
if (_any_class_has_resolved_methods) {
bool trace_name_printed = false;
@@ -750,12 +752,34 @@ jvmtiError VM_EnhancedRedefineClasses::load_new_class_versions(TRAPS) {
// load hook event.
state->set_class_being_redefined(the_class, _class_load_kind);
- InstanceKlass* k = SystemDictionary::resolve_from_stream(the_class_sym,
- the_class_loader,
- protection_domain,
- &st,
- the_class,
- THREAD);
+ InstanceKlass* k;
+
+ if (InstanceKlass::cast(the_class)->is_anonymous()) {
+ const InstanceKlass* host_class = the_class->host_klass();
+
+ // Make sure it's the real host class, not another anonymous class.
+ while (host_class != NULL && host_class->is_anonymous()) {
+ host_class = host_class->host_klass();
+ }
+
+ k = SystemDictionary::parse_stream(the_class_sym,
+ the_class_loader,
+ protection_domain,
+ &st,
+ host_class,
+ the_class,
+ NULL,
+ THREAD);
+ k->class_loader_data()->exchange_holders(the_class->class_loader_data());
+ the_class->class_loader_data()->inc_keep_alive();
+ } else {
+ k = SystemDictionary::resolve_from_stream(the_class_sym,
+ the_class_loader,
+ protection_domain,
+ &st,
+ the_class,
+ THREAD);
+ }
// Clear class_being_redefined just to be sure.
state->clear_class_being_redefined();
@@ -1436,6 +1460,30 @@ void VM_EnhancedRedefineClasses::MethodDataCleaner::do_klass(Klass* k) {
}
}
+void VM_EnhancedRedefineClasses::fix_invoke_method(Method* method) {
+
+ constantPoolHandle other_cp = constantPoolHandle(method->constants());
+
+ for (int i = 0; i < other_cp->length(); i++) {
+ if (other_cp->tag_at(i).is_klass()) {
+ Klass* klass = other_cp->resolved_klass_at(i);
+ if (klass->new_version() != NULL) {
+ // Constant pool entry points to redefined class -- update to the new version
+ other_cp->klass_at_put(i, klass->newest_version());
+ }
+ assert(other_cp->resolved_klass_at(i)->new_version() == NULL, "Must be new klass!");
+ }
+ }
+
+ ConstantPoolCache* cp_cache = other_cp->cache();
+ if (cp_cache != NULL) {
+ cp_cache->clear_entries();
+ }
+
+}
+
+
+
void VM_EnhancedRedefineClasses::update_jmethod_ids() {
for (int j = 0; j < _matching_methods_length; ++j) {
Method* old_method = _matching_old_methods[j];
@@ -1973,7 +2021,10 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
// Find classes not directly redefined, but affected by a redefinition (because one of its supertypes is redefined)
AffectedKlassClosure closure(_affected_klasses);
// Updated in j10, from original SystemDictionary::classes_do
- ClassLoaderDataGraph::dictionary_classes_do(&closure);
+
+ ClassLoaderDataGraph::classes_do(&closure);
+ //ClassLoaderDataGraph::dictionary_classes_do(&closure);
+
log_trace(redefine, class, load)("%d classes affected", _affected_klasses->length());
// Sort the affected klasses such that a supertype is always on a smaller array index than its subtype.
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 60b62c3170a..d8a11b51fe9 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -116,6 +116,7 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void rollback();
static void mark_as_scavengable(nmethod* nm);
static void unpatch_bytecode(Method* method);
+ static void fix_invoke_method(Method* method);
// Figure out which new methods match old methods in name and signature,
// which methods have been added, and which are no longer present
diff --git a/src/hotspot/share/prims/resolvedMethodTable.cpp b/src/hotspot/share/prims/resolvedMethodTable.cpp
index af2ec48c2e1..7741328979f 100644
--- a/src/hotspot/share/prims/resolvedMethodTable.cpp
+++ b/src/hotspot/share/prims/resolvedMethodTable.cpp
@@ -200,7 +200,7 @@ void ResolvedMethodTable::print() {
void ResolvedMethodTable::adjust_method_entries(bool * trace_name_printed) {
assert(SafepointSynchronize::is_at_safepoint(), "only called at safepoint");
- // For each entry in RMT, change to new method
+ // For each entry in RMT, change to new methodadjust_method_entries_dcevm
for (int i = 0; i < _the_table->table_size(); ++i) {
for (ResolvedMethodEntry* entry = _the_table->bucket(i);
entry != NULL;
@@ -271,6 +271,8 @@ void ResolvedMethodTable::adjust_method_entries_dcevm(bool * trace_name_printed)
InstanceKlass* newer_klass = InstanceKlass::cast(old_method->method_holder()->new_version());
Method* newer_method = newer_klass->method_with_idnum(old_method->orig_method_idnum());
+ log_info(redefine, class, load, exceptions)("Adjusting method: '%s' of new class %s", newer_method->name_and_sig_as_C_string(), newer_klass->name()->as_C_string());
+
assert(newer_klass == newer_method->method_holder(), "call after swapping redefined guts");
assert(newer_method != NULL, "method_with_idnum() should not be NULL");
assert(old_method != newer_method, "sanity check");
diff --git a/src/hotspot/share/prims/unsafe.cpp b/src/hotspot/share/prims/unsafe.cpp
index 1983b4f45f0..5e7aca092eb 100644
--- a/src/hotspot/share/prims/unsafe.cpp
+++ b/src/hotspot/share/prims/unsafe.cpp
@@ -820,6 +820,7 @@ Unsafe_DefineAnonymousClass_impl(JNIEnv *env,
host_domain,
&st,
InstanceKlass::cast(host_klass),
+ NULL,
cp_patches,
CHECK_NULL);
if (anonk == NULL) {
--
2.23.0

View File

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

View File

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

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -1,26 +0,0 @@
From 5c437ade174426dbaf99a53823597ac7d3b1b4da Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Tue, 6 Oct 2020 22:15:31 +0200
Subject: [PATCH 11/28] AllowEnhancedClassRedefinition is false (disabled) by
default
---
src/hotspot/share/runtime/globals.hpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index b8dba232fc1..d4453de1ff5 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -2682,7 +2682,7 @@ define_pd_global(uint64_t,MaxRAM, 1ULL*G);
experimental(bool, UseFastUnorderedTimeStamps, false, \
"Use platform unstable time where supported for timestamps only") \
\
- product(bool, AllowEnhancedClassRedefinition, true, \
+ product(bool, AllowEnhancedClassRedefinition, false, \
"Allow enhanced class redefinition beyond swapping method " \
"bodies") \
\
--
2.23.0

View File

@@ -1,32 +0,0 @@
From 8b1c8178e66af30012fdda3e7f1076309daaf6c4 Mon Sep 17 00:00:00 2001
From: Artem Khvastunov <artem.khvastunov@jetbrains.com>
Date: Tue, 14 Apr 2020 19:11:35 +0200
Subject: [PATCH 12/28] add jvmtiEnhancedRedefineClasses.* to CMakeLists.txt
---
jb/project/hotspot-cmake/CMakeLists.txt | 2 ++
1 file changed, 2 insertions(+)
diff --git a/jb/project/hotspot-cmake/CMakeLists.txt b/jb/project/hotspot-cmake/CMakeLists.txt
index 8b552c27206..6516e39058f 100644
--- a/jb/project/hotspot-cmake/CMakeLists.txt
+++ b/jb/project/hotspot-cmake/CMakeLists.txt
@@ -1663,6 +1663,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/prims/jvmtiGetLoadedClasses.hpp
../../../src/hotspot/share/prims/jvmtiAgentThread.hpp
../../../src/hotspot/share/prims/jvmtiCodeBlobEvents.cpp
+../../../src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
../../../src/hotspot/share/prims/stackwalk.cpp
../../../src/hotspot/share/prims/privilegedStack.hpp
../../../src/hotspot/share/prims/jvmtiUtil.hpp
@@ -1684,6 +1685,7 @@ set(SOURCE_FILES
../../../src/hotspot/share/prims/stackwalk.hpp
../../../src/hotspot/share/prims/privilegedStack.cpp
../../../src/hotspot/share/prims/jvmtiCodeBlobEvents.hpp
+../../../src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
../../../src/hotspot/share/prims/jvmtiUtil.cpp
../../../src/hotspot/share/prims/jvmtiEnvBase.cpp
../../../src/hotspot/share/prims/methodHandles.cpp
--
2.23.0

View File

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

View File

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

View File

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

View File

@@ -1,191 +0,0 @@
From 0550e70425054a77e32fb96770d416b077720857 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 23 Oct 2020 10:20:26 +0200
Subject: [PATCH 16/28] Clear dcevm code separation
---
src/hotspot/share/classfile/systemDictionary.cpp | 4 ++--
src/hotspot/share/gc/serial/genMarkSweep.cpp | 8 +++++---
src/hotspot/share/interpreter/linkResolver.cpp | 14 ++++++++++----
.../instrumentation/jfrEventClassTransformer.cpp | 2 +-
src/hotspot/share/oops/instanceKlass.cpp | 10 ++++++----
src/hotspot/share/oops/method.cpp | 2 +-
src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp | 2 +-
src/hotspot/share/runtime/reflection.cpp | 2 +-
8 files changed, 27 insertions(+), 17 deletions(-)
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index a6a03d3c0e9..9e0f4dd3c96 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1152,7 +1152,7 @@ InstanceKlass* SystemDictionary::resolve_from_stream(Symbol* class_name,
MutexLocker mu(SystemDictionary_lock, THREAD);
Klass* check = find_class(h_name, k->class_loader_data());
- assert((check == k && !k->is_redefining()) || (k->is_redefining() && check == k->old_version()), "should be present in the dictionary");
+ assert(check == k && !k->is_redefining() || k->is_redefining() && check == k->old_version(), "should be present in the dictionary");
} );
return k;
@@ -2153,7 +2153,7 @@ void SystemDictionary::check_constraints(unsigned int d_hash,
// also hold array classes.
assert(check->is_instance_klass(), "noninstance in systemdictionary");
- if ((defining == true) || ((k != check) && k->old_version() != check)) {
+ if ((defining == true) || (k != check && (!AllowEnhancedClassRedefinition || k->old_version() != check))) {
throwException = true;
ss.print("loader %s", loader_data->loader_name_and_id());
ss.print(" attempted duplicate %s definition for %s. (%s)",
diff --git a/src/hotspot/share/gc/serial/genMarkSweep.cpp b/src/hotspot/share/gc/serial/genMarkSweep.cpp
index b18682f9a12..590b5389b4d 100644
--- a/src/hotspot/share/gc/serial/genMarkSweep.cpp
+++ b/src/hotspot/share/gc/serial/genMarkSweep.cpp
@@ -343,7 +343,9 @@ void GenMarkSweep::mark_sweep_phase4() {
GenCompactClosure blk;
gch->generation_iterate(&blk, true);
- DcevmSharedGC::copy_rescued_objects_back(MarkSweep::_rescued_oops, true);
- DcevmSharedGC::clear_rescued_objects_resource(MarkSweep::_rescued_oops);
- MarkSweep::_rescued_oops = NULL;
+ if (AllowEnhancedClassRedefinition) {
+ DcevmSharedGC::copy_rescued_objects_back(MarkSweep::_rescued_oops, true);
+ DcevmSharedGC::clear_rescued_objects_resource(MarkSweep::_rescued_oops);
+ MarkSweep::_rescued_oops = NULL;
+ }
}
diff --git a/src/hotspot/share/interpreter/linkResolver.cpp b/src/hotspot/share/interpreter/linkResolver.cpp
index 9dc184d02f5..bff1c3627b0 100644
--- a/src/hotspot/share/interpreter/linkResolver.cpp
+++ b/src/hotspot/share/interpreter/linkResolver.cpp
@@ -295,8 +295,13 @@ void LinkResolver::check_klass_accessability(Klass* ref_klass, Klass* sel_klass,
return; // no relevant check to do
}
}
- Reflection::VerifyClassAccessResults vca_result =
- Reflection::verify_class_access(ref_klass->newest_version(), InstanceKlass::cast(base_klass->newest_version()), true);
+ Klass* refKlassNewest = ref_klass;
+ Klass* baseKlassNewest = base_klass;
+ if (AllowEnhancedClassRedefinition) {
+ refKlassNewest = ref_klass->newest_version();
+ baseKlassNewest = base_klass->newest_version();
+ }
+ Reflection::VerifyClassAccessResults vca_result = Reflection::verify_class_access(refKlassNewest, InstanceKlass::cast(baseKlassNewest), true);
if (vca_result != Reflection::ACCESS_OK) {
ResourceMark rm(THREAD);
char* msg = Reflection::verify_class_access_msg(ref_klass,
@@ -572,7 +577,8 @@ void LinkResolver::check_method_accessability(Klass* ref_klass,
// We'll check for the method name first, as that's most likely
// to be false (so we'll short-circuit out of these tests).
if (sel_method->name() == vmSymbols::clone_name() &&
- sel_klass->newest_version() == SystemDictionary::Object_klass()->newest_version() &&
+ ( !AllowEnhancedClassRedefinition && sel_klass == SystemDictionary::Object_klass() ||
+ AllowEnhancedClassRedefinition && sel_klass->newest_version() == SystemDictionary::Object_klass()->newest_version()) &&
resolved_klass->is_array_klass()) {
// We need to change "protected" to "public".
assert(flags.is_protected(), "clone not protected?");
@@ -997,7 +1003,7 @@ void LinkResolver::resolve_field(fieldDescriptor& fd,
ResourceMark rm(THREAD);
stringStream ss;
- if (sel_klass != current_klass && sel_klass != current_klass->active_version()) {
+ if (sel_klass != current_klass && (!AllowEnhancedClassRedefinition || sel_klass != current_klass->active_version())) {
ss.print("Update to %s final field %s.%s attempted from a different class (%s) than the field's declaring class",
is_static ? "static" : "non-static", resolved_klass->external_name(), fd.name()->as_C_string(),
current_klass->external_name());
diff --git a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
index 61a406377ee..da9df7a21a2 100644
--- a/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
+++ b/src/hotspot/share/jfr/instrumentation/jfrEventClassTransformer.cpp
@@ -1471,7 +1471,7 @@ static InstanceKlass* create_new_instance_klass(InstanceKlass* ik, ClassFileStre
NULL, // host klass
NULL, // cp_patches
ClassFileParser::INTERNAL, // internal visibility
- false,
+ false,
THREAD);
if (HAS_PENDING_EXCEPTION) {
log_pending_exception(PENDING_EXCEPTION);
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 7eb1b01c785..710e0ddc930 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -178,7 +178,9 @@ bool InstanceKlass::has_nest_member(InstanceKlass* k, TRAPS) const {
}
Klass* k2 = _constants->klass_at(cp_index, CHECK_false);
- k2 = k2->newest_version();
+ if (AllowEnhancedClassRedefinition) {
+ k2 = k2->newest_version();
+ }
if (k2 == k) {
log_trace(class, nestmates)("- class is listed as a nest member");
return true;
@@ -837,7 +839,7 @@ bool InstanceKlass::link_class_impl(bool throw_verifyerror, TRAPS) {
#endif
set_init_state(linked);
// (DCEVM) Must check for old version in order to prevent infinite loops.
- if (JvmtiExport::should_post_class_prepare() && old_version() == NULL /* JVMTI deadlock otherwise */) {
+ if (JvmtiExport::should_post_class_prepare() && (!AllowEnhancedClassRedefinition || old_version() == NULL) /* JVMTI deadlock otherwise */) {
Thread *thread = THREAD;
assert(thread->is_Java_thread(), "thread->is_Java_thread()");
JvmtiExport::post_class_prepare((JavaThread *) thread, this);
@@ -919,7 +921,7 @@ void InstanceKlass::initialize_impl(TRAPS) {
// that aren't expected to throw. This would wreak havoc. See 6320309.
// (DCEVM) Wait also for the old class version to be fully initialized.
while((is_being_initialized() && !is_reentrant_initialization(self))
- || (old_version() != NULL && InstanceKlass::cast(old_version())->is_being_initialized())) {
+ || (AllowEnhancedClassRedefinition && old_version() != NULL && InstanceKlass::cast(old_version())->is_being_initialized())) {
wait = true;
ol.waitUninterruptibly(CHECK);
}
@@ -3617,7 +3619,7 @@ void InstanceKlass::verify_on(outputStream* st) {
guarantee(sib->is_klass(), "should be klass");
// TODO: (DCEVM) explain
- guarantee(sib->super() == super || super->newest_version() == SystemDictionary::Object_klass(), "siblings should have same superklass");
+ guarantee(sib->super() == super || AllowEnhancedClassRedefinition && super->newest_version() == SystemDictionary::Object_klass(), "siblings should have same superklass");
}
// Verify implementor fields requires the Compile_lock, but this is sometimes
diff --git a/src/hotspot/share/oops/method.cpp b/src/hotspot/share/oops/method.cpp
index a9556ecf0c4..6c7edaca67e 100644
--- a/src/hotspot/share/oops/method.cpp
+++ b/src/hotspot/share/oops/method.cpp
@@ -2100,7 +2100,7 @@ void Method::ensure_jmethod_ids(ClassLoaderData* loader_data, int capacity) {
// Add a method id to the jmethod_ids
jmethodID Method::make_jmethod_id(ClassLoaderData* loader_data, Method* m) {
// FIXME: (DCEVM) ???
- if (m != m->newest_version()) {
+ if (AllowEnhancedClassRedefinition && m != m->newest_version()) {
m = m->newest_version();
}
ClassLoaderData* cld = loader_data;
diff --git a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
index 60604c645ff..325bffb7ad0 100644
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
@@ -51,7 +51,7 @@ public:
// the new version (SystemDictionary stores only new versions). But the LoadedClassesClosure's functionality was
// changed in java8 where jvmtiLoadedClasses collects all classes from all classloaders, therefore we
// must use new versions only.
- if (k->new_version()==NULL) {
+ if (AllowEnhancedClassRedefinition && k->new_version()==NULL) {
_classStack.push((jclass) _env->jni_reference(Handle(_cur_thread, k->java_mirror())));
}
}
diff --git a/src/hotspot/share/runtime/reflection.cpp b/src/hotspot/share/runtime/reflection.cpp
index ed789b0bc2b..06f60855655 100644
--- a/src/hotspot/share/runtime/reflection.cpp
+++ b/src/hotspot/share/runtime/reflection.cpp
@@ -660,7 +660,7 @@ bool Reflection::verify_member_access(const Klass* current_class,
TRAPS) {
// (DCEVM) Decide accessibility based on active version
- if (current_class != NULL) {
+ if (AllowEnhancedClassRedefinition && current_class != NULL) {
current_class = current_class->active_version();
}
--
2.23.0

View File

@@ -1,160 +0,0 @@
From fde9f15ed4fdb5139b6b81238d0a667327b552bb Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 23 Oct 2020 11:07:40 +0200
Subject: [PATCH 17/28] Fix metadataOnStack bug
---
.../share/classfile/classLoaderData.cpp | 7 +-
.../share/classfile/metadataOnStackMark.cpp | 67 ++++++++++---------
.../share/classfile/metadataOnStackMark.hpp | 3 +-
.../share/prims/jvmtiRedefineClasses.cpp | 2 +-
4 files changed, 41 insertions(+), 38 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 1bc67adf5a7..bba5ce0511f 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -1398,13 +1398,10 @@ bool ClassLoaderDataGraph::do_unloading(bool clean_previous_versions) {
// Klassesoto delete.
// FIXME: dcevm - block asserts in MetadataOnStackMark
- bool walk_all_metadata = false;
- if (!AllowEnhancedClassRedefinition) {
- walk_all_metadata = clean_previous_versions &&
+ bool walk_all_metadata = clean_previous_versions &&
JvmtiExport::has_redefined_a_class() &&
InstanceKlass::has_previous_versions_and_reset();
- MetadataOnStackMark md_on_stack(walk_all_metadata);
- }
+ MetadataOnStackMark md_on_stack(walk_all_metadata, AllowEnhancedClassRedefinition);
// Save previous _unloading pointer for CMS which may add to unloading list before
// purging and we don't want to rewalk the previously unloaded class loader data.
diff --git a/src/hotspot/share/classfile/metadataOnStackMark.cpp b/src/hotspot/share/classfile/metadataOnStackMark.cpp
index 3a62c789702..9d7bdbde74b 100644
--- a/src/hotspot/share/classfile/metadataOnStackMark.cpp
+++ b/src/hotspot/share/classfile/metadataOnStackMark.cpp
@@ -46,23 +46,25 @@ NOT_PRODUCT(bool MetadataOnStackMark::_is_active = false;)
// it. Class unloading only deletes in-error class files, methods created by
// the relocator and dummy constant pools. None of these appear anywhere except
// in metadata Handles.
-MetadataOnStackMark::MetadataOnStackMark(bool redefinition_walk) {
+MetadataOnStackMark::MetadataOnStackMark(bool redefinition_walk, bool ignore) : _ignore(ignore) {
assert(SafepointSynchronize::is_at_safepoint(), "sanity check");
assert(_used_buffers == NULL, "sanity check");
assert(!_is_active, "MetadataOnStackMarks do not nest");
NOT_PRODUCT(_is_active = true;)
- Threads::metadata_handles_do(Metadata::mark_on_stack);
+ if (!ignore) {
+ Threads::metadata_handles_do(Metadata::mark_on_stack);
- if (redefinition_walk) {
- Threads::metadata_do(Metadata::mark_on_stack);
- CodeCache::metadata_do(Metadata::mark_on_stack);
- CompileBroker::mark_on_stack();
- JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack);
- ThreadService::metadata_do(Metadata::mark_on_stack);
+ if (redefinition_walk) {
+ Threads::metadata_do(Metadata::mark_on_stack);
+ CodeCache::metadata_do(Metadata::mark_on_stack);
+ CompileBroker::mark_on_stack();
+ JvmtiCurrentBreakpoints::metadata_do(Metadata::mark_on_stack);
+ ThreadService::metadata_do(Metadata::mark_on_stack);
#if INCLUDE_JVMCI
- JVMCIRuntime::metadata_do(Metadata::mark_on_stack);
+ JVMCIRuntime::metadata_do(Metadata::mark_on_stack);
#endif
+ }
}
}
@@ -71,32 +73,35 @@ MetadataOnStackMark::~MetadataOnStackMark() {
// Unmark everything that was marked. Can't do the same walk because
// redefine classes messes up the code cache so the set of methods
// might not be the same.
- retire_current_buffer();
-
- MetadataOnStackBuffer* buffer = _used_buffers;
- while (buffer != NULL) {
- // Clear on stack state for all metadata.
- size_t size = buffer->size();
- for (size_t i = 0; i < size; i++) {
- Metadata* md = buffer->at(i);
- md->set_on_stack(false);
+ if (!_ignore)
+ {
+ retire_current_buffer();
+
+ MetadataOnStackBuffer* buffer = _used_buffers;
+ while (buffer != NULL) {
+ // Clear on stack state for all metadata.
+ size_t size = buffer->size();
+ for (size_t i = 0; i < size; i++) {
+ Metadata* md = buffer->at(i);
+ md->set_on_stack(false);
+ }
+
+ MetadataOnStackBuffer* next = buffer->next_used();
+
+ // Move the buffer to the free list.
+ buffer->clear();
+ buffer->set_next_used(NULL);
+ buffer->set_next_free(_free_buffers);
+ _free_buffers = buffer;
+
+ // Step to next used buffer.
+ buffer = next;
}
- MetadataOnStackBuffer* next = buffer->next_used();
-
- // Move the buffer to the free list.
- buffer->clear();
- buffer->set_next_used(NULL);
- buffer->set_next_free(_free_buffers);
- _free_buffers = buffer;
+ _used_buffers = NULL;
- // Step to next used buffer.
- buffer = next;
+ NOT_PRODUCT(_is_active = false;)
}
-
- _used_buffers = NULL;
-
- NOT_PRODUCT(_is_active = false;)
}
void MetadataOnStackMark::retire_buffer(MetadataOnStackBuffer* buffer) {
diff --git a/src/hotspot/share/classfile/metadataOnStackMark.hpp b/src/hotspot/share/classfile/metadataOnStackMark.hpp
index 8da4ac6f92b..6d327ab98f2 100644
--- a/src/hotspot/share/classfile/metadataOnStackMark.hpp
+++ b/src/hotspot/share/classfile/metadataOnStackMark.hpp
@@ -47,8 +47,9 @@ class MetadataOnStackMark : public StackObj {
static MetadataOnStackBuffer* allocate_buffer();
static void retire_buffer(MetadataOnStackBuffer* buffer);
+ bool _ignore;
public:
- MetadataOnStackMark(bool redefinition_walk);
+ MetadataOnStackMark(bool redefinition_walk, bool ignore);
~MetadataOnStackMark();
static void record(Metadata* m);
diff --git a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
index fb81189d9c2..18bc7f4eea4 100644
--- a/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiRedefineClasses.cpp
@@ -199,7 +199,7 @@ void VM_RedefineClasses::doit() {
// Mark methods seen on stack and everywhere else so old methods are not
// cleaned up if they're on the stack.
- MetadataOnStackMark md_on_stack(true);
+ MetadataOnStackMark md_on_stack(true, false);
HandleMark hm(thread); // make sure any handles created are deleted
// before the stack walk again.
--
2.23.0

View File

@@ -1,25 +0,0 @@
From 5b5f620932894e807956b45653d153d001be9fb1 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sun, 1 Nov 2020 21:19:00 +0100
Subject: [PATCH 18/28] Ignore MetadataOnStackMark if redefining_gc_run
---
src/hotspot/share/classfile/classLoaderData.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index bba5ce0511f..8b2deb70e1b 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -1401,7 +1401,7 @@ bool ClassLoaderDataGraph::do_unloading(bool clean_previous_versions) {
bool walk_all_metadata = clean_previous_versions &&
JvmtiExport::has_redefined_a_class() &&
InstanceKlass::has_previous_versions_and_reset();
- MetadataOnStackMark md_on_stack(walk_all_metadata, AllowEnhancedClassRedefinition);
+ MetadataOnStackMark md_on_stack(walk_all_metadata, Universe::is_redefining_gc_run());
// Save previous _unloading pointer for CMS which may add to unloading list before
// purging and we don't want to rewalk the previously unloaded class loader data.
--
2.23.0

View File

@@ -1,26 +0,0 @@
From 29ac3233d58d9a1a30160ae13a895ff70e504022 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Wed, 11 Nov 2020 18:45:15 +0100
Subject: [PATCH 19/28] Fix LoadedClassesClosure - fixes problems with remote
debugging
---
src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
index 325bffb7ad0..30752e37f1c 100644
--- a/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiGetLoadedClasses.cpp
@@ -51,7 +51,7 @@ public:
// the new version (SystemDictionary stores only new versions). But the LoadedClassesClosure's functionality was
// changed in java8 where jvmtiLoadedClasses collects all classes from all classloaders, therefore we
// must use new versions only.
- if (AllowEnhancedClassRedefinition && k->new_version()==NULL) {
+ if (!AllowEnhancedClassRedefinition || k->new_version()==NULL) {
_classStack.push((jclass) _env->jni_reference(Handle(_cur_thread, k->java_mirror())));
}
}
--
2.23.0

View File

@@ -1,31 +0,0 @@
From 99e8f8d420dd09d6fb7f035d4baf7ef4816177e8 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 5 Feb 2021 23:30:49 +0100
Subject: [PATCH 20/28] Disable AllowEnhancedClassRedefinition in flight
recorder
---
src/hotspot/share/runtime/arguments.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index 5053ad7ee61..c5635bb8537 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -3962,6 +3962,13 @@ jint Arguments::parse(const JavaVMInitArgs* initial_cmd_args) {
// Set object alignment values.
set_object_alignment();
+ if (FlightRecorder) {
+ if (AllowEnhancedClassRedefinition) {
+ warning("EnhancedClassRedefinition was disabled, it is not allowed in FlightRecorder.");
+ AllowEnhancedClassRedefinition = false;
+ }
+ }
+
setup_hotswap_agent();
#if !INCLUDE_CDS
--
2.23.0

View File

@@ -1,41 +0,0 @@
From 1bb55ff9f91733e45dd6f87eb4201a989b3338e3 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Fri, 12 Feb 2021 12:33:11 +0100
Subject: [PATCH 21/28] JBR-3106 Check InstanceKlass::has_nestmate_access_to
with active classes
Dcevm can leave old host in nested class if nested class is not
redefined together with host class
---
src/hotspot/share/oops/instanceKlass.cpp | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/hotspot/share/oops/instanceKlass.cpp b/src/hotspot/share/oops/instanceKlass.cpp
index 710e0ddc930..24eb3ed68a6 100644
--- a/src/hotspot/share/oops/instanceKlass.cpp
+++ b/src/hotspot/share/oops/instanceKlass.cpp
@@ -327,11 +327,21 @@ bool InstanceKlass::has_nestmate_access_to(InstanceKlass* k, TRAPS) {
return false;
}
+ // (DCEVM) cur_host can be old, decide accessibility based on active version
+ if (AllowEnhancedClassRedefinition) {
+ cur_host = InstanceKlass::cast(cur_host->active_version());
+ }
+
Klass* k_nest_host = k->nest_host(icce, CHECK_false);
if (k_nest_host == NULL) {
return false;
}
+ // (DCEVM) k_nest_host can be old, decide accessibility based on active version
+ if (AllowEnhancedClassRedefinition) {
+ k_nest_host = InstanceKlass::cast(k_nest_host->active_version());
+ }
+
bool access = (cur_host == k_nest_host);
if (log_is_enabled(Trace, class, nestmates)) {
--
2.23.0

View File

@@ -1,31 +0,0 @@
From 52427060aba227d09dce4bd14410e1e626d64e46 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sun, 7 Feb 2021 12:08:58 +0100
Subject: [PATCH 22/28] JBR-3110 Fix assert in MetadataOnStackMark
Fixed fastdebug tests crashes in redefine gc run
---
src/hotspot/share/classfile/metadataOnStackMark.cpp | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/classfile/metadataOnStackMark.cpp b/src/hotspot/share/classfile/metadataOnStackMark.cpp
index 9d7bdbde74b..66049f11629 100644
--- a/src/hotspot/share/classfile/metadataOnStackMark.cpp
+++ b/src/hotspot/share/classfile/metadataOnStackMark.cpp
@@ -49,10 +49,11 @@ NOT_PRODUCT(bool MetadataOnStackMark::_is_active = false;)
MetadataOnStackMark::MetadataOnStackMark(bool redefinition_walk, bool ignore) : _ignore(ignore) {
assert(SafepointSynchronize::is_at_safepoint(), "sanity check");
assert(_used_buffers == NULL, "sanity check");
- assert(!_is_active, "MetadataOnStackMarks do not nest");
- NOT_PRODUCT(_is_active = true;)
if (!ignore) {
+ assert(!_is_active, "MetadataOnStackMarks do not nest");
+ NOT_PRODUCT(_is_active = true;)
+
Threads::metadata_handles_do(Metadata::mark_on_stack);
if (redefinition_walk) {
--
2.23.0

View File

@@ -1,78 +0,0 @@
From 93cea8d61ef395a1ef9e308b0d3a8f9409b108d0 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 12 Feb 2021 11:27:39 +0100
Subject: [PATCH 23/28] Code cleanup
- Rename confusing method name old_if_redefined to old_if_redefining
- Remove unused is_redefining_gc_run
---
src/hotspot/share/classfile/dictionary.cpp | 6 +++---
src/hotspot/share/classfile/dictionary.hpp | 2 +-
src/hotspot/share/memory/universe.hpp | 5 -----
3 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/src/hotspot/share/classfile/dictionary.cpp b/src/hotspot/share/classfile/dictionary.cpp
index dda5188c370..4e361d439f4 100644
--- a/src/hotspot/share/classfile/dictionary.cpp
+++ b/src/hotspot/share/classfile/dictionary.cpp
@@ -381,7 +381,7 @@ InstanceKlass* Dictionary::find(unsigned int hash, Symbol* name,
int index = hash_to_index(hash);
DictionaryEntry* entry = get_entry(index, hash, name);
if (entry != NULL && entry->is_valid_protection_domain(protection_domain)) {
- return old_if_redefined(entry->instance_klass());
+ return old_if_redefining(entry->instance_klass());
} else {
return NULL;
}
@@ -394,7 +394,7 @@ InstanceKlass* Dictionary::find_class(int index, unsigned int hash,
assert (index == index_for(name), "incorrect index?");
DictionaryEntry* entry = get_entry(index, hash, name);
- return old_if_redefined((entry != NULL) ? entry->instance_klass() : NULL);
+ return old_if_redefining((entry != NULL) ? entry->instance_klass() : NULL);
}
@@ -406,7 +406,7 @@ InstanceKlass* Dictionary::find_shared_class(int index, unsigned int hash,
assert (index == index_for(name), "incorrect index?");
DictionaryEntry* entry = get_entry(index, hash, name);
- return old_if_redefined((entry != NULL) ? entry->instance_klass() : NULL);
+ return old_if_redefining((entry != NULL) ? entry->instance_klass() : NULL);
}
diff --git a/src/hotspot/share/classfile/dictionary.hpp b/src/hotspot/share/classfile/dictionary.hpp
index 5eaa741d500..f6e08e7bfd5 100644
--- a/src/hotspot/share/classfile/dictionary.hpp
+++ b/src/hotspot/share/classfile/dictionary.hpp
@@ -120,7 +120,7 @@ public:
void rollback_redefinition();
// (DCEVM) return old class if redefining in AllowEnhancedClassRedefinition, otherwise return "k"
- static InstanceKlass* old_if_redefined(InstanceKlass* k) {
+ static InstanceKlass* old_if_redefining(InstanceKlass* k) {
return (k != NULL && k->is_redefining()) ? ((InstanceKlass* )k->old_version()) : k;
}
};
diff --git a/src/hotspot/share/memory/universe.hpp b/src/hotspot/share/memory/universe.hpp
index b32db16b9cf..742dada0e8f 100644
--- a/src/hotspot/share/memory/universe.hpp
+++ b/src/hotspot/share/memory/universe.hpp
@@ -52,13 +52,8 @@ class LatestMethodCache : public CHeapObj<mtClass> {
Klass* _klass;
int _method_idnum;
- static bool _is_redefining_gc_run;
-
public:
- static bool is_redefining_gc_run() { return _is_redefining_gc_run; }
- static void set_redefining_gc_run(bool b) { _is_redefining_gc_run = b; }
-
LatestMethodCache() { _klass = NULL; _method_idnum = -1; }
~LatestMethodCache() { _klass = NULL; _method_idnum = -1; }
--
2.23.0

View File

@@ -1,95 +0,0 @@
From dcb44f0e56dbc63b90d655b694a3f7751744fe53 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 13 Feb 2021 20:47:52 +0100
Subject: [PATCH 24/28] JBR-3111 Update class in all dictionaries where it was
already defined
This patch keeps compatibility with std redefinition, that does not
create a new Klass, but modifies it, then it is modified in all
dictionaries containing this class.
---
src/hotspot/share/classfile/classLoaderData.cpp | 9 +++++++++
src/hotspot/share/classfile/classLoaderData.hpp | 3 +++
src/hotspot/share/classfile/dictionary.cpp | 2 +-
src/hotspot/share/classfile/dictionary.hpp | 2 +-
src/hotspot/share/classfile/systemDictionary.cpp | 4 +++-
5 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 8b2deb70e1b..4e06b09e7d5 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -1274,6 +1274,15 @@ void ClassLoaderDataGraph::rollback_redefinition() {
}
}
+// (DCEVM) - iterate over all classes in all dictionaries
+bool ClassLoaderDataGraph::dictionary_classes_do_update_klass(Symbol* name, InstanceKlass* k, InstanceKlass* old_klass) {
+ bool ok = false;
+ FOR_ALL_DICTIONARY(cld) {
+ ok = cld->dictionary()->update_klass(name, k, old_klass) || ok;
+ }
+ return ok;
+}
+
// Walks all entries in the dictionary including entries initiated by this class loader.
void ClassLoaderDataGraph::dictionary_all_entries_do(void f(InstanceKlass*, ClassLoaderData*)) {
Thread* thread = Thread::current();
diff --git a/src/hotspot/share/classfile/classLoaderData.hpp b/src/hotspot/share/classfile/classLoaderData.hpp
index 00a84610b43..16711dca237 100644
--- a/src/hotspot/share/classfile/classLoaderData.hpp
+++ b/src/hotspot/share/classfile/classLoaderData.hpp
@@ -130,6 +130,9 @@ class ClassLoaderDataGraph : public AllStatic {
// Enhanced class redefinition
static void rollback_redefinition();
+ // Enhanced class redefinition
+ static bool dictionary_classes_do_update_klass(Symbol* name, InstanceKlass* k, InstanceKlass* old_klass);
+
// Iterate all classes and their class loaders, including initiating class loaders.
static void dictionary_all_entries_do(void f(InstanceKlass*, ClassLoaderData*));
diff --git a/src/hotspot/share/classfile/dictionary.cpp b/src/hotspot/share/classfile/dictionary.cpp
index 4e361d439f4..6c072407fd9 100644
--- a/src/hotspot/share/classfile/dictionary.cpp
+++ b/src/hotspot/share/classfile/dictionary.cpp
@@ -345,7 +345,7 @@ DictionaryEntry* Dictionary::get_entry(int index, unsigned int hash,
}
// (DCEVM) replace old_class by new class in dictionary
-bool Dictionary::update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass) {
+bool Dictionary::update_klass(Symbol* name, InstanceKlass* k, InstanceKlass* old_klass) {
// There are several entries for the same class in the dictionary: One extra entry for each parent classloader of the classloader of the class.
bool found = false;
for (int index = 0; index < table_size(); index++) {
diff --git a/src/hotspot/share/classfile/dictionary.hpp b/src/hotspot/share/classfile/dictionary.hpp
index f6e08e7bfd5..2932cc9c320 100644
--- a/src/hotspot/share/classfile/dictionary.hpp
+++ b/src/hotspot/share/classfile/dictionary.hpp
@@ -115,7 +115,7 @@ public:
void free_entry(DictionaryEntry* entry);
// Enhanced class redefinition
- bool update_klass(unsigned int hash, Symbol* name, ClassLoaderData* loader_data, InstanceKlass* k, InstanceKlass* old_klass);
+ bool update_klass(Symbol* name, InstanceKlass* k, InstanceKlass* old_klass);
void rollback_redefinition();
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 9e0f4dd3c96..789b5fb1e6d 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1606,7 +1606,9 @@ void SystemDictionary::define_instance_class(InstanceKlass* k, InstanceKlass* ol
Dictionary* dictionary = loader_data->dictionary();
unsigned int d_hash = dictionary->compute_hash(name_h);
if (is_redefining) {
- bool ok = dictionary->update_klass(d_hash, name_h, loader_data, k, old_klass);
+ // Update all dictionaries containing old_class to new_class
+ // outcome must be same as result of standard redefinition, that does not create a new Klass
+ bool ok = ClassLoaderDataGraph::dictionary_classes_do_update_klass(name_h, k, old_klass);
assert (ok, "must have found old class and updated!");
}
check_constraints(d_hash, k, class_loader_h, !is_redefining, CHECK);
--
2.23.0

View File

@@ -1,527 +0,0 @@
From b9692c48bdbad8474251cfe72ac85e5c7ff2847e Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Thu, 18 Jun 2020 18:40:11 +0200
Subject: [PATCH 25/28] JBR-3140 - support for modularized HotswapAgent
Add -XX:HotswapAgent=[disabled,fatjar.core]
---
make/launcher/Launcher-java.base.gmk | 1 -
make/launcher/Launcher-java.rmi.gmk | 2 -
make/launcher/Launcher-java.scripting.gmk | 3 +-
make/launcher/Launcher-java.security.jgss.gmk | 3 --
make/launcher/Launcher-jdk.aot.gmk | 2 -
make/launcher/Launcher-jdk.compiler.gmk | 5 +-
make/launcher/Launcher-jdk.hotspot.agent.gmk | 1 -
make/launcher/Launcher-jdk.jartool.gmk | 2 -
make/launcher/Launcher-jdk.javadoc.gmk | 3 +-
make/launcher/Launcher-jdk.jcmd.gmk | 13 +----
make/launcher/Launcher-jdk.jdeps.gmk | 3 --
make/launcher/Launcher-jdk.jdi.gmk | 1 -
make/launcher/Launcher-jdk.jlink.gmk | 5 +-
make/launcher/Launcher-jdk.jshell.gmk | 1 -
make/launcher/Launcher-jdk.jstatd.gmk | 1 -
make/launcher/Launcher-jdk.pack.gmk | 1 -
make/launcher/Launcher-jdk.rmic.gmk | 1 -
.../Launcher-jdk.scripting.nashorn.shell.gmk | 3 +-
src/hotspot/share/runtime/arguments.cpp | 48 +++++++++++--------
.../runtime/flags/jvmFlagConstraintList.cpp | 23 +++++++++
.../runtime/flags/jvmFlagConstraintList.hpp | 1 +
.../flags/jvmFlagConstraintsRuntime.cpp | 10 ++++
.../flags/jvmFlagConstraintsRuntime.hpp | 1 +
src/hotspot/share/runtime/globals.hpp | 12 ++++-
24 files changed, 81 insertions(+), 65 deletions(-)
diff --git a/make/launcher/Launcher-java.base.gmk b/make/launcher/Launcher-java.base.gmk
index 38ba29530d8..f6d4aa28fe6 100644
--- a/make/launcher/Launcher-java.base.gmk
+++ b/make/launcher/Launcher-java.base.gmk
@@ -52,7 +52,6 @@ endif
$(eval $(call SetupBuildLauncher, keytool, \
MAIN_CLASS := sun.security.tools.keytool.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
################################################################################
diff --git a/make/launcher/Launcher-java.rmi.gmk b/make/launcher/Launcher-java.rmi.gmk
index 07046232275..a69a90bcc81 100644
--- a/make/launcher/Launcher-java.rmi.gmk
+++ b/make/launcher/Launcher-java.rmi.gmk
@@ -27,10 +27,8 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, rmid, \
MAIN_CLASS := sun.rmi.server.Activation, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, rmiregistry, \
MAIN_CLASS := sun.rmi.registry.RegistryImpl, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-java.scripting.gmk b/make/launcher/Launcher-java.scripting.gmk
index cf100e20789..057d2bf3aca 100644
--- a/make/launcher/Launcher-java.scripting.gmk
+++ b/make/launcher/Launcher-java.scripting.gmk
@@ -27,6 +27,5 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jrunscript, \
MAIN_CLASS := com.sun.tools.script.shell.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT \
- -XX:+DisableHotswapAgent, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT, \
))
diff --git a/make/launcher/Launcher-java.security.jgss.gmk b/make/launcher/Launcher-java.security.jgss.gmk
index 2b856bfccb4..7411e1a21c4 100644
--- a/make/launcher/Launcher-java.security.jgss.gmk
+++ b/make/launcher/Launcher-java.security.jgss.gmk
@@ -28,16 +28,13 @@ include LauncherCommon.gmk
ifeq ($(OPENJDK_TARGET_OS), windows)
$(eval $(call SetupBuildLauncher, kinit, \
MAIN_CLASS := sun.security.krb5.internal.tools.Kinit, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, klist, \
MAIN_CLASS := sun.security.krb5.internal.tools.Klist, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, ktab, \
MAIN_CLASS := sun.security.krb5.internal.tools.Ktab, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
endif
diff --git a/make/launcher/Launcher-jdk.aot.gmk b/make/launcher/Launcher-jdk.aot.gmk
index 2c52c31a555..10717a5e1c5 100644
--- a/make/launcher/Launcher-jdk.aot.gmk
+++ b/make/launcher/Launcher-jdk.aot.gmk
@@ -31,7 +31,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jaotc, \
MAIN_CLASS := jdk.tools.jaotc.Main, \
EXTRA_JAVA_ARGS := -XX:+UnlockExperimentalVMOptions -XX:+EnableJVMCI \
- -XX:+DisableHotswapAgent \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.amd64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.code=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
@@ -41,7 +40,6 @@ $(eval $(call SetupBuildLauncher, jaotc, \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
, \
JAVA_ARGS := --add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
- -XX:+DisableHotswapAgent \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.amd64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.aarch64=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
--add-exports=jdk.internal.vm.ci/jdk.vm.ci.hotspot.sparc=$(call CommaList, jdk.internal.vm.compiler jdk.aot) \
diff --git a/make/launcher/Launcher-jdk.compiler.gmk b/make/launcher/Launcher-jdk.compiler.gmk
index 744969546de..f71c37adf74 100644
--- a/make/launcher/Launcher-jdk.compiler.gmk
+++ b/make/launcher/Launcher-jdk.compiler.gmk
@@ -27,14 +27,12 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javac, \
MAIN_CLASS := com.sun.tools.javac.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT \
- -XX:+DisableHotswapAgent, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, serialver, \
MAIN_CLASS := sun.tools.serialver.SerialVer, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
@@ -43,7 +41,6 @@ ifeq ($(ENABLE_SJAVAC), yes)
# into any real images
$(eval $(call SetupBuildLauncher, sjavac, \
MAIN_CLASS := com.sun.tools.sjavac.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
OUTPUT_DIR := $(JDK_OUTPUTDIR)/bin, \
))
diff --git a/make/launcher/Launcher-jdk.hotspot.agent.gmk b/make/launcher/Launcher-jdk.hotspot.agent.gmk
index 9f12b05b172..76da3600368 100644
--- a/make/launcher/Launcher-jdk.hotspot.agent.gmk
+++ b/make/launcher/Launcher-jdk.hotspot.agent.gmk
@@ -27,6 +27,5 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jhsdb, \
MAIN_CLASS := sun.jvm.hotspot.SALauncher, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
diff --git a/make/launcher/Launcher-jdk.jartool.gmk b/make/launcher/Launcher-jdk.jartool.gmk
index 647d82b65b1..f74e82bfdae 100644
--- a/make/launcher/Launcher-jdk.jartool.gmk
+++ b/make/launcher/Launcher-jdk.jartool.gmk
@@ -27,10 +27,8 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jar, \
MAIN_CLASS := sun.tools.jar.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jarsigner, \
MAIN_CLASS := sun.security.tools.jarsigner.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-jdk.javadoc.gmk b/make/launcher/Launcher-jdk.javadoc.gmk
index c3d2093be04..889028a2b17 100644
--- a/make/launcher/Launcher-jdk.javadoc.gmk
+++ b/make/launcher/Launcher-jdk.javadoc.gmk
@@ -27,7 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javadoc, \
MAIN_CLASS := jdk.javadoc.internal.tool.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT \
- -XX:+DisableHotswapAgent, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jcmd.gmk b/make/launcher/Launcher-jdk.jcmd.gmk
index 761a52d8466..7117fa78059 100644
--- a/make/launcher/Launcher-jdk.jcmd.gmk
+++ b/make/launcher/Launcher-jdk.jcmd.gmk
@@ -30,7 +30,6 @@ $(eval $(call SetupBuildLauncher, jinfo, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
-Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
- -XX:+DisableHotswapAgent, \
MACOSX_PRIVILEGED := true, \
))
@@ -38,36 +37,28 @@ $(eval $(call SetupBuildLauncher, jmap, \
MAIN_CLASS := sun.tools.jmap.JMap, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
- -Dsun.jvm.hotspot.debugger.useWindbgDebugger \
- -XX:+DisableHotswapAgent, \
+ -Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
MACOSX_PRIVILEGED := true, \
))
$(eval $(call SetupBuildLauncher, jps, \
MAIN_CLASS := sun.tools.jps.Jps, \
- JAVA_ARGS := \
- -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jstack, \
MAIN_CLASS := sun.tools.jstack.JStack, \
JAVA_ARGS := \
-Dsun.jvm.hotspot.debugger.useProcDebugger \
- -Dsun.jvm.hotspot.debugger.useWindbgDebugger \
- -XX:+DisableHotswapAgent, \
+ -Dsun.jvm.hotspot.debugger.useWindbgDebugger, \
MACOSX_PRIVILEGED := true, \
))
$(eval $(call SetupBuildLauncher, jstat, \
MAIN_CLASS := sun.tools.jstat.Jstat, \
- JAVA_ARGS := \
- -XX:+DisableHotswapAgent, \
))
$(eval $(call SetupBuildLauncher, jcmd, \
MAIN_CLASS := sun.tools.jcmd.JCmd, \
- JAVA_ARGS := \
- -XX:+DisableHotswapAgent, \
))
# Hook to include the corresponding custom file, if present.
diff --git a/make/launcher/Launcher-jdk.jdeps.gmk b/make/launcher/Launcher-jdk.jdeps.gmk
index 5448278dae7..217523c48cc 100644
--- a/make/launcher/Launcher-jdk.jdeps.gmk
+++ b/make/launcher/Launcher-jdk.jdeps.gmk
@@ -27,18 +27,15 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, javap, \
MAIN_CLASS := com.sun.tools.javap.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jdeps, \
MAIN_CLASS := com.sun.tools.jdeps.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jdeprscan, \
MAIN_CLASS := com.sun.tools.jdeprscan.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jdi.gmk b/make/launcher/Launcher-jdk.jdi.gmk
index 27bd448e3ae..fcce98cf430 100644
--- a/make/launcher/Launcher-jdk.jdi.gmk
+++ b/make/launcher/Launcher-jdk.jdi.gmk
@@ -27,5 +27,4 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jdb, \
MAIN_CLASS := com.sun.tools.example.debug.tty.TTY, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
diff --git a/make/launcher/Launcher-jdk.jlink.gmk b/make/launcher/Launcher-jdk.jlink.gmk
index 9e61edeb2c8..df2173996d7 100644
--- a/make/launcher/Launcher-jdk.jlink.gmk
+++ b/make/launcher/Launcher-jdk.jlink.gmk
@@ -27,21 +27,18 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jimage,\
MAIN_CLASS := jdk.tools.jimage.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES, \
))
$(eval $(call SetupBuildLauncher, jlink,\
MAIN_CLASS := jdk.tools.jlink.internal.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT \
- -XX:+DisableHotswapAgent, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT, \
CFLAGS := -DENABLE_ARG_FILES \
-DEXPAND_CLASSPATH_WILDCARDS, \
))
$(eval $(call SetupBuildLauncher, jmod,\
MAIN_CLASS := jdk.tools.jmod.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DENABLE_ARG_FILES \
-DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jshell.gmk b/make/launcher/Launcher-jdk.jshell.gmk
index 7287f8f998a..349eb88e9eb 100644
--- a/make/launcher/Launcher-jdk.jshell.gmk
+++ b/make/launcher/Launcher-jdk.jshell.gmk
@@ -27,6 +27,5 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jshell, \
MAIN_CLASS := jdk.internal.jshell.tool.JShellToolProvider, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.jstatd.gmk b/make/launcher/Launcher-jdk.jstatd.gmk
index e1657910c67..e9286d63094 100644
--- a/make/launcher/Launcher-jdk.jstatd.gmk
+++ b/make/launcher/Launcher-jdk.jstatd.gmk
@@ -27,7 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jstatd, \
MAIN_CLASS := sun.tools.jstatd.Jstatd, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
# Hook to include the corresponding custom file, if present.
diff --git a/make/launcher/Launcher-jdk.pack.gmk b/make/launcher/Launcher-jdk.pack.gmk
index 64bbbb7c949..a93fd2a9017 100644
--- a/make/launcher/Launcher-jdk.pack.gmk
+++ b/make/launcher/Launcher-jdk.pack.gmk
@@ -28,7 +28,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, pack200, \
MAIN_MODULE := java.base, \
MAIN_CLASS := com.sun.java.util.jar.pack.Driver, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
))
################################################################################
diff --git a/make/launcher/Launcher-jdk.rmic.gmk b/make/launcher/Launcher-jdk.rmic.gmk
index b8a55900b0e..d60c3d9b60b 100644
--- a/make/launcher/Launcher-jdk.rmic.gmk
+++ b/make/launcher/Launcher-jdk.rmic.gmk
@@ -27,6 +27,5 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, rmic, \
MAIN_CLASS := sun.rmi.rmic.Main, \
- JAVA_ARGS := -XX:+DisableHotswapAgent, \
CFLAGS := -DEXPAND_CLASSPATH_WILDCARDS, \
))
diff --git a/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk b/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
index bd39f8595b2..82311e69fd6 100644
--- a/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
+++ b/make/launcher/Launcher-jdk.scripting.nashorn.shell.gmk
@@ -27,7 +27,6 @@ include LauncherCommon.gmk
$(eval $(call SetupBuildLauncher, jjs, \
MAIN_CLASS := jdk.nashorn.tools.jjs.Main, \
- JAVA_ARGS := --add-modules ALL-DEFAULT \
- -XX:+DisableHotswapAgent, \
+ JAVA_ARGS := --add-modules ALL-DEFAULT, \
CFLAGS := -DENABLE_ARG_FILES, \
))
diff --git a/src/hotspot/share/runtime/arguments.cpp b/src/hotspot/share/runtime/arguments.cpp
index c5635bb8537..d7fee6a8c95 100644
--- a/src/hotspot/share/runtime/arguments.cpp
+++ b/src/hotspot/share/runtime/arguments.cpp
@@ -4310,11 +4310,17 @@ void Arguments::setup_hotswap_agent() {
if (DumpSharedSpaces)
return;
- if (!AllowEnhancedClassRedefinition)
+ if (HotswapAgent == NULL || strcmp(HotswapAgent, "disabled") == 0)
return;
+ // Force AllowEnhancedClassRedefinition if HA is enabled
+ AllowEnhancedClassRedefinition = true;
+
+ bool ha_fatjar = strcmp(HotswapAgent, "fatjar") == 0;
+ bool ha_core = strcmp(HotswapAgent, "core") == 0;
+
// Set HotswapAgent
- if (!DisableHotswapAgent) {
+ if (ha_fatjar || ha_core) {
char ext_path_str[JVM_MAXPATHLEN];
@@ -4333,23 +4339,27 @@ void Arguments::setup_hotswap_agent() {
}
}
if (ext_path_length < JVM_MAXPATHLEN - 10) {
- jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length,
- "%shotswap%shotswap-agent.jar", os::file_separator(), os::file_separator());
- }
-
- int fd = ::open(ext_path_str, O_RDONLY);
- if (fd >= 0) {
- os::close(fd);
- size_t length = strlen(ext_path_str) + 1;
- char *options = NEW_C_HEAP_ARRAY(char, length, mtArguments);
- jio_snprintf(options, length, "%s", ext_path_str);
- add_init_agent("instrument", ext_path_str, false);
- jio_fprintf(defaultStream::output_stream(), "Starting HotswapAgent '%s'\n", ext_path_str);
- }
-// else
-// {
-// jio_fprintf(defaultStream::error_stream(), "HotswapAgent not found on path:'%s'\n", ext_path_str);
-// }
+ if (ha_fatjar) {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length,
+ "%shotswap%shotswap-agent.jar", os::file_separator(), os::file_separator());
+ } else {
+ jio_snprintf(ext_path_str + ext_path_length, sizeof(ext_path_str) - ext_path_length,
+ "%shotswap%shotswap-agent-core.jar", os::file_separator(), os::file_separator());
+ }
+ int fd = ::open(ext_path_str, O_RDONLY);
+ if (fd >= 0) {
+ os::close(fd);
+ size_t length = strlen(ext_path_str) + 1;
+ char *options = NEW_C_HEAP_ARRAY(char, length, mtArguments);
+ jio_snprintf(options, length, "%s", ext_path_str);
+ add_init_agent("instrument", ext_path_str, false);
+ jio_fprintf(defaultStream::output_stream(), "Starting HotswapAgent '%s'\n", ext_path_str);
+ }
+ else
+ {
+ jio_fprintf(defaultStream::error_stream(), "HotswapAgent not found on path:'%s'!\n", ext_path_str);
+ }
+ }
}
// TODO: open it only for org.hotswap.agent module
diff --git a/src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp b/src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp
index 16d8030fd1c..94044c4831c 100644
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintList.cpp
@@ -199,6 +199,26 @@ public:
}
};
+class JVMFlagConstraint_ccstr : public JVMFlagConstraint {
+ JVMFlagConstraintFunc_ccstr _constraint;
+ const ccstr* _ptr;
+
+public:
+ // the "name" argument must be a string literal
+ JVMFlagConstraint_ccstr(const char* name, const ccstr* ptr,
+ JVMFlagConstraintFunc_ccstr func,
+ ConstraintType type) : JVMFlagConstraint(name, type), _constraint(func), _ptr(ptr) {}
+
+ JVMFlag::Error apply(bool verbose) {
+ ccstr value = *_ptr;
+ return _constraint(value, verbose);
+ }
+
+ JVMFlag::Error apply_ccstr(ccstr value, bool verbose) {
+ return _constraint(value, verbose);
+ }
+};
+
// No constraint emitting
void emit_constraint_no(...) { /* NOP */ }
@@ -239,6 +259,9 @@ void emit_constraint_size_t(const char* name, const size_t* ptr, JVMFlagConstrai
void emit_constraint_double(const char* name, const double* ptr, JVMFlagConstraintFunc_double func, JVMFlagConstraint::ConstraintType type) {
JVMFlagConstraintList::add(new JVMFlagConstraint_double(name, ptr, func, type));
}
+void emit_constraint_ccstr(const char* name, ccstr* ptr, JVMFlagConstraintFunc_ccstr func, JVMFlagConstraint::ConstraintType type) {
+ JVMFlagConstraintList::add(new JVMFlagConstraint_ccstr(name, ptr, func, type));
+}
// Generate code to call emit_constraint_xxx function
#define EMIT_CONSTRAINT_PRODUCT_FLAG(type, name, value, doc) ); emit_constraint_##type(#name,&name
diff --git a/src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp b/src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp
index 9c27f1db955..b644f7b817a 100644
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintList.hpp
@@ -47,6 +47,7 @@ typedef JVMFlag::Error (*JVMFlagConstraintFunc_uintx)(uintx value, bool verbose)
typedef JVMFlag::Error (*JVMFlagConstraintFunc_uint64_t)(uint64_t value, bool verbose);
typedef JVMFlag::Error (*JVMFlagConstraintFunc_size_t)(size_t value, bool verbose);
typedef JVMFlag::Error (*JVMFlagConstraintFunc_double)(double value, bool verbose);
+typedef JVMFlag::Error (*JVMFlagConstraintFunc_ccstr)(ccstr value, bool verbose);
class JVMFlagConstraint : public CHeapObj<mtArguments> {
public:
diff --git a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp
index 6559d4252f0..21afac72a2e 100644
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.cpp
@@ -140,3 +140,13 @@ JVMFlag::Error ThreadLocalHandshakesConstraintFunc(bool value, bool verbose) {
}
return JVMFlag::SUCCESS;
}
+
+JVMFlag::Error HotswapAgentConstraintFunc(char const* value, bool verbose) {
+ if (value != NULL) {
+ if (strcmp("disabled", value) != 0 && strcmp("fatjar", value) != 0 && strcmp("core", value) != 0 && strcmp("external", value) != 0) {
+ JVMFlag::printError(verbose, "HotswapAgent(%s) must be one of disabled,fatjar,core or external.\n", value);
+ return JVMFlag::VIOLATES_CONSTRAINT;
+ }
+ }
+ return JVMFlag::SUCCESS;
+}
diff --git a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp
index 8763b83fd37..c9ed15a89e1 100644
--- a/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp
+++ b/src/hotspot/share/runtime/flags/jvmFlagConstraintsRuntime.hpp
@@ -46,5 +46,6 @@ JVMFlag::Error PerfDataSamplingIntervalFunc(intx value, bool verbose);
JVMFlag::Error ThreadLocalHandshakesConstraintFunc(bool value, bool verbose);
+JVMFlag::Error HotswapAgentConstraintFunc(char const* value, bool verbose);
#endif /* SHARE_VM_RUNTIME_JVMFLAGCONSTRAINTSRUNTIME_HPP */
diff --git a/src/hotspot/share/runtime/globals.hpp b/src/hotspot/share/runtime/globals.hpp
index d4453de1ff5..8c41f0af888 100644
--- a/src/hotspot/share/runtime/globals.hpp
+++ b/src/hotspot/share/runtime/globals.hpp
@@ -2686,8 +2686,16 @@ define_pd_global(uint64_t,MaxRAM, 1ULL*G);
"Allow enhanced class redefinition beyond swapping method " \
"bodies") \
\
- product(bool, DisableHotswapAgent, DISABLED_HOTSWAP_AGENT, \
- "Disable integrated Hotswap Agent (HotswapVM only)")
+ product(ccstr, HotswapAgent, "disabled", \
+ "Specify HotswapAgent image to be used." \
+ "disabled: hotswap agent is disabled (default)" \
+ "fatjar: full HA. Use integrated hotswap-agent.jar" \
+ "core: core HA. Use integrated hotswap-agent-core.jar" \
+ "external: external HA. use external HA, open required JDK " \
+ "modules.") \
+ constraint(HotswapAgentConstraintFunc, AfterErgo)
+
+
#define VM_FLAGS(develop, \
develop_pd, \
product, \
--
2.23.0

View File

@@ -1,333 +0,0 @@
From f279999a412cc87c6f4a7eed7e1e2ad34655b4fe Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <vladimir.dvorak@jetbrains.com>
Date: Mon, 8 Mar 2021 02:22:54 +0700
Subject: [PATCH 26/28] Support for redefinition of Well Known classses
(java.*,jdk.*, sun.*)
---
src/hotspot/share/ci/ciKlass.hpp | 1 +
src/hotspot/share/ci/ciObjectFactory.cpp | 34 +++++++++++
src/hotspot/share/ci/ciObjectFactory.hpp | 6 ++
.../share/classfile/systemDictionary.cpp | 10 +++
.../share/classfile/systemDictionary.hpp | 2 +
src/hotspot/share/classfile/vmSymbols.hpp | 2 +
src/hotspot/share/compiler/compileBroker.cpp | 11 ++++
src/hotspot/share/memory/universe.cpp | 8 +++
src/hotspot/share/memory/universe.hpp | 3 +
.../prims/jvmtiEnhancedRedefineClasses.cpp | 61 ++++++++++++++++++-
.../prims/jvmtiEnhancedRedefineClasses.hpp | 2 +
11 files changed, 139 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/ci/ciKlass.hpp b/src/hotspot/share/ci/ciKlass.hpp
index 896f489453a..c610c365aba 100644
--- a/src/hotspot/share/ci/ciKlass.hpp
+++ b/src/hotspot/share/ci/ciKlass.hpp
@@ -129,6 +129,7 @@ public:
void print_name_on(outputStream* st);
const char* external_name() const;
+ Klass* new_version() { return get_Klass()->new_version(); }
};
#endif // SHARE_VM_CI_CIKLASS_HPP
diff --git a/src/hotspot/share/ci/ciObjectFactory.cpp b/src/hotspot/share/ci/ciObjectFactory.cpp
index 66bbe835e7b..107c16fa5cf 100644
--- a/src/hotspot/share/ci/ciObjectFactory.cpp
+++ b/src/hotspot/share/ci/ciObjectFactory.cpp
@@ -70,7 +70,10 @@ GrowableArray<ciMetadata*>* ciObjectFactory::_shared_ci_metadata = NULL;
ciSymbol* ciObjectFactory::_shared_ci_symbols[vmSymbols::SID_LIMIT];
int ciObjectFactory::_shared_ident_limit = 0;
volatile bool ciObjectFactory::_initialized = false;
+volatile bool ciObjectFactory::_reinitialize_wk_klasses = false;
+// TODO: review...
+Arena* ciObjectFactory::_initial_arena = NULL;
// ------------------------------------------------------------------
// ciObjectFactory::ciObjectFactory
@@ -112,6 +115,7 @@ void ciObjectFactory::initialize() {
// compiler thread that initializes the initial ciObjectFactory which
// creates the shared ciObjects that all later ciObjectFactories use.
Arena* arena = new (mtCompiler) Arena(mtCompiler);
+ ciObjectFactory::_initial_arena = arena;
ciEnv initial(arena);
ciEnv* env = ciEnv::current();
env->_factory->init_shared_objects();
@@ -120,6 +124,36 @@ void ciObjectFactory::initialize() {
}
+// (DCEVM) wk classes could be modified
+void ciObjectFactory::reinitialize_wk_classes() {
+ ASSERT_IN_VM;
+ JavaThread* thread = JavaThread::current();
+ HandleMark handle_mark(thread);
+
+ // This Arena is long lived and exists in the resource mark of the
+ // compiler thread that initializes the initial ciObjectFactory which
+ // creates the shared ciObjects that all later ciObjectFactories use.
+ // Arena* arena = new (mtCompiler) Arena(mtCompiler);
+ ciEnv initial(ciObjectFactory::_initial_arena);
+ ciEnv* env = ciEnv::current();
+ env->_factory->do_reinitialize_wk_classes();
+ _reinitialize_wk_klasses = false;
+}
+
+// (DCEVM) wk classes could be modified
+void ciObjectFactory::do_reinitialize_wk_classes() {
+#define WK_KLASS_DEFN(name, ignore_s, opt) \
+ if (ciEnv::_##name != NULL && ciEnv::_##name->new_version() != NULL) { \
+ int old_ident = ciEnv::_##name->ident(); \
+ ciEnv::_##name = get_metadata(SystemDictionary::name())->as_instance_klass(); \
+ ciEnv::_##name->compute_nonstatic_fields(); \
+ ciEnv::_##name->set_ident(old_ident); \
+ }
+
+ WK_KLASSES_DO(WK_KLASS_DEFN)
+#undef WK_KLASS_DEFN
+}
+
void ciObjectFactory::init_shared_objects() {
_next_ident = 1; // start numbering CI objects at 1
diff --git a/src/hotspot/share/ci/ciObjectFactory.hpp b/src/hotspot/share/ci/ciObjectFactory.hpp
index 3e9d48c4cdc..79059f6e2e8 100644
--- a/src/hotspot/share/ci/ciObjectFactory.hpp
+++ b/src/hotspot/share/ci/ciObjectFactory.hpp
@@ -41,9 +41,11 @@ class ciObjectFactory : public ResourceObj {
private:
static volatile bool _initialized;
+ static volatile bool _reinitialize_wk_klasses;
static GrowableArray<ciMetadata*>* _shared_ci_metadata;
static ciSymbol* _shared_ci_symbols[];
static int _shared_ident_limit;
+ static Arena* _initial_arena;
Arena* _arena;
GrowableArray<ciMetadata*>* _ci_metadata;
@@ -89,10 +91,14 @@ private:
ciInstance* get_unloaded_instance(ciInstanceKlass* klass);
static int compare_cimetadata(ciMetadata** a, ciMetadata** b);
+ void do_reinitialize_wk_classes();
public:
static bool is_initialized() { return _initialized; }
+ static bool is_reinitialize_wk_klasses() { return _reinitialize_wk_klasses; }
+ static void set_reinitialize_wk_klasses() { _reinitialize_wk_klasses = true; }
static void initialize();
+ static void reinitialize_wk_classes();
void init_shared_objects();
void remove_symbols();
diff --git a/src/hotspot/share/classfile/systemDictionary.cpp b/src/hotspot/share/classfile/systemDictionary.cpp
index 789b5fb1e6d..25e577a664c 100644
--- a/src/hotspot/share/classfile/systemDictionary.cpp
+++ b/src/hotspot/share/classfile/systemDictionary.cpp
@@ -1983,6 +1983,16 @@ bool SystemDictionary::is_well_known_klass(Symbol* class_name) {
}
#endif
+bool SystemDictionary::update_well_known_klass(InstanceKlass* old_klass, InstanceKlass* new_klass) {
+ for (int id = FIRST_WKID; id < WKID_LIMIT; id++) {
+ if (well_known_klass((WKID) id) == old_klass) {
+ *well_known_klass_addr((WKID)id) = new_klass;
+ return true;
+ }
+ }
+ return false;
+}
+
bool SystemDictionary::resolve_wk_klass(WKID id, int init_opt, TRAPS) {
assert(id >= (int)FIRST_WKID && id < (int)WKID_LIMIT, "oob");
int info = wk_init_info[id - FIRST_WKID];
diff --git a/src/hotspot/share/classfile/systemDictionary.hpp b/src/hotspot/share/classfile/systemDictionary.hpp
index 1dbbffa197f..4220978a025 100644
--- a/src/hotspot/share/classfile/systemDictionary.hpp
+++ b/src/hotspot/share/classfile/systemDictionary.hpp
@@ -467,6 +467,8 @@ public:
static bool is_well_known_klass(Symbol* class_name);
#endif
+ static bool update_well_known_klass(InstanceKlass* new_klass, InstanceKlass* old_klass);
+
// Enhanced class redefinition
static void remove_from_hierarchy(InstanceKlass* k);
static void update_constraints_after_redefinition();
diff --git a/src/hotspot/share/classfile/vmSymbols.hpp b/src/hotspot/share/classfile/vmSymbols.hpp
index 2409af9b06e..daaa8d12375 100644
--- a/src/hotspot/share/classfile/vmSymbols.hpp
+++ b/src/hotspot/share/classfile/vmSymbols.hpp
@@ -355,6 +355,8 @@
template(exit_method_name, "exit") \
template(add_method_name, "add") \
template(remove_method_name, "remove") \
+ template(registerNatives_method_name, "registerNatives") \
+ template(initIDs_method_name, "initIDs") \
template(parent_name, "parent") \
template(threads_name, "threads") \
template(groups_name, "groups") \
diff --git a/src/hotspot/share/compiler/compileBroker.cpp b/src/hotspot/share/compiler/compileBroker.cpp
index 765b8ffa4dc..25271feb41f 100644
--- a/src/hotspot/share/compiler/compileBroker.cpp
+++ b/src/hotspot/share/compiler/compileBroker.cpp
@@ -1877,6 +1877,17 @@ void CompileBroker::compiler_thread_loop() {
if (method()->number_of_breakpoints() == 0) {
// Compile the method.
if ((UseCompiler || AlwaysCompileLoopMethods) && CompileBroker::should_compile_new_jobs()) {
+
+ // TODO: review usage of CompileThread_lock (DCEVM)
+ if (ciObjectFactory::is_reinitialize_wk_klasses())
+ {
+ ASSERT_IN_VM;
+ MutexLocker only_one (CompileThread_lock, thread);
+ if (ciObjectFactory::is_reinitialize_wk_klasses()) {
+ ciObjectFactory::reinitialize_wk_classes();
+ }
+ }
+
invoke_compiler_on_method(task);
thread->start_idle_timer();
} else {
diff --git a/src/hotspot/share/memory/universe.cpp b/src/hotspot/share/memory/universe.cpp
index 3dc4cc1323c..6b88271b5ef 100644
--- a/src/hotspot/share/memory/universe.cpp
+++ b/src/hotspot/share/memory/universe.cpp
@@ -1030,6 +1030,14 @@ void Universe::initialize_known_methods(TRAPS) {
vmSymbols::doStackWalk_signature(), false, CHECK);
}
+void Universe::reinitialize_loader_addClass_method(TRAPS) {
+ // Set up method for registering loaded classes in class loader vector
+ initialize_known_method(_loader_addClass_cache,
+ SystemDictionary::ClassLoader_klass(),
+ "addClass",
+ vmSymbols::class_void_signature(), false, CHECK);
+}
+
void universe2_init() {
EXCEPTION_MARK;
Universe::genesis(CATCH);
diff --git a/src/hotspot/share/memory/universe.hpp b/src/hotspot/share/memory/universe.hpp
index 742dada0e8f..d1af82b5fa7 100644
--- a/src/hotspot/share/memory/universe.hpp
+++ b/src/hotspot/share/memory/universe.hpp
@@ -349,6 +349,9 @@ class Universe: AllStatic {
// Function to initialize these
static void initialize_known_methods(TRAPS);
+ // Enhanced class redefinition
+ static void reinitialize_loader_addClass_method(TRAPS);
+
static oop null_ptr_exception_instance() { return _null_ptr_exception_instance; }
static oop arithmetic_exception_instance() { return _arithmetic_exception_instance; }
static oop virtual_machine_error_instance() { return _virtual_machine_error_instance; }
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index f4bde7504c8..80d4e68ccae 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -497,6 +497,16 @@ void VM_EnhancedRedefineClasses::doit() {
redefine_single_class(_new_classes->at(i), thread);
}
+ // Update possible redefinition of well-known classes (like ClassLoader)
+ for (int i = 0; i < _new_classes->length(); i++) {
+ InstanceKlass* cur = _new_classes->at(i);
+ if (cur->old_version() != NULL && SystemDictionary::update_well_known_klass(InstanceKlass::cast(cur->old_version()), cur))
+ {
+ log_trace(redefine, class, obsolete, metadata)("Well known class updated %s", cur->external_name());
+ ciObjectFactory::set_reinitialize_wk_klasses();
+ }
+ }
+
// Deoptimize all compiled code that depends on this class (do only once, because it clears whole cache)
// if (_max_redefinition_flags > Klass::ModifyClass) {
flush_dependent_code(NULL, thread);
@@ -672,12 +682,56 @@ void VM_EnhancedRedefineClasses::doit() {
_timer_vm_op_doit.stop();
}
+void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
+ if (!_new_classes->is_empty()) {
+ ResourceMark rm(Thread::current());
+
+ for (int i = 0; i < _new_classes->length(); i++) {
+ InstanceKlass* cur = _new_classes->at(i);
+
+ if (cur->name()->starts_with("java/") || cur->name()->starts_with("jdk/") || cur->name()->starts_with("sun/")) {
+
+ if (cur == SystemDictionary::ClassLoader_klass()) {
+ // ClassLoader.addClass method is cached in Universe, we must redefine
+ Universe::reinitialize_loader_addClass_method(Thread::current());
+ log_trace(redefine, class, obsolete, metadata)("Reinitialize ClassLoade addClass method cache.");
+ }
+
+ // naive assumptions that only JDK classes has native static "registerNative" and "initIDs" methods
+ int end;
+ Symbol* signature = vmSymbols::registerNatives_method_name();
+ int midx = cur->find_method_by_name(signature, &end);
+ if (midx == -1) {
+ signature = vmSymbols::initIDs_method_name();
+ midx = cur->find_method_by_name(signature, &end);
+ }
+ Method* m = NULL;
+ if (midx != -1) {
+ m = cur->methods()->at(midx);
+ }
+ if (m != NULL && m->is_static() && m->is_native()) {
+ // call static registerNative if present
+ JavaValue result(T_VOID);
+ JavaCalls::call_static(&result,
+ cur,
+ signature,
+ vmSymbols::void_method_signature(),
+ Thread::current());
+ log_trace(redefine, class, obsolete, metadata)("Reregister natives of JDK class %s", cur->external_name());
+ }
+ }
+ }
+ }
+}
+
// Cleanup - runs in JVM thread
// - free used memory
// - end GC
void VM_EnhancedRedefineClasses::doit_epilogue() {
VM_GC_Operation::doit_epilogue();
+ reinitializeJDKClasses();
+
if (_new_classes != NULL) {
delete _new_classes;
}
@@ -1589,7 +1643,12 @@ void VM_EnhancedRedefineClasses::check_methods_and_mark_as_obsolete() {
// obsolete methods need a unique idnum so they become new entries in
// the jmethodID cache in InstanceKlass
- assert(old_method->method_idnum() == new_method->method_idnum(), "must match");
+ if (old_method->method_idnum() != new_method->method_idnum()) {
+ log_error(redefine, class, normalize)
+ ("Method not matched: %d != %d old: %s = new: %s", old_method->method_idnum(), new_method->method_idnum(),
+ old_method->name_and_sig_as_C_string(), new_method->name_and_sig_as_C_string());
+ // assert(old_method->method_idnum() == new_method->method_idnum(), "must match");
+ }
// u2 num = InstanceKlass::cast(_the_class_oop)->next_method_idnum();
// if (num != ConstMethod::UNSET_IDNUM) {
// old_method->set_method_idnum(num);
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
index 4c0412d343d..79ea17b0d47 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.hpp
@@ -141,6 +141,8 @@ class VM_EnhancedRedefineClasses: public VM_GC_Operation {
void flush_dependent_code(InstanceKlass* k_h, TRAPS);
+ void reinitializeJDKClasses();
+
static void check_class(InstanceKlass* k_oop, TRAPS);
static void dump_methods();
--
2.23.0

View File

@@ -1,27 +0,0 @@
From 416d06e7e5f3517e9303b0b5a705888e4db740bd Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Fri, 19 Mar 2021 19:13:38 +0100
Subject: [PATCH 27/28] JBR-3458: Skip dynamic proxy classes based on
com.sun.proxy
---
src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 80d4e68ccae..10c375d601c 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -689,7 +689,8 @@ void VM_EnhancedRedefineClasses::reinitializeJDKClasses() {
for (int i = 0; i < _new_classes->length(); i++) {
InstanceKlass* cur = _new_classes->at(i);
- if (cur->name()->starts_with("java/") || cur->name()->starts_with("jdk/") || cur->name()->starts_with("sun/")) {
+ if ((cur->name()->starts_with("java/") || cur->name()->starts_with("jdk/") || cur->name()->starts_with("sun/"))
+ && cur->name()->index_of_at(0, "$$") == -1) { // skip dynamic proxies
if (cur == SystemDictionary::ClassLoader_klass()) {
// ClassLoader.addClass method is cached in Universe, we must redefine
--
2.23.0

View File

@@ -1,79 +0,0 @@
From 88e0325768b074607f5f9edfbb7f8e4a76159942 Mon Sep 17 00:00:00 2001
From: Vladimir Dvorak <lada.dvorak7@gmail.com>
Date: Sat, 20 Mar 2021 20:51:08 +0100
Subject: [PATCH 28/28] JBR-3459: Fix race condition in
ClassLoaderDataGraph::classes_do
InstanceKlass in ClassLoaderData can be uninitialized when
ClassLoaderDataGraph::classes_do is called. Using
ClassLoaderDataGraph::dictionary_classes_do is safe but problem is still
persisting with anonymous classes.
---
src/hotspot/share/classfile/classLoaderData.cpp | 10 ++++++++++
src/hotspot/share/classfile/classLoaderData.hpp | 4 ++++
.../share/prims/jvmtiEnhancedRedefineClasses.cpp | 13 +++++++++++--
3 files changed, 25 insertions(+), 2 deletions(-)
diff --git a/src/hotspot/share/classfile/classLoaderData.cpp b/src/hotspot/share/classfile/classLoaderData.cpp
index 4e06b09e7d5..f319cca3b2b 100644
--- a/src/hotspot/share/classfile/classLoaderData.cpp
+++ b/src/hotspot/share/classfile/classLoaderData.cpp
@@ -1166,6 +1166,16 @@ void ClassLoaderDataGraph::classes_do(KlassClosure* klass_closure) {
}
}
+void ClassLoaderDataGraph::anonymous_classes_do(KlassClosure* klass_closure) {
+ Thread* thread = Thread::current();
+ for (ClassLoaderData* cld = _head; cld != NULL; cld = cld->next()) {
+ if (cld->is_anonymous()) {
+ Handle holder(thread, cld->holder_phantom());
+ cld->classes_do(klass_closure);
+ }
+ }
+}
+
void ClassLoaderDataGraph::classes_do(void f(Klass* const)) {
Thread* thread = Thread::current();
for (ClassLoaderData* cld = _head; cld != NULL; cld = cld->next()) {
diff --git a/src/hotspot/share/classfile/classLoaderData.hpp b/src/hotspot/share/classfile/classLoaderData.hpp
index 16711dca237..b10fafa01e5 100644
--- a/src/hotspot/share/classfile/classLoaderData.hpp
+++ b/src/hotspot/share/classfile/classLoaderData.hpp
@@ -108,6 +108,10 @@ class ClassLoaderDataGraph : public AllStatic {
// for redefinition. These classes are removed during the next class unloading.
// Walking the ClassLoaderDataGraph also includes anonymous classes.
static void classes_do(KlassClosure* klass_closure);
+
+ // Enhanced class redefinition
+ static void anonymous_classes_do(KlassClosure* klass_closure);
+
static void classes_do(void f(Klass* const));
static void methods_do(void f(Method*));
static void modules_do(void f(ModuleEntry*));
diff --git a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
index 10c375d601c..5de5f78aea0 100644
--- a/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
+++ b/src/hotspot/share/prims/jvmtiEnhancedRedefineClasses.cpp
@@ -2130,8 +2130,17 @@ jvmtiError VM_EnhancedRedefineClasses::find_sorted_affected_classes(TRAPS) {
AffectedKlassClosure closure(_affected_klasses);
// Updated in j10, from original SystemDictionary::classes_do
- ClassLoaderDataGraph::classes_do(&closure);
- //ClassLoaderDataGraph::dictionary_classes_do(&closure);
+ // 0. we can't use ClassLoaderDataGraph::classes_do since classes can be uninitialized in cld,
+ // fully initialized class is in system dictionary
+ // ClassLoaderDataGraph::classes_do(&closure);
+
+ // 1. Scan over dictionaries
+ ClassLoaderDataGraph::dictionary_classes_do(&closure);
+
+ // 2. Anonymous class is not in dictionary, we have to iterate anonymous cld directly, but there is race cond...
+ // TODO: review ... anonymous class is added to cld before InstanceKlass initialization,
+ // find out how to check if the InstanceKlass is initialized
+ ClassLoaderDataGraph::anonymous_classes_do(&closure);
log_trace(redefine, class, load)("%d classes affected", _affected_klasses->length());
--
2.23.0

View File

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

View File

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

View File

@@ -1,83 +0,0 @@
#!/bin/bash -x
# The following parameters must be specified:
# JBSDK_VERSION - specifies major version of OpenJDK e.g. 11_0_6 (instead of dots '.' underbars "_" are used)
# JDK_BUILD_NUMBER - specifies update release of OpenJDK build or the value of --with-version-build argument to configure
# build_number - specifies the number of JetBrainsRuntime build
# bundle_type - specifies bundle to be built; possible values:
# jcef - the release bundles with jcef
# dcevm - the release bundles with dcevm patches
# nomod - the release bundles without any additional modules (jcef)
# fd - the fastdebug bundles which also include the jcef module
#
# jbrsdk-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
# jbr-${JBSDK_VERSION}-osx-x64-b${build_number}.tar.gz
#
# $ ./java --version
# openjdk 11.0.6 2020-01-14
# OpenJDK Runtime Environment (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number})
# OpenJDK 64-Bit Server VM (build 11.0.6+${JDK_BUILD_NUMBER}-b${build_number}, mixed mode)
#
# Environment variables:
# MODULAR_SDK_PATH - specifies the path to the directory where imported modules are located.
# By default imported modules should be located in ./modular-sdk
# JCEF_PATH - specifies the path to the directory with JCEF binaries.
# By default JCEF binaries should be located in ./jcef_win_x64
JBSDK_VERSION=$1
JDK_BUILD_NUMBER=$2
build_number=$3
bundle_type=$4
source jb/project/tools/common.sh
function pack_jbr {
JBR_BUNDLE=jbr_${bundle_type}
case "${bundle_type}" in
"jcef" | "dcevm" | "nomod" | "fd")
JBR_BASE_NAME=jbr_${bundle_type}-${JBSDK_VERSION}
;;
*)
echo "***ERR*** bundle was not specified" && do_exit 1
;;
esac
JBR=$JBR_BASE_NAME-windows-x64-b$build_number
echo Creating $JBR.tar.gz ...
chmod -R ug+rwx,o+rx ${BASE_DIR}/${JBR_BUNDLE}
cp -R ${BASE_DIR}/${JBR_BUNDLE} ${BASE_DIR}/jbr
/usr/bin/tar -czf $JBR.tar.gz -C $BASE_DIR jbr || do_exit $?
}
JBRSDK_BASE_NAME=jbrsdk-${JBSDK_VERSION}
WITH_DEBUG_LEVEL="--with-debug-level=release"
RELEASE_NAME=windows-x86_64-normal-server-release
JBSDK=${JBRSDK_BASE_NAME}-windows-x64-b${build_number}
case "$bundle_type" in
"fd")
WITH_DEBUG_LEVEL="--with-debug-level=fastdebug"
RELEASE_NAME=windows-x86_64-normal-server-fastdebug
JBSDK=${JBRSDK_BASE_NAME}-windows-x64-fastdebug-b${build_number}
;;
esac
IMAGES_DIR=build/$RELEASE_NAME/images
JSDK=$IMAGES_DIR/jdk
BASE_DIR=.
if [ "${bundle_type}" == "jcef" ] || [ "${bundle_type}" == "fd" ]; then
JBRSDK_BUNDLE=jbrsdk
echo Creating $JBSDK.tar.gz ...
[ -f "$JBSDK.tar.gz" ] && rm "$JBSDK.tar.gz"
/usr/bin/tar -czf $JBSDK.tar.gz $JBRSDK_BUNDLE || do_exit $?
fi
pack_jbr $bundle_type
if [ "$bundle_type" == "jcef" ]; then
JBRSDK_TEST=$JBRSDK_BASE_NAME-windows-test-x64-b$build_number
echo Creating $JBRSDK_TEST.tar.gz ...
/usr/bin/tar -czf $JBRSDK_TEST.tar.gz -C $IMAGES_DIR --exclude='test/jdk/demos' test || do_exit $?
fi

View File

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

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2019, 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
@@ -50,7 +50,6 @@ $(eval $(call IncludeCustomExtension, Bundles-pre.gmk))
# files or directories may contain spaces.
# BASE_DIRS : Base directories for the root dir in the bundle.
# SUBDIR : Optional name of root dir in bundle.
# OUTPUTDIR : Optionally override output dir
SetupBundleFile = $(NamedParamsMacroTemplate)
define SetupBundleFileBody
@@ -71,11 +70,8 @@ define SetupBundleFileBody
$$(call SetIfEmpty, $1_UNZIP_DEBUGINFO, false)
$$(call SetIfEmpty, $1_OUTPUTDIR, $$(BUNDLES_OUTPUTDIR))
$$($1_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
$$(call LogWarn, Creating $$($1_BUNDLE_NAME))
# If any of the files contain a space in the file name, FindFiles
$(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME): $$($1_FILES)
# If any of the files contain a space in the file name, CacheFind
# will have replaced it with ?. Tar does not accept that so need to
# switch it back.
$$(foreach d, $$($1_BASE_DIRS), \
@@ -125,13 +121,6 @@ define SetupBundleFileBody
&& $(TAR) cf - -$(TAR_INCLUDE_PARAM) $$($1_$$d_LIST_FILE) \
$(TAR_IGNORE_EXIT_VALUE) ) \
| ( $(CD) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) && $(TAR) xf - )$$(NEWLINE) )
# Rename stripped pdb files
ifeq ($(OPENJDK_TARGET_OS)+$(SHIP_DEBUG_SYMBOLS), windows+public)
for f in `$(FIND) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) -name "*.stripped.pdb"`; do \
$(ECHO) Renaming $$$${f} to $$$${f%stripped.pdb}pdb $(LOG_INFO); \
$(MV) $$$${f} $$$${f%stripped.pdb}pdb; \
done
endif
# Unzip any zipped debuginfo files
ifeq ($$($1_UNZIP_DEBUGINFO), true)
for f in `$(FIND) $(SUPPORT_OUTPUTDIR)/bundles/$1/$$($1_SUBDIR) -name "*.diz"`; do \
@@ -148,7 +137,7 @@ define SetupBundleFileBody
endif
endif
$1 += $$($1_OUTPUTDIR)/$$($1_BUNDLE_NAME)
$1 += $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME)
endef
@@ -163,12 +152,6 @@ ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
JRE_IMAGE_HOMEDIR := $(JRE_MACOSX_CONTENTS_DIR)/Home
JDK_BUNDLE_SUBDIR :=
JRE_BUNDLE_SUBDIR :=
# In certain situations, the JDK_IMAGE_DIR points to an image without the
# the symbols and demos. If so, the symobls and demos can be found in a
# separate image. These variables allow for overriding from a custom makefile.
JDK_SYMBOLS_IMAGE_DIR ?= $(JDK_IMAGE_DIR)
JDK_DEMOS_IMAGE_DIR ?= $(JDK_IMAGE_DIR)
JDK_DEMOS_IMAGE_HOMEDIR ?= $(JDK_DEMOS_IMAGE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR)/Home
else
JDK_IMAGE_HOMEDIR := $(JDK_IMAGE_DIR)
JRE_IMAGE_HOMEDIR := $(JRE_IMAGE_DIR)
@@ -178,56 +161,23 @@ else
JDK_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
JRE_BUNDLE_SUBDIR := $(JRE_BUNDLE_SUBDIR)/$(DEBUG_LEVEL)
endif
# In certain situations, the JDK_IMAGE_DIR points to an image without the
# the symbols and demos. If so, the symobls and demos can be found in a
# separate image. These variables allow for overriding from a custom makefile.
JDK_SYMBOLS_IMAGE_DIR ?= $(JDK_IMAGE_DIR)
JDK_DEMOS_IMAGE_DIR ?= $(JDK_IMAGE_DIR)
JDK_DEMOS_IMAGE_HOMEDIR ?= $(JDK_DEMOS_IMAGE_DIR)
endif
################################################################################
ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
ifneq ($(filter product-bundles legacy-bundles, $(MAKECMDGOALS)), )
$(eval $(call FillCacheFind, $(IMAGES_OUTPUTDIR)))
SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.map
SYMBOLS_EXCLUDE_PATTERN := %.debuginfo %.diz %.pdb %.map
# There may be files with spaces in the names, so use ShellFindFiles
# explicitly.
ALL_JDK_FILES := $(call ShellFindFiles, $(JDK_IMAGE_DIR))
ifneq ($(JDK_IMAGE_DIR), $(JDK_SYMBOLS_IMAGE_DIR))
ALL_JDK_SYMBOLS_FILES := $(call ShellFindFiles, $(JDK_SYMBOLS_IMAGE_DIR))
else
ALL_JDK_SYMBOLS_FILES := $(ALL_JDK_FILES)
endif
ifneq ($(JDK_IMAGE_DIR), $(JDK_DEMOS_IMAGE_DIR))
ALL_JDK_DEMOS_FILES := $(call ShellFindFiles, $(JDK_DEMOS_IMAGE_DIR))
else
ALL_JDK_DEMOS_FILES := $(ALL_JDK_FILES)
endif
ALL_JDK_FILES := $(call CacheFind, $(JDK_IMAGE_DIR))
# Create special filter rules when dealing with unzipped .dSYM directories on
# macosx
ifeq ($(OPENJDK_TARGET_OS), macosx)
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
JDK_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
$(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, \
$(ALL_JDK_SYMBOLS_FILES))))
endif
endif
# Create special filter rules when dealing with debug symbols on windows
ifeq ($(OPENJDK_TARGET_OS), windows)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JDK_SYMBOLS_EXCLUDE_PATTERN := %.pdb
else
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
JDK_SYMBOLS_EXCLUDE_PATTERN := \
$(filter-out \
%.stripped.pdb, \
$(filter %.pdb, $(ALL_JDK_FILES)) \
)
endif
$(call containing, .dSYM/, $(patsubst $(JDK_IMAGE_DIR)/%, %, $(ALL_JDK_FILES))))
endif
endif
@@ -240,24 +190,22 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
, \
$(ALL_JDK_FILES) \
)
JDK_SYMBOLS_BUNDLE_FILES := \
$(filter \
$(JDK_SYMBOLS_EXCLUDE_PATTERN) \
$(SYMBOLS_EXCLUDE_PATTERN) \
, \
$(filter-out \
$(JDK_IMAGE_HOMEDIR)/demo/% %.stripped.pdb \
$(JDK_IMAGE_HOMEDIR)/demo/% \
, \
$(ALL_JDK_SYMBOLS_FILES) \
$(ALL_JDK_FILES) \
) \
) \
$(call FindFiles, $(SYMBOLS_IMAGE_DIR))
$(call CacheFind, $(SYMBOLS_IMAGE_DIR))
TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_DEMOS_IMAGE_HOMEDIR)/demo/%, \
$(ALL_JDK_DEMOS_FILES))
TEST_DEMOS_BUNDLE_FILES := $(filter $(JDK_IMAGE_HOMEDIR)/demo/%, $(ALL_JDK_FILES))
ALL_JRE_FILES := $(call ShellFindFiles, $(JRE_IMAGE_DIR))
ALL_JRE_FILES := $(call CacheFind, $(JRE_IMAGE_DIR))
# Create special filter rules when dealing with unzipped .dSYM directories on
# macosx
@@ -268,128 +216,39 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
endif
endif
# Create special filter rules when dealing with debug symbols on windows
ifeq ($(OPENJDK_TARGET_OS), windows)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JRE_SYMBOLS_EXCLUDE_PATTERN := %.pdb
else
ifeq ($(SHIP_DEBUG_SYMBOLS), public)
JRE_SYMBOLS_EXCLUDE_PATTERN := \
$(filter-out \
%.stripped.pdb, \
$(filter %.pdb, $(ALL_JRE_FILES)) \
)
endif
endif
endif
JRE_BUNDLE_FILES := $(filter-out \
$(JRE_SYMBOLS_EXCLUDE_PATTERN) \
$(SYMBOLS_EXCLUDE_PATTERN), \
$(ALL_JRE_FILES))
# On Macosx release builds, when there is a code signing certificate available,
# the final bundle layout can be signed.
SIGN_BUNDLE := false
ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
ifneq ($(CODESIGN), )
SIGN_BUNDLE := true
endif
endif
$(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
BUNDLE_NAME := $(JDK_BUNDLE_NAME), \
FILES := $(JDK_BUNDLE_FILES), \
SPECIAL_INCLUDES := $(JDK_SPECIAL_INCLUDES), \
BASE_DIRS := $(JDK_IMAGE_DIR), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
))
ifeq ($(SIGN_BUNDLE), true)
# Macosx release build and code signing available.
PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
################################################################################
# JDK bundle
$(eval $(call SetupCopyFiles, CREATE_JDK_BUNDLE_DIR_SIGNED, \
SRC := $(JDK_IMAGE_DIR), \
FILES := $(JDK_BUNDLE_FILES), \
DEST := $(JDK_MACOSX_BUNDLE_DIR_SIGNED), \
))
$(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
BUNDLE_NAME := $(JRE_BUNDLE_NAME), \
FILES := $(JRE_BUNDLE_FILES), \
BASE_DIRS := $(JRE_IMAGE_DIR), \
SUBDIR := $(JRE_BUNDLE_SUBDIR), \
))
JDK_SIGNED_CODE_RESOURCES := \
$(JDK_MACOSX_BUNDLE_DIR_SIGNED)/$(JDK_MACOSX_CONTENTS_SUBDIR)/_CodeSignature/CodeResources
LEGACY_TARGETS += $(BUILD_JRE_BUNDLE)
$(JDK_SIGNED_CODE_RESOURCES): $(CREATE_JDK_BUNDLE_DIR_SIGNED)
$(call LogWarn, Signing $(JDK_BUNDLE_NAME))
$(CODESIGN) -s "$(MACOSX_CODESIGN_IDENTITY)" \
--timestamp --options runtime --deep --force \
$(JDK_MACOSX_BUNDLE_DIR_SIGNED)/$(JDK_MACOSX_BUNDLE_TOP_DIR) $(LOG_DEBUG)
$(TOUCH) $@
$(eval $(call SetupBundleFile, BUILD_JDK_SYMBOLS_BUNDLE, \
BUNDLE_NAME := $(JDK_SYMBOLS_BUNDLE_NAME), \
FILES := $(JDK_SYMBOLS_BUNDLE_FILES), \
BASE_DIRS := $(JDK_IMAGE_DIR) $(wildcard $(SYMBOLS_IMAGE_DIR)), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
UNZIP_DEBUGINFO := true, \
))
$(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
BUNDLE_NAME := $(JDK_BUNDLE_NAME), \
FILES := \
$(CREATE_JDK_BUNDLE_DIR_SIGNED) \
$(JDK_SIGNED_CODE_RESOURCES), \
BASE_DIRS := $(JDK_MACOSX_BUNDLE_DIR_SIGNED), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
))
PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
################################################################################
# JRE bundle
$(eval $(call SetupCopyFiles, CREATE_JRE_BUNDLE_DIR_SIGNED, \
SRC := $(JRE_IMAGE_DIR), \
FILES := $(JRE_BUNDLE_FILES), \
DEST := $(JRE_MACOSX_BUNDLE_DIR_SIGNED), \
))
JRE_SIGNED_CODE_RESOURCES := \
$(JRE_MACOSX_BUNDLE_DIR_SIGNED)/$(JRE_MACOSX_CONTENTS_SUBDIR)/_CodeSignature/CodeResources
$(JRE_SIGNED_CODE_RESOURCES): $(CREATE_JRE_BUNDLE_DIR_SIGNED)
$(call LogWarn, Signing $(JRE_BUNDLE_NAME))
$(CODESIGN) -s "$(MACOSX_CODESIGN_IDENTITY)" \
--timestamp --options runtime --deep --force \
$(JRE_MACOSX_BUNDLE_DIR_SIGNED)/$(JRE_MACOSX_BUNDLE_TOP_DIR) $(LOG_DEBUG)
$(TOUCH) $@
$(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
BUNDLE_NAME := $(JRE_BUNDLE_NAME), \
FILES := \
$(CREATE_JRE_BUNDLE_DIR_SIGNED) \
$(JRE_SIGNED_CODE_RESOURCES), \
BASE_DIRS := $(JRE_MACOSX_BUNDLE_DIR_SIGNED), \
SUBDIR := $(JRE_BUNDLE_SUBDIR), \
))
LEGACY_TARGETS += $(BUILD_JRE_BUNDLE)
else
# Not a Macosx release build or code signing not available.
$(eval $(call SetupBundleFile, BUILD_JDK_BUNDLE, \
BUNDLE_NAME := $(JDK_BUNDLE_NAME), \
FILES := $(JDK_BUNDLE_FILES), \
SPECIAL_INCLUDES := $(JDK_SPECIAL_INCLUDES), \
BASE_DIRS := $(JDK_IMAGE_DIR), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
))
PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
$(eval $(call SetupBundleFile, BUILD_JRE_BUNDLE, \
BUNDLE_NAME := $(JRE_BUNDLE_NAME), \
FILES := $(JRE_BUNDLE_FILES), \
BASE_DIRS := $(JRE_IMAGE_DIR), \
SUBDIR := $(JRE_BUNDLE_SUBDIR), \
))
LEGACY_TARGETS += $(BUILD_JRE_BUNDLE)
endif
ifeq ($(COPY_DEBUG_SYMBOLS), true)
$(eval $(call SetupBundleFile, BUILD_JDK_SYMBOLS_BUNDLE, \
BUNDLE_NAME := $(JDK_SYMBOLS_BUNDLE_NAME), \
FILES := $(JDK_SYMBOLS_BUNDLE_FILES), \
BASE_DIRS := $(JDK_SYMBOLS_IMAGE_DIR) $(wildcard $(SYMBOLS_IMAGE_DIR)), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
UNZIP_DEBUGINFO := true, \
))
PRODUCT_TARGETS += $(BUILD_JDK_SYMBOLS_BUNDLE)
endif
PRODUCT_TARGETS += $(BUILD_JDK_SYMBOLS_BUNDLE)
# The demo bundle is only created to support client tests. Ideally it should
# be built with the main test bundle, but since the prerequisites match
@@ -397,7 +256,7 @@ ifneq ($(filter product-bundles% legacy-bundles, $(MAKECMDGOALS)), )
$(eval $(call SetupBundleFile, BUILD_TEST_DEMOS_BUNDLE, \
BUNDLE_NAME := $(TEST_DEMOS_BUNDLE_NAME), \
FILES := $(TEST_DEMOS_BUNDLE_FILES), \
BASE_DIRS := $(JDK_DEMOS_IMAGE_DIR), \
BASE_DIRS := $(JDK_IMAGE_DIR), \
SUBDIR := $(JDK_BUNDLE_SUBDIR), \
))
@@ -407,7 +266,7 @@ endif
################################################################################
ifneq ($(filter test-bundles, $(MAKECMDGOALS)), )
TEST_BUNDLE_FILES := $(call FindFiles, $(TEST_IMAGE_DIR))
TEST_BUNDLE_FILES := $(call CacheFind, $(TEST_IMAGE_DIR))
$(eval $(call SetupBundleFile, BUILD_TEST_BUNDLE, \
BUNDLE_NAME := $(TEST_BUNDLE_NAME), \
@@ -421,7 +280,7 @@ endif
################################################################################
ifneq ($(filter docs-bundles, $(MAKECMDGOALS)), )
DOCS_BUNDLE_FILES := $(call FindFiles, $(DOCS_IMAGE_DIR))
DOCS_BUNDLE_FILES := $(call CacheFind, $(DOCS_IMAGE_DIR))
$(eval $(call SetupBundleFile, BUILD_DOCS_BUNDLE, \
BUNDLE_NAME := $(DOCS_BUNDLE_NAME), \
@@ -435,27 +294,6 @@ endif
################################################################################
ifneq ($(filter static-libs-bundles, $(MAKECMDGOALS)), )
STATIC_LIBS_BUNDLE_FILES := $(call FindFiles, $(STATIC_LIBS_IMAGE_DIR))
ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
STATIC_LIBS_BUNDLE_SUBDIR := $(JDK_MACOSX_CONTENTS_SUBDIR)/Home
else
STATIC_LIBS_BUNDLE_SUBDIR := $(JDK_BUNDLE_SUBDIR)
endif
$(eval $(call SetupBundleFile, BUILD_STATIC_LIBS_BUNDLE, \
BUNDLE_NAME := $(STATIC_LIBS_BUNDLE_NAME), \
FILES := $(STATIC_LIBS_BUNDLE_FILES), \
BASE_DIRS := $(STATIC_LIBS_IMAGE_DIR), \
SUBDIR := $(STATIC_LIBS_BUNDLE_SUBDIR), \
))
STATIC_LIBS_TARGETS += $(BUILD_STATIC_LIBS_BUNDLE)
endif
################################################################################
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, Bundles.gmk))
@@ -465,7 +303,5 @@ product-bundles: $(PRODUCT_TARGETS)
legacy-bundles: $(LEGACY_TARGETS)
test-bundles: $(TEST_TARGETS)
docs-bundles: $(DOCS_TARGETS)
static-libs-bundles: $(STATIC_LIBS_TARGETS)
.PHONY: all default product-bundles test-bundles docs-bundles \
static-libs-bundles
.PHONY: all default product-bundles test-bundles docs-bundles

View File

@@ -1,60 +0,0 @@
#
# Copyright (c) 2018, 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.
#
default: all
include $(SPEC)
include MakeBase.gmk
# When FIXPATH is set, let it process the file to make sure all paths are usable
# by system native tools. The FIXPATH tool assumes arguments preceeded by an @
# character points to a text file containing further arguments (similar to a
# linker). It replaces any such arguments with a different temporary filename,
# whose contents has been processed to make any paths native. To obtain a
# properly processed compile_commands.json, FIXPATH is then made to invoke an
# AWK script with the unprocessed json file as the only argument, prepended with
# an @ character. The AWK script simply copies the contents of this processed
# file.
#
# The sed command encloses the fragments inside brackets and removes the final
# trailing comma.
$(OUTPUTDIR)/compile_commands.json: $(wildcard $(MAKESUPPORT_OUTPUTDIR)/compile-commands/*.json)
$(call LogWarn, Updating compile_commands.json)
$(RM) $@
$(FIND) $(MAKESUPPORT_OUTPUTDIR)/compile-commands/ -name \*.json | \
$(SORT) | $(XARGS) $(CAT) >> $@.tmp
$(if $(FIXPATH),$(FIXPATH) $(AWK) 'BEGIN { \
tmpfile = substr(ARGV[2],2); \
cmd = "$(CP) " "\047" tmpfile "\047" " $@.tmp"; \
system(cmd); \
}' -- @$@.tmp)
$(SED) -e '1s/^/[\$(NEWLINE)/' -e '$(DOLLAR)s/,\s\{0,\}$(DOLLAR)/\$(NEWLINE)]/' $@.tmp > $@
$(RM) $@.tmp
TARGETS += $(OUTPUTDIR)/compile_commands.json
all: $(TARGETS)
.PHONY: all

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2016, 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
@@ -43,7 +43,7 @@ $(eval $(call IncludeCustomExtension, CompileDemos-pre.gmk))
# Prepare the find cache.
DEMO_SRC_DIRS += $(TOPDIR)/src/demo
$(call FillFindCache, $(DEMO_SRC_DIRS))
$(eval $(call FillCacheFind, $(wildcard $(DEMO_SRC_DIRS))))
# Append demo goals to this variable.
TARGETS =
@@ -237,11 +237,11 @@ $(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%: $(DEMO_SHARE_SRC)/nbproject/%
ifeq ($(OPENJDK_TARGET_OS), solaris)
TARGETS += $(patsubst $(DEMO_SHARE_SRC)/nbproject/%, \
$(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%, \
$(call FindFiles, $(DEMO_SHARE_SRC)/nbproject))
$(call CacheFind, $(DEMO_SHARE_SRC)/nbproject))
else
TARGETS += $(patsubst $(DEMO_SHARE_SRC)/nbproject/%, \
$(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%, \
$(call FindFiles, $(DEMO_SHARE_SRC)/nbproject))
$(call CacheFind, $(DEMO_SHARE_SRC)/nbproject))
endif
################################################################################
@@ -250,7 +250,7 @@ ifneq ($(filter images, $(MAKECMDGOALS)), )
$(eval $(call SetupCopyFiles, COPY_TO_TEST_IMAGE, \
SRC := $(SUPPORT_OUTPUTDIR)/demos/image, \
DEST := $(TEST_IMAGE_DIR)/jdk/demos, \
FILES := $(call FindFiles, $(SUPPORT_OUTPUTDIR)/demos/image), \
FILES := $(call CacheFind, $(SUPPORT_OUTPUTDIR)/demos/image), \
))
IMAGES_TARGETS := $(COPY_TO_TEST_IMAGE)

View File

@@ -321,7 +321,7 @@ jdk.jshell_COPY += .jsh .properties
################################################################################
jdk.internal.le_COPY += .properties .caps .txt
jdk.internal.le_COPY += .properties
################################################################################
@@ -644,7 +644,7 @@ endif
ifneq ($(wildcard $(IMPORT_MODULES_CLASSES)/$(MODULE)), )
$(JDK_OUTPUTDIR)/modules/$(MODULE)/_imported.marker: \
$(call FindFiles, $(IMPORT_MODULES_CLASSES)/$(MODULE))
$(call CacheFind, $(IMPORT_MODULES_CLASSES)/$(MODULE))
$(call MakeDir, $(@D))
# Do not delete marker and build meta data files
$(RM) -r $(filter-out $(@D)/_%, $(wildcard $(@D)/*))

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2018, 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
@@ -39,6 +39,7 @@ $(eval $(call IncludeCustomExtension, CompileTools.gmk))
# Use += to be able to add to this from a custom extension
BUILD_TOOLS_SRC_DIRS += \
$(TOPDIR)/make/jdk/src/classes \
$(BUILDTOOLS_OUTPUTDIR)/interim_cldrconverter_classes \
$(BUILDTOOLS_OUTPUTDIR)/interim_tzdb_classes \
#
@@ -55,7 +56,6 @@ $(eval $(call SetupJavaCompilation,BUILD_TOOLS_JDK, \
ADD_JAVAC_FLAGS := \
--add-exports java.desktop/sun.awt=ALL-UNNAMED \
--add-exports java.base/sun.text=ALL-UNNAMED \
--add-exports java.base/sun.security.util=ALL-UNNAMED \
, \
))

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2016, 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,7 +35,7 @@ LIBS_DIR := $(wildcard $(addsuffix /$(MODULE), $(IMPORT_MODULES_LIBS)))
CMDS_DIR := $(wildcard $(addsuffix /$(MODULE), $(IMPORT_MODULES_CMDS)))
CONF_DIR := $(wildcard $(addsuffix /$(MODULE), $(IMPORT_MODULES_CONF)))
$(call FillFindCache, $(LIBS_DIR) $(CMDS_DIR) $(CONF_DIR))
$(eval $(call FillCacheFind, $(LIBS_DIR) $(CMDS_DIR) $(CONF_DIR)))
ifneq ($(LIBS_DIR), )
ifeq ($(OPENJDK_TARGET_OS), windows)
@@ -45,21 +45,21 @@ ifneq ($(LIBS_DIR), )
SRC := $(LIBS_DIR), \
DEST := $(JDK_OUTPUTDIR)/bin, \
FILES := $(filter $(TO_BIN_FILTER), \
$(call FindFiles, $(LIBS_DIR))) \
$(call CacheFind, $(LIBS_DIR))) \
))
$(eval $(call SetupCopyFiles, COPY_LIBS_TO_LIB, \
SRC := $(LIBS_DIR), \
DEST := $(JDK_OUTPUTDIR)/lib, \
FILES := $(filter-out $(TO_BIN_FILTER), \
$(call FindFiles, $(LIBS_DIR))) \
$(call CacheFind, $(LIBS_DIR))) \
))
TARGETS += $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB)
else
$(eval $(call SetupCopyFiles, COPY_LIBS, \
SRC := $(LIBS_DIR), \
DEST := $(JDK_OUTPUTDIR)/lib, \
FILES := $(filter %$(SHARED_LIBRARY_SUFFIX), $(call FindFiles, $(LIBS_DIR))), \
FILES := $(filter %$(SHARED_LIBRARY_SUFFIX), $(call CacheFind, $(LIBS_DIR))), \
))
# Use relative links if the import dir is inside the OUTPUTDIR, otherwise
@@ -75,7 +75,7 @@ ifneq ($(LIBS_DIR), )
$(eval $(call SetupCopyFiles, LINK_LIBS, \
SRC := $(LIBS_DIR), \
DEST := $(JDK_OUTPUTDIR)/lib, \
FILES := $(filter-out %$(SHARED_LIBRARY_SUFFIX), $(call FindFiles, $(LIBS_DIR))), \
FILES := $(filter-out %$(SHARED_LIBRARY_SUFFIX), $(call CacheFind, $(LIBS_DIR))), \
MACRO := $(LINK_MACRO), \
LOG_ACTION := $(LOG_ACTION), \
))
@@ -87,7 +87,7 @@ ifneq ($(CMDS_DIR), )
$(eval $(call SetupCopyFiles, COPY_CMDS, \
SRC := $(CMDS_DIR), \
DEST := $(JDK_OUTPUTDIR)/bin, \
FILES := $(call FindFiles, $(CMDS_DIR)), \
FILES := $(call CacheFind, $(CMDS_DIR)), \
))
TARGETS += $(COPY_CMDS)
endif
@@ -96,7 +96,7 @@ ifneq ($(CONF_DIR), )
$(eval $(call SetupCopyFiles, COPY_CONF, \
SRC := $(CONF_DIR), \
DEST := $(JDK_OUTPUTDIR)/lib, \
FILES := $(call FindFiles, $(CONF_DIR)), \
FILES := $(call CacheFind, $(CONF_DIR)), \
))
TARGETS += $(COPY_CONF)
endif

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 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
@@ -23,34 +23,30 @@
# questions.
#
# This makefile creates an image of the optional static versions of certain JDK
# libraries.
default: all
include $(SPEC)
include MakeBase.gmk
include Modules.gmk
ALL_MODULES = $(call FindAllModules)
##########################################################################################
################################################################################
### CLDRConverter needs the JRE time zone names from the java.base source.
TARGETS :=
define cldrconverter_copytznames
$(MKDIR) -p '$(@D)'
$(RM) '$@'
$(SED) -e "s/package sun.util.resources/package build.tools.cldrconverter/" \
-e "s/extends TimeZoneNamesBundle//" \
-e "s/protected final/static final/" \
< $(<) > $@
endef
$(foreach m, $(ALL_MODULES), \
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS_$m, \
FLATTEN := true, \
SRC := $(SUPPORT_OUTPUTDIR)/native/$m, \
DEST := $(STATIC_LIBS_IMAGE_DIR)/lib, \
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
$(call FindFiles, $(SUPPORT_OUTPUTDIR)/native/$m/*/static)), \
)) \
$(eval TARGETS += $$(COPY_STATIC_LIBS_$m)) \
)
$(eval $(call SetupCopyFiles,COPY_INTERIM_CLDRCONVERTER, \
SRC := $(TOPDIR)/src/java.base/share/classes/sun/util/resources, \
DEST := $(BUILDTOOLS_OUTPUTDIR)/interim_cldrconverter_classes/build/tools/cldrconverter, \
FILES := TimeZoneNames.java, \
MACRO := cldrconverter_copytznames))
##########################################################################################
################################################################################
all: $(TARGETS)
.PHONY: all
all: $(COPY_INTERIM_CLDRCONVERTER)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 2016, 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
@@ -39,7 +39,7 @@ MODULES_TO_COPY := $(sort \
COPY_CLASSES_TARGET := $(BUILDJDK_OUTPUTDIR)/jdk/modules/java.base/_the.buildjdk-copy-marker
$(COPY_CLASSES_TARGET): $(call FindFiles, $(wildcard \
$(COPY_CLASSES_TARGET): $(call CacheFind, $(wildcard \
$(addprefix $(JDK_OUTPUTDIR)/modules/, $(MODULES_TO_COPY))))
$(ECHO) $(LOG_INFO) "Copying java modules to buildjdk: $(MODULES_TO_COPY)"
$(RM) -r $(BUILDJDK_OUTPUTDIR)/jdk/modules
@@ -56,7 +56,7 @@ TARGETS += $(COPY_CLASSES_TARGET)
$(eval $(call SetupCopyFiles, COPY_SUPPORT_HEADERS, \
SRC := $(OUTPUTDIR), \
DEST := $(BUILDJDK_OUTPUTDIR), \
FILES := $(call FindFiles, $(wildcard \
FILES := $(call CacheFind, $(wildcard \
$(addprefix $(SUPPORT_OUTPUTDIR)/headers/, $(MODULES_TO_COPY)))), \
))

View File

@@ -1,5 +1,4 @@
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2017, 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
@@ -52,79 +51,33 @@ INCLUDE_HEADERS_DIR ?= $(firstword $(wildcard $(addsuffix /$(MODULE), \
MAN_DIR ?= $(firstword $(wildcard $(addsuffix /$(MODULE), \
$(SUPPORT_OUTPUTDIR)/modules_man $(IMPORT_MODULES_MAN))))
$(call FillFindCache, \
$(eval $(call FillCacheFind, \
$(LIBS_DIR) $(CMDS_DIR) $(CONF_DIR) $(CLASSES_DIR) \
)
))
ifneq ($(LIBS_DIR), )
DEPS += $(call FindFiles, $(LIBS_DIR))
ifeq ($(OPENJDK_TARGET_OS)+$(SHIP_DEBUG_SYMBOLS), windows+public)
# For public debug symbols on Windows, we have to use stripped pdbs and rename them
rename_stripped = $(patsubst %.stripped.pdb,%.pdb,$1)
LIBS_DIR_FILTERED := $(subst modules_libs,modules_libs_filtered, $(LIBS_DIR))
FILES_LIBS := $(filter-out %.pdb, $(call FindFiles, $(LIBS_DIR))) \
$(filter %.stripped.pdb, $(call FindFiles, $(LIBS_DIR)))
$(eval $(call SetupCopyFiles, COPY_FILTERED_LIBS, \
SRC := $(LIBS_DIR), \
DEST := $(LIBS_DIR_FILTERED), \
FILES := $(FILES_LIBS), \
NAME_MACRO := rename_stripped, \
))
DEPS += $(COPY_FILTERED_LIBS)
JMOD_FLAGS += --libs $(LIBS_DIR_FILTERED)
else
JMOD_FLAGS += --libs $(LIBS_DIR)
endif
JMOD_FLAGS += --libs $(LIBS_DIR)
DEPS += $(call CacheFind, $(LIBS_DIR))
endif
ifneq ($(CMDS_DIR), )
DEPS += $(call FindFiles, $(CMDS_DIR))
ifeq ($(OPENJDK_TARGET_OS)+$(SHIP_DEBUG_SYMBOLS), windows+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
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))))
$(eval $(call SetupCopyFiles, COPY_FILTERED_CMDS, \
SRC := $(CMDS_DIR), \
DEST := $(CMDS_DIR_FILTERED), \
FILES := $(FILES_CMDS), \
NAME_MACRO := rename_stripped, \
))
DEPS += $(COPY_FILTERED_CMDS)
JMOD_FLAGS += --cmds $(CMDS_DIR_FILTERED)
else ifeq ($(OPENJDK_TARGET_OS)+$(SHIP_DEBUG_SYMBOLS), windows+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
JMOD_FLAGS += --cmds $(CMDS_DIR)
DEPS += $(call CacheFind, $(CMDS_DIR))
endif
ifneq ($(CONF_DIR), )
JMOD_FLAGS += --config $(CONF_DIR)
DEPS += $(call FindFiles, $(CONF_DIR))
DEPS += $(call CacheFind, $(CONF_DIR))
endif
ifneq ($(CLASSES_DIR), )
JMOD_FLAGS += --class-path $(CLASSES_DIR)
DEPS += $(call FindFiles, $(CLASSES_DIR))
DEPS += $(call CacheFind, $(CLASSES_DIR))
endif
ifneq ($(INCLUDE_HEADERS_DIR), )
JMOD_FLAGS += --header-files $(INCLUDE_HEADERS_DIR)
DEPS += $(call FindFiles, $(INCLUDE_HEADERS_DIR))
DEPS += $(call CacheFind, $(INCLUDE_HEADERS_DIR))
endif
ifneq ($(MAN_DIR), )
JMOD_FLAGS += --man-pages $(MAN_DIR)
DEPS += $(call FindFiles, $(MAN_DIR))
DEPS += $(call CacheFind, $(MAN_DIR))
endif
# If a specific modules_legal dir exists for this module, only pick up files
@@ -138,7 +91,7 @@ LEGAL_NOTICES := \
)
LEGAL_NOTICES_PATH := $(call PathList, $(LEGAL_NOTICES))
DEPS += $(call FindFiles, $(LEGAL_NOTICES))
DEPS += $(call CacheFind, $(LEGAL_NOTICES))
JMOD_FLAGS += --legal-notices $(LEGAL_NOTICES_PATH)
@@ -192,7 +145,7 @@ endif
# the actual command. Filter that out using wildcard before adding to DEPS.
DEPS += $(wildcard $(JMOD_CMD))
ifeq ($(EXTERNAL_BUILDJDK), false)
DEPS += $(call FindFiles, $(JDK_OUTPUTDIR)/modules/jdk.jlink/jdk/tools/jmod)
DEPS += $(call CacheFind, $(JDK_OUTPUTDIR)/modules/jdk.jlink/jdk/tools/jmod)
endif
# If creating interim versions of jmods, certain files need to be filtered out
@@ -201,15 +154,7 @@ ifeq ($(INTERIM_JMOD), true)
DEPS := $(filter-out $(SUPPORT_OUTPUTDIR)/modules_libs/java.base/classlist, $(DEPS))
endif
ifeq ($(OPENJDK_TARGET_OS), windows)
ifeq ($(SHIP_DEBUG_SYMBOLS), )
JMOD_FLAGS += --exclude '**{_the.*,_*.marker,*.diz,*.pdb,*.map}'
else
JMOD_FLAGS += --exclude '**{_the.*,_*.marker,*.diz,*.map}'
endif
else
JMOD_FLAGS += --exclude '**{_the.*,_*.marker,*.diz,*.debuginfo,*.dSYM/**,*.dSYM}'
endif
JMOD_FLAGS += --exclude '**{_the.*,_*.marker,*.diz,*.debuginfo,*.dSYM/**,*.dSYM,*.pdb,*.map}'
# Create jmods in a temp dir and then move them into place to keep the
# module path in $(IMAGES_OUTPUTDIR)/jmods valid at all times.

View File

@@ -168,6 +168,14 @@ JAVADOC_TOP := \
font-family: DejaVu Sans, Arial, Helvetica, sans-serif; \
font-weight: normal;">$(DRAFT_TEXT)</div>
JDK_INDEX_CONTENT := \
<!DOCTYPE html> \
<html lang="en"> \
<head> \
<meta http-equiv="refresh" content="0;url=api/index.html"> \
</head> \
</html>
################################################################################
# JDK javadoc titles/text snippets
@@ -333,7 +341,7 @@ define SetupApiDocsGenerationBody
$$(SUPPORT_OUTPUTDIR)/docs/$1.vardeps)
# Get a list of all files in all the source dirs for all included modules
$1_SOURCE_DEPS := $$(call FindFiles, $$(wildcard $$(foreach module, \
$1_SOURCE_DEPS := $$(call CacheFind, $$(wildcard $$(foreach module, \
$$($1_ALL_MODULES), $$(call FindModuleSrcDirs, $$(module)))))
# Javadoc creates a lot of files but use index.html as a marker
@@ -477,11 +485,18 @@ $(eval $(call SetupApiDocsGeneration, REFERENCE_API, \
################################################################################
# Copy the global resources, including the top-level redirect index.html
JDK_INDEX_HTML := $(DOCS_OUTPUTDIR)/index.html
$(JDK_INDEX_HTML):
$(ECHO) '$(JDK_INDEX_CONTENT)' > $@
JDK_INDEX_TARGETS += $(JDK_INDEX_HTML)
# Copy the global resources
GLOBAL_SPECS_RESOURCES_DIR := $(TOPDIR)/make/data/docs-resources/
$(eval $(call SetupCopyFiles, COPY_GLOBAL_RESOURCES, \
SRC := $(GLOBAL_SPECS_RESOURCES_DIR), \
FILES := $(call FindFiles, $(GLOBAL_SPECS_RESOURCES_DIR)), \
FILES := $(call CacheFind, $(GLOBAL_SPECS_RESOURCES_DIR)), \
DEST := $(DOCS_OUTPUTDIR), \
))
JDK_INDEX_TARGETS += $(COPY_GLOBAL_RESOURCES)
@@ -506,10 +521,10 @@ COPY_SPEC_FILTER := %.html %.gif %.jpg %.mib %.css
$(foreach m, $(ALL_MODULES), \
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
$(foreach d, $(SPECS_$m), \
$(if $(filter $(COPY_SPEC_FILTER), $(call FindFiles, $d)), \
$(if $(filter $(COPY_SPEC_FILTER), $(call CacheFind, $d)), \
$(eval $(call SetupCopyFiles, COPY_$m, \
SRC := $d, \
FILES := $(filter $(COPY_SPEC_FILTER), $(call FindFiles, $d)), \
FILES := $(filter $(COPY_SPEC_FILTER), $(call CacheFind, $d)), \
DEST := $(DOCS_OUTPUTDIR)/specs/, \
)) \
$(eval JDK_SPECS_TARGETS += $(COPY_$m)) \
@@ -526,11 +541,11 @@ ifeq ($(ENABLE_FULL_DOCS), true)
$(foreach m, $(ALL_MODULES), \
$(eval SPECS_$m := $(call FindModuleSpecsDirs, $m)) \
$(foreach d, $(SPECS_$m), \
$(if $(filter %.md, $(call FindFiles, $d)), \
$(if $(filter %.md, $(call CacheFind, $d)), \
$(eval $m_$d_NAME := CONVERT_MARKDOWN_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
$(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
SRC := $d, \
FILES := $(filter %.md, $(call FindFiles, $d)), \
FILES := $(filter %.md, $(call CacheFind, $d)), \
DEST := $(DOCS_OUTPUTDIR)/specs/, \
CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
)) \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2016, 2018, 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
@@ -84,17 +84,6 @@ $(eval $(call SetupCopyFiles, COPY_CLASSLIST, \
TARGETS += $(COPY_CLASSLIST)
# In case of shipping public debug symbols on windows, there is another temporary
# location from where jmods are compiled - need to deploy classlist there, too.
ifeq ($(OPENJDK_TARGET_OS)+$(SHIP_DEBUG_SYMBOLS), windows+public)
$(eval $(call SetupCopyFiles, COPY_CLASSLIST_TO_FILTERED, \
FILES := $(CLASSLIST_FILE), \
DEST := $(SUPPORT_OUTPUTDIR)/modules_libs_filtered/java.base, \
))
TARGETS += $(COPY_CLASSLIST_TO_FILTERED)
endif
# Copy the default_jli_trace.txt file into jdk.jlink
$(eval $(call SetupCopyFiles, COPY_JLI_TRACE, \
FILES := $(JLI_TRACE_FILE), \

View File

@@ -81,9 +81,7 @@ ifneq ($(MOD_FILES), )
$(call DependOnVariable, ALL_MODULES)
$(MKDIR) -p $(@D)
$(RM) $@ $@.tmp
$(TOOL_GENMODULEINFOSOURCE) \
$(if $(call equals, $(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT), true), -d) \
-o $@.tmp \
$(TOOL_GENMODULEINFOSOURCE) -o $@.tmp \
--source-file $< \
--modules $(call CommaList, $(ALL_MODULES)) \
$(MOD_FILES)

View File

@@ -1,57 +0,0 @@
#
# Copyright (c) 2020, Red Hat Inc.
# 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.
#
# This makefile creates a jdk image overlayed with statically linked core
# libraries.
default: all
include $(SPEC)
include MakeBase.gmk
################################################################################
TARGETS :=
$(eval $(call SetupCopyFiles, COPY_JDK_IMG, \
SRC := $(JDK_IMAGE_DIR)/, \
DEST := $(GRAAL_BUILDER_IMAGE_DIR)/, \
FILES := $(call FindFiles, $(JDK_IMAGE_DIR)/), \
))
TARGETS += $(COPY_JDK_IMG)
$(eval $(call SetupCopyFiles, COPY_STATIC_LIBS, \
SRC := $(STATIC_LIBS_IMAGE_DIR)/lib, \
DEST := $(GRAAL_BUILDER_IMAGE_DIR)/lib, \
FILES := $(filter %$(STATIC_LIBRARY_SUFFIX), \
$(call FindFiles, $(STATIC_LIBS_IMAGE_DIR)/lib)), \
))
TARGETS += $(COPY_STATIC_LIBS)
################################################################################
all: $(TARGETS)
.PHONY: all

View File

@@ -43,7 +43,7 @@ help:
$(info $(_) make images # Create a complete jdk image)
$(info $(_) # (alias for product-images))
$(info $(_) make <name>-image # Build just the image for any of: )
$(info $(_) # jdk, test, docs, symbols, legacy-jre, static-libs)
$(info $(_) # jdk, test, docs, symbols, legacy-jre)
$(info $(_) make <phase> # Build the specified phase and everything it depends on)
$(info $(_) # (gensrc, java, copy, libs, launchers, gendata, rmic))
$(info $(_) make *-only # Applies to most targets and disables building the)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2018, 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
@@ -276,14 +276,21 @@ endif
ifeq ($(GCOV_ENABLED), true)
$(eval $(call SetupCopyFiles,COPY_GCOV_GCNO, \
GCOV_FIND_EXPR := -type f -name "*.gcno"
$(eval $(call SetupCopyFiles,COPY_HOTSPOT_GCOV_GCNO, \
SRC := $(OUTPUTDIR), \
DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \
FILES := $(call FindFiles, $(HOTSPOT_OUTPUTDIR) \
$(SUPPORT_OUTPUTDIR)/native, *.gcno) \
))
FILES := $(shell $(FIND) $(HOTSPOT_OUTPUTDIR) $(GCOV_FIND_EXPR))))
SYMBOLS_TARGETS += $(COPY_GCOV_GCNO)
SYMBOLS_TARGETS += $(COPY_HOTSPOT_GCOV_GCNO)
$(eval $(call SetupCopyFiles,COPY_JDK_GCOV_GCNO, \
SRC := $(OUTPUTDIR), \
DEST := $(SYMBOLS_IMAGE_DIR)/gcov, \
FILES := $(shell $(FIND) $(SUPPORT_OUTPUTDIR)/native $(GCOV_FIND_EXPR))))
SYMBOLS_TARGETS += $(COPY_JDK_GCOV_GCNO)
endif
@@ -301,7 +308,6 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
else
LIBS_TARGET_SUBDIR := lib
endif
CMDS_TARGET_SUBDIR := bin
# Param 1 - dir to find debuginfo files in
FindDebuginfoFiles = \
@@ -317,16 +323,13 @@ else
# On Macosx, if debug symbols have not been zipped, find all files inside *.dSYM
# dirs.
ifeq ($(OPENJDK_TARGET_OS), macosx)
$(call FillFindCache, \
$(SUPPORT_OUTPUTDIR)/modules_libs $(SUPPORT_OUTPUTDIR)/modules_cmds)
$(eval $(call FillCacheFind, \
$(SUPPORT_OUTPUTDIR)/modules_cmds $(SUPPORT_OUTPUTDIR)/modules_libs))
FindDebuginfoFiles = \
$(if $(wildcard $1), $(call containing, .dSYM/, $(call FindFiles, $1)))
$(if $(wildcard $1), $(call containing, .dSYM/, $(call CacheFind, $1)))
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), \
@@ -337,13 +340,6 @@ SetupCopyDebuginfo = \
$(SUPPORT_OUTPUTDIR)/modules_libs/$m), \
)) \
$(eval $1_TARGETS += $$(COPY_$1_LIBS_DEBUGINFO_$m)) \
$(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)), \
)) \
$(eval $1_TARGETS += $$(COPY_$1_CMDS_DEBUGINFO_$m)) \
)
# No space before argument to avoid having to put $(strip ) everywhere in

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2017, 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
@@ -52,13 +52,13 @@ ifeq ($(OPENJDK_TARGET_OS), macosx)
$(eval $(call SetupCopyFiles, COPY_JDK_IMAGE, \
SRC := $(JDK_IMAGE_DIR), \
DEST := $(JDK_MACOSX_CONTENTS_DIR)/Home, \
FILES := $(call FindFiles, $(JDK_IMAGE_DIR)), \
FILES := $(call CacheFind, $(JDK_IMAGE_DIR)), \
))
$(eval $(call SetupCopyFiles, COPY_JRE_IMAGE, \
SRC := $(JRE_IMAGE_DIR), \
DEST := $(JRE_MACOSX_CONTENTS_DIR)/Home, \
FILES := $(call FindFiles, $(JRE_IMAGE_DIR)), \
FILES := $(call CacheFind, $(JRE_IMAGE_DIR)), \
))
$(eval $(call SetupCopyFiles, COPY_LIBJLI_JDK, \

View File

@@ -1,5 +1,5 @@
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
#
# Copyright (c) 2011, 2018, 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
@@ -78,9 +78,13 @@ ifneq ($(CREATING_BUILDJDK), true)
interim-rmic:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk)
interim-tzdb:
interim-cldrconverter:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimCLDRConverter.gmk)
interim-tzdb:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimTZDB.gmk)
buildtools-jdk:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileToolsJdk.gmk)
@@ -92,7 +96,7 @@ ifneq ($(CREATING_BUILDJDK), true)
endif
ALL_TARGETS += buildtools-langtools interim-langtools \
interim-rmic interim-tzdb buildtools-jdk buildtools-modules \
interim-rmic interim-cldrconverter interim-tzdb buildtools-jdk buildtools-modules \
buildtools-hotspot
################################################################################
@@ -136,7 +140,7 @@ ifneq ($(CREATING_BUILDJDK), true)
define DeclareModuleInfoRecipe
$1-gensrc-moduleinfo:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) \
-f gensrc/GensrcModuleInfo.gmk MODULE=$1)
-f GensrcModuleInfo.gmk MODULE=$1)
$1-gensrc: $1-gensrc-moduleinfo
endef
@@ -221,21 +225,6 @@ $(eval $(call DeclareRecipesForPhase, LIBS, \
ALL_TARGETS += $(LIBS_TARGETS)
################################################################################
# Targets for compiling static versions of certain native libraries. These do
# not end up in the jmods or the normal JDK image, but are instead bundled into
# a special deliverable.
$(eval $(call DeclareRecipesForPhase, STATIC_LIBS, \
TARGET_SUFFIX := static-libs, \
FILE_PREFIX := Lib, \
MAKE_SUBDIR := lib, \
CHECK_MODULES := $(ALL_MODULES), \
USE_WRAPPER := true, \
EXTRA_ARGS := STATIC_LIBS=true, \
))
ALL_TARGETS += $(STATIC_LIBS_TARGETS)
################################################################################
# Targets for compiling native executables
$(eval $(call DeclareRecipesForPhase, LAUNCHER, \
@@ -277,52 +266,6 @@ hotspot-ide-project:
ALL_TARGETS += $(HOTSPOT_VARIANT_TARGETS) $(HOTSPOT_VARIANT_GENSRC_TARGETS) \
$(HOTSPOT_VARIANT_LIBS_TARGETS) hotspot-ide-project
################################################################################
# Generate libs and launcher targets for creating compile_commands.json fragments
define DeclareCompileCommandsRecipe
$1-compile-commands:
$$(call LogInfo, Generating compile_commands.json fragments for $1)
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Main.gmk $1-only \
GENERATE_COMPILE_COMMANDS_ONLY=true)
COMPILE_COMMANDS_TARGETS_$2 += $1-compile-commands
endef
$(foreach t, $(HOTSPOT_VARIANT_LIBS_TARGETS), \
$(eval $(call DeclareCompileCommandsRecipe,$t,HOTSPOT)) \
)
$(foreach t, $(LIBS_TARGETS) $(LAUNCHER_TARGETS), \
$(eval $(call DeclareCompileCommandsRecipe,$t,JDK)) \
)
compile-commands compile-commands-hotspot:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileCommands.gmk)
ALL_TARGETS += $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
ALL_TARGETS += compile-commands compile-commands-hotspot
################################################################################
# VS Code projects
vscode-project:
+($(CD) $(TOPDIR)/make/vscode && $(MAKE) $(MAKE_ARGS) -f CreateVSCodeProject.gmk \
VSCODE_INDEXER=cpptools)
vscode-project-clangd:
+($(CD) $(TOPDIR)/make/vscode && $(MAKE) $(MAKE_ARGS) -f CreateVSCodeProject.gmk \
VSCODE_INDEXER=clangd)
vscode-project-rtags:
+($(CD) $(TOPDIR)/make/vscode && $(MAKE) $(MAKE_ARGS) -f CreateVSCodeProject.gmk \
VSCODE_INDEXER=rtags)
vscode-project-ccls:
+($(CD) $(TOPDIR)/make/vscode && $(MAKE) $(MAKE_ARGS) -f CreateVSCodeProject.gmk \
VSCODE_INDEXER=ccls)
ALL_TARGETS += vscode-project vscode-project-clangd vscode-project-rtags \
vscode-project-ccls
################################################################################
# Build demos targets
@@ -395,9 +338,6 @@ legacy-jre-image:
symbols-image:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Images.gmk symbols)
static-libs-image:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f StaticLibsImage.gmk)
mac-jdk-bundle:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f MacBundles.gmk jdk-bundle)
@@ -410,13 +350,10 @@ release-file:
exploded-image-optimize:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f ExplodedImageOptimize.gmk)
graal-builder-image:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f GraalBuilderImage.gmk)
ALL_TARGETS += store-source-revision create-source-revision-tracker bootcycle-images zip-security \
zip-source jrtfs-jar jdk-image legacy-jre-image \
symbols-image static-libs-image mac-jdk-bundle mac-legacy-jre-bundle \
release-file exploded-image-optimize graal-builder-image
symbols-image mac-jdk-bundle mac-legacy-jre-bundle \
release-file exploded-image-optimize
################################################################################
# Docs targets
@@ -626,12 +563,8 @@ test-jdk-jtreg-native:
test-make:
($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk $(TEST_TARGET))
test-compile-commands:
($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f TestMake.gmk test-compile-commands)
ALL_TARGETS += test test-hotspot-jtreg test-hotspot-jtreg-native \
test-hotspot-internal test-hotspot-gtest test-jdk-jtreg-native test-make \
test-compile-commands
test-hotspot-internal test-hotspot-gtest test-jdk-jtreg-native test-make
################################################################################
# Bundles
@@ -648,11 +581,7 @@ test-bundles:
docs-bundles:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk docs-bundles)
static-libs-bundles:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk static-libs-bundles)
ALL_TARGETS += product-bundles legacy-bundles test-bundles docs-bundles \
static-libs-bundles
ALL_TARGETS += product-bundles legacy-bundles test-bundles docs-bundles
################################################################################
# Install targets
@@ -685,7 +614,7 @@ else
interim-langtools: $(INTERIM_LANGTOOLS_GENSRC_TARGETS)
buildtools-jdk: interim-langtools interim-tzdb
buildtools-jdk: interim-langtools interim-cldrconverter interim-tzdb
buildtools-hotspot: interim-langtools
@@ -707,6 +636,7 @@ else
# Declare dependencies between hotspot-<variant>* targets
$(foreach v, $(JVM_VARIANTS), \
$(eval hotspot-$v: hotspot-$v-gensrc hotspot-$v-libs) \
$(eval hotspot-$v-gensrc: java.base-copy) \
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
)
@@ -717,14 +647,10 @@ else
# If not already set, set the JVM variant target so that the JVM will be built.
JVM_MAIN_LIB_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-libs
JVM_MAIN_GENSRC_TARGETS ?= hotspot-$(JVM_VARIANT_MAIN)-gensrc
# Building one JVM variant is enough to start building the other libs
$(LIBS_TARGETS): $(JVM_MAIN_LIB_TARGETS)
# Static libs depend on hotspot gensrc
$(STATIC_LIBS_TARGETS): $(JVM_MAIN_GENSRC_TARGETS)
$(LAUNCHER_TARGETS): java.base-libs
ifeq ($(STATIC_BUILD), true)
@@ -773,17 +699,16 @@ else
# copied and processed.
java.desktop-gensrc-src: java.base-gensrc java.base-copy
# The annotation processing for jdk.internal.vm.compiler
# and jdk.internal.vm.compiler.management needs classes from the current JDK.
# The annotation processing for jdk.internal.vm.ci and jdk.internal.vm.compiler
# needs classes from the current JDK.
jdk.internal.vm.ci-gensrc-src: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.ci))
jdk.internal.vm.compiler-gensrc-src: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler))
jdk.internal.vm.compiler.management-gensrc-src: $(addsuffix -java, \
$(call FindTransitiveDepsForModule, jdk.internal.vm.compiler.management))
# For these modules, the gensrc step is generating a module-info.java.extra
# For jdk.internal.vm.compiler, the gensrc step is generating a module-info.java.extra
# file to be processed by the gensrc-moduleinfo target.
jdk.internal.vm.compiler-gensrc-moduleinfo: jdk.internal.vm.compiler-gensrc-src
jdk.internal.vm.compiler.management-gensrc-moduleinfo: jdk.internal.vm.compiler.management-gensrc-src
jdk.jdeps-gendata: java rmic
@@ -818,31 +743,6 @@ else
$(foreach m, $(ALL_MODULES), $(eval $m-jmod: $($(m)_JMOD_DEPS)))
$(foreach m, $(INTERIM_IMAGE_MODULES), $(eval $m-interim-jmod: $($(m)_JMOD_DEPS)))
# Setup the minimal set of generated native source dependencies for hotspot
$(foreach v, $(JVM_VARIANTS), \
$(eval hotspot-$v-libs-compile-commands: hotspot-$v-gensrc) \
$(foreach m, $(filter java.desktop jdk.hotspot.agent, $(GENSRC_MODULES)), \
$(eval hotspot-$v-libs-compile-commands: $m-gensrc)) \
)
# For the full JDK compile commands, create all possible generated sources
$(foreach m, $(GENSRC_MODULES), $(eval $m-libs-compile-commands: $m-gensrc))
$(foreach m, $(filter $(JAVA_MODULES), $(LIBS_MODULES)), $(eval $m-libs-compile-commands: $m-java))
$(COMPILE_COMMANDS_TARGETS_HOTSPOT): clean-compile-commands
$(COMPILE_COMMANDS_TARGETS_JDK): clean-compile-commands
compile-commands-hotspot: $(COMPILE_COMMANDS_TARGETS_HOTSPOT)
compile-commands: $(COMPILE_COMMANDS_TARGETS_HOTSPOT) $(COMPILE_COMMANDS_TARGETS_JDK)
# The -static-libs targets depend on -java as well as java.base-copy.
$(foreach m, $(filter $(JAVA_MODULES), $(STATIC_LIBS_MODULES)), \
$(eval $m-static-libs: $m-java java.base-copy))
vscode-project: compile-commands
vscode-project-clangd: compile-commands
vscode-project-rtags: compile-commands
vscode-project-ccls: compile-commands
# Jmods cannot be created until we have the jmod tool ready to run. During
# a normal build we run it from the exploded image, but when cross compiling
# it's run from the buildjdk, which is either created at build time or user
@@ -905,10 +805,6 @@ else
legacy-jre-image: jmods release-file
symbols-image: $(LIBS_TARGETS) $(LAUNCHER_TARGETS)
static-libs-image: $(STATIC_LIBS_TARGETS)
graal-builder-image: jdk-image static-libs-image
mac-jdk-bundle: jdk-image
mac-legacy-jre-bundle: legacy-jre-image
@@ -961,8 +857,6 @@ else
test-make: clean-test-make
test-compile-commands: compile-commands
build-test-lib: exploded-image-optimize
build-test-failure-handler: interim-langtools
@@ -1002,8 +896,6 @@ else
docs-bundles: docs-image
static-libs-bundles: static-libs-image
generate-summary: jmods buildtools-modules
update-x11wrappers: java.base-copy buildtools-jdk
@@ -1018,10 +910,6 @@ JVM_TOOLS_TARGETS ?= buildtools-hotspot
buildtools: buildtools-langtools interim-langtools interim-rmic \
buildtools-jdk $(JVM_TOOLS_TARGETS)
# Declare dependencies from hotspot-<variant> targets
$(foreach v, $(JVM_VARIANTS), \
$(eval hotspot-$v: hotspot-$v-gensrc hotspot-$v-libs) \
)
hotspot: $(HOTSPOT_VARIANT_TARGETS)
# Create targets hotspot-libs and hotspot-gensrc.
@@ -1042,8 +930,6 @@ rmic: $(RMIC_TARGETS)
libs: $(LIBS_TARGETS)
static-libs: $(STATIC_LIBS_TARGETS)
launchers: $(LAUNCHER_TARGETS)
jmods: $(JMOD_TARGETS)
@@ -1150,10 +1036,10 @@ test-image: prepare-test-image \
all-images: product-images test-image docs-image
# all-bundles packages all our deliverables as tar.gz bundles.
all-bundles: product-bundles test-bundles docs-bundles static-libs-bundles
all-bundles: product-bundles test-bundles docs-bundles
ALL_TARGETS += buildtools hotspot hotspot-libs hotspot-gensrc gensrc gendata \
copy java rmic libs static-libs launchers jmods \
copy java rmic libs launchers jmods \
jdk.jdwp.agent-gensrc $(ALL_MODULES) demos \
exploded-image-base exploded-image \
create-buildjdk docs-jdk-api docs-javase-api docs-reference-api docs-jdk \
@@ -1200,15 +1086,12 @@ CLEAN_MODULE_PHASE_TARGETS := $(addprefix clean-, $(foreach m, $(ALL_MODULES), \
# Remove everything, except the output from configure.
clean: $(CLEAN_DIR_TARGETS)
($(CD) $(OUTPUTDIR) && $(RM) -r build*.log* compile_commands.json)
($(CD) $(OUTPUTDIR) && $(RM) -r build*.log*)
$(ECHO) Cleaned all build artifacts.
clean-docs:
$(call CleanDocs)
clean-compile-commands:
$(call CleanMakeSupportDir,compile-commands)
$(CLEAN_DIR_TARGETS):
$(call CleanDir,$(patsubst clean-%, %, $@))
@@ -1250,9 +1133,9 @@ dist-clean: clean
)
$(ECHO) Cleaned everything, you will have to re-run configure.
ALL_TARGETS += clean clean-docs clean-compile-commands dist-clean $(CLEAN_DIR_TARGETS) \
$(CLEAN_SUPPORT_DIR_TARGETS) $(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) \
$(CLEAN_MODULE_TARGETS) $(CLEAN_MODULE_PHASE_TARGETS)
ALL_TARGETS += clean clean-docs dist-clean $(CLEAN_DIR_TARGETS) $(CLEAN_SUPPORT_DIR_TARGETS) \
$(CLEAN_TEST_TARGETS) $(CLEAN_PHASE_TARGETS) $(CLEAN_MODULE_TARGETS) \
$(CLEAN_MODULE_PHASE_TARGETS)
################################################################################
# Declare *-only targets for each normal target

View File

@@ -65,13 +65,6 @@ define CleanSupportDir
@$(PRINTF) " done\n"
endef
define CleanMakeSupportDir
@$(PRINTF) "Cleaning $(strip $1) make support artifacts ..."
@$(PRINTF) "\n" $(LOG_DEBUG)
$(RM) -r $(MAKESUPPORT_OUTPUTDIR)/$(strip $1)
@$(PRINTF) " done\n"
endef
define CleanTest
@$(PRINTF) "Cleaning test $(strip $1) ..."
@$(PRINTF) "\n" $(LOG_DEBUG)
@@ -144,7 +137,7 @@ define DeclareRecipeForModuleMakefile
$$(addprefix -I, $$(PHASE_MAKEDIRS) \
$$(addsuffix /$$($1_MAKE_SUBDIR), $$(PHASE_MAKEDIRS)) \
) \
MODULE=$2 MAKEFILE_PREFIX=$$($1_FILE_PREFIX) $$($1_EXTRA_ARGS))
MODULE=$2 MAKEFILE_PREFIX=$$($1_FILE_PREFIX))
else
+($(CD) $$(dir $$(firstword $$(wildcard $$(addsuffix \
/$$($1_MAKE_SUBDIR)/$$($1_FILE_PREFIX)-$2.gmk, $$(PHASE_MAKEDIRS))))) \
@@ -153,7 +146,7 @@ define DeclareRecipeForModuleMakefile
$$(addprefix -I, $$(PHASE_MAKEDIRS) \
$$(addsuffix /$$($1_MAKE_SUBDIR), $$(PHASE_MAKEDIRS)) \
) \
MODULE=$2 $$($1_EXTRA_ARGS) \
MODULE=$2 \
)
endif
@@ -193,13 +186,12 @@ endef
# CHECK_MODULES : List of modules to try
# MULTIPLE_MAKEFILES : Set to true to handle makefiles for the same module and
# phase in multiple repos
# EXTRA_ARGS : Add extra make args to each makefile call
# Exported variables:
# $1_MODULES : All modules that had rules generated
# $1_TARGETS : All targets generated
define DeclareRecipesForPhase
$(foreach i,2 3 4 5 6 7 8, $(if $(strip $($i)),$(strip $1)_$(strip $($i)))$(NEWLINE))
$(if $(9),$(error Internal makefile error: Too many arguments to \
$(foreach i,2 3 4 5 6 7, $(if $(strip $($i)),$(strip $1)_$(strip $($i)))$(NEWLINE))
$(if $(8),$(error Internal makefile error: Too many arguments to \
DeclareRecipesForPhase, please update MakeHelper.gmk))
$$(foreach m, $$($(strip $1)_CHECK_MODULES), \

View File

@@ -100,9 +100,5 @@ $(eval $(call SetupCopyFiles, COPY_CONF, \
$(TARGETS)), \
))
ifeq ($(GENERATE_COMPILE_COMMANDS_ONLY), true)
all: $(filter $(MAKESUPPORT_OUTPUTDIR)/compile-commands/%, $(TARGETS))
else
all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \
$(COPY_INCLUDE) $(COPY_CMDS) $(COPY_CONF) $(LINK_LIBS_TO_LIB)
endif
all: $(TARGETS) $(COPY_LIBS_TO_BIN) $(COPY_LIBS_TO_LIB) \
$(COPY_INCLUDE) $(COPY_CMDS) $(COPY_CONF) $(LINK_LIBS_TO_LIB)

View File

@@ -83,7 +83,7 @@ endif
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR, \
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
))
# Helper function to propagate TEST_OPTS values.
@@ -141,93 +141,8 @@ ifneq ($(wildcard $(JTREG_FAILURE_HANDLER)), )
-timeoutHandlerTimeout:0
endif
GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, \
$(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, \
$(GTEST_LAUNCHER_DIRS)))
################################################################################
# Optionally create AOT libraries for specified modules before running tests.
# Note, this could not be done during JDK build time.
################################################################################
# Note, this could not be done during JDK build time.
# Parameter 1 is the name of the rule.
#
# Remaining parameters are named arguments.
# MODULE The module to generate a library for
# BIN Output directory in which to put the library
# VM_OPTIONS List of JVM arguments to use when creating library
# OPTIONS_VAR Name of variable to put AOT java options in
# PREREQS_VAR Name of variable to put all AOT prerequisite rule targets in
# for test rules to depend on
#
SetupAotModule = $(NamedParamsMacroTemplate)
define SetupAotModuleBody
$1_AOT_LIB := $$($1_BIN)/$$(call SHARED_LIBRARY,$$($1_MODULE))
$1_AOT_CCLIST := $$(wildcard $$(TOPDIR)/test/hotspot/jtreg/compiler/aot/scripts/$$($1_MODULE)-list.txt)
# Create jaotc flags.
# VM flags which don't affect AOT code generation are filtered out:
# -Xcomp, -XX:+-TieredCompilation
$1_JAOTC_OPTS := \
-J-Xmx4g --info \
$$(addprefix -J, $$(filter-out -Xcomp %TieredCompilation, $$($1_VM_OPTIONS))) \
$$(addprefix --compile-commands$(SPACE), $$($1_AOT_CCLIST)) \
--linker-path $$(LD_JAOTC) \
#
ifneq ($$(filter -ea, $$($1_VM_OPTIONS)), )
$1_JAOTC_OPTS += --compile-with-assertions
endif
$$($1_AOT_LIB): $$(JDK_IMAGE_DIR)/release \
$$(call DependOnVariable, $1_JAOTC_OPTS) \
$$(call DependOnVariable, JDK_IMAGE_DIR)
$$(call LogWarn, Generating $$(patsubst $$(OUTPUTDIR)/%, %, $$@))
$$(call MakeTargetDir)
$$(call ExecuteWithLog, $$@, ( \
$$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/jaotc \
$$($1_JAOTC_OPTS) --output $$@ --module $$($1_MODULE) \
))
$$(call ExecuteWithLog, $$@.check, ( \
$$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/java \
$$($1_VM_OPTIONS) -XX:+UnlockDiagnosticVMOptions \
-XX:+PrintAOT -XX:+UseAOTStrictLoading \
-XX:AOTLibrary=$$@ -version \
> $$@.verify-aot \
))
$1_AOT_OPTIONS += -XX:AOTLibrary=$$($1_AOT_LIB)
$1_AOT_TARGETS += $$($1_AOT_LIB)
endef
# Parameter 1 is the name of the rule.
#
# Remaining parameters are named arguments.
# MODULES The modules to generate a library for
# VM_OPTIONS List of JVM arguments to use when creating libraries
#
# After calling this, the following variables are defined
# $1_AOT_OPTIONS List of all java options needed to use the AOT libraries
# $1_AOT_TARGETS List of all targets that the test rule will need to depend on
#
SetupAot = $(NamedParamsMacroTemplate)
define SetupAotBody
$$(info Running with AOTd libraries for $$($1_MODULES))
# Put aot libraries in a separate directory so they are not deleted between
# test runs and may be reused between make invocations.
$$(foreach m, $$($1_MODULES), \
$$(eval $$(call SetupAotModule, $1_$$m, \
MODULE := $$m, \
BIN := $$(TEST_SUPPORT_DIR)/aot/$1, \
VM_OPTIONS := $$($1_VM_OPTIONS), \
)) \
$$(eval $1_AOT_OPTIONS += $$($1_$$m_AOT_OPTIONS)) \
$$(eval $1_AOT_TARGETS += $$($1_$$m_AOT_TARGETS)) \
)
endef
GTEST_LAUNCHER_DIRS := $(patsubst %/gtestLauncher, %, $(wildcard $(TEST_IMAGE_DIR)/hotspot/gtest/*/gtestLauncher))
GTEST_VARIANTS := $(strip $(patsubst $(TEST_IMAGE_DIR)/hotspot/gtest/%, %, $(GTEST_LAUNCHER_DIRS)))
################################################################################
# Setup global test running parameters
@@ -268,17 +183,13 @@ $(eval $(call SetTestOpt,JAVA_OPTIONS,JTREG))
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
$(eval $(call SetTestOpt,AOT_MODULES,JTREG))
$(eval $(call SetTestOpt,AOT_MODULES,GTEST))
$(eval $(call SetTestOpt,JOBS,JTREG))
$(eval $(call SetTestOpt,TIMEOUT_FACTOR,JTREG))
$(eval $(call ParseKeywordVariable, JTREG, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR TEST_MODE ASSERT VERBOSE RETAIN \
MAX_MEM, \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS KEYWORDS \
EXTRA_PROBLEM_LISTS AOT_MODULES, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR TEST_MODE ASSERT VERBOSE RETAIN MAX_MEM \
EXTRA_PROBLEM_LISTS KEYWORDS, \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
))
ifneq ($(JTREG), )
@@ -288,7 +199,7 @@ endif
$(eval $(call ParseKeywordVariable, GTEST, \
SINGLE_KEYWORDS := REPEAT, \
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS, \
))
ifneq ($(GTEST), )
@@ -426,7 +337,7 @@ endef
# Helper function to determine if a test specification is a special test
#
# It is a special test if it is "special:" followed by a test name,
# It is a special test if it is "special:" followed by a test name.
define ParseSpecialTestSelection
$(if $(filter special:%, $1), \
$1 \
@@ -517,27 +428,20 @@ define SetupRunGtestTestBody
$1_GTEST_REPEAT :=--gtest_repeat=$$(GTEST_REPEAT)
endif
ifneq ($$(GTEST_AOT_MODULES), )
$$(eval $$(call SetupAot, $1, \
MODULES := $$(GTEST_AOT_MODULES), \
VM_OPTIONS := $$(GTEST_VM_OPTIONS) $$(GTEST_JAVA_OPTIONS), \
))
endif
run-test-$1: $$($1_AOT_TARGETS)
run-test-$1: $(TEST_PREREQS)
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/gtest, ( \
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/gtest, \
$$(FIXPATH) $$(TEST_IMAGE_DIR)/hotspot/gtest/$$($1_VARIANT)/gtestLauncher \
-jdk $(JDK_IMAGE_DIR) $$($1_GTEST_FILTER) \
--gtest_output=xml:$$($1_TEST_RESULTS_DIR)/gtest.xml \
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
$$(GTEST_JAVA_OPTIONS) $$($1_AOT_OPTIONS) \
$$($1_GTEST_JAVA_OPTIONS) \
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
))
)
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/gtest.txt
@@ -658,14 +562,10 @@ define SetupRunJtregTestBody
$1_JTREG_LAUNCHER_OPTIONS += -Xmx$$($1_JTREG_MAX_MEM)
endif
# Make sure the tmp dir is normalized as some tests will react badly otherwise
$1_TEST_TMP_DIR := $$(abspath $$($1_TEST_SUPPORT_DIR)/tmp)
$1_JTREG_BASIC_OPTIONS += -$$($1_JTREG_TEST_MODE) \
-verbose:$$(JTREG_VERBOSE) -retain:$$(JTREG_RETAIN) \
-concurrency:$$($1_JTREG_JOBS) -timeoutFactor:$$(JTREG_TIMEOUT_FACTOR) \
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE) \
-vmoption:-Djava.io.tmpdir="$$($1_TEST_TMP_DIR)"
-vmoption:-XX:MaxRAMPercentage=$$($1_JTREG_MAX_RAM_PERCENTAGE)
$1_JTREG_BASIC_OPTIONS += -automatic -ignore:quiet
@@ -709,8 +609,7 @@ define SetupRunJtregTestBody
$1_JTREG_BASIC_OPTIONS += -e:JIB_HOME=$$(JIB_HOME)
endif
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_DIR=$(TEST_IMAGE_DIR)
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=$(TEST_IMAGE_DIR)/hotspot/jtreg/graal
$1_JTREG_BASIC_OPTIONS += -e:TEST_IMAGE_GRAAL_DIR=${TEST_IMAGE_DIR}/hotspot/jtreg/graal
ifneq ($$(JTREG_FAILURE_HANDLER_OPTIONS), )
$1_JTREG_LAUNCHER_OPTIONS += -Djava.library.path="$(JTREG_FAILURE_HANDLER_DIR)"
@@ -727,26 +626,14 @@ define SetupRunJtregTestBody
endif
endif
ifneq ($$(JTREG_AOT_MODULES), )
$$(eval $$(call SetupAot, $1, \
MODULES := $$(JTREG_AOT_MODULES), \
VM_OPTIONS := $$(JTREG_VM_OPTIONS) $$(JTREG_JAVA_OPTIONS), \
))
endif
ifneq ($$($1_AOT_OPTIONS), )
$1_JTREG_BASIC_OPTIONS += -vmoptions:"$$($1_AOT_OPTIONS)"
endif
clean-workdir-$1:
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
run-test-$1: clean-workdir-$1 $$($1_AOT_TARGETS)
run-test-$1: clean-workdir-$1 $(TEST_PREREQS)
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR) \
$$($1_TEST_TMP_DIR))
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, ( \
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/jtreg, \
$$(JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
$$($1_JTREG_BASIC_OPTIONS) \
@@ -759,7 +646,7 @@ define SetupRunJtregTestBody
$$($1_TEST_NAME) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
))
)
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/text/stats.txt
@@ -833,12 +720,12 @@ define SetupRunSpecialTestBody
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/test-execution, ( \
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/test-execution, \
$$($1_TEST_COMMAND_LINE) \
> >($(TEE) $$($1_TEST_RESULTS_DIR)/test-output.txt) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
))
)
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/gtest.txt

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2017, 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
@@ -95,12 +95,12 @@ endef
# $1: The output file name
# $2..$N: The lines to output to the file
define CreateNewSpec
$(if $(strip $(31)), \
$(if $(strip $(27)), \
$(error Internal makefile error: \
Too many arguments to macro, please update CreateNewSpec in RunTestsPrebuilt.gmk) \
) \
$(shell $(RM) $1) \
$(foreach i, $(call sequence, 2, 30), \
$(foreach i, $(call sequence, 2, 26), \
$(if $(strip $($i)), \
$(call AppendFile, $(strip $($i)), $1) \
) \
@@ -237,8 +237,7 @@ else ifeq ($(OPENJDK_TARGET_OS), solaris)
else ifeq ($(OPENJDK_TARGET_OS), windows)
NUM_CORES := $(NUMBER_OF_PROCESSORS)
MEMORY_SIZE := $(shell \
$(EXPR) `wmic computersystem get totalphysicalmemory -value \
| $(GREP) = | $(SED) 's/\\r//g' \
$(EXPR) `wmic computersystem get totalphysicalmemory -value | $(GREP) = \
| $(CUT) -d "=" -f 2-` / 1024 / 1024 \
)
endif
@@ -251,30 +250,6 @@ ifeq ($(MEMORY_SIZE), )
MEMORY_SIZE := 1024
endif
# Setup LD for AOT support
ifneq ($(DEVKIT_HOME), )
ifeq ($(OPENJDK_TARGET_OS), windows)
LD_JAOTC := $(DEVKIT_HOME)/VC/bin/x64/link.exe
LIBRARY_PREFIX :=
SHARED_LIBRARY_SUFFIX := .dll
else ifeq ($(OPENJDK_TARGET_OS), linux)
LD_JAOTC := $(DEVKIT_HOME)/bin/ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .so
else ifeq ($(OPENJDK_TARGET_OS), macosx)
LD_JAOTC := $(DEVKIT_HOME)/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .dylib
else ifeq ($(OPENJDK_TARGET_OS), solaris)
# Prefer system linker for AOT on Solaris.
LD_JAOTC := ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .so
endif
else
LD := ld
endif
################################################################################
# Generate the ephemeral spec file
################################################################################
@@ -311,9 +286,6 @@ $(call CreateNewSpec, $(NEW_SPEC), \
OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
NUM_CORES := $(NUM_CORES), \
MEMORY_SIZE := $(MEMORY_SIZE), \
LD_JAOTC := $(LD_JAOTC), \
LIBRARY_PREFIX := $(LIBRARY_PREFIX), \
SHARED_LIBRARY_SUFFIX := $(SHARED_LIBRARY_SUFFIX), \
include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
$(CUSTOM_NEW_SPEC_LINE), \
)

View File

@@ -186,7 +186,3 @@ endif
ifeq ($(OPENJDK_BUILD_OS), windows)
CYGPATH := cygpath
endif
################################################################################
# Simple macros from spec.gmk.in
SHARED_LIBRARY=$(LIBRARY_PREFIX)$1$(SHARED_LIBRARY_SUFFIX)

View File

@@ -37,22 +37,10 @@ ifeq ($(OPENJDK_TARGET_OS), windows)
$(call install-file)
endif
BUILD_INFO_PROPERTIES := $(TEST_IMAGE_DIR)/build-info.properties
FIXPATH_ECHO := $(FIXPATH) $(call FixPath, $(ECHO))
$(BUILD_INFO_PROPERTIES):
$(call MakeTargetDir)
$(ECHO) "# Build info properties for JDK tests" > $@
$(FIXPATH_ECHO) "build.workspace.root=$(WORKSPACE_ROOT)" >> $@
$(FIXPATH_ECHO) "build.output.root=$(OUTPUTDIR)" >> $@
prepare-test-image: $(FIXPATH_COPY) $(BUILD_INFO_PROPERTIES)
prepare-test-image: $(FIXPATH_COPY)
$(call MakeDir, $(TEST_IMAGE_DIR))
$(ECHO) > $(TEST_IMAGE_DIR)/Readme.txt 'JDK test image'
################################################################################
all: prepare-test-image
.PHONY: default all prepare-test-image

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2018, 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
@@ -74,7 +74,6 @@ TOOL_TZDB = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.tzdb.TzdbZoneRulesCompiler
TOOL_BLACKLISTED_CERTS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
--add-exports java.base/sun.security.util=ALL-UNNAMED \
build.tools.blacklistedcertsconverter.BlacklistedCertsConverter
TOOL_MAKEJAVASECURITY = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2017, 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
@@ -45,13 +45,21 @@ GLOBAL_SPECS_DEFAULT_CSS_FILE := $(TOPDIR)/make/data/docs-resources/resources/jd
DOCS_DIR := $(TOPDIR)/doc
$(eval $(call SetupProcessMarkdown, md_docs, \
FILES := $(call FindFiles, $(DOCS_DIR), *.md), \
$(eval $(call SetupProcessMarkdown, building, \
FILES := $(DOCS_DIR)/building.md, \
DEST := $(DOCS_DIR), \
CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
OPTIONS := --toc, \
))
TARGETS += $(md_docs)
TARGETS += $(building)
$(eval $(call SetupProcessMarkdown, testing, \
FILES := $(DOCS_DIR)/testing.md, \
DEST := $(DOCS_DIR), \
CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
OPTIONS := --toc, \
))
TARGETS += $(testing)
################################################################################

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 2016, 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
@@ -87,7 +87,6 @@ ifeq ($(SRC_GENERATED), true)
EXCLUDE_FILES := $(SRC_ZIP_EXCLUDE_FILES), \
SUFFIXES := .java, \
ZIP := $(SUPPORT_OUTPUTDIR)/src.zip, \
FOLLOW_SYMLINKS := true, \
))
do-zip: $(BUILD_SRC_ZIP)

View File

@@ -645,14 +645,6 @@ AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
BASIC_FIXUP_PATH(CURDIR)
BASIC_FIXUP_PATH(TOPDIR)
if test "x$CUSTOM_ROOT" != x; then
BASIC_FIXUP_PATH(CUSTOM_ROOT)
WORKSPACE_ROOT="${CUSTOM_ROOT}"
else
WORKSPACE_ROOT="${TOPDIR}"
fi
AC_SUBST(WORKSPACE_ROOT)
# Locate the directory of this script.
AUTOCONF_DIR=$TOPDIR/make/autoconf
@@ -875,7 +867,11 @@ AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
AC_MSG_RESULT([in build directory with custom name])
fi
OUTPUTDIR="${WORKSPACE_ROOT}/build/${CONF_NAME}"
if test "x$CUSTOM_ROOT" != x; then
OUTPUTDIR="${CUSTOM_ROOT}/build/${CONF_NAME}"
else
OUTPUTDIR="${TOPDIR}/build/${CONF_NAME}"
fi
$MKDIR -p "$OUTPUTDIR"
if test ! -d "$OUTPUTDIR"; then
AC_MSG_ERROR([Could not create build directory $OUTPUTDIR])
@@ -1232,25 +1228,12 @@ AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
AC_MSG_CHECKING([if codesign certificate is present])
$RM codesign-testfile
$TOUCH codesign-testfile
$CODESIGN -s "$MACOSX_CODESIGN_IDENTITY" codesign-testfile 2>&AS_MESSAGE_LOG_FD \
>&AS_MESSAGE_LOG_FD || CODESIGN=
$CODESIGN -s "$MACOSX_CODESIGN_IDENTITY" codesign-testfile 2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD || CODESIGN=
$RM codesign-testfile
if test "x$CODESIGN" = x; then
AC_MSG_RESULT([no])
else
AC_MSG_RESULT([yes])
# Verify that the codesign has --option runtime
AC_MSG_CHECKING([if codesign has --option runtime])
$RM codesign-testfile
$TOUCH codesign-testfile
$CODESIGN --option runtime -s "$MACOSX_CODESIGN_IDENTITY" codesign-testfile \
2>&AS_MESSAGE_LOG_FD >&AS_MESSAGE_LOG_FD || CODESIGN=
$RM codesign-testfile
if test "x$CODESIGN" = x; then
AC_MSG_ERROR([codesign does not have --option runtime. macOS 10.13.6 and above is required.])
else
AC_MSG_RESULT([yes])
fi
fi
fi
BASIC_REQUIRE_PROGS(SETFILE, SetFile)

View File

@@ -75,8 +75,6 @@ JVM_LDFLAGS := @OPENJDK_BUILD_JVM_LDFLAGS@
JVM_ASFLAGS := @OPENJDK_BUILD_JVM_ASFLAGS@
JVM_LIBS := @OPENJDK_BUILD_JVM_LIBS@
FDLIBM_CFLAGS := @OPENJDK_BUILD_FDLIBM_CFLAGS@
# The compiler for the build platform is likely not warning compatible with the official
# compiler.
WARNINGS_AS_ERRORS := false

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
SRC#
# Copyright (c) 2011, 2018, 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
@@ -98,9 +98,6 @@ HOTSPOT_SETUP_JVM_VARIANTS
# With basic setup done, call the custom early hook.
CUSTOM_EARLY_HOOK
# This only needs debug level to be setup
JDKOPT_ALLOW_ABSOLUTE_PATHS_IN_OUTPUT
# Check if we have devkits, extra paths or sysroot set.
BASIC_SETUP_DEVKIT

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2018, 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
@@ -169,7 +169,19 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
gcc)
DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
# Repeate the check for the BUILD_CC and BUILD_CXX. Need to also reset
# CFLAGS since any target specific flags will likely not work with the
# build compiler
CC_OLD="$CC"
CXX_OLD="$CXX"
CC="$BUILD_CC"
CXX="$BUILD_CXX"
CFLAGS_OLD="$CFLAGS"
CFLAGS=""
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
CC="$CC_OLD"
CXX="$CXX_OLD"
CFLAGS="$CFLAGS_OLD"
;;
clang)
DISABLE_WARNING_PREFIX="-Wno-"
@@ -209,20 +221,6 @@ AC_DEFUN([FLAGS_SETUP_QUALITY_CHECKS],
;;
esac
fi
# Extra flags needed when building optional static versions of certain
# JDK libraries.
STATIC_LIBS_CFLAGS="-DSTATIC_BUILD=1"
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS -ffunction-sections -fdata-sections"
fi
if test "x$TOOLCHAIN_TYPE" = xgcc; then
# Disable relax-relocation to enable compatibility with older linkers
RELAX_RELOCATIONS_FLAG="-Xassembler -mrelax-relocations=no"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${RELAX_RELOCATIONS_FLAG}],
IF_TRUE: [STATIC_LIBS_CFLAGS="$STATIC_LIBS_CFLAGS ${RELAX_RELOCATIONS_FLAG}"])
fi
AC_SUBST(STATIC_LIBS_CFLAGS)
])
AC_DEFUN([FLAGS_SETUP_OPTIMIZATION],
@@ -364,17 +362,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS],
FLAGS_SETUP_CFLAGS_CPU_DEP([TARGET])
# Repeat the check for the BUILD_CC and BUILD_CXX. Need to also reset CFLAGS
# since any target specific flags will likely not work with the build compiler.
CC_OLD="$CC"
CXX_OLD="$CXX"
CFLAGS_OLD="$CFLAGS"
CXXFLAGS_OLD="$CXXFLAGS"
CC="$BUILD_CC"
CXX="$BUILD_CXX"
CFLAGS=""
CXXFLAGS=""
FLAGS_OS=$OPENJDK_BUILD_OS
FLAGS_OS_TYPE=$OPENJDK_BUILD_OS_TYPE
FLAGS_CPU=$OPENJDK_BUILD_CPU
@@ -384,12 +371,21 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS],
FLAGS_CPU_LEGACY=$OPENJDK_BUILD_CPU_LEGACY
FLAGS_CPU_LEGACY_LIB=$OPENJDK_BUILD_CPU_LEGACY_LIB
FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_], [BUILD_])
FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
CC="$CC_OLD"
CXX="$CXX_OLD"
CFLAGS="$CFLAGS_OLD"
CXXFLAGS="$CXXFLAGS_OLD"
COMPILER_FP_CONTRACT_OFF_FLAG="-ffp-contract=off"
# Check that the compiler supports -ffp-contract=off flag
# Set FDLIBM_CFLAGS to -ffp-contract=off if it does. Empty
# otherwise.
# These flags are required for GCC-based builds of
# fdlibm with optimization without losing precision.
# Notably, -ffp-contract=off needs to be added for GCC >= 4.6.
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_FP_CONTRACT_OFF_FLAG}],
IF_TRUE: [FDLIBM_CFLAGS=${COMPILER_FP_CONTRACT_OFF_FLAG}],
IF_FALSE: [FDLIBM_CFLAGS=""])
fi
AC_SUBST(FDLIBM_CFLAGS)
# Tests are only ever compiled for TARGET
CFLAGS_TESTLIB="$CFLAGS_JDKLIB"
@@ -500,14 +496,15 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
if test "x$TOOLCHAIN_TYPE" = xgcc; then
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new -fstack-protector"
TOOLCHAIN_CFLAGS_JDK="-pipe -fstack-protector"
# reduce lib size on s390x in link step, this needs also special compile flags
if test "x$OPENJDK_TARGET_CPU" = xs390x; then
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM -ffunction-sections -fdata-sections"
TOOLCHAIN_CFLAGS_JDK="$TOOLCHAIN_CFLAGS_JDK -ffunction-sections -fdata-sections"
fi
# technically NOT for CXX (but since this gives *worse* performance, use
# no-strict-aliasing everywhere!)
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing"
TOOLCHAIN_CFLAGS_JDK_CONLY="-fno-strict-aliasing" # technically NOT for CXX (but since this gives *worse* performance, use no-strict-aliasing everywhere!)
CXXSTD_CXXFLAG="-std=gnu++98"
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$CXXSTD_CXXFLAG -Werror],
IF_FALSE: [CXXSTD_CXXFLAG=""])
TOOLCHAIN_CFLAGS_JDK_CXXONLY="$CXXSTD_CXXFLAG"
TOOLCHAIN_CFLAGS_JVM="$TOOLCHAIN_CFLAGS_JVM $CXXSTD_CXXFLAG"
ADLC_CXXFLAG="$CXXSTD_CXXFLAG"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
# Restrict the debug information created by Clang to avoid
@@ -598,7 +595,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
# Where does this really belong??
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
PICFLAG="-fPIC"
PIEFLAG="-fPIE"
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
PICFLAG="-KPIC"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
@@ -650,13 +646,15 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
OS_CFLAGS_JVM="$OS_CFLAGS_JVM -DNEEDS_LIBRT"
fi
fi
# EXPORT
AC_SUBST(ADLC_CXXFLAG)
])
################################################################################
# $1 - Either BUILD or TARGET to pick the correct OS/CPU variables to check
# conditionals against.
# $2 - Optional prefix for each variable defined.
# $3 - Optional prefix for compiler variables (either BUILD_ or nothing).
AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
[
#### CPU DEFINES, these should (in theory) be independent on toolchain
@@ -715,21 +713,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
# CFLAGS PER CPU
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
# COMMON to gcc and clang
AC_MSG_CHECKING([if $1 is x86])
if test "x$FLAGS_CPU" = xx86; then
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([if control flow protection is enabled by additional compiler flags])
if echo "${EXTRA_CFLAGS}${EXTRA_CXXFLAGS}${EXTRA_ASFLAGS}" | ${GREP} -q 'fcf-protection' ; then
# cf-protection requires CMOV and thus i686
$1_CFLAGS_CPU="-march=i686"
AC_MSG_RESULT([yes, forcing ${$1_CFLAGS_CPU}])
else
# Force compatibility with i586 on 32 bit intel platforms.
$1_CFLAGS_CPU="-march=i586"
AC_MSG_RESULT([no, forcing ${$1_CFLAGS_CPU}])
fi
else
AC_MSG_RESULT([no])
# Force compatibility with i586 on 32 bit intel platforms.
$1_CFLAGS_CPU="-march=i586"
fi
fi
@@ -762,13 +748,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
$1_CFLAGS_CPU_JDK="${$1_CFLAGS_CPU_JDK} -fno-omit-frame-pointer"
fi
$1_CXXSTD_CXXFLAG="-std=gnu++98"
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${$1_CXXSTD_CXXFLAG} -Werror],
PREFIX: $3, IF_FALSE: [$1_CXXSTD_CXXFLAG=""])
$1_TOOLCHAIN_CFLAGS_JDK_CXXONLY="${$1_CXXSTD_CXXFLAG}"
$1_TOOLCHAIN_CFLAGS_JVM="${$1_TOOLCHAIN_CFLAGS_JVM} ${$1_CXXSTD_CXXFLAG}"
$2ADLC_CXXFLAG="${$1_CXXSTD_CXXFLAG}"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
if test "x$FLAGS_OS" = xlinux; then
# ppc test not really needed for clang
@@ -805,44 +784,20 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
fi
if test "x$TOOLCHAIN_TYPE" = xgcc; then
FLAGS_SETUP_GCC6_COMPILER_FLAGS($1, $3)
TOOLCHAIN_CHECK_COMPILER_VERSION(VERSION: 6, PREFIX: $2, IF_AT_LEAST: FLAGS_SETUP_GCC6_COMPILER_FLAGS($1))
$1_TOOLCHAIN_CFLAGS="${$1_GCC6_CFLAGS}"
$1_WARNING_CFLAGS_JVM="-Wno-format-zero-length -Wtype-limits -Wuninitialized"
fi
# Prevent the __FILE__ macro from generating absolute paths into the built
# binaries. Depending on toolchain, different mitigations are possible.
# * GCC and Clang of new enough versions have -fmacro-prefix-map.
# * For most other toolchains, supplying all source files and -I flags as
# relative paths fixes the issue.
FILE_MACRO_CFLAGS=
if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
# Check if compiler supports -fmacro-prefix-map. If so, use that to make
# the __FILE__ macro resolve to paths relative to the workspace root.
workspace_root_trailing_slash="${WORKSPACE_ROOT%/}/"
FILE_MACRO_CFLAGS="-fmacro-prefix-map=${workspace_root_trailing_slash}="
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${FILE_MACRO_CFLAGS}],
PREFIX: $3,
IF_FALSE: [
FILE_MACRO_CFLAGS=
]
)
fi
fi
AC_SUBST(FILE_MACRO_CFLAGS)
# EXPORT to API
CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM \
$TOOLCHAIN_CFLAGS_JVM ${$1_TOOLCHAIN_CFLAGS_JVM} \
CFLAGS_JVM_COMMON="$ALWAYS_CFLAGS_JVM $ALWAYS_DEFINES_JVM $TOOLCHAIN_CFLAGS_JVM \
$OS_CFLAGS $OS_CFLAGS_JVM $CFLAGS_OS_DEF_JVM $DEBUG_CFLAGS_JVM \
$WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG $FILE_MACRO_CFLAGS"
$WARNING_CFLAGS $WARNING_CFLAGS_JVM $JVM_PICFLAG"
CFLAGS_JDK_COMMON="$ALWAYS_CFLAGS_JDK $ALWAYS_DEFINES_JDK $TOOLCHAIN_CFLAGS_JDK \
$OS_CFLAGS $CFLAGS_OS_DEF_JDK $DEBUG_CFLAGS_JDK $DEBUG_OPTIONS_FLAGS_JDK \
$WARNING_CFLAGS $WARNING_CFLAGS_JDK $DEBUG_SYMBOLS_CFLAGS_JDK \
$FILE_MACRO_CFLAGS"
$WARNING_CFLAGS $WARNING_CFLAGS_JDK $DEBUG_SYMBOLS_CFLAGS_JDK"
# Use ${$2EXTRA_CFLAGS} to block EXTRA_CFLAGS to be added to build flags.
# (Currently we don't have any OPENJDK_BUILD_EXTRA_CFLAGS, but that might
@@ -850,9 +805,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
CFLAGS_JDK_COMMON_CONLY="$TOOLCHAIN_CFLAGS_JDK_CONLY \
$WARNING_CFLAGS_JDK_CONLY ${$2EXTRA_CFLAGS}"
CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY \
$TOOLCHAIN_CFLAGS_JDK_CXXONLY \
${$1_TOOLCHAIN_CFLAGS_JDK_CXXONLY} \
CFLAGS_JDK_COMMON_CXXONLY="$ALWAYS_DEFINES_JDK_CXXONLY $TOOLCHAIN_CFLAGS_JDK_CXXONLY \
$WARNING_CFLAGS_JDK_CXXONLY ${$2EXTRA_CXXFLAGS}"
$1_CFLAGS_JVM="${$1_DEFINES_CPU_JVM} ${$1_CFLAGS_CPU} ${$1_CFLAGS_CPU_JVM} ${$1_TOOLCHAIN_CFLAGS} ${$1_WARNING_CFLAGS_JVM}"
@@ -860,40 +813,21 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
$2JVM_CFLAGS="$CFLAGS_JVM_COMMON ${$1_CFLAGS_JVM} ${$2EXTRA_CXXFLAGS}"
$2CFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CONLY ${$1_CFLAGS_JDK} $PIEFLAG"
$2CXXFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CXXONLY ${$1_CFLAGS_JDK} $PIEFLAG"
$2CFLAGS_JDKLIB="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CONLY ${$1_CFLAGS_JDK} \
$JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
$2CXXFLAGS_JDKLIB="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CXXONLY ${$1_CFLAGS_JDK} \
$JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
$2CFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CONLY ${$1_CFLAGS_JDK}"
$2CXXFLAGS_JDKEXE="$CFLAGS_JDK_COMMON $CFLAGS_JDK_COMMON_CXXONLY ${$1_CFLAGS_JDK}"
$2CFLAGS_JDKLIB="${$2CFLAGS_JDKEXE} $JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
$2CXXFLAGS_JDKLIB="${$2CXXFLAGS_JDKEXE} $JDK_PICFLAG ${$1_CFLAGS_CPU_JDK_LIBONLY}"
AC_SUBST($2JVM_CFLAGS)
AC_SUBST($2CFLAGS_JDKLIB)
AC_SUBST($2CFLAGS_JDKEXE)
AC_SUBST($2CXXFLAGS_JDKLIB)
AC_SUBST($2CXXFLAGS_JDKEXE)
AC_SUBST($2ADLC_CXXFLAG)
COMPILER_FP_CONTRACT_OFF_FLAG="-ffp-contract=off"
# Check that the compiler supports -ffp-contract=off flag
# Set FDLIBM_CFLAGS to -ffp-contract=off if it does. Empty
# otherwise.
# These flags are required for GCC-based builds of
# fdlibm with optimization without losing precision.
# Notably, -ffp-contract=off needs to be added for GCC >= 4.6.
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${COMPILER_FP_CONTRACT_OFF_FLAG}],
PREFIX: $3,
IF_TRUE: [$2FDLIBM_CFLAGS=${COMPILER_FP_CONTRACT_OFF_FLAG}],
IF_FALSE: [$2FDLIBM_CFLAGS=""])
fi
AC_SUBST($2FDLIBM_CFLAGS)
])
# FLAGS_SETUP_GCC6_COMPILER_FLAGS([PREFIX])
# Arguments:
# $1 - Prefix for each variable defined.
# $2 - Prefix for compiler variables (either BUILD_ or nothing).
AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
[
# These flags are required for GCC 6 builds as undefined behaviour in OpenJDK code
@@ -901,11 +835,14 @@ AC_DEFUN([FLAGS_SETUP_GCC6_COMPILER_FLAGS],
# Notably, value range propagation now assumes that the this pointer of C++
# member functions is non-null.
NO_DELETE_NULL_POINTER_CHECKS_CFLAG="-fno-delete-null-pointer-checks"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
PREFIX: $2, IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_DELETE_NULL_POINTER_CHECKS_CFLAG -Werror],
dnl IF_FALSE: [NO_DELETE_NULL_POINTER_CHECKS_CFLAG=""])
NO_LIFETIME_DSE_CFLAG="-fno-lifetime-dse"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror],
PREFIX: $2, IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
dnl Argument check is disabled until FLAGS_COMPILER_CHECK_ARGUMENTS handles cross-compilation
dnl FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [$NO_LIFETIME_DSE_CFLAG -Werror],
dnl IF_FALSE: [NO_LIFETIME_DSE_CFLAG=""])
AC_MSG_NOTICE([GCC >= 6 detected; adding ${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} and ${NO_LIFETIME_DSE_CFLAG}])
$1_GCC6_CFLAGS="${NO_DELETE_NULL_POINTER_CHECKS_CFLAG} ${NO_LIFETIME_DSE_CFLAG}"
])

View File

@@ -72,15 +72,12 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
fi
# Add -z defs, to forbid undefined symbols in object files.
# add -z,relro (mark relocations read only) for all libs
# add -z,now ("full relro" - more of the Global Offset Table GOT is marked read only)
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs -Wl,-z,relro -Wl,-z,now"
# s390x : remove unused code+data in link step
if test "x$OPENJDK_TARGET_CPU" = xs390x; then
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,--gc-sections"
fi
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,defs"
BASIC_LDFLAGS_JVM_ONLY="-Wl,-O1"
BASIC_LDFLAGS_JVM_ONLY="-Wl,-z,noexecstack -Wl,-O1 -Wl,-z,relro"
BASIC_LDFLAGS_JDK_LIB_ONLY="-Wl,-z,noexecstack"
LIBJSIG_NOEXECSTACK_LDFLAGS="-Wl,-z,noexecstack"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
@@ -106,19 +103,13 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
BASIC_LDFLAGS_JVM_ONLY="-opt:icf,8 -subsystem:windows"
fi
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
if test -n "$HAS_NOEXECSTACK"; then
BASIC_LDFLAGS="$BASIC_LDFLAGS -Wl,-z,noexecstack"
fi
fi
# Setup OS-dependent LDFLAGS
if test "x$TOOLCHAIN_TYPE" = xclang || test "x$TOOLCHAIN_TYPE" = xgcc; then
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# Assume clang or gcc.
# FIXME: We should really generalize SET_SHARED_LIBRARY_ORIGIN instead.
OS_LDFLAGS_JVM_ONLY="-Wl,-rpath,@loader_path/. -Wl,-rpath,@loader_path/.."
OS_LDFLAGS="-mmacosx-version-min=$MACOSX_VERSION_MIN"
OS_LDFLAGS_JDK_ONLY="-mmacosx-version-min=$MACOSX_VERSION_MIN"
fi
fi
@@ -127,6 +118,13 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
if test "x$OPENJDK_TARGET_OS" = xlinux; then
if test x$DEBUG_LEVEL = xrelease; then
DEBUGLEVEL_LDFLAGS_JDK_ONLY="$DEBUGLEVEL_LDFLAGS_JDK_ONLY -Wl,-O1"
else
# mark relocations read only on (fast/slow) debug builds
DEBUGLEVEL_LDFLAGS_JDK_ONLY="-Wl,-z,relro"
fi
if test x$DEBUG_LEVEL = xslowdebug; then
# do relocations at load
DEBUGLEVEL_LDFLAGS="-Wl,-z,now"
fi
fi
@@ -142,17 +140,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# Setup LDFLAGS for linking executables
if test "x$TOOLCHAIN_TYPE" = xgcc; then
EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -Wl,--allow-shlib-undefined"
# Enabling pie on 32 bit builds prevents the JVM from allocating a continuous
# java heap.
if test "x$OPENJDK_TARGET_CPU_BITS" != "x32"; then
EXECUTABLE_LDFLAGS="$EXECUTABLE_LDFLAGS -pie"
fi
fi
if test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = "xfalse"; then
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
BASIC_LDFLAGS="$BASIC_LDFLAGS -pdbaltpath:%_PDB%"
fi
fi
# Export some intermediate variables for compatibility
@@ -209,13 +196,13 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
# Export variables according to old definitions, prefix with $2 if present.
LDFLAGS_JDK_COMMON="$BASIC_LDFLAGS $BASIC_LDFLAGS_JDK_ONLY \
$OS_LDFLAGS $DEBUGLEVEL_LDFLAGS_JDK_ONLY ${$2EXTRA_LDFLAGS}"
$OS_LDFLAGS_JDK_ONLY $DEBUGLEVEL_LDFLAGS_JDK_ONLY ${$2EXTRA_LDFLAGS}"
$2LDFLAGS_JDKLIB="$LDFLAGS_JDK_COMMON $BASIC_LDFLAGS_JDK_LIB_ONLY \
${$1_LDFLAGS_JDK_LIBPATH} $SHARED_LIBRARY_FLAGS"
$2LDFLAGS_JDKEXE="$LDFLAGS_JDK_COMMON $EXECUTABLE_LDFLAGS \
${$1_CPU_EXECUTABLE_LDFLAGS}"
$2JVM_LDFLAGS="$BASIC_LDFLAGS $BASIC_LDFLAGS_JVM_ONLY $OS_LDFLAGS $OS_LDFLAGS_JVM_ONLY \
$2JVM_LDFLAGS="$BASIC_LDFLAGS $BASIC_LDFLAGS_JVM_ONLY $OS_LDFLAGS_JVM_ONLY \
$DEBUGLEVEL_LDFLAGS $DEBUGLEVEL_LDFLAGS_JVM_ONLY $BASIC_LDFLAGS_ONLYCXX \
${$1_CPU_LDFLAGS} ${$1_CPU_LDFLAGS_JVM_ONLY} ${$2EXTRA_LDFLAGS}"

View File

@@ -224,12 +224,10 @@ AC_DEFUN([FLAGS_SETUP_SYSROOT_FLAGS],
# We also need -iframework<path>/System/Library/Frameworks
$1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -iframework [$]$1SYSROOT/System/Library/Frameworks"
$1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -iframework [$]$1SYSROOT/System/Library/Frameworks"
if test -d "[$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks" ; then
# These always need to be set on macOS 10.X, or we can't find the frameworks embedded in JavaVM.framework
# set this here so it doesn't have to be peppered throughout the forest
$1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -F [$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
$1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -F [$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
fi
# These always need to be set, or we can't find the frameworks embedded in JavaVM.framework
# set this here so it doesn't have to be peppered throughout the forest
$1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -F [$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
$1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -F [$]$1SYSROOT/System/Library/Frameworks/JavaVM.framework/Frameworks"
fi
AC_SUBST($1SYSROOT_CFLAGS)
@@ -418,20 +416,17 @@ AC_DEFUN([FLAGS_SETUP_FLAGS],
# ------------------------------------------------------------
# Check that the C compiler supports an argument
BASIC_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
[*ARGUMENT IF_TRUE IF_FALSE], [$@],
[
AC_MSG_CHECKING([if ARG_PREFIX[CC] supports "ARG_ARGUMENT"])
AC_MSG_CHECKING([if the C compiler supports "ARG_ARGUMENT"])
supports=yes
saved_cflags="$CFLAGS"
saved_cc="$CC"
CFLAGS="$CFLAGS ARG_ARGUMENT"
CC="$ARG_PREFIX[CC]"
AC_LANG_PUSH([C])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
[supports=no])
AC_LANG_POP([C])
CC="$saved_cc"
CFLAGS="$saved_cflags"
AC_MSG_RESULT([$supports])
@@ -449,20 +444,17 @@ BASIC_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
# ------------------------------------------------------------
# Check that the C++ compiler supports an argument
BASIC_DEFUN_NAMED([FLAGS_CXX_COMPILER_CHECK_ARGUMENTS],
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
[*ARGUMENT IF_TRUE IF_FALSE], [$@],
[
AC_MSG_CHECKING([if ARG_PREFIX[CXX] supports "ARG_ARGUMENT"])
AC_MSG_CHECKING([if the C++ compiler supports "ARG_ARGUMENT"])
supports=yes
saved_cxxflags="$CXXFLAGS"
saved_cxx="$CXX"
CXXFLAGS="$CXXFLAG ARG_ARGUMENT"
CXX="$ARG_PREFIX[CXX]"
AC_LANG_PUSH([C++])
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[int i;]])], [],
[supports=no])
AC_LANG_POP([C++])
CXX="$saved_cxx"
CXXFLAGS="$saved_cxxflags"
AC_MSG_RESULT([$supports])
@@ -480,22 +472,18 @@ BASIC_DEFUN_NAMED([FLAGS_CXX_COMPILER_CHECK_ARGUMENTS],
# ------------------------------------------------------------
# Check that the C and C++ compilers support an argument
BASIC_DEFUN_NAMED([FLAGS_COMPILER_CHECK_ARGUMENTS],
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
[*ARGUMENT IF_TRUE IF_FALSE], [$@],
[
FLAGS_C_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARG_ARGUMENT],
IF_TRUE: [C_COMP_SUPPORTS="yes"],
IF_FALSE: [C_COMP_SUPPORTS="no"],
PREFIX: [ARG_PREFIX])
IF_TRUE: [C_COMP_SUPPORTS="yes"],
IF_FALSE: [C_COMP_SUPPORTS="no"])
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARG_ARGUMENT],
IF_TRUE: [CXX_COMP_SUPPORTS="yes"],
IF_FALSE: [CXX_COMP_SUPPORTS="no"],
PREFIX: [ARG_PREFIX])
IF_TRUE: [CXX_COMP_SUPPORTS="yes"],
IF_FALSE: [CXX_COMP_SUPPORTS="no"])
AC_MSG_CHECKING([if both ARG_PREFIX[CC] and ARG_PREFIX[CXX] support "ARG_ARGUMENT"])
AC_MSG_CHECKING([if both compilers support "ARG_ARGUMENT"])
supports=no
if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then
supports=yes;
fi
if test "x$C_COMP_SUPPORTS" = "xyes" -a "x$CXX_COMP_SUPPORTS" = "xyes"; then supports=yes; fi
AC_MSG_RESULT([$supports])
if test "x$supports" = "xyes" ; then

View File

@@ -99,8 +99,6 @@ apt_help() {
PKGHANDLER_COMMAND="sudo apt-get install libfontconfig1-dev" ;;
freetype)
PKGHANDLER_COMMAND="sudo apt-get install libfreetype6-dev" ;;
harfbuzz)
PKGHANDLER_COMMAND="sudo apt-get install libharfbuzz-dev" ;;
ffi)
PKGHANDLER_COMMAND="sudo apt-get install libffi-dev" ;;
x11)
@@ -126,8 +124,6 @@ yum_help() {
PKGHANDLER_COMMAND="sudo yum install fontconfig-devel" ;;
freetype)
PKGHANDLER_COMMAND="sudo yum install freetype-devel" ;;
harfbuzz)
PKGHANDLER_COMMAND="sudo yum install harfbuzz-devel" ;;
x11)
PKGHANDLER_COMMAND="sudo yum install libXtst-devel libXt-devel libXrender-devel libXrandr-devel libXi-devel" ;;
ccache)

View File

@@ -25,7 +25,7 @@
# All valid JVM features, regardless of platform
VALID_JVM_FEATURES="compiler1 compiler2 zero minimal dtrace jvmti jvmci \
graal vm-structs jni-check services management cmsgc epsilongc g1gc parallelgc serialgc shenandoahgc zgc nmt cds \
graal vm-structs jni-check services management cmsgc epsilongc g1gc parallelgc serialgc zgc nmt cds \
static-build link-time-opt aot jfr"
# Deprecated JVM features (these are ignored, but with a warning)
@@ -47,8 +47,8 @@ AC_DEFUN([HOTSPOT_CHECK_JVM_VARIANT],
[ [ [[ " $JVM_VARIANTS " =~ " $1 " ]] ] ])
###############################################################################
# Check if the specified JVM feature is enabled. To be used in shell if
# constructs, like this:
# Check if the specified JVM features are explicitly enabled. To be used in
# shell if constructs, like this:
# if HOTSPOT_CHECK_JVM_FEATURE(jvmti); then
#
# Only valid to use after HOTSPOT_SETUP_JVM_FEATURES has setup features.
@@ -58,20 +58,6 @@ AC_DEFUN([HOTSPOT_CHECK_JVM_VARIANT],
AC_DEFUN([HOTSPOT_CHECK_JVM_FEATURE],
[ [ [[ " $JVM_FEATURES " =~ " $1 " ]] ] ])
###############################################################################
# Check if the specified JVM feature is explicitly disabled. To be used in
# shell if constructs, like this:
# if HOTSPOT_IS_JVM_FEATURE_DISABLED(jvmci); then
#
# This function is internal to hotspot.m4, and is only used when constructing
# the valid set of enabled JVM features. Users outside of hotspot.m4 should just
# use HOTSPOT_CHECK_JVM_FEATURE to check if a feature is enabled or not.
# Definition kept in one line to allow inlining in if statements.
# Additional [] needed to keep m4 from mangling shell constructs.
AC_DEFUN([HOTSPOT_IS_JVM_FEATURE_DISABLED],
[ [ [[ " $DISABLED_JVM_FEATURES " =~ " $1 " ]] ] ])
###############################################################################
# Check which variants of the JVM that we want to build. Available variants are:
# server: normal interpreter, and a tiered C1/C2 compiler
@@ -274,14 +260,6 @@ AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_CDS],
fi
fi
# Disable CDS on macos-aarch64
if test "x$OPENJDK_TARGET_OS" = "xmacosx" && test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
ENABLE_CDS="false"
if test "x$enable_cds" = "xyes"; then
AC_MSG_ERROR([CDS is currently not supported on AIX. Remove --enable-cds.])
fi
fi
AC_SUBST(ENABLE_CDS)
])
@@ -360,19 +338,6 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
fi
fi
# Only enable Shenandoah on supported arches, and only if requested
AC_MSG_CHECKING([if shenandoah can be built])
if HOTSPOT_CHECK_JVM_FEATURE(shenandoahgc); then
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xx86" || test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
AC_MSG_RESULT([yes])
else
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES shenandoahgc"
AC_MSG_RESULT([no, platform not supported])
fi
else
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES shenandoahgc"
fi
# Only enable ZGC on supported platforms
AC_MSG_CHECKING([if zgc can be built])
if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
@@ -384,7 +349,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
# Disable unsupported GCs for Zero
if HOTSPOT_CHECK_JVM_VARIANT(zero); then
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES epsilongc g1gc shenandoahgc zgc"
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES epsilongc g1gc zgc"
fi
# Turn on additional features based on other parts of configure
@@ -412,7 +377,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
AC_MSG_CHECKING([if jvmci module jdk.internal.vm.ci should be built])
# Check if jvmci is diabled
if HOTSPOT_IS_JVM_FEATURE_DISABLED(jvmci); then
DISABLE_JVMCI=`$ECHO $DISABLED_JVM_FEATURES | $GREP jvmci`
if test "x$DISABLE_JVMCI" = "xjvmci"; then
AC_MSG_RESULT([no, forced])
JVM_FEATURES_jvmci=""
INCLUDE_JVMCI="false"
@@ -438,7 +404,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
AC_MSG_CHECKING([if graal module jdk.internal.vm.compiler should be built])
# Check if graal is diabled
if HOTSPOT_IS_JVM_FEATURE_DISABLED(graal); then
DISABLE_GRAAL=`$ECHO $DISABLED_JVM_FEATURES | $GREP graal`
if test "x$DISABLE_GRAAL" = "xgraal"; then
AC_MSG_RESULT([no, forced])
JVM_FEATURES_graal=""
INCLUDE_GRAAL="false"
@@ -470,7 +437,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
AC_SUBST(INCLUDE_GRAAL)
# Disable aot with '--with-jvm-features=-aot'
if HOTSPOT_IS_JVM_FEATURE_DISABLED(aot); then
DISABLE_AOT=`$ECHO $DISABLED_JVM_FEATURES | $GREP aot`
if test "x$DISABLE_AOT" = "xaot"; then
ENABLE_AOT="false"
fi
@@ -494,7 +462,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
JVM_FEATURES_aot="aot"
fi
else
if test "x$enable_aot" = "xno" || HOTSPOT_IS_JVM_FEATURE_DISABLED(aot); then
if test "x$enable_aot" = "xno" || test "x$DISABLE_AOT" = "xaot"; then
AC_MSG_RESULT([no, forced])
else
AC_MSG_RESULT([no])
@@ -515,7 +483,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
fi
# All variants but minimal (and custom) get these features
NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc shenandoahgc jni-check jvmti management nmt services vm-structs zgc"
NON_MINIMAL_FEATURES="$NON_MINIMAL_FEATURES cmsgc g1gc parallelgc serialgc epsilongc jni-check jvmti management nmt services vm-structs zgc"
AC_MSG_CHECKING([if cds should be enabled])
if test "x$ENABLE_CDS" = "xtrue"; then

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2018, 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
@@ -283,7 +283,7 @@ AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC],
AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
[
#
# Native debug symbols.
# NATIVE_DEBUG_SYMBOLS
# This must be done after the toolchain is setup, since we're looking at objcopy.
#
AC_MSG_CHECKING([what type of native debug symbols to use])
@@ -295,48 +295,24 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
if test "x$withval" = xexternal || test "x$withval" = xzipped; then
AC_MSG_ERROR([AIX only supports the parameters 'none' and 'internal' for --with-native-debug-symbols])
fi
elif test "x$OPENJDK_TARGET_OS" = xwindows; then
if test "x$withval" = xinternal; then
AC_MSG_ERROR([Windows does not support the parameter 'internal' for --with-native-debug-symbols])
fi
fi
],
[
if test "x$STATIC_BUILD" = xtrue; then
with_native_debug_symbols="none"
if test "x$OPENJDK_TARGET_OS" = xaix; then
# AIX doesn't support 'external' so use 'internal' as default
with_native_debug_symbols="internal"
else
if test "x$OPENJDK_TARGET_OS" = xaix; then
# AIX doesn't support 'external' so use 'internal' as default
with_native_debug_symbols="internal"
if test "x$STATIC_BUILD" = xtrue; then
with_native_debug_symbols="none"
else
with_native_debug_symbols="external"
fi
fi
])
AC_MSG_RESULT([$with_native_debug_symbols])
NATIVE_DEBUG_SYMBOLS=$with_native_debug_symbols
AC_MSG_RESULT([$NATIVE_DEBUG_SYMBOLS])
if test "x$with_native_debug_symbols" = xnone; then
COMPILE_WITH_DEBUG_SYMBOLS=false
COPY_DEBUG_SYMBOLS=false
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
elif test "x$with_native_debug_symbols" = xinternal; then
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=false
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
elif test "x$with_native_debug_symbols" = xexternal; then
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
if test "x$OBJCOPY" = x; then
# enabling of enable-debug-symbols and can't find objcopy
# this is an error
AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols])
fi
fi
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=true
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
elif test "x$with_native_debug_symbols" = xzipped; then
if test "x$NATIVE_DEBUG_SYMBOLS" = xzipped; then
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
if test "x$OBJCOPY" = x; then
@@ -349,6 +325,27 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=true
ZIP_EXTERNAL_DEBUG_SYMBOLS=true
elif test "x$NATIVE_DEBUG_SYMBOLS" = xnone; then
COMPILE_WITH_DEBUG_SYMBOLS=false
COPY_DEBUG_SYMBOLS=false
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
elif test "x$NATIVE_DEBUG_SYMBOLS" = xinternal; then
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=false
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
elif test "x$NATIVE_DEBUG_SYMBOLS" = xexternal; then
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
if test "x$OBJCOPY" = x; then
# enabling of enable-debug-symbols and can't find objcopy
# this is an error
AC_MSG_ERROR([Unable to find objcopy, cannot enable native debug symbols])
fi
fi
COMPILE_WITH_DEBUG_SYMBOLS=true
COPY_DEBUG_SYMBOLS=true
ZIP_EXTERNAL_DEBUG_SYMBOLS=false
else
AC_MSG_ERROR([Allowed native debug symbols are: none, internal, external, zipped])
fi
@@ -366,33 +363,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
AC_SUBST(COMPILE_WITH_DEBUG_SYMBOLS)
AC_SUBST(COPY_DEBUG_SYMBOLS)
AC_SUBST(ZIP_EXTERNAL_DEBUG_SYMBOLS)
# Should we add external native debug symbols to the shipped bundles?
AC_MSG_CHECKING([if we should add external native debug symbols to the shipped bundles])
AC_ARG_WITH([external-symbols-in-bundles],
[AS_HELP_STRING([--with-external-symbols-in-bundles],
[which type of external native debug symbol information shall be shipped in product bundles (none, public, full)
(e.g. ship full/stripped pdbs on Windows) @<:@none@:>@])])
if test "x$with_external_symbols_in_bundles" = x || test "x$with_external_symbols_in_bundles" = xnone ; then
AC_MSG_RESULT([no])
elif test "x$with_external_symbols_in_bundles" = xfull || test "x$with_external_symbols_in_bundles" = xpublic ; then
if test "x$OPENJDK_TARGET_OS" != xwindows ; then
AC_MSG_ERROR([--with-external-symbols-in-bundles currently only works on windows!])
elif test "x$COPY_DEBUG_SYMBOLS" != xtrue ; then
AC_MSG_ERROR([--with-external-symbols-in-bundles only works when --with-native-debug-symbols=external is used!])
elif test "x$with_external_symbols_in_bundles" = xfull ; then
AC_MSG_RESULT([full])
SHIP_DEBUG_SYMBOLS=full
else
AC_MSG_RESULT([public])
SHIP_DEBUG_SYMBOLS=public
fi
else
AC_MSG_ERROR([$with_external_symbols_in_bundles is an unknown value for --with-external-symbols-in-bundles])
fi
AC_SUBST(SHIP_DEBUG_SYMBOLS)
])
################################################################################
@@ -660,35 +630,3 @@ AC_DEFUN([JDKOPT_ENABLE_DISABLE_MANPAGES],
AC_SUBST(BUILD_MANPAGES)
])
################################################################################
#
# Disallow any output from containing absolute paths from the build system.
# This setting defaults to allowed on debug builds and not allowed on release
# builds.
#
AC_DEFUN([JDKOPT_ALLOW_ABSOLUTE_PATHS_IN_OUTPUT],
[
AC_ARG_ENABLE([absolute-paths-in-output],
[AS_HELP_STRING([--disable-absolute-paths-in-output],
[Set to disable to prevent any absolute paths from the build to end up in
any of the build output. @<:@disabled in release builds, otherwise enabled@:>@])
])
AC_MSG_CHECKING([if absolute paths should be allowed in the build output])
if test "x$enable_absolute_paths_in_output" = "xno"; then
AC_MSG_RESULT([no, forced])
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT="false"
elif test "x$enable_absolute_paths_in_output" = "xyes"; then
AC_MSG_RESULT([yes, forced])
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT="true"
elif test "x$DEBUG_LEVEL" = "xrelease"; then
AC_MSG_RESULT([no, release build])
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT="false"
else
AC_MSG_RESULT([yes, debug build])
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT="true"
fi
AC_SUBST(ALLOW_ABSOLUTE_PATHS_IN_OUTPUT)
])

View File

@@ -143,9 +143,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
AC_MSG_ERROR([--with-vendor-url must have a value])
elif [ ! [[ $with_vendor_url =~ ^[[:print:]]*$ ]] ]; then
AC_MSG_ERROR([--with-vendor-url contains non-printing characters: $with_vendor_url])
elif test "x$with_vendor_url" != x; then
# Only set VENDOR_URL if '--with-vendor-url' was used and is not empty.
# Otherwise we will use the value from "version-numbers" included above.
else
VENDOR_URL="$with_vendor_url"
fi
AC_SUBST(VENDOR_URL)
@@ -157,9 +155,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
AC_MSG_ERROR([--with-vendor-bug-url must have a value])
elif [ ! [[ $with_vendor_bug_url =~ ^[[:print:]]*$ ]] ]; then
AC_MSG_ERROR([--with-vendor-bug-url contains non-printing characters: $with_vendor_bug_url])
elif test "x$with_vendor_bug_url" != x; then
# Only set VENDOR_URL_BUG if '--with-vendor-bug-url' was used and is not empty.
# Otherwise we will use the value from "version-numbers" included above.
else
VENDOR_URL_BUG="$with_vendor_bug_url"
fi
AC_SUBST(VENDOR_URL_BUG)
@@ -171,9 +167,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
AC_MSG_ERROR([--with-vendor-vm-bug-url must have a value])
elif [ ! [[ $with_vendor_vm_bug_url =~ ^[[:print:]]*$ ]] ]; then
AC_MSG_ERROR([--with-vendor-vm-bug-url contains non-printing characters: $with_vendor_vm_bug_url])
elif test "x$with_vendor_vm_bug_url" != x; then
# Only set VENDOR_URL_VM_BUG if '--with-vendor-vm-bug-url' was used and is not empty.
# Otherwise we will use the value from "version-numbers" included above.
else
VENDOR_URL_VM_BUG="$with_vendor_vm_bug_url"
fi
AC_SUBST(VENDOR_URL_VM_BUG)

View File

@@ -37,7 +37,6 @@ AC_DEFUN_ONCE([LIB_SETUP_BUNDLED_LIBS],
LIB_SETUP_LIBPNG
LIB_SETUP_ZLIB
LIB_SETUP_LCMS
LIB_SETUP_HARFBUZZ
])
################################################################################
@@ -261,43 +260,3 @@ AC_DEFUN_ONCE([LIB_SETUP_LCMS],
AC_SUBST(LCMS_CFLAGS)
AC_SUBST(LCMS_LIBS)
])
################################################################################
# Setup harfbuzz
################################################################################
AC_DEFUN_ONCE([LIB_SETUP_HARFBUZZ],
[
AC_ARG_WITH(harfbuzz, [AS_HELP_STRING([--with-harfbuzz],
[use harfbuzz from build system or OpenJDK source (system, bundled) @<:@bundled@:>@])])
AC_MSG_CHECKING([for which harfbuzz to use])
DEFAULT_HARFBUZZ=bundled
# If user didn't specify, use DEFAULT_HARFBUZZ
if test "x${with_harfbuzz}" = "x"; then
with_harfbuzz=${DEFAULT_HARFBUZZ}
fi
if test "x${with_harfbuzz}" = "xbundled"; then
USE_EXTERNAL_HARFBUZZ=false
HARFBUZZ_CFLAGS=""
HARFBUZZ_LIBS=""
AC_MSG_RESULT([bundled])
elif test "x${with_harfbuzz}" = "xsystem"; then
AC_MSG_RESULT([system])
PKG_CHECK_MODULES([HARFBUZZ], [harfbuzz], [HARFBUZZ_FOUND=yes], [HARFBUZZ_FOUND=no])
if test "x${HARFBUZZ_FOUND}" = "xyes"; then
# PKG_CHECK_MODULES will set HARFBUZZ_CFLAGS and HARFBUZZ_LIBS
USE_EXTERNAL_HARFBUZZ=true
else
HELP_MSG_MISSING_DEPENDENCY([harfbuzz])
AC_MSG_ERROR([--with-harfbuzz=system specified, but no harfbuzz found! $HELP_MSG])
fi
else
AC_MSG_ERROR([Invalid value for --with-harfbuzz: ${with_harfbuzz}, use 'system' or 'bundled'])
fi
AC_SUBST(USE_EXTERNAL_HARFBUZZ)
AC_SUBST(HARFBUZZ_CFLAGS)
AC_SUBST(HARFBUZZ_LIBS)
])

View File

@@ -85,20 +85,6 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBFFI],
[LIBFFI_FOUND=no]
)
fi
# on macos we need a special case for system's libffi as
# headers are located only in sdk in $SYSROOT and in ffi subfolder
if test "x$LIBFFI_FOUND" = xno; then
if test "x$SYSROOT" != "x"; then
AC_CHECK_HEADER([$SYSROOT/usr/include/ffi/ffi.h],
[
LIBFFI_FOUND=yes
LIBFFI_CFLAGS="-I${SYSROOT}/usr/include/ffi"
LIBFFI_LIBS=-lffi
],
[LIBFFI_FOUND=no]
)
fi
fi
if test "x$LIBFFI_FOUND" = xno; then
HELP_MSG_MISSING_DEPENDENCY([ffi])
AC_MSG_ERROR([Could not find libffi! $HELP_MSG])

View File

@@ -49,23 +49,10 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
VAR_CPU_ENDIAN=little
;;
arm*)
# Second argument is the os name from the trip/quad.
# on macos-aarch64, triplet returned by autoconf is
# arm-darwin*, but on darwin only aarch64 is present.
case "$2" in
*darwin*)
VAR_CPU=aarch64
VAR_CPU_ARCH=aarch64
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
;;
*)
VAR_CPU=arm
VAR_CPU_ARCH=arm
VAR_CPU_BITS=32
VAR_CPU_ENDIAN=little
;;
esac
VAR_CPU=arm
VAR_CPU_ARCH=arm
VAR_CPU_BITS=32
VAR_CPU_ENDIAN=little
;;
aarch64)
VAR_CPU=aarch64
@@ -228,7 +215,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
# Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables.
PLATFORM_EXTRACT_VARS_FROM_OS($build_os)
PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu, $build_os)
PLATFORM_EXTRACT_VARS_FROM_CPU($build_cpu)
# ..and setup our own variables. (Do this explicitly to facilitate searching)
OPENJDK_BUILD_OS="$VAR_OS"
if test "x$VAR_OS_TYPE" != x; then
@@ -258,7 +245,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
# Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU variables.
PLATFORM_EXTRACT_VARS_FROM_OS($host_os)
PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu, $host_os)
PLATFORM_EXTRACT_VARS_FROM_CPU($host_cpu)
# ... and setup our own variables. (Do this explicitly to facilitate searching)
OPENJDK_TARGET_OS="$VAR_OS"
if test "x$VAR_OS_TYPE" != x; then

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2018, 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
@@ -130,9 +130,8 @@ SYSROOT_LDFLAGS := @SYSROOT_LDFLAGS@
# The top-level directory of the source repository
TOPDIR:=@TOPDIR@
# Usually the top level directory, but could be something else if a custom
# root is defined.
WORKSPACE_ROOT:=@WORKSPACE_ROOT@
IMPORT_MODULES_CLASSES:=@IMPORT_MODULES_CLASSES@
IMPORT_MODULES_CMDS:=@IMPORT_MODULES_CMDS@
IMPORT_MODULES_LIBS:=@IMPORT_MODULES_LIBS@
@@ -230,8 +229,7 @@ ifneq ($(COMPANY_NAME),)
# Only export "VENDOR" to the build if COMPANY_NAME contains a real value.
# Otherwise the default value for VENDOR, which is used to set the "java.vendor"
# and "java.vm.vendor" properties is hard-coded into the source code (i.e. in
# VersionProps.java.template in the jdk for "java.vendor" and
# vm_version.cpp in the VM for "java.vm.vendor")
# System.c in the jdk for "vm.vendor" and vm_version.cpp in the VM for "java.vm.vendor")
ifneq ($(COMPANY_NAME), N/A)
VERSION_CFLAGS += -DVENDOR='"$(COMPANY_NAME)"'
endif
@@ -287,9 +285,6 @@ USE_PRECOMPILED_HEADER := @USE_PRECOMPILED_HEADER@
# Only build headless support or not
ENABLE_HEADLESS_ONLY := @ENABLE_HEADLESS_ONLY@
# Ship debug symbols (e.g. pdbs on Windows)
SHIP_DEBUG_SYMBOLS := @SHIP_DEBUG_SYMBOLS@
ENABLE_FULL_DOCS := @ENABLE_FULL_DOCS@
# JDK_OUTPUTDIR specifies where a working jvm is built.
@@ -319,8 +314,6 @@ EXCLUDE_TRANSLATIONS := @EXCLUDE_TRANSLATIONS@
BUILD_MANPAGES := @BUILD_MANPAGES@
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT := @ALLOW_ABSOLUTE_PATHS_IN_OUTPUT@
# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep
# it in sync.
BOOT_JDK:=@BOOT_JDK@
@@ -364,9 +357,6 @@ LIBFFI_CFLAGS:=@LIBFFI_CFLAGS@
ENABLE_LIBFFI_BUNDLING:=@ENABLE_LIBFFI_BUNDLING@
LIBFFI_LIB_FILE:=@LIBFFI_LIB_FILE@
GRAALUNIT_LIB := @GRAALUNIT_LIB@
FILE_MACRO_CFLAGS := @FILE_MACRO_CFLAGS@
STATIC_LIBS_CFLAGS := @STATIC_LIBS_CFLAGS@
PACKAGE_PATH=@PACKAGE_PATH@
@@ -484,9 +474,6 @@ CPP:=@FIXPATH@ @CPP@
# The linker can be gcc or ld on unix systems, or link.exe on windows systems.
LD:=@FIXPATH@ @LD@
# Linker used by the jaotc tool for AOT compilation.
LD_JAOTC:=@LD_JAOTC@
# Xcode SDK path
SDKROOT:=@SDKROOT@
@@ -617,7 +604,7 @@ JAVA_JAVAC=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_JAVAC) $(JAVA_FLAGS)
JAVAC=@FIXPATH@ $(JAVAC_CMD)
JAVADOC=@FIXPATH@ $(JAVADOC_CMD)
JAR=@FIXPATH@ $(JAR_CMD)
JLINK = @FIXPATH@ $(JLINK_CMD)
JLINK = @FIXPATH@ $(JLINK_CMD) $(JAVA_TOOL_FLAGS_SMALL)
JMOD = @FIXPATH@ $(JMOD_CMD) $(JAVA_TOOL_FLAGS_SMALL)
JARSIGNER=@FIXPATH@ $(JARSIGNER_CMD)
# A specific java binary with specific options can be used to run
@@ -832,10 +819,6 @@ USE_EXTERNAL_LCMS:=@USE_EXTERNAL_LCMS@
LCMS_CFLAGS:=@LCMS_CFLAGS@
LCMS_LIBS:=@LCMS_LIBS@
USE_EXTERNAL_HARFBUZZ:=@USE_EXTERNAL_HARFBUZZ@
HARFBUZZ_CFLAGS:=@HARFBUZZ_CFLAGS@
HARFBUZZ_LIBS:=@HARFBUZZ_LIBS@
USE_EXTERNAL_LIBPNG:=@USE_EXTERNAL_LIBPNG@
PNG_LIBS:=@PNG_LIBS@
PNG_CFLAGS:=@PNG_CFLAGS@
@@ -879,27 +862,13 @@ DOCS_IMAGE_DIR = $(IMAGES_OUTPUTDIR)/$(DOCS_IMAGE_SUBDIR)
# Output docs directly into image
DOCS_OUTPUTDIR := $(DOCS_IMAGE_DIR)
# Static libs image
STATIC_LIBS_IMAGE_SUBDIR := static-libs
STATIC_LIBS_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(STATIC_LIBS_IMAGE_SUBDIR)
# Graal builder image
GRAAL_BUILDER_IMAGE_SUBDIR := graal-builder-jdk
GRAAL_BUILDER_IMAGE_DIR := $(IMAGES_OUTPUTDIR)/$(GRAAL_BUILDER_IMAGE_SUBDIR)
# Macosx bundles directory definitions
JDK_MACOSX_BUNDLE_SUBDIR=jdk-bundle
JRE_MACOSX_BUNDLE_SUBDIR=jre-bundle
JDK_MACOSX_BUNDLE_SUBDIR_SIGNED=jdk-bundle-signed
JRE_MACOSX_BUNDLE_SUBDIR_SIGNED=jre-bundle-signed
JDK_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR)
JRE_MACOSX_BUNDLE_DIR=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR)
JDK_MACOSX_BUNDLE_DIR_SIGNED=$(IMAGES_OUTPUTDIR)/$(JDK_MACOSX_BUNDLE_SUBDIR_SIGNED)
JRE_MACOSX_BUNDLE_DIR_SIGNED=$(IMAGES_OUTPUTDIR)/$(JRE_MACOSX_BUNDLE_SUBDIR_SIGNED)
JDK_MACOSX_BUNDLE_TOP_DIR=jdk-$(VERSION_NUMBER).jdk
JRE_MACOSX_BUNDLE_TOP_DIR=jre-$(VERSION_NUMBER).jre
JDK_MACOSX_CONTENTS_SUBDIR=$(JDK_MACOSX_BUNDLE_TOP_DIR)/Contents
JRE_MACOSX_CONTENTS_SUBDIR=$(JRE_MACOSX_BUNDLE_TOP_DIR)/Contents
JDK_MACOSX_CONTENTS_SUBDIR=jdk-$(VERSION_NUMBER).jdk/Contents
JRE_MACOSX_CONTENTS_SUBDIR=jre-$(VERSION_NUMBER).jre/Contents
JDK_MACOSX_CONTENTS_DIR=$(JDK_MACOSX_BUNDLE_DIR)/$(JDK_MACOSX_CONTENTS_SUBDIR)
JRE_MACOSX_CONTENTS_DIR=$(JRE_MACOSX_BUNDLE_DIR)/$(JRE_MACOSX_CONTENTS_SUBDIR)
@@ -921,7 +890,6 @@ JDK_SYMBOLS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART)-symbols.tar.gz
TEST_DEMOS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests-demos$(DEBUG_PART).tar.gz
TEST_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-tests$(DEBUG_PART).tar.gz
DOCS_BUNDLE_NAME := jdk-$(BASE_NAME)_doc-api-spec$(DEBUG_PART).tar.gz
STATIC_LIBS_BUNDLE_NAME := jdk-$(BASE_NAME)_bin-static-libs$(DEBUG_PART).tar.gz
JDK_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_BUNDLE_NAME)
JRE_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JRE_BUNDLE_NAME)

View File

@@ -429,10 +429,9 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
# There is no specific version flag, but all output starts with a version string.
# First line typically looks something like:
# Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 16.00.40219.01 for 80x86
# but the compiler name may vary depending on locale.
COMPILER_VERSION_OUTPUT=`$COMPILER 2>&1 | $HEAD -n 1 | $TR -d '\r'`
# Check that this is likely to be Microsoft CL.EXE.
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft" > /dev/null
$ECHO "$COMPILER_VERSION_OUTPUT" | $GREP "Microsoft.*Compiler" > /dev/null
if test $? -ne 0; then
AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required $TOOLCHAIN_TYPE compiler.])
AC_MSG_NOTICE([The result from running it was: "$COMPILER_VERSION_OUTPUT"])
@@ -461,7 +460,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_COMPILER_VERSION],
COMPILER_VERSION_STRING=`$ECHO $COMPILER_VERSION_OUTPUT | \
$SED -e 's/ *Copyright .*//'`
COMPILER_VERSION_NUMBER=`$ECHO $COMPILER_VERSION_OUTPUT | \
$SED -e 's/^.* \(@<:@1-9@:>@<:@0-9@:>@*\.@<:@0-9.@:>@*\)@<:@^0-9.@:>@.*$/\1/'`
$SED -e 's/^.* \(@<:@1-9@:>@\.@<:@0-9.@:>@*\)@<:@^0-9.@:>@.*$/\1/'`
elif test "x$TOOLCHAIN_TYPE" = xclang; then
# clang --version output typically looks like
# Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
@@ -590,7 +589,7 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
[
LINKER=[$]$1
LINKER_NAME="$2"
LINKER_NAME=$2
if test "x$TOOLCHAIN_TYPE" = xsolstudio; then
# cc -Wl,-V output typically looks like
@@ -710,18 +709,12 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
AC_MSG_RESULT([yes])
fi
LDCXX="$LD"
# jaotc being a windows program expects the linker to be supplied with exe suffix.
LD_JAOTC="$LD$EXE_SUFFIX"
else
# All other toolchains use the compiler to link.
LD="$CC"
LDCXX="$CXX"
# jaotc expects 'ld' as the linker rather than the compiler.
BASIC_CHECK_TOOLS([LD_JAOTC], ld)
BASIC_FIXUP_EXECUTABLE(LD_JAOTC)
fi
AC_SUBST(LD)
AC_SUBST(LD_JAOTC)
# FIXME: it should be CXXLD, according to standard (cf CXXCPP)
AC_SUBST(LDCXX)
@@ -948,14 +941,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
# FIXME: we should list the discovered compilers as an exclude pattern!
# If we do that, we can do this detection before POST_DETECTION, and still
# find the build compilers in the tools dir, if needed.
if test "x$OPENJDK_BUILD_OS" = xmacosx; then
BASIC_REQUIRE_PROGS(BUILD_CC, [clang cl cc gcc])
BASIC_REQUIRE_PROGS(BUILD_CXX, [clang++ cl CC g++])
else
BASIC_REQUIRE_PROGS(BUILD_CC, [cl cc gcc])
BASIC_REQUIRE_PROGS(BUILD_CXX, [cl CC g++])
fi
BASIC_REQUIRE_PROGS(BUILD_CC, [cl cc gcc])
BASIC_FIXUP_EXECUTABLE(BUILD_CC)
BASIC_REQUIRE_PROGS(BUILD_CXX, [cl CC g++])
BASIC_FIXUP_EXECUTABLE(BUILD_CXX)
BASIC_PATH_PROGS(BUILD_NM, nm gcc-nm)
BASIC_FIXUP_EXECUTABLE(BUILD_NM)
@@ -1034,12 +1022,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
# This is later checked when setting flags.
fi
if test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
# Check if linker has -z noexecstack.
HAS_NOEXECSTACK=`$CC -Wl,--help 2>/dev/null | $GREP 'z noexecstack'`
# This is later checked when setting flags.
fi
# Setup hotspot lecagy names for toolchains
HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE
if test "x$TOOLCHAIN_TYPE" = xclang; then

View File

@@ -185,8 +185,6 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
eval SDK_INSTALL_DIR="\${VS_SDK_INSTALLDIR_${VS_VERSION}}"
eval VS_ENV_ARGS="\${VS_ENV_ARGS_${VS_VERSION}}"
VS_ENV_CMD=""
# When using --with-tools-dir, assume it points to the correct and default
# version of Visual Studio or that --with-toolchain-version was also set.
if test "x$with_tools_dir" != x; then
@@ -204,6 +202,8 @@ AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
fi
fi
VS_ENV_CMD=""
if test "x$VS_COMNTOOLS" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[$VS_COMNTOOLS/../..], [$VS_COMNTOOLS_VAR variable])
@@ -693,7 +693,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
if test "x$USE_UCRT" = "xtrue"; then
AC_MSG_CHECKING([for UCRT DLL dir])
if test "x$with_ucrt_dll_dir" != x; then
if test -z "$(ls -d "$with_ucrt_dll_dir/"*.dll 2> /dev/null)"; then
if test -z "$(ls -d "$with_ucrt_dll_dir/*.dll" 2> /dev/null)"; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find any dlls in $with_ucrt_dll_dir])
else
@@ -713,16 +713,8 @@ AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
fi
UCRT_DLL_DIR="$CYGWIN_WINDOWSSDKDIR/Redist/ucrt/DLLs/$dll_subdir"
if test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
# Try with version subdir
UCRT_DLL_DIR="`ls -d $CYGWIN_WINDOWSSDKDIR/Redist/*/ucrt/DLLs/$dll_subdir \
2> /dev/null | $SORT -d | $HEAD -n1`"
if test -z "$UCRT_DLL_DIR" \
|| test -z "$(ls -d "$UCRT_DLL_DIR/"*.dll 2> /dev/null)"; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find any dlls in $UCRT_DLL_DIR])
else
AC_MSG_RESULT($UCRT_DLL_DIR)
fi
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find any dlls in $UCRT_DLL_DIR])
else
AC_MSG_RESULT($UCRT_DLL_DIR)
fi

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2019, 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
@@ -23,21 +23,19 @@
# questions.
#
# Default version, product, and vendor information to use,
# unless overridden by configure
# Default version numbers to use unless overridden by configure
DEFAULT_VERSION_FEATURE=11
DEFAULT_VERSION_INTERIM=0
DEFAULT_VERSION_UPDATE=11
DEFAULT_VERSION_UPDATE=6
DEFAULT_VERSION_PATCH=0
DEFAULT_VERSION_EXTRA1=0
DEFAULT_VERSION_EXTRA2=0
DEFAULT_VERSION_EXTRA3=0
DEFAULT_VERSION_DATE=2021-04-20
DEFAULT_VERSION_DATE=2020-01-14
DEFAULT_VERSION_CLASSFILE_MAJOR=55 # "`$EXPR $DEFAULT_VERSION_FEATURE + 44`"
DEFAULT_VERSION_CLASSFILE_MINOR=0
DEFAULT_ACCEPTABLE_BOOT_VERSIONS="10 11"
DEFAULT_PROMOTED_VERSION_PRE=ea
LAUNCHER_NAME=openjdk
PRODUCT_NAME=OpenJDK
@@ -45,9 +43,6 @@ PRODUCT_SUFFIX="Runtime Environment"
JDK_RC_PLATFORM_NAME=Platform
COMPANY_NAME=N/A
HOTSPOT_VM_DISTRO="OpenJDK"
VENDOR_URL=https://openjdk.java.net/
VENDOR_URL_BUG=https://bugreport.java.com/bugreport/
VENDOR_URL_VM_BUG=https://bugreport.java.com/bugreport/crash.jsp
# Might need better names for these
MACOSX_BUNDLE_NAME_BASE="OpenJDK"

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2011, 2016, 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
@@ -122,9 +122,9 @@ define SetupJarArchiveBody
ifeq ($$($1_DEPENDENCIES), )
# Add all source roots to the find cache since we are likely going to run find
# on these more than once. The cache will only be updated if necessary.
$$(call FillFindCache, $$($1_FIND_LIST))
$$(eval $$(call FillCacheFind, $$($1_FIND_LIST)))
$1_DEPENDENCIES:=$$(filter $$(addprefix %,$$($1_SUFFIXES)), \
$$(call FindFiles,$$($1_SRCS)))
$$(call CacheFind,$$($1_SRCS)))
ifneq (,$$($1_GREP_INCLUDE_PATTERNS))
$1_DEPENDENCIES:=$$(filter $$(addsuffix %,$$($1_GREP_INCLUDE_PATTERNS)),$$($1_DEPENDENCIES))
endif
@@ -135,7 +135,7 @@ define SetupJarArchiveBody
$1_DEPENDENCIES+=$$(wildcard $$(foreach src, $$($1_SRCS), \
$$(addprefix $$(src)/, $$($1_EXTRA_FILES))) $$($1_EXTRA_FILES))
ifeq (,$$($1_SKIP_METAINF))
$1_DEPENDENCIES+=$$(call FindFiles,$$(wildcard $$(addsuffix /META-INF,$$($1_SRCS))))
$1_DEPENDENCIES+=$$(call CacheFind,$$(wildcard $$(addsuffix /META-INF,$$($1_SRCS))))
endif
endif
# The dependency list should never be empty

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