Compare commits

..

1570 Commits

Author SHA1 Message Date
Joe Wang
5f05f78bd4 8213117: adoptNode corrupts attribute values
Reviewed-by: lancea
2018-11-28 10:30:15 -08:00
Ioi Lam
16dc8e9634 8213275: ReplaceCriticalClasses.java fails with jdk.internal.vm.PostVMInitHook not found
Reviewed-by: lfoltan, sspitsyn, shade
2018-11-28 07:51:15 -08:00
Volker Simonis
631decbf2f 8214343: Handle the absence of Xrandr more generically
Reviewed-by: stuefe, erikj, prr
2018-11-28 13:56:32 +01:00
Dmitry Chuyko
bc98309953 8214272: Don't use memset to initialize arrays of MemoryUsage in memoryManager.cpp
Reviewed-by: rkennke, shade
2018-11-28 13:24:56 +03:00
Robbin Ehn
7e0040c384 8213791: StringTable: Use get and insert
Reviewed-by: eosterlund, gziemski
2018-11-28 11:06:27 +01:00
Thomas Schatzl
0f0b8626fc 8213996: Remove one of the SparsePRT entry tables
Remove unused functionality in SparsePRT

Reviewed-by: shade, sjohanss
2018-11-28 11:06:58 +01:00
Thomas Schatzl
9a4eed85df 8211211: vmTestbase/metaspace/stressDictionary/StressDictionary.java timeout
Disable CMS precleaning to avoid accumulating too many classloaders to unload.

Reviewed-by: kbarrett, sangheki
2018-11-28 10:52:01 +01:00
Magnus Ihse Bursie
2ddd78e825 8178317: Create man pages using pandoc from markdown sources
Reviewed-by: erikj
2018-11-28 10:00:41 +01:00
Matthias Baesken
679f30ebc3 8214373: adjust usage of ReleaseLongArrayElements in MacosxDebuggerLocal
Reviewed-by: stuefe, jcbeyler
2018-11-27 15:56:10 +01:00
Roland Westrelin
cd0aafe76a 8214362: C2: gc interface entry point for split if
Reviewed-by: rkennke, thartmann
2018-11-27 14:49:13 +01:00
Roland Westrelin
8849b1c7b7 8214172: GC interface entry points for loop opts
Reviewed-by: kvn, rkennke
2018-11-27 09:35:02 +01:00
Hamlin Li
bb50695ff9 8211975: move testlibrary/jdk/testlibrary/OptimalCapacity.java to top-level library
Reviewed-by: igerasim
2018-11-28 15:34:43 +08:00
Priya Lakshmi Muthuswamy
17773c31b6 8202621: bad test with broken links needs to be updated
Reviewed-by: hannesw
2018-11-28 10:21:07 +05:30
Priya Lakshmi Muthuswamy
a19bd10e83 8213921: Use {@systemProperty} tag for properties listed in "Networking Properties"
Reviewed-by: chegar
2018-11-28 09:37:03 +05:30
David Holmes
2bcaf34726 8212207: runtime/InternalApi/ThreadCpuTimesDeadlock.java crashes with SEGV in pthread_getcpuclockid+0x0
Skip non-JavaThreads that have not reached a minimal initialization point - setting their stack size

Reviewed-by: kbarrett, stuefe
2018-11-27 22:02:52 -05:00
David Holmes
cb861252d7 8214208: Nestmate package validation logging/exception should include classloader information
Reviewed-by: hseigel, coleenp, mchung
2018-11-27 21:20:16 -05:00
Coleen Phillimore
fdd11cac16 8214151: [TESTBUG] CleanProtectionDomain.java fails due to RuntimeException: 'protection domain unlinked' missing
Call WB_ProtectionDomainRemovedCount.

Reviewed-by: jiangli, pchilanomate
2018-11-27 19:46:57 -05:00
Mikhailo Seledtsov
48073dc0d0 8213914: [TESTBUG] Several JFR VM events are not covered by tests
Fixed several relevant test issues, added a test to check event coverage

Reviewed-by: egahlin
2018-11-27 15:52:34 -08:00
Daniel D. Daugherty
8e4e1a91c0 8202415: Incorrect time logged for monitor deflation
Add support for "deflating per-thread idle monitors" log mesgs.

Reviewed-by: dholmes, coleenp
2018-11-27 18:35:16 -05:00
Jiangli Zhou
bc215804a4 8214217: [TESTBUG] runtime/appcds/LotsOfClasses.java failed with fragmented heap
Improve the fragmentation error message. Set java heap size in LotsOfClasses.java.

Reviewed-by: iklam, ccheung
2018-11-27 17:53:17 -05:00
Patricio Chilano Mateo
803b9a675b 8150689: Thread dump report "waiting to re-lock in wait()" shows incorrectly
"waiting to re-lock in wait()" is now shown in the frame where relocking is taking place

Reviewed-by: dholmes, dcubed
2018-11-27 13:39:57 -05:00
Joe Darcy
5d1cc7fc01 8213911: Use example.com in java.net and other examples
Reviewed-by: prappo, chegar, rriggs, mullan
2018-11-27 11:28:47 -08:00
Joe Wang
197b669f83 8177286: AttributeSet: attempt to compare Qname and String
Reviewed-by: lancea
2018-11-27 09:40:32 -08:00
Markus Grönlund
ba809c2c36 8214287: SpecJbb2005StressModule got uncaught exception
Reviewed-by: egahlin, jwilhelm
2018-11-27 18:14:27 +01:00
Vicente Romero
10da56f017 8203277: preflow visitor used during lambda attribution shouldn't visit class definitions inside the lambda body
Reviewed-by: mcimadamore
2018-11-27 11:07:44 -05:00
Matthias Baesken
9debae9783 8214297: testbug : missing fclose in jvmti_aod.cpp
Reviewed-by: coleenp, stuefe
2018-11-26 14:04:23 +01:00
Hannes Wallnöfer
e524f41fbf 8213716: javadoc search not working with Japanese and Chinese locales
Reviewed-by: jjg
2018-11-27 13:02:28 +01:00
Sean Coffey
6e905c8389 8214295: Populate handlers while holding streamHandlerLock
Reviewed-by: chegar
2018-11-27 11:09:53 +00:00
Roland Westrelin
efcfec81ce 8214189: test/hotspot/jtreg/compiler/intrinsics/mathexact/MulExactLConstantTest.java fails on Windows x64 when run with -XX:-TieredCompilation
Reviewed-by: kvn
2018-11-26 17:35:35 +01:00
Dean Long
787f8b320e 8213259: [AOT] AOTing java.base fails with "java.lang.AssertionError: no fingerprint for Ljdk/internal/event/Event"
Reviewed-by: iklam, kvn
2018-11-26 22:49:57 -08:00
Thomas Stuefe
abf1e47f29 8213834: JVMTI ResourceExhausted should not be posted in CompilerThread
Reviewed-by: dholmes, dcubed, jcbeyler, sspitsyn
2018-11-27 07:54:06 +01:00
Xue-Lei Andrew Fan
23ecdbbc1d 8214321: Misleading code in SSLCipher
Reviewed-by: ascarpino
2018-11-26 20:50:21 -08:00
Weijun Wang
b1c4b461f1 8214100: use of keystore probing results in unnecessary exception thrown
Reviewed-by: mullan
2018-11-27 08:51:20 +08:00
Ioi Lam
52664cb14a 8214029: Remove dead code BasicHashtable::bulk_free_entries
Reviewed-by: dholmes
2018-11-26 15:06:53 -08:00
Jonathan Gibbons
1d01b4d22f 8190312: javadoc -link doesn't work with http: -> https: URL redirects
Reviewed-by: hannesw
2018-11-26 11:17:13 -08:00
Jiangli Zhou
e0d9ae7699 8214086: [TESTBUG] Fix subgraph test cases in ReplaceCriticalClasses.java
Add subgraph test cases in ReplaceCriticalClassesForSubgraphs.java.

Reviewed-by: iklam
2018-11-26 14:13:22 -05:00
Jonathan Gibbons
ae4f1b1941 8213956: javadoc crash using {@index} in doc-files file
Reviewed-by: jlahoda, hannesw, pmuthuswamy
2018-11-26 11:00:32 -08:00
Kim Barrett
5c99d95a63 8214202: DirtyCardQueueSet::get_completed_buffer should not clear _process_completed
Remove flag clearing and simplify get_completed-buffer.

Reviewed-by: tschatzl, sjohanss
2018-11-26 13:17:39 -05:00
Simon Tooke
5d725a98c8 8214059: Undefined behaviour in ADLC
Reviewed-by: shade, kbarrett
2018-11-26 09:36:30 +01:00
Jim Laskey
40d4ff864c 8203442: String::transform
Reviewed-by: smarks, sherman, alanb, darcy, forax, rriggs, scolebourne, dholmes, plevart
2018-11-26 12:20:06 -04:00
Harold Seigel
6d25f18bad 8204525: [TESTBUG] runtime/NMT/MallocStressTest.java ran out of java heap
Handle OutOfMemoryError exception to prevent test aborting

Reviewed-by: zgu, dholmes
2018-11-26 09:46:20 -05:00
Tobias Hartmann
dc6cabe8b7 8214242: compiler/arguments/TestScavengeRootsInCode.java fails because of missing UnlockDiagnosticVMOptions
Added missing UnlockDiagnosticVMOptions.

Reviewed-by: tschatzl
2018-11-26 12:16:23 +01:00
Jan Lahoda
06b1502892 8214113: Switch expressions may have constant type and may be skipped during write
Switch expressions should not be compile-time constants.

Reviewed-by: mcimadamore
2018-11-26 09:24:08 +01:00
Weijun Wang
b021bcb335 8214262: SunEC native code does not compile with debug on
Reviewed-by: jnimeh
2018-11-26 08:27:49 +08:00
Jesper Wilhelmsson
e398213df7 8214276: Problemlist compiler/intrinsics/mathexact/MulExactLConstantTest.java
Reviewed-by: kbarrett
2018-11-24 01:05:11 +01:00
Boris Ulasevich
b2cb5cee6d 8213845: ARM32: Interpreter doesn't call result handler after native calls
Reviewed-by: aph
2018-11-23 19:45:38 +03:00
Roland Westrelin
e530ca5cc2 8214206: Fix for JDK-8213419 is broken on 32-bit
Reviewed-by: mdoerr, shade
2018-11-22 17:25:47 +01:00
Stefan Johansson
bde8307cf9 8214118: HeapRegions marked as archive even if CDS mapping fails
Reviewed-by: tschatzl, jiangli
2018-11-23 10:57:07 +01:00
Robbin Ehn
751aa57f16 8214181: safepoint header cleanup
Reviewed-by: kbarrett, dholmes, coleenp
2018-11-23 11:07:54 +01:00
Robbin Ehn
72235f33c7 8212108: SafepointSynchronizer never ending counter (big enough)
Reviewed-by: dholmes, eosterlund
2018-11-23 10:43:18 +01:00
Markus Grönlund
954c14dc83 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
2018-11-23 10:51:59 +01:00
Vyom Tewari
19e69dc84f 8203672: JNI exception pending in PlainSocketImpl.c
8203264: JNI exception pending in PlainDatagramSocketImpl.c:740
8203673: JNI exception pending in DualStackPlainDatagramSocketImpl.c:398

Reviewed-by: chegar, igerasim
2018-11-23 13:16:45 +05:30
Yasumasa Suenaga
4663065fad 8213015: Inconsistent settings between JFR.configure and -XX:FlightRecorderOptions
Reviewed-by: mgronlun, egahlin
2018-11-23 16:36:07 +09:00
Amy Lu
f684f2cff3 8214241: Problem list com/sun/jndi/ldap/LdapTimeoutTest.java for all platforms
Reviewed-by: vtewari, weijun
2018-11-23 12:45:47 +08:00
Michihiro Horie
dbf691d4a2 8214205: PPC64: Add instructions for counting trailing zeros
Reviewed-by: mdoerr, gromero
2018-11-22 21:43:37 -05:00
Mandy Chung
b2604123d3 8214223: tools/jdeps/listdeps/ListModuleDeps.java failed due to missing Lib2 file
Reviewed-by: lancea, alanb
2018-11-22 10:15:32 -08:00
Volker Simonis
faff794a88 8213698: Improve devkit creation and add support for linux/ppc64/ppc64le/s390x
Reviewed-by: erikj, ihse
2018-11-22 17:22:40 +01:00
Hannes Wallnöfer
c047c5cfcf 8200432: javadoc fails with ClassCastException on {@link byte[]}
Reviewed-by: jjg, sundar
2018-11-22 15:38:20 +01:00
Simon Tooke
710ecce7f7 8214108: [TESTBUG] Incorrect Function parameter lists in vmTestbase/nsk/jvmti/scenarios/extension/EX03/ex03t001
Reviewed-by: gadams, sspitsyn
2018-11-22 11:15:53 +01:00
Simon Tooke
fe3811d46a 8214105: [TESTBUG] Bit test is always false in serviceability/jvmti/StartPhase/AllowedFunctions
Reviewed-by: dcubed, dholmes, jcbeyler, gadams, sspitsyn
2018-11-22 10:11:58 +01:00
Erik Österlund
1379397c32 8213755: Let nmethods be is_unloading() outside of safepoints
Reviewed-by: rehn, coleenp, kvn
2018-11-22 10:01:38 +01:00
Erik Österlund
c9657d8dcf 8214056: Allow the GC to attach context information to CompiledMethod
Reviewed-by: shade, kvn, adinn
2018-11-22 09:55:44 +01:00
Erik Österlund
44b1ed07f5 8213486: SIGSEGV in CompiledMethod::cleanup_inline_caches_impl with AOT
Reviewed-by: kvn, dlong
2018-11-22 09:46:24 +01:00
Volker Simonis
62b2f0f5c9 8213944: Fix AIX build after the removal of Xrandr.h and add a configure check for it
Reviewed-by: shade, erikj, stuefe, ihse, goetz
2018-11-22 09:44:02 +01:00
Thomas Schatzl
fc8795984a 8213927: G1 ignores AlwaysPreTouch when UseTransparentHugePages is enabled
With UseTransparentHugePages we always need to pretouch on small page size as the underlying memory could currently be allocated as either small or large pages.

Reviewed-by: shade, sjohanss
2018-11-22 09:26:51 +01:00
Thomas Schatzl
0febdff79b 8213997: Remove G1HRRSUseSparseTable flag
Remove develop flag because it is not used anyway.

Reviewed-by: shade, manc
2018-11-22 09:25:19 +01:00
Roman Kennke
34a1c2e6bb 8214057: GC/C2 abstraction for Node::has_special_unique_user()
Reviewed-by: kvn, roland
2018-11-22 09:23:05 +01:00
Roman Kennke
4b528df402 8214055: GC/C2 abstraction for phaseX
Reviewed-by: kvn, roland
2018-11-22 09:22:54 +01:00
Per Lidén
10526c99f9 8212748: ZGC: Add reentrant locking functionality
Reviewed-by: eosterlund, kbarrett
2018-11-09 14:08:01 +01:00
Per Lidén
7e500f1d72 8214068: ZGC crashes with vmTestbase/nsk/jdi/ReferenceType/instances/instances004/TestDescription.java
Reviewed-by: eosterlund, rehn, dcubed
2018-11-22 09:14:31 +01:00
Vyom Tewari
4444bac1b1 8046500: GetIpAddrTable function failed on Pure Ipv6 environment
Reviewed-by: chegar
2018-11-22 13:25:44 +05:30
Mandy Chung
0126fdbef0 8213909: jdeps --print-module-deps should report missing dependences
8168869: jdeps: localized messages don't use proper line breaks

Reviewed-by: sundar
2018-11-21 22:34:01 -08:00
Mandy Chung
9d7509e647 8211051: jdeps usage of --dot-output doesn't provide valid output for modular jar
Reviewed-by: sundar
2018-11-21 22:33:33 -08:00
Priya Lakshmi Muthuswamy
7de1b68d89 8213819: doclint should warn against {@index} inside <a> tag
Reviewed-by: jjg, hannesw
2018-11-22 10:25:44 +05:30
Amy Lu
59529caf8f 8211266: [TESTBUG] ZipFSTester.java failed intermittently in ZipFSTester.checkRead(): bound must be positive
Reviewed-by: lancea
2018-11-22 10:30:47 +08:00
Jesper Wilhelmsson
a90e7ef6d1 Added tag jdk-12+21 for changeset f8fb0c86f2b3 2018-11-22 02:32:36 +01:00
Doug Simon
4512750fbe 8213907: [JVMCI] avoid Class.getDeclared* methods when converting JVMCI objects to reflection objects
Reviewed-by: kvn, never
2018-11-21 22:02:17 +01:00
Jonathan Gibbons
1a6b429e9a 8214139: Remove wrapper methods from {Base,Html}Configuration
Reviewed-by: pmuthuswamy, hannesw
2018-11-21 12:36:16 -08:00
Adam Petcher
a5423f142c 8213202: Possible race condition in TLS 1.3 session resumption
Reviewed-by: jnimeh
2018-11-21 15:06:13 -05:00
Jean Christophe Beyler
937fe3be82 8214149: Move out assignments when not using NSK*VERIFY macros
Move out the assignments from ifs

Reviewed-by: sspitsyn, cjplummer
2018-11-21 10:46:45 -08:00
Nick Gasson
10cd386ac3 8214078: (fs) SecureDirectoryStream not supported on arm32
Reviewed-by: alanb
2018-11-21 18:44:11 +00:00
Jean Christophe Beyler
5639c70032 8213721: [Graal] Tests vmTestbase/nsk/stress/except/except* may be encountering SEGV during out-of-memory conditions
Add the exception handler only for the current thread

Reviewed-by: dholmes, sspitsyn, thartmann
2018-11-21 09:38:27 -08:00
Brian Burkhalter
a6f0e10fe8 8213235: java/nio/channels/SocketChannel/AsyncCloseChannel.java fails with threads that didn't exit
Reviewed-by: alanb, dfuchs
2018-11-21 08:16:25 -08:00
Sean Coffey
7b8898d03c 8213942: URLStreamHandler initialization race
Reviewed-by: alanb, chegar, prappo
2018-11-21 15:09:27 +00:00
Kim Barrett
d8e5d52deb 8214144: Remove confusing locking_enqueue_completed_buffer
Remove function.

Reviewed-by: tschatzl, manc
2018-11-21 09:40:19 -05:00
Volker Simonis
a4fb817366 8214120: [REDO] Fix sun.awt.nativedebug on X11 platforms
Reviewed-by: stuefe, ihse
2018-11-21 15:22:28 +01:00
Jan Lahoda
60b32f222f 8212982: Rule cases in switch expression accepted even if complete normally
Ensure an error is reported if switch expression does not correctly produce a value.

Reviewed-by: mcimadamore
2018-11-21 15:22:57 +01:00
Tobias Hartmann
9314c7f110 8214025: assert(t->singleton()) failed: must be a constant when ScavengeRootsInCode < 2
Added missing null checks and checks for pending exception.

Reviewed-by: kvn
2018-11-21 15:05:21 +01:00
Rachna Goel
f8518a2c05 8209923: Unicode 11.0.0
Updated JDK to support Unicode 11.0.0.

Reviewed-by: naoto
2018-11-21 14:24:31 +05:30
Roland Westrelin
11e54e0749 8213419: C2 may hang in MulLNode::Ideal()/MulINode::Ideal() with gcc 8.2.1
Reviewed-by: kvn, dlong, aph
2018-11-14 13:15:54 +01:00
Ioi Lam
6d269930fd 8213587: Speed up CDS dump time by using resizable hashtables
Reviewed-by: jiangli, coleenp, gziemski
2018-11-20 20:00:15 -08:00
Jean Christophe Beyler
6d3df94e5e 8214154: problem list HeapMonitorStatIntervalTest.java
Add the test to the problem list until solved

Reviewed-by: dholmes
2018-11-20 18:36:57 -08:00
Zhengyu Gu
44ddbe3370 8214124: [TESTBUG] Bugs in runtime/NMT/MallocStressTest.java
Fix possible negative size and index that can cause the test to fail

Reviewed-by: stuefe, shade
2018-11-20 20:09:11 -05:00
Aleksey Shipilev
a264dac26c 8213992: Rename and make DieOnSafepointTimeout the diagnostic option
Reviewed-by: dholmes, dcubed, coleenp, kvn
2018-11-20 22:59:27 +01:00
Roman Kennke
521da29e44 8213746: GC/C2 abstraction for C2 matcher
Reviewed-by: kvn, roland
2018-11-20 22:37:34 +01:00
Claes Redestad
4b45441ae9 8213033: Archive remaining primitive box caches
Reviewed-by: jiangli, alanb
2018-11-20 21:12:46 +01:00
Liam Miller-Cushon
4a235517f9 8213908: AssertionError in DeferredAttr at setOverloadKind
Reviewed-by: mcimadamore
2018-11-19 09:57:41 -08:00
Volker Simonis
2db81b4e13 8214125: [test] Fix comparison between pointer and integer in test_ptrQueueBufferAllocator.cpp
Reviewed-by: mdoerr, shade, stuefe, tschatzl
2018-11-20 19:06:34 +01:00
Joe Wang
fad3c52660 8210722: JAXP Tests: CatalogSupport2 and CatalogSupport3 generate incorrect messages upon failure
Reviewed-by: lancea
2018-11-20 09:22:13 -08:00
Srinivas Dama
e4f60a8489 8210742: compound var declaration type is not uniform for all variables
Make implicit type for all variables in compound declaration as null for which type inference happens at later phase

Reviewed-by: mcimadamore
2018-11-20 21:59:07 +05:30
Sean Coffey
73ad9c4a00 8148188: Enhance the security libraries to record events of interest
Reviewed-by: egahlin, mullan, weijun, xuelei
2018-11-20 13:12:48 +00:00
Erik Österlund
dc260a5369 8212992: Change mirror accessor in Klass::verify_on() to use AS_NO_KEEPALIVE
Reviewed-by: coleenp, pliden
2018-11-20 10:08:19 +01:00
Erik Österlund
8b1844626a 8212682: Avoid holding Compile_lock when blocking for GC in ObjArrayKlass::allocate_objArray_klass()
Reviewed-by: coleenp, dlong
2018-11-20 10:08:18 +01:00
Robbin Ehn
041946dcb0 8213560: gtests might hang
Reviewed-by: rwestberg, eosterlund
2018-11-20 09:35:15 +01:00
Per Lidén
a0c58fb8c6 8213623: ZGC: Let heap iteration walk all roots
Reviewed-by: eosterlund, kbarrett
2018-11-20 08:17:24 +01:00
Priya Lakshmi Muthuswamy
4acb8dd9c3 8184205: Captions on tabbed tables are squashed together
Reviewed-by: jjg
2018-11-20 10:50:54 +05:30
Priya Lakshmi Muthuswamy
470aaffd13 8213920: Use {@systemProperty} tag for properties listed in System.getProperties
Reviewed-by: mchung, alanb
2018-11-20 10:07:42 +05:30
Chris Yin
fb6de4b0b6 8129310: java/net/Socket/asyncClose/AsyncClose.java fails intermittently
Reviewed-by: dfuchs
2018-11-20 09:59:58 +08:00
Liam Miller-Cushon
4cdf0c4c1d 8214071: Broken msg.bug diagnostics when using the compiler API
Reviewed-by: jjg
2018-11-19 10:47:38 -08:00
Thomas Stuefe
03baf2db08 8214075: [BACKOUT] 8214007: Fix sun.awt.nativedebug on X11 platforms
Reviewed-by: shade, dholmes
2018-11-19 22:27:51 +01:00
Volker Simonis
eba7b5718f 8214007: Fix sun.awt.nativedebug on X11 platforms
Reviewed-by: erikj, ihse
2018-11-19 19:25:57 +01:00
Sergey Ustimenko
785e2aca39 8214062: JDK-8167368 Leftover: get_source.sh in build documentation
Reviewed-by: dholmes, erikj
2018-11-19 08:52:11 -08:00
Patric Hedlin
2edd37a6ac 8191339: [JVMCI] BigInteger compiler intrinsics on Graal
Reviewed-by: kvn
2017-12-06 13:07:21 +01:00
Roland Westrelin
8f4456e77a 8211451: ~2.5% regression on compression benchmark starting with 12-b11
Reviewed-by: kvn, thartmann
2018-11-08 10:20:04 +01:00
Claes Redestad
f503b0dc74 8214045: Missing explicit dependencies of build-microbenchmark cause intermittent build failure
Reviewed-by: ihse, dholmes
2018-11-19 13:49:50 +01:00
Gary Adams
9dc8115234 8213916: no copyright in signature.html
Reviewed-by: sspitsyn, rriggs, jcbeyler
2018-11-19 07:05:13 -05:00
Aleksey Shipilev
ffeae5bd65 8212070: Introduce diagnostic flag to abort VM on failed JIT compilation
Reviewed-by: mikael, thartmann
2018-11-19 11:51:27 +01:00
Roland Westrelin
b146cbfc10 8213779: Loop opts anti dependent store detection should ignore uncommon trap calls
Reviewed-by: kvn
2018-11-13 09:59:50 +01:00
Sean Coffey
63b433923c 8210838: Override javax.crypto.Cipher.toString()
Reviewed-by: mullan, weijun
2018-11-19 09:56:42 +00:00
Bernard Blaser
dc4be9066f 8214027: Reinstate testB_mem_imm pattern in x86_64.ad
Reviewed-by: rkennke
2018-11-18 19:45:33 +01:00
Ioi Lam
26cf1a832b 8213948: Solaris-X64 build fails with compact hashtable
Reviewed-by: dcubed, shade
2018-11-16 17:46:15 -08:00
Richard Reingruber
e310d296e2 8213902: com/sun/jdi/SetLocalWhileThreadInNative.java times out
Reviewed-by: dholmes, jcbeyler
2018-11-16 15:51:29 +01:00
Aleksey Shipilev
0c94b004e6 8214004: Missing space between compiler thread name and task info in hs_err
Reviewed-by: dcubed, zgu
2018-11-17 13:48:50 +01:00
Weijun Wang
c20332c412 8212003: Deprecating the default keytool -keyalg option
Reviewed-by: mullan, xuelei
2018-11-17 18:11:23 +08:00
Jean Christophe Beyler
3e936d3cd9 8212931: HeapMonitorStatIntervalTest.java fails due average calculation
Added a method to get the actual size

Reviewed-by: amenkov, sspitsyn
2018-11-16 19:27:21 -08:00
Calvin Cheung
8761824649 8201375: Add the AllowArchivingWithJavaAgent diagnostic vm option to allow the use of the -javaagent option during CDS dumping
Allow Java agent during CDS dumping if the AllowArchivingWithJavaAgent dignostic option is specified.

Reviewed-by: iklam, jiangli, sspitsyn, dcubed
2018-11-16 16:10:25 -08:00
Claes Redestad
7a30c97753 8061281: Microbenchmark suite build support, directory layout and sample benchmarks
8061282: Migrate jmh-jdk-microbenchmarks into the JDK

Co-authored-by: Magnus Ihse Bursie <magnus.ihse.bursie@oracle.com>
Co-authored-by: Erik Joelsson <erik.joelsson@oracle.com>
Co-authored-by: Staffan Friberg <sfriberg@kth.se>
Reviewed-by: ecaspole, mchung, erikj, ihse
2018-11-16 23:39:51 +01:00
Jiangli Zhou
14b7467279 8213898: CDS dumping of springboot asserts in G1ArchiveAllocator::alloc_new_region
HeapRegionManager::find_highest_free needs to check if the region obtained from the HeapRegionManager::_regions is available.

Reviewed-by: tschatzl, sjohanss
2018-11-16 13:23:50 -05:00
Erik Joelsson
1804d6ce65 8214003: Limit default test jobs based on memory size
Reviewed-by: shade, tbell
2018-11-16 09:49:05 -08:00
Dean Long
bfc1488468 8213959: add org.graalvm.compiler.replacements.test.StringCompressInflateTest to graal problem list
Reviewed-by: thartmann, kvn
2018-11-16 09:35:39 -08:00
Boris Ulasevich
b6f1dd8d68 8213947: ARM32: failed check_simd should set UsePopCountInstruction to false
Reviewed-by: kvn
2018-11-16 19:30:11 +03:00
Boris Ulasevich
11c5e7968b 8213794: ARM32: disable TypeProfiling, CriticalJNINatives, Serviceablity tests for ARM32
Reviewed-by: dholmes
2018-11-16 19:29:40 +03:00
Boris Ulasevich
28f45defae 8213410: UseCompressedOops requirement check fails fails on 32-bit system
Reviewed-by: dholmes
2018-11-16 19:29:20 +03:00
Erik Joelsson
4a2d78b9e4 8213906: Update arm devkits with libXrandr headers
Reviewed-by: tbell, prr
2018-11-16 08:25:46 -08:00
Coleen Phillimore
673c68d993 8213092: Add more runtime locks for concurrent class unloading
Add locks for calling CLDG::purge concurrently as well and for calling SystemDictionary::do_unloading concurrently.

Reviewed-by: eosterlund, hseigel
2018-11-16 10:54:04 -05:00
Coleen Phillimore
dce8ff4dba 8213751: ClassLoaderDataGraph::cld_do() should sometimes require CLDG_lock
Add version of loaded_cld_do for runtime calls.

Reviewed-by: eosterlund, rehn
2018-11-16 07:30:40 -05:00
Matthias Baesken
93a6b7e355 8211326: add OS user related information to hs_err file
Reviewed-by: dholmes, stuefe
2018-11-15 17:08:59 +01:00
Dora Zhou
2b38340ad7 8210408: Refactor java.util.ResourceBundle:i18n shell tests to plain java tests
Reviewed-by: naoto
2018-11-15 21:53:30 -08:00
Jamsheed Mohammed C M
6c75023f1d 8212779: ADL Parser does not check allocation return values in all cases
Made to fail gracefully in case of malloc failure.

Reviewed-by: kvn
2018-11-15 21:26:35 -08:00
Kim Barrett
5e0d5efe4c 8213352: Separate BufferNode allocation from PtrQueueSet
Move free-list management and allocation to new class.

Reviewed-by: tschatzl, sjohanss
2018-11-15 19:59:10 -05:00
David Holmes
5e0ae53450 8213723: More Monitor/mutex initialization management
8213893: StringTable_lock is unused

Reviewed-by: tschatzl, dcubed, coleenp
2018-11-15 17:55:41 -05:00
Igor Ignatyev
6b0d1af7fa 8213926: WB_EnqueueInitializerForCompilation requests compilation for NULL
Reviewed-by: kvn, roland
2018-11-15 14:01:10 -08:00
Igor Ignatyev
e53852dd51 8213922: fix ctw stand-alone build
Reviewed-by: kvn, roland
2018-11-15 14:01:08 -08:00
Dean Long
971575362a 8210777: Update Graal
Reviewed-by: kvn
2018-11-15 09:04:07 -08:00
Aleksey Shipilev
c8ebf4da3b 8213373: Bulk MarkBitMap clearing methods
Reviewed-by: rkennke, zgu
2018-11-15 21:05:47 +01:00
Man Cao
cc8ee84d59 8213829: Remove circular dependency between g1CollectedHeap and g1ConcurrentMark
Improve include statements related to g1CollectedHeap.inline.hpp

Reviewed-by: kbarrett, tschatzl
2018-11-13 22:08:44 -08:00
Adam Petcher
12d64aaeba 8213363: X25519 private key PKCS#8 encoding/decoding is incorrect
Fixed private key format to match spec in RFC 8410

Reviewed-by: mullan
2018-11-15 13:22:29 -05:00
Daniil Titov
52bee8fe04 8203174: [Graal] JDI tests fail with Unexpected exception: com.sun.jdi.ObjectCollectedException
Reviewed-by: sspitsyn, cjplummer
2018-11-15 09:56:49 -08:00
Nils Eliasson
898b4d83c0 8213538: VM crashes when MaxVectorSize is set to 0, 1 or 2
Require MaxVectorSize minimum 4 on 64 bit

Reviewed-by: kvn, thartmann
2018-11-15 09:45:18 +01:00
Severin Gehwolf
1fa2af5b82 8213736: Build fails with LOG=debug on F28 after JDK-8210958
Add --no-print-directory to make invocation of create-main-targets-include

Reviewed-by: erikj, tbell
2018-11-14 09:34:46 +01:00
Matthias Baesken
e552242db6 8211106: [windows] Update OS detection code to recognize Windows Server 2019
Reviewed-by: alanb, clanger, bobv
2018-10-02 13:48:08 +02:00
Michael McMahon
1b34ea35c9 8213616: URLPermission with query or fragment behaves incorrectly
Reviewed-by: chegar, dfuchs
2018-11-15 11:26:46 +00:00
Markus Grönlund
8ed728c905 8210024: JFR calls virtual is_Java_thread from ~Thread()
Reviewed-by: kbarrett, dholmes, dcubed, egahlin
2018-11-15 11:10:04 +01:00
Roman Kennke
acc32136c3 8213615: GC/C2 abstraction for escape analysis
Reviewed-by: kvn, roland
2018-11-15 10:59:56 +01:00
Sibabrata Sahoo
bf9fb45c85 8211787: javax/net/ssl/TLSCommon/TLSTest.java throws java.net.SocketTimeoutException: Read timed out
Java.net.SocketTimeoutException: Read timed out

Reviewed-by: xuelei
2018-11-14 23:12:19 -08:00
Priya Lakshmi Muthuswamy
92e5c54dec 8206475: Repeated word in error message
Reviewed-by: sundar
2018-11-15 11:23:43 +05:30
Jesper Wilhelmsson
25c6c908f1 Added tag jdk-12+20 for changeset 40098289d580 2018-11-15 01:58:53 +01:00
Jonathan Gibbons
b31ac98b6e 8213913: Redundant HTML in java.se/module-info.java
Reviewed-by: lancea, mchung
2018-11-14 16:27:11 -08:00
Jonathan Gibbons
37dc9e2a0d 8213910: Invalid HTML in java.net.http.HttpClient
Reviewed-by: mchung, darcy
2018-11-14 16:11:21 -08:00
Jiangli Zhou
f049167354 8213713: Minor issues during MetaspaceShared::initialize_runtime_shared_and_meta_spaces
1)Populate MetaspaceShared::_core_spaces_size early at mapping time; 2)Fix FileMapInfo::validate_shared_path_table to report failure properly; 3)Remove dead code in FileMapInfo::validate_shared_path_table.

Reviewed-by: iklam, ccheung
2018-11-14 18:49:02 -05:00
Jean Christophe Beyler
d7d4bc9fdd 8213622: Windows VS2013 build failure - "'snprintf': identifier not found"
Replace snprintf with strlen and memcpy

Reviewed-by: dholmes, mvala, kbarrett
2018-11-14 12:25:15 -08:00
Naoto Sato
98db2d5580 8213818: @return has already been specified
Reviewed-by: rriggs
2018-11-14 11:42:40 -08:00
Roman Kennke
2abb0a31aa 8213795: Force explicit null check on patching placeholder offset
Reviewed-by: kvn, adinn
2018-11-14 18:57:47 +01:00
Martin Balao
7c14ebfcd0 8204142: AWT hang occurs when sequenced events arrive out of sequence in multiple AppContexts
Improvements on the synchronization of SequencedEvent events from different AppContexts

Reviewed-by: serb
2018-11-09 10:34:19 -03:00
Erik Joelsson
24eb1aa0eb 8213709: jdk/javadoc/doclet/testValueTag/TestValueTagInModule.java missing modules declaration
Reviewed-by: jjg
2018-11-14 09:31:38 -08:00
Erik Joelsson
03a8cdece5 8211727: Adjust default concurrency settings for running tests on Sparc
Reviewed-by: ctornqvi, tbell, mikael
2018-11-14 09:26:28 -08:00
Patricio Chilano Mateo
98d92b0b6b 8213708: Different #ifdef guards cause incorrect use of Monitor::check_block_state()
Wrapped check_block_state() method in DEBUG_ONLY macro and make the use of the latter more consistent

Reviewed-by: dcubed, dholmes
2018-11-14 09:50:01 -05:00
Michael McMahon
028f2e14b3 8213189: Make restricted headers in HTTP Client configurable and remove Date by default
Reviewed-by: dfuchs
2018-11-14 14:23:21 +00:00
Prasanta Sadhukhan
eafb5eb05e Merge 2018-11-14 17:16:44 +05:30
David Holmes
458e0b864a 8213767: Remove the -Xconcurrentio flag and associated code
Reviewed-by: lfoltan, rehn
2018-11-14 04:56:43 -05:00
Michal Vala
89b7212611 8213591: running bin/idea.sh in Cygwin: generated project cannot be imported
Reviewed-by: erikj, stuefe, mbaesken
2018-11-14 09:19:31 +01:00
Robbin Ehn
9a79d90cc6 8213574: Deadlock in string table expansion when dumping lots of CDS classes
Reviewed-by: jiangli, iklam, dholmes
2018-11-14 07:50:37 +01:00
Vicente Romero
61082e6b25 8213480: update internal ASM version to 7.0
Reviewed-by: dholmes, iignatyev, alanb
2018-11-13 23:33:17 -05:00
Pankaj Bansal
8ed1c25f6b 8213536: Update ProblemList for Linux
Reviewed-by: serb
2018-11-12 12:39:03 +05:30
Prasanta Sadhukhan
046262a0f5 Merge 2018-11-12 11:10:16 +05:30
Shashidhara Veerabhadraiah
fe6aa29326 8198624: java/awt/KeyboardFocusmanager/TypeAhead/SubMenuShowTest/SubMenuShowTest.html fails on mac
Reviewed-by: serb
2018-11-12 10:55:49 +05:30
Claes Redestad
eda5f09014 8213478: Reduce rebinds when applying repeated filters and conversions
Reviewed-by: vlivanov, jrose
2018-11-11 21:24:46 +01:00
Sergey Bylokhov
5a9a338c8e 8211435: Exception in thread "AWT-EventQueue-1" java.lang.IllegalArgumentException: null source
Reviewed-by: dmarkov, lbourges, kaddepalli, prr
2018-11-10 18:48:35 -08:00
Sergey Bylokhov
cc3756b342 8198321: javax/swing/JEditorPane/5076514/bug5076514.java fails
Reviewed-by: psadhukhan
2018-11-10 18:41:43 -08:00
Aleksey Shipilev
2df435e191 8211926: Catastrophic size_t underflow in BitMap::*_large methods
Reviewed-by: kbarrett, stuefe
2018-11-10 20:47:28 +01:00
Aleksey Shipilev
8f1a1b9cab 8213711: Zero build broken after JDK-8213199 (GC abstraction for Assembler::needs_explicit_null_check())
Reviewed-by: rkennke, stuefe
2018-11-10 19:27:52 +01:00
Sergey Bylokhov
bd9a9d591b 8199072: Test javax/swing/GroupLayout/6613904/bug6613904.java is unstable
Reviewed-by: prr, psadhukhan
2018-11-10 09:52:59 -08:00
Zhengyu Gu
83155e1ea6 8213707: [TEST] vmTestbase/nsk/stress/except/except011.java failed due to wrong class name
Fixed wrong class name in test

Reviewed-by: dholmes, jcbeyler
2018-11-10 09:06:33 -05:00
Sergey Bylokhov
96ebd03c09 8213568: Typo in java/awt/GraphicsEnvironment/LoadLock/GE_init5.java
Reviewed-by: prr
2018-11-09 22:25:40 -08:00
Ivan Gerasimov
9076a94dd4 8213383: Wrap up pthread_cond_wait into a loop to workaround potential spurious wakeups
Reviewed-by: dlong, sspitsyn, dholmes, rriggs
2018-11-09 16:21:28 -08:00
Daniel D. Daugherty
0f9e314cb5 8213704: increase default timeout for vmTestbase/metaspace/stressDictionary/StressDictionary.java
Reviewed-by: rehn
2018-11-09 15:19:33 -05:00
Man Cao
9d39cba453 8213113: Dead code related to UseAdaptiveSizePolicy in ParNewGeneration
Removed dead code related to UseAdaptiveSizePolicy for CMS

Reviewed-by: pliden, tschatzl
2018-11-09 12:13:20 -08:00
Dean Long
cc2fb36243 8213701: Add org.graalvm.compiler.debug.test.TimerKeyTest to problem list
Reviewed-by: kvn
2018-11-09 11:36:34 -08:00
Roger Riggs
29e742273e 8185496: Improve performance of system properties initialization in initPhase1
8213424: VersionProps duplicate and skipped initialization

Reviewed-by: mchung, redestad, dholmes
2018-11-09 13:28:16 -05:00
Xue-Lei Andrew Fan
1b20a6781f 8213694: Test Timeout.java should run in othervm mode
Reviewed-by: jnimeh
2018-11-09 10:15:43 -08:00
Dean Long
db0221089f 8213596: test failure with Graal when security manager and policy file are used
Reviewed-by: kvn
2018-11-09 09:59:05 -08:00
Dean Long
5e25c70198 8213588: compiler/graalunit/HotspotTest.java fails after 8213348 / 8211781 were pushed
Reviewed-by: kvn
2018-11-09 09:57:22 -08:00
Xue-Lei Andrew Fan
3e9941ea2b 8212261: Add SSLSession accessors to HttpsURLConnection and SecureCacheResponse
Reviewed-by: mullan, chegar
2018-11-09 08:24:38 -08:00
Thomas Stuefe
7e17764cd3 8213592: Misaligned code in globals.hpp after 8211845
Reviewed-by: dholmes
2018-11-09 16:08:14 +01:00
Martin Doerr
598f595947 8213604: Fix missing includes after JDK-8212673
Reviewed-by: tschatzl, roland
2018-11-09 15:19:11 +01:00
Ambarish Rapte
bc3c7c9b32 8198002: java/awt/Mixing/Validating.java debug assert on Windows
Reviewed-by: serb, kaddepalli
2018-11-09 18:35:25 +05:30
Roman Kennke
9e754390c6 8213489: GC/C2 abstraction for Compile::final_graph_reshaping()
Reviewed-by: kvn, roland
2018-11-09 10:38:07 +01:00
Roman Kennke
617ccd6b92 8213473: Replace testB_mem_imm matcher with testUB_mem_imm
Reviewed-by: kvn, roland
2018-11-09 10:38:07 +01:00
Amit Sapre
06383ba3a1 8211951: Broken links in java.management files
Corrected broken Javadoc links.

Reviewed-by: alanb, sspitsyn
2018-11-09 12:47:20 +05:30
Ambarish Rapte
3ec1c6f949 8198000: java/awt/List/EmptyListEventTest/EmptyListEventTest.java debug assert on Windows
Reviewed-by: prr, serb
2018-11-09 12:08:05 +05:30
Prasanta Sadhukhan
e40a70bce0 8213181: Updation of ProblemList.txt for removal of passing swing test
Reviewed-by: serb
2018-11-09 09:29:43 +05:30
Phil Race
bf7a30f5cf 8210776: Upgrade X Window System 6.8.2 to the latest XWD 1.0.7
Reviewed-by: serb
2018-11-08 10:34:49 -08:00
Prasanta Sadhukhan
b553485436 8213116: javax/swing/JComboBox/WindowsComboBoxSize/WindowsComboBoxSizeTest.java fails in Windows
Reviewed-by: prr
2018-11-08 12:09:06 +05:30
Ioi Lam
147fc3ed13 8213346: Re-implement shared dictionary using CompactHashtable
Reviewed-by: jiangli
2018-11-07 19:40:27 -08:00
Jakub Vanek
14b8e187e2 8213826: Disable ARMv6 memory barriers on ARMv5 processors
Reviewed-by: dholmes, bulasevich
2018-11-13 21:43:10 -05:00
Jamil Nimeh
acd81b508e 8212885: TLS 1.3 resumed session does not retain peer certificate chain
Reviewed-by: xuelei, wetmore
2018-11-13 18:22:52 -08:00
Weijun Wang
65dc116bf6 8213400: Support choosing group name in keytool keypair generation
Reviewed-by: apetcher, xuelei
2018-11-14 08:46:25 +08:00
Jonathan Gibbons
761710ffab 8213820: unknown tag: @returns
Reviewed-by: darcy
2018-11-13 16:17:24 -08:00
Mikael Vidstedt
e07d7a01c7 8213569: Bump minimum boot jdk to JDK 11
Reviewed-by: dholmes, tbell, erikj
2018-11-13 15:25:24 -08:00
David Holmes
ea22b27348 8213760: os::obsolete_option is obsolete and should be removed
Reviewed-by: jiangli, igerasim, stuefe
2018-11-13 16:49:58 -05:00
Serguei Spitsyn
a8a34764b2 8213814: build error in jtreg test jvmti/GetLocalVariable
Fix the build error by restoring the macro definitions for missed functions

Reviewed-by: dcubed
2018-11-13 13:42:39 -08:00
Ekaterina Pavlova
d32fed965b 8212221: GraalUnitTestLauncher should generate MX_SUBPROCESS_COMMAND_FILE
Reviewed-by: dlong
2018-11-13 12:52:37 -08:00
Mikhailo Seledtsov
a2cc912565 8213570: [TESTBUG] Update JFR sanity test set
Added tests to the jdk jfr sanity group

Reviewed-by: hseigel
2018-11-13 12:24:13 -08:00
Jiangli Zhou
c04f4b46b3 Merge 2018-11-13 15:13:36 -05:00
Jiangli Zhou
beb5b05d44 8213563: appcds/sharedStrings/SharedStringsStress.java fails with 'GC triggered before VM initialization completed' error
Move MetaspaceShared::read_extra_data() call to the main MetaspaceShared::preload_and_dump() operation.

Reviewed-by: iklam
2018-11-13 15:11:53 -05:00
Serguei Spitsyn
f285fe93ee 8213525: new unit test GetLocalVariable/LocalVars is not stable
Comment out unstable checks in the test

Reviewed-by: jcbeyler, cjplummer
2018-11-13 12:11:34 -08:00
Kim Barrett
0050cd5776 8213440: Lingering INCLUDE_ALL_GCS in test_oopStorage_parperf.cpp
Remove INCLUDE_ALL_GCS conditionalization.

Reviewed-by: tschatzl
2018-11-13 13:45:43 -05:00
Andrew Haley
53e8899129 8209415: Fix JVMTI test failure HS202
Fix test for static method in exception throw handler

Reviewed-by: adinn
2018-11-13 11:21:32 -05:00
Pavel Rappo
8c361a3e74 8213490: Networking area typos and inconsistencies cleanup
Reviewed-by: alanb, chegar, dfuchs
2018-11-13 12:24:34 +00:00
Thomas Schatzl
56db122656 8213307: G1 should clean up RMT with ClassUnloadingWithConcurrentMark
Re-enable cleanup of the ResolvedMethodTable after changes in JDK-8206423.

Reviewed-by: shade, coleenp
2018-11-13 11:45:16 +01:00
Claes Redestad
8a64d3bc3c 8213741: Consolidate Object and String Stringifiers
Reviewed-by: shade
2018-11-13 11:34:54 +01:00
David Holmes
90cf7a7d12 8213718: [TEST] Wrong classname in vmTestbase/nsk/stress/except/except002 and except003
Reviewed-by: zgu, jcbeyler
2018-11-12 16:36:05 -05:00
Jean Christophe Beyler
1d340e454c 8212939: Add space after if/while/for/switch and parenthesis
Add spaces where needed

Reviewed-by: cjplummer, sspitsyn
2018-11-12 13:13:00 -08:00
Roman Kennke
e3d65f1c12 8213745: Don't use memset to initialize array of RegMask in matcher.cpp
Reviewed-by: kvn, shade
2018-11-12 22:00:07 +01:00
Rob McKenna
d3ccf8a0ca 8160768: Add capability to custom resolve host/domain names within the default JNDI LDAP provider
Reviewed-by: alanb, dfuchs, chegar, mchung, vtewari
2018-11-12 08:33:59 -08:00
Goetz Lindenmaier
b33edbf1ec 8213527: [testbug] Fix PrintMetaspaceDcmd test using UseCompressedOops for 32-bit
Reviewed-by: dholmes, mdoerr
2018-11-12 16:40:25 +01:00
Pavel Rappo
cea9c21479 8210493: Bind to node- or linklocal ipv6 multicast address fails
Reviewed-by: alanb, chegar
2018-11-12 12:55:36 +00:00
Roland Westrelin
9429c17b35 8205574: Loop predication "assert(f <= 1 && f >= 0) failed Incorrect frequency"
Reviewed-by: kvn
2018-11-09 10:52:15 +01:00
Jan Lahoda
c963d543d2 8209055: c.s.t.javac.code.DeferredCompletionFailureHandler seems to use WeakHashMap incorrectly
Do not keep speculative Symbols in DeferredCompletionFailureHandler.

Reviewed-by: jjg, vromero
2018-11-12 09:35:23 +00:00
Rahul Raghavan
3bef8642a4 8210803: Compilation failure in codeBlob.cpp for Windows 32-bit
Added ordinary operator delete declaration within class

Reviewed-by: kvn, rlichten, thartmann
2018-11-12 01:15:16 -08:00
Priya Lakshmi Muthuswamy
50dc5ef396 5076751: System properties documentation needed in javadocs
Reviewed-by: jjg
2018-11-12 13:31:41 +05:30
Sergey Bylokhov
245a72938a 8211822: Some tests fail after JDK-8210039
8202886: [macos] Test java/awt/MenuBar/8007006/bug8007006.java fails on MacOS

Reviewed-by: prr, iignatyev, jdv, kaddepalli
2018-11-06 17:57:17 -08:00
Prasanta Sadhukhan
c03cdce50e 8213261: test javax/swing/plaf/nimbus/AllSwingComponentsBaselineTest.java fails
Reviewed-by: serb
2018-11-03 09:50:22 +05:30
Sergey Bylokhov
3656228787 8207070: Webstart app popup on wrong screen in a one-screen setup changing to multi-monitor
Reviewed-by: prr
2018-11-02 15:38:03 -07:00
Sergey Bylokhov
d418a15de7 8211992: GraphicsConfiguration.getDevice().getDisplayMode() causes JVM crash on Mac
Reviewed-by: prr
2018-11-02 12:15:37 -07:00
Ambarish Rapte
fa9ec805d9 8198001: java/awt/Menu/WrongParentAfterRemoveMenu/WrongParentAfterRemoveMenu.java debug assert on Windows
Reviewed-by: prr, serb
2018-11-02 23:05:47 +05:30
Phil Race
5fa252a52c 8213213: Remove src/java.desktop/unix/classes/sun/awt/X11/keysym2ucs.h
Reviewed-by: serb
2018-11-01 13:56:14 -07:00
Ioi Lam
b84cf61b08 8213250: CDS archive creation aborts due to metaspace object allocation failure
Reviewed-by: jiangli, ccheung
2018-11-01 10:59:05 -07:00
Amy Lu
836e02e1f1 8213576: Make test AsyncCloseChannel.java run in othervm
Reviewed-by: dholmes
2018-11-09 12:08:53 +08:00
Daniel D. Daugherty
6a9e3b9d29 8204529: gc/TestAllocateHeapAtMultiple.java fail with Agent 7 timed out
Increase default timeout to 360 seconds.

Reviewed-by: erikj, dholmes
2018-11-08 20:54:30 -05:00
Jiangli Zhou
a73856351a 8213439: Run class initialization for boot loader classes with registered subgraph archiving entry field during CDS dump time
Run class initialization for boot classes with registered subgraph archiving entry fieldi(s) at CDS dump time.

Reviewed-by: dholmes, iklam
2018-11-08 19:16:16 -05:00
Dean Long
9dbaf4936f 8213348: jdk.internal.vm.compiler.management service providers missing in module descriptor
8211781: re-building fails after changing Graal sources

Reviewed-by: erikj, mchung
2018-11-08 15:19:14 -08:00
Vicente Romero
0ec4944be7 8211450: UndetVar::dup is not copying the kind field to the duplicated instance
Reviewed-by: mcimadamore
2018-11-08 18:23:52 -05:00
Roman Kennke
7c3f2b06f1 8213199: GC abstraction for Assembler::needs_explicit_null_check()
Reviewed-by: adinn, eosterlund
2018-11-08 23:31:08 +01:00
Martin Balao
7724fd6d9b 8213154: Update copyright headers of files in src tree that are missing Classpath exception
Reviewed-by: andrew
2018-11-08 18:10:15 -03:00
Mikael Vidstedt
f69921f2fc 8213436: Obsolete UseMembar
Reviewed-by: kvn, dholmes, mdoerr, adinn
2018-11-08 11:45:13 -08:00
Mikael Vidstedt
38a1e5ffbc 8213438: Remove ClearResponsibleAtSTW
Reviewed-by: dholmes, eosterlund, dcubed
2018-11-08 11:22:28 -08:00
Joe Wang
a567796533 8202285: (fs) Add a method to Files for comparing file contents
Reviewed-by: alanb, rriggs, smarks, bpb, dfuchs, weijun, igerasim
2018-11-08 09:50:54 -08:00
Richard Reingruber
e8fd8147a3 8212928: Assertion too strict in compiledVFrame::update_deferred_value on SPARC
Reviewed-by: kvn
2018-11-08 09:04:00 -08:00
Chris Hegarty
4187dff26a 8213418: Socket/ServerSocket supportedOptions does not work with custom SocketImpl
Reviewed-by: alanb, dfuchs
2018-11-08 16:16:57 +00:00
Vicente Romero
7d4e8d0e26 8210197: javac can't tell during speculative attribution if a diamond expression is creating an anonymous inner class or not
Reviewed-by: mcimadamore
2018-11-08 10:36:06 -05:00
Thomas Stuefe
3084a5290c 8211845: A new switch to control verbosity of hs-err files
Reviewed-by: goetz, mdoerr
2018-11-08 16:23:55 +01:00
Erik Österlund
c9e3ee1fbb 8213411: JDK-8209189 incorrect for Big Endian (JVM crashes)
Reviewed-by: kvn, mdoerr
2018-11-08 15:02:50 +01:00
Robbin Ehn
1ce3770481 8209139: globalCounter bootstrap issue
Reviewed-by: dcubed, dholmes
2018-11-08 15:31:23 +01:00
Bernard Blaser
1117fcb339 8213479: Missing x86_64.ad patterns for 8-bit logical operators with destination in memory
Reviewed-by: kvn
2018-11-08 15:11:32 +01:00
Robbin Ehn
e35e0ab165 8211403: Rename SafepointMechanism::poll(...)
Reviewed-by: mdoerr, dcubed, dholmes
2018-11-08 14:32:49 +01:00
Roland Westrelin
b2541f90e6 8212673: jtreg/applications/runthese/RunThese30M.java fails in C2 with "assert(!had_error) failed: bad dominance"
Reviewed-by: thartmann, kvn, shade
2018-11-08 10:08:52 +01:00
David Holmes
eac28d7fae 8213137: Remove static initialization of monitor/mutex instances
Moved to the global mutex list in mutexLocker

Reviewed-by: tschatzl, dcubed, rehn, eosterlund
2018-11-08 07:42:08 -05:00
Volker Simonis
fdfbfb2f8b 8213515: Improve freetype detection on linux/ppc64/ppc64le/s390x
Reviewed-by: shade, ihse, stuefe
2018-11-08 12:24:08 +01:00
Magnus Ihse Bursie
3cefdacdb2 8213338: Reduce the number of generated make targets
Reviewed-by: erikj
2018-11-08 12:03:18 +01:00
Serguei Spitsyn
bf16c3a479 8080406: VM_GetOrSetLocal doesn't check local slot type against requested type
Provide possible type checks when LVT is absent

Reviewed-by: jcbeyler, cjplummer
2018-11-08 00:07:48 -08:00
Jesper Wilhelmsson
f838846500 Added tag jdk-12+19 for changeset dc1f9dec2018 2018-11-08 02:47:50 +01:00
Erik Joelsson
7cc7927aab 8213428: Add a no precompiled header Linux build to builds-tier1 and jdk-submit
Reviewed-by: ihse, tbell
2018-11-07 15:57:50 -08:00
Roman Kennke
31cfeabc46 8213469: Remove/fix leftovers from JDK-8213384: Move G1/C2 barrier verification into G1BarrierSetC2
Reviewed-by: kvn, roland
2018-11-07 20:24:44 +01:00
Roman Kennke
bb792b0337 8213371: GC/C2 abstraction and cleanup to handle custom offset for GC memory accesses
Reviewed-by: kvn, roland
2018-11-07 20:21:35 +01:00
Gary Adams
bb0212400f 8213245: Restoring nsk/jvmti/scenarios/hotswap tests from ProblemList.txt
Reviewed-by: jcbeyler, cjplummer, amenkov
2018-11-01 11:42:59 -04:00
Gary Adams
0a01d37605 8213052: HTML errors in JPDA spec
Reviewed-by: sspitsyn, amenkov
2018-11-07 10:39:49 -05:00
Lois Foltan
9c5c6947cb 8212937: Parent class loader may not have a referred ClassLoaderData instance when obtained in Klass::class_in_module_of_loader
Fix to obtain the class loader's name from the java.lang.ClassLoader object instead of its ClassLoaderData.

Reviewed-by: coleenp, mbalao, sgehwolf
2018-11-07 13:54:22 -05:00
Joe Darcy
8872adab41 8213444: Missing emphasis for term being defined
Reviewed-by: mchung, jjg
2018-11-07 09:58:21 -08:00
Daniel D. Daugherty
ca1c6b93ac 8213487: [BACKOUT] 8213414 Fix incorrect copy constructors in hotspot
Reviewed-by: roland, rkennke, thartmann
2018-11-07 12:40:51 -05:00
Martin Doerr
e0369ea66f 8213464: Fix missing include after JDK-8212243
Reviewed-by: roland
2018-11-07 15:13:12 +01:00
Magnus Ihse Bursie
1165eb3afe 8213414: Fix incorrect copy constructors in hotspot
Reviewed-by: kbarrett
2018-11-07 10:12:43 +01:00
Doug Simon
b0a9871463 8213347: [JVMCI] remove use of reflection in JVMCI
Reviewed-by: kvn
2018-11-07 09:39:39 +01:00
Matthias Baesken
968f65c036 8213366: (fs) avoid handle leak in Java_sun_nio_fs_WindowsNativeDispatcher_FindFirstFile0
Reviewed-by: alanb, chegar
2018-11-07 09:13:37 +01:00
Dean Long
a9ae141836 8212605: Pure-Java implementation of AccessController.doPrivileged
Reviewed-by: dholmes, mullan, vlivanov, mchung, alanb, rriggs
2018-11-06 16:04:50 -08:00
Valerie Peng
c8c41d1444 8211049: Second parameter of "initialize" method is not used
Use the specified random object instead of system default

Reviewed-by: weijun
2018-11-07 01:04:26 +00:00
Roman Kennke
9ba72c0c2c 8213381: Hook to allow GC to inject Node::Ideal() calls
Reviewed-by: kvn, eosterlund, roland
2018-11-06 23:03:05 +01:00
Anthony Scarpino
f7fc720c9c 8211339: NPE during SSL handshake caused by HostnameChecker
Reviewed-by: xuelei
2018-11-06 10:10:18 -08:00
Mandy Chung
9ffe7e1205 8211122: Reduce the number of internal classes made accessible to jdk.unsupported
Reviewed-by: alanb, dfuchs, kvn
2018-11-06 10:01:16 -08:00
Roman Kennke
29f03ebf2c 8213384: Move G1/C2 barrier verification into G1BarrierSetC2
Reviewed-by: kvn, roland, eosterlund
2018-11-06 17:28:14 +01:00
Dmitry Chuyko
d95d55f801 8198294: AARCH64 - Set flags' optimal defaults for Cavium Thunder X2 CPU
Reviewed-by: adinn, drwhite
2018-11-06 15:14:10 +03:00
Roland Westrelin
8ab8d45552 8212243: More gc interface tweaks for arraycopy
Reviewed-by: kvn, eosterlund
2018-11-06 10:01:27 +01:00
Ying Zhou
0fade4897e 8210409: Refactor java.util.TimeZone:i18n shell tests to plain java tests
Reviewed-by: naoto
2018-11-06 15:23:52 +08:00
Dean Long
88fec44661 8204521: compiler/jsr292/RedefineMethodUsedByMultipleMethodHandles.java fails trying to delete temp file
Reviewed-by: kvn
2018-11-05 22:22:49 -08:00
Kim Barrett
1e9d3b5358 8210986: Add OopStorage cleanup to ServiceThread
Service thread performs cleanup when notified.

Reviewed-by: coleenp, rehn
2018-11-05 18:27:14 -05:00
Naoto Sato
a1029a4729 8213330: Fix legal headers in i18n tests
Reviewed-by: lancea
2018-11-05 13:55:41 -08:00
Joe Wang
32d4c852a9 8212876: ftp: links for character-sets require a login password
Reviewed-by: lancea
2018-11-05 13:45:01 -08:00
Joe Wang
f7a2a60f78 8212872: Broken link to Namespaces in XML Errata
Reviewed-by: lancea
2018-11-05 11:49:03 -08:00
Antonios Printezis
f131a8620c 8212883: Setting a double manageable flag with jcmd/jinfo crashes the JVM
Reviewed-by: dholmes, gziemski, stuefe
2018-11-05 14:00:52 -05:00
Gerard Ziemski
9b4393268d 8208519: Remove rehashable hashtable
Removed RehashableHashtable class

Reviewed-by: iklam, ccheung
2018-11-05 12:27:38 -06:00
Erik Joelsson
c8cb3978ba 8213227: Update jib src excludes to filter webrev and Jreg directories
Reviewed-by: dholmes, tbell, ihse
2018-11-05 09:10:57 -08:00
Roland Westrelin
8e57878e0a 8212610: Fix handling of memory in PhaseIdealLoop::clone_loop_predicates()
Reviewed-by: kvn, thartmann
2018-11-05 13:13:29 +01:00
Erik Gahlin
34d2e1ea70 8209960: -Xlog:jfr* doesn't work with the JFR
Reviewed-by: mgronlun
2018-11-05 14:40:16 +01:00
Lutz Schmidt
b9aa498282 8213196: [ppc] [s390]: prepare code for gcc7.3.1 warning (int-in-bool-context)
Reviewed-by: mdoerr, stuefe
2018-11-05 14:02:04 +01:00
Erik Österlund
3798a62adb 8212996: Use AS_NO_KEEPALIVE when accessing dead java.lang.invoke.CallSites during nmethod unloading
Reviewed-by: coleenp, pliden
2018-11-05 12:36:23 +01:00
Erik Österlund
364f0784a4 8212585: Clean up CompiledMethod::oops_reloc_begin()
Reviewed-by: kvn, pliden
2018-11-05 12:36:23 +01:00
Roland Westrelin
b5d2e875f6 8209835: Aarch64: elide barriers on all volatile operations
Reviewed-by: aph, adinn
2018-11-05 12:53:55 +01:00
Shashidhara Veerabhadraiah
6168452b9f 7124293: [macosx] VoiceOver reads percentages rather than the actual values for sliders
Reviewed-by: serb, kaddepalli
2018-11-01 18:13:25 +05:30
Phil Race
0bc7995de2 8210863: Remove Xrandr include files from JDK sources
Reviewed-by: serb
2018-10-31 16:58:37 -07:00
Phil Race
7613af50d9 Merge 2018-10-31 13:26:06 -07:00
Erik Joelsson
b0882f0ee6 8210837: Add libXrandr-devel to the Linux devkits
Reviewed-by: prr, mikael
2018-10-31 13:14:52 -07:00
Phil Race
e81c92234c 8210886: Remove references in xwindows.md to non-existent files
Reviewed-by: serb, dmarkov
2018-10-31 11:45:04 -07:00
Coleen Phillimore
d302072f50 8213211: [BACKOUT] Allow Klass::_subklass and _next_sibling to have unloaded classes
Reviewed-by: jiangli, jwilhelm
2018-10-31 14:38:14 -04:00
Sergey Bylokhov
e496d67042 8208702: javax/swing/reliability/HangDuringStaticInitialization.java may hang on macos
Reviewed-by: prr, denis
2018-10-31 10:01:23 -07:00
Pankaj Bansal
0e04de0f9c 8212903: [TestBug] Tests test/jdk/javax/swing/LookAndFeel/8145547/DemandGTK2.sh and DemandGTK3.sh fail on Ubuntu 18.04 LTS
Reviewed-by: prr, psadhukhan
2018-10-31 14:22:48 +05:30
Ichiroh Takiguchi
812a004bc9 8211810: X11 Time stamp data should be unsigned
Reviewed-by: serb
2018-10-30 15:51:10 -07:00
Manajit Halder
033a0df6ef 8208543: [macos] Support for apple.awt.documentModalSheet incomplete
Reviewed-by: dmarkov, kaddepalli
2018-10-30 17:06:32 +05:30
Prasanta Sadhukhan
2215c4c893 8213138: Update ProblemList.txt for mac
Reviewed-by: jdv
2018-10-30 15:43:37 +05:30
Jayathirth D V
04104ceaea 8213130: Update ProblemList after verification of jtreg tests in Win 7
Reviewed-by: psadhukhan
2018-10-26 22:20:19 +05:30
Sergey Bylokhov
b6be5030eb 8212790: Javadoc cleanup of java.awt.color package
Reviewed-by: prr, kaddepalli
2018-10-29 17:34:05 -07:00
Jayathirth D V
7f642e200b 8212865: Broken external link to TIFF6.pdf in ImageIO package-info.java
Reviewed-by: psadhukhan
2018-10-26 15:44:33 +05:30
Gauri Patil
413ac60a5f 8210057: Enable different look and feels in SwingSet3 demo test InternalFrameDemoTest
Reviewed-by: serb
2018-10-26 14:03:57 +05:30
Gauri Patil
d49ba47e9b 8211443: Enable different look and feels in SwingSet3 demo test SplitPaneDemoTest
Reviewed-by: serb
2018-10-26 13:52:08 +05:30
Prasanta Sadhukhan
a445441580 8212735: Compilation issue with javax.swing.InputVerifier example in javadoc section
Reviewed-by: serb
2018-10-25 13:09:58 +05:30
Prasanta Sadhukhan
b29bab7522 8192888: AllSwingComponentsBaselineTest fails with NullPointerException for NimbusLookAndFeel
Reviewed-by: serb
2018-10-25 13:07:42 +05:30
Thomas Stuefe
5dac22b8eb 8212913: (Nested)ThreadsListHandleInErrorHandlingTest need to disable ShowRegistersOnAssert
Reviewed-by: dholmes, mdoerr
2018-10-24 14:59:21 +02:00
Jayathirth D V
8cc75f412e Merge 2018-10-24 16:29:25 +05:30
Tobias Hartmann
18d4a423f9 8150552: Remove -XX:+AggressiveOpts
Removed the -XX:+AggressiveOpts flags and its usages.

Reviewed-by: ecaspole, sjohanss
2018-10-24 12:39:37 +02:00
Jayathirth D V
e41b1c19e9 Merge 2018-10-24 15:57:43 +05:30
Hamlin Li
533bd0a604 8210407: Refactor java.util.Calendar:i18n shell tests to plain java tests
Reviewed-by: naoto
2018-10-24 17:52:06 +08:00
Thomas Stuefe
2c208aa563 8212896: AIX build breaks after 8212611
Reviewed-by: simonis, dholmes
2018-10-24 10:42:12 +02:00
Jayathirth D V
66dc9c8301 Merge 2018-10-24 13:35:18 +05:30
David Holmes
c145bd0bd0 8199567: [Nestmates] Cleanup instanceKlass.cpp
Reviewed-by: lfoltan, coleenp
2018-10-23 17:01:48 -04:00
Joe Darcy
34397c4914 8212718: Refactor some annotation processor tests to better use collections
Reviewed-by: jlaskey, vromero
2018-10-23 10:32:39 -07:00
Doug Simon
272eb6824b 8212817: [JVMCI] ResolvedJavaMethod.isInVirtualMethodTable throws InternalError
Reviewed-by: never, iveresov
2018-10-23 18:49:32 +02:00
Jean Christophe Beyler
db6696837e 8212771: Remove remaining spaces before/after () for vmTestbase
Remove spaces around ()

Reviewed-by: phh, sspitsyn
2018-10-23 09:43:16 -07:00
Daniil Titov
c2bc749866 8211736: jdb doesn't print prompt when breakpoint is hit and suspend policy is STOP_EVENT_THREAD
Reviewed-by: cjplummer, amenkov, gadams, jcbeyler
2018-10-23 07:57:26 -07:00
Robbin Ehn
77ad5f6fa3 8212707: GlobalCounter padding is too optimistic
Reviewed-by: shade, redestad, mdoerr
2018-10-23 13:24:36 +02:00
Jayathirth D V
cfaf92f28b Merge 2018-10-23 15:29:10 +05:30
Claes Redestad
06a2bb5274 8212726: Replace some use of drop- and foldArguments with filtering argument combinator in StringConcatFactory
Reviewed-by: jlaskey, vlivanov
2018-10-23 11:03:51 +02:00
Aleksey Shipilev
a633b90085 8212754: Build failure: undefined JvmtiSampledObjectAllocEventCollector::object_alloc_is_safe_to_sample
Reviewed-by: jcbeyler, zgu, coleenp
2018-10-23 10:55:59 +02:00
Roland Westrelin
b4c401fa37 8212611: Small collection of simple changes from shenandoah
Reviewed-by: thartmann, kvn, eosterlund
2018-10-17 10:19:13 +02:00
Amy Lu
a0594bc138 8210353: Move java/util/Arrays/TimSortStackSize2.java back to tier1
Reviewed-by: forax, weijun
2018-10-23 13:47:17 +08:00
Nico Williams
10027304cd 8212216: JGSS: Fix leak in exception cases in getJavaOID()
Reviewed-by: mullan, weijun
2018-10-23 12:25:59 +08:00
Jean Christophe Beyler
e6d66056ab 8212535: Remove spaces before/after () for vmTestbase/[a-j]*
Remove white spaces from tests

Reviewed-by: amenkov, cjplummer, phh, sspitsyn
2018-10-22 19:31:41 -07:00
Mandy Chung
5e6d6b8642 8207146: Rename jdk.internal.misc.Unsafe::xxxObject to xxxReference
Reviewed-by: dholmes, thartmann
2018-10-22 17:00:04 -07:00
Alex Menkov
fd8d1cd6bf 8212665: com/sun/jdi/DeferredStepTest.java: jj1 (line 57) - unexpected. lastLine=52, minLine=52, maxLine=55
Reviewed-by: jcbeyler, gadams, sspitsyn
2018-10-22 14:41:51 -07:00
Calvin Cheung
522608c0a7 8210990: [TESTBUG] Some CDS tests don't respect JVM variant being tested
Use CDSTestUtils.run() instead of CDSTestUtils.executeAndLog().

Reviewed-by: iklam
2018-10-22 14:31:10 -07:00
Jonathan Gibbons
81721a4b5f 8211876: Broken links in java.base files (ClassLoader.html#name)
Reviewed-by: lancea
2018-10-22 13:31:42 -07:00
Coleen Phillimore
932d2c6ba6 8212774: Remove dead code touching Klass::_lower_dimension
Found dead code removal while looking at usage of Compile_lock. This dead code doesn't have Compile_lock but other code touching Klass::_{upper,lower}_dimension do.

Reviewed-by: shade
2018-10-22 15:32:50 -04:00
Jean Christophe Beyler
a623db2148 8212148: Remove remaining NSK_CPP_STUBs
Remove remaining macros

Reviewed-by: amenkov, phh, iignatyev
2018-10-22 12:43:15 -07:00
Robert Field
dafc483475 8210959: JShell fails and exits when statement throws an exception whose message contains a '%'
Reviewed-by: jlahoda
2018-10-22 09:26:50 -07:00
Robert Field
749916b897 8210923: JShell: support for switch expressions
Reviewed-by: jlahoda
2018-10-22 08:30:39 -07:00
Erik Österlund
b3c1e4f663 8212663: Remove conservative at_safepoint assert when JFR writes type sets during class unloading
Reviewed-by: coleenp, dholmes, mgronlun
2018-10-22 12:13:29 +02:00
Chris Hegarty
cea4eef60a 8212695: Add explicit timeout to several HTTP Client tests
Reviewed-by: dfuchs, michaelm
2018-10-22 12:25:31 +01:00
Thomas Schatzl
5b925d80f5 8211853: Avoid additional duplicate work when a reference in the task queue has already been evacuated
Reviewed-by: kbarrett, sjohanss
2018-10-22 11:51:17 +02:00
Vyom Tewari
3bafe65a75 8212114: Reconsider the affect on closed streams resulting from 8189366
Reviewed-by: chegar, dfuchs
2018-10-22 15:20:43 +05:30
Jaikiran Pai
21341a37af 8212752: Typo in SSL log message related to inactive/disabled signature scheme
Reviewed-by: coffeys
2018-10-22 10:47:28 +01:00
Chris Yin
c4c6a0773b 8210339: Add 10 JNDI tests to com/sun/jndi/dns/FedTests/
Reviewed-by: vtewari, rriggs
2018-10-22 14:08:07 +08:00
Chris Yin
68a24bc4f1 8208542: Add 4 JNDI tests to com/sun/jndi/dns/ListTests/
Reviewed-by: vtewari, rriggs
2018-10-22 14:03:06 +08:00
Chris Yin
b2ce7f9ec6 8200151: Add 8 JNDI tests to com/sun/jndi/dns/ConfigTests/
Reviewed-by: vtewari, rriggs
2018-10-22 13:53:39 +08:00
Priya Lakshmi Muthuswamy
5f8d0a3080 8211879: Broken links in API overview
Reviewed-by: jjg, erikj
2018-10-22 10:16:34 +05:30
Igor Ignatyev
f1e1e1fe6f 8177709: Convert TestVirtualSpace_test to GTest
Reviewed-by: stuefe, jcbeyler
2018-10-19 16:29:45 -07:00
Kirill Zhaldybin
4c8b5f840c 8171097: Convert TestReservedSpace_test to Gtest
Reviewed-by: stuefe, jcbeyler, iignatyev
2018-10-19 16:29:43 -07:00
Jamil Nimeh
137e3161c4 8211806: TLS 1.3 handshake server name indication is missing on a session resume
Reviewed-by: xuelei, wetmore
2018-10-19 18:05:50 -07:00
Paul Hohensee
6beba541cd 8212698: Minor g1 #include changes and memoryService.hpp copyright date update
Fix #includes in g1FullGCOopClosures.inline.hpp, g1HeapVerifier.hpp + memoryService.hpp copyright date

Reviewed-by: tschatzl, jcbeyler
2018-10-19 17:54:21 -04:00
Alex Menkov
7fcee43b13 8212629: [TEST] wrong breakpoint in test/jdk/com/sun/jdi/DeferredStepTest
Reviewed-by: cjplummer, jcbeyler
2018-10-19 09:31:52 -07:00
Sean Mullan
d71882148b Merge 2018-10-19 09:32:46 -04:00
Sean Mullan
a675a48940 8195793: Remove GTE CyberTrust Global Root
Reviewed-by: rhalade
2018-10-19 09:31:57 -04:00
Michael McMahon
b9279ef850 8211437: java.net.http.HttpClient hangs on 204 reply without Content-length 0
Reviewed-by: chegar, dfuchs
2018-10-19 14:23:43 +01:00
Ioi Lam
4abb6861ec 8212642: Remove SystemDictionary::InitOption enum
Reviewed-by: dholmes, kvn, redestad
2018-10-18 23:05:01 -07:00
Roman Kennke
cb17e450b3 8212603: Need to step over GC barriers in Node::eqv_uncast()
Reviewed-by: shade, kvn, eosterlund
2018-10-18 21:14:49 +02:00
Ivan Gerasimov
f7393a59d1 8201355: Avoid native memory allocation in sun.security.mscapi.PRNG.generateSeed
Reviewed-by: weijun
2018-10-18 09:46:46 -07:00
Tobias Hartmann
21f57051c4 8212553: [TESTBUG] TestTrichotomyExpressions.java times out with Graal as JIT
Removed -Xcomp and increased timeout.

Reviewed-by: kvn
2018-10-18 17:50:49 +02:00
Andrew Luo
d54fa9e93d 8212662: Fix javadoc typo in java.lang.ref.Cleaner
Reviewed-by: lancea, rriggs
2018-10-18 10:45:05 -04:00
Harold Seigel
ef3c0a2458 8209087: Clean up runtime code that compares 'this' to NULL
Remove 'this' to NULL comparisons from methods and check if calling objects of these methods could be NULL.

Reviewed-by: lfoltan, gziemski
2018-10-18 10:35:58 -04:00
Sean Mullan
417d396b54 8210448: Copy Java XML Digital Signature API Specification into java.xml.crypto javadocs
Reviewed-by: weijun
2018-10-18 10:08:35 -04:00
Leo Korinth
d75f70d91c 8212595: Remove unused size_helper() in oop_oop_iterate* in instanceKlass.inline.hpp
Reviewed-by: shade, pliden
2018-10-18 11:23:54 +02:00
Dora Zhou
3c2c6bce02 8210406: Refactor java.util.PluggableLocale:i18n shell tests to plain java tests
Reviewed-by: naoto
2018-10-18 00:56:38 -07:00
Magnus Ihse Bursie
10b754ee85 8212587: equals in MakeBase does not handle empty strings correctly
Reviewed-by: erikj
2018-10-18 09:19:29 +02:00
Ioi Lam
c86ba29693 8212612: Add documentation about Arguments::_exit_hook
Reviewed-by: hseigel, dlong, dholmes
2018-10-17 21:51:00 -07:00
Jean Christophe Beyler
d63acb557c 8211899: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/scenarios/[E-M]
Remove the NSK_CPP_STUB macros from tests

Reviewed-by: amenkov, phh, sspitsyn
2018-10-17 21:28:11 -07:00
John Jiang
75489d717e 8210632: Add key exchange algorithm to javax/net/ssl/TLSCommon/CipherSuite.java
Javax/net/ssl/TLSCommon/CipherSuite.java supports key exchange algorithms

Reviewed-by: xuelei
2018-10-18 07:56:55 +08:00
Jesper Wilhelmsson
ab0baf86f7 Added tag jdk-12+16 for changeset 199658d1ef86 2018-10-18 00:50:14 +02:00
Aleksey Shipilev
00f3bbe51b 8212617: ARM32 build failures after JDK-7041262 (VM_Version should be called instead of Abstract_VM_Version so that overriding works)
Reviewed-by: hseigel
2018-10-17 22:47:59 +02:00
Aleksey Shipilev
b3d9f93363 8212616: x86_32 build failures after JDK-8210498 (nmethod entry barriers)
Reviewed-by: kvn, eosterlund
2018-10-17 22:42:31 +02:00
Roman Kennke
89d9a60caa 8212186: JVMTI lacks a few GC barriers/hooks
Reviewed-by: eosterlund, shade
2018-10-17 22:26:41 +02:00
Aleksey Shipilev
98fe69f3a2 8212608: Minimal VM build failure after JDK-8210498 (nmethod entry barriers)
Reviewed-by: eosterlund
2018-10-17 18:31:48 +02:00
Claes Redestad
b3b41df70f 8212597: Optimize String concatenation setup when using primitive operands
Reviewed-by: shade
2018-10-17 17:35:26 +02:00
John Jiang
da989adeb7 8212562: To remove lib/security from test/jdk/TEST.groups
Remove lib/security from test group jdk_security3

Reviewed-by: coffeys
2018-10-17 22:06:55 +08:00
Claes Redestad
b1c0737ad5 8212201: Classlist build tool should be built for the target JDK version
Reviewed-by: erikj, ihse
2018-10-17 14:19:21 +02:00
Priya Lakshmi Muthuswamy
4e1c510215 8211901: javadoc generates broken links on deprecated items page
Reviewed-by: jjg
2018-10-17 15:28:36 +05:30
Ying Zhou
05f0d11553 8210403: Refactor java.util.Locale:i18n shell tests to plain java tests
Reviewed-by: naoto
2018-10-17 16:37:41 +08:00
Gustavo Romero
84a22b6b36 8212481: PPC64: Enable POWER9 CPU detection
Reviewed-by: mdoerr, simonis
2018-10-16 16:26:28 -04:00
Aleksey Shipilev
307ba484e1 8213182: Minimal VM build failure after JDK-8212200 (assert when shared java.lang.Object is redefined by JVMTI agent)
Reviewed-by: dholmes, iklam
2018-10-31 19:00:59 +01:00
Volker Simonis
28362bdd93 8213151: [AIX] Some class library files are missing the Classpath exception
Reviewed-by: stuefe, rriggs, mbaesken
2018-10-31 16:02:43 +01:00
Bob Vandette
f161afb806 Merge 2018-10-31 10:48:13 -04:00
Martin Doerr
a241cf4367 8213086: Compiler thread creation should be bounded by available space in memory and Code Cache
Reviewed-by: kvn, thartmann
2018-10-31 14:48:36 +01:00
Thomas Schatzl
4da555c7a8 8213142: Use RAII to set the scanning source in G1ScanEvacuatedObjClosure
Reviewed-by: sangheki, kbarrett
2018-10-31 13:43:57 +01:00
Thomas Schatzl
28c9f22ebb 8212911: Unify and micro-optimize handling of non-in-collection set references in oop closures
Reviewed-by: kbarrett, sjohanss
2018-10-31 13:43:57 +01:00
Thomas Schatzl
0e622f29a2 8211388: Make OtherRegionsTable independent of the region it is for
Reviewed-by: sjohanss, sangheki
2018-10-31 13:43:57 +01:00
Thomas Schatzl
0d19f0bb51 6490394: G1: Allow heap shrinking / memory unmapping after reclaiming regions during Remark
Reviewed-by: sjohanss, sangheki
2018-10-31 13:43:57 +01:00
Thomas Schatzl
3a343a5681 8071913: Filter out entries to free/uncommitted regions during iteration
Reviewed-by: sjohanss, kbarrett
2018-10-31 13:43:57 +01:00
Coleen Phillimore
adb1dcdcc2 8213107: Make ClassLoaderDataGraph iterator skip unloaded CLDs
With concurrent class unloading, the CLDG could contain unloaded CLDs while iterating in a safepoint

Reviewed-by: lfoltan, eosterlund
2018-10-31 07:06:54 -04:00
Magnus Ihse Bursie
f66d1f3d9e 8213184: Revert change in jib-profiles.js from run-test-prebuilt to test-prebuilt
Reviewed-by: dholmes
2018-10-31 11:36:07 +01:00
Magnus Ihse Bursie
53ecc07aaa 8210958: Rename "make run-test" to "make test"
Reviewed-by: erikj
2018-10-31 09:30:24 +01:00
Robbin Ehn
80aa38305d 8212933: Thread-SMR: requesting a VM operation whilst holding a ThreadsListHandle can cause deadlocks
Reviewed-by: eosterlund, dcubed, sspitsyn, dholmes
2018-10-31 08:09:45 +01:00
Markus Grönlund
e4f5ffc403 8213172: CDS and JFR tests fail with assert(JdkJfrEvent::is(klass)) failed: invariant
Reviewed-by: egahlin, dholmes
2018-10-31 09:09:23 +01:00
Priya Lakshmi Muthuswamy
99621df489 8210244: {@value} should be permitted in module documentation
Reviewed-by: jjg, sundar
2018-10-31 10:29:59 +05:30
Joe Wang
7ce1436913 8212866: Broken link to schematron.com
Reviewed-by: lancea
2018-10-30 20:44:48 -07:00
Xue-Lei Andrew Fan
413d5e8c61 8212738: Incorrectly named signature scheme ecdsa_secp512r1_sha512
Reviewed-by: ascarpino
2018-10-30 19:47:16 -07:00
Daniil Titov
93021808e6 8195627: [Graal] nsk/jdi/VirtualMachine/redefineClasses/redefineclasses026 hangs with Graal in Xcomp mode
Reviewed-by: sspitsyn, kvn
2018-10-30 19:29:21 -07:00
Jiangli Zhou
b9f22907d3 8203953: Rename SystemDictionary::load_shared_class(Symbol*, Handle, TRAPS) to load_shared_boot_class()
Rename SystemDictionary::load_shared_class.

Reviewed-by: coleenp
2018-10-30 22:24:04 -04:00
Erik Gahlin
ba18b569ef 8203629: Produce events in the JDK without a dependency on jdk.jfr
Reviewed-by: mgronlun
2018-10-31 02:10:21 +01:00
Dean Long
7d2ac4cc31 8211743: [AOT] crash in ScopeDesc::decode_body() when JVMTI walks AOT frames
Reviewed-by: kvn
2018-10-30 15:17:58 -07:00
Kim Barrett
3185dcf0f2 8212827: GlobalCounter should support nested critical sections
Support nested critical sections.

Reviewed-by: eosterlund, rehn, tschatzl
2018-10-30 18:06:35 -04:00
Kuai Wei
dcb6e1dda8 8210853: JIT: C2 doesn't skip post barrier for new allocated objects
Skip copy Region node when look for last allocation

Reviewed-by: thartmann, kvn
2018-10-30 14:38:59 -07:00
Adam Petcher
0aa4581229 8205476: KeyAgreement#generateSecret is not reset for ECDH based algorithm
Clarify spec of generateSecret and modify ECDH in SunEC to conform to spec

Reviewed-by: mullan
2018-10-30 13:48:19 -04:00
Naoto Sato
02d6d9c259 8212941: Loosen the range of JapaneseEra
Reviewed-by: rriggs
2018-10-30 10:32:54 -07:00
Bob Vandette
05027c124c 8209093: JEP 340: One AArch64 Port, Not Two
Reviewed-by: dholmes, erikj, mikael, shade, avoitylov, bulasevich
2018-10-30 10:39:19 -04:00
Harold Seigel
0399760d7f 8213148: JDK build fails because of missing #includes
Add missing #includes

Reviewed-by: dcubed
2018-10-30 09:13:00 -04:00
Joe Darcy
7e19a09742 8212081: AnnotatedType.toString implementation don't print annotations on embedded types
Reviewed-by: jfranck, wmdietl
2018-10-29 11:31:25 -07:00
Calvin Cheung
e0911eacd6 8209566: [TESTBUG] runtime/appcds/jigsaw/modulepath/JvmtiAddPath.java timeout on tier6 on sparc
Increased the timeout from 120s (default) to 240s

Reviewed-by: dcubed, mseledtsov
2018-10-29 11:05:45 -07:00
Jiangli Zhou
0c554411b0 8205327: Clean up #if INCLUDE_CDS in classLoaderExt.cpp and classLoaderExt.hpp
Clean up #if INCLUDE_CDS in classLoaderExt.* files.

Reviewed-by: dholmes
2018-10-29 14:00:48 -04:00
Thomas Stuefe
d153c9c259 8213017: jspawnhelper: need to handle pipe write failure when sending return code
Reviewed-by: alanb
2018-10-26 16:49:18 +02:00
Claes Redestad
91a2c2e340 8213035: Pack MethodHandleInlineStrategy coder and length into a long
Reviewed-by: vlivanov, mchung
2018-10-30 09:34:50 +01:00
Tobias Hartmann
4b27547977 8177899: Tests fail due to code cache exhaustion on machines with many cores
Implemented upper limit on CICompilerCount based on code cache size.

Reviewed-by: kvn, mdoerr
2018-10-30 09:06:08 +01:00
Vicente Romero
d9d067369b 8212624: remove outdated entries from langtools problem list
Reviewed-by: darcy
2018-10-29 17:11:46 -04:00
Vicente Romero
d0696b538a 8213100: fix test OptionSmokeTest before removing it from the problem list
Reviewed-by: jlahoda
2018-10-29 17:09:44 -04:00
Igor Ignatyev
93c891c51b 8177710: Convert TestMetaspaceUtils_test to GTest
Reviewed-by: tschatzl
2018-10-29 14:04:44 -07:00
Kirill Zhaldybin
810ba0eb12 8157728: Convert GCTimer_test to GTest
Reviewed-by: tschatzl, jcbeyler, iignatyev
2018-10-29 14:04:42 -07:00
Calvin Cheung
efce2c0397 8212154: [TESTBUG] CheckArchivedModuleApp fails with NPE when JVMCI is absent
Added a null check on wb.getBooleanVMFlag("EnableJVMCI").

Reviewed-by: hseigel, jiangli
2018-10-29 13:58:29 -07:00
Ioi Lam
9a06fc3ea7 8212205: VM asserts after CDS archive has been unmapped
Reviewed-by: dholmes, jiangli, hseigel, stuefe
2018-10-25 11:23:43 -07:00
Robert Field
37ef084d73 8210808: jshell tool: only considers the first snippet of the external editor
Reviewed-by: jlahoda, sundar
2018-10-29 08:34:33 -07:00
Jim Laskey
7a9db013b7 8212694: Using Raw String Literals with align() and Integer.MIN_VALUE causes out of memory error
Reviewed-by: smarks, sherman
2018-10-29 12:31:49 -03:00
Coleen Phillimore
6a045adbed 8212958: Allow Klass::_subklass and _next_sibling to have unloaded classes
Don't return unloaded klasses. Make sure access is protected by Compile_lock.

Reviewed-by: eosterlund, dlong
2018-10-29 10:21:34 -04:00
Harold Seigel
71637b00c7 8212997: [TESTBUG] Remove defmeth tests for class file versions 50 and 51
Remove the unneeded tests.  Keep the tests for class file versions 49 and 52.

Reviewed-by: acorn, coleenp
2018-10-29 08:38:59 -04:00
Thomas Schatzl
f69c1407ae 8212766: TestPromotionEventWithG1.java failed due to "RuntimeException: PLAB size is smaller than object size."
Also send PLAB size in bytes, not in heap words.

Reviewed-by: shade, sjohanss
2018-10-29 08:55:03 +01:00
Thomas Schatzl
931c9cf86d 8212974: Update RS Skipped cards uses wrong enum to register to phase
Reviewed-by: kbarrett
2018-10-29 08:52:04 +01:00
Jonathan Gibbons
d797264488 8213056: Nested anchor tags in java.lang.module
Reviewed-by: darcy
2018-10-26 15:13:12 -07:00
Mandy Chung
890a8b7705 8213043: Add internal Unsafe xxxObject methods as jsr166 is broken
Reviewed-by: alanb
2018-10-26 13:59:02 -07:00
Lance Andersen
a655e6b52b 8212129: Remove finalize methods from java.util.zip.ZipFIle/Inflator/Deflator
Reviewed-by: rriggs, sherman, alanb, clanger
2018-10-26 14:02:31 -04:00
Gerard Ziemski
0108d754d7 8017061: os_bsd.cpp contains code for UseSHM and UseHugeTLBFS
Removed the code using unused flags.

Reviewed-by: dholmes, coleenp
2018-10-26 10:47:05 -05:00
Weijun Wang
ae77ef7d7a 8213007: Update the link in test/jdk/sun/security/provider/SecureRandom/DrbgCavp.java
Reviewed-by: mullan
2018-10-26 22:58:04 +08:00
Thomas Stuefe
e4f51809e4 8212173: Thread._stack_base/_stack_size initialized too late for new threads
Reviewed-by: dholmes, simonis
2018-10-19 09:39:29 +02:00
Harold Seigel
67d76fe937 8192864: defmeth tests can hide failures
Add a call to addFailureCount() to record previously hidden failures.

Reviewed-by: lfoltan, coleenp
2018-10-26 08:23:52 -04:00
Calvin Cheung
7c81535d46 8209598: Clean up how messages are printed when CDS aborts start-up
Added a new function vm_exit_during_cds_dumping() to java.cpp so that it can be used when an error condition is encountered during CDS dumping.

Reviewed-by: iklam, dholmes, jiangli
2018-10-25 21:40:17 -07:00
Weijun Wang
8dbea74827 8212867: Link to DRBG test vectors is redirected to a broken link
Reviewed-by: mullan
2018-10-26 11:11:13 +08:00
Tom Rodriguez
ff4cf4f40b 8212956: [JVCMI] SpeculationReason should maintain identity
Reviewed-by: kvn
2018-10-25 19:00:46 -07:00
Dean Long
c24f6506e7 8021335: Missing synchronization when reading counters for live threads and peak thread count
Reviewed-by: dholmes, mchung
2018-10-25 18:41:26 -07:00
Iris Clark
7533f9f78a 8212994: Links to Oracle websites should use "https:"
Reviewed-by: erikj, lancea
2018-10-25 17:06:40 -07:00
Erik Joelsson
8b98cc3722 8213005: Missing symbols in hs_err files on Windows after JDK-8212028
Reviewed-by: ctornqvi
2018-10-25 16:47:14 -07:00
David Holmes
3837f1abc1 8210242: vmTestbase/nsk/stress/jni/jnistress001.java crashes with EXCEPTION_ACCESS_VIOLATION on windows-x86
Non-NUL-terminated string was passed to %s - use %.*s to specify the actual length.

Reviewed-by: lfoltan, hseigel
2018-10-25 19:12:39 -04:00
Jean Christophe Beyler
589b596bec 8212884: Remove the assignments in ifs for vmTestbase/[a-s]
Extract assignments from if statements in vmTestbase

Reviewed-by: cjplummer, sspitsyn
2018-10-25 14:23:26 -07:00
Abdul Kolarkunnu
162e75f4a8 8212897: Some improvements in the EditorPaneDemotest
Reviewed-by: serb
2018-10-25 08:59:26 -07:00
Alex Menkov
b4cb7d6fc7 8212151: jdi/ExclusiveBind.java times out due to "bind failed: Address already in use" on Solaris-X64
Reviewed-by: sspitsyn, jcbeyler
2018-10-25 11:48:18 -07:00
Pavel Punegov
a7aa770b9a 8164546: Convert DirectivesParser_test to GTest
Reviewed-by: kvn, iignatyev, neliasso
2018-10-25 11:18:24 -07:00
Mandy Chung
0f44b453a3 Merge 2018-10-25 10:58:59 -07:00
Mandy Chung
d523a17e80 8212795: ThreadInfoCompositeData.toCompositeData fails to map ThreadInfo to CompositeData
Reviewed-by: dfuchs
2018-10-25 10:57:42 -07:00
Mandy Chung
85598bc90f 8212948: Remove unused jdk.internal.misc.VMNotification interface
Reviewed-by: alanb
2018-10-25 10:56:45 -07:00
Sean Mullan
7727e4ca2f 8211883: Disable anon and NULL cipher suites
Reviewed-by: jnimeh
2018-10-25 13:55:28 -04:00
Dean Long
fb3ab945a6 8212978: Add RedefineMethodUsedByMultipleMethodHandles.java to problem list
Reviewed-by: kvn
2018-10-25 09:20:54 -07:00
Jean Christophe Beyler
be312edc2a 8212770: Remove spaces before/after () for vmTestbase/jvmti/[s-u]
Remove spaces before/after ()

Reviewed-by: amenkov, cjplummer
2018-10-25 08:18:42 -07:00
Michael McMahon
ae21c81dd7 8212926: HttpClient does not retrieve files with large sizes over HTTP/1.1
Reviewed-by: chegar, dfuchs
2018-10-25 12:09:41 +01:00
Robert Field
0d815c2677 8211694: JShell: Redeclared variable should be reset
Reviewed-by: sundar
2018-10-24 21:17:30 -07:00
Amy Lu
f095a9ee49 8209768: Refactor java/util/prefs/CheckUserPrefsStorage.sh to plain java test
Reviewed-by: bchristi, weijun
2018-10-25 11:05:24 +08:00
Amy Lu
6ce0aeb00b 8210908: Refactor java/util/prefs/PrefsSpi.sh to plain java test
Reviewed-by: bchristi
2018-10-25 11:00:40 +08:00
Jesper Wilhelmsson
801895a09e Added tag jdk-12+17 for changeset eefa65e142af 2018-10-24 18:14:28 -07:00
Ioi Lam
93395f6a9e 8212200: assert when shared java.lang.Object is redefined by JVMTI agent
Reviewed-by: dholmes, jiangli, hseigel, lfoltan, sspitsyn
2018-10-17 15:57:10 -07:00
Jonathan Gibbons
02966a7b67 8213102: Oracle Unilinks are [301 Moved Permanently] to https://docs.oracle.com
Reviewed-by: lancea, mchung
2018-10-29 12:33:41 -07:00
Jayathirth D V
3e85467bc6 Merge 2018-10-16 23:21:05 +05:30
Sergey Bylokhov
550af18f08 8212213: All tests for splashscreen stopped worked in jdk12b13
Reviewed-by: ihse, prr
2018-10-19 11:15:57 -07:00
Ichiroh Takiguchi
3ee3988bfd 8211393: Memory leak issue on awt_InputMethod.c
Reviewed-by: naoto, clanger
2018-10-19 15:26:50 +01:00
Prasanta Sadhukhan
b64e7fc2bd 8211987: Menu bar gets input focus even if Alt-released event is consumed
Reviewed-by: serb
2018-10-19 12:50:25 +05:30
Prasanta Sadhukhan
667b323a89 8212098: Cleanup of ProblemList.txt for fixed swing tests
Reviewed-by: serb
2018-10-19 12:39:56 +05:30
Sergey Bylokhov
b3b647ef9a 8133713: [macosx] Accessible JTables always reported as empty
Reviewed-by: prr
2018-10-16 16:49:50 -07:00
Sergey Bylokhov
518f32791a 8210739: Calling JSpinner's setFont with null throws NullPointerException
Reviewed-by: psadhukhan
2018-10-16 15:47:53 -07:00
John Neffenger
0ed2c6c295 8212071: Need to set the FreeType LCD Filter to reduce fringing
Reviewed-by: prr, lbourges
2018-10-16 10:54:50 -07:00
Jayathirth D V
eb1b046a1d Merge 2018-10-16 14:26:22 +05:30
John Jiang
f507e3c9d1 8211971: Move security/cacerts/VerifyCACerts.java and security/CheckBlacklistedCerts.java
Move lib/security tests to sun/security/lib

Reviewed-by: weijun
2018-10-16 10:16:04 +08:00
Viktor Dukhovni
2a10506942 8212165: JGSS: Fix cut/paste error in NativeUtil.c
Reviewed-by: alanb, weijun
2018-10-16 09:19:32 +08:00
David Holmes
ffc26adbea 8048215: [TESTBUG] java/lang/management/ManagementFactory/ThreadMXBeanProxy.java Expected non-null LockInfo
Ensure the target thread has reached wait() before inspecting it

Reviewed-by: mchung, dfuchs, jcbeyler
2018-10-15 21:02:17 -04:00
Jean Christophe Beyler
7afa70096a 8212083: Handle remaining gc/lock native code and fix two strings
Migrate code to using wrapping JNI for exceptions

Reviewed-by: phh, tschatzl
2018-10-15 14:55:17 -07:00
Jean Christophe Beyler
d7c7ce19f1 8211980: Remove ThreadHeapSampler enable/disable/enabled methods
Remove methods from ThreadHeapSampler

Reviewed-by: dholmes, phh
2018-10-15 14:16:35 -07:00
Shashidhara Veerabhadraiah
ec5f10e6a2 8061359: [macosx] Checkbox toggles on Space press but does not spoken by Voice Over
Reviewed-by: mhalder, serb
2018-10-15 10:29:06 +05:30
Prasanta Sadhukhan
a7c90c5400 8212040: Compilation error due to wrong usage of NSPrintJobDispositionValue in mac10.12
Reviewed-by: jdv
2018-10-14 18:05:06 +05:30
Prasanta Sadhukhan
2491c32fcd 6828982: UIDefaults.getUI swallows original exception
Reviewed-by: kaddepalli, prr
2018-10-11 14:19:36 +05:30
Prasanta Sadhukhan
aa4584af89 8211886: Bad/broken link in synthFileFormat.html
Reviewed-by: serb
2018-10-10 16:20:52 +05:30
Tagir F. Valeev
e71caa9aae 8211693: Convert C-style array declarations in client demos and jdk.accessibility
Reviewed-by: serb
2018-10-09 18:25:57 -07:00
Brent Christian
6a9241a6a6 8211731: Reconsider default option for ClassPathURLCheck change done in JDK-8195874
Reviewed-by: alanb, mchung
2018-10-05 15:12:37 -07:00
Roland Westrelin
03ef2b0df5 8211320: Aarch64: unsafe.compareAndSetByte() and unsafe.compareAndSetShort() c2 intrinsics broken with negative expected value
Reviewed-by: adinn, aph
2018-10-04 09:24:27 +02:00
Daniel Fuchs
059682d681 8213301: Fix legal headers in jdk logging tests
Reviewed-by: chegar, mchung
2018-11-05 11:20:47 +00:00
Magnus Ihse Bursie
a836b891b8 8213339: Update precompiled.hpp with headers based on current frequency
Reviewed-by: shade, dholmes
2018-11-05 10:52:36 +01:00
Erik Österlund
f2fe71b186 8212989: Allow CompiledMethod ExceptionCache have unloaded klasses
Reviewed-by: kvn, pliden
2018-11-05 08:01:39 +01:00
Jan Lahoda
fdb010502b 8213103: RoundEnvironment.getElementsAnnotatedWith(Class) crashes with -source 8
Correct handling of missing annotation with -source 8.

Reviewed-by: darcy, jjg, vromero
2018-11-05 10:31:47 +01:00
Lance Andersen
87f243d539 8213328: Update test copyrights in test/java/util/zip and test/jdk/tools
Reviewed-by: joehw
2018-11-04 13:06:02 -05:00
Jiangli Zhou
80ad2c7e71 8212995: Placing the Integer.IntegerCache and cached Integer objects in the closed archive heap region
Support shareable archive object subgraphs in closed archive heap regions.

Reviewed-by: iklam, ccheung
2018-11-03 15:40:19 -04:00
Jean Christophe Beyler
e3a2417b63 8213246: Fix typo in vmTestbase failuire to failure
Fix failuire typo in two spots

Reviewed-by: mikael, dcubed, iignatyev
2018-11-03 12:37:55 -07:00
Ioi Lam
51f2d9801b 8211336: [TESTBUG] appcds tests with incorrect usage of -XX:+UseStringDeduplication
Reviewed-by: dholmes, ccheung, mseledtsov
2018-10-29 14:01:46 -07:00
Igor Ignatyev
bf800514ff 8213337: windows-x64-slowdebug build is broken by 8177708
Reviewed-by: dholmes
2018-11-02 23:44:45 -07:00
Joe Darcy
24d201cb54 8213256: Clarify runtime vs compile time annotations for RoundEnvironment.getElementsAnnotatedWith(Class)
Reviewed-by: jjg, jlahoda
2018-11-02 18:49:10 -07:00
Jiangli Zhou
4b813da8c8 8209564: runtime/appcds/CDSandJFR.java timeout on tier6 on sparc
Set timeout 500 in CDSandJFR.java

Reviewed-by: dcubed
2018-11-02 19:30:31 -04:00
Igor Ignatyev
35871a8ca1 8213058: remove ExecuteInternalVMTests and VerboseInternalVMTests flags
Reviewed-by: erikj, dholmes, ihse
2018-11-02 16:27:55 -07:00
Igor Ignatyev
de6f5b33ed 8177708: Convert TestReserveMemorySpecial_test to Gtest
Reviewed-by: gziemski, vlivanov
2018-11-02 16:26:11 -07:00
Kim Barrett
5f7a59f69c 6735527: Bitmap - speed up searches
New parameterized bitmap search routine, using ctz.

Reviewed-by: tschatzl, shade
2018-11-02 17:51:21 -04:00
Ekaterina Pavlova
49a3af9513 8152988: [AOT] Update test batch definitions to include aot-ed java.base module mode into hs-comp testing
Reviewed-by: kvn, erikj, ihse
2018-11-02 14:00:29 -07:00
Joe Wang
d6f958719d 8213321: Fix legal headers in test/jaxp
Reviewed-by: darcy, jjg, lancea
2018-11-02 12:33:28 -07:00
Hannes Wallnöfer
f8c4729c1b 8210405: Javadoc search doesn't always consider full input upon Enter
Reviewed-by: jjg
2018-11-02 18:35:30 +01:00
Brian Burkhalter
36ca4f5893 8213306: Fix legal headers in test/java/nio
Reviewed-by: chegar
2018-11-02 09:58:55 -07:00
Brian Burkhalter
e21d8fef64 8213305: Fix legal headers in test/java/math
Reviewed-by: darcy
2018-11-02 09:56:47 -07:00
Daniel D. Daugherty
d17f8229f7 8213308: ProblemList runtime/appcds/jigsaw/classpathtests/EmptyClassInBootClassPath.java
Reviewed-by: ccheung, darcy
2018-11-02 12:49:42 -04:00
Chris Hegarty
84d6099da9 8213296: Fix legal headers in test/jdk/java/net
Reviewed-by: alanb, dfuchs
2018-11-02 16:11:29 +00:00
Robbin Ehn
6e5e462e2a 8213236: A partial removed/deleted JavaThread cannot transition
Reviewed-by: dholmes, dcubed, eosterlund
2018-11-02 14:13:05 +01:00
Erik Österlund
25f14cd757 8209189: Make CompiledMethod::do_unloading more concurrent
Reviewed-by: kvn, coleenp
2018-11-02 08:33:59 +01:00
Erik Österlund
97d3dc7902 8212681: Refactor IC locking to use a fine grained CompiledICLocker
Reviewed-by: coleenp, rehn, kvn
2018-11-01 14:57:26 +01:00
Per Lidén
54d4acf73f 8212184: Incorrect oop ref strength used for referents in FinalReference
Reviewed-by: eosterlund, kbarrett
2018-11-02 07:58:22 +01:00
Per Lidén
ca91f514d8 8212921: ZGC: Move verification to after resurrection unblocked
Reviewed-by: eosterlund
2018-11-02 07:46:00 +01:00
Tom Rodriguez
a429adfa2d 8213203: [JVMCI] adopt formatting changes from jvmci 8
Reviewed-by: kvn
2018-11-02 00:26:25 -07:00
Joe Darcy
7a350b9474 6304578: (reflect) toGenericString fails to print bounds of type variables on generic methods
Reviewed-by: vromero, plevart, briangoetz, mcimadamore
2018-11-01 20:37:45 -07:00
Jonathan Gibbons
72bfdd96f1 8213265: fix missing newlines at end of files
Reviewed-by: darcy
2018-11-01 15:11:08 -07:00
Ichiroh Takiguchi
be00a3f7ee 8211382: ISO2022JP and GB18030 NIO converter issues
Reviewed-by: sherman, rriggs
2018-11-01 17:48:10 -04:00
Jonathan Gibbons
73fa99ae86 8213263: fix legal headers in test/langtools
Reviewed-by: darcy
2018-11-01 14:32:55 -07:00
Naoto Sato
0eda8a33bb 8213046: Define Japanese new Era character
Reviewed-by: lancea, rriggs
2018-11-01 14:07:59 -07:00
Sean Mullan
30745fe1a8 8212669: Add note to Cipher javadoc about using full transformation and not relying on defaults
Reviewed-by: xuelei
2018-11-01 16:53:54 -04:00
Robbin Ehn
9a043c50f9 8209495: NMethodSweeper::sweep_code_cache cause severe delays
Reviewed-by: thartmann, eosterlund
2018-11-01 17:56:01 +01:00
Ramanand Patil
3eef9c7997 8213085: (tz) Upgrade time-zone data to tzdata2018g
Reviewed-by: martin, naoto
2018-11-01 12:43:21 -04:00
Joe Wang
2c4392d433 8212871: Broken links give 401-Unauthorized
Reviewed-by: lancea
2018-11-01 09:41:04 -07:00
Brian Burkhalter
cb73851579 8213210: Change ServerSocket(SocketImpl impl) constructor to protected access
Reviewed-by: alanb, chegar
2018-11-01 09:34:59 -07:00
Nico Williams
58a340bcb1 8212217: JGSS: Don't dispose() of creds too eagerly
Reviewed-by: mullan, weijun
2018-11-01 22:41:32 +08:00
Tobias Hartmann
2fe0a0f20b 8213014: Crash in CompileBroker::make_thread due to OOM
Added missing null checks and checks for pending exception.

Reviewed-by: kvn, dholmes, mdoerr
2018-11-01 14:15:35 +01:00
Magnus Ihse Bursie
b77f937f7e 8213237: Remove test-compile-commands from jib-profiles.js
Reviewed-by: lancea
2018-11-01 11:28:02 +01:00
Doug Simon
3d2f28b540 8212934: [JVMCI] do not propagate resolution error in HotSpotResolvedJavaFieldImpl.getType
Reviewed-by: kvn
2018-11-01 11:23:12 +01:00
Gary Adams
ad6611f3ce 8211013: [TESTBUG] nsk/jdb/kill/kill002 wait for message and prompt
Reviewed-by: cjplummer, dtitov, jcbeyler
2018-10-23 14:23:46 -04:00
Gary Adams
426873751c 8206330: Revisit com/sun/jdi/RedefineCrossEvent.java
Reviewed-by: cjplummer, sspitsyn, amenkov
2018-10-23 11:51:03 -04:00
David M Lloyd
f853aebd9b 8212828: (process) Provide a way for Runtime.exec to use posix_spawn on linux
Reviewed-by: alanb, rriggs
2018-10-18 15:56:37 -05:00
Igor Ignatyev
0c061174b6 8177711: Convert TestVirtualSpaceNode_test to GTest
Reviewed-by: jwilhelm
2018-10-31 19:56:51 -07:00
Jesper Wilhelmsson
cadfdfd812 Added tag jdk-12+18 for changeset e38473506688 2018-11-01 02:12:13 +01:00
Calvin Cheung
fc19077b52 8213000: Obsolete the IgnoreUnverifiableClassesDuringDump vm option
Remove code referencing the IgnoreUnverifiableClassesDuringDump

Reviewed-by: dholmes, jiangli
2018-10-31 14:00:51 -07:00
Rajan Halade
b627cee532 8207059: Update test certificates in QuoVadisCA.java test
Reviewed-by: mullan, mbaesken
2018-10-31 13:58:15 -07:00
Bob Vandette
c656dde507 Merge 2018-10-31 16:27:31 -04:00
Bob Vandette
f7ebca2763 8213204: ReservedStackTest and ReservedStackTestCompiler tests fail on windows
Reviewed-by: fparain, dcubed, jwilhelm
2018-10-31 16:27:01 -04:00
Abdul Kolarkunnu
6352b5f64d 8209499: Create test for SwingSet EditorPaneDemo
Reviewed-by: serb
2018-10-03 23:00:32 -07:00
Alexandre Iline
afa8a8ff9b Merge 2018-10-15 13:44:31 -07:00
Aleksey Shipilev
a0e02d649c 8212178: Soft reference reclamation race in com.sun.xml.internal.stream.util.ThreadLocalBufferAllocator
Reviewed-by: rkennke, kbarrett, joehw
2018-10-15 22:30:32 +02:00
Jiangli Zhou
ace36f9ac3 8211956: AppCDS crashes for some uses with JRuby
Make sure FileMapInfo::verify_mapped_heap_regions only verifies 'num' of spaces.

Reviewed-by: iklam
2018-10-15 15:21:54 -04:00
Erik Joelsson
232912a6ca 8212028: Use run-test makefile framework for testing in Oracle's Mach5
Reviewed-by: ihse
2018-10-15 11:36:20 -07:00
Abdul Kolarkunnu
56847065af 8211139: Increase timeout value in all tests under jdk/sanity/client/SwingSet/src
Reviewed-by: serb
2018-10-11 07:22:53 -07:00
Zhengyu Gu
a0ce3d3f18 8212074: Add method to peek the remaining tasks in task queues
Add methods for implementing new task termination protocol

Reviewed-by: tschatzl, shade, rkennke
2018-10-15 11:53:15 -04:00
John Jiang
4fe2edae59 8211978: Move testlibrary/jdk/testlibrary/SimpleSSLContext.java and testkeys to network testlibrary
Move SimpleSSLContext.java and testkeys to test/lib/jdk/test/lib/net

Reviewed-by: chegar
2018-10-15 22:47:03 +08:00
Sean Coffey
497de20391 8209862: CipherCore performance improvement
Co-authored-by: Sergey Kuksenko <sergey.kuksenko@oracle.com>
Reviewed-by: apetcher, ascarpino
2018-10-15 14:42:31 +01:00
Leo Korinth
e898052f3b 8211447: Replace oop_pc_update_pointers with oop_iterate and closure
Reviewed-by: sjohanss, tschatzl
2018-10-12 12:14:01 +02:00
Leo Korinth
78fe66c3bb 8211446: Replace oop_pc_follow_contents with oop_iterate and closure
Reviewed-by: sjohanss, tschatzl
2018-10-12 12:13:06 +02:00
Leo Korinth
4bc903d17a 8201436: Replace oop_ps_push_contents with oop_iterate and closure
Reviewed-by: sjohanss, tschatzl
2018-10-12 12:10:34 +02:00
Priya Lakshmi Muthuswamy
ce05c7751d 8211957: Broken links to stylesheet in java.base/doc-files
Reviewed-by: alanb
2018-10-15 17:52:42 +05:30
Martin Doerr
e790d11666 8211852: inspect stack during error reporting
Reviewed-by: dholmes, goetz
2018-10-15 08:08:02 +02:00
Jean Christophe Beyler
e431f6a418 8212082: Remove the NSK_CPP_STUB macros for remaining vmTestbase/jvmti/[sS]*
Remove NSK_CPP_STUB macros from the tests

Reviewed-by: amenkov, phh
2018-10-14 19:07:34 -07:00
Chris Yin
285fca70b4 8187522: test/sun/net/ftp/FtpURLConnectionLeak.java timed out
Reviewed-by: chegar, vtewari
2018-10-15 09:34:18 +08:00
Kim Barrett
6330fc1cb6 8212023: Implicit narrowing in Solaris/sparc initializers
Explicitly narrow or fix destination types.

Reviewed-by: dholmes, tschatzl
2018-10-12 17:35:26 -04:00
Lance Andersen
1226dcbcfe 8212045: Add back tests removed from HashesTest.java and AddExportsTest.java
Reviewed-by: rriggs
2018-10-12 14:16:24 -04:00
Alex Menkov
24fb839864 8195703: BasicJDWPConnectionTest.java: 'App exited unexpectedly with 2'
Reviewed-by: sspitsyn, jcbeyler
2018-10-12 10:08:11 -07:00
Roman Kennke
7d7da8976b 8211955: GC abstraction for LAB reserve
Reviewed-by: pliden, shade
2018-10-10 23:05:15 +02:00
Naoto Sato
a3a7edbd4d 8211961: Broken link in java.util.Locale
Reviewed-by: mchung
2018-10-15 09:35:05 -07:00
Muthusamy Chinnathambi
cbe11130f5 8027434: "-XX:OnOutOfMemoryError" uses fork instead of vfork
Reviewed-by: dholmes, iklam
2018-10-09 16:08:07 +05:30
Severin Gehwolf
cfb6fb66c2 8212110: Build of saproc.dll broken on Windows 32 bit after JDK-8210647
Only add RTC1 compile flag for slowdebug builds.

Reviewed-by: mdoerr, erikj
2018-10-12 10:58:06 +02:00
Roman Kennke
f958e6642e 8212053: A few more missing object equals barriers
Reviewed-by: shade, zgu
2018-10-12 16:25:24 +02:00
Michael McMahon
96b43418b5 8203850: java.net.http HTTP client should allow specifying Origin and Referer headers
Reviewed-by: chegar, dfuchs
2018-10-12 11:12:51 +01:00
David Holmes
55692eb0ca 8211046: Forced data dependencies serve no purpose on x86
Reviewed-by: eosterlund, rehn
2018-10-12 03:51:02 -04:00
Vyom Tewari
f4df5cb4c3 8189366: SocketInputStream.available() should check for eof
Reviewed-by: chegar
2018-10-12 12:37:13 +05:30
Goetz Lindenmaier
1d8a27195c 8211931: [ppc][testbug] runtime/jni/terminatedThread/TestTerminatedThread.java fails as threads don't terminate immediately
Reviewed-by: dholmes, mdoerr
2018-10-12 08:33:18 +02:00
Hamlin Li
7014d0bdf8 8186610: move ModuleUtils to top-level testlibrary
Reviewed-by: alanb, iignatyev
2018-10-12 10:35:24 +08:00
Muthusamy Chinnathambi
b3de6ff3a6 8211714: Need to update vm_version.cpp to recognise VS2017 minor versions
Reviewed-by: dholmes
2018-10-11 15:49:23 -07:00
Roman Kennke
7ea2bd922b 8212054: Boilerplate to bind oopDesc::equals_raw() to actual raw implementation
Reviewed-by: shade, eosterlund
2018-10-11 23:48:55 +02:00
Jean Christophe Beyler
3eef363b69 8212025: Remove collector_present variable from ThreadHeapSampler
Remove unused variable from ThreadHeapSampler

Reviewed-by: tschatzl, pliden
2018-10-11 12:41:47 -07:00
Jean Christophe Beyler
b68500521e 8211432: [REDO] Handle JNIGlobalRefLocker.cpp
Adding a JNI verification wrapper for tests

Reviewed-by: amenkov, sspitsyn, phh
2018-10-11 09:30:10 -07:00
Harold Seigel
2e5653c166 8211821: PrintStringTableStatistics crashes JVM
During JVM exit, print the Symbol and String tables before current thread gets deleted.

Reviewed-by: iklam, dholmes
2018-10-11 11:31:37 -04:00
Harold Seigel
945623c998 8079784: Unexpected IllegalAccessError when trying access InnerClasses attribute
Prevent classes in the InnerClasses attribute from being loaded unless they are actually being accessed.

Reviewed-by: dholmes, lfoltan
2018-10-11 10:11:18 -04:00
Pavel Rappo
01a3fec4cb 8212001: Verify exported symbols in java.base (libjava)
Reviewed-by: chegar
2018-10-11 14:10:13 +01:00
Chris Hegarty
9701ffd293 8211922: Remove test/jdk/javax/naming/module/RunBasic.java from the ProblemList
Reviewed-by: lancea
2018-10-11 13:40:09 +01:00
Matthias Baesken
cd597d1dfd 8211317: avoid memory leak in Java_sun_awt_UNIXToolkit_load_1stock_1icon
Reviewed-by: clanger, goetz
2018-10-01 12:06:44 +02:00
Krishna Addepalli
0caefc787f 8014503: AWT Choice implementation should be made consistent across platforms
Reviewed-by: serb, aghaisas, sveerabhadra
2018-10-09 12:08:59 +05:30
Krishna Addepalli
995f6963b3 8182041: File Chooser Shortcut Panel folders under on JDK 9 8062648: FileSystemView.getDefaultDirectory() should check read access on Unix systems
Reviewed-by: serb, prr, psadhukhan
2018-10-05 14:35:24 +05:30
Tagir F. Valeev
fc807d0914 8211300: Convert C-style array declarations in JDK client code
Reviewed-by: prr, serb
2018-10-04 12:40:55 -07:00
Phil Race
c33f1a61de 8208595: [parfait] Better X11 font support
Reviewed-by: serb, psadhukhan
2018-10-04 11:07:30 -07:00
Prasanta Sadhukhan
9b0d241a16 8211055: Provide print to a file (PDF) feature even when printer was not connected
Reviewed-by: prr
2018-10-04 15:03:48 +05:30
Martin Mraz
0f45d2d52a 8203281: [Windows] JComboBox change in ui when editor.setBorder() is called
Reviewed-by: psadhukhan
2018-10-04 14:56:03 +05:30
Prasanta Sadhukhan
88a48fe2a6 Merge 2018-10-04 14:17:59 +05:30
Vikrant Agarwal
711edb0a65 8210910: Create test for FileChooserDemo
Reviewed-by: serb
2018-10-04 13:01:23 +05:30
Jesper Wilhelmsson
4cb40ea9f9 Added tag jdk-12+14 for changeset 8897e41b327c 2018-10-04 00:50:54 +02:00
Vladimir Kozlov
0899668970 8202359: [GRAAL] compiler/uncommontrap/TestDeoptOOM.java failed with OutOfMemoryError
Exclude this test from running with Java Graal

Reviewed-by: iveresov
2018-10-03 14:53:05 -07:00
Xueming Shen
78276f7b33 8211385: (zipfs) ZipDirectoryStream yields a stream of absolute paths when directory is relative
Reviewed-by: alanb, lancea
2018-10-03 12:54:54 -07:00
Poonam Bajaj
3ce24a0442 8211150: G1 Full GC not purging code root memory and hence causing memory leak
Reviewed-by: tschatzl, sjohanss
2018-10-03 19:30:49 +00:00
Phil Race
42ecae239b 8211031: Remove un-needed qualified export to java.desktop from java.base on macos
Reviewed-by: serb, mchung
2018-10-03 11:10:09 -07:00
Gary Adams
82ab90dbb3 8169718: nsk/jdb/locals/locals002: ERROR: Cannot find boolVar with expected value: false
Reviewed-by: cjplummer, amenkov
2018-10-03 07:41:28 -04:00
Vladimir Kozlov
daf3cd17c4 8211392: compiler/profiling/spectrapredefineclass_classloaders/Launcher.java times out in JDK12 CI
Use default compile threshold for these tests

Reviewed-by: thartmann
2018-10-03 10:38:30 -07:00
Gerard Ziemski
db646c699a 8204294: [REDO] - JVMFlag::printError missing ATTRIBUTE_PRINTF
Added ATTRIBUTE_PRINTF to JVMFlag::printError

Reviewed-by: kbarrett, coleenp
2018-10-03 12:34:22 -05:00
Aleksey Shipilev
5850a50781 8211375: Minimal VM build failures after JDK-8211251 (Default mask register for avx512 instructions)
Reviewed-by: kvn
2018-10-03 18:46:26 +02:00
Andrew Haley
989aa8a4fc Merge 2018-10-03 17:45:59 +01:00
Andrew Haley
1ef860cf09 8211163: UNIX version of Java_java_io_Console_echo does not return a clean boolean
Reviewed-by: shade, alanb
2018-10-03 17:29:47 +01:00
Rahul Raghavan
493b31ba91 8211168: Solaris-X64 build failure with error nreg hides the same name in an outer scope
Corrected nreg definition

Reviewed-by: dcubed, kvn, shade
2018-10-03 08:03:13 -07:00
Claes Redestad
08b8a3149b 8211384: Obsolete -XX:+/-MonitorInUseLists option
Reviewed-by: mikael, rkennke, shade, dcubed
2018-10-03 15:05:46 +02:00
Harold Seigel
221005a3d4 8209138: Symbol constructor uses u1 as the element type of its name argument
Maske u1 the type for Symbol values and add a function to return it as a char.

Reviewed-by: dholmes, coleenp
2018-10-03 09:46:46 -04:00
David Holmes
a3cd6a1a70 8188764: Obsolete AssumeMP and then remove all support for non-MP builds
Reviewed-by: mikael, mdoerr, bulasevich, eosterlund
2018-10-03 03:41:57 -04:00
Priya Lakshmi Muthuswamy
5cfc3bbdd4 8208531: -javafx mode should be on by default when JavaFX is available
Reviewed-by: jjg
2018-10-03 11:43:39 +05:30
Mikael Vidstedt
8e53d1b5dc 8211350: Remove jprt support
Reviewed-by: dholmes, erikj, mchung, alanb, jjg
2018-10-02 22:36:08 -07:00
Prasadrao Koppula
c55d60acf7 8211107: LDAPS communication failure with jdk 1.8.0_181
Reviewed-by: chegar, coffeys, vtewari
2018-10-02 21:38:54 +05:30
Calvin Cheung
40b75053e4 8211287: ClassPathTests.java fails due to "Unable to map MiscData shared space at required address."
Catch the InvocationTargetException and rethrow exception based on the cause

Reviewed-by: jiangli, iklam
2018-10-02 20:52:40 -07:00
Mikael Vidstedt
1cca59019b 8211364: Remove expired flags
Reviewed-by: dholmes, egahlin
2018-10-02 15:01:25 -07:00
Ioi Lam
568e8beda6 8209946: [TESTBUG] CDS tests should use "@run driver"
Reviewed-by: ccheung, jiangli, mseledtsov
2018-10-02 14:32:33 -07:00
David Holmes
d1d1c16f8c 8211175: Remove temporary clock initialization duplication
Reviewed-by: rehn, mikael
2018-10-02 17:12:13 -04:00
Alex Menkov
07815d0139 8209332: [TEST] test/jdk/com/sun/jdi/CatchPatternTest.sh is incorrect
Reviewed-by: jcbeyler, dtitov, cjplummer
2018-10-02 12:08:51 -07:00
Alex Menkov
d5062c82af 8203928: [Test] Convert non-JDB scaffolding serviceability shell script tests to java
Reviewed-by: jcbeyler, cjplummer
2018-10-02 12:06:29 -07:00
Ivan Gerasimov
2ae27da3bc 8200381: Typos in javadoc - missing verb "be" and alike
Reviewed-by: lancea, darcy, wetmore
2018-10-02 10:19:07 -07:00
Liam Miller-Cushon
c7e3654a5c 8211057: Gensrc step CompileProperties generates unstable CompilerProperties output
Reviewed-by: mcimadamore, vromero
2018-10-01 21:14:58 -07:00
Abdul Kolarkunnu
2aa950f8bd 8211160: Handle different look and feels in JInternalFrameOperator
Reviewed-by: serb
2018-10-01 18:03:19 -07:00
Prasanta Sadhukhan
added9caf6 6821316: comment in source code of SynthStyleFactory.java has a self-reference
Reviewed-by: serb
2018-09-29 09:43:33 +05:30
Prasanta Sadhukhan
61dc835d26 6994403: Grammatical error in documentation of javax.swing.GroupLayout.ParallelGroup
Reviewed-by: serb
2018-09-29 09:41:33 +05:30
Roland Westrelin
ce59b4b472 8210887: Tweak C2 gc api for arraycopy
Reviewed-by: kvn, thartmann
2018-09-28 10:42:40 +02:00
Christoph Langer
64c46dd029 8211218: remove double semicolon in src/java.desktop/macosx/classes/sun/font/CFont.java
Reviewed-by: serb
2018-09-28 06:39:52 +01:00
Prasanta Sadhukhan
2a43fc5a1b 8210306: Missing closing bracket in GridBagLayout gridwidth, gridheight description
Reviewed-by: serb
2018-09-28 09:17:24 +05:30
Phil Race
f7db806ed1 Merge 2018-09-27 11:46:28 -07:00
Phil Race
7f623d813a Merge 2018-09-27 11:39:45 -07:00
Phil Race
b18f1d282e Merge 2018-09-27 10:49:10 -07:00
Erik Joelsson
9d846aae1f 8211130: Change to Oracle Developer Studio 12.6 for building on Solaris at Oracle
Reviewed-by: tbell, prr, ihse
2018-09-27 08:49:12 -07:00
Roland Westrelin
2ab522db78 8211233: MemBarNode::trailing_membar() and MemBarNode::leading_membar() need to handle dying subgraphs better
Reviewed-by: kvn, thartmann
2018-09-27 17:46:01 +02:00
Roland Westrelin
b00f4560cb 8211231: BarrierSetC1::generate_referent_check() confuses register allocator
Reviewed-by: iveresov, kvn
2018-09-27 16:25:25 +02:00
Daniel Fuchs
bb0074a569 8211349: Bad HTML in {@link} for HttpResponse.BodyHandlers.ofPublisher
Fixed links by moving <> out of the link as was done elsewhere in the file.

Reviewed-by: chegar
2018-10-02 14:17:30 +01:00
Chris Hegarty
f1436a3b4d 8209454: [error-prone] TypeParameterUnusedInFormals in jdk.net
Reviewed-by: dfuchs
2018-10-02 10:40:58 +01:00
Chris Hegarty
0cb267ad1c 8211325: test/jdk/java/net/Socket/LingerTest.java fails with cleaning up
Reviewed-by: dfuchs
2018-10-02 09:05:07 +01:00
Weijun Wang
9452b88d93 8210821: Support dns_canonicalize_hostname in krb5.conf
Reviewed-by: valeriep
2018-10-02 16:02:35 +08:00
Man Cao
33c38f2ccb 8210716: Detailed GC logging request misses some
Changed log tags from (heap, ergo) to (gc, ergo, heap).

Reviewed-by: kbarrett, tschatzl
2018-10-01 20:16:55 -04:00
Igor Ignatyev
ab8c7f710c 8211171: move JarUtils to top-level testlibrary
Reviewed-by: alanb
2018-10-01 14:54:46 -07:00
Sandhya Viswanathan
b0ea3a49d2 8211251: Default mask register for avx512 instructions
Encode AVX 512 instructions as unmasked instruction where mask register is not specified.

Reviewed-by: kvn
2018-10-01 11:54:34 -07:00
Calvin Cheung
5985805474 8211278: Update ProblemList
Reviewed-by: iklam
2018-10-01 11:36:48 -07:00
Roman Kennke
b263449b15 8211129: compiler/whitebox/ForceNMethodSweepTest.java fails after JDK-8132849
Reviewed-by: eosterlund, thartmann
2018-10-01 20:23:56 +02:00
Volker Simonis
d35eda31e3 8211328: Different declaration and definition of ClassLoaderData::classes_do() leads to build failures
Reviewed-by: dcubed, coleenp
2018-10-01 19:08:14 +02:00
Lance Andersen
c925556ec4 8211295: DriverManager.getConnection fails when called from com.sun.rowset.JdbcRowSetImpl
Reviewed-by: mchung, alanb
2018-10-01 13:05:51 -04:00
Andrew Haley
4374820705 Merge 2018-10-01 12:30:33 -04:00
Pengfei Li
21af2af13e 8211333: AArch64: Fix another build failure after JDK-8211029
Reviewed-by: shade, aph
2018-10-01 12:29:47 -04:00
Roman Kennke
5910b521c4 8211071: unpack.cpp fails to compile with statement has no effect [-Werror=unused-value]
Reviewed-by: ihse, clanger
2018-10-01 17:47:26 +02:00
Aleksey Shipilev
5212f0bc11 8211239: Build fails without JFR: empty JFR events signatures mismatch
Reviewed-by: mgronlun, dholmes
2018-10-01 16:41:10 +02:00
Roman Kennke
f7b890ae5f 8211241: Missing obj equals in TemplateTable::fast_aldc
Reviewed-by: dcubed, coleenp
2018-10-01 16:34:22 +02:00
Lutz Schmidt
56e6f2cc1b 8211145: [ppc] [s390]: Build fails due to -Werror=switch (introduced with JDK-8211029)
Reviewed-by: shade, simonis
2018-10-01 12:07:15 +02:00
Gary Adams
c0fd523c05 8210984: [TESTBUG] hs203t003 fails with "# ERROR: hs203t003.cpp, 218: NSK_CPP_STUB2 ( ResumeThread, jvmti, thread)"
Reviewed-by: cjplummer, jcbeyler
2018-09-27 07:33:13 -04:00
Krishna Addepalli
c105cd5164 8208638: Instead of circle rendered in appl window, but ellipse is produced JEditor Pane
Reviewed-by: serb, psadhukhan
2018-09-27 14:36:33 +05:30
Anton Litvinov
ad74d2a16e 8211165: License header is absent in a few J2Ddemo source code files
Reviewed-by: prr, iris
2018-09-26 18:36:55 +01:00
Kevin Walls
23d457063d 8211124: HotSpot update for vm_version.cpp to recognise updated VS2017
Reviewed-by: dholmes, lfoltan
2018-09-26 06:28:48 -07:00
Jan Lahoda
17c3d1c333 8211102: Crash with -XDfind=lambda and -source 7
Disabling analyzers that cannot run in the given source level; lambdas in standalone positions should have erroneous type rather than the recovery type; avoiding crash in Flow for broken code.

Reviewed-by: mcimadamore
2018-09-27 10:24:12 +02:00
Martin Doerr
71a67b43fb 8211097: aix: fix build after JDK-8210919
Reviewed-by: shade, mbaesken, erikj
2018-09-27 09:29:52 +02:00
Priya Lakshmi Muthuswamy
54f929e9d6 8202628: javadoc generates bad links in TestModules.java
Reviewed-by: jjg
2018-09-27 10:10:47 +05:30
Calvin Cheung
5108d2e1dd 8202282: [TESTBUG] appcds TestCommon.makeCommandLineForAppCDS() can be removed
Removed the unnecessary makeCommandLineForAppCDS() method and its usage

Reviewed-by: iklam, jiangli
2018-09-26 18:21:26 -07:00
Jesper Wilhelmsson
6d6b22c277 Added tag jdk-12+13 for changeset 511a9946f83e 2018-09-27 01:25:42 +02:00
Jonathan Gibbons
db6295f8a2 8209963: source file mode for JVM should provide a hook to locate the source file
Reviewed-by: darcy
2018-09-26 16:23:31 -07:00
Jonathan Gibbons
065fdac559 8210555: create --source --target synonyms for -source -target
Reviewed-by: hannesw
2018-09-26 15:14:17 -07:00
Jonathan Gibbons
25ca76b4f9 8211180: SourceLauncherTest.java fails in JDK12 CI on Win*
Reviewed-by: mchung, darcy
2018-09-26 14:54:38 -07:00
Ekaterina Pavlova
b6fb9fccdd 8199885: [Graal] org.graalvm.compiler.core.test.CountedLoopTest fails with "ControlFlowAnchor should never be cloned in the same graph"
Reviewed-by: kvn
2018-09-26 12:47:38 -07:00
Coleen Phillimore
a5733f6349 Merge 2018-09-26 14:56:10 -04:00
Coleen Phillimore
06a1ea846a 8210856: Move InstanceKlass DependencyContext cleaning to SystemDictionary::do_unloading()
Already walk classes in ClassLoaderData::unload so generalize to also clean nmethod dependencies.

Reviewed-by: eosterlund, dlong, vlivanov
2018-09-26 14:01:48 -04:00
Liam Miller-Cushon
9c60728a28 8211138: Missing Flag enum constants
Reviewed-by: mcimadamore, vromero
2018-09-25 21:33:51 -07:00
Lance Andersen
d20eae2d31 8211121: Remove sun.reflect.ReflectionFactory::newInstanceForSerialization
Reviewed-by: mchung, alanb, darcy, dfuchs
2018-09-26 13:56:08 -04:00
Mikael Vidstedt
9d83c060db 8210892: Deprecate TLABStats
Reviewed-by: pliden, tschatzl
2018-09-26 10:37:50 -07:00
Sergey Bylokhov
9651df7696 8210286: Drop of sun.awt.HToolkit class
Reviewed-by: dmarkov, prr
2018-09-25 17:58:53 -07:00
Phil Race
c7f8499529 8210880: Remove HPKeysym.h from JDK sources
Reviewed-by: serb, dmarkov
2018-09-25 14:44:36 -07:00
Phil Race
5e3ea1b7e7 8211125: backout fix for 8210880 which was pushed under another ID
Reviewed-by: serb
2018-09-25 14:38:35 -07:00
Laurent Bourgès
60e6552bad 8210335: Clipping problems with complex affine transforms: negative scaling factors or small scaling factors
Fixed clipping rectangle to take into account the inverse transform (scale/shear)

Reviewed-by: prr, serb
2018-09-24 21:23:37 +02:00
Phil Race
7d0d9047ac 8209548: Unused and incorrect calls to FT_Get_Char_Index
Reviewed-by: psadhukhan, kaddepalli
2018-09-24 11:49:25 -07:00
Phil Race
3a2ece353b 8210866: Remove HPKeysym.h from JDK sources
Reviewed-by: serb, dmarkov
2018-09-24 11:46:40 -07:00
Phil Race
f605407e30 Merge 2018-09-24 10:59:26 -07:00
Brent Christian
3910193204 8072130: java/lang/instrument/BootClassPath/BootClassPathTest.sh fails on Mac OSX
Reviewed-by: sherman
2018-09-24 10:41:41 -07:00
Magnus Ihse Bursie
73e93bdd5d 8211029: Have a common set of enabled warnings for all native libraries
Reviewed-by: erikj
2018-09-24 19:26:48 +02:00
Daniel D. Daugherty
77ef6a21f1 8209019: Remove tests affected by JDK-8208690 from the ProblemList
Reviewed-by: dfuchs
2018-09-24 13:05:59 -04:00
David Holmes
bc6fb26d02 8211045: [Testbug] Fix for 8144279 didn't define a test case!
Add missing file from original commit

Reviewed-by: shade, sgehwolf
2018-09-24 12:18:51 -04:00
Abdul Kolarkunnu
e6149b08de 8210994: Create test for SwingSet3 FrameDemo
Reviewed-by: serb
2018-09-24 03:25:19 -07:00
Jonathan Gibbons
cad60d14a6 8210274: Source Launcher should work with a security manager
Reviewed-by: mchung, alanb
2018-09-26 11:41:08 -07:00
Sergey Bylokhov
00e4c5b778 8210692: The "com.sun.awt.SecurityWarning" class can be dropped
Reviewed-by: prr, mullan, mchung
2018-09-22 20:31:45 -07:00
Andrew Haley
768f091086 8210972: Add comment text to C1 patching code
Reviewed-by: kvn
2018-09-20 18:29:05 +01:00
Andrew Haley
08e1f72237 Merge 2018-10-01 09:56:45 +01:00
Jiangli Zhou
061c4d7a81 8210926: vmTestbase/nsk/jvmti/scenarios/allocation/AP11/ap11t001/TestDescription.java failed with JVMTI_ERROR_INVALID_CLASS in CDS mode
Reset InstanceKlass _init_state to 'allocated' before writing out shared classes at dump time.

Reviewed-by: dholmes, coleenp
2018-10-01 00:52:37 -04:00
Mikael Vidstedt
0746fffe5c 8211291: Backout JDK-8210842 Handle JNIGlobalRefLocker.cpp
Reviewed-by: kbarrett, iignatyev, jcbeyler
2018-09-28 14:53:41 -07:00
Mikael Vidstedt
f4b9613346 8211176: Initialize ObjectMonitor eagerly
Reviewed-by: dholmes, adinn, redestad
2018-09-28 14:11:21 -07:00
Coleen Phillimore
7ef28cb2bc 8209645: Split ClassLoaderData and ClassLoaderDataGraph into separate files
Reviewed-by: iklam, stuefe
2018-09-28 16:07:39 -04:00
Bo Zhang
3a0b2d59ad 8210810: Escaped character at specific position in argument file is not handled properly
Reviewed-by: alanb
2018-09-28 13:15:01 -07:00
Jean Christophe Beyler
cc4436e2b9 8210842: Handle JNIGlobalRefLocker.cpp
Add checking for JNI calls via a new ExceptionCheckingJniEnv

Reviewed-by: sspitsyn, amenkov, dholmes, mikael
2018-09-28 13:01:28 -07:00
Gary Adams
c45eacbd27 8208473: [TESTBUG] nsk/jdb/exclude/exclude001/exclude001.java is timing out on solaris-sparc again
Reviewed-by: cjplummer, amenkov
2018-09-28 14:31:36 -04:00
Daniil Titov
57d74285b0 8163083: SocketListeningConnector does not allow invocations with port 0
Reviewed-by: sspitsyn, amenkov, gadams, jcbeyler
2018-09-28 12:04:47 -07:00
Aleksey Shipilev
af7e126572 8211268: Disable unsupported GCs for Zero
Reviewed-by: sgehwolf, erikj
2018-09-28 18:28:49 +02:00
Aleksey Shipilev
feca06a183 8211274: x86_32 build failures after JDK-8211029 (Have a common set of enabled warnings for all native libraries)
Reviewed-by: dholmes, tschatzl
2018-09-28 18:28:49 +02:00
Aleksey Shipilev
e2baf30529 8211272: x86_32 build failures after JDK-8210764 (Update avx512 implementation)
Reviewed-by: rkennke, kvn
2018-09-28 18:28:48 +02:00
Doug Lea
deb0e6503d 8207003: Miscellaneous changes imported from jsr166 CVS 2018-09
Reviewed-by: martin, chegar
2018-09-28 08:45:46 -07:00
Doug Lea
0b431957a5 8210971: Add exception handling methods to CompletionStage and CompletableFuture
Reviewed-by: martin, chegar
2018-09-28 08:45:46 -07:00
Matthias Baesken
5d3b3156e8 8211208: make AllocateHeapAt an unsupported option on AIX
Reviewed-by: shade, tschatzl
2018-09-27 17:13:07 +02:00
Aleksei Voitylov
52780f275c 8211212: ARM: -Werror=switch build failure
Reviewed-by: shade
2018-09-28 15:39:31 +03:00
Chris Hegarty
20f6faa030 8211092: test/jdk/sun/net/www/http/HttpClient/MultiThreadTest.java fails intermittently when cleaning up
Reviewed-by: dfuchs
2018-09-28 12:47:09 +01:00
Sharath Ballal
1570028352 8207745: serviceability/sa/TestJmapCore.java times out parsing a 4GB hprof file
Reviewed-by: dholmes, jgeorge
2018-09-28 14:31:58 +05:30
Roman Kennke
3f09f0f79c 8211269: Make declaration of Allocation protected in MemAllocator
Reviewed-by: shade
2018-09-28 10:57:31 +02:00
John Jiang
afe05800ac 8209546: Make sun/security/tools/keytool/autotest.sh to support macosx
Refactor autotest.sh to java test and remove standard.sh

Reviewed-by: weijun
2018-09-28 15:42:20 +08:00
Matthias Baesken
f8d007dbf0 8211149: fix potential memleak in getJavaIDFromLangID after failing SetupI18nProps call [windows]
Reviewed-by: naoto, lucy
2018-09-27 15:37:55 +02:00
Matthias Baesken
36f62aa6c0 8210964: add more ld preloading related info to hs_error file on Linux
Reviewed-by: clanger, stuefe
2018-09-28 09:20:46 +02:00
Jean Christophe Beyler
b20e2cd963 8211036: Remove the NSK_STUB macros from vmTestbase for non jvmti
Remove the NSK_STUB macros from code outside of the jvmti subfolder

Reviewed-by: iignatyev, amenkov, dholmes
2018-09-27 15:56:40 -07:00
Jim Laskey
c30dffb388 8211080: RawStringLiteralLangAPI.java test times out by default
Reviewed-by: jjg
2018-09-27 15:47:33 -03:00
Andrew Haley
08828a5a4f 8211170: AArch64: Warnings in C1 and template interpreter
Reviewed-by: adinn
2018-09-26 18:11:00 +01:00
Sergey Bylokhov
38660e9460 8170937: Swing apps are slow if displaying from a remote source to many local displays
Reviewed-by: prr, aivanov
2018-09-18 18:32:03 -07:00
Roland Westrelin
03e4400864 8210885: Convert left over loads/stores to access api
Reviewed-by: thartmann, rkennke
2018-09-18 20:49:44 +02:00
Roland Westrelin
17f301f734 8210389: C2: assert(n->outcnt() != 0 || C->top() == n || n->is_Proj()) failed: No dead instructions after post-alloc
Reviewed-by: kvn, thartmann
2018-09-18 20:41:17 +02:00
Aleksey Shipilev
2b21c73b2d 8212005: Epsilon elastic TLAB sizing may cause misalignment
Reviewed-by: rkennke, tschatzl
2018-10-11 10:42:17 +02:00
Matthias Baesken
e2d7983ab8 8211929: hotspot/share/opto/parse2.cpp compile error with gcc 7.3.1
Reviewed-by: kvn, stuefe
2018-10-10 16:56:18 +02:00
Kim Barrett
47e7b141c0 8211962: Implicit narrowing in MacOSX java.desktop jsound
Cast value to needed type.

Reviewed-by: serb
2018-10-10 23:47:36 -04:00
Peter Levart
2d7d9b8380 8152910: Get performance improvement with Stable annotation
Reviewed-by: darcy
2018-10-10 17:53:22 -07:00
Jesper Wilhelmsson
635a875123 Added tag jdk-12+15 for changeset f8626bcc1698 2018-10-11 00:43:09 +02:00
Mandy Chung
5a36050cfd 8211921: AssertionError in MethodHandles$Lookup.defineClass
Reviewed-by: alanb
2018-10-10 15:19:34 -07:00
Abdul Kolarkunnu
99ca4f3497 8210055: Enable different look and feel tests in SwingSet3 demo tests
Reviewed-by: serb
2018-10-05 05:03:15 -07:00
Sean Mullan
d9731f0c54 8191053: Provide a mechanism to make system's security manager immutable
Make System.setSecurityManager optional to support and add new disallow and allow options to the java.security.manager system property

Reviewed-by: alanb, mchung, rriggs, smarks
2018-10-10 16:25:40 -04:00
Sean Mullan
dde89f72df 8211878: Bad/broken links in docs/api/java.xml.crypto/javax/xml/crypto/dsig/Reference.html
Reviewed-by: jjg
2018-10-10 15:23:38 -04:00
Christian Tornqvist
b35e7feb5a 8212008: Use of TREAT_EXIT_CODE_1_AS_0 hide problems with jtreg Java
Reviewed-by: erikj
2018-10-10 11:47:01 -07:00
Jean Christophe Beyler
efa175f20e 8211801: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/scenarios/[A-E]
Remove the NSK_CPP_STUB macros

Reviewed-by: amenkov, sspitsyn
2018-10-10 11:20:21 -07:00
Ivan Gerasimov
3cc36e427d 8211396: Broken link in javadoc for private java.util.regex.Pattern#normalize()
Reviewed-by: jjg, sherman
2018-10-10 10:56:24 -07:00
Joe Darcy
ab0128ca51 8058202: AnnotatedType implementations don't override toString(), equals(), hashCode()
Reviewed-by: jfranck
2018-10-10 10:28:33 -07:00
Jonathan Gibbons
706a5b9558 8211952: Broken links in java.time API
Reviewed-by: lancea
2018-10-10 10:00:25 -07:00
Jean Christophe Beyler
6ca3b39823 8211950: Deprecate the check if a JVMTI collector is present assertion
Deprecate assertion that a collector is there; it is now a nop

Reviewed-by: eosterlund, phh, pliden
2018-10-10 08:26:49 -07:00
Harold Seigel
8c62c2e33a 8207689: Remove perfCounter _load_instance_class_failCounter used by deleted flag UnsyncloadClass
Delete the perfCounter

Reviewed-by: lfoltan, acorn, dholmes
2018-10-10 10:18:52 -04:00
Weijun Wang
1e887a901e 8211969: test/jdk/lib/security/CheckBlacklistedCerts.java searching for wrong paths
Reviewed-by: mullan
2018-10-10 22:13:30 +08:00
Roland Westrelin
a2d1b6b720 8211232: GraphKit::make_runtime_call() sometimes attaches wrong memory state to call
Reviewed-by: kvn
2018-09-28 14:24:22 +02:00
Pavel Rappo
a9efcea778 8212000: Verify exported symbols in java.base (libnet, libnio/ch)
Reviewed-by: alanb, chegar
2018-10-10 14:13:32 +01:00
Michihiro Horie
df92fc0954 8211908: PPC64: Enable SuperWordLoopUnrollAnalysis by default
Reviewed-by: mdoerr, goetz
2018-10-10 14:28:35 +02:00
Roman Kennke
5de31861b2 8211270: GC abstraction to get real object and headers size
Reviewed-by: shade, zgu, eosterlund
2018-10-10 10:58:48 +02:00
Roman Kennke
3085a89f13 8211279: Verify missing object equals barriers
Reviewed-by: pliden, shade, zgu
2018-10-03 15:22:16 +02:00
Ralf Schmelter
a9f9385ced 8211332: Space for stub routines (code_size2) is too small on new Skylake CPUs
Increase code_size2 for new Skylake CPUs.

Reviewed-by: kvn, stuefe, thartmann
2018-10-10 08:36:31 +02:00
Daniil Titov
f2d02897e1 8193879: Java debugger hangs on method invocation
Reviewed-by: sspitsyn, amenkov, gadams
2018-10-09 19:11:09 -07:00
David Holmes
468b69240e 8211394: CHECK_ must be used in the rhs of an assignment statement within a block
Replace "return foo(CHECK_X);" with "return foo(THREAD);"

Reviewed-by: iklam, phh, stuefe, lfoltan
2018-10-09 20:38:13 -04:00
David Holmes
8351e4db3e 8211065: Private method check in linkResolver is incorrect
Reviewed-by: acorn, lfoltan
2018-10-09 20:19:22 -04:00
Erik Joelsson
d3458328a2 8211724: Change mkdir -p to MakeDir macro where possible
Reviewed-by: ihse, asemenyuk
2018-10-09 14:57:23 -07:00
Gary Adams
a59b517d2a 8211324: Link to java.lang.ThreadGroup in JDWP spec is broken
Reviewed-by: sspitsyn, chegar, alanb
2018-10-09 07:33:15 -04:00
Jean Christophe Beyler
11da699d9e 8211905: Remove multiple casts for EM06 file
Remove multiple casts for EM06 file

Reviewed-by: sspitsyn, cjplummer
2018-10-09 13:22:19 -07:00
Jiangli Zhou
a2ad8f419f 8206009: Move CDS java heap object archiving code to heapShared.hpp and heapShared.cpp
Restructure and cleanup java heap object archiving code.

Reviewed-by: coleenp, iklam
2018-10-09 15:58:07 -04:00
Xueming Shen
4f4a2385c5 8211880: Broken links in java.util.jar
Reviewed-by: alanb, mchung, martin
2018-10-09 12:36:51 -07:00
Chris Hegarty
856f4fe28b 8211927: Add additional diagnostic information to java/net/BindException/Test.java
Reviewed-by: dfuchs
2018-10-09 20:32:24 +01:00
Alex Menkov
8891582e9f 8211292: [TEST] convert com/sun/jdi/DeferredStepTest.sh test
Reviewed-by: sspitsyn, jcbeyler
2018-10-09 12:26:29 -07:00
Roman Kennke
fe3bd4703e 8211792: Fix misplaced BarrierSet forward declarations
Reviewed-by: shade, zgu
2018-10-05 23:45:02 +02:00
Gary Adams
7b7315dbed 8201603: MonitorContendedEnter failure in nsk/jvmti/scenarios/contention/TC02/tc02t001
Reviewed-by: cjplummer
2018-10-08 14:57:07 -04:00
Goetz Lindenmaier
182a991df2 8211856: [ppc, s390] ProblemList some failing tests
Reviewed-by: kvn, mdoerr
2018-10-09 16:03:56 +02:00
Gunter Haug
a6cbbcf334 8211768: [s390] Implement JFR profiling
Reviewed-by: simonis, mdoerr
2018-10-09 15:06:27 +02:00
Claes Redestad
02a3be9920 8211859: Avoid initializing AtomicBoolean from RandomAccessFile
Reviewed-by: alanb
2018-10-09 14:30:06 +02:00
Chris Hegarty
1ac444ad87 8211902: broken link in java.net.http.WebSocket.Builder
Reviewed-by: alanb, dfuchs
2018-10-09 13:31:50 +01:00
Chris Hegarty
e61252dc27 8211920: Close server socket and cleanups in test/jdk/javax/naming/module/RunBasic.java
Reviewed-by: dfuchs
2018-10-09 11:44:00 +01:00
Andrew Haley
2db7ed1895 8211387: [Zero] atomic_copy64: Use ldrexd for atomic reads on ARMv7
Reviewed-by: dholmes, aph
2018-10-02 17:17:43 +02:00
Alan Bateman
cb3fe46b95 8211825: ModuleLayer.defineModulesWithXXX does not setup delegation when module reads automatic module
Reviewed-by: mchung
2018-10-09 07:06:32 +01:00
Jean Christophe Beyler
61f453edf7 8211782: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/[I-S]*
Remove the NSK_CPP_STUB macros

Reviewed-by: amenkov, sspitsyn
2018-10-08 19:44:44 -07:00
Kim Barrett
51be7db96f 8211804: Constant AO_UNUSED_MBZ uses left shift of negative value
Use unsigned shift.

Reviewed-by: alanb
2018-10-08 20:01:39 -04:00
Ioi Lam
2f82ed4f1d 8210388: Use hash table to store archived subgraph_info records
Reviewed-by: jiangli
2018-10-08 16:29:10 -07:00
Xueming Shen
859d376494 8211728: JarFile::versionedStream() does not filter META-INF resources in versioned stream
Reviewed-by: alanb
2018-10-08 14:14:52 -07:00
Jean Christophe Beyler
85c6642e38 8211131: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/[G-I]*
Remove the NSK_CPP_STUB macros

Reviewed-by: amenkov, sspitsyn
2018-10-08 13:56:28 -07:00
Jean Christophe Beyler
57622ed115 8211261: Remove the NSK_CPP_STUB macros from vmTestbase for jvmti/[A-G]*
Remove the NSK_CPP_STUB macros

Reviewed-by: amenkov, cjplummer
2018-10-08 13:54:43 -07:00
Jonathan Gibbons
f8d8a72a27 8211407: Bad links to non-existent entries on serialized-form page
Reviewed-by: jlahoda
2018-10-08 11:14:59 -07:00
Gary Adams
40d81d4bcc 8036026: nsk/jvmti/scenarios/capability/CM02/cm02t001 fails intermittently
Reviewed-by: cjplummer, dcubed
2018-10-08 07:18:40 -04:00
Chris Hegarty
a95d0ac2d1 8211863: Problem list test/jdk/javax/naming/module/RunBasic.java
Reviewed-by: lancea
2018-10-08 18:29:41 +01:00
Claes Redestad
d5d74f0e26 8211860: Avoid reading security properties eagerly on Manifest class initialization
Reviewed-by: mullan, alanb
2018-10-08 18:16:03 +02:00
Volker Simonis
8791ea8dc0 8211837: Creation of the default CDS Archive should depend on ENABLE_CDS
Reviewed-by: shade, goetz, mdoerr, iklam
2018-10-08 17:41:44 +02:00
Vicente Romero
1ed6b88a99 8209407: VerifyError is thrown for inner class with lambda
Reviewed-by: mcimadamore
2018-10-08 06:52:41 -07:00
Erik Österlund
b658954d7e 8211718: Supporting multiple concurrent OopStorage iterators
Reviewed-by: pliden, kbarrett
2018-10-08 14:48:12 +02:00
Roland Westrelin
90d6bbd01a 8211776: 8210887 broke arraycopy optimization when ZGC is enabled
Reviewed-by: kvn
2018-10-05 16:47:27 +02:00
Weijun Wang
5cf91fc60e 8210395: Add doc to SecurityTools.java
Reviewed-by: mullan
2018-10-08 13:25:39 +08:00
Jaikiran Pai
4cd9401815 8211765: JarFile constructor throws undocumented exception
Reviewed-by: lancea, sherman, alanb, chegar
2018-10-07 14:35:00 -04:00
Doug Simon
548eb6860a 8208686: [AOT] JVMTI ResourceExhausted event repeated for same allocation
Reviewed-by: never, kvn, sspitsyn
2018-10-05 20:03:14 +02:00
Vaibhav Choudhary
2223e083ba 8210376: [TESTBUG] @requires vm.cds should be replaced by @requires vm.cds.archived.java.heap and documentation is required for vm.gc==null
@requires vm.cds should be replaced by @requires vm.cds.archived.java.heap and documentation is required for vm.gc==null

Reviewed-by: iklam, jiangli
2018-10-05 18:25:15 +01:00
Roman Kennke
e77e2d1df8 8211219: Type inconsistency in LIRGenerator::atomic_cmpxchg(..)
Reviewed-by: eosterlund, iveresov
2018-09-27 13:56:09 +02:00
Jiangli Zhou
57b516dd0e 8202951: Implementation of JEP 341: Default CDS Archives
8210592: Convert CDS-mode test sets in tier5 and tier6 to non-CDS-mode tests
8209739: [TESTBUG] javax/imageio/plugins/png/ItxtUtf8Test.java fails with OutOfMemoryError when running in CDS mode

Generate the default CDS archive at JDK build time.

Co-authored-by: Erik Joelsson <erik.joelsson@oracle.com>
Co-authored-by: Calvin Cheung <calvin.cheung@oracle.com>
Reviewed-by: erikj, ihse, dholmes, iklam, ccheung, mseledtsov
2018-10-05 18:56:11 -04:00
Vladimir Kozlov
ec0cbd58f4 8206963: [AOT] bug with multiple class loaders
AOT should not support custom class loaders.

Reviewed-by: dlong, iveresov
2018-10-05 15:46:47 -07:00
Brian Burkhalter
9a1fbb653c 8211794: Remove jdk/java/nio/channels/Selector/RacyDeregister.java from problem list
Reviewed-by: bchristi
2018-10-05 15:37:46 -07:00
Jean Christophe Beyler
a87e8e52ea 8211123: GC Metaspace printing after full gc
Move GC printing to after usage is calculated

Co-authored-by: Jiapeng Li <nijiaben@perfma.com>
Reviewed-by: tschatzl, stuefe
2018-10-05 13:38:03 -07:00
Kim Barrett
cd95f5a933 8211296: Remove HotSpot deprecation warning suppression for Mac/clang
Removed deprecation warning suppression, fixed uses of deprecated functions.

Reviewed-by: dholmes, mikael
2018-10-05 14:28:44 -04:00
Coleen Phillimore
432605be5c 8209889: RedefineStress tests crash
Create CompileTaskWrapper before potential safepoint

Reviewed-by: mdoerr, dlong
2018-10-05 09:15:52 -04:00
Harold Seigel
d872314ef3 8211438: [Testbug] runtime/XCheckJniJsig/XCheckJSig.java looks for libjsig in wrong location
Remove the os_arch string and JRE path from the test.  Also add JNIEXPORT to libjsig symbols so dlsym can find them

Reviewed-by: dholmes, lfoltan
2018-10-05 08:50:49 -04:00
Michael McMahon
e8f90125d2 8211420: com.sun.net.httpserver.HttpServer returns Content-length header for 204 response code
Reviewed-by: chegar
2018-10-05 11:28:23 +01:00
Robin Westberg
a5c9fa14f1 8210459: Add support for generating compile_commands.json
Reviewed-by: erikj, ihse
2018-10-05 07:54:28 +02:00
Naoto Sato
271e3be381 8211398: Square character support for the Japanese new era
Reviewed-by: rriggs
2018-10-04 14:12:34 -07:00
Mandy Chung
46f0fa8c20 8206240: java.lang.Class.newInstance() is causing caller to leak
Reviewed-by: alanb
2018-10-04 13:02:58 -07:00
Vicente Romero
609d90e98a 8210789: langtools/tools/javac/T8152616.java missing @modules
Reviewed-by: jjg
2018-10-04 10:19:01 -07:00
Erik Joelsson
2c88ce1b89 8211677: Java resource copy and clean should use MakeTargetDir macro
Reviewed-by: tbell, ihse
2018-10-04 09:43:49 -07:00
Prasanta Sadhukhan
1b25f7242c 8191178: [macos] Problem with input of yen symbol
Reviewed-by: dmarkov, mhalder
2018-09-18 18:12:40 +05:30
Liam Miller-Cushon
d9095c4a72 8198945: Invalid RuntimeVisibleTypeAnnotations for annotation on anonymous class type parameter
Reviewed-by: wmdietl, abuckley, martin
2018-09-17 11:09:43 -07:00
Joe Darcy
566bfeb438 8212880: Cannot access ftp: site for fdlibm.tar
Reviewed-by: jjg, lancea, bpb
2018-10-24 15:45:09 -07:00
Serguei Spitsyn
4904980886 8024368: private methods are allocated vtable slots
Stop allocating vtable slots for  private methods

Reviewed-by: dholmes, acorn, lfoltan
2018-10-24 13:11:54 -07:00
Ekaterina Pavlova
8636d3f9a5 8212877: Restore JTREG_VERBOSE value for mach5 testing
Reviewed-by: dholmes
2018-10-24 09:56:03 -07:00
Daniel D. Daugherty
ad9de2a83a Merge 2018-10-24 11:05:22 -04:00
Daniel D. Daugherty
daf4ad38ab 8212220: add code to verify results to metaspace/stressDictionary/StressDictionary.java
Also change the test's default timeout to 5 minutes.

Reviewed-by: dholmes, stuefe
2018-10-24 11:04:25 -04:00
Eric Caspole
5d9ffc2d03 8212706: nmethod jvmci_installed_code_name need to be XML escaped
Call text instead of print to escape chars properly

Reviewed-by: thartmann
2018-10-24 11:02:55 -04:00
Thomas Schatzl
3a48e68b1a 8212753: Improve oopDesc::forward_to_atomic
Avoid multiple unnecessary reloads of the mark oop in oopDesc::forward_to_atomic

Reviewed-by: kbarrett, mdoerr
2018-10-24 16:22:34 +02:00
Phil Race
d92c6042fe Merge 2018-09-17 09:36:33 -07:00
Jean Christophe Beyler
fddc4b8ccb 8210726: Fix up a few minor nits forgotten by JDK-8210665
Minor changes to 4 tests to make one-liners

Reviewed-by: cjplummer, iignatyev, sspitsyn
2018-09-17 09:07:40 -07:00
Robert Field
f4e1502e03 8210596: jshell does not support raw string literals
Reviewed-by: jlahoda, jlaskey
2018-09-17 08:37:47 -07:00
Severin Gehwolf
b1375858c6 8210416: [linux] Poor StrictMath performance due to non-optimized compilation
Compile fdlibm with -O2 -ffp-contract=off on gcc/clang arches.

Reviewed-by: aph, erikj, dholmes, darcy, ihse
2018-09-17 10:53:56 +02:00
Jan Lahoda
ee0ac147a2 8193561: Cyclic hierarchy causes a NullPointerException when setting DEFAULT flag
When marking interface as having default methods, use .owner as it is always defined.

Reviewed-by: mcimadamore
2018-09-17 11:49:20 +02:00
Rachna Goel
36873c3c7b 8210490: TimeZone.getDisplayName given Locale.US doesn't always honor the Locale
Specified locale for formatting..

Reviewed-by: naoto
2018-09-17 14:16:31 +05:30
Phil Race
98221ae93f 8210766: Remove obsolete qualified export sun.net.www to java.desktop
Reviewed-by: mchung
2018-09-15 14:03:07 -07:00
Severin Gehwolf
6b8fd447cc 8210647: libsaproc is being compiled without optimization
Compile with high optimization instead of none.

Reviewed-by: erikj, jgeorge, sballal
2018-09-14 14:47:50 +02:00
Weijun Wang
3cbb33f0e9 8210736: jdk/javax/xml/crypto/dsig/GenerationTests.java slow on linux
Reviewed-by: alanb
2018-09-17 14:52:44 +08:00
Chris Yin
46159b4d04 8210695: Create test to cover JDK-8205330 InitialDirContext ctor sometimes throws NPE if the server has sent a disconnection
Reviewed-by: vtewari, dfuchs, chegar
2018-09-17 13:49:55 +08:00
Ivan Gerasimov
27e26fbdd7 8210786: Typo s/overriden/overridden/ in several places
Reviewed-by: weijun
2018-09-15 22:02:08 -07:00
Ivan Gerasimov
a07102bc7f 8210787: Object.wait(long, int) throws inappropriate IllegalArgumentException
Reviewed-by: martin, rriggs
2018-09-15 13:53:43 -07:00
Bernard Blaser
8ef50b1dc3 8183548: Comma-expressions shouldn't use any temporary variable
Uses enhanced let-expressions allowing multiple statements

Reviewed-by: vromero
2018-09-15 22:16:16 +02:00
Mikael Vidstedt
12bac3a02d 8210676: Remove some unused Label variables
Reviewed-by: kvn, dholmes, njian, aph
2018-09-14 22:35:44 -07:00
Jaikiran Pai
2e5e01b53c 8210785: Trivial typo fix in X509ExtendedKeyManager javadoc
Reviewed-by: xuelei
2018-09-14 20:30:28 -07:00
Igor Ignatyev
8b28ad6efe 8210732: remove jdk.testlibrary.Utils
Reviewed-by: alanb, jcbeyler
2018-09-14 14:02:57 -07:00
Gustavo Romero
a6d0d07957 8209972: [GRAAL] Don't run RTM tests with Graal
Reviewed-by: kvn, goetz
2018-09-14 15:32:22 -04:00
Man Cao
05ed45cef1 8210724: Change the verbosity threshold of logging for [oopstorage,ref]
Improve logging verbosity levels in oopStorage.cpp

Reviewed-by: kbarrett, sjohanss
2018-09-14 08:48:36 -07:00
Roman Kennke
0055586b61 8210752: Remaining explicit barriers for C2
Reviewed-by: roland, shade
2018-09-14 14:43:40 +02:00
Severin Gehwolf
ba0203b2d5 8210761: libjsig is being compiled without optimization
Reviewed-by: erikj, ihse
2018-09-21 16:58:36 +02:00
Aleksei Voitylov
94679309a4 8209697: ARM: Explicit barriers for C1/assembler
Reviewed-by: dsamersoff
2018-09-24 16:54:42 +03:00
Aleksei Voitylov
6c596e1c31 8209695: ARM: Explicit barriers for interpreter
Reviewed-by: dsamersoff
2018-09-24 16:52:12 +03:00
Aleksei Voitylov
973f70c6d2 8210466: Modularize allocations in assembler
Reviewed-by: rkennke, dsamersoff
2018-09-24 16:44:24 +03:00
Aleksei Voitylov
5fa8dfe0f8 8210465: ARM: Object equals abstraction for BarrierSetAssembler
Reviewed-by: rkennke, dsamersoff
2018-09-24 16:39:02 +03:00
Jamil Nimeh
fa1ced20b5 8210918: Add test to exercise server-side client hello processing
Reviewed-by: xuelei
2018-09-24 00:13:02 -07:00
Gary Adams
db61465761 8208471: nsk/jdb/unwatch/unwatch002/unwatch002.java fails with "Prompt is not received during 300200 milliseconds"
Reviewed-by: cjplummer, amenkov
2018-09-21 08:13:55 -04:00
Chris Plummer
7dd0aaa430 8210987: Extra newlines on Windows when running nsk jdb tests
Fix skipping over newlines

Reviewed-by: dholmes, jcbeyler, amenkov
2018-09-22 14:12:48 -07:00
Jonathan Gibbons
8edf8e2b03 8210275: Source Launcher should fail if --source is used without a source file
Reviewed-by: mchung, alanb, mcimadamore
2018-09-21 15:38:43 -07:00
Igor Ignatyev
82ed2a5fc0 8210894: remove jdk/testlibrary/Asserts
Reviewed-by: serb
2018-09-21 14:50:06 -07:00
Magnus Ihse Bursie
09a967ab81 8210988: Improved handling of compiler warnings in the build
Reviewed-by: erikj
2018-09-21 21:35:12 +02:00
Tim Bell
60466e5741 8190985: .jcheck/conf files contain 'project=jdk10'
Reviewed-by: mr, iris, erikj
2018-09-21 12:08:13 -07:00
Alex Menkov
450675ba81 8210760: [TEST] rewrite com/sun/jdi shell tests to java version - step4
Reviewed-by: jcbeyler, sspitsyn, cjplummer
2018-09-21 11:28:14 -07:00
Alex Menkov
b0a7fa474f 8210725: com/sun/jdi/RedefineClearBreakpoint.java fails with waitForPrompt timed out after 60 seconds
8210748: [TESTBUG] lib.jdb.Jdb.waitForPrompt() should clarify which output is the pending reply after a timeout

Reviewed-by: jcbeyler, gadams, sspitsyn
2018-09-21 10:18:12 -07:00
Thomas Schatzl
159a4de4c8 8210557: G1 next bitmap verification at the end of concurrent mark sometimes fails
Removed unnecessary verification that can cause spurious false alarm.

Reviewed-by: sjohanss, kbarrett
2018-09-21 15:11:09 +02:00
Matthias Baesken
2c33f148bb 8210961: [aix] enhance list of environment variables reported in error log file on AIX
Reviewed-by: clanger, simonis
2018-09-20 13:59:39 +02:00
Jan Lahoda
3f43390b8b 8209058: Cannot find annotation method 'value()' in type 'Profile+Annotation'
Correct detection of the Profile+Annotation synthetic annotation for classes that are not from the java.base module.

Reviewed-by: jjg
2018-09-21 12:29:46 +02:00
Jan Lahoda
c1033edca8 8209865: Incorrect 'multiple elements' notes with Elements#getTypeElement and --release
Changing ct.sym to be module-path oriented, rather than class-path oriented.

Reviewed-by: jjg
2018-09-21 12:29:31 +02:00
Chris Yin
33c9c89bf0 8169246: java/net/DatagramSocket/ReportSocketClosed.java fails intermittently with BindException
Reviewed-by: chegar
2018-09-21 16:13:49 +08:00
Chris Yin
f367eb8965 8199931: java/net/MulticastSocket/UnreferencedMulticastSockets.java fails with "incorrect data received"
Reviewed-by: chegar
2018-09-21 15:49:59 +08:00
Xue-Lei Andrew Fan
89a4157528 8210974: No extensions debug log for ClientHello
Reviewed-by: jnimeh, wetmore
2018-09-20 14:19:53 -07:00
Manajit Halder
565df5aa5b 8206392: [macosx] Cycling through windows (JFrames) does not work with keyboard shortcut
Reviewed-by: dmarkov, kaddepalli
2018-09-14 17:53:58 +05:30
Phil Race
b1b0ceb210 7017058: Malayalam glyph substitution is failing for Malayalam with Windows Kartika font
8191130: Sinhala text rendering problem with C+VIRAMA+ZWJ+RA/YA+V
8195836: opentype:Bengali: "Khanda Ta" shaping issue with U+09A4 TA, U+09CD virama, U+200D ZWJ

Reviewed-by: serb, psadhukhan
2018-09-13 11:31:59 -07:00
Phil Race
0bed87dccd Merge 2018-09-13 10:54:11 -07:00
Jiangli Zhou
989d55d3ed 8210193: [TESTBUG]gc/g1/mixedgc/TestOldGenCollectionUsage.java fails intermittently with OutOfMemoryError in CDS mode
Increase java heap size in TestOldGenCollectionUsage. Catch OOM in tests.

Reviewed-by: phh, iklam
2018-09-13 13:30:07 -04:00
Jim Laskey
734a258afb 8210674: Need to add examples for use of javac properties introduced by Raw String Literals
Reviewed-by: vromero, jjg
2018-09-13 14:15:27 -03:00
Gary Adams
18199b887f 8208468: [TESTBUG] nsk/jdb/locals/locals002: fails with "Prompt is not received during ... milliseconds"
Reviewed-by: cjplummer, amenkov
2018-09-13 07:46:41 -04:00
Calvin Cheung
fcc414655b 8190737: use unicode version of the canonicalize() function to handle long path on windows
Also calling CreateFileW in zip_util.c to handle long path

Reviewed-by: sherman, iklam
2018-09-14 11:17:25 -07:00
Michael McMahon
b5fb6b3566 8210311: IllegalArgumentException in CookieManager - Comparison method violates its general contract
Reviewed-by: chegar, dfuchs
2018-09-13 12:07:01 +01:00
Magnus Ihse Bursie
b395d380e8 8210704: Remove dead build tools
Reviewed-by: alanb
2018-09-13 12:41:42 +02:00
Igor Ignatyev
ebc04911eb 8210699: Problem list tests which times out in Xcomp mode
Reviewed-by: kvn
2018-09-12 21:56:59 -07:00
Roland Westrelin
04c961659f 8210390: C2 still crashes with "assert(mode == ControlAroundStripMined && use == sfpt) failed: missed a node"
Reviewed-by: thartmann, kvn
2018-09-12 16:38:13 +02:00
Vicente Romero
29fec64583 8209022: Missing checkcast when casting to type parameter bounded by intersection type
Reviewed-by: mcimadamore
2018-09-20 12:49:58 -07:00
Aleksey Shipilev
1194d162cb 8210963: Build failures after "8210829: Modularize allocations in C2"
Reviewed-by: rkennke, thartmann
2018-09-20 21:14:38 +02:00
Magnus Ihse Bursie
aa16ed8006 8210931: JLI and launchers normalization and cleanup
Reviewed-by: alanb, erikj
2018-09-20 21:05:00 +02:00
Magnus Ihse Bursie
4c400d2372 8210962: Deprecate jdk-variant
Reviewed-by: shade, erikj
2018-09-20 20:54:19 +02:00
Ioi Lam
6c59cb232f 8210875: Refactor CompactHashtable
Reviewed-by: ccheung, jiangli
2018-09-18 21:47:14 -07:00
Magnus Ihse Bursie
a32f8e382d 8210960: Allow --with-boot-jdk-jvmargs to work during configure
Reviewed-by: erikj
2018-09-20 18:39:53 +02:00
Magnus Ihse Bursie
02fe542c3f 8210941: Stop filtering out -xregs=no%appl for libsunec
Reviewed-by: erikj
2018-09-20 18:38:34 +02:00
Magnus Ihse Bursie
854798f378 8210944: Stop replacing -MD with -MT in libwindowsaccessbridge
Reviewed-by: erikj
2018-09-20 18:37:25 +02:00
Magnus Ihse Bursie
aeef5fba0b 8210949: Stop filtering out -xc99=%none for liblcms
Reviewed-by: erikj
2018-09-20 18:33:19 +02:00
Per Lidén
62ecb73e35 8210883: ZGC: Parallel retire/resize/remap of TLABs
Reviewed-by: eosterlund
2018-09-20 14:04:44 +02:00
Per Lidén
c0d0cbc4f1 8210857: Allow retiring TLABs and collecting statistics in parallel
Reviewed-by: sjohanss, eosterlund
2018-09-20 14:04:43 +02:00
Coleen Phillimore
92575fc3f0 8202201: All oop stores in the x64 interpreter are treated as volatile when using G1
Ran out of registers, generated volatile and non-volatile branches.

Reviewed-by: eosterlund, dholmes
2018-09-20 08:11:21 -04:00
Patric Hedlin
b9c5932fdd 8210284: "assert((av & 0x00000001) == 0) failed: unsupported V8" on Solaris 11.4
Sanity checks on V8 legacy properties removed.

Reviewed-by: neliasso, eosterlund, kvn
2018-09-12 14:08:15 +02:00
Magnus Ihse Bursie
481a045635 8210920: Native C++ tests are not using CXXFLAGS
Reviewed-by: tbell, erikj
2018-09-20 08:59:03 +02:00
Kim Barrett
ea9331f871 8210889: Some service thread cleanups can be starved
Do all available work on each iteration.

Reviewed-by: pliden, tschatzl, coleenp
2018-09-19 20:07:02 -04:00
Jamil Nimeh
a24c991cd3 8210846: TLSv.1.3 interop problems with OpenSSL 1.1.1 when used on the client side with mutual auth
Reviewed-by: wetmore
2018-09-19 16:07:03 -07:00
Magnus Ihse Bursie
fe67f09af3 8210924: Remove PACKAGE_PATH
Reviewed-by: tbell
2018-09-20 00:19:46 +02:00
Jesper Wilhelmsson
3c7b577a89 Added tag jdk-12+12 for changeset 15094d12a632 2018-09-20 00:16:23 +02:00
Zhengyu Gu
cf8469cceb 8210879: ClassLoaderStatsClosure does raw oop comparison
Uses oopDesc::equals() for comparing oop equality

Reviewed-by: shade
2018-09-19 16:51:22 -04:00
Magnus Ihse Bursie
3fd4c462cb 8210919: Remove statically linked libjli on Windows
Reviewed-by: erikj
2018-09-19 22:42:34 +02:00
Coleen Phillimore
fce43c0c36 8198717: Remove compute_optional_offset
Remove optional_offset computation and related unused code from javaClasses for reflection.

Reviewed-by: redestad, lfoltan
2018-09-19 15:25:05 -04:00
Roman Kennke
8ce9db9ed5 8210829: Modularize allocations in C2
Reviewed-by: kvn, roland
2018-09-19 21:31:33 +02:00
Arthur Eubanks
977a178e0c 8209817: stack is executable when building with Clang on Linux
Reviewed-by: dholmes, martin, mikael, ihse
2018-09-19 10:51:06 -07:00
Per Lidén
ebfb84c1fe 8210884: ZGC: Remove insertion of filler objects
Reviewed-by: eosterlund
2018-09-19 19:12:20 +02:00
Per Lidén
85e31a838e 8210881: ZGC: Introduce ZRootsIteratorClosure
Reviewed-by: eosterlund
2018-09-19 19:12:18 +02:00
Mikael Vidstedt
a69f014ad7 8210912: Build error in src/jdk.crypto.cryptoki/share/native/libj2pkcs11/p11_convert.c after JDK-8029661
Reviewed-by: mullan
2018-09-19 09:24:40 -07:00
Per Lidén
a8703f9803 8210713: Let CollectedHeap::ensure_parsability() take care of TLAB statistics gathering
Reviewed-by: eosterlund, sjohanss
2018-09-19 14:09:11 +02:00
Martin Balao
aafb2b0474 8029661: Support TLS v1.2 algorithm in SunPKCS11 provider
TLS v1.2 algorithms for key and MAC derivation added to SunPKCS11 crypto provider.

Reviewed-by: valeriep
2018-09-12 13:09:51 +02:00
Jan Lahoda
52ba129b0a 8207954: Data for --release 11
Adding support for --release 11

Reviewed-by: erikj, ihse, jjg
2018-09-19 10:50:25 +02:00
Alan Bateman
9c70e26c14 8210496: Improve filtering for classes with security sensitive fields
Reviewed-by: plevart, mchung
2018-09-19 08:49:07 +01:00
Priya Lakshmi Muthuswamy
a17816f881 8210047: some pages contain content outside of landmark region
Reviewed-by: jjg
2018-09-19 12:14:53 +05:30
Ioi Lam
1619cbd14b 8210864: Reduce the use of metaspaceShared.hpp
Reviewed-by: coleenp, lfoltan
2018-09-18 21:46:17 -07:00
Xueming Shen
f0108ea40c 8210899: (zipfs) ZipFileSystem.EntryOutputStreamCRC32 mistakenly set the crc32 value into size field
Reviewed-by: bpb
2018-09-18 19:44:27 -07:00
Per Lidén
4aa926a9eb 8210753: Make ThreadLocalAllocBuffer::resize() public
Reviewed-by: eosterlund, jcbeyler
2018-09-18 22:46:35 +02:00
Coleen Phillimore
a3931a76f6 8210861: Move assert to help diagnose rare RedefineStress crash
Assert that Method being marked on stack hasn't been missed by previous metadata walk

Reviewed-by: lfoltan
2018-09-18 16:11:36 -04:00
Doug Simon
d31e1ca5a4 8210793: [JVMCI] AllocateCompileIdTest.java failed to find DiagnosticCommand.class
Reviewed-by: thartmann, kvn
2018-09-18 22:32:25 +02:00
Joe Wang
d6dc55de47 8210874: Test for JDK-8209615
Reviewed-by: lancea
2018-09-18 13:31:30 -07:00
Brian Burkhalter
29a20e13c4 8210817: Minor typo in java.nio.file.attribute package summary
Reviewed-by: dfuchs, alanb
2018-09-18 13:18:54 -07:00
Naoto Sato
e71557a2d9 8209880: tzdb.dat is not reproducibly built
Reviewed-by: erikj, rriggs
2018-09-18 12:42:40 -07:00
Jini George
794a0e072d 8210836: Build fails with warn_unused_result in openjdk/src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c
Read in and process the return value of pread() while dealing with the PT_INTERP segment

Reviewed-by: stuefe, jcbeyler
2018-09-18 23:20:17 +05:30
Xueming Shen
196c20c0d1 8034802: (zipfs) newFileSystem throws UOE when the zip file is located in a custom file system
Reviewed-by: xiaofeya, clanger
2018-09-18 10:43:01 -07:00
Joe Wang
9ed646a020 8207760: SAXException: Invalid UTF-16 surrogate detected: d83c ?
Reviewed-by: lancea, dfuchs
2018-09-18 09:44:20 -07:00
Jiangli Zhou
b6180e668e 8210237: [TESTBUG]gc/stress/TestStressIHOPMultiThread.java fails with 'Unexpected exit from test [exit code: 1]' in CDS mode
Fix TestStressIHOPMultiThread to handle possible OutOfMemoryError.

Reviewed-by: ccheung, gziemski
2018-09-18 11:55:33 -04:00
Coleen Phillimore
cba1e9458b 8203466: intermittent crash at jdk.internal.misc.Unsafe::getObjectVolatile (native)
Store rsi, rdi on thread local memory, store r15 in r9, for the stubs that have gc barriers

Reviewed-by: dlong, eosterlund
2018-09-18 08:27:01 -04:00
Magnus Ihse Bursie
165a8b22b4 8210729: Clean up macosx static library handling
Reviewed-by: erikj
2018-09-18 13:32:40 +02:00
Matthias Baesken
be56cc5bf3 8207768: Improve exception messages during manifest parsing of jar archives
Reviewed-by: clanger, mullan, weijun
2018-09-12 11:13:09 +02:00
Matthias Baesken
19ca9280a6 8211146: fix problematic elif-tests after recent gcc warning changes Werror=undef
Reviewed-by: stuefe, clanger, dholmes, chegar, alanb
2018-09-26 14:28:37 +02:00
Leo Korinth
b31408a667 8196341: Add JFR events for parallel phases of G1
Reviewed-by: tschatzl, sangheki
2018-09-21 18:57:18 +02:00
Igor Ignatyev
ffe7832042 8211134: problem list compiler/whitebox/ForceNMethodSweepTest.java
Reviewed-by: kvn
2018-09-25 18:26:46 -07:00
Pengfei Li
f10ce48bc6 8210413: AArch64: Optimize div/rem by constant in C1
Remove div-by-zero check for non-zero divisor and generate cheap instructions if divisor is power-of-2

Reviewed-by: aph
2018-09-26 06:26:54 +08:00
Naoto Sato
ff3f48d69f 8210633: Cannot parse JapaneseDate string with DateTimeFormatterBuilder Mapped-values
Reviewed-by: scolebourne, rriggs
2018-09-25 13:57:24 -07:00
Joe Darcy
9d95755584 8211127: TestNewLanguageFeatures.java fails after JDK-8173730
Reviewed-by: jjg
2018-09-25 13:31:51 -07:00
Joe Darcy
ce3ef2bc2c 8173730: Stop including enhanced for-loop tip for enum values() method
Reviewed-by: jjg
2018-09-25 11:31:55 -07:00
Jonathan Gibbons
59fd35292e 8210839: Improve interaction between source launcher and classpath
Reviewed-by: alanb, mchung
2018-09-25 10:30:32 -07:00
Jean Christophe Beyler
64099fc1cc 8210689: Remove the multi-line old C style for string literals
Remove the multi-line old C style and prefer C++ multi-line

Reviewed-by: amenkov, cjplummer
2018-09-25 09:34:51 -07:00
Daniel D. Daugherty
9af302152c 8211103: ProblemList runtime/XCheckJniJsig/XCheckJSig.java on MacOS X
Reviewed-by: mikael, dholmes
2018-09-25 11:31:55 -04:00
Roman Kennke
001dbe273b 8211061: Tests fail with assert(VM_Version::supports_sse4_1()) on ThreadRipper CPU
Reviewed-by: thartmann, roland
2018-09-25 16:41:25 +02:00
Chris Hegarty
b1cb88da26 8211099: ProblemList two networking tests until jtreg b14 is promoted
Reviewed-by: alanb
2018-09-25 15:35:31 +01:00
Andrey Petushkov
f32e401b0d 8211064: [AArch64] Interpreter and c1 don't correctly handle jboolean results in native calls
Reviewed-by: aph
2018-09-24 18:19:46 +01:00
Roman Kennke
c87e7672a6 8132849: Increased stop time in cleanup phase because of single-threaded walk of thread stacks in NMethodSweeper::mark_active_nmethods()
Reviewed-by: eosterlund, zgu, thartmann
2018-09-24 18:44:39 +02:00
Tagir Valeev
7c9ab50d06 8205461: Create Collector which merges results of two other collectors
Reviewed-by: briangoetz, smarks, plevart
2018-09-25 14:23:37 +02:00
Pengfei Li
dd4961b5aa 8210152: Optimize integer divisible by power-of-2 check
Integer conditional negation operation before zero check is eliminated

Reviewed-by: kvn, thartmann
2018-09-25 14:16:33 +02:00
Priya Lakshmi Muthuswamy
f8ba78868d 8202462: {@index} may cause duplicate labels
Reviewed-by: jjg
2018-09-25 13:58:54 +05:30
Priya Lakshmi Muthuswamy
4b47d2c9e7 8205593: Javadoc -link makes broken links if module name matches package name
Reviewed-by: jjg
2018-09-25 12:36:45 +05:30
Mikael Vidstedt
25295df059 8210848: Obsolete SyncKnobs
Reviewed-by: redestad, coleenp, dholmes, dcubed
2018-09-24 22:12:07 -07:00
Frank Yuan
3edf95fc44 8210934: Move sun/net/www/protocol/http/GetErrorStream.java to OpenJDK
Repalce internet website dependency with a built-in http server

Reviewed-by: chegar
2018-09-25 11:24:59 +08:00
Dan Zhou
5e8e18c05d 8210443: Migrate Locale matching tests to JDK Repo
Reviewed-by: naoto
2018-09-25 11:18:36 +08:00
Sandhya Viswanathan
092fe55fb1 8210764: Update avx512 implementation
Reviewed-by: kvn
2018-09-24 16:37:28 -07:00
Erik Joelsson
e5b9edac53 8211037: Load jib jars dynamically from JibArtifactManager
Reviewed-by: ihse
2018-09-24 13:51:22 -07:00
Magnus Ihse Bursie
6d9cf91bf0 8210705: Stop exporting all symbols on macosx
Reviewed-by: erikj
2018-09-24 20:45:06 +02:00
Vikrant Agarwal
4508402c6e 8210052: Enable testing for all the available look and feels in SwingSet3 demo tests
Reviewed-by: shurailine, serb
2018-09-12 11:51:39 +05:30
Abdul Kolarkunnu
d4612426ce 8210056: Enable different look and feel tests in SwingSet3 demo test TextFieldDemoTest
Reviewed-by: serb
2018-09-11 22:16:47 -07:00
Roger Riggs
71b9664abb 8098798: Thread.join(ms) on Linux still affected by changes to the time-of-day clock
8210004: Thread.sleep(millis, nanos) timeout returns early

Reviewed-by: martin, igerasim
2018-09-14 12:53:07 -04:00
Coleen Phillimore
bad4a92e55 8210559: ClassLoaderData Symbols can leak
Unrefcount the symbol names when the CLD is destroyed

Reviewed-by: lfoltan, jiangli, iklam
2018-09-14 12:10:28 -04:00
Brian Burkhalter
b16e5584ab 8210741: Typo in Java API documentation of java.nio.file.Paths
Reviewed-by: alanb, rriggs
2018-09-14 09:00:22 -07:00
Alan Bateman
73cda6e99e 8208780: (se) test SelectWithConsumer.testReadableAndWriteable(): failure
Reviewed-by: bpb
2018-09-14 16:56:09 +01:00
Per Lidén
0f8cbbc54c 8210714: ZGC: ZWeakRootsIterator should no longer call reset/finish_dead_counter()
Reviewed-by: eosterlund
2018-09-14 14:44:11 +02:00
Per Lidén
26af771191 8210711: Remove unused offset getters in ThreadLocalAllocBuffer
Reviewed-by: rkennke, tschatzl, mdoerr
2018-09-14 14:44:11 +02:00
Per Lidén
97f10c27d8 8210710: Rename ThreadLocalAllocBuffer::myThread() to thread()
Reviewed-by: rkennke, tschatzl
2018-09-14 14:44:11 +02:00
Per Lidén
fd2acd9284 8209163: SA: Show Object Histogram asserts with ZGC
Reviewed-by: ysuenaga, jcbeyler
2018-09-14 14:44:11 +02:00
Hannes Wallnöfer
9a9df3cd76 8209914: javadoc search sometimes generates bad URIs
Reviewed-by: jjg
2018-09-14 14:45:31 +02:00
Dmitrij Pochepko
8eb4ba001c 8210461: AArch64: Math.cos intrinsic gives incorrect results
Reviewed-by: aph
2018-09-14 14:24:00 +03:00
Severin Gehwolf
ee43c985d4 8210703: vmStructs.cpp compiled with -O0
Reviewed-by: erikj, ihse
2018-09-13 11:07:40 +02:00
Magnus Ihse Bursie
99eee041ba 8210731: PropertiesParser does not produce reproducible output
Reviewed-by: mchung, jjg, erikj
2018-09-14 09:16:51 +02:00
Igor Veresov
acb7acc64f 8210478: Update Graal
Reviewed-by: kvn
2018-09-13 22:45:12 -07:00
Amy Lu
07392d976a 8209772: Refactor shell test java/util/ServiceLoader/basic/basic.sh to java
Reviewed-by: alanb
2018-09-14 13:18:52 +08:00
Liam Miller-Cushon
8b3c1810d2 8193037: package-info annotations are not reported when annotation processing is enabled
Reviewed-by: jjg
2018-09-13 15:29:44 -07:00
Xue-Lei Andrew Fan
5de8b5c59a 8209916: NPE in SupportedGroupsExtension
Reviewed-by: jnimeh, wetmore
2018-09-13 17:11:04 -07:00
Gary Adams
f2b9a3e5b9 8210252: com/sun/jdi/DebuggerThreadTest.java fails with NPE
Reviewed-by: cjplummer, sspitsyn
2018-09-13 07:54:38 -04:00
Vladimir Kozlov
7f806d6abd 8210220: [AOT] jdwp test cases are failing with error # ERROR: TEST FAILED: Cought IOException while receiving event packet
Don't register AOT method if corresponding java method has breakpoints.

Reviewed-by: dlong
2018-09-13 15:27:21 -07:00
Naoto Sato
009cd15a1b 8209167: Use CLDR's time zone mappings for Windows
Reviewed-by: erikj, rriggs, ihse
2018-09-13 13:41:17 -07:00
Jean Christophe Beyler
85b57de9ce 8210665: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[R-U] tests
Remove JNI_ENV and JVMTI_ENV macros from jvmti/[R-U] tests

Reviewed-by: cjplummer, sspitsyn
2018-09-13 13:03:50 -07:00
Magnus Ihse Bursie
26ff7d58db 8207264: solaris-sparcv9-cmp-baseline fails
Reviewed-by: erikj, prr
2018-09-13 21:14:04 +02:00
Magnus Ihse Bursie
c611ad6fb9 8210702: Remove dtrace mapfiles
Reviewed-by: erikj
2018-09-13 21:12:22 +02:00
Severin Gehwolf
d778b4cd2b 8210425: [x86] sharedRuntimeTrig/sharedRuntimeTrans compiled without optimization
Compile with -O2 and -ffp-contract=off as for fdlibm.

Reviewed-by: erikj, lucy, aph
2018-09-11 18:18:51 +02:00
Magnus Ihse Bursie
0504b6cbb5 8210750: Clean up compare.sh exceptions
Reviewed-by: erikj
2018-09-18 10:35:42 +02:00
Magnus Ihse Bursie
9cbe59f983 8210723: Better information in configure for invalid Xcode
Reviewed-by: erikj
2018-09-18 10:29:56 +02:00
Mandy Chung
89efb9a78f 8210841: test/jdk/vm/runtime/ReflectStackOverflow.java fails with NoClassDefFoundError
Reviewed-by: dholmes, mikael
2018-09-17 22:56:31 -07:00
Hamlin Li
1adaa503bb 8210802: temp files left by tests in jdk/java/net/httpclient
Reviewed-by: chegar, clanger
2018-09-18 13:24:25 +08:00
Michihiro Horie
d70db363eb 8210660: PPC64: Mapping floating point registers to vsx registers in ppc.ad
Reviewed-by: mdoerr, gromero
2018-09-17 23:35:00 -04:00
Frank Yuan
c1bbf898e4 8210819: Update the host name in CNameTest.java
Reviewed-by: chegar
2018-09-18 11:09:18 +08:00
Jean Christophe Beyler
bdf78f557a 8210700: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti/unit tests
Remove JNI_ENV macros from the remaining vmTestbase tests

Reviewed-by: amenkov, sspitsyn, dholmes, cjplummer
2018-09-17 19:48:35 -07:00
Jean Christophe Beyler
510336c210 8210481: Remove #ifdef cplusplus from vmTestbase
Remove all cplusplus ifdefs from vmTestbase

Reviewed-by: dholmes, iignatyev, cjplummer, sspitsyn
2018-09-17 19:36:09 -07:00
Jamil Nimeh
962e755c3a 8140466: ChaCha20 and Poly1305 TLS Cipher Suites
Reviewed-by: xuelei, mullan
2018-09-17 15:25:42 -07:00
Mandy Chung
b72ab42e49 8210721: Replace legacy serial exception field with Throwable::cause
Reviewed-by: dfuchs, lancea
2018-09-17 15:22:46 -07:00
Anthony Scarpino
b27f471bdd 8209031: SSLSocket should throw an exception when configuring DTLS
Reviewed-by: xuelei
2018-09-17 14:04:46 -07:00
Vladimir Kozlov
7069bb6a72 8209574: [AOT] breakpoint events are generated in different threads does not meet expected count
Disable AOT when debugger is attached.

Reviewed-by: dlong
2018-09-17 13:43:22 -07:00
Igor Ignatyev
3521fc392e 8210779: 8182404 and 8210732 haven't updated copyright years
Reviewed-by: bchristi
2018-09-17 11:50:39 -07:00
Iris Clark
ba8f6e211c 8210775: JVM TI Spec missing copyright
Reviewed-by: dholmes, mchung, sspitsyn
2018-09-17 10:14:31 -07:00
Liam Miller-Cushon
7afa8e42b6 8210483: AssertionError in DeferredAttr at setOverloadKind caused by JDK-8203679
Reviewed-by: mcimadamore, vromero
2018-09-10 16:59:41 -07:00
Ioi Lam
4e74846da8 8210523: runtime/appcds/cacheObject/DifferentHeapSizes.java crash
Reviewed-by: jiangli, ccheung
2018-09-12 17:45:22 -07:00
Vicente Romero
cf26c4cc5c 8207160: ClassReader::adjustMethodParams can potentially return null if the args list is empty
Reviewed-by: mcimadamore, cushon
2018-09-12 16:28:06 -07:00
Jesper Wilhelmsson
996ee09ca8 Added tag jdk-12+11 for changeset f0f5d23449d3 2018-09-13 01:41:24 +02:00
Jim Laskey
d2b04cb964 8210671: CheckExamples.java fail after Raw String Literals checkin
Reviewed-by: vromero, darcy
2018-09-12 17:14:08 -03:00
Alex Menkov
0b3f46efe1 8210560: [TEST] convert com/sun/jdi redefineClass-related tests
Reviewed-by: jcbeyler, sspitsyn
2018-09-12 12:29:40 -07:00
Jean Christophe Beyler
6a2e4311f5 8210593: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[N-R] tests
Remove JNI_ENV/JVMTI_ENV macros from N to R jvmti tests

Reviewed-by: amenkov, dholmes
2018-09-12 10:27:03 -07:00
Jim Laskey
12dad310bb 8200434: String::align, String::indent
Reviewed-by: abuckley, smarks, sherman, rriggs, jrose, sundar, igerasim, briangoetz, darcy, jjg
2018-09-12 14:19:36 -03:00
Jim Laskey
2065ebd890 8206981: Compiler support for Raw String Literals
Reviewed-by: mcimadamore, briangoetz, abuckley, jjg, vromero, jlahoda
2018-09-12 14:19:36 -03:00
Erik Joelsson
4508c9908b 8210519: build/releaseFile/CheckSource.java failed additional sources found
Reviewed-by: mikael, dholmes, ihse
2018-09-12 08:46:25 -07:00
Michihiro Horie
f263f6113e 8208171: PPC64: Enrich SLP support
Reviewed-by: mdoerr, gromero
2018-09-12 14:24:17 +02:00
Martin Doerr
63abf144aa 8210497: [PPC64] Vector registers not saved across safepoint
Reviewed-by: goetz, lucy
2018-09-12 12:54:16 +02:00
Magnus Ihse Bursie
0820376744 8059019: sdp.conf.template should be copied on linux too
Reviewed-by: alanb, erikj
2018-09-12 12:23:58 +02:00
Thomas Schatzl
7c7a5976d3 8209843: Optimize oop scan closure closures wrt to reference processing in G1
Set more appropriate reference iteration mode for G1 closures.

Reviewed-by: kbarrett, pliden
2018-09-12 11:08:42 +02:00
Andrew Dinn
ef320b7a99 8210578: AArch64: Invalid encoding for fmlsvs instruction
Sub_op code for fmslvs should be 1 not 0

Reviewed-by: roland
2018-09-12 09:12:42 +01:00
Tobias Hartmann
8e0e188abd 8210387: C2 compilation fails with "assert(node->_last_del == _last) failed: must have deleted the edge just produced"
Refresh iterator and start from the beginning while there is progress when removing dead regions.

Reviewed-by: kvn
2018-09-12 09:23:36 +02:00
Sergey Bylokhov
cd38b8562f 8205537: Drop of sun.applet package
Reviewed-by: prr
2018-09-09 19:07:34 -07:00
Phil Race
222c1eb393 8210384: SunLayoutEngine.isAAT() font is expensive on MacOS
Reviewed-by: dmarkov, kaddepalli
2018-09-09 11:19:57 -07:00
Sergey Bylokhov
5178c24a45 8207150: Clip.isRunning() may return true after Clip.stop() was called
Reviewed-by: prr
2018-09-08 12:32:51 -07:00
Phil Race
2cabb5a6c9 Merge 2018-09-05 10:17:02 -07:00
Xueming Shen
5d1d4eb155 8210394: (zipfs) jdk/nio/zipfs/ZFSTests.java rootdir.zip: The process cannot access the file because it is being used by another process
Reviewed-by: alanb, jlaskey
2018-09-05 09:12:50 -07:00
Ralf Schmelter
22de84454c 8209942: [epsilon] range function for EpsilonTLABElasticity causes compiler warning
Reviewed-by: shade, simonis
2018-09-05 12:48:51 +02:00
Magnus Ihse Bursie
9e1adc7e73 8182733: aarch64 build documentation misleading
Reviewed-by: shade, dholmes
2018-09-05 14:00:36 +02:00
Prasanta Sadhukhan
75ec02926c 8202013: JEditorPane shows large HTML unordered list bullets
8201925: JEditorPane unordered list bullets look pixelated

Reviewed-by: prr, pbansal
2018-09-05 15:56:49 +05:30
Erik Österlund
1c727102ab 8210158: Accessorize JFR getEventWriter() intrinsics
Reviewed-by: kvn, neliasso, roland, rbackman
2018-09-05 10:11:42 +02:00
Alan Bateman
f1202dc4dc 8209152: (so) ServerSocketChannel::supportedOptions includes IP_TOS
Reviewed-by: chegar
2018-09-05 11:52:08 +01:00
John Paul Adrian Glaubitz
e7a2c9d679 8165440: Add Zero support for x86_64-linux-gnux32 target
Reviewed-by: erikj, ihse
2018-09-05 11:15:28 +02:00
Priya Lakshmi Muthuswamy
e2eab3c1b7 8209052: Low contrast in docs/api/constant-values.html
Reviewed-by: jjg
2018-09-05 11:52:15 +05:30
Amy Lu
dc356698b8 8209832: Refactor jdk/internal/reflect/Reflection/GetCallerClassTest.sh to plain java test
Reviewed-by: alanb, mchung
2018-09-05 12:34:08 +08:00
Xueming Shen
de35357cf5 8197398: (zipfs) Files.walkFileTree walk indefinitelly while processing JAR file with "/" as a directory inside
Reviewed-by: alanb
2018-09-04 17:04:10 -07:00
Igor Ignatyev
315e71f87e 8210039: move OSInfo to top level testlibrary
Reviewed-by: serb, chegar, alanb, dfuchs
2018-09-04 14:35:59 -07:00
Calvin Cheung
3c810ce261 8209736: runtime/RedefineTests/ModifyAnonymous.java fails with NullPointerException when running in CDS mode
Add logging of class names in the allLoadedClasses array; throw RuntimeException upon encountering of a null class.

Reviewed-by: jiangli
2018-09-04 15:00:08 -07:00
Man Cao
b116f2cf13 8210192: Hsperf counter ParNew::CMS should be ParNew:CMS
Rename the counter back to ParNew:CMS and added a test

Reviewed-by: sjohanss, tschatzl
2018-09-04 14:17:45 -07:00
Jean Christophe Beyler
d0560a2860 8210182: Remove macros for C compilation from vmTestBase but non jvmti
Remove the macros and update the code

Reviewed-by: sspitsyn, cjplummer, amenkov
2018-08-31 22:55:34 -07:00
Vladimir Kozlov
6f8114227c 8209594: guarantee(this->is8bit(imm8)) failed: Short forward jump exceeds 8-bit offset
Replace short jumps and fix other issues when generated code exceed expected range.

Reviewed-by: dlong, rasbold
2018-09-04 12:44:02 -07:00
Daniel Fuchs
595a45041b 8210366: Typo in MethodHandles.Lookup: must be either be
Reviewed-by: rriggs
2018-09-04 18:32:28 +01:00
Alan Bateman
9141fa4e52 8210087: Classes in jdk.unsupported not accessible from jconsole plugin
Reviewed-by: erikj
2018-09-04 18:03:44 +01:00
Brian Burkhalter
ba1d068078 8210279: (bf) Remove unused package private method java.nio.Buffer.truncate()
Reviewed-by: alanb
2018-09-04 09:07:06 -07:00
Gustavo Romero
e8b551eac9 8210320: PPC64: Fix uninitialized variable in C1 LIR assembler code
Reviewed-by: mbaesken, shade, mdoerr
2018-09-04 11:46:23 -04:00
Aleksey Shipilev
aee7d4f600 8210357: Zero builds fail after JDK-8207343 (Automate vtable/itable stub size calculation)
Reviewed-by: thartmann
2018-09-04 13:19:38 +02:00
Aleksey Shipilev
c7c0863c86 8210355: Minimal and Zero non-PCH builds fail after JDK-8207343 (Automate vtable/itable stub size calculation)
Reviewed-by: thartmann
2018-09-04 13:19:37 +02:00
Alan Bateman
81af5289e9 8210341: (fs) Typos in PosixFileAttributeView javadoc
Reviewed-by: dfuchs
2018-09-04 11:35:35 +01:00
Thomas Schatzl
db7b4e20e1 8207200: Committed > max memory usage when getting MemoryUsage
Make sure that modification of memory usage variables are synchronized with returning them to Java.

Reviewed-by: sangheki, mchung
2018-09-04 12:18:35 +02:00
Thomas Schatzl
a7d4df53fa 8210265: Crash in HSpaceCounters::update_used()
Guard call to update HSpaceCounters with flag

Reviewed-by: shade, sjohanss, kbarrett
2018-09-04 12:17:23 +02:00
Weijun Wang
a5f7028279 8210338: Better output for GenerationTests.java
Reviewed-by: xuelei
2018-09-04 14:47:55 +08:00
Thomas Stuefe
96e71f7836 8210307: 8210246 broke NMT jtreg tests
Reviewed-by: goetz, iklam
2018-09-04 08:06:31 +02:00
Thomas Stuefe
23635d7d6f 8210314: [aix] NMT does not show "Safepoint" memory type
Reviewed-by: goetz, mbaesken
2018-09-03 14:27:03 +02:00
Boris Ulasevich
d2e84521c0 8209408: Primitive heap access for interpreter BarrierSetAssembler/arm32
Reviewed-by: rkennke
2018-09-03 13:42:58 +03:00
Aleksei Voitylov
bf7cd96146 8207247: AARCH64: Enable Minimal and Client VM builds
Reviewed-by: aph
2018-09-03 13:39:35 +03:00
Lutz Schmidt
f36874335d 8207343: Automate vtable/itable stub size calculation
Reviewed-by: kvn, mdoerr
2018-09-03 09:43:08 +02:00
Ioi Lam
d08c6c824d 8210246: NMTUtil::_memory_type_names should be in sync with MemoryType
Reviewed-by: ccheung, jiangli, coleenp
2018-09-01 12:02:07 -07:00
Goetz Lindenmaier
73537725b1 8210259: [testbug] IncompatibleOptions.java fails if VM configured without ZGC
Reviewed-by: pliden, kbarrett
2018-09-01 18:15:27 +02:00
Alan Snyder
78eb57c7a6 8146310: [macosx] com.apple.eawt.Application.setDefaultMenuBar does not initialize screen menu bar
Reviewed-by: serb
2018-08-31 18:05:38 -07:00
Jonathan Gibbons
c8d641d148 8208608: Update --module-source-path to allow explicit source paths for specific modules
Reviewed-by: jlahoda
2018-08-31 14:54:42 -07:00
Kim Barrett
53ac5e7fed 8210235: JvmtiTrace::safe_get_current_thread_name is unsafe in debug builds
Use Thread::current_or_null and handle NULL result.

Reviewed-by: coleenp
2018-08-31 16:29:49 -04:00
Daniil Titov
4d57252ee0 8209585: [Graal] vmTestbase/nsk/jvmti/scenarios/sampling tests fail with "Too small stack of resumed thread"
Reviewed-by: sspitsyn, amenkov, cjplummer, jcbeyler
2018-08-31 11:56:43 -07:00
Maurizio Cimadamore
4871d9935e 8210226: Add support for multiple project folders to idea.sh
Overhaul templating logic for idea.sh; add support for -o option

Reviewed-by: erikj, ihse
2018-08-31 18:01:47 +01:00
Alex Menkov
3a37a5d219 8067354: com/sun/jdi/GetLocalVariables4Test.sh failed
Reviewed-by: jcbeyler, sspitsyn
2018-08-31 09:53:37 -07:00
Roman Kennke
a9f2e04d54 8210187: Explicit barriers for C2
Reviewed-by: eosterlund, shade, roland, pliden
2018-08-31 16:28:52 +02:00
Mikael Vidstedt
72797db95b 8210513: Obsolete SyncFlags
Reviewed-by: coleenp, dcubed, dholmes
2018-09-11 20:37:47 -07:00
Ivan Gerasimov
475d422094 8210347: Combine subsequent calls to Set.contains() and Set.add()
Reviewed-by: smarks, bpb
2018-09-11 14:51:45 -07:00
Mikael Vidstedt
9118c4c28b 8210514: Obsolete SyncVerbose
Reviewed-by: coleenp, dcubed
2018-09-11 13:54:34 -07:00
Ioi Lam
e80b128db4 8210289: ArchivedKlassSubGraphInfoRecord is incomplete
Reviewed-by: jiangli, ccheung
2018-09-05 18:14:45 -07:00
Patricio Chilano Mateo
891765ee5e 8210300: runtime/MemberName/MemberNameLeak.java fails with RuntimeException
Added flag -XX:+UnlockDiagnosticVMOptions to tests failing in product builds

Reviewed-by: dcubed, dholmes
2018-09-11 13:34:13 -04:00
Jean Christophe Beyler
fe326ad022 8210385: Clean up JNI_ENV_ARG and factorize the macros for vmTestbase/jvmti[A-N] tests
Remove JNI_ENV and JVMTI_ENV macros for part of the jvmti tests

Reviewed-by: amenkov, dholmes
2018-09-11 10:12:50 -07:00
Coleen Phillimore
bbf5c1ca8d 8210422: runtime/modules/ModuleStress/ExportModuleStressTest.java - assertion failed: address not aligned: 0x00000008baadbabe
CLDG_lock caused safepoint in inconsistent state

Reviewed-by: lfoltan, eosterlund, kbarrett
2018-09-11 09:42:27 -04:00
Harold Seigel
18bbeb53e6 8210470: Remove unused Verifier::verify() Verifier::Mode argument
Remove the unused argument.

Reviewed-by: coleenp, jiangli
2018-09-11 09:53:41 -04:00
Vyom Tewari
edef78fbe1 8205330: InitialDirContext ctor sometimes throws NPE if the server has sent a disconnection
Reviewed-by: chegar, dfuchs
2018-09-11 17:48:24 +05:30
Thomas Schatzl
a19321464c 8210467: Remove unused G1CollectedHeap::_max_heap_capacity
Reviewed-by: sjohanss, phh
2018-09-11 09:14:36 +02:00
Thomas Schatzl
093c837c85 8210463: Recalculate_used() always sets time taken in G1GCPhaseTimes
Reviewed-by: phh, sjohanss
2018-09-11 09:13:37 +02:00
Chris Yin
694380add3 8209773: Refactor shell test javax/naming/module/basic.sh to java
Reviewed-by: vtewari, alanb
2018-09-11 09:27:47 +08:00
Weijun Wang
623caa5bbf 8205507: jdk/javax/xml/crypto/dsig/GenerationTests.java timed out
Reviewed-by: mullan
2018-09-11 08:48:26 +08:00
Dean Long
6724b59873 8210434: [Graal] 8209301 prevents GitHub Graal from compiling with latest JDK
Reviewed-by: dnsimon, kvn
2018-09-10 16:33:05 -07:00
Kim Barrett
efe6ad59e8 8210511: TestSingleWriterSynchronizer can deadlock
Check for safepoints in test loops.

Reviewed-by: coleenp, eosterlund
2018-09-10 19:18:04 -04:00
David Holmes
1f30060cbb 8210512: [Testbug] vmTestbase/nsk/jdi/ObjectReference/referringObjects/referringObjects002/referringObjects002.java fails with unexpected size of ClassLoaderReference.referringObjects
Account for the self-reference that every class has in the constant pool

Reviewed-by: sspitsyn, jcbeyler
2018-09-10 18:57:44 -04:00
Jiangli Zhou
4baa5b10d1 8210515: [TESTBUG]CheckArchivedModuleApp.java needs to check if EnableJVMCI is set
System module objects are not archived when EnableJVMCI is set to true.

Reviewed-by: iklam, ccheung
2018-09-10 18:30:24 -04:00
Igor Ignatyev
2702b5c299 8182404: remove jdk.testlibrary.JDKToolFinder and JDKToolLauncher
Reviewed-by: amenkov, jcbeyler, alanb
2018-09-10 14:23:37 -07:00
Coleen Phillimore
7445ebf02b 8208697: vmTestbase/metaspace/stressHierarchy/stressHierarchy012/TestDescription.java fails with OutOfMemoryError: Metaspace
Remove timeoutHandler class and let Stresser handle timeout, remove 30 threads filling metaspace, and remove related unused files.

Reviewed-by: lfoltan, mseledtsov
2018-09-10 16:33:55 -04:00
Mandy Chung
cfb0662ff6 8210502: jdeps does not handle properly on analyzing a mixture of MR JARs and non-MR JARs
Reviewed-by: alanb
2018-09-10 12:48:57 -07:00
Lutz Schmidt
d36dddddab 8210319: [s390]: Use of shift operators not covered by cpp standard
Reviewed-by: mdoerr, goetz
2018-09-10 16:40:59 +02:00
Amy Lu
6c7a19d52f 8209930: Refactor java/util/zip/ZipFile/deletetempjar.sh to plain java test
Reviewed-by: alanb
2018-09-10 20:17:26 +08:00
Erik Österlund
c8be228513 8210321: Create NO_KEEPALIVE CLD holder accessor
Reviewed-by: coleenp, kbarrett
2018-09-10 13:07:42 +02:00
Erik Österlund
842bc09b01 8210233: Prepare Klass::is_loader_alive() for concurrent class unloading
Reviewed-by: coleenp, pliden
2018-09-10 13:07:42 +02:00
Erik Österlund
a602e0b80c 8210236: Prepare ciReceiverTypeData::translate_receiver_data_from for concurrent class unloading
Reviewed-by: coleenp, roland
2018-09-10 11:24:26 +02:00
Magnus Ihse Bursie
4db2b90f44 8056217: Remove awt_makecube.cpp
Reviewed-by: erikj, serb
2018-09-10 10:02:48 +02:00
Magnus Ihse Bursie
db72e03e12 8081858: make dist-clean does not delete all log files
Reviewed-by: erikj
2018-09-10 09:59:27 +02:00
Magnus Ihse Bursie
6b2d1c9834 8200609: Proper fix for mapfile removal for libjsig
Reviewed-by: erikj, dholmes
2018-09-10 09:58:23 +02:00
Erik Joelsson
26f801426d 8210283: Support git as an SCM alternative in the build
Reviewed-by: ihse, ehelin
2018-09-07 14:54:15 -07:00
Igor Ignatyev
21a0458422 8210112: remove jdk.testlibrary.ProcessTools
Reviewed-by: alanb, sspitsyn, jcbeyler
2018-09-07 14:01:52 -07:00
Jiangli Zhou
bd77f790c3 8209971: TestOptionsWithRanges.java crashes in CDS mode with G1UpdateBufferSize=1
Fixup archive heap regions before restoring any archived java object at runtime.

Reviewed-by: iklam, ccheung
2018-09-07 15:18:14 -04:00
Kim Barrett
8b1bdf579c 8210131: vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java failed with ObjectFree: GetCurrentThreadCpuTimerInfo returned unexpected error code
Expanded permitted threads to include all NamedThreads.

Reviewed-by: dcubed, sspitsyn
2018-09-07 14:44:52 -04:00
Jean Christophe Beyler
d90f0a51c2 8210429: Clean up JNI_ENV_ARG for vmTestbase/jvmti/Get[G-Z] tests
Remove the JNI_ENV_ARG for the rest of the Get[G-Z]

Reviewed-by: dholmes, sspitsyn, cjplummer
2018-09-07 09:50:02 -07:00
Xueming Shen
23ec584fda 8210345: The Japanese message of FileNotFoundException garbled
Reviewed-by: alanb
2018-09-07 10:17:49 -07:00
Maurizio Cimadamore
c0d51dc514 8210495: compiler crashes because of illegal signature in otherwise legal code
Disable strict verification of compiler signatures when they do not affect generated bytecode

Reviewed-by: vromero
2018-09-07 15:56:21 +01:00
Andrew Leonard
660f6b448b 8209786: JDK12 fails to build on s390x with gcc 7.3
Reviewed-by: ihse, goetz
2018-09-07 11:24:59 +02:00
David Holmes
b66c67675d 8210486: Unused code in check_nest_attributes function
Reviewed-by: mikael, sspitsyn
2018-09-07 08:14:47 -04:00
Sean Mullan
59d3b2ccfa 6899533: SecureClassLoader and URLClassLoader have unnecessary check for createClassLoader permission
Remove code that is no longer necessary now that pre-JDK 1.2 SecurityManager methods are not supported.

Reviewed-by: mchung
2018-09-07 08:02:51 -04:00
Roland Westrelin
052a740695 8209544: AES encrypt performance regression in jdk11b11
Reviewed-by: kvn, vlivanov
2018-09-06 16:27:07 +02:00
Dean Long
25280e30d4 8209361: [AOT] Unexpected number of references for JVMTI_HEAP_REFERENCE_CONSTANT_POOL [111-->111]: 0 (expected at least 1)
Reviewed-by: coleenp, dholmes
2018-09-06 17:45:15 -07:00
Chris Yin
334d64e9a0 8042902: Test java/net/Inet6Address/serialize/Inet6AddressSerializationTest.java fails intermittently
Reviewed-by: chegar
2018-09-07 09:09:31 +08:00
Mikael Vidstedt
0f68e5221f 8210381: Obsolete EmitSync
Reviewed-by: kvn, dcubed, mdoerr, mbaesken, shade
2018-09-06 18:06:24 -07:00
Jonathan Gibbons
84cf73f2a5 8210009: Source Launcher classloader should support getResource and getResourceAsStream
Reviewed-by: mchung, plevart
2018-09-06 16:15:32 -07:00
Ivan Gerasimov
1c9dfca05b 8210285: CharsetDecoder/Encoder's constructor does not reject NaN
Reviewed-by: sherman, smarks, alanb, martin, darcy
2018-09-06 12:10:59 -07:00
Naoto Sato
d1958eeed1 8210142: java.util.Calendar.clone() doesn't respect sharedZone flag
Reviewed-by: rriggs
2018-09-06 10:49:17 -07:00
Calvin Cheung
9d6230fe4e 8185145: AppCDS custom loader support on Mac OS X
Reviewed-by: dholmes, gziemski
2018-09-06 09:30:47 -07:00
Vicente Romero
d0f7d4e374 8210435: don't add local variable spots if they are DCE'ed by the compiler
Reviewed-by: mcimadamore
2018-09-06 05:44:47 -07:00
Maurizio Cimadamore
66288b8c6c 8210318: idea.sh script doesn't work on Mac
Remove usage non-portable sed options

Reviewed-by: erikj, ihse
2018-09-06 13:13:35 +01:00
David Holmes
0d9f615e92 8199874: [TESTBUG] runtime/Thread/ThreadPriorities.java fails with "expected 0 to equal 10"
Reviewed-by: lfoltan, ccheung
2018-09-06 02:01:20 -04:00
Rajan Halade
c201a7f8c9 8210432: Add additional TeliaSonera root certificate
Reviewed-by: mullan
2018-09-05 21:06:01 -07:00
Xue-Lei Andrew Fan
b7fdc4943f 8210334: TLS 1.3 server fails if ClientHello doesn't have pre_shared_key and psk_key_exchange_modes
Reviewed-by: ascarpino, wetmore
2018-09-05 21:01:39 -07:00
Jean Christophe Beyler
d256eb923b 8210198: Clean up JNI_ENV_ARG for vmTestbase/jvmti/Get[A-F] tests
Remove JNI_ENV macros from the Get[A-F] tests

Reviewed-by: sspitsyn, amenkov, cjplummer
2018-09-05 19:40:52 -07:00
Jesper Wilhelmsson
bac1c9b8fb Added tag jdk-12+10 for changeset 8f594f75e054 2018-09-06 02:50:04 +02:00
Jean Christophe Beyler
14e4479ca7 8208352: Merge HeapMonitorTest and HeapMonitorGCTest code
Merged the code that enables sampling and allocates

Reviewed-by: cjplummer, sspitsyn, amenkov
2018-09-05 11:12:15 -07:00
Patricio Chilano Mateo
16b92a561c 8206424: Use locking for cleaning ProtectionDomainTable
ServiceThread is now in charge of cleaning ProtectionDomainTable entries

Reviewed-by: coleenp, iklam
2018-08-31 10:22:04 -04:00
Coleen Phillimore
98242123a3 8207793: [TESTBUG] runtime/Metaspace/FragmentMetaspace.java fails: heap needs to be increased
Reduce test time and allow OOM.

Reviewed-by: iklam, hseigel
2018-08-31 09:10:27 -04:00
Coleen Phillimore
eb9259138f 8210155: Lock ClassLoaderDataGraph
In preparation for concurrent class unloading.

Reviewed-by: hseigel, eosterlund
2018-08-31 07:03:46 -04:00
Hannes Wallnöfer
71479d029a 8176453: Javadoc search: there are issues with generics in parameters
Reviewed-by: jjg, sundar
2018-08-31 12:41:00 +02:00
Doug Simon
c131915d0a 8210066: [JVMCI] iterateFrames uses wrong GrowableArray API for appending
Reviewed-by: dlong, twisti
2018-08-31 11:43:06 +02:00
Magnus Ihse Bursie
8cc7ce2c18 6657100: Rename sparcWorks to solstudio in HotSpot
Reviewed-by: erikj, dcubed
2018-08-31 09:37:03 +02:00
Matthias Baesken
45fb620218 8210205: build fails on AIX in hotspot cpp tests (for example getstacktr001.cpp)
Reviewed-by: mdoerr, stuefe
2018-08-30 13:12:38 +02:00
John Jiang
1f3d71b620 8209362: sun/security/ssl/SSLSocketImpl/ReuseAddr.java failed due to "BindException: Address already in use (Bind failed)"
Refactor this test with SSLSocketTemplate

Reviewed-by: xuelei
2018-08-31 10:32:47 +08:00
Hamlin Li
36f2d56823 8208280: java/nio/channels/Selector/RegisterDuringSelect.java fails with "key not removed from key set"
Reviewed-by: alanb
2018-08-31 10:00:22 +08:00
Chris Plummer
7a55cb8954 8210118: better jdb test diagnostics when getting "Prompt is not received during ... milliseconds" failures
Print pending reply when prompt is not recieved

Reviewed-by: dholmes, gadams, sspitsyn, jcbeyler
2018-08-30 17:59:40 -07:00
Kim Barrett
6a0bb0955e 8209975: Some GCThreadLocalData not initialized
Perform deferred BarrierSet initializations for NonJavaThreads too.

Reviewed-by: eosterlund, pliden
2018-08-30 17:03:46 -04:00
Aleksei Voitylov
26560a934d 8210164: building Minimal VM fails with error: comparison of unsigned expression < 0 is always false [-Werror=type-limits]
Conditionalize compare with serial_phase_count.

Reviewed-by: kbarrett, shade
2018-08-30 16:33:14 -04:00
Kim Barrett
75a8e7d4e2 8210119: Rename SubTasksDone::is_task_claimed
Renamed to try_claim_task and inverted result.

Reviewed-by: coleenp, sjohanss
2018-08-30 16:16:19 -04:00
Brian Burkhalter
67b2c6fc66 8207744: Clean up inconsistent use of opendir/closedir versus opendir64/closedir64
Reviewed-by: bsrbnd, mbaesken, bchristi, simonis
2018-08-30 12:39:26 -07:00
Alex Menkov
091aff1178 8209604: [TEST] rewrite com/sun/jdi shell tests to java version - step2
Reviewed-by: jcbeyler, sspitsyn, cjplummer
2018-08-30 11:53:49 -07:00
Abdul Kolarkunnu
d56ff9a452 8209993: Create a test for SwingSet3 ToolTipDemo
Reviewed-by: serb
2018-08-30 03:01:49 -07:00
Jean Christophe Beyler
b9b522a7ad 8203356: VM Object Allocation Collector can infinite recurse
VM Event callback do not provoke a VM alloc event

Reviewed-by: sspitsyn, phh, amenkov, cjplummer
2018-08-30 09:47:12 -07:00
Ioi Lam
3c135ae705 8210194: [TESTBUG] jvmti_FollowRefObjects.cpp missing initializer for member _jvmtiHeapCallbacks::heap_reference_callback
Reviewed-by: sspitsyn, iignatyev
2018-08-30 08:01:13 -07:00
Harold Seigel
d36066fdad 8210168: JCK test .vm.classfmt.ins.code__002.code__00201m1.code__00201m1 hangs with -noverify
Check for 'bc_length > 0' to handle lengths of -1.

Reviewed-by: coleenp
2018-08-30 09:08:23 -04:00
Lutz Schmidt
af1ce0a659 8209950: SIGBUS in CodeHeapState::print_names()
Reviewed-by: thartmann, kvn
2018-08-30 09:34:10 +02:00
Erik Österlund
05b8f66dff 8210065: ZGC: Remove mode for treating weaks as strong
Reviewed-by: kbarrett, pliden
2018-08-30 09:25:38 +02:00
Matthias Baesken
149be4bad1 8210147: adjust some WSAGetLastError usages in windows network coding
Reviewed-by: clanger, stuefe
2018-08-29 10:11:51 +02:00
Erik Österlund
af545969be 8210063: ZGC: Enable load barriers for IN_NATIVE runtime barriers
Reviewed-by: pliden
2018-08-30 09:12:07 +02:00
Erik Österlund
dd02aad6be 8210061: ZGC: Remove STW weak processor mode
Reviewed-by: pliden, kbarrett
2018-08-30 08:59:23 +02:00
Magnus Ihse Bursie
a75b0f74fa 8210160: Remove deprecated configure arguments
Reviewed-by: erikj
2018-08-30 08:19:13 +02:00
Magnus Ihse Bursie
f6471ab3aa 8210150: Allow custom-hook.m4 to include files from CUSTOM_CONFIG_DIR
Reviewed-by: erikj
2018-08-30 08:15:10 +02:00
Chris Plummer
77921f8a38 8199811: com/sun/jdi/ProcessAttachTest.java fails intermittently: Remote thread failed for unknown reason
Give attach listener thread a chance to finish starting

Reviewed-by: dholmes, gadams
2018-08-29 20:13:53 -07:00
Gary Adams
b984ecc438 8170089: nsk/jdi/EventSet/resume/resume008: ERROR: suspendCounts don't match for : Common-Cleaner
Reviewed-by: cjplummer, sspitsyn
2018-08-28 08:06:59 -04:00
Leo Jiang
0852cfcc52 8210153: localized currency symbol of VES
Reviewed-by: naoto
2018-08-29 19:14:08 -07:00
Jesper Wilhelmsson
ad8e665844 Added tag jdk-12+9 for changeset 31b159f30fb2 2018-08-30 03:49:23 +02:00
Mikael Vidstedt
c41e1d3f3a 8210167: ProblemList vmTestbase/nsk/jvmti/scenarios/allocation/AP10/ap10t001/TestDescription.java
Reviewed-by: coleenp
2018-08-29 13:50:55 -07:00
Mikael Vidstedt
f5e624c0b3 8209856: Obsolete error reporter
Reviewed-by: coleenp, stuefe
2018-08-29 13:04:50 -07:00
Roman Kennke
296002fe50 8180193: Make marking bitmap code available to other GCs
Reviewed-by: shade, stefank
2018-08-29 20:15:09 +02:00
Jesper Wilhelmsson
d40735db17 Merge 2018-08-29 19:48:28 +02:00
Adam Petcher
c3cc65bd08 8201317: X25519/X448 code improvements
Minor code/comment improvements

Reviewed-by: xuelei
2018-08-29 12:00:47 -04:00
Gunter Haug
00eb34a943 8209996: [PPC64] Fix JFR profiling
Reviewed-by: mdoerr, simonis
2018-08-28 14:55:06 +02:00
Patricio Chilano Mateo
ff17347f8f 8209844: MemberNameLeak.java fails when ResolvedMethod entry is not removed
Fixed MemberNameLeak.java due to intermittent failure after 8206423

Reviewed-by: coleenp, lfoltan
2018-08-29 10:46:59 -04:00
Phil Race
d0a60f53ee Merge 2018-08-27 10:54:58 -07:00
Anton Litvinov
41f4dbaae7 8201818: [macosx] Printing attributes break page size set via "java.awt.print.Book" object
Reviewed-by: prr, psadhukhan
2018-08-27 18:29:07 +01:00
Abdul Kolarkunnu
13ce063178 8209789: Synchronize test/jdk/sanity/client/lib/jemmy with code-tools/jemmy/v2
Reviewed-by: serb
2018-08-27 03:46:44 -07:00
Xue-Lei Andrew Fan
8b373393e6 8209965: The "supported_groups" extension in ServerHellos
Reviewed-by: ascarpino
2018-08-27 09:46:24 -07:00
Weijun Wang
882e54cb05 8209995: java.base does not need to export sun.security.ssl to java.security.jgss
Reviewed-by: xuelei, alanb
2018-08-27 23:14:17 +08:00
Bernd Eckenfels
c5299d49f4 8209987: Minor cleanup in Level.java
Reviewed-by: dfuchs
2018-08-27 12:33:03 +01:00
Jini George
b4530e2447 8204308: SA: serviceability/sa/TestInstanceKlassSize*.java fails when running in CDS mode
Use longs instead of ints while computing the identity hash of klass symbols

Reviewed-by: coleenp, lfoltan
2018-08-27 10:25:13 +05:30
Coleen Phillimore
fd9fa38d21 8209821: Make JVMTI GetClassLoaderClasses not walk CLDG
And also added function with KlassClosure to remove the hacks.

Reviewed-by: lfoltan, sspitsyn
2018-08-25 11:10:21 -04:00
Jaikiran Pai
e6c0c9dde7 7033681: Arrays.asList methods needs better documentation
Reviewed-by: smarks
2018-08-25 20:16:43 +05:30
Aleksey Shipilev
51c04f947f 8209911: More blob types in hs_err printout
Reviewed-by: simonis, kvn
2018-08-25 14:23:21 +02:00
Ivan Gerasimov
852e131c61 6474858: CardChannel.transmit(CommandAPDU) throws unexpected ArrayIndexOutOfBoundsException
Reviewed-by: valeriep
2018-08-24 18:56:41 -07:00
Sergey Bylokhov
5cdafcf43e 8039082: [TEST_BUG] Test java/awt/dnd/BadSerializationTest/BadSerializationTest.java fails
Reviewed-by: prr
2018-08-24 16:29:04 -07:00
Sergey Bylokhov
05ed80075a 8209340: The code which avoids synthetic accessors has become outdated
Reviewed-by: psadhukhan, kaddepalli
2018-08-23 23:12:16 -07:00
Ioi Lam
8f87784420 8208658: Make CDS archived heap regions usable even if compressed oop encoding has changed
Move different execution modes to IncompatibleOptions_stringDedup.java and IncompatibleOptions_noCompactStrings.java

Reviewed-by: jiangli, coleenp
2018-08-23 21:16:45 -07:00
Vicente Romero
b2ebbe6460 8209173: javac fails with completion exception while reporting an error
Reviewed-by: mcimadamore
2018-08-24 13:30:56 -07:00
Mikael Vidstedt
83d8bf86a6 8209915: Fix license headers
Reviewed-by: kvn, pliden
2018-08-24 13:23:39 -07:00
Zhengyu Gu
af8a3d61b5 8209841: [REDO] Refactor G1ParallelCleaningTask into shared
Refactored ParallelCleaningTask to share with other GCs

Reviewed-by: tschatzl, shade
2018-08-24 15:49:21 -04:00
Jiangli Zhou
7a51b4a8fa 8208061: runtime/LoadClass/TestResize.java fails with "Load factor too high" when running in CDS mode
Allow resizing for all system dictionaries except for the shared dictionary at runtime.

Reviewed-by: iklam, gziemski
2018-08-24 15:33:28 -04:00
Dean Long
347b95d500 8209825: guarantee(false) failed: wrong number of expression stack elements during deopt
Reviewed-by: kvn, thartmann
2018-08-24 11:56:14 -07:00
Roland Westrelin
7135605c6f 8209691: Allow MemBar on single memory slice
Reviewed-by: kvn, vlivanov
2018-08-22 10:29:17 +02:00
Maurizio Cimadamore
d91630f948 8209064: Make intellij support more robust after changes for 2018.2
Do not treat build.xml wrapper as a template file

Reviewed-by: erikj, ihse
2018-08-29 11:25:51 +01:00
Jan Kalina
13c1bb691b 8176553: LdapContext follows referrals infinitely ignoring set limit
Reviewed-by: chegar
2018-08-29 14:10:19 +05:30
Jan Lahoda
b3b644438e 8206986: Compiler support for Switch Expressions (Preview)
8207405: Compiler Tree API support for Switch Expressions (Preview)

Support for switch expression, switch with rules and multiple constants for cases.

Reviewed-by: jjg, mcimadamore, vromero
2018-08-29 09:36:17 +02:00
Matthias Baesken
3f4b55c4df 8209994: windows: Java_java_net_NetworkInterface_getAll misses releasing interface-list
Reviewed-by: bpb, chegar, simonis
2018-08-28 09:01:54 +02:00
Leo Jiang
232804b8ab 8208746: ISO 4217 Amendment #168 update
8209775: ISO 4217 Amendment #169 update

Reviewed-by: naoto
2018-08-28 20:05:41 -07:00
Per Lidén
16263ca90c 8210045: Allow using a subset of worker threads even when UseDynamicNumberOfGCThreads is not set
Reviewed-by: eosterlund, kbarrett
2018-08-29 08:00:00 +02:00
Jean Christophe Beyler
3de7598a3f 8210035: Fix copyrights for files created for the HeapMonitor work
Added the Oracle copyright to newly created files

Reviewed-by: sspitsyn, cjplummer
2018-08-28 21:25:37 -07:00
Ioi Lam
6c65a9f193 8210040: TestOptionsWithRanges.java is very slow
Added -Xmx1024m -XX:-ZapUnusedHeapArea; split into 10 smaller tests

Reviewed-by: kvn, coleenp
2018-08-28 16:01:12 -07:00
Ioi Lam
4c58f6768a 8210043: Invalid assert(HeapBaseMinAddress > 0) in ReservedHeapSpace::initialize_compressed_heap
Removed the assert

Reviewed-by: ccheung, jiangli
2018-08-28 16:01:01 -07:00
Calvin Cheung
f7bbf4f43c 8209743: [TESTBUG] java/lang/management/MemoryMXBean/LowMemoryTest2.sh fails with OutOfMemoryError running in CDS mode
Increase the MaxMetaspaceSize from 16m to 32m

Reviewed-by: jiangli, iklam, mchung
2018-08-28 16:18:58 -07:00
Coleen Phillimore
8324ab4661 Merge 2018-08-28 18:31:14 -04:00
Christian Thalinger
30a16dc69c 8210008: custom extension for make/SourceRevision.gmk
Reviewed-by: erikj
2018-08-28 15:17:52 -07:00
Coleen Phillimore
3559b6be76 8209958: Clean up duplicate basic array type statics in Universe
Reviewed-by: lfoltan, zgu
2018-08-28 18:17:01 -04:00
Coleen Phillimore
cea6e54978 8210088: ProblemList gc/epsilon/TestMemoryMXBeans.java
Reviewed-by: kbarrett, jiangli
2018-08-28 18:03:33 -04:00
Igor Ignatyev
8c47dc4a94 8209611: use C++ compiler for hotspot tests
Reviewed-by: vlivanov, ihse, erikj, jcbeyler
2018-08-28 14:37:34 -07:00
Igor Ignatyev
86c476b5e5 8210108: sun/tools/jstatd test build failures after JDK-8210022
Reviewed-by: cjplummer, jcbeyler, mikael
2018-08-28 14:33:18 -07:00
Gary Adams
fc61b1abfb 8019927: [TESTBUG] nsk/jvmti/GetThreadInfo/thrinfo001 intermittently fails with 'invalid thread group' when running with JFR
Reviewed-by: amenkov, cjplummer, sspitsyn
2018-08-28 07:30:36 -04:00
Kim Barrett
e1059f1301 8209976: Improve iteration over non-JavaThreads
Add NonJavaThread and move NamedThread iteration to new class.

Reviewed-by: eosterlund, coleenp, rkennke
2018-08-28 16:04:54 -04:00
Jiangli Zhou
1ddabdf0dc 8209534: [TESTBUG]runtime/appcds/cacheObject/ArchivedModuleCompareTest.java fails with EnableJVMCI
Use TestCommon.execOff().

Reviewed-by: ccheung
2018-08-28 14:45:34 -04:00
Kim Barrett
1b02e70184 8072498: Multi-thread JNI weak reference processing
Add parallel processing support to WeakProcessor.

Reviewed-by: tschatzl, sjohanss
2018-08-28 12:57:40 -04:00
Jean Christophe Beyler
49b859b9d3 8201224: Make string buffer size dynamic in mlvmJvmtiUtils.c
Calculate the string size for the buffer first

Reviewed-by: amenkov, sspitsyn, iklam
2018-08-22 09:33:18 -07:00
Goetz Lindenmaier
51f697962c 8209939: [testbug][ppc] Test SafepointPollingPages fails after 8208499 with UseSIGTRAP on
Reviewed-by: mdoerr, ghaug
2018-08-28 17:03:16 +02:00
Harold Seigel
eb51968f00 8202578: Revisit location for class unload events
Use notify_unload_class() to post JFR class unload events instead of doing a separate traversal of the class loader data graph

Reviewed-by: lfoltan, coleenp, mgronlun, egahlin
2018-08-28 10:10:11 -04:00
Per Lidén
12c27777c8 8209894: ZGC: Cap number of GC workers based on heap size
Reviewed-by: ehelin, tschatzl
2018-08-28 09:06:23 +02:00
Igor Ignatyev
370abe471f 8210022: remove jdk.testlibrary.ProcessThread, TestThread and XRun
Reviewed-by: sspitsyn, jcbeyler
2018-08-27 21:50:52 -07:00
Igor Ignatyev
56ee0fccb3 8186548: move jdk.testlibrary.JcmdBase closer to tests
Reviewed-by: cjplummer, amenkov
2018-08-27 17:01:15 -07:00
Alex Menkov
1e6c19b381 8203393: com/sun/jdi/JdbMethodExitTest.sh and JdbExprTest.sh fail due to timeout
Reviewed-by: sspitsyn, cjplummer
2018-08-27 16:45:18 -07:00
Abdul Kolarkunnu
d739f1d6de 8209494: Create a test for SwingSet InternalFrameDemo
Reviewed-by: serb
2018-08-27 03:48:41 -07:00
Zhengyu Gu
083110efa9 8209852: Counters in StringCleaningTask should be type of size_t
Converted counters to size_t type to avoid casting

Reviewed-by: coleenp
2018-08-27 17:20:29 -04:00
Leonid Mesnik
f71d1cb124 8209920: runtime/logging/RedefineClasses.java fail with OOME with ZGC
Reviewed-by: pliden
2018-08-27 12:45:31 -07:00
Roland Westrelin
423c207dc7 8209639: assert failure in coalesce.cpp: attempted to spill a non-spillable item
Reviewed-by: neliasso, kvn
2018-08-17 17:13:12 +02:00
Gerard Ziemski
e0559bdd88 8209622: applications/kitchensink/Kitchensink.java failed with Kitchensink failed with exit code = 138
SymbolTableLock no longer checks for safepoints

Reviewed-by: coleenp, rehn
2018-08-24 09:12:51 -05:00
Gunter Haug
e2081b42b5 8208480: Test failure: assert(is_bound() || is_unused()) after JDK-8206075 in C1
Reviewed-by: kvn, phh, lucy
2018-08-20 12:08:07 +02:00
Gilles Duboscq
44a83147db 8209136: [JVMCI] Make sure volatile fields are read as volatile during constant reflection
Reviewed-by: kvn
2018-08-17 12:19:52 +02:00
Vicente Romero
2589e9733e 8211148: var in implicit lambdas shouldn't be accepted for source < 11
Reviewed-by: mcimadamore
2018-10-04 08:37:08 -07:00
Mandy Chung
73a6313038 8181443: Replace usages of jdk.internal.misc.Unsafe with MethodHandles.Lookup.defineClass
Reviewed-by: alanb, egahlin
2018-10-04 08:45:21 -07:00
Martin Doerr
4af2374271 8210754: print_location is not reliable enough (printing register info)
Reviewed-by: stuefe, coleenp
2018-10-04 16:39:07 +02:00
Robbin Ehn
dcfb9a75aa 8210303: VM_HandshakeAllThreads fails assert with "failed: blocked and not walkable"
Reviewed-by: dcubed, dholmes
2018-10-04 14:03:13 +02:00
Pallavi Sonal
f5d19b9109 8166138: DateTimeFormatter.ISO_INSTANT should handle offsets
Reviewed-by: rriggs, scolebourne, naoto
2018-10-04 17:25:51 +05:30
Jesper Wilhelmsson
ea3fb3979c Added tag jdk-12+14 for changeset 6f04692c7d51 2018-10-04 10:35:59 +02:00
Dmitry Markov
ca5903367f 8205479: OS X: requestFocus() does not work properly for embedded frame
Reviewed-by: serb, aivanov
2018-08-17 09:31:13 +01:00
Dmitry Markov
299f32d852 8130655: OS X: keyboard input in textfield is not possible if the window contained textfield is owned by EmbeddedFrame
Reviewed-by: serb, aivanov
2018-08-16 19:20:20 +01:00
Prasanta Sadhukhan
bb9fed1008 8202702: Clearing selection on JTable causes disappearance of a row
Reviewed-by: serb
2018-08-16 11:15:22 +05:30
Phil Race
7000581e0b Merge 2018-08-14 12:11:28 -07:00
Kim Barrett
773906998a 8209347: SATBMarkQueue.cpp should not need jvm.h
Use os::snprintf instead of jio_snprintf.

Reviewed-by: shade, tschatzl
2018-08-14 14:58:14 -04:00
Alex Menkov
5b6a90e007 8209109: [TEST] rewrite com/sun/jdi shell tests to java version - step1
Reviewed-by: sspitsyn, jcbeyler
2018-08-14 11:56:32 -07:00
Kim Barrett
8f31a55f91 8209346: Refactor SATBMarkQueue filter configuration
Moved reference to G1-specific option to G1CollectedHeap.

Reviewed-by: shade, rkennke
2018-08-14 13:16:26 -04:00
Rajan Halade
bfb0a2ea3f 8209452: VerifyCACerts.java failed with "At least one cacert test failed"
Allow test to pass even if cert in EXPIRY_EXC_ENTRIES expires

Reviewed-by: mullan
2018-08-14 10:08:21 -07:00
Abdul Kolarkunnu
c283eb190e 8209418: Synchronize test/jdk/sanity/client/lib/jemmy with code-tools/jemmy/v2
Co-authored-by: Alexandre Iline <alexandre.iline@oracle.com>
Reviewed-by: serb
2018-08-13 21:57:17 -07:00
Weijun Wang
33a96c6df9 8209416: Refactoring GetPropertyAction calls in security libs
Reviewed-by: xuelei, rriggs
2018-08-14 22:39:34 +08:00
Lutz Schmidt
815cdefb43 8209433: [s390] Fix build, broken by 8208672 (Enable -Wreorder)
Reviewed-by: tschatzl, shade
2018-08-14 14:28:23 +02:00
Jean Christophe Beyler
5fc4ca5c45 8061467: Add UseLargePages to TestNUMAPageSize
Add flag to test for all architectures to be tested

Reviewed-by: phh, pliden, tschatzl
2018-08-13 09:19:21 -07:00
Per Lidén
a51aeedca0 8209376: ZGC: Move ZMarkStackAllocator into a separate file
Reviewed-by: eosterlund, kbarrett
2018-08-13 14:04:43 +02:00
Per Lidén
f50c8dddfa 8209375: ZGC: Use dynamic base address for mark stack space
Reviewed-by: eosterlund, kbarrett
2018-08-13 14:04:42 +02:00
Kim Barrett
924bba584d 8209345: Merge SATBMarkQueueFilter into SATBMarkQueueSet
Move filter extension protocol to SATBMarkQueueSet.

Reviewed-by: shade, tschatzl, rkennke
2018-08-14 00:15:56 -04:00
Felix Yang
b5f939c5db 8194230: jdk/internal/jrtfs/remote/RemoteRuntimeImageTest.java fails with java.lang.NullPointerException
Reviewed-by: mchung
2018-08-14 10:42:00 +08:00
Igor Ignatyev
4bcd4f04a2 8209382: [error-prone] HashtableContains in sun/rmi/server/ActivationGroupImpl.java
Reviewed-by: rriggs
2018-08-13 17:39:27 -07:00
Kim Barrett
a007690fa0 8209396: Make PtrQueueSets not statically allocated
Change the G1BarrierSet PtrQueueSet static members to ordinary members.

Reviewed-by: shade, tschatzl, rkennke
2018-08-13 18:21:26 -04:00
Vladimir Kozlov
4729c903c6 8207153: Some intrinsic tests take long time to run
Reviewed-by: thartmann, mikael
2018-08-13 13:24:55 -07:00
Claes Redestad
5c3008fbc4 8209120: Archive the Integer.IntegerCache
Reviewed-by: jiangli, alanb, plevart, iklam, mchung
2018-08-13 19:21:43 +02:00
Igor Ignatyev
be5de9ef3b 8209386: [error-prone] StreamResourceLeak in jdk.internal.ed module
Reviewed-by: rriggs
2018-08-10 13:36:10 -07:00
Dean Long
e51b1f0cf6 8187078: -XX:+VerifyOops finds numerous problems when running JPRT
Reviewed-by: kvn
2018-09-05 13:10:40 -07:00
Alex Menkov
cbac17e494 8210243: [TEST] rewrite com/sun/jdi shell tests to java version - step3
Reviewed-by: jcbeyler, cjplummer, sspitsyn
2018-09-05 10:39:16 -07:00
Jean Christophe Beyler
bd5f1aba05 8208186: SetHeapSamplingInterval handles 1 explicitly
Explicitly test for the 0 case (sample everything)

Reviewed-by: amenkov, sspitsyn
2018-09-05 10:17:11 -07:00
Matthias Baesken
8044814e30 8209115: adjust libsplashscreen linux ppc64le builds for easier libpng update
Reviewed-by: prr, dholmes
2018-08-10 09:16:10 +02:00
Ekaterina Pavlova
582c0dafb8 8199486: [Graal] gc/g1/ihop/TestIHOPStatic.java fails by timeout with -Xcomp
Reviewed-by: kvn
2018-08-13 04:02:51 -07:00
Thomas Schatzl
7aabcdee63 8200365: TestOptionsWithRanges.java of '-XX:TLABWasteTargetPercent=100' fails intermittently
For initial TLAB sizing, increase the number of expected refills to 2.

Reviewed-by: phh, sangheki
2018-08-13 12:24:25 +02:00
Thomas Schatzl
044b502383 8205633: TestOptionsWithRanges.java of '-XX:TLABSize=2147483648' fails intermittently
Exclude maximum range value from testing.

Reviewed-by: sangheki, kbarrett
2018-08-13 12:24:25 +02:00
Thomas Schatzl
a9508324e2 8209193: Fix aarch64-linux compilation after -Wreorder changes
Reviewed-by: shade, drwhite
2018-08-13 12:24:25 +02:00
Gunter Haug
93c176ef2e 8209357: [PPC64] Fix build which was broken by 8208672 (Enable -Wreorder)
Reviewed-by: mbaesken, tschatzl
2018-08-13 12:24:25 +02:00
Aleksei Voitylov
1712e272cd 8209380: ARM: cleanup maybe-uninitialized and reorder compiler warnings
Reviewed-by: dholmes, drwhite, tschatzl
2018-08-13 12:24:25 +02:00
Aleksei Voitylov
abb7f64829 8209378: Fix Minimal VM after JDK-8208677
Reviewed-by: coleenp, shade
2018-08-13 10:28:01 +02:00
Coleen Phillimore
d1aea148fe 8207924: serviceability/sa/TestUniverse.java#id0 intermittently fails with assert(get_instanceKlass()->is_loaded()) failed: must be at least loaded
InstanceKlass::implementors() needs the Compile_lock

Reviewed-by: thartmann, eosterlund
2018-08-11 12:49:33 -04:00
Coleen Phillimore
5a80204c23 8209384: ProblemList stressHierarchy metaspace tests
These try to trigger GC by filling metaspace which seems to be not working.

Reviewed-by: jiangli
2018-08-10 22:38:18 -04:00
Brent Christian
51d0a9e122 8205399: Set node color on pinned HashMap.TreeNode deletion
Reviewed-by: martin
2018-08-10 12:05:53 -07:00
Coleen Phillimore
647c7d5344 8164683: Solaris: JVM abuses thread preemption control
Complete removal of preemption control and command line arguments (were deprecated in 11).

Reviewed-by: hseigel, pchilanomate, dholmes
2018-08-10 09:36:01 -04:00
Harold Seigel
83b2fb5b0d 8207778: Add locking to ModuleEntry and PackageEntry tables
Restructure ClassLoaderDataGraph code to simplify using locks in SystemDictionary::do_unloading()

Reviewed-by: lfoltan, coleenp
2018-08-10 09:30:26 -04:00
Boris Ulasevich
092e9e4f81 8206895: aarch64: rework error-prone cmp instuction
Reviewed-by: aph
2018-08-10 14:22:49 +03:00
Weijun Wang
ea95e1ef2e 8201290: keytool importcert fails with CertificateParsingException if unknown certificate algorithms should be imported
Reviewed-by: mullan, xuelei
2018-08-10 17:07:44 +08:00
Prasanta Sadhukhan
f803931f2c 8209343: Test javax/swing/border/TestTitledBorderLeak.java should be marked as headful
Reviewed-by: jdv
2018-08-10 12:36:21 +05:30
Chris Yin
4e2b462116 8208483: Add 5 JNDI tests to com/sun/jndi/dns/FactoryTests/
Reviewed-by: vtewari, rriggs
2018-08-10 13:07:21 +08:00
Jiangli Zhou
a5d14313f5 8207263: Store the Configuration for system modules into CDS archive
Archive boot layer Configuration.

Reviewed-by: redestad, iklam, ccheung
2018-08-10 00:35:57 -04:00
Calvin Cheung
5858a507f4 8208705: [TESTBUG] The -Xlog:cds,cds+hashtables vm option is not always required for appcds tests
Only include the CDS logging option in the tests which require it

Reviewed-by: mseledtsov, jiangli, iklam
2018-08-09 15:52:23 -07:00
Claes Redestad
2c5b52f061 8209186: Rename SimpleThresholdPolicy to TieredThresholdPolicy
Reviewed-by: thartmann, pliden, kvn
2018-08-10 00:20:15 +02:00
Roman Kennke
59ca28bf1c 8209118: Abstract SATBMarkQueueSet's ThreadLocalData access
Reviewed-by: kbarrett, shade
2018-08-09 22:51:48 +02:00
Ekaterina Pavlova
b037ff24a8 8205078: [Graal] org.graalvm.compiler.core.test.VerifyDebugUsageTest fails with "Expected exception: VerificationError"
Reviewed-by: kvn, dnsimon
2018-08-09 11:39:18 -07:00
Mikael Vidstedt
83a51d869e Merge 2018-08-09 10:08:07 -07:00
Prasanta Sadhukhan
a70162e775 8204963: javax.swing.border.TitledBorder has a memory leak
Reviewed-by: serb, kaddepalli
2018-08-09 11:01:59 +05:30
Ichiroh Takiguchi
ff148ce175 8208996: X11 icon window color handing bug
Reviewed-by: serb
2018-08-08 18:31:24 -07:00
Weijun Wang
61d19ee892 8208754: The fix for JDK-8194534 needs updates
Reviewed-by: alanb, igerasim, rhalade, mullan
2018-08-08 08:05:43 +08:00
Phil Race
ec68569fed Merge 2018-08-03 12:52:58 -07:00
Brian Burkhalter
b924bf7233 8186766: UnixNativeDispatcher::readlink() may truncate overlong paths
Reviewed-by: alanb
2018-08-03 12:45:18 -07:00
Phil Race
32ec91ca9b Merge 2018-08-03 09:42:57 -07:00
Sean Coffey
7a791910c3 8208583: Better management of internal KeyStore buffers
Reviewed-by: weijun
2018-08-03 14:14:59 +01:00
Zhengyu Gu
4555c28590 8205921: Optimizing best-of-2 work stealing queue selection
Bias towards stealing from queues that we recently successfully stole from to decrease the number of unsuccessful steal attempts.

Co-authored-by: Thomas Schatzl <thomas.schatzl@oracle.com>
Reviewed-by: eosterlund, kbarrett
2018-08-03 11:06:10 +02:00
Sean Coffey
c4faf01f86 8207775: Better management of CipherCore buffers
Reviewed-by: ascarpino
2018-08-03 09:57:10 +01:00
Daniel D. Daugherty
2ce4abbcc8 8208706: compiler/tiered/ConstantGettersTransitionsTest.java fails to compile
Reviewed-by: dholmes
2018-08-02 22:14:54 -04:00
Igor Ignatyev
b3e18b4a1b 8208701: Fix for JDK-8208655 causes test failures in CI tier1
Reviewed-by: dholmes, dcubed
2018-08-02 16:16:02 -07:00
Igor Ignatyev
940ac1cddc 8208699: remove unneeded imports from runtime tests
Reviewed-by: iklam
2018-08-02 16:15:48 -07:00
Igor Ignatyev
17891770c1 8208655: use JTreg skipped status in hotspot tests
Reviewed-by: kvn, hseigel, iklam
2018-08-02 14:40:55 -07:00
Phil Race
43e1256928 Added tag jdk-12+5 for changeset f8696e0ab9b7 2018-08-02 09:27:40 -07:00
Zhengyu Gu
23db5cd8a0 8208635: Minimal VM build is broken after JDK-8199868 (Support JNI critical functions in object pinning API)
Added missing header file

Reviewed-by: shade, gziemski
2018-08-02 11:13:00 -04:00
Prasanta Sadhukhan
5403b9e228 8203904: javax/swing/JSplitPane/4816114/bug4816114.java: The divider location is wrong
Reviewed-by: serb, kaddepalli
2018-08-01 11:02:19 +05:30
Jean Christophe Beyler
3d94ce71b5 8208249: TriggerUnloadingByFillingMetaspace generates garbage class names
Put a ThreadLocal around the object to be thread safe

Reviewed-by: tschatzl, iignatyev
2018-07-31 10:16:56 -07:00
Jean Christophe Beyler
fc9941ae72 8169004: Fix redundant @requires tags in tests
Reviewed-by: tschatzl, iignatyev
2018-07-31 12:24:47 -07:00
Jean Christophe Beyler
ec76c2046c 8069343: Improve gc/g1/TestHumongousCodeCacheRoots.java to use jtreg @requires
Remove client test entirely and clean up test

Reviewed-by: tschatzl, iignatyev
2018-08-01 09:23:24 -07:00
Jean Christophe Beyler
b184fceaa0 8208246: flags duplications in vmTestbase_vm_g1classunloading tests
Remove duplicate flags for the classunloading tests

Reviewed-by: tschatzl, iignatyev
2018-07-31 10:20:10 -07:00
Igor Ignatyev
d2dd5c4473 8208647: switch jtreg to 4.2b13
Reviewed-by: kvn, dholmes, ihse
2018-08-01 23:06:33 -07:00
Mikhailo Seledtsov
8a5467b9c2 8185531: [TESTBUG] Improve test configuration for shared strings
Added extra test configurations to the tests

Reviewed-by: iklam, gziemski
2018-08-01 19:07:27 -07:00
Kim Barrett
501fc494c0 8208611: Refactor SATBMarkQueue filtering to allow GC-specific filters
Add SATBMarkQueueFilter.

Reviewed-by: tschatzl, eosterlund, rkennke
2018-08-01 19:14:04 -04:00
Igor Ignatyev
65091f8c6d 8174691: [TESTBUG] A number of native hotspot unit tests fail when executed in stand-alone mode
Reviewed-by: kvn, tschatzl
2018-08-01 10:04:08 -07:00
Naoto Sato
4ab515f85c 8208080: Locale extensions via Service provider is not working for region extensions
Reviewed-by: rriggs, nishjain
2018-08-01 09:33:56 -07:00
Nishit Jain
b2a6aa3e80 8208560: ChoiceFormat class has unused constants needs cleanup
Reviewed-by: rriggs, naoto
2018-08-01 18:02:25 +05:30
Priya Lakshmi Muthuswamy
24fe001ecb 8208484: color contrast issues in a couple of spec files
Reviewed-by: jjg, ihse
2018-08-01 12:36:02 +05:30
David Buck
36b45330b8 8191006: hsdis disassembler plugin does not compile with binutils 2.29+
Update call to disassembler() function to match new signature used by Binutils

Reviewed-by: gromero, kvn
2018-08-01 02:21:02 -04:00
Weijun Wang
b9bfd45c73 8208602: Cannot read PEM X.509 cert if there is whitespace after the header or footer
Reviewed-by: xuelei
2018-08-01 13:35:08 +08:00
David Buck
d4381002ac 8208541: non-ASCII characters in hsdis UPL text
Replace Unicode left/right double quote pair with normal ASCII double quotes

Reviewed-by: jrose
2018-08-01 01:40:44 -04:00
Daniel D. Daugherty
e7114f64f3 8208605: Fix for 8199868 breaks tier1 build
Move variable declarations to make studio compiler happy.

Reviewed-by: kbarrett
2018-07-31 17:07:43 -04:00
Coleen Phillimore
16f9e07ba1 8208074: [TESTBUG] vmTestbase/nsk/jvmti/RedefineClasses/StressRedefineWithoutBytecodeCorruption/TestDescription.java failed with NullPointerException
Fixed refactoring caused by JDK-8203820

Reviewed-by: dholmes, sspitsyn, cjplummer
2018-07-31 15:57:52 -04:00
Harold Seigel
38db1d1620 8202171: Some oopDesc functions compare this with NULL
Add Method* parameter and made verify* methods static to avoid 'this' comparison with NULL, Added NULL checks before calling print_on() methods.

Reviewed-by: kbarrett, coleenp
2018-07-31 14:24:10 -04:00
Zhengyu Gu
b71f3e7104 8199868: Support JNI critical functions in object pinning API
Pin/unpin incoming array arguments of critical native JNI call

Reviewed-by: shade, adinn
2018-07-31 13:12:06 -04:00
Maurizio Cimadamore
9d25c65fda 8208524: IntelliJ support broken since 2018.2
Move build.xml out of .idea folder

Reviewed-by: stuefe
2018-07-31 16:49:51 +01:00
Harold Seigel
7d04a31fc8 8208399: Metadata methods print_(value_)on_maybe_null() compare 'this' to NULL
Add Method* parameter and make method static to avoid 'this' comparison with NULL

Reviewed-by: lfoltan, gziemski, coleenp
2018-07-31 09:55:09 -04:00
Zhengyu Gu
c9d506055c 8208499: NMT: Missing memory tag for Safepoint polling page
Added missing memory tag and cleanup memory type enum

Reviewed-by: shade, coleenp
2018-07-31 07:35:16 -04:00
Harold Seigel
c277f9ed8e 8207779: Method::is_valid_method() compares 'this' with NULL
Add Method* parameter and make method static to avoid 'thi's comparison with NULL

Reviewed-by: lfoltan, coleenp
2018-07-30 16:35:54 -04:00
Michal Vala
d86f3a8cb2 8208084: Windows build failure - "'snprintf': identifier not found"
Reviewed-by: kbarrett, coleenp
2018-07-30 14:08:30 -04:00
Daniel D. Daugherty
10592b0d36 8208521: ProblemList more tests that fail due to 'Error attaching to process: Can't create thread_db agent!'
Reviewed-by: cjplummer
2018-07-30 14:22:36 -04:00
Adam Petcher
1c4396ebae 8208209: Improve TLS connection stability again
Reviewed-by: xuelei
2018-07-30 13:53:30 -04:00
Priya Lakshmi Muthuswamy
38f91617c5 8203791: Remove "compatibility" features from Table.java
Reviewed-by: jjg
2018-07-30 11:52:05 +05:30
Chris Yin
73477220be 8208363: test/jdk/java/lang/Package/PackageFromManifest.java missing module dependencies declaration
Reviewed-by: lancea, mchung
2018-07-30 09:06:14 +08:00
Patricio Chilano Mateo
2d1029c256 8171157: Convert ObjectMonitor_test to GTest
Migration of the ObjectMonitor test to GTest. Two GTests were actually created, one for ObjectMonitor and one for ObjectSynchronizer.

Reviewed-by: dcubed, hseigel
2018-07-27 16:29:36 -04:00
Nishit Jain
c1bbdfaa2c 8021322: [Fmt-Ch] Implementation of ChoiceFormat math methods should delegate to java.lang.Math methods
Reviewed-by: naoto, darcy
2018-07-27 14:20:07 +05:30
Thomas Schatzl
74a31c5c16 8208297: Allow printing of taskqueue stats if compiled in in product builds
Reviewed-by: kbarrett
2018-07-27 09:49:03 +02:00
Daniil Titov
31cf8b1c65 8207364: nsk/jvmti/ResourceExhausted/resexhausted003 fails to start
Reviewed-by: sspitsyn, cjplummer
2018-07-26 16:22:58 -07:00
Jean Christophe Beyler
a98f40467a 8208251: serviceability/jvmti/HeapMonitor/MyPackage/HeapMonitorGCCMSTest.java fails intermittently on Linux-X64
Lower the interval rate and check GC objects too

Reviewed-by: dcubed, sspitsyn
2018-07-26 11:53:59 -07:00
Alex Menkov
2a213d1685 8199155: Accessibility issues in jdk.jdi
Reviewed-by: dtitov, sspitsyn
2018-07-26 11:31:15 -07:00
Daniel D. Daugherty
b62d703d9a 8208305: ProblemList compiler/jvmci/compilerToVM/GetFlagValueTest.java
Reviewed-by: hseigel, kvn
2018-07-26 13:08:42 -04:00
Phil Race
1387c87093 Merge 2018-07-26 10:00:40 -07:00
Phil Race
dea6137c6a Added tag jdk-12+4 for changeset 499b873761d8 2018-07-26 09:30:58 -07:00
Yasumasa Suenaga
f45dc7748e 8205992: jhsdb cannot attach to Java processes running in Docker containers
Reviewed-by: cjplummer, jgeorge
2018-07-27 00:54:39 +09:00
David Buck
a3e7f01f33 8208183: update HSDIS plugin license to UPL
Reviewed-by: simonis, adinn, jrose
2018-07-26 10:56:58 -04:00
Jonathan Gibbons
f0e9643542 8208227: tools/jdeps/DotFileTest.java fails on Win-X64
Reviewed-by: darcy
2018-07-25 17:26:35 -07:00
Joe Darcy
2517ca3937 8208200: Add missing periods to sentences in RoundEnvironment specs
Reviewed-by: jjg
2018-07-25 17:22:26 -07:00
Daniel D. Daugherty
691c332a70 8208226: ProblemList com/sun/jdi/BasicJDWPConnectionTest.java
Reviewed-by: sspitsyn
2018-07-25 17:22:25 -04:00
Joe Darcy
a29cd6d430 8208201: Update SourceVersion.RELEASE_11 docs to mention var for lambda param
Reviewed-by: jjg
2018-07-25 12:54:58 -07:00
Roman Kennke
ca473200b7 8204970: Remaing object comparisons need to use oopDesc::equals()
Reviewed-by: eosterlund, zgu
2018-07-25 21:47:40 +02:00
Daniel D. Daugherty
86629a36f0 8208205: ProblemList tests that fail due to 'Error attaching to process: Can't create thread_db agent!'
Reviewed-by: cjplummer
2018-07-25 15:38:37 -04:00
Jean Christophe Beyler
12bf1a20d0 8207765: HeapMonitorTest.java intermittent failure
Lower the interval rate and check GC objects too

Reviewed-by: dcubed, sspitsyn
2018-07-25 10:51:16 -07:00
Joe Darcy
ac5685e827 8190886: package-info handling in RoundEnvironment.getElementsAnnotatedWith
Reviewed-by: vromero, jlahoda
2018-07-25 12:32:59 -07:00
Daniel D. Daugherty
6602e30cec 8208189: ProblemList compiler/graalunit/JttThreadsTest.java
Reviewed-by: darcy
2018-07-25 12:32:06 -04:00
Prasanta Sadhukhan
338fb4d94a 8205535: Useless (or buggy) call to Math.round on int input
Reviewed-by: jdv
2018-07-25 15:36:37 +05:30
Chris Yin
30f22170ef 8198882: Add 10 JNDI tests to com/sun/jndi/dns/AttributeTests/
Reviewed-by: vtewari, rriggs
2018-07-25 11:03:07 +08:00
Alexandre Iline
ffc4cbe5da 8208157: requires.VMProps throws NPE for missing properties in "release" file
Reviewed-by: iignatyev, lancea
2018-07-24 08:58:32 -07:00
Jonathan Gibbons
955ce37d60 8207214: Broken links in JDK API serialized-form page
Reviewed-by: hannesw
2018-07-24 11:37:43 -07:00
Matthias Baesken
1dcf1dda27 8207941: javax/swing/plaf/basic/BasicGraphicsUtils/8132119/bug8132119.java fails on machines without Arial font [testbug]
Reviewed-by: goetz, psadhukhan
2018-07-24 09:27:42 +02:00
Severin Gehwolf
1ab91ea928 8208091: SA: jhsdb jstack --mixed throws UnmappedAddressException on i686
Be sure to use the same register index in native and Java code.

Reviewed-by: sballal, cjplummer, tbell
2018-07-23 18:08:46 +02:00
Claes Redestad
5ddac96c10 8209837: Avoid initializing ExpiringCache during bootstrap
Reviewed-by: sundar, forax
2018-08-24 14:04:34 +02:00
Phil Race
f921743302 Merge 2018-07-19 10:53:38 -07:00
Phil Race
28e828130d Merge 2018-07-19 10:17:22 -07:00
Phil Race
f8f90df4d7 Added tag jdk-12+3 for changeset 990db216e719 2018-07-19 09:46:29 -07:00
Joe Darcy
269286da50 8207816: Align declaration of SerializedLambda.readResolve with serialization conventions
Reviewed-by: briangoetz
2018-07-19 09:20:08 -07:00
Matthias Baesken
198715ae97 8207395: jar has issues with UNC-path arguments for the jar -C parameter [windows]
Reviewed-by: goetz, sherman
2018-07-19 11:04:46 +02:00
Ivan Gerasimov
ad816a0809 8207314: Unnecessary reallocation when constructing WeakHashMap from a large Map
Reviewed-by: martin
2018-07-23 22:07:55 -07:00
Vladimir Kozlov
2f4efb7871 8207262: enable applications/ctw/modules/java_desktop_2.java test again
Reviewed-by: iignatyev
2018-07-23 18:29:35 -07:00
Daniel D. Daugherty
f52c4365ca 8208092: ProblemList serviceability/sa/ClhsdbCDSCore.java
Reviewed-by: sspitsyn
2018-07-23 14:41:06 -04:00
Antonios Printezis
9ff255dafe 8207849: Allow the addition of more number to the Java version string
Reviewed-by: erikj
2018-07-23 11:38:28 -04:00
Thomas Schatzl
7883ea1c31 8207953: Remove dead code in G1CopyingKeepAliveClosure
Reviewed-by: kbarrett
2018-07-23 17:32:04 +02:00
Vicente Romero
8e61321b6c 8205493: OptionSmokeTest.java uses hard-coded release values
Reviewed-by: darcy
2018-07-20 14:48:41 -07:00
Joe Darcy
07cb147927 8208060: Additional corrections of serial-related declarations
Reviewed-by: rriggs, lancea
2018-07-20 14:46:43 -07:00
Ioi Lam
9959e34180 8203382: Rename SystemDictionary::initialize_wk_klass to resolve_wk_klass
Reviewed-by: jiangli
2018-07-20 12:19:28 -07:00
Coleen Phillimore
39dd04b953 8207359: Make SymbolTable increment_refcount disallow zero
Use cmpxchg for non permanent symbol refcounting, and pack refcount and length into an int.

Reviewed-by: gziemski, kbarrett, iklam
2018-07-20 14:52:11 -04:00
Xin Liu
6cbef1de5d 8206075: On x86, assert on unbound assembler Labels used as branch targets
Reviewed-by: kvn, mdoerr, phh
2018-07-20 11:55:05 -07:00
Hamlin Li
069fa394d0 8207316: java/nio/channels/spi/SelectorProvider/inheritedChannel/InheritedChannelTest.java failed
Reviewed-by: alanb, simonis
2018-07-19 16:22:19 +08:00
Krishna Addepalli
2d2dd74c80 8206343: There is a typo in the java documentation of javax.swing.JScrollBar
Reviewed-by: prr, mhalder
2018-07-19 13:49:44 +05:30
Joe Darcy
a5e27072fe 8203263: Remove unnecessary throws clauses from serialization-related methods
Reviewed-by: prr
2018-07-18 16:13:21 -07:00
Jamil Nimeh
1f273bde76 8207237: SSLSocket#setEnabledCipherSuites is accepting empty string
Reviewed-by: xuelei
2018-07-18 14:32:46 -07:00
Rajan Halade
ba7bab5fc9 8203230: update VerifyCACerts test
Reviewed-by: mullan
2018-07-18 09:50:04 -07:00
Joe Darcy
e85841f34b 8207751: Remove misleading serialVersionUID from JulienFields.Field
Reviewed-by: lancea
2018-07-18 08:27:53 -07:00
Roger Riggs
7d4da87a14 8189717: Too much documentation of ProcessBuilder.start copied to ProcessBuilder.startPipeline
Reviewed-by: bpb, lancea
2018-07-18 09:46:03 -04:00
Joe Darcy
fafd1b7536 8193462: Fix Filer handling of package-info initial elements
Reviewed-by: vromero
2018-07-18 00:23:06 -07:00
Joe Darcy
19c364592c 8193214: Incorrect annotations.without.processors warnings with JDK 9
Reviewed-by: vromero
2018-07-18 00:16:37 -07:00
Jean Christophe Beyler
a6ff367b24 8207765: HeapMonitorStatIntervalTest.java fails with ZGC
Add a calculation of array sizes before test to satisfy ZGC support

Reviewed-by: amenkov, sspitsyn
2018-07-19 18:21:24 -07:00
Christian Tornqvist
4805473049 8207855: Make applications/jcstress invoke tests in batches
Reviewed-by: kvn, iignatyev
2018-07-20 09:15:54 -04:00
Daniil Titov
301f3c3bb5 8204695: [Graal] vmTestbase/nsk/jdi/ClassPrepareRequest/addSourceNameFilter/addSourceNameFilter002/addSourceNameFilter002.java fails
Reviewed-by: sspitsyn, cjplummer
2018-07-19 16:53:33 -07:00
Vicente Romero
898e0f8607 8206874: Evaluate LoadClassFromJava6CreatedJarTest.java after dropping -source 6
Reviewed-by: darcy
2018-07-19 15:13:10 -07:00
Ivan Gerasimov
121c59eb6d 8207753: Handle to process snapshot is leaked if Process32First() fails
Reviewed-by: rriggs
2018-07-19 13:41:26 -07:00
Tom Rodriguez
5226a6a2bb 8207202: [Graal] compiler/graalunit/CoreTest.java fails
Reviewed-by: kvn
2018-07-19 12:55:24 -07:00
Naoto Sato
602a497270 8206886: Java does not set the default format locale correctly on mac10.13
Reviewed-by: rriggs
2018-07-19 11:15:38 -07:00
Alex Buckley
85f79b0dab 8207393: ServiceLoader class description improvements
Reviewed-by: alanb, lancea
2018-07-18 07:39:54 +01:00
Martin Buchholz
796a53f6e5 8206863: A closed JarVerifier.VerifierStream should throw IOException
Co-authored-by: Tobias Thierer <tobiast@google.com>
Reviewed-by: rasbold
2018-07-17 17:36:27 -07:00
Ivan Gerasimov
b30fe07450 8207750: Native handle leak in java.io.WinNTFileSystem.list()
Reviewed-by: bpb
2018-07-17 17:17:16 -07:00
Brian Burkhalter
01fd04b862 8207748: Fix for 8202794 breaks tier1 builds
Reviewed-by: kbarrett, darcy
2018-07-17 16:22:26 -07:00
Roger Riggs
e1ee13c514 8205610: [TESTLIB] Improve listing of open file descriptors
Reviewed-by: lancea
2018-07-17 17:14:03 -04:00
Kim Barrett
9a9c824ece 8202353: os::readdir should use readdir instead of readdir_r
8202835: jfr/event/os/TestSystemProcess.java fails on missing events

Os::readdir uses POSIX readdir, drop buffer arg, fix JFR uses.

Reviewed-by: coleenp, tschatzl, bsrbnd
2018-07-17 15:59:47 -04:00
Bernard Blaser
f4723253b6 8202794: Native Unix code should use readdir rather than readdir_r
Reviewed-by: alanb, bsrbnd
2018-07-17 12:03:10 -07:00
Calvin Cheung
0140ddadab 8204591: Expire/remove the UseAppCDS option in JDK 12
Reviewed-by: jiangli, mseledtsov, iklam
2018-07-17 11:58:53 -07:00
Jan Lahoda
66025558bb 8207229: Trees.getScope crashes for broken lambda
8207230: Trees.getScope runs Analyzers

Reviewed-by: vromero
2018-07-17 14:28:56 +02:00
Alan Bateman
df45a1b57e 8207340: (fs) UnixNativeDispatcher close and readdir usages should be fixed
Reviewed-by: bpb
2018-07-17 08:10:48 +01:00
Joe Darcy
a376d5dab4 8207248: Reduce incidence of compiler.warn.source.no.bootclasspath in javac tests
Reviewed-by: vromero
2018-07-16 21:53:49 -07:00
Brian Burkhalter
769e802001 8206448: (fs) Extended attributes assumed to be enabled on ext3 (lnx)
Assume extended attributes are only explicitly enable on ext3

Reviewed-by: mbaesken, alanb
2018-07-16 10:58:28 -07:00
Ivan Gerasimov
bd236c55d0 8207016: Avoid redundant native memory allocation in getFinalPath()
Reviewed-by: alanb
2018-07-16 10:07:22 -07:00
Rajan Halade
a4bf30fb50 8207321: Merge error with 8199779
Reviewed-by: mullan
2018-07-16 08:59:39 -07:00
Lois Foltan
cc58241bec 8205611: Improve the wording of LinkageErrors to include module and class loader information
Clean up the wording of loader constraint violations to include the module and class loader information.

Reviewed-by: coleenp, goetz, hseigel
2018-07-16 11:34:17 -04:00
Lois Foltan
e8fcd927c3 8178712: ResourceMark may be missing inside initialize_[vi]table
Clean up use of ResourceMark within initialize_[vi]table.

Reviewed-by: ccheung, iklam, jiangli
2018-07-16 09:06:33 -04:00
Phil Race
a6bd52da93 Merge 2018-07-12 11:09:23 -07:00
Severin Gehwolf
3aa10b4fab 8207057: No debug info for assembler files
Generate debug info for assembler files as needed.

Reviewed-by: erikj
2018-07-12 16:28:31 +02:00
Jan Lahoda
fe80e55647 8189747: JDK9 javax.lang.model.util.Elements#getTypeElement regressed 1000x in performance
Caching the results of Elements.getTypeElement/getPackageElement

Reviewed-by: darcy
2018-07-16 12:35:25 +02:00
Boris Ulasevich
2131cb484e 8206265: aarch64 jtreg: assert in TestOptionsWithRanges.jtr
Limit flag range to don't overflow 12bit instruction operand

Reviewed-by: aph, dsamersoff
2018-07-15 18:16:55 +03:00
Jesper Wilhelmsson
4fc510cc89 Merge 2018-07-14 02:14:54 +02:00
Mikael Vidstedt
0103ed733d 8207210: Problem list javax/sound/sampled/Clip/AutoCloseTimeCheck.java
Reviewed-by: prr
2018-07-12 15:02:41 -07:00
John Jiang
5074bbb767 8206443: Update security libs manual test to cope with removal of javac -source/-target 6
Change compile -source/-target from 1.6 to 1.7

Reviewed-by: xuelei
2018-07-14 07:31:26 +08:00
Patricio Chilano Mateo
2b397c3c13 8206470: Incorrect use of os::lasterror in ClassListParser
The change is for future-proof the code in case errno gets overwritten inside the allocation logic.

Reviewed-by: dholmes
2018-07-13 13:58:17 -04:00
Ivan Gerasimov
78f3c8a7d4 8207145: (fs) Native memory leak in WindowsNativeDispatcher.LookupPrivilegeValue0
Reviewed-by: alanb
2018-07-12 06:04:57 -07:00
Zhengyu Gu
1c976267be 8207056: Epsilon GC to support object pinning
Epsilon GC to use object pinning to avoid expensive GCLocker

Reviewed-by: shade, rkennke
2018-07-11 13:55:38 -04:00
Jesper Wilhelmsson
90f21d1a34 Added tag jdk-12+2 for changeset 69b438908512 2018-07-12 12:22:54 +02:00
Joe Darcy
e18f343141 8207055: Make javac -help output for -source and -target more informative
Reviewed-by: jjg
2018-07-11 16:12:18 -07:00
Brent Christian
c7a1b6431d 8207005: Disable the file canonicalization cache by default
Reviewed-by: alanb, bpb
2018-07-11 14:32:42 -07:00
Jesper Wilhelmsson
dafb3af62d Merge 2018-07-11 21:41:43 +02:00
Coleen Phillimore
fb3b911fbe 8198720: Obsolete PrintSafepointStatistics, PrintSafepointStatisticsTimeout and PrintSafepointStatisticsCount options
Convert PrintSafepointStatistics to UL

Reviewed-by: shade, lfoltan
2018-07-11 14:44:05 -04:00
Zhengyu Gu
0a1e54644b 8206183: Possible construct EMPTY_STACK and allocation stack, etc. on first use
Uses "construct on First Use Idiom" pattern to workaround static initialization order

Reviewed-by: dholmes, minqi
2018-07-11 13:28:07 -04:00
Joe Darcy
2363998598 8173606: Deprecate constructors of 7-era visitors
Reviewed-by: vromero, jjg
2018-07-11 08:24:39 -07:00
Aleksey Shipilev
4f20e7f453 8206931: Misleading "COMPILE SKIPPED: invalid non-klass dependency" compile log
Reviewed-by: vlivanov, never
2018-07-11 08:44:00 +02:00
Calvin Cheung
a10d6e71d8 8205946: JVM crash after call to ClassLoader::setup_bootstrap_search_path()
Exit vm if setting of boot class path fails.

Reviewed-by: lfoltan, jiangli, dholmes
2018-07-10 19:04:13 -07:00
Doug Lea
85daddd4cf 8205620: Miscellaneous changes imported from jsr166 CVS 2018-07
Reviewed-by: martin, psandoz
2018-07-10 10:24:08 -07:00
Doug Lea
08fb8e4d1c 8205576: forkjoin/FJExceptionTableLeak.java fails "AssertionError: failed to satisfy condition"
Reviewed-by: martin, psandoz, dholmes, tschatzl
2018-07-10 10:24:08 -07:00
Doug Lea
fce671f409 8206123: ArrayDeque created with default constructor can only hold 15 elements
Reviewed-by: martin, psandoz, igerasim
2018-07-10 10:24:08 -07:00
Coleen Phillimore
859ba8ca28 8206471: Race with ConcurrentHashTable deleting items on insert with cleanup thread
Only fetch Node::next once and use that result.

Reviewed-by: hseigel, dholmes
2018-07-10 11:13:33 -04:00
Chris Hegarty
c29276cc0d 8196902: Better HTTP Redirection
Reviewed-by: dfuchs
2018-07-10 08:20:13 +01:00
David Holmes
7d7116339a 8206954: Test runtime/Thread/ThreadPriorities.java crashes with SEGV in pthread_getcpuclockid
Run the new runtime/jni/terminatedThread/TestTerminatedThread.java test in othervm mode

Reviewed-by: alanb, mikael
2018-07-10 03:14:55 -04:00
David Holmes
e9ad46f26c 8205878: pthread_getcpuclockid is expected to return 0 code
Reviewed-by: cjplummer, amenkov, coleenp
2018-07-09 20:17:32 -04:00
Xueming Shen
84234d1abb 8206389: JarEntry.setCreation/LastAccessTime without setLastModifiedTime causes Invalid CEN header
Reviewed-by: alanb, martin
2018-07-09 13:08:30 -07:00
Kim Barrett
051f4ed627 8204834: Fix confusing "allocate" naming in OopStorage
Allocate_list => allocation_list and so on.

Reviewed-by: dholmes, tschatzl, coleenp
2018-07-09 13:35:55 -04:00
Thomas Schatzl
66e825aa41 8206453: Taskqueue stats should count real steal attempts, not calls to GenericTaskQueueSet::steal
Reviewed-by: ehelin, kbarrett
2018-07-09 14:12:50 +02:00
David Holmes
466ccfe781 8205966: [testbug] New Nestmates JDI test times out with Xcomp on sparc
Reviewed-by: mikael, sspitsyn
2018-07-08 20:00:46 -04:00
Jiangli Zhou
9ba5bab865 8202035: Archive the set of ModuleDescriptor and ModuleReference objects for observable system modules with unnamed initial module
Support system module archiving with unnamed initial module at dump time.

Co-authored-by: Alan Bateman <alan.bateman@oracle.com>
Reviewed-by: erikj, coleenp, mchung, iklam, ccheung
2018-07-08 12:43:05 -04:00
Roger Riggs
4d93f17fe1 8206495: Redundant System.setProperty(null) tests
Reviewed-by: mchung, lancea
2018-07-06 15:22:07 -04:00
Joe Darcy
03597d010c 8206439: Remove javac -source/-target 6 from langtools regression tests
Reviewed-by: mcimadamore
2018-07-06 10:28:56 -07:00
Joe Darcy
d2de786263 8206440: Remove javac -source/-target 6 from jdk regression tests
Reviewed-by: alanb
2018-07-06 09:37:44 -07:00
Joe Wang
3cf62646ed 8206164: forgot to "throw" TransformerConfigurationException
Reviewed-by: lancea
2018-07-06 09:26:01 -07:00
Roman Kennke
9ec15cedd0 8206457: Code paths from oop_iterate() must use barrier-free access
Reviewed-by: eosterlund, shade
2018-07-06 16:04:19 +02:00
Aleksey Shipilev
0d902d2b56 8208665: Amend cross-compilation docs with qemu-debootstrap recipe
Reviewed-by: martin, glaubitz, erikj
2018-08-24 09:38:11 +02:00
Tobias Hartmann
a494a819eb 8209833: C2 compilation fails with "assert(ex_map->jvms()->same_calls_as(_exceptions->jvms())) failed: all collected exceptions must come from the same place"
Deoptimize if exception is thrown in _clone intrinsic.

Reviewed-by: kvn
2018-08-24 08:17:23 +02:00
Leonid Mesnik
aad3230b1d 8209150: [TESTBUG] Add logging to verify JDK-8197901 to a different test
Reviewed-by: coleenp, mseledtsov
2018-08-23 16:47:53 -07:00
Gary Adams
14bb47410b 8034084: nsk.nsk/jvmti/ThreadStart/threadstart003 Wrong number of thread end events
Reviewed-by: amenkov, dholmes, sspitsyn
2018-08-23 07:54:19 -04:00
Kim Barrett
23f0fb4cde 8209850: Allow NamedThreads to use GlobalCounter critical sections
Add NamedThreads iterator and make GlobalCounter use it.

Reviewed-by: eosterlund, rehn
2018-08-23 18:14:53 -04:00
Joe Wang
8b138c684a 8209873: Typo in javax.xml.validation.Validator.validate documentation
Reviewed-by: lancea
2018-08-23 12:57:40 -07:00
Ivan Gerasimov
ffa4cfe355 8209171: Simplify Java implementation of Integer/Long.numberOfTrailingZeros()
Co-authored-by: Martin Buchholz <martinrb@google.com>
Reviewed-by: martin
2018-08-23 12:09:46 -07:00
Ivan Gerasimov
acaf155de7 8209851: Algorithm name is compared via reference identity
Reviewed-by: mullan
2018-08-23 09:36:13 -07:00
Calvin Cheung
c3adb5f87d 8207211: [TESTBUG] Remove excessive output from CDS/AppCDS tests
Changed the value of the property test.cds.copy.child.stdout to false so that stdout of child processes are logged in files. Each stdout and stderr file will have a unique name.

Reviewed-by: iklam
2018-08-23 09:35:09 -07:00
Patricio Chilano Mateo
78363850b9 8209854: ProblemList MemberNameLeak
MemberNameLeak.java moved to ProblemList due to intermittent failure after 8206423

Reviewed-by: coleenp
2018-08-23 11:33:51 -04:00
Per Lidén
14443eec10 8209883: ZGC: Compile without C1 broken
Reviewed-by: eosterlund, shade
2018-08-23 14:31:27 +02:00
Sean Coffey
50ec35819d 8209129: Further improvements to cipher buffer management
Reviewed-by: weijun, igerasim
2018-08-23 11:37:14 +01:00
Per Lidén
58e2f2d41c 8209831: ZGC: Clean up ZRelocationSetSelectorGroup::semi_sort()
Reviewed-by: eosterlund, kbarrett
2018-08-23 10:52:27 +02:00
Joe Wang
8ead3758cb 8209615: ParseError in XMLEventReader on a valid input
Reviewed-by: lancea
2018-08-22 14:28:47 -07:00
Dean Long
2406a52bd6 8209651: better TLS poll for x64 C2
Reviewed-by: kvn
2018-08-22 13:53:48 -07:00
Jesper Wilhelmsson
ed3779b175 Added tag jdk-12+8 for changeset 492b366f8e57 2018-08-22 21:48:39 +02:00
Mandy Chung
8a10925316 8167314: Enable the check to detect duplicate provides in in GenModuleInfoSource
Reviewed-by: lancea
2018-08-22 13:47:47 -05:00
Thomas Schatzl
6f880d7f48 8209062: Clean up G1MonitoringSupport
Reviewed-by: phh, sangheki
2018-08-22 20:37:07 +02:00
Thomas Schatzl
0d78eb91db 8209061: Move G1 serviceability functionality to G1MonitoringSupport
Reviewed-by: phh, sangheki
2018-08-22 20:37:07 +02:00
Thomas Schatzl
5c94ea21e7 8209700: Remove HeapRegionSetBase::RegionSetKind for a more flexible approach
Reviewed-by: kbarrett, phh
2018-08-22 20:37:07 +02:00
Thomas Schatzl
0cad83662a 8209698: Remove "Pinned" from HeapRegionTraceType
Reviewed-by: iklam
2018-08-22 20:37:07 +02:00
Thomas Schatzl
8e264e259d 8208498: Put archive regions into a first-class HeapRegionSet
Maintain archive regions in a HeapRegionSet like other region types.

Reviewed-by: phh, sangheki
2018-08-22 20:37:07 +02:00
Alex Menkov
1b39447545 8209605: com/sun/jdi/BreakpointWithFullGC.java fails with ZGC
Reviewed-by: sspitsyn, dholmes
2018-08-22 10:28:34 -07:00
Daniil Titov
f1553a5f0f 8202342: [Graal] fromTonga/nsk/jvmti/unit/FollowReferences/followref003/TestDescription.java fails with "Location mismatch" errors
Reviewed-by: sspitsyn, amenkov
2018-08-22 08:31:15 -07:00
Ioi Lam
5b2c081460 8208658: Make CDS archived heap regions usable even if compressed oop encoding has changed
Relocate and patch archive regions if necessary

Reviewed-by: jiangli, tschatzl
2018-08-14 09:59:37 -07:00
Pengfei Li
aafb128d89 8209783: AArch64: Combine Multiply and Neg operations in C2
Generate mneg instructions for a*(-b) or (-a)*b to save one instruction

Reviewed-by: adinn
2018-08-22 16:06:51 +01:00
Roland Westrelin
40af989884 8209686: cleanup arguments to PhaseIdealLoop() constructor
Reviewed-by: thartmann, kvn, pliden
2018-08-22 10:36:39 +02:00
Thomas Schatzl
2ffded2a4b 8209839: [Backout] Backout JDK-8206467 Refactor G1ParallelCleaningTask into shared
Reviewed-by: zgu
2018-08-22 16:01:29 +02:00
Roman Kennke
83d1dd7d9a 8209667: Explicit barriers for C1/LIR
Reviewed-by: eosterlund, roland
2018-08-19 20:00:57 +02:00
Coleen Phillimore
b1ce2c0fe8 8208172: SIGSEGV when owner of invokedynamic bootstrap method throws an exception - Symbol::increment_refcount()+0x0
Table for resolution errors always expect non-null message string.

Reviewed-by: dholmes, iklam
2018-08-22 07:51:07 -04:00
Erik Österlund
ce61e39060 8208601: Introduce native oop barriers in C2 for OopHandle
Reviewed-by: neliasso, kvn
2018-08-22 13:06:33 +02:00
Roman Kennke
d8ffa83e7a 8209801: Rename C1_WRITE_ACCESS and C1_READ_ACCESS decorators to ACCESS_READ and ACCESS_WRITE
Reviewed-by: kbarrett, pliden
2018-08-22 13:01:26 +02:00
Roland Westrelin
417149e74a 8209684: Intrinsics that assume some input non null should use GraphKit::must_be_not_null()
Reviewed-by: kvn, thartmann
2018-08-22 10:09:06 +02:00
Roland Westrelin
f3e518394b 8209420: Track membars for volatile accesses so they can be properly optimized
Reviewed-by: adinn, aph, thartmann
2018-08-14 16:54:47 +02:00
Weijun Wang
67a1517a4d 8209829: SpnegoUnknownMech.java does not contain the SpnegoUnknownMech class
Reviewed-by: dholmes
2018-08-22 15:10:40 +08:00
Ioi Lam
593590305d 8209826: Undefined reference to os::write after JDK-8209657 (filemap.hpp cleanup)
Include os_inline.hpp instead

Reviewed-by: jiangli
2018-08-21 20:23:34 -07:00
Weijun Wang
dcb930f123 8186186: GSSContext.isEstablished() can return true on error state
Reviewed-by: weijun
2018-08-21 20:19:46 -07:00
Weijun Wang
73ac71d532 8209771: jdk.test.lib.Utils::runAndCheckException error
Reviewed-by: dholmes
2018-08-22 11:10:45 +08:00
Ioi Lam
73951ab5d9 8209657: Refactor filemap.hpp to simplify integration with Serviceability Agent
Added src/hotspot/share/include/cds.h

Reviewed-by: ccheung, sspitsyn, jgeorge
2018-08-17 13:53:53 -07:00
Zhengyu Gu
bd0f1453dc 8206467: Refactor G1ParallelCleaningTask into shared
Refactored and moved G1ParllelCleaningTask to be shared among GCs

Reviewed-by: rkennke, kbarrett
2018-08-21 20:29:57 -04:00
Leonid Mesnik
85a5893183 8209758: 2 classes with same name G1PrintCollectionSetClosure cause crash when logging is enabled
Reviewed-by: tschatzl, kbarrett
2018-08-21 13:17:29 -07:00
Christian Thalinger
d9bb30837a 8209689: Compiler.isGraalEnabled should not check jvmci.Compiler property
Reviewed-by: kvn
2018-08-21 14:14:28 +02:00
Tom Rodriguez
9c4f2b7294 8209624: [JVMCI] Invalidate nmethods instead of directly unloading them when the InstalledCode is dropped
Reviewed-by: kvn
2018-08-21 08:38:02 -07:00
Patricio Chilano Mateo
4ef5590fa7 8206423: Use locking for cleaning ResolvedMethodTable
ServiceThread is now in charge of cleaning ResolvedMethodTable entries

Reviewed-by: gziemski, dholmes, coleenp
2018-08-21 10:37:02 -04:00
Coleen Phillimore
eca24bfb55 8209792: Remove ClassLoaderDataGraph::keep_alive_cld_do
Unnecessary

Reviewed-by: zgu, tschatzl
2018-08-21 10:03:22 -04:00
Coleen Phillimore
dc556f4086 8209738: Remove ClassLoaderDataGraph::*oops_do functions
Make walking CLDG more consistent.

Reviewed-by: dholmes, tschatzl
2018-08-21 09:33:41 -04:00
Roman Kennke
f6bcc38500 8209668: Explicit barriers for C1/assembler
Reviewed-by: roland, eosterlund
2018-08-21 13:12:15 +02:00
Priya Lakshmi Muthuswamy
f1173ad06c 8203792: Remove "compatibility" features from Head.java
Reviewed-by: jjg, sundar
2018-08-21 11:41:54 +05:30
Ioi Lam
bc62b3a40e 8209647: constantPoolHandle::constantPoolHandle(ConstantPool*) when precompiled header is disabled
Added fieldDescriptor.inline.hpp

Reviewed-by: coleenp, shade
2018-08-20 13:58:23 -07:00
Tim Bell
846e25f099 8209760: merge error: restore ea in make/conf/jib-profiles.js
Reviewed-by: mikael
2018-08-20 16:18:56 -07:00
Jamil Nimeh
8eb45613db 8208350: Disable all DES cipher suites
Reviewed-by: xuelei, mullan
2018-08-20 15:37:47 -07:00
Mikael Vidstedt
95db6924f2 Merge 2018-08-20 14:19:30 -07:00
Igor Ignatyev
89a9456801 8209740: typo in test/lib/jtreg/SkippedException.java
Reviewed-by: kvn
2018-08-20 11:37:57 -07:00
Joe Wang
0afc1b41c3 8209576: java.nio.file.Files.writeString writes garbled UTF-16 instead of UTF-8
Reviewed-by: sherman
2018-08-20 10:11:26 -07:00
Lutz Schmidt
0f4805ef4c 8209588: SIGSEGV in MethodArityHistogram() with -XX:+CountCompiledCalls
Reviewed-by: kvn, goetz
2018-08-20 17:25:45 +02:00
Claes Redestad
55cf3de09b 8209633: Avoid creating WeakEntry wrappers when looking up cached MethodType
Reviewed-by: plevart, mchung
2018-08-20 14:25:02 +02:00
Lois Foltan
75ed173e15 8209301: JVM rename is_anonymous, host_klass to unsafe specific terminology ahead of Unsafe.defineAnonymousClass deprecation
Clean up VM anonymous class terminology.

Reviewed-by: coleenp, dholmes, mchung
2018-08-20 08:25:57 -04:00
Aleksey Shipilev
6ccb60937c 8209573: [TESTBUG] gc/epsilon/TestMemoryMXBeans should retry on failure
Reviewed-by: kvn, pliden
2018-08-20 10:04:00 +02:00
Igor Ignatyev
65f4c7dee4 8209456: [error-prone] ShortCircuitBoolean in java.logging
Reviewed-by: rriggs
2018-08-19 22:41:49 -07:00
Kim Barrett
0d9777a9cb 8154343: Make SATB related code available to other GCs
Move ptrQueue and satbMarkQueue files from g1 to shared.

Reviewed-by: rkennke, sangheki
2018-08-18 13:59:25 -04:00
Jamil Nimeh
d9456186e8 8203614: Java API SSLEngine example code needs correction
Reviewed-by: wetmore, ascarpino
2018-08-17 21:36:02 -07:00
Calvin Cheung
660c7e50f7 8209385: CDS runtime classpath checking is too strict when only classes from the system modules are archived
Skip checking the path entries which are not being referenced during CDS dump time

Reviewed-by: jiangli, iklam
2018-08-17 14:50:59 -07:00
Sean Coffey
15cef25bb0 8208675: Remove legacy sun.security.key.serial.interop property
Reviewed-by: mullan
2018-08-17 22:20:47 +01:00
Joe Darcy
07ed14c5cf 8209304: Deprecate serialVersionUID fields in interfaces
Reviewed-by: lancea, mullan, rriggs, smarks
2018-08-17 13:37:01 -07:00
Igor Veresov
4dfa58d553 8206992: Update Graal
Reviewed-by: kvn
2018-08-17 13:20:53 -07:00
Stuart Monteith
2788ddc4eb 8209586: AARCH64: SymbolTable changes throw assert on aarch64
Cast the comparison value to match the signdeness

Reviewed-by: gziemski, coleenp
2018-08-17 11:56:59 -05:00
Mikael Vidstedt
20f3793312 Added tag jdk-12+7 for changeset ef57958c7c51 2018-08-17 09:53:52 -07:00
Sharath Ballal
b1b99f1d4c 8209342: Problemlist SA tests on Solaris due to Error attaching to process: Can't create thread_db agent!
Reviewed-by: dcubed, iklam, jgeorge
2018-08-17 21:50:55 +05:30
Robbin Ehn
3bb71a9b51 8207334: VM times out in VM_HandshakeAllThreads::doit() with RunThese30M
Handshakes did not consider external suspended threads safe for safepoint.

Reviewed-by: dcubed, dholmes
2018-08-17 13:38:19 +02:00
Ekaterina Pavlova
3c0f0f0175 8209587: Update test/hotspot/jtreg/ProblemList-graal.txt
Reviewed-by: kvn
2018-08-17 03:59:20 -07:00
Tobias Hartmann
73bcb0507e 8208275: C2 crash in Node::add_req(Node*)
Split-if optimization should not process (dead) counted loops.

Reviewed-by: roland
2018-08-17 08:21:20 +02:00
Ioi Lam
2e941724e4 8209545: Simplify HeapShared::archive_module_graph_objects
Added archivable_static_fields array in heapShared.cpp

Reviewed-by: jiangli
2018-08-15 11:19:57 -07:00
Kim Barrett
6355dec98c 8209607: Remove stale comment for JNI mutexes
Remove comment.

Reviewed-by: dholmes
2018-08-16 19:49:25 -04:00
Alex Menkov
1260099653 8209608: Problem list com/sun/jdi/BreakpointWithFullGC.java
Reviewed-by: mikael, dtitov, dcubed
2018-08-16 16:44:51 -07:00
Igor Ignatyev
610dfb22d3 8209549: remove VMPropsExt from TEST.ROOT
Reviewed-by: dholmes
2018-08-16 16:28:03 -07:00
Jiangli Zhou
da4684e2e1 8209389: SIGSEGV in WalkOopAndArchiveClosure::do_oop_work
Check the MetaspaceShared::archive_heap_object return value and handle failure accordingly.

Reviewed-by: iklam, coleenp
2018-08-16 17:29:22 -04:00
Alex Menkov
d2a9e11aeb 8209517: com/sun/jdi/BreakpointWithFullGC.java fails with timeout
Reviewed-by: dcubed, mikael
2018-08-16 10:20:00 -07:00
Jan Lahoda
19a7a3b69e 8208269: Javadoc does not support module-info in a multi-release jar
Ensuring correct version is set when reading multi-release jars.

Reviewed-by: jjg
2018-08-16 15:00:23 +02:00
Roger Riggs
63b1edb7b7 8208715: Conversion of milliseconds to nanoseconds in UNIXProcess contains bug
Reviewed-by: martin
2018-08-15 10:38:27 -04:00
Rachna Goel
8cf153fbd5 8209047: "Illegal pattern character 'B'" IllegalArgumentException with Burmese locales
Replaced time patterns for Burmese locale from CLDR 29's patterns.

Reviewed-by: naoto
2018-08-16 16:06:54 +05:30
Doug Simon
e39c7c3c93 8209535: [JVMCI] Do not swallow NoClassDefFoundError when converting JVMCI methods and fields to reflection objects
Reviewed-by: kvn, iveresov
2018-08-16 09:46:09 +02:00
Tobias Hartmann
5b0774ea01 8209511: C2 asserts with UseSSE < 4 and AVX enabled: "Label was never bound to a location, but it was used as a jmp target'
Make sure label is bound even if SSE is disabled.

Reviewed-by: kvn
2018-08-16 09:09:18 +02:00
Ioi Lam
bd57506f87 8207832: serviceability/sa/ClhsdbCDSCore.java failed with "Couldn't find core file location"
Handle %p in /proc/sys/kernel/core_pattern

Reviewed-by: dholmes, hseigel
2018-08-15 19:22:46 -07:00
Ioi Lam
e12ee81ff0 8206115: Use shared macros for JavaClasses::compute_offsets and MetaspaceShared::serialize_well_known_classes
Added BASIC_JAVA_CLASSES_DO in javaClasses.hpp

Reviewed-by: jiangli, redestad, coleenp
2018-08-14 20:46:46 -07:00
Vicente Romero
efa05e1c62 8207320: Wrong type order for intersection lambdas with multiple abstract methods
Reviewed-by: mcimadamore
2018-08-15 13:39:32 -07:00
Coleen Phillimore
ef15adee70 8209541: Fix merge problem in SymbolTable::do_check_concurrent_work
Remerged with previous change to do_unloading.

Reviewed-by: hseigel
2018-08-15 16:01:48 -04:00
Coleen Phillimore
68e65d8ece 8209447: vmTestbase/vm/mlvm/indy/func/jvmti/mergeCP_none2indy_b/TestDescription.java timed out
Was walking code cache for every safepoint because redefined methods take a long time to clear out of the code cache

Reviewed-by: eosterlund, rehn
2018-08-15 15:50:23 -04:00
Joe Darcy
07f3f674c2 5075463: (enum) Serialized Form javadoc for java.lang.Enum is misleading
Reviewed-by: lancea, rriggs, smarks
2018-08-15 10:44:56 -07:00
Joe Darcy
b0954bc7ab 8176425: Add radix indication in NumberFormatException message for Integer.decode
Reviewed-by: lancea
2018-08-15 10:16:15 -07:00
Mikhailo Seledtsov
b71faed5df 8209164: [TESTBUG] Apply jtreg skipped status to cds tests
Added the SkippedException where applicable

Reviewed-by: iklam, jiangli
2018-08-15 10:00:16 -07:00
Joshua Zhu
f87ec5faf7 8209459: TestSHA512MultiBlockIntrinsics failed on AArch64
Prevent classloading to avoid generation of SHA stubs.

Reviewed-by: kvn, thartmann
2018-08-15 14:35:33 +02:00
Dmitrij Pochepko
4377d3abe2 8209439: C2 library_call can potentially ignore Math.pow intrinsic or use null pointer
Reviewed-by: kvn, thartmann
2018-08-15 14:48:12 +03:00
Erik Österlund
b9052e9647 8208582: Introduce native oop barriers in C1 for OopHandle
Reviewed-by: coleenp, kvn
2018-08-15 09:51:57 +02:00
Xue-Lei Andrew Fan
611c53c860 8207009: TLS 1.3 half-close and synchronization issues
Reviewed-by: jnimeh, mullan, wetmore
2018-08-14 18:16:47 -07:00
Coleen Phillimore
d8ce7f36e2 8209518: symbol table gtest fails with semaphore error
Loop count was wrong.

Reviewed-by: mikael, kbarrett
2018-08-14 19:52:34 -04:00
Gerard Ziemski
b75805c1a5 8195100: Use a low latency hashtable for SymbolTable
Used concurrentHashTable, similar to stringTable

Reviewed-by: coleenp, kbarrett, iklam, pliden
2018-08-14 18:42:14 -05:00
Vladimir Kozlov
9cea96184f 8208463: jdk.internal.vm.compiler's module-info.java.extra contains duplicated provides of the same service interface
Reviewed-by: mchung
2018-08-14 14:08:04 -07:00
Coleen Phillimore
61d4faee90 8205417: Obsolete UnlinkSymbolsALot debugging option
Obsolete and remove support for UnlinkSymbolsALot

Reviewed-by: hseigel, dholmes
2018-07-06 09:10:07 -04:00
Harold Seigel
5ff2b5fe98 8203911: Test runtime/modules/getModuleJNI/GetModule fails with -Xcheck:jni
Remove unneeded validate_class() check from  checked_jni_GetModule().

Reviewed-by: dholmes, coleenp
2018-07-06 06:26:25 -07:00
Coleen Phillimore
6d497ee263 8202737: Obsolete AllowNonVirtualCalls option
Obsolete option and remove support.

Reviewed-by: dholmes, jiangli, kbarrett
2018-07-06 09:00:48 -04:00
Jonathan Gibbons
ea084baf94 8206318: Enhance package documentation for internal javadoc packages
Reviewed-by: sundar
2018-07-05 14:35:03 -07:00
Naoto Sato
10fca535db 8206350: java/util/Locale/bcp47u/SystemPropertyTests.java failed on Mac 10.13 with zh_CN and zh_TW locales
Reviewed-by: rriggs
2018-07-05 14:23:45 -07:00
Roman Kennke
943be51fe7 8206272: Remove stray BarrierSetAssembler call
Reviewed-by: pliden, shade
2018-07-05 19:22:53 +02:00
Roman Kennke
3f0f527c5b 8206407: Primitive atomic_cmpxchg_in_heap_at() in BarrierSet::Access needs to call non-oop raw method
Reviewed-by: pliden, shade
2018-07-05 19:22:38 +02:00
Calvin Cheung
210e064a8d 8205548: Remove multi-release jar related vm code
Reviewed-by: iklam, jiangli
2018-07-05 09:11:33 -07:00
Brian Burkhalter
8457eb629f 8194899: Remove unused sun.net classes
Reviewed-by: alanb, mchung, dfuchs, chegar, michaelm
2018-07-05 07:22:21 -07:00
Jesper Wilhelmsson
ecc1af23af Added tag jdk-12+1 for changeset 00b16d0457e4 2018-07-05 13:31:04 +02:00
Sibabrata Sahoo
136331b7f0 8205653: test/jdk/sun/management/jmxremote/bootstrap/RmiRegistrySslTest.java and RmiSslBootstrapTest.sh fail with handshake_failure
Test failure due to unsupported DSA keys

Reviewed-by: dfuchs, xuelei
2018-07-04 03:44:32 -07:00
Joe Darcy
da22bf8a17 8206114: Refactor langtools/tools/javac/classfiles/ClassVersionChecker.java
Reviewed-by: jjg
2018-07-03 16:14:46 -07:00
Joe Darcy
28e2dea71d 8206085: Refactor langtools/tools/javac/versions/Versions.java
Reviewed-by: jjg, forax, plevart, mcimadamore
2018-07-03 15:59:09 -07:00
Brian Burkhalter
aef5f86408 8202252: (aio) Closed AsynchronousSocketChannel keeps completion handler alive
Clear handler instance variable after use

Reviewed-by: rriggs, alanb
2018-07-03 15:02:46 -07:00
Naoto Sato
0a99860ff9 8206120: Add test cases for lenient Japanese era parsing
Reviewed-by: rriggs
2018-07-03 14:42:13 -07:00
Coleen Phillimore
3e4eba7668 8206309: Tier1 SA tests fail
Remove tests that should have been removed with JDK-8205534

Reviewed-by: hseigel
2018-07-03 15:40:08 -04:00
Patricio Chilano Mateo
209071d135 8134538: Duplicate implementations of os::lasterror
Method os::lasterror was moved to os_posix.cpp

Reviewed-by: hseigel, kbarrett, coleenp
2018-07-03 15:08:01 -04:00
Coleen Phillimore
c0ebf80159 8205534: Remove SymbolTable dependency from serviceability agent
Reviewed-by: gziemski, poonam, jgeorge, hseigel
2018-07-03 13:41:18 -04:00
Erik Joelsson
cfd42a97cc 8206087: windows-x64-cmp-baseline fails with The files do not have the same suffix type
Reviewed-by: tbell
2018-07-03 18:46:51 +02:00
Shashidhara Veerabhadraiah
bd0c60ff71 8195991: [TEST_BUG]:Regression manual Test java/awt/TrayIcon/RightClickWhenBalloonDisplayed/RightClickWhenBalloonDisplayed.html fails
Reviewed-by: serb, mhalder
2018-07-03 16:09:25 +05:30
Vivek Theeyarath
ac99e1d447 8177275: IllegalArgumentException when MH would have too many parameters is not specified for several methods
Updated spec and added tests

Reviewed-by: psandoz
2018-07-02 23:33:40 -07:00
Nils Eliasson
6cd1f27fcf 8205999: C2 compilation fails with "assert(store->find_edge(load) != -1) failed: missing precedence edge"
Backout 8204157 to state before 8192992

Reviewed-by: thartmann, mdoerr
2018-07-03 10:47:50 +02:00
Jesper Wilhelmsson
4222f3408c Merge 2018-07-03 02:07:49 +02:00
Joe Wang
977b9cae12 8204329: Java API doc for XMLStreamReader.next() needs to be clarified for the exception thrown when hasNext() method returns false
Reviewed-by: lancea, rriggs
2018-07-02 13:54:01 -07:00
Zhengyu Gu
9006ccdbbf 8205965: SIGSEGV on write to NativeCallStack::EMPTY_STACK
Made EMPTY_STACK non-const, so it will not be placed in read-only BSS section.

Reviewed-by: stuefe, martin
2018-07-02 16:28:09 -04:00
Krishna Addepalli
c4b2780bea 8197810: Test java/awt/Choice/SelectCurrentItemTest/SelectCurrentItemTest.html fails on Windows
Reviewed-by: serb, pbansal
2018-07-02 14:31:33 +05:30
Rahul Raghavan
29dc54093b 8203504: [Graal] org.graalvm.compiler.debug.test.DebugContextTest fails with java.util.ServiceConfigurationError
Added required uses statement

Reviewed-by: dnsimon, kvn
2018-07-02 00:55:24 -07:00
Tobias Hartmann
48942a6aba 8206093: compiler/graalunit/HotspotTest.java fails in CheckGraalIntrinsics
Ignore encodeBlock intrinsic.

Reviewed-by: kvn
2018-07-02 09:21:06 +02:00
Ivan Gerasimov
8774d70044 8204310: Simpler RandomAccessFile.setLength() on Windows
Reviewed-by: alanb
2018-06-29 17:35:04 -07:00
Daniil Titov
bebd49cf84 8206086: [Graal] JDI tests fail with com.sun.jdi.ObjectCollectedException
Reviewed-by: sspitsyn, cjplummer, amenkov
2018-06-29 12:34:03 -07:00
Joe Wang
bfb397a679 8190835: Subtraction with two javax.xml.datatype.Duration gives incorrect result
Reviewed-by: lancea
2018-06-29 10:13:24 -07:00
Jan Lahoda
eaf0364068 8205418: Assorted improvements to source code model
Improving tree positions, better error recovery, fixing Trees.getScope for possibly erroneous lambdas.

Reviewed-by: jjg, mcimadamore, vromero
2018-06-29 10:41:10 +02:00
Krishna Addepalli
c8f1daa9eb 8194546: Choosier FileManagers
Reviewed-by: serb, prr, rhalade, skoivu
2018-06-29 10:28:05 +05:30
Joe Darcy
69191fc4cc 8206083: Make tools/javac/api/T6265137.java robust to JDK version changes
Reviewed-by: jjg
2018-06-28 17:49:13 -07:00
Mikael Vidstedt
c89978f4fd 8206022: Add test to check that the JVM accepts class files with version 56
Reviewed-by: hseigel, hseigel
2018-06-28 17:45:59 -07:00
Jonathan Gibbons
3ae58c7fdc 8202959: Rearrange the top and bottom navigation bar in the javadoc generated pages
Co-authored-by: Bhavesh Patel <bhavesh.x.patel@oracle.com>
Reviewed-by: darcy, jjg
2018-06-28 15:46:27 -07:00
Robin Westberg
736e57146d 8206006: Build failed on Windows
Reviewed-by: jwilhelm, dcubed
2018-06-28 22:28:41 +02:00
Jesper Wilhelmsson
3d8776d76c Added tag jdk-12+0 for changeset 95aad0c785e4 2018-06-28 21:11:50 +02:00
Joe Darcy
e56162b43d 8205615: Start of release updates for JDK 12
8205621: Increment JDK version for JDK 12
8193292: Add SourceVersion.RELEASE_12
8193290: Add source 12 and target 12 to javac
8205619: Bump maximum recognized class file version to 56 for JDK 12

Co-authored-by: Erik Joelsson <erik.joelsson@oracle.com>
Co-authored-by: Mikael Vidstedt <mikael.vidstedt@oracle.com>
Reviewed-by: alanb, smarks, jjg, mr, erikj, psandoz, dholmes
2018-06-27 21:01:12 -07:00
Jesper Wilhelmsson
bc45576579 Added tag jdk-12+0 for changeset c9cd3ec6a0eb 2018-06-28 19:55:44 +02:00
Rajan Halade
fb54f8a71f 8195774: Add Entrust root certificates
Reviewed-by: weijun
2018-06-28 11:41:45 -07:00
Roman Kennke
cbcc690048 8205523: Explicit barriers for interpreter
Reviewed-by: eosterlund, coleenp
2018-06-22 16:07:15 +02:00
Roman Kennke
f62fa67625 8204969: Asserts in objArrayKlass.cpp need to use _raw variants of obj_addr_at()
Reviewed-by: tschatzl, eosterlund
2018-08-09 17:11:11 +02:00
Mikael Vidstedt
437a15817f Added tag jdk-12+6 for changeset 7939b3c4e408 2018-08-09 08:02:20 -07:00
Jean Christophe Beyler
dc45757347 8208242: Add @requires to vmTestbase/gc/g1 tests
Added classunloading must not be disabled and G1 is required to g1/unloading tests

Reviewed-by: kbarrett, tschatzl
2018-08-08 11:11:19 -07:00
Per Lidén
f8590345b7 8209127: ZGC: Improve error message when failing to map memory for mark stacks
Reviewed-by: eosterlund, tschatzl
2018-08-09 11:24:30 +02:00
Per Lidén
abb1e458eb 8209126: ZGC: ZMarkStackAllocator::is_initialized() never called
Reviewed-by: eosterlund, tschatzl
2018-08-09 11:24:30 +02:00
Per Lidén
6c7f0f0218 8209125: ZGC: Clean up ZServiceabilityCounters
Reviewed-by: eosterlund, tschatzl
2018-08-09 11:24:30 +02:00
Per Lidén
e05a66c789 8207756: ZGC: jstat should show CGC STW phases
Co-authored-by: Yasumasa Suenaga <yasuenag@gmail.com>
Reviewed-by: pliden, ysuenaga, eosterlund
2018-08-09 11:24:30 +02:00
Felix Yang
30fad2ce7d 8208656: Move java/util/Calendar/CalendarTestScripts tests into OpenJDK
Reviewed-by: naoto
2018-08-09 15:42:48 +08:00
Xin Liu
e5f3e1b60c 8207965: C2-only debug build fails
Reviewed-by: kvn, iignatyev
2018-08-08 18:38:34 -07:00
Jean Christophe Beyler
626a614146 8208303: Track JNI failures and fail tests
Fail in native code via  FatalException to signal test failure

Reviewed-by: amenkov, sspitsyn
2018-08-08 15:34:32 -07:00
Mandy Chung
90a76fe7d2 8202941: GenModuleInfoSource build tool does not detect missing semicolons
Reviewed-by: erikj
2018-08-08 14:40:02 -07:00
Coleen Phillimore
a7b66f6f5e 8208677: Move inner metaspace cleaning out of class unloading
Move to safepoint cleanup actions to do if needed.

Reviewed-by: eosterlund, hseigel
2018-08-08 15:24:21 -04:00
Daniel D. Daugherty
149026aa65 8209149: [TESTBUG] runtime/RedefineTests/RedefineRunningMethods.java needs a longer timeout
Reviewed-by: coleenp
2018-08-08 15:11:11 -04:00
Brian Burkhalter
52f2eca5d9 8193822: Remove unused newDirectByteBuffer and truncate methods from buffer classes
Reviewed-by: alanb, psandoz
2018-08-08 09:25:10 -07:00
Thomas Schatzl
bdfda4e19b 8208672: Enable -Wreorder in make files for gcc, clang
Reviewed-by: dholmes, ihse
2018-08-08 15:31:07 +02:00
Thomas Schatzl
9c0720b156 8208671: Runtime, JFR, Serviceability changes to allow enabling -Wreorder
Reviewed-by: dholmes, hseigel
2018-08-08 15:31:07 +02:00
Thomas Schatzl
e98c176026 8208670: Compiler changes to allow enabling -Wreorder
Reviewed-by: kvn
2018-08-08 15:31:06 +02:00
Thomas Schatzl
d702d5f8d2 8208669: GC changes to allow enabling -Wreorder
Reviewed-by: kbarrett
2018-08-08 15:31:06 +02:00
Chris Yin
a00eff193f 8208279: Add 8 JNDI tests to com/sun/jndi/dns/EnvTests/
Reviewed-by: vtewari, rriggs
2018-08-08 10:21:23 +08:00
Coleen Phillimore
a6a078ee4f 8208575: Remove Atomic::add/sub for short
Removed code to atomic::add for short because it's no longer used for Symbol.

Reviewed-by: iklam
2018-08-07 19:35:50 -04:00
Ioi Lam
1b2e7cbaef 8208999: Some use of Klass* should be replaced by InstanceKlass*
Klass::java_super() => InstanceKlass*; InstanceKlass::{local,transitive}_interfaces() => Array<InstanceKlass*>*

Reviewed-by: coleenp, hseigel
2018-08-07 15:45:07 -07:00
Nasser Ebrahim
01cc27f875 8208634: Add x-IBM-1129 charset
Reviewed-by: alanb, sherman
2018-08-07 16:07:47 -07:00
Claes Redestad
db4913ba5a 8209003: Consolidate use of empty collections in java.lang.module
Reviewed-by: alanb, mchung
2018-08-07 23:08:52 +02:00
Staffan Larsen
3be8d256e9 8031761: [TESTBUG] Add a regression test for JDK-8026328
Reviewed-by: kvn, iignatyev
2018-08-07 13:51:30 -07:00
Calvin Cheung
6f046a9f27 8208704: runtime/appcds/MultiReleaseJars.java timed out often in hs-tier7 testing
Increase timout to 2400 and reduce the amount of output

Reviewed-by: mseledtsov, jiangli
2018-08-07 09:44:39 -07:00
Matthias Baesken
4ce757492c 8208744: remove unneeded -DUSE_MMAP settings for JDK native libs builds
Reviewed-by: ihse, martin, alanb, dholmes
2018-08-03 07:59:01 +02:00
Vladimir Kozlov
77204ca163 8209023: fix 2 compiler tests to avoid JDK-8208690
Reviewed-by: dholmes, dcubed
2018-08-06 18:49:51 -07:00
Daniel D. Daugherty
a9fd33bf2f 8209029: ProblemList tests that fail due to 'Error attaching to process: Can't create thread_db agent!' in jdk-11+25 testing
Reviewed-by: dholmes, sspitsyn
2018-08-06 20:52:41 -04:00
Jean Christophe Beyler
b2042fe0ca 8079682: [mlvm] remove SAM code in MHTransformationGen
Remove SAM code from the test and remove related dead code

Reviewed-by: iignatyev
2018-08-06 14:23:02 -07:00
Alexandre Iline
013e6fd595 8208364: java/lang/reflect/callerCache/ReflectionCallerCacheTest.java missing module dependencies declaration
Reviewed-by: mchung
2018-08-06 15:35:44 -07:00
Paul Sandoz
70b706c224 8206955: MethodHandleProxies.asInterfaceInstance does not support default methods
Reviewed-by: mchung, plevart
2018-08-06 15:18:57 -07:00
Florian Weimer
cc248634a1 8208362: (bf) Long chains created by direct Buffer::slice
Reviewed-by: mr, psandoz, alanb
2018-08-06 14:55:04 -07:00
Joe Darcy
4bac00436d 8209024: Use SuppressWarnings on serialVersionUID fields in interfaces
Reviewed-by: bpb, rriggs, mullan
2018-08-06 14:29:22 -07:00
Ekaterina Pavlova
080d3bb21a 8194958: [Graal] disable compiler/c2/cr7200264 tests
Reviewed-by: kvn, tschatzl
2018-08-06 13:53:49 -07:00
Daniel D. Daugherty
963bb6c8be 8209020: ProblemList tests affected by JDK-8208778
Reviewed-by: hseigel
2018-08-06 16:15:09 -04:00
Harold Seigel
82186ce311 8208604: Metadata::print_value_string() compares 'this' to NULL
Remove the comparison and add asserts to check for NULL

Reviewed-by: coleenp, gziemski
2018-08-06 14:20:58 -04:00
Daniel D. Daugherty
831fdfe311 8209018: ProblemList tests affected by JDK-8208690
Reviewed-by: kvn
2018-08-06 13:57:26 -04:00
Pengfei Li
03d6ab3b09 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
2018-08-06 04:31:50 -04:00
Christoph Dreis
c1c4085139 8208998: Typo in ModueInfo.java, field for ModuleHashes should be moduleHashes
Reviewed-by: alanb
2018-08-05 19:16:31 +01:00
Joe Darcy
fb0b608284 8208782: Remove extra type in throws clause of SerialClob.writeObject
Reviewed-by: lancea
2018-08-03 21:06:15 -07:00
Ivan Gerasimov
d686431d78 8204667: Resources not freed on exception
Reviewed-by: skoivu, chegar
2018-06-20 18:02:22 -07:00
Joe Wang
e8fc5de2ab 8204497: Better formatting of decimals
Reviewed-by: rriggs, lancea, dfuchs, mschoene
2018-06-15 14:19:51 -07:00
Vyom Tewari
309ace5285 8199177: Enhance JNDI lookups
Reviewed-by: michaelm, robm, skoivu, rhalade, chegar, rriggs, ahgross
2018-06-08 15:56:23 +05:30
Ioi Lam
b5f0945a72 8204267: Generate comments in -XX:+PrintInterpreter to link to source code
Changed __ macro to use Disassembler::hook()

Reviewed-by: coleenp, aph
2018-06-03 23:33:00 -07:00
Alex Menkov
7d8922221d 8201513: nsk/jvmti/IterateThroughHeap/filter-* are broken
Reviewed-by: sspitsyn, cjplummer
2018-07-13 10:10:51 -07:00
Nishit Jain
0cb3d46cd7 8193444: SimpleDateFormat throws ArrayIndexOutOfBoundsException when format contains long sequences of unicode characters
Reviewed-by: naoto, rriggs
2018-07-13 14:04:59 +05:30
Daniil Titov
a2a00af3c3 8191948: db error: InvalidTypeException: Can't assign double[][][] to double[][][]
Reviewed-by: sspitsyn, amenkov
2018-07-12 22:53:35 -07:00
Valerie Peng
b0af57a018 8179098: Crypto AES/ECB encryption/decryption performance regression (introduced in jdk9b73)
Do bounds check per encryption/decryption call instead of per block

Reviewed-by: ascarpino, redestad
2018-07-13 02:36:42 +00:00
Weijun Wang
b8d80042d7 8206189: sun/security/pkcs12/EmptyPassword.java fails with Sequence tag error
Reviewed-by: xuelei
2018-07-12 08:44:39 +08:00
Mikael Vidstedt
6ffd168ad1 8207011: Remove uses of the register storage class specifier
Reviewed-by: kbarrett, kvn
2018-07-12 17:29:48 -07:00
Gary Adams
539a39c5f6 8206007: nsk/jdb/exclude001 test is taking a long time on some builds
Reviewed-by: cjplummer, sspitsyn
2018-07-12 10:41:44 -04:00
Leonid Mesnik
cd45167430 8139876: Exclude hanging nsk/stress/stack from execution with deoptimization enabled
Reviewed-by: kvn, mseledtsov
2018-07-12 13:32:45 -07:00
Joe Darcy
90518f0635 8028563: Remove javac support for 6/1.6 source and target values
Reviewed-by: jjg, erikj, henryjen
2018-07-12 14:13:15 -07:00
Joe Wang
88a2f93966 8194680: StartElement#getAttributes and getNamespaces refer to incorrect package
Reviewed-by: jjg, lancea
2018-07-12 12:06:22 -07:00
Ivan Gerasimov
3496969f66 8206122: Use Queue in place of ArrayList when need to remove first element
Reviewed-by: martin, jjg, vromero
2018-07-12 11:32:14 -07:00
Ivan Gerasimov
051dfe9fb4 8207060: Memory leak when malloc fails within WITH_UNICODE_STRING block
Reviewed-by: vtewari, rriggs
2018-07-12 11:18:01 -07:00
Brent Christian
a6eacc52e0 8195874: Improve jar specification adherence
Also reviewed by Chris Ries <chris.ries@oracle.com>

Reviewed-by: alanb, mchung, rriggs
2018-05-29 10:27:45 -07:00
Athijegannathan Sundararajan
b2ca521a02 8202936: Improve script engine support
Reviewed-by: jlaskey, ahgross, rhalade
2018-05-18 13:34:42 +05:30
Harold Seigel
6c0cc8929b 8199226: Improve field accesses
Reviewed-by: acorn, ahgross, rhalade
2018-05-14 09:05:20 -04:00
Phil Race
41c52b261c 8200648: Make midi code more sound
Reviewed-by: serb, mschoene, rhalade
2018-04-23 16:15:26 -07:00
Adam Petcher
d45e830907 8201756: Improve cipher inputs
Clarify spec of CipherInputStream in Javadoc comments

Reviewed-by: ascarpino
2018-04-23 12:01:46 -04:00
Weijun Wang
a58b68027b 8194534: Manifest better support
Reviewed-by: mchung, igerasim
2018-04-17 15:55:49 +08:00
Xueming Shen
cd8e70a35c 8199172: Improve jar attribute checks
Reviewed-by: psandoz, alanb
2018-04-04 13:55:30 -07:00
Vyom Tewari
627e310ba5 8199110: Address Internet Addresses
Reviewed-by: chegar, rriggs, igerasim, skoivu, rhalade
2018-03-30 08:37:31 +05:30
Xueming Shen
02876bfceb 8197881: Better StringBuilder support
Reviewed-by: rriggs
2018-03-28 08:42:45 -07:00
Weijun Wang
532d4a59c6 8196897: Improve PRNG support
Reviewed-by: valeriep, mullan, igerasim
2018-03-08 14:04:39 +08:00
David Holmes
dfcc6b3878 8211909: JDWP Transport Listener: dt_socket thread crash
Reviewed-by: dcubed, dsamersoff
2018-10-16 19:07:47 -04:00
Jamil Nimeh
a40d0a0ee1 8210989: RSASSA-PSS certificate cannot be selected for client auth on TLSv1.2
Reviewed-by: xuelei
2018-10-16 12:05:57 -07:00
Mandy Chung
a9b4ac9c37 8212197: OpenDataException thrown when constructing CompositeData for StackTraceElement
Reviewed-by: alanb
2018-10-16 11:47:33 -07:00
Jamil Nimeh
180a8773fb 8211866: TLS 1.3 CertificateRequest message sometimes offers disallowed signature algorithms
Reviewed-by: xuelei
2018-10-16 11:24:41 -07:00
Aleksey Shipilev
b6e77e4285 8212177: Epsilon alignment adjustments can overflow max TLAB size
Reviewed-by: pliden, tschatzl
2018-10-16 17:43:30 +02:00
Roger Riggs
8dd0b1f061 8192939: Remove Finalize methods from FileInputStream and FileOutputStream
Reviewed-by: alanb, iris, mchung
2018-10-16 10:55:28 -04:00
Harold Seigel
794d864feb 7041262: VM_Version should be called instead of Abstract_VM_Version so that overriding works
Change calls to Abstract_VM_Version methods to be calls to VM_Version methods.

Reviewed-by: coleenp, kbarrett, dholmes
2018-10-16 11:08:46 -04:00
Brian Burkhalter
4fe37df932 8212212: (bf) Incorrect path to stream preprocessor source in java.nio Buffer test scripts
Reviewed-by: alanb
2018-10-16 07:49:08 -07:00
Bob Vandette
86a0c85f6b Merge 2018-10-16 09:55:30 -04:00
Bob Vandette
6a7fdffe3b 8211740: [AOT] -XX:AOTLibrary doesn't accept windows path
Reviewed-by: kvn, iignatyev
2018-10-16 09:54:28 -04:00
Hannes Wallnöfer
bfb6aa4821 8210683: Search result display order reversed for overloaded entries
Reviewed-by: jjg
2018-10-16 15:05:03 +02:00
Tobias Hartmann
6b83ac96ab 8210215: C2 should optimize trichotomy calculations
Ideal transformation to optimize trichotomic comparisons.

Reviewed-by: kvn, jrose
2018-10-16 14:17:19 +02:00
Erik Österlund
0192c14c9b 8210498: nmethod entry barriers
Reviewed-by: kvn, pliden
2018-10-16 13:18:22 +02:00
Erik Österlund
e39c5811b5 8210330: Make CLD claiming allow multiple claim bits
Reviewed-by: pliden, coleenp
2018-10-16 13:16:11 +02:00
Erik Österlund
782fa608d2 8210064: ZGC: Introduce ZConcurrentRootsIterator for scanning a subset of strong IN_NATIVE roots concurrently
Reviewed-by: pliden, kbarrett
2018-10-16 13:14:18 +02:00
Per Lidén
5f2b11d373 8212181: ZGC: Fix incorrect root iteration in ZHeapIterator
Reviewed-by: eosterlund
2018-10-16 13:43:04 +02:00
Daniel Fuchs
1e40cb4052 8211960: broken links in java.util.logging
Reviewed-by: mchung, chegar
2018-10-16 12:38:46 +01:00
Robin Westberg
7c3ce3aee0 8212004: Optional compile_commands.json field not compatible with older libclang
Reviewed-by: erikj
2018-10-16 11:32:49 +02:00
Thomas Schatzl
475df1c06a 8210492: PLAB object promotion events report object sizes in words
Properly scale values passed to the JFR event.

Reviewed-by: phh, jcbeyler
2018-10-16 11:27:21 +02:00
15175 changed files with 606162 additions and 1814506 deletions

1
.gitattributes vendored
View File

@@ -1 +0,0 @@
* -text

View File

@@ -1,46 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Config'
description: 'Read JDK Configuration Variables'
inputs:
var:
description: 'The name of the variable to read'
required: true
outputs:
value:
description: 'The value of the configuration variable'
value: ${{ steps.read-config.outputs.value }}
runs:
using: composite
steps:
- name: 'Read configuration variable from repo'
id: read-config
run: |
# Extract value from configuration file
value="$(grep -h ${{ inputs.var }}= make/conf/github-actions.conf | cut -d '=' -f 2-)"
echo "value=$value" >> $GITHUB_OUTPUT
shell: bash

View File

@@ -1,80 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Do build'
description: 'Build the JDK using make'
inputs:
make-target:
description: 'Make target(s)'
required: true
platform:
description: 'Platform name'
required: true
debug-suffix:
description: 'File name suffix denoting debug level, possibly empty'
required: false
runs:
using: composite
steps:
- name: 'Build'
id: build
run: >
make LOG=info ${{ inputs.make-target }}
|| bash ./.github/scripts/gen-build-failure-report.sh "$GITHUB_STEP_SUMMARY"
shell: bash
- name: 'Check for failure'
id: check
run: |
# Check for failure marker file
build_dir="$(ls -d build/*)"
if [[ -e $build_dir/build-failure ]]; then
# Collect relevant log files
mkdir failure-logs
cp \
$build_dir/spec.gmk \
$build_dir/build.log \
$build_dir/configure.log \
$build_dir/make-support/failure-summary.log \
$build_dir/make-support/failure-logs/* \
failure-logs/ 2> /dev/null || true
echo 'failure=true' >> $GITHUB_OUTPUT
fi
shell: bash
- name: 'Upload build logs'
uses: actions/upload-artifact@v4
with:
name: failure-logs-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: failure-logs
if: steps.check.outputs.failure == 'true'
# This is the best way I found to abort the job with an error message
- name: 'Notify about build failures'
uses: actions/github-script@v7
with:
script: core.setFailed('Build failed. See summary for details.')
if: steps.check.outputs.failure == 'true'

View File

@@ -1,109 +0,0 @@
#
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# 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.
#
name: 'Get BootJDK'
description: 'Download the BootJDK from cache or source location'
inputs:
platform:
description: 'Platform'
required: true
outputs:
path:
description: 'Path to the installed BootJDK'
value: ${{ steps.path-name.outputs.path }}
runs:
using: composite
steps:
- name: 'Determine platform prefix'
id: platform-prefix
run: |
# Convert platform name to upper case
platform_prefix="$(echo ${{ inputs.platform }} | tr [a-z-] [A-Z_])"
echo "value=$platform_prefix" >> $GITHUB_OUTPUT
shell: bash
- name: 'Get URL configuration'
id: url
uses: ./.github/actions/config
with:
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_URL
- name: 'Get SHA256 configuration'
id: sha256
uses: ./.github/actions/config
with:
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_SHA256
- name: 'Get file extension configuration'
id: ext
uses: ./.github/actions/config
with:
var: ${{ steps.platform-prefix.outputs.value}}_BOOT_JDK_EXT
- name: 'Check cache for BootJDK'
id: get-cached-bootjdk
uses: actions/cache@v4
with:
path: bootjdk/jdk
key: boot-jdk-${{ inputs.platform }}-${{ steps.sha256.outputs.value }}
# macOS is missing sha256sum
- name: 'Install sha256sum'
run: |
# Run Homebrew installation
brew install coreutils
shell: bash
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true' && runner.os == 'macOS'
- name: 'Download BootJDK'
run: |
# Download BootJDK and verify checksum
mkdir -p bootjdk/jdk
mkdir -p bootjdk/unpacked
wget --progress=dot:mega -O bootjdk/jdk.${{ steps.ext.outputs.value }} '${{ steps.url.outputs.value }}'
echo '${{ steps.sha256.outputs.value }} bootjdk/jdk.${{ steps.ext.outputs.value }}' | sha256sum -c >/dev/null -
shell: bash
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true'
- name: 'Unpack BootJDK'
run: |
# Unpack the BootJDK and move files to a common location
if [[ '${{ steps.ext.outputs.value }}' == 'tar.gz' ]]; then
tar -xf bootjdk/jdk.${{ steps.ext.outputs.value }} -C bootjdk/unpacked
else
unzip -q bootjdk/jdk.${{ steps.ext.outputs.value }} -d bootjdk/unpacked
fi
jdk_root="$(dirname $(find bootjdk/unpacked -name bin -type d))"
mv "$jdk_root"/* bootjdk/jdk/
shell: bash
if: steps.get-cached-bootjdk.outputs.cache-hit != 'true'
- name: 'Export path to where BootJDK is installed'
id: path-name
run: |
# Export the absolute path
echo "path=`pwd`/bootjdk/jdk" >> $GITHUB_OUTPUT
shell: bash

View File

@@ -1,109 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Get bundles'
description: 'Download resulting JDK bundles'
inputs:
platform:
description: 'Platform name'
required: true
debug-suffix:
description: 'File name suffix denoting debug level, possibly empty'
required: false
outputs:
jdk-path:
description: 'Path to the installed JDK bundle'
value: ${{ steps.path-name.outputs.jdk }}
symbols-path:
description: 'Path to the installed symbols bundle'
value: ${{ steps.path-name.outputs.symbols }}
tests-path:
description: 'Path to the installed tests bundle'
value: ${{ steps.path-name.outputs.tests }}
runs:
using: composite
steps:
- name: 'Download bundles artifact'
id: download-bundles
uses: actions/download-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
continue-on-error: true
- name: 'Download bundles artifact (retry)'
uses: actions/download-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
if: steps.download-bundles.outcome == 'failure'
- name: 'Unpack bundles'
run: |
if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip ]]; then
echo 'Unpacking jdk bundle...'
mkdir -p bundles/jdk
unzip -q bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip -d bundles/jdk
fi
if [[ -e bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then
echo 'Unpacking jdk bundle...'
mkdir -p bundles/jdk
tar -xf bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/jdk
fi
if [[ -e bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then
echo 'Unpacking symbols bundle...'
mkdir -p bundles/symbols
tar -xf bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/symbols
fi
if [[ -e bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz ]]; then
echo 'Unpacking tests bundle...'
mkdir -p bundles/tests
tar -xf bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz -C bundles/tests
fi
shell: bash
- name: 'Export paths to where bundles are installed'
id: path-name
run: |
# Export the paths
jdk_dir="$GITHUB_WORKSPACE/$(dirname $(find bundles/jdk -name bin -type d))"
symbols_dir="$GITHUB_WORKSPACE/$(dirname $(find bundles/symbols -name bin -type d))"
tests_dir="$GITHUB_WORKSPACE/bundles/tests"
if [[ '${{ runner.os }}' == 'Windows' ]]; then
jdk_dir="$(cygpath $jdk_dir)"
symbols_dir="$(cygpath $symbols_dir)"
tests_dir="$(cygpath $tests_dir)"
fi
echo "jdk=$jdk_dir" >> $GITHUB_OUTPUT
echo "symbols=$symbols_dir" >> $GITHUB_OUTPUT
echo "tests=$tests_dir" >> $GITHUB_OUTPUT
shell: bash

View File

@@ -1,72 +0,0 @@
#
# Copyright (c) 2023, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# 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.
#
name: 'Get JTReg'
description: 'Download JTReg from cache or source location'
outputs:
path:
description: 'Path to the installed JTReg'
value: ${{ steps.path-name.outputs.path }}
runs:
using: composite
steps:
- name: 'Get JTReg version configuration'
id: version
uses: ./.github/actions/config
with:
var: JTREG_VERSION
- name: 'Check cache for JTReg'
id: get-cached-jtreg
uses: actions/cache@v4
with:
path: jtreg/installed
key: jtreg-${{ steps.version.outputs.value }}
- name: 'Checkout the JTReg source'
uses: actions/checkout@v4
with:
repository: openjdk/jtreg
ref: jtreg-${{ steps.version.outputs.value }}
path: jtreg/src
if: steps.get-cached-jtreg.outputs.cache-hit != 'true'
- name: 'Build JTReg'
run: |
# Build JTReg and move files to the proper locations
bash make/build.sh --jdk "$JAVA_HOME_17_X64"
mkdir ../installed
mv build/images/jtreg/* ../installed
working-directory: jtreg/src
shell: bash
if: steps.get-cached-jtreg.outputs.cache-hit != 'true'
- name: 'Export path to where JTReg is installed'
id: path-name
run: |
# Export the path
echo 'path=jtreg/installed' >> $GITHUB_OUTPUT
shell: bash

View File

@@ -1,44 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Get MSYS2'
description: 'Download MSYS2 and prepare a Windows host'
runs:
using: composite
steps:
- name: 'Install MSYS2'
uses: msys2/setup-msys2@v2.22.0
with:
install: 'autoconf tar unzip zip make'
path-type: minimal
location: ${{ runner.tool_cache }}/msys2
# We can't run bash until this is completed, so stick with pwsh
- name: 'Set MSYS2 path'
run: |
# Prepend msys2/msys64/usr/bin to the PATH
echo "$env:RUNNER_TOOL_CACHE/msys2/msys64/usr/bin" >> $env:GITHUB_PATH
shell: pwsh

View File

@@ -1,77 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Upload bundles'
description: 'Upload resulting JDK bundles'
inputs:
platform:
description: 'Platform name'
required: true
debug-suffix:
description: 'File name suffix denoting debug level, possibly empty'
required: false
runs:
using: composite
steps:
- name: 'Determine bundle names'
id: bundles
run: |
# Rename bundles to consistent names
jdk_bundle_zip="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.zip 2> /dev/null || true)"
jdk_bundle_tar_gz="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
symbols_bundle="$(ls build/*/bundles/jdk-*_bin${{ inputs.debug-suffix }}-symbols.tar.gz 2> /dev/null || true)"
tests_bundle="$(ls build/*/bundles/jdk-*_bin-tests${{ inputs.debug-suffix }}.tar.gz 2> /dev/null || true)"
mkdir bundles
if [[ "$jdk_bundle_zip" != "" ]]; then
mv "$jdk_bundle_zip" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.zip"
fi
if [[ "$jdk_bundle_tar_gz" != "" ]]; then
mv "$jdk_bundle_tar_gz" "bundles/jdk-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
fi
if [[ "$symbols_bundle" != "" ]]; then
mv "$symbols_bundle" "bundles/symbols-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
fi
if [[ "$tests_bundle" != "" ]]; then
mv "$tests_bundle" "bundles/tests-${{ inputs.platform }}${{ inputs.debug-suffix }}.tar.gz"
fi
if [[ "$jdk_bundle_zip$jdk_bundle_tar_gz$symbols_bundle$tests_bundle" != "" ]]; then
echo 'bundles-found=true' >> $GITHUB_OUTPUT
else
echo 'bundles-found=false' >> $GITHUB_OUTPUT
fi
shell: bash
- name: 'Upload bundles artifact'
uses: actions/upload-artifact@v4
with:
name: bundles-${{ inputs.platform }}${{ inputs.debug-suffix }}
path: bundles
retention-days: 1
if: steps.bundles.outputs.bundles-found == 'true'

View File

@@ -1,51 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2022, 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.
#
GITHUB_STEP_SUMMARY="$1"
BUILD_DIR="$(ls -d build/*)"
# Send signal to the do-build action that we failed
touch "$BUILD_DIR/build-failure"
(
echo '### :boom: Build failure summary'
echo ''
echo 'The build failed. Here follows the failure summary from the build.'
echo '<details><summary><b>View build failure summary</b></summary>'
echo ''
echo '```'
if [[ -f "$BUILD_DIR/make-support/failure-summary.log" ]]; then
cat "$BUILD_DIR/make-support/failure-summary.log"
else
echo "Failure summary ($BUILD_DIR/make-support/failure-summary.log) not found"
fi
echo '```'
echo '</details>'
echo ''
echo ''
echo ':arrow_right: To see the entire test log, click the job in the list to the left. To download logs, see the `failure-logs` [artifact above](#artifacts).'
) >> $GITHUB_STEP_SUMMARY

View File

@@ -1,92 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2022, 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.
#
GITHUB_STEP_SUMMARY="$1"
test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt)
results_dir=build/run-test-prebuilt/test-results/$test_suite_name/text
report_dir=build/run-test-prebuilt/test-support/$test_suite_name
failures=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/newfailures.txt 2> /dev/null || true)
errors=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/other_errors.txt 2> /dev/null || true)
if [[ "$failures" = "" && "$errors" = "" ]]; then
# If we have nothing to report, exit this step now
exit 0
fi
echo "### Test output for failed tests" >> $GITHUB_STEP_SUMMARY
for test in $failures $errors; do
anchor="$(echo "$test" | tr [A-Z/] [a-z_])"
base_path="$(echo "$test" | tr '#' '_')"
report_file="$report_dir/$base_path.jtr"
hs_err_files=$(ls $report_dir/$base_path/hs_err*.log 2> /dev/null || true)
echo "#### <a id="$anchor">$test"
echo '<details><summary>View test results</summary>'
echo ''
echo '```'
if [[ -f "$report_file" ]]; then
cat "$report_file"
else
echo "Error: Result file $report_file not found"
fi
echo '```'
echo '</details>'
echo ''
if [[ "$hs_err_files" != "" ]]; then
echo '<details><summary>View HotSpot error log</summary>'
echo ''
for hs_err in $hs_err_files; do
echo '```'
echo "$hs_err:"
echo ''
cat "$hs_err"
echo '```'
done
echo '</details>'
echo ''
fi
done >> $GITHUB_STEP_SUMMARY
# With many failures, the summary can easily exceed 1024 kB, the limit set by Github
# Trim it down if so.
summary_size=$(wc -c < $GITHUB_STEP_SUMMARY)
if [[ $summary_size -gt 1000000 ]]; then
# Trim to below 1024 kB, and cut off after the last detail group
head -c 1000000 $GITHUB_STEP_SUMMARY | tac | sed -n -e '/<\/details>/,$ p' | tac > $GITHUB_STEP_SUMMARY.tmp
mv $GITHUB_STEP_SUMMARY.tmp $GITHUB_STEP_SUMMARY
(
echo ''
echo ':x: **WARNING: Summary is too large and has been truncated.**'
echo ''
) >> $GITHUB_STEP_SUMMARY
fi
echo ':arrow_right: To see the entire test log, click the job in the list to the left.' >> $GITHUB_STEP_SUMMARY

View File

@@ -1,71 +0,0 @@
#!/bin/bash
#
# Copyright (c) 2022, 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.
#
GITHUB_STEP_SUMMARY="$1"
GITHUB_OUTPUT="$2"
test_suite_name=$(cat build/run-test-prebuilt/test-support/test-last-ids.txt)
results_dir=build/run-test-prebuilt/test-results/$test_suite_name/text
if [[ ! -f build/run-test-prebuilt/make-support/exit-with-error ]]; then
# There were no failures, exit now
exit
fi
failures=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/newfailures.txt 2> /dev/null || true)
errors=$(sed -E -e 's/(.*)\.(java|sh)/\1/' -e '/^#/d' $results_dir/other_errors.txt 2> /dev/null || true)
failure_count=$(echo $failures | wc -w || true)
error_count=$(echo $errors | wc -w || true)
if [[ "$failures" = "" && "$errors" = "" ]]; then
# We know something went wrong, but not what
echo 'failure=true' >> $GITHUB_OUTPUT
echo 'error-message=Unspecified test suite failure. Please see log for job for details.' >> $GITHUB_OUTPUT
exit 0
fi
echo 'failure=true' >> $GITHUB_OUTPUT
echo "error-message=Test run reported $failure_count test failure(s) and $error_count error(s). See summary for details." >> $GITHUB_OUTPUT
echo '### :boom: Test failures summary' >> $GITHUB_STEP_SUMMARY
if [[ "$failures" != "" ]]; then
echo '' >> $GITHUB_STEP_SUMMARY
echo 'These tests reported failure:' >> $GITHUB_STEP_SUMMARY
for test in $failures; do
anchor="$(echo "$test" | tr [A-Z/] [a-z_])"
echo "* [$test](#user-content-$anchor)"
done >> $GITHUB_STEP_SUMMARY
fi
if [[ "$errors" != "" ]]; then
echo '' >> $GITHUB_STEP_SUMMARY
echo 'These tests reported errors:' >> $GITHUB_STEP_SUMMARY
for test in $errors; do
anchor="$(echo "$test" | tr [A-Z/] [a-z_])"
echo "* [$test](#user-content-$anchor)"
done >> $GITHUB_STEP_SUMMARY
fi

View File

@@ -1,162 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Build (cross-compile)'
on:
workflow_call:
inputs:
gcc-major-version:
required: true
type: string
extra-conf-options:
required: false
type: string
configure-arguments:
required: false
type: string
make-arguments:
required: false
type: string
jobs:
build-cross-compile:
name: build
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
target-cpu:
- aarch64
- arm
- s390x
- ppc64le
include:
- target-cpu: aarch64
gnu-arch: aarch64
debian-arch: arm64
debian-repository: https://httpredir.debian.org/debian/
debian-version: bullseye
- target-cpu: arm
gnu-arch: arm
debian-arch: armhf
debian-repository: https://httpredir.debian.org/debian/
debian-version: bullseye
gnu-abi: eabihf
- target-cpu: s390x
gnu-arch: s390x
debian-arch: s390x
debian-repository: https://httpredir.debian.org/debian/
debian-version: bullseye
- target-cpu: ppc64le
gnu-arch: powerpc64le
debian-arch: ppc64el
debian-repository: https://httpredir.debian.org/debian/
debian-version: bullseye
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: linux-x64
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
- name: 'Install toolchain and dependencies'
run: |
# Install dependencies using apt-get
sudo apt-get update
sudo apt-get install --only-upgrade apt
sudo apt-get install \
gcc-${{ inputs.gcc-major-version }} \
g++-${{ inputs.gcc-major-version }} \
gcc-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}} \
g++-${{ inputs.gcc-major-version }}-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}} \
libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
- name: 'Check cache for sysroot'
id: get-cached-sysroot
uses: actions/cache@v4
with:
path: sysroot
key: sysroot-${{ matrix.debian-arch }}-${{ hashFiles('./.github/workflows/build-cross-compile.yml') }}
- name: 'Install sysroot dependencies'
run: sudo apt-get install debootstrap qemu-user-static
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
- name: 'Create sysroot'
run: >
sudo debootstrap
--arch=${{ matrix.debian-arch }}
--verbose
--include=fakeroot,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype-dev,libpng-dev
--resolve-deps
--variant=minbase
${{ matrix.debian-version }}
sysroot
${{ matrix.debian-repository }}
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
- name: 'Prepare sysroot'
run: |
# Prepare sysroot and remove unused files to minimize cache
sudo chroot sysroot symlinks -cr .
sudo chown ${USER} -R sysroot
rm -rf sysroot/{dev,proc,run,sys,var}
rm -rf sysroot/usr/{sbin,bin,share}
rm -rf sysroot/usr/lib/{apt,gcc,udev,systemd}
rm -rf sysroot/usr/libexec/gcc
if: steps.get-cached-sysroot.outputs.cache-hit != 'true'
- name: 'Configure'
run: >
bash configure
--with-conf-name=linux-${{ matrix.target-cpu }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-zlib=system
--enable-debug
--disable-precompiled-headers
--openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}
--with-sysroot=sysroot
CC=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-gcc-${{ inputs.gcc-major-version }}
CXX=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-abi}}-g++-${{ inputs.gcc-major-version }}
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
echo "Dumping config.log:" &&
cat config.log &&
exit 1)
- name: 'Build'
id: build
uses: ./.github/actions/do-build
with:
make-target: 'hotspot ${{ inputs.make-arguments }}'
platform: linux-${{ matrix.target-cpu }}

View File

@@ -1,140 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Build (linux)'
on:
workflow_call:
inputs:
platform:
required: true
type: string
extra-conf-options:
required: false
type: string
make-target:
required: false
type: string
default: 'product-bundles test-bundles'
debug-levels:
required: false
type: string
default: '[ "debug", "release" ]'
gcc-major-version:
required: true
type: string
gcc-package-suffix:
required: false
type: string
default: ''
apt-architecture:
required: false
type: string
apt-extra-packages:
required: false
type: string
configure-arguments:
required: false
type: string
make-arguments:
required: false
type: string
jobs:
build-linux:
name: build
runs-on: ubuntu-22.04
strategy:
fail-fast: false
matrix:
debug-level: ${{ fromJSON(inputs.debug-levels) }}
include:
- debug-level: debug
flags: --with-debug-level=fastdebug
suffix: -debug
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: linux-x64
- name: 'Get JTReg'
id: jtreg
uses: ./.github/actions/get-jtreg
- name: 'Set architecture'
id: arch
run: |
# Set a proper suffix for packages if using a different architecture
if [[ '${{ inputs.apt-architecture }}' != '' ]]; then
echo 'suffix=:${{ inputs.apt-architecture }}' >> $GITHUB_OUTPUT
fi
# Upgrading apt to solve libc6 installation bugs, see JDK-8260460.
- name: 'Install toolchain and dependencies'
run: |
# Install dependencies using apt-get
if [[ '${{ inputs.apt-architecture }}' != '' ]]; then
sudo dpkg --add-architecture ${{ inputs.apt-architecture }}
fi
sudo apt-get update
sudo apt-get install --only-upgrade apt
sudo apt-get install gcc-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} g++-${{ inputs.gcc-major-version }}${{ inputs.gcc-package-suffix }} libxrandr-dev${{ steps.arch.outputs.suffix }} libxtst-dev${{ steps.arch.outputs.suffix }} libcups2-dev${{ steps.arch.outputs.suffix }} libasound2-dev${{ steps.arch.outputs.suffix }} ${{ inputs.apt-extra-packages }}
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-${{ inputs.gcc-major-version }} 100 --slave /usr/bin/g++ g++ /usr/bin/g++-${{ inputs.gcc-major-version }}
- name: 'Configure'
run: >
bash configure
--with-conf-name=${{ inputs.platform }}
${{ matrix.flags }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-jtreg=${{ steps.jtreg.outputs.path }}
--enable-jtreg-failure-handler
--with-zlib=system
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
echo "Dumping config.log:" &&
cat config.log &&
exit 1)
- name: 'Build'
id: build
uses: ./.github/actions/do-build
with:
make-target: '${{ inputs.make-target }} ${{ inputs.make-arguments }}'
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'
- name: 'Upload bundles'
uses: ./.github/actions/upload-bundles
with:
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'

View File

@@ -1,118 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Build (macos)'
on:
workflow_call:
inputs:
platform:
required: true
type: string
extra-conf-options:
required: false
type: string
make-target:
required: false
type: string
default: 'product-bundles test-bundles'
debug-levels:
required: false
type: string
default: '[ "debug", "release" ]'
xcode-toolset-version:
required: true
type: string
configure-arguments:
required: false
type: string
make-arguments:
required: false
type: string
jobs:
build-macos:
name: build
runs-on: macos-12
strategy:
fail-fast: false
matrix:
debug-level: ${{ fromJSON(inputs.debug-levels) }}
include:
- debug-level: debug
flags: --with-debug-level=fastdebug
suffix: -debug
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: macos-x64
- name: 'Get JTReg'
id: jtreg
uses: ./.github/actions/get-jtreg
- name: 'Install toolchain and dependencies'
run: |
# Run Homebrew installation and xcode-select
brew install make
sudo xcode-select --switch /Applications/Xcode_${{ inputs.xcode-toolset-version }}.app/Contents/Developer
# This will make GNU make available as 'make' and not only as 'gmake'
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
- name: 'Configure'
run: >
bash configure
--with-conf-name=${{ inputs.platform }}
${{ matrix.flags }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-jtreg=${{ steps.jtreg.outputs.path }}
--enable-jtreg-failure-handler
--with-zlib=system
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
echo "Dumping config.log:" &&
cat config.log &&
exit 1)
- name: 'Build'
id: build
uses: ./.github/actions/do-build
with:
make-target: '${{ inputs.make-target }} ${{ inputs.make-arguments }}'
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'
- name: 'Upload bundles'
uses: ./.github/actions/upload-bundles
with:
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'

View File

@@ -1,150 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'Build (windows)'
on:
workflow_call:
inputs:
platform:
required: true
type: string
extra-conf-options:
required: false
type: string
make-target:
required: false
type: string
default: 'product-bundles test-bundles'
debug-levels:
required: false
type: string
default: '[ "debug", "release" ]'
msvc-toolset-version:
required: true
type: string
msvc-toolset-architecture:
required: true
type: string
configure-arguments:
required: false
type: string
make-arguments:
required: false
type: string
env:
# These are needed to make the MSYS2 bash work properly
MSYS2_PATH_TYPE: minimal
CHERE_INVOKING: 1
jobs:
build-windows:
name: build
runs-on: windows-2019
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
debug-level: ${{ fromJSON(inputs.debug-levels) }}
include:
- debug-level: debug
flags: --with-debug-level=fastdebug
suffix: -debug
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
- name: 'Get MSYS2'
uses: ./.github/actions/get-msys2
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: windows-x64
- name: 'Get JTReg'
id: jtreg
uses: ./.github/actions/get-jtreg
- name: 'Check toolchain installed'
id: toolchain-check
run: |
set +e
'/c/Program Files (x86)/Microsoft Visual Studio/2019/Enterprise/vc/auxiliary/build/vcvars64.bat' -vcvars_ver=${{ inputs.msvc-toolset-version }}
if [ $? -eq 0 ]; then
echo "Toolchain is already installed"
echo "toolchain-installed=true" >> $GITHUB_OUTPUT
else
echo "Toolchain is not yet installed"
echo "toolchain-installed=false" >> $GITHUB_OUTPUT
fi
- name: 'Install toolchain and dependencies'
run: |
# Run Visual Studio Installer
'/c/Program Files (x86)/Microsoft Visual Studio/Installer/vs_installer.exe' \
modify --quiet --installPath 'C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise' \
--add Microsoft.VisualStudio.Component.VC.${{ inputs.msvc-toolset-version }}.${{ inputs.msvc-toolset-architecture }}
if: steps.toolchain-check.outputs.toolchain-installed != 'true'
- name: 'Configure'
run: >
bash configure
--with-conf-name=${{ inputs.platform }}
${{ matrix.flags }}
--with-version-opt=${GITHUB_ACTOR}-${GITHUB_SHA}
--with-boot-jdk=${{ steps.bootjdk.outputs.path }}
--with-jtreg=${{ steps.jtreg.outputs.path }}
--enable-jtreg-failure-handler
--with-msvc-toolset-version=${{ inputs.msvc-toolset-version }}
${{ inputs.extra-conf-options }} ${{ inputs.configure-arguments }} || (
echo "Dumping config.log:" &&
cat config.log &&
exit 1)
env:
# We need a minimal PATH on Windows
# Set PATH to "", so just GITHUB_PATH is included
PATH: ''
shell: env /usr/bin/bash --login -eo pipefail {0}
- name: 'Build'
id: build
uses: ./.github/actions/do-build
with:
make-target: '${{ inputs.make-target }} ${{ inputs.make-arguments }}'
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'
- name: 'Upload bundles'
uses: ./.github/actions/upload-bundles
with:
platform: ${{ inputs.platform }}
debug-suffix: '${{ matrix.suffix }}'

View File

@@ -1,355 +0,0 @@
#
# Copyright (c) 2022, 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.
#
name: 'OpenJDK GHA Sanity Checks'
on:
push:
branches-ignore:
- master
- pr/*
workflow_dispatch:
inputs:
platforms:
description: 'Platform(s) to execute on (comma separated, e.g. "linux-x64, macos, aarch64")'
required: true
default: 'linux-x64, linux-x86, linux-x64-variants, linux-cross-compile, macos-x64, macos-aarch64, windows-x64, windows-aarch64'
configure-arguments:
description: 'Additional configure arguments'
required: false
make-arguments:
description: 'Additional make arguments'
required: false
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
###
### Determine platforms to include
###
select:
name: 'Select platforms'
runs-on: ubuntu-22.04
outputs:
linux-x64: ${{ steps.include.outputs.linux-x64 }}
linux-x86: ${{ steps.include.outputs.linux-x86 }}
linux-x64-variants: ${{ steps.include.outputs.linux-x64-variants }}
linux-cross-compile: ${{ steps.include.outputs.linux-cross-compile }}
macos-x64: ${{ steps.include.outputs.macos-x64 }}
macos-aarch64: ${{ steps.include.outputs.macos-aarch64 }}
windows-x64: ${{ steps.include.outputs.windows-x64 }}
windows-aarch64: ${{ steps.include.outputs.windows-aarch64 }}
steps:
# This function must be inlined in main.yml, or we'd be forced to checkout the repo
- name: 'Check what jobs to run'
id: include
run: |
# Determine which platform jobs to run
# Returns 'true' if the input platform list matches any of the platform monikers given as argument,
# 'false' otherwise.
# arg $1: platform name or names to look for
function check_platform() {
if [[ $GITHUB_EVENT_NAME == workflow_dispatch ]]; then
input='${{ github.event.inputs.platforms }}'
elif [[ $GITHUB_EVENT_NAME == push ]]; then
if [[ '${{ !secrets.JDK_SUBMIT_FILTER || startsWith(github.ref, 'refs/heads/submit/') }}' == 'false' ]]; then
# If JDK_SUBMIT_FILTER is set, and this is not a "submit/" branch, don't run anything
>&2 echo 'JDK_SUBMIT_FILTER is set and not a "submit/" branch'
echo 'false'
return
else
input='${{ secrets.JDK_SUBMIT_PLATFORMS }}'
fi
fi
normalized_input="$(echo ,$input, | tr -d ' ')"
if [[ "$normalized_input" == ",," ]]; then
# For an empty input, assume all platforms should run
echo 'true'
return
else
# Check for all acceptable platform names
for part in $* ; do
if echo "$normalized_input" | grep -q -e ",$part," ; then
echo 'true'
return
fi
done
fi
echo 'false'
}
echo "linux-x64=$(check_platform linux-x64 linux x64)" >> $GITHUB_OUTPUT
echo "linux-x86=$(check_platform linux-x86 linux x86)" >> $GITHUB_OUTPUT
echo "linux-x64-variants=$(check_platform linux-x64-variants variants)" >> $GITHUB_OUTPUT
echo "linux-cross-compile=$(check_platform linux-cross-compile cross-compile)" >> $GITHUB_OUTPUT
echo "macos-x64=$(check_platform macos-x64 macos x64)" >> $GITHUB_OUTPUT
echo "macos-aarch64=$(check_platform macos-aarch64 macos aarch64)" >> $GITHUB_OUTPUT
echo "windows-x64=$(check_platform windows-x64 windows x64)" >> $GITHUB_OUTPUT
echo "windows-aarch64=$(check_platform windows-aarch64 windows aarch64)" >> $GITHUB_OUTPUT
###
### Build jobs
###
build-linux-x64:
name: linux-x64
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
gcc-major-version: '10'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-x64 == 'true'
build-linux-x86:
name: linux-x86
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x86
gcc-major-version: '10'
gcc-package-suffix: '-multilib'
apt-architecture: 'i386'
# Some multilib libraries do not have proper inter-dependencies, so we have to
# install their dependencies manually.
apt-extra-packages: 'libfreetype-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386'
extra-conf-options: '--with-target-bits=32'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-x86 == 'true'
build-linux-x64-hs-nopch:
name: linux-x64-hs-nopch
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
gcc-major-version: '10'
extra-conf-options: '--disable-precompiled-headers'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-x64-variants == 'true'
build-linux-x64-hs-zero:
name: linux-x64-hs-zero
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
gcc-major-version: '10'
extra-conf-options: '--with-jvm-variants=zero --disable-precompiled-headers'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-x64-variants == 'true'
build-linux-x64-hs-minimal:
name: linux-x64-hs-minimal
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
make-target: 'hotspot'
debug-levels: '[ "debug" ]'
gcc-major-version: '10'
extra-conf-options: '--with-jvm-variants=minimal --disable-precompiled-headers'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-x64-variants == 'true'
build-linux-x64-hs-optimized:
name: linux-x64-hs-optimized
needs: select
uses: ./.github/workflows/build-linux.yml
with:
platform: linux-x64
make-target: 'hotspot'
# Technically this is not the "debug" level, but we can't inject a new matrix state for just this job
debug-levels: '[ "debug" ]'
gcc-major-version: '10'
extra-conf-options: '--with-debug-level=optimized --disable-precompiled-headers'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-x64-variants == 'true'
build-linux-cross-compile:
name: linux-cross-compile
needs:
- select
uses: ./.github/workflows/build-cross-compile.yml
with:
gcc-major-version: '10'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.linux-cross-compile == 'true'
build-macos-x64:
name: macos-x64
needs: select
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-x64
xcode-toolset-version: '13.4.1'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.macos-x64 == 'true'
build-macos-aarch64:
name: macos-aarch64
needs: select
uses: ./.github/workflows/build-macos.yml
with:
platform: macos-aarch64
xcode-toolset-version: '13.4.1'
extra-conf-options: '--openjdk-target=aarch64-apple-darwin'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.macos-aarch64 == 'true'
build-windows-x64:
name: windows-x64
needs: select
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-x64
msvc-toolset-version: '14.29'
msvc-toolset-architecture: 'x86.x64'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.windows-x64 == 'true'
build-windows-aarch64:
name: windows-aarch64
needs: select
uses: ./.github/workflows/build-windows.yml
with:
platform: windows-aarch64
msvc-toolset-version: '14.29'
msvc-toolset-architecture: 'arm64'
make-target: 'hotspot'
extra-conf-options: '--openjdk-target=aarch64-unknown-cygwin'
configure-arguments: ${{ github.event.inputs.configure-arguments }}
make-arguments: ${{ github.event.inputs.make-arguments }}
if: needs.select.outputs.windows-aarch64 == 'true'
###
### Test jobs
###
test-linux-x64:
name: linux-x64
needs:
- build-linux-x64
uses: ./.github/workflows/test.yml
with:
platform: linux-x64
bootjdk-platform: linux-x64
runs-on: ubuntu-22.04
test-linux-x86:
name: linux-x86
needs:
- build-linux-x86
uses: ./.github/workflows/test.yml
with:
platform: linux-x86
bootjdk-platform: linux-x64
runs-on: ubuntu-22.04
test-macos-x64:
name: macos-x64
needs:
- build-macos-x64
uses: ./.github/workflows/test.yml
with:
platform: macos-x64
bootjdk-platform: macos-x64
runs-on: macos-12
test-windows-x64:
name: windows-x64
needs:
- build-windows-x64
uses: ./.github/workflows/test.yml
with:
platform: windows-x64
bootjdk-platform: windows-x64
runs-on: windows-2019
# Remove bundles so they are not misconstrued as binary distributions from the JDK project
remove-bundles:
name: 'Remove bundle artifacts'
runs-on: ubuntu-22.04
if: always()
needs:
- build-linux-x64
- build-linux-x86
- build-linux-x64-hs-nopch
- build-linux-x64-hs-zero
- build-linux-x64-hs-minimal
- build-linux-x64-hs-optimized
- build-linux-cross-compile
- build-macos-x64
- build-macos-aarch64
- build-windows-x64
- build-windows-aarch64
- test-linux-x64
- test-linux-x86
- test-macos-x64
- test-windows-x64
steps:
- name: 'Remove bundle artifacts'
run: |
# Find and remove all bundle artifacts
# See: https://docs.github.com/en/rest/actions/artifacts?apiVersion=2022-11-28
ALL_ARTIFACT_IDS="$(curl -sL \
-H 'Accept: application/vnd.github+json' \
-H 'Authorization: Bearer ${{ github.token }}' \
-H 'X-GitHub-Api-Version: 2022-11-28' \
'${{ github.api_url }}/repos/${{ github.repository }}/actions/runs/${{ github.run_id }}/artifacts?per_page=100')"
BUNDLE_ARTIFACT_IDS="$(echo "$ALL_ARTIFACT_IDS" | jq -r -c '.artifacts | map(select(.name|startswith("bundles-"))) | .[].id')"
for id in $BUNDLE_ARTIFACT_IDS; do
echo "Removing $id"
curl -sL \
-X DELETE \
-H 'Accept: application/vnd.github+json' \
-H 'Authorization: Bearer ${{ github.token }}' \
-H 'X-GitHub-Api-Version: 2022-11-28' \
"${{ github.api_url }}/repos/${{ github.repository }}/actions/artifacts/$id" \
|| echo "Failed to remove bundle"
done

View File

@@ -1,205 +0,0 @@
#
# Copyright (c) 2022, 2023, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# 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.
#
name: 'Run tests'
on:
workflow_call:
inputs:
platform:
required: true
type: string
bootjdk-platform:
required: true
type: string
runs-on:
required: true
type: string
env:
# These are needed to make the MSYS2 bash work properly
MSYS2_PATH_TYPE: minimal
CHERE_INVOKING: 1
jobs:
test:
name: test
runs-on: ${{ inputs.runs-on }}
defaults:
run:
shell: bash
strategy:
fail-fast: false
matrix:
test-name:
- 'jdk/tier1 part 1'
- 'jdk/tier1 part 2'
- 'jdk/tier1 part 3'
- 'langtools/tier1'
- 'hs/tier1 common'
- 'hs/tier1 compiler'
- 'hs/tier1 gc'
- 'hs/tier1 runtime'
- 'hs/tier1 serviceability'
include:
- test-name: 'jdk/tier1 part 1'
test-suite: 'test/jdk/:tier1_part1'
- test-name: 'jdk/tier1 part 2'
test-suite: 'test/jdk/:tier1_part2'
- test-name: 'jdk/tier1 part 3'
test-suite: 'test/jdk/:tier1_part3'
- test-name: 'langtools/tier1'
test-suite: 'test/langtools/:tier1'
- test-name: 'hs/tier1 common'
test-suite: 'test/hotspot/jtreg/:tier1_common'
debug-suffix: -debug
- test-name: 'hs/tier1 compiler'
test-suite: 'test/hotspot/jtreg/:tier1_compiler'
debug-suffix: -debug
- test-name: 'hs/tier1 gc'
test-suite: 'test/hotspot/jtreg/:tier1_gc'
debug-suffix: -debug
- test-name: 'hs/tier1 runtime'
test-suite: 'test/hotspot/jtreg/:tier1_runtime'
debug-suffix: -debug
- test-name: 'hs/tier1 serviceability'
test-suite: 'test/hotspot/jtreg/:tier1_serviceability'
debug-suffix: -debug
steps:
- name: 'Checkout the JDK source'
uses: actions/checkout@v4
- name: 'Get MSYS2'
uses: ./.github/actions/get-msys2
if: runner.os == 'Windows'
- name: 'Get the BootJDK'
id: bootjdk
uses: ./.github/actions/get-bootjdk
with:
platform: ${{ inputs.bootjdk-platform }}
- name: 'Get JTReg'
id: jtreg
uses: ./.github/actions/get-jtreg
- name: 'Get bundles'
id: bundles
uses: ./.github/actions/get-bundles
with:
platform: ${{ inputs.platform }}
debug-suffix: ${{ matrix.debug-suffix }}
- name: 'Install dependencies'
run: |
# On macOS we need to install some dependencies for testing
brew install make
sudo xcode-select --switch /Applications/Xcode_13.4.1.app/Contents/Developer
# This will make GNU make available as 'make' and not only as 'gmake'
echo '/usr/local/opt/make/libexec/gnubin' >> $GITHUB_PATH
if: runner.os == 'macOS'
- name: 'Set PATH'
id: path
run: |
# We need a minimal PATH on Windows
# Set PATH to "", so just GITHUB_PATH is included
if [[ '${{ runner.os }}' == 'Windows' ]]; then
echo "value=" >> $GITHUB_OUTPUT
else
echo "value=$PATH" >> $GITHUB_OUTPUT
fi
- name: 'Run tests'
id: run-tests
run: >
make run-test-prebuilt
TEST='${{ matrix.test-suite }}'
BOOT_JDK=${{ steps.bootjdk.outputs.path }}
JT_HOME=${{ steps.jtreg.outputs.path }}
JDK_IMAGE_DIR=${{ steps.bundles.outputs.jdk-path }}
SYMBOLS_IMAGE_DIR=${{ steps.bundles.outputs.symbols-path }}
TEST_IMAGE_DIR=${{ steps.bundles.outputs.tests-path }}
JTREG='JAVA_OPTIONS=-XX:-CreateCoredumpOnCrash;VERBOSE=fail,error,time;KEYWORDS=!headful'
&& bash ./.github/scripts/gen-test-summary.sh "$GITHUB_STEP_SUMMARY" "$GITHUB_OUTPUT"
env:
PATH: ${{ steps.path.outputs.value }}
# This is a separate step, since if the markdown from a step gets bigger than
# 1024 kB it is skipped, but then the short summary above is still generated
- name: 'Generate test report'
run: bash ./.github/scripts/gen-test-results.sh "$GITHUB_STEP_SUMMARY"
if: always()
- name: 'Package test results'
id: package
run: |
# Package test-results and relevant parts of test-support
mkdir results
if [[ -d build/run-test-prebuilt/test-results ]]; then
cd build/run-test-prebuilt/test-results/
zip -r -9 "$GITHUB_WORKSPACE/results/test-results.zip" .
cd $GITHUB_WORKSPACE
else
echo '::warning ::Missing test-results directory'
fi
if [[ -d build/run-test-prebuilt/test-support ]]; then
cd build/run-test-prebuilt/test-support/
zip -r -9 "$GITHUB_WORKSPACE/results/test-support.zip" . -i *.jtr -i */hs_err*.log -i */replay*.log
cd $GITHUB_WORKSPACE
else
echo '::warning ::Missing test-support directory'
fi
artifact_name="results-${{ inputs.platform }}-$(echo ${{ matrix.test-name }} | tr '/ ' '__')"
echo "artifact-name=$artifact_name" >> $GITHUB_OUTPUT
if: always()
- name: 'Upload test results'
uses: actions/upload-artifact@v4
with:
path: results
name: ${{ steps.package.outputs.artifact-name }}
if: always()
# This is the best way I found to abort the job with an error message
- name: 'Notify about test failures'
uses: actions/github-script@v7
with:
script: core.setFailed('${{ steps.run-tests.outputs.error-message }}')
if: steps.run-tests.outputs.failure == 'true'

3
.gitignore vendored
View File

@@ -1,7 +1,6 @@
/build/
/dist/
/.idea/
/.vscode/
nbproject/private/
/webrev
/.src-rev
@@ -14,5 +13,3 @@ test/nashorn/lib
NashornProfile.txt
**/JTreport/**
**/JTwork/**
/compile_commands.json
/.cache

16
.hgignore Normal file
View File

@@ -0,0 +1,16 @@
^build/
^dist/
^.idea/
nbproject/private/
^webrev
^.src-rev$
^.jib/
\.DS_Store
\.metadata/
\.recommenders/
test/nashorn/script/external
test/nashorn/lib
NashornProfile.txt
.*/JTreport/.*
.*/JTwork/.*
.*/.git/.*

526
.hgtags Normal file
View File

@@ -0,0 +1,526 @@
3cc80be736f24704e505ad8ddaa598dec3fa2ed3 jdk-9+181
e2b70be325bd10dae4c06f74c46d70d480854916 jdk-9+179
5b16a1c3ccffff2a82c88bb7ea894c4ff1c9ebde jdk-9+180
43bf6f30fcba031ecf0cc7e511efe3a8179d0f77 jdk-9+176
d9f6bc6ba599d0487dc18b2fbdb6c34eedf6f958 jdk-9+177
bc9df7dd63ec76f50fafeb4acc44465044662f0a jdk-9+178
994036e74ab805bcc09afa0646be17a725bec42f jdk-9+175
94680c6d60ecd9ed3ffd1847706efde7eb947afc jdk-9+174
6dd7fda42bab7ecf648cafb0a4e9b4ca11b3094f jdk-9+173
dad6746278facbbea57dd462cb56fb743dc0a5f0 jdk-9+172
643b5f18c2656fe91b69fea85b07b98d5fad394d jdk-9+171
898cbe31fbdae2d25d141384fac746cc244a730c jdk-9+170
c7efde2b60fc1ec04630be769d9ad60efb39c39c jdk-9+169
8fd0a4569191f33c98ee90c2709174a342fefb0d jdk-9+167
fcabc74bd44e56c7419d111d59b95669ecb33c55 jdk-9+168
d3e973f1809606c67412361041ad197e50fe8cec jdk-9+166
3965b747cfe1e6cbd66b8739da5a1ea6ec6985e9 jdk-9+165
d16aebbb56d37f12e0c0b0a4fb427db65e1fb1a8 jdk-9+162
18c41483a082e097ac2f5f983c1226ed94aa4215 jdk-9+163
32db52c675e7d5bc413605d2e89b68b608b19be0 jdk-9+164
fd1497902bbe3aa24b21f270ecdcb8de5f7aa9ac jdk-9+159
6aa8be0c4e054fe8b3ab016ae00d16d680f92145 jdk-9+160
f6883b1a5a6478437cd4181c4bd45328ab24feaf jdk-9+161
fa3e76b477829afc4476f0b725cfaa440a6fd917 jdk-9+157
b5015f742ba648184bb7fc547197bd33ebfde30d jdk-9+158
1cc8dd79fd1cd13d36b385196271a29632c67c3b jdk7-b24
bf2517e15f0c0f950e5b3143c4ca11e2df73dcc1 jdk7-b25
5ae7db536e3fcf6be78e45b240a9058095e0ed38 jdk7-b26
67052ac87fc927d048e62ec54ff42adb230d3f7c jdk7-b27
18dc4ba4739a537fd146f77da51db16efce28da2 jdk7-b28
bfe4572fd301a6fcd120373cdb2eff5d2da0c72c jdk7-b29
bee4731164a06ddece1297ae58db24aca6a1c626 jdk7-b30
cd8b8f500face60d1566d850857a7fccadbd383a jdk7-b31
a9f1805e3ba9ca520cad199d522c84af5433e85a jdk7-b32
6838c1a3296aaa3572364d2ce7d70826cee96286 jdk7-b33
90cf935adb353bb0af4b46fb0677e841fd24c000 jdk7-b34
6d909d5803e3a22850e6c4e5a75b888742ee7e20 jdk7-b35
d718a441936196b93d8bc9f084933af9a4c2a350 jdk7-b36
c2036bf76829c03b99108fffab52e20910a9be4f jdk7-b37
a2879b2837f5a4c87e9542efe69ef138194af8ff jdk7-b38
126f365cec6c3c2c72de934fa1c64b5f082b55b5 jdk7-b39
3c53424bbe3bb77e01b468b4b0140deec33e11fc jdk7-b40
3cb2a607c347934f8e7e86f840a094c28b08d9ea jdk7-b41
caf58ffa084568990cbb3441f9ae188e36b31770 jdk7-b42
41bd0a702bc8ec6feebd725a63e7c3227f82ab11 jdk7-b43
5843778bda89b1d5ac8e1aa05e26930ac90b3145 jdk7-b44
54dffad0bf066791a2793305875250c395011d5f jdk7-b45
04b2620edc72de93671646e4720c5992c74ac8b5 jdk7-b46
0c4657194eec95c08ba478aee9cfc3c295e41657 jdk7-b47
1bf51a4c2627c2f0e0cbcc2cf0421bdb37f1f2b2 jdk7-b48
6b84b04a80afe23262377c60913eebfc898f14c4 jdk7-b49
5da0e6b9f4f18ef483c977337214b12ee0e1fc8f jdk7-b50
a25c5ec5e40e07733d1ff9898a0abe36159288ff jdk7-b51
7a90e89e36d103038f8667f6a7daae34ecfa1ad8 jdk7-b52
d52186ee770dac57950536cd00ccbfdef360b04c jdk7-b53
15096652c4d48dfb9fc0b2cb135304db94c65ba0 jdk7-b54
c8b275d62d6b0a980c510e839b70292245863e85 jdk7-b55
a8134c4ee2cf451cf9b5e1609f39d83ecd53acc5 jdk7-b56
b44f05654c26fcd1f995e712992f9b07ffd7c0c6 jdk7-b57
d60a9ce3c3eabf28f5d50ae839d18be04a551bc2 jdk7-b58
c33e7d38c9210741dbc285507403a4b20bd802a0 jdk7-b59
5a10e4d0b14d7beac53a7b2213ae6864afe1fd3e jdk7-b60
dbb955b1ee59b876dd1f133952b557b48b1d7732 jdk7-b61
6107cbff3130c747d243c25a7874cd59db5744a8 jdk7-b62
dfd8506f74c3731bb169ce93c72612d78ee0413b jdk7-b63
d22867c5f1b295a0a2b3b4bc8999a2676f6e20c3 jdk7-b64
7d3bf00f3cc4f8125de1842521e7567f37dc84b8 jdk7-b65
62109d1b9e7310f29ab51ca6f1d71b899c0ce6b0 jdk7-b66
eb24af1404aec8aa140c4cd4d13d2839b150dd41 jdk7-b67
bca2225b66d78c4bf4d9801f54cac7715a598650 jdk7-b68
1b662b1ed14eb4ae31d5138a36c433b13d941dc5 jdk7-b69
207f694795c448c17753eff1a2f50363106960c2 jdk7-b70
c5d39b6be65cba0effb5f466ea48fe43764d0e0c jdk7-b71
df4bcd06e1d0ab306efa5a44f24a409dc0c0c742 jdk7-b72
ce74bd35ce948d629a356e168797f44b593b1578 jdk7-b73
4e7661eaa211e186674f6cbefec4aef1144ac2a0 jdk7-b74
946518568340c4e511549318f19f47f06b7f5f9b jdk7-b75
09e0b33177af2b98a03c9ca19eedf61440bd1cf6 jdk7-b76
1d0121b741f029dc4b828e4b36ba6fda92907dd7 jdk7-b77
4061c66ba1af1a2e27c2c839ba887407dd3ce050 jdk7-b78
e9c98378f6b9256c0595ef2985ca5899f0c0e274 jdk7-b79
e6abd38682d237306d6c147c17538ec9e7f8e3a7 jdk7-b80
dcc938ac40cc45f1ef454d76020b5db5d943001c jdk7-b81
a30062be6d9ca1d48579826f870f85974300004e jdk7-b82
34c8199936a1682aa8587857f44cfaf37c2b6381 jdk7-b83
b1e55627a6980b9508854ed0c0f21d4f981b4494 jdk7-b84
b6f633a93ae0ec4555ff4bf756f5e2150c9bdede jdk7-b85
c94d9cc81f495d97817eba9d71b84fc45f7661a5 jdk7-b86
b7456c473862048fa70ed8092313a4ef0a55d403 jdk7-b87
7077b95d42f6b3942a8751bba033801ff50e5889 jdk7-b88
44158f6d3b94c0fa020e33632532473d92d1ea96 jdk7-b89
1d1927f9ec097b62c913921e2dfa5dbaf5dc325b jdk7-b90
308ad8f68b8dd68e22d73dd490e110059b732422 jdk7-b91
ff9031a745d9cc52318f2148e43ca3b07ee08098 jdk7-b92
b5dab6a313fdff4c043250e4d9c8f66fd624d27e jdk7-b93
8bb281f0f91582104d65d032be22522bfd2d8110 jdk7-b94
654298d26561b76dfe3cfcffbbd7078080837300 jdk7-b95
d260f892491e040ae385a8e6df59557a7d721abf jdk7-b96
7e406ebed9a5968b584f3c3e6b60893b5d6d9741 jdk7-b97
db6e660120446c407e2d908d52ec046592b21726 jdk7-b98
c4c8a5bc54f66abc68cd185d9294042121922154 jdk7-b99
2d6ba7a221915bdf0311acc5641c7f3875cb793e jdk7-b100
2548ac036b8fca3326d058d758e6df8355a42469 jdk7-b101
88db80c8e49cea352c2900f689600dc410761c1f jdk7-b102
64770970865839b0443066370e7d476ef47e90cd jdk7-b103
10bc903a228d3a8efdf46fb8c3fcf82a59b88bc5 jdk7-b104
1ce7938efb03224ccc8b3cdd7803eb39e889539c jdk7-b105
6bdae472f77205046703b685eff2ac4f7a0ecf4e jdk7-b106
439de530aac531a360beedba6e2fe51e17292cc0 jdk7-b107
044d31b99ef5609389fc771c422e722e5e224228 jdk7-b108
e02b4d709e177d08d56130a4bc68061e4bbacc7d jdk7-b109
a6442d6bc38a44152e0662688213ce4d2701f42a jdk7-b110
69f3edf083477955b5bd2f754252c7504167d8e1 jdk7-b111
f960f117f1623629f64203e2b09a92a8f6f14ff5 jdk7-b112
1fee41c7ed2b3388970a756a85aa693c0de8407a jdk7-b113
750c1ccb2f2d1ddfa95ab6c7f897fdab2f87f7e9 jdk7-b114
9cb24917216bc68997154f6e9566c3de62acb2f4 jdk7-b115
a4e6aa1f45ad23a6f083ed98d970b5006ea4d292 jdk7-b116
228e73f288c543a8c34e2a54227103ae5649e6af jdk7-b117
2e876e59938a853934aa738c811b26c452bd9fe8 jdk7-b118
4951967a61b4dbbf514828879f57bd1a0d4b420b jdk7-b119
8c840d3ab24f8d0f422b991638acb44b6ab1d98c jdk7-b120
0ce0a2c3a6926677dc507839a820ab6625541e5a jdk7-b121
6f09ea1c034f087916d2a8cf0d22be768400118f jdk7-b122
142129d8599d1f56b29387e7f9a5fad53b6d61df jdk7-b123
aa894c225b1a517b665ac2a58295217ea2245134 jdk7-b124
f658ec2730fa29323c36d23c27e54c7219ef5e16 jdk7-b125
f1df068076986679ea1105532a65529d63a89060 jdk7-b126
f83cd8bd35c678f94e526990e03dc838d0ec2717 jdk7-b127
7da3f5f30855dec6bf3a86529e87dee883b90c72 jdk7-b128
6823ea7eb8eb6fab405d7edb7a5c2f690887a2fa jdk7-b129
a36beda9b9de91231d92a2c529f21cc218fcf8d5 jdk7-b130
d8af56da89bc0fc02a6b6ad78f51157a46d665ab jdk7-b131
d61280d36755d1941fb487f554e8b7a6d0bca6a1 jdk7-b132
fd444c61e7ed3d92b2a730da7c737b02191b682f jdk7-b133
def8e16dd237a47fc067d66d4c616d7baaec6001 jdk7-b134
f75a1efb141210901aabe00a834e0fc32bb8b337 jdk7-b135
46acf76a533954cfd594bb88fdea79938abfbe20 jdk7-b136
d1cf7d4ee16c341f5b8c7e7f1d68a8c412b6c693 jdk7-b137
62b8e328f8c8c66c14b0713222116f2add473f3f jdk7-b138
955488f34ca418f6cdab843d61c20d2c615637d9 jdk7-b139
f4298bc3f4b6baa315643be06966f09684290068 jdk7-b140
5d86d0c7692e8f4a58d430d68c03594e2d3403b3 jdk7-b141
92bf0655022d4187e9b49c1400f98fb3392a4630 jdk7-b142
4a05062d8c4dfa3edec3faf1052af28baba5adff jdk7-b143
07a8728ad49ef6dfa469c3a8bf5ab1e9c80bed5c jdk7-b144
8294c99e685a1f6d1d37c45cd97854cf74be771e jdk7-b145
dca1e8a87e8f756f95b99bac8fe795750d42e1b0 jdk7-b146
a2a589fc29543ed32919c78a1810ad93a6fcf5bc jdk7-b147
de9223c94f9c710b3eebb599cd3586f36c8b94a9 jdk8-b01
1b9d19620eb4606a25b1e28f86d66c8bfa867e06 jdk8-b02
6815e85bf96d6d3875954f9777660372cd70d065 jdk8-b03
31f5c34d78081572ad9a2401c0bb0c6b9711dd65 jdk8-b04
c4f9ea1ecb55ff44e0dd21d2888ead308c86a3aa jdk8-b05
429da7734bf491bccde2a752fae97e9f225896dc jdk8-b06
bc5710332b294676661103bb20d47d2ea3ba8def jdk8-b07
24ee504f80412770c6874836cd9e55b536427b1d jdk8-b08
fbf3cabc9e3bb1fcf710941d777cb0400505fbe6 jdk8-b09
f651ce87127980c58e3599daba964eba2f3b4026 jdk8-b10
cc1f5ce8e504d350e0b0c28c5f84333f8d540132 jdk8-b11
86db042b3385c338e17f7664447fdc7d406dd19e jdk8-b12
4cc0ef72c812943743ef4765f1100e2fbe2b1a08 jdk8-b13
9ffaa48dbfb0f5936c2b789867d0785faec7071d jdk8-b14
b5060eae3b32fd9f884a09774338cd8186d7fafa jdk8-b15
736a63b854f321c7824b7e47890135f80aee05e3 jdk8-b16
f0eccb2946986fb9626efde7d8ed9c8192623f5c jdk8-b17
885050364691ac1ac978305c63f3368a197fb04d jdk8-b18
0ff7113a0882ec82d642cb9f0297b4e497807ced jdk8-b19
6561530ea757c3f3a6fb171c9cc7b3885cdeca85 jdk8-b20
b3a426170188f52981cf4573a2f14d487fddab0d jdk8-b21
e8f03541af27e38aafb619b96863e17f65ffe53b jdk8-b22
498124337041ad53cbaa7eb110f3d7acd6d4eac4 jdk8-b23
7d3720d8c595d1519c31e9ff7366203fc2c61350 jdk8-b24
0071a6d64113a35ba345bb1580c256de5ce17d3e jdk8-b25
6c805d8ed4e5449ea5e4d158c7bdbd7b0b70efd1 jdk8-b26
c51754cddc037b9609e202b9ed38363d8683e7a8 jdk8-b27
16ba58282d117247f480aae7a79b88141ade52a3 jdk8-b28
e070119aa56ee4dc5506c19d2c4d2eecab8ad429 jdk8-b29
23da7804aca0c9c4e6e86532a1453125a76d95ee jdk8-b30
bac81e9f7d57b75fba5ab31b571f3fe0dc08af69 jdk8-b31
2c5208ccb863db936eab523f49450b3fcd230348 jdk8-b32
a6e6d42203e6d35f9e8b31eac25b0021b4dd58ad jdk8-b33
0ae89825c75c9492e44efb3aca3d9ee3d8a209df jdk8-b34
f151d5833912a82cd4f203944da0305c3be83ecc jdk8-b35
98ce9816ae089c959ba1e70fba98423a31c4e9fa jdk8-b36
b3a91113026c99b0da010d41055719ab0d8938f0 jdk8-b37
4cc5610a6dd6227da766ebf9742eb11ff5ded6c0 jdk8-b38
35a5397278779a2f8f3013f81586dc8f30cb149d jdk8-b39
6e4e654931b976304bf6e7b4d0d6db8f75bac5d9 jdk8-b40
c029c972396cea042a0dc67c0f7ccf2fe68007d4 jdk8-b41
5c5a64ec0839df5affe9394b99ff338c363acbca jdk8-b42
69d8a827cdf9236be9694a46d75c710d71dac7d7 jdk8-b43
7e981cb0ad6a194f1fa859f9ad47586db461f269 jdk8-b44
9b19b2302c28f4da6d4078f66234abecfed5688a jdk8-b45
600c9a1feb01633cbcf2341a43d1d21e6497ecd0 jdk8-b46
b820143a6f1ce993c6e6f31db4d64de990f42654 jdk8-b47
086271e35b0a419b38e8bda9bebd70693811df0a jdk8-b48
cecd7026f30cbd83b0601925a7a5e059aec98138 jdk8-b49
38fe5ab028908cf64dd73a43336ba3211577bfc3 jdk8-b50
382651d28f2502d371eca751962232c0e535e57a jdk8-b51
b67041a6cb508da18d2f5c7687e6a31e08bea4fc jdk8-b52
c7aa5cca1c01689a7b1a92411daf83684af05a33 jdk8-b53
7c6aa31ff1b2ae48c1c686ebe1aadf0c3da5be15 jdk8-b54
319f583f66db47395fa86127dd3ddb729eb7c64f jdk8-b55
ffe6bce5a521be40146af2ac03c509b7bac30595 jdk8-b56
2c21c080b11b93efb3851e39e1363e45da805943 jdk8-b57
479d3302a26d7607ba271d66973e59ebf58825b6 jdk8-b58
3bd874584fc01aae92fbc8827e2bd04d8b6ace04 jdk8-b59
5e3adc681779037a2d33b7be6f75680619085492 jdk8-b60
cdaa6122185f9bf512dcd6600f56bfccc4824e8c jdk8-b61
8d9d430b4244b95f5cf1ebe719f834a1ac5d6cd5 jdk8-b62
21ee1dd7b809639284900a128b9b656a592ebc7a jdk8-b63
70fa4b11f26522e69b51fd652215f60ce350bac3 jdk8-b64
a2cf4d4a484378caea2e827ed604b2bbae58bdba jdk8-b65
17820b958ae84f7c1cc6719319c8e2232f7a4f1d jdk8-b66
76cc9bd3ece407d3a15d3bea537b57927973c5e7 jdk8-b67
cb33628d4e8f11e879c371959e5948b66a53376f jdk8-b68
adb5171c554e14cd86f618b5584f6e3d693d5889 jdk8-b69
0d625373c69e2ad6f546fd88ab50c6c9aad01271 jdk8-b70
a41ada2ed4ef735449531c6ebe6cec593d890a1c jdk8-b71
6725b3961f987cf40f446d1c11cd324a3bec545f jdk8-b72
fe94b40ffd9390f6cffcdf51c0389b0e6dde0c13 jdk8-b73
f627eff819628822a0777af8062244352f2a29cf jdk8-b74
f1478a6d25fddd311a84dcbfac50824cc1858bdd jdk8-b75
f407160c280d1c5b00d314c535441ac26f195fee jdk8-b76
d17eb2e13e362085e866d46235314c50cc4661cc jdk8-b77
6d3dcd34b5b962ea1ef9eed0dafdee9e812401bc jdk8-b78
a1313a8d90d17d363a3b2a645dc4030ec204b168 jdk8-b79
3fa21fbf9be7e6b482af43aacb6a09acfa30bdb6 jdk8-b80
e41d716405b209d3eddef8bd4240cec2bd34dcca jdk8-b81
5e8c55025644730385a6f8fa029ecdb2d2c98a07 jdk8-b82
bcebd3fdefc91abb9d7fa0c5af6211b3f8720da6 jdk8-b83
d7ad0dfaa41151bd3a9ae46725b0aec3730a9cd0 jdk8-b84
1872c12529090e1c1dbf567f02ad7ae6231b8f0c jdk8-b85
da9a4c9312816451884aa6db6f18be51a07bff13 jdk8-b86
5ebf6c63714de2c9dcf831074086d31daec819df jdk8-b87
e517701a4d0e25ae9c7945bca6e1762a8c5d8aa6 jdk8-b88
4dec41b3c5e3bb616f0c6f15830d940905aa5d16 jdk8-b89
f09ab0c416185e3cba371e81bcb6a16060c90f44 jdk8-b90
80b6c3172dc2cfceb022411292d290a967f9c728 jdk8-b91
2fd6acba737b01e705e1f7c33588c922a3787f13 jdk8-b92
b72ae39e1329fefae50d4690db4fde43f3841a95 jdk8-b93
0d804e3b955dce406af6a79ac1cc35c696aff7fb jdk8-b94
49fe9c8049132647ad38837a877dd473e6c9b0e5 jdk8-b95
ea73f01b9053e7165e7ba80f242bafecbc6af712 jdk8-b96
0a85476a0b9cb876d5666d45097dac68bef3fce1 jdk8-b97
711eb4aa87de68de78250e0549980936bab53d54 jdk8-b98
2d3875b0d18b3ad1c2bebf385a697e309e4005a4 jdk8-b99
3d34036aae4ea90b2ca59712d5a69db3221f0875 jdk8-b100
edb01c460d4cab21ff0ff13512df7b746efaa0e7 jdk8-b101
bbe43d712fe08e650808d774861b256ccb34e500 jdk8-b102
30a1d677a20c6a95f98043d8f20ce570304e3818 jdk8-b103
b5ed503c26ad38869c247c5e32debec217fd056b jdk8-b104
589f4fdc584e373a47cde0162e9eceec9165c381 jdk8-b105
514b0b69fb9683ef52062fd962a3e0644431f64d jdk8-b106
892889f445755790ae90e61775bfb59ddc6182b5 jdk8-b107
74049f7a28b48c14910106a75d9f2504169c352e jdk8-b108
af9a674e12a16da1a4bd53e4990ddb1121a21ef1 jdk8-b109
b5d2bf482a3ea1cca08c994512804ffbc73de0a1 jdk8-b110
b9a0f6c693f347a6f4b9bb994957f4eaa05bdedd jdk8-b111
ad67c34f79c28a8e755f4a49f313868619d6702c jdk8-b112
4a4dbcf7cb7d3e1a81beaa3b11cd909f69ebc79a jdk8-b113
dfa34ab293faad9b543a24646dbb381bc3ab5586 jdk8-b114
3dd9732b17034f45d111996d1d50287b05a3998c jdk8-b115
aaf663f591aba43ec942263b15ba62759ce26a1e jdk8-b116
31b0e03fcad73d7886b306b4c2e57ad270780d0d jdk8-b117
f5b521ade7a35cea18df78ee86322207729f5611 jdk8-b118
87b743b2263cc53955266411b7797b365a0fb050 jdk8-b119
a1ee9743f4ee165eae59389a020f2552f895dac8 jdk8-b120
13b877757b0b1c0d5813298df85364f41d7ba6fe jdk9-b00
f130ca87de6637acae7d99fcd7a8573eea1cbaed jdk9-b01
b32e2219736e42baaf45daf0ad67ed34f6033799 jdk9-b02
7f655f31f9bcee618cf832f08176ad8c1ed3fdd3 jdk9-b03
099891b1d86f3719e116ac717ffdafc90d037fb7 jdk9-b04
dd311791ad6895a3989020dd6c6c46db87972ab8 jdk9-b05
85dbdc227c5e11429b4fc4a8ba763f50107edd6e jdk9-b06
c826d05f1fb0773f6a28caa763307dd30d90d36e jdk9-b07
b47e021195757f8f45582124ea7cad48ccf5f872 jdk9-b08
efe7dbc6088691757404e0c8745f894e3ca9c022 jdk9-b09
8c0bdeecd7c0f9ce3f3762a51991f755cb3a972c jdk9-b10
0809c9a4d36e6291f1c4384604c4bbf29e975722 jdk9-b11
0d1f816217dce5e72187f167cc1816080cbeb453 jdk9-b12
1a30593dcb9802faec3b6edb24d86ca088594e4e jdk9-b13
97932f6ad950ae5a73a9da5c96e6e58503ff646b jdk9-b14
74eb0778e4f2dbff6628e718378449fba27c4265 jdk9-b15
4a09f5d30be844ac6f714bdb0f63d8c3c08b9a98 jdk9-b16
410bccbded9e9cce80f1e13ad221e37ae97a3986 jdk9-b17
c5495e25c7258ab5f96a1ae14610887d76d2be63 jdk9-b18
2dcf544eb7ed5ac6a3f7813a32e33acea7442405 jdk9-b19
89731ae72a761afdf4262e8b9513f302f6563f89 jdk9-b20
28dd0c7beb3cad9cf95f17b4b5ad87eb447a4084 jdk9-b21
9678e0db8ff6ed845d4c2ee4a3baf7f386a777e5 jdk9-b22
39cfdc2dcaf3f195c55398e4e677ab053b07e3d2 jdk9-b23
d9ce05f36ffec3e5e8af62a92455c1c66a63c320 jdk9-b24
13a5c76976fe48e55c9727c25fae2d2ce7c05da0 jdk9-b25
cd6f4557e7fea5799ff3762ed7a80a743e75d5fd jdk9-b26
d06a6d3c66c08293b2a9650f3cc01fd55c620e65 jdk9-b27
f4269e8f454eb77763ecee228a88ae102a9aef6e jdk9-b28
c36c0092693707a8255561433647e8c3cd724ccd jdk9-b29
b2287cac7813c70ed7f679d9a46fe774bd4005f8 jdk9-b30
9d0e6639a4d71b63507dd94b1a028e963b27e798 jdk9-b31
1b1ec4291abc0ba6da7bf79b754f08dd759a4a0c jdk9-b32
f0c5e4b732da823bdaa4184133675f384e7cd68d jdk9-b33
9618201c5df28a460631577fad1f61e96f775c34 jdk9-b34
a137992d750c72f6f944f341aa19b0d0d96afe0c jdk9-b35
41df50e7303daf73c0d661ef601c4fe250915de5 jdk9-b36
b409bc51bc23cfd51f2bd04ea919ec83535af9d0 jdk9-b37
948cceef81ba4cb34bc233e7cc5952951ff04e88 jdk9-b38
4e7c4d692e934cb9023af8201e7c2b510e9c4ee1 jdk9-b39
82f4cb44b2d7af2352f48568a64b7b6a5ae960cd jdk9-b40
9fffb959eb4197ff806e4ac12244761815b4deee jdk9-b41
3107be2ba9c6e208a0b86bc7100a141abbc5b5fb jdk9-b42
6494b13f88a867026ee316b444d9a4fa589dd6bd jdk9-b43
abbfccd659b91a7bb815d5e36fed635dcdd40f31 jdk9-b44
bfc24ae2b900187585079bb11e66e459d1e525fe jdk9-b45
722378bc599e38d9a1dd484de30f10dfd7b21438 jdk9-b46
8327024a99559982b848e9c2191da9c0bf8838fd jdk9-b47
b2f9702efbe95527ea3a991474fda23987ff1c5c jdk9-b48
5b8db585a33c3cc48e70e688ceee57dd9271dc5d jdk9-b49
1550b2f6b63d1411fa84dc7bbc6f04809aedb43f jdk9-b50
6efe265424e3f1ea596408a1f71baf2de316c772 jdk9-b51
d6224d6021459ac8b3832e822f5acc849fa944af jdk9-b52
874d76e4699dfcd61ae1826c9fe0ddc1610ad598 jdk9-b53
82cd31c5d6ca8d4c1653f4eb1c09eb2d9a3b2813 jdk9-b54
c97e2d1bad9708d379793ba2a4c848eda14c741e jdk9-b55
47544495db2d3d2edf0f85862d8715592fdb919f jdk9-b56
ddb95d8f169b09544cc17e72a6baaff2400092f5 jdk9-b57
f40752db7773ca0c737f2ad88371e35c57fdfed7 jdk9-b58
da950f343762a856d69751570a4c07cfa68a415b jdk9-b59
38f98cb6b33562a926ec3b79c7b34128be37647d jdk9-b60
ac3f5a39d4ff14d70c365e12cf5ec8f2abd52a04 jdk9-b61
e7dbbef69d12b6a74dfad331b7188e7f893e8d29 jdk9-b62
989253a902c34dcb7564695161c9200a5fbb7412 jdk9-b63
8ffdeabc7c2b9a8280bf46cae026ac46b4d31c26 jdk9-b64
4915246064b2f89d5f00c96e758686b7fdad36a6 jdk9-b65
ff3fc75f3214ad7e03595be1b0d0f38d887b6f0e jdk9-b66
56166ce66037952fa21e9f680b31bf8eb47312c0 jdk9-b67
5b500c93ce4822d47061cd518ff3f72d9d8cb5b5 jdk9-b68
d69c968463f0ae5d0b45de3fc14fe65171b23948 jdk9-b69
43d0179ee9de3bfffae3417f09e07eb6d8efc963 jdk9-b70
f66c185284727f6e6ffd27e9c45ed2dd9da0a691 jdk9-b71
61d2d0629b6dbf4c091dc86151ade1b3ef34fffe jdk9-b72
9b3a9d72f07b40c648de79961679f42283af1bb5 jdk9-b73
7c577fda1855d03c04546694d514678f596508c9 jdk9-b74
f55df5cfe11c97e4b58998b76f5bd00a73cde12d jdk9-b75
eeea9adfd1e3d075ef82148c00a4847a1aab4d26 jdk9-b76
c25e882cee9622ec75c4e9d60633539a2f0a8809 jdk9-b77
c8753d0be1778944dc512ec86a459941ea1ad2c3 jdk9-b78
3966bd3b8167419aa05c6718a4af1cf54b1e3c58 jdk9-b79
3c9f5bd909ae7187f24622ee4b69f8a5756a9271 jdk9-b80
2050b3a0aadcb0e024bf798197421d58e54ec8bf jdk9-b81
6521875cb63e1d0121b30af56ebbc36db078c4c6 jdk9-b82
f61a63b7d1e52e307abc0bfc751203155d362ec4 jdk9-b83
51b2db2fa04c16d767b66113dbf08c5349ce382a jdk9-b84
8392405ab038b22e69a3728e17dbdd9e3d3a22ed jdk9-b85
7db0663a5e968059fa7c772172187ebd60b6492d jdk9-b86
1a52a30674cd28c24d4d388150336121f2e9ddf9 jdk9-b87
16b4968f9bb8f34371b42c0ba483d76e91ba84d8 jdk9-b88
4a0312f2894bcbe1fd20266c8fda8d983bd2fcf6 jdk9-b89
d131f4b8433a79408f935eff9bf92a0664229b60 jdk9-b90
8077fd2f055d31e50b46fcf62d9c035bc385a215 jdk9-b91
f242d4332f563648426a1b0fa02d8741beba19ef jdk9-b92
09206c6513b300e1ac8541f3be012e1a49312104 jdk9-b93
25a2cab05cfbe6034b71d9e72d64c65b0572ce63 jdk9-b94
5ac6287ec71aafe021cc839d8bc828108d23aaba jdk-9+95
139f19d70350238e15e107945cea75082b6380b3 jdk-9+96
4edcff1b9a8875eb6380a2165dfec599e8e3f7c0 jdk-9+97
d00ad2d9049ac60815f70bff445e95df85648bd2 jdk-9+98
f9bcdce2df26678c3fe468130b535c0342c69b89 jdk-9+99
4379223f8806626852c46c52d4e7a27a584b406e jdk-9+100
80f67512daa15cf37b4825c1c62a675d524d7c49 jdk-9+101
2dc4c11fe48831854916d53c3913bdb7d49023ea jdk-9+102
4a652e4ca9523422149958673033e0ac740d5e1e jdk-9+103
086c682bd8c5f195c324f61e2c61fbcd0226d63b jdk-9+104
db483b34fa7148d257a429acddbde9c13687dcae jdk-9+105
6c644cca3f3fc2763e2ff7d669849a75d34543ba jdk-9+106
1c076468bf7dad5b8f2ee5dcf66e2279caa3e208 jdk-9+107
257b579d813201682931d6b42f0445ffe5b4210d jdk-9+108
c870cb782aca71093d2584376f27f0cfbfec0e3a jdk-9+109
4a95f4b1bd8bfce85dc02a593896749feab96c34 jdk-9+110
a6614ff7bf09da74be1d0ef3d9755090d244697a jdk-9+111
7359994942f8d8e723b584d66a3a92c2e9e95e5c jdk-9+112
6072af7a98be3922f26bdce71b53bb3646cb2ac9 jdk-9+113
c84d0cce090e161d736de69e941830adf8c2f87a jdk-9+114
8d78fb40648dd221ce4ef19f9d5aa41ee1a3a884 jdk-9+115
84aba7335005a3a47751dcf1f37935f97df9f99a jdk-9+116
82b8d12a553f5617737c238cec060281d52e351c jdk-9+117
7c04fcb12bd4a31570a238e663fa846dfa5ec3b8 jdk-9+118
caf97b37ebec84288c112d21d3a60cb628cba1e8 jdk-9+119
9330543436402b8f3bd070524846a464d8143557 jdk-9+120
18e5cdecb37a2f03ba74f6c8f022858bcbaacf56 jdk-9+121
7693aa00e131493ceb42b93305e2f014c9922a3b jdk-9+122
d53037a90c441cb528dc41c30827985de0e67c62 jdk-9+123
2a5697a98620c4f40e4a1a71478464399b8878de jdk-9+124
3aa52182b3ad7c5b3a61cf05a59dd07e4c5884e5 jdk-9+125
03e7b2c5ae345be3caf981d76ceb3efe5ff447f8 jdk-9+126
8e45018bde9de4ad15b972ae62874bba52dba2d5 jdk-9+127
5bf88dce615f6804f9e101a96ffa7c9dfb4fbbbe jdk-9+128
e8373543a3f0f60589b7d72b1f9b172721124caf jdk-9+129
e613affb88d178dc7c589f1679db113d589bddb4 jdk-9+130
4d2a15091124488080d65848b704e25599b2aaeb jdk-9+131
2e83d21d78cd9c1d52e6cd2599e9c8aa36ea1f52 jdk-9+132
e17429a7e843c4a4ed3651458d0f950970edcbcc jdk-9+133
a71210c0d9800eb6925b61ecd6198abd554f90ee jdk-9+134
e384420383a5b79fa0012ebcb25d8f83cff7f777 jdk-9+135
1b4b5d01aa11edf24b6fadbe3d2f3e411e3b02cd jdk-9+136
9cb87c88ed851c0575b8ead753ea238ed5b544e9 jdk-9+137
d273dfe9a126d3bffe92072547fef2cd1361b0eb jdk-9+138
65477538bec32963dc41153d89c4417eb46c45fc jdk-9+139
0875007901f7d364a08220b052f0c81003e9c8c5 jdk-9+140
9aadd2163b568d76f8969ad2fb404a63733da359 jdk-9+141
df0e03e3ca0ed1307793017dfc1a054c8726131c jdk-9+142
d62173b931bf5b6bffc6e80a9060bb2e8b8efc75 jdk-9+143
31f5023200d42185b70c4c00ba5672391e4642d0 jdk-9+144
3ee4e7827413fa5c5c4fca58597b0ad89e921bfb jdk-9+145
581331db696a62dd411926ba7fd437252252a71d jdk-9+146
f4e854a77aa38749bd90f722b06974a56e7233d5 jdk-9+147
5c71ea43933b6c7e8a85eb1a4eb2213011b95d82 jdk-9+148
cf139f925da04c8bd7efd33270a0315d72b338d3 jdk-9+149
17469f16fbb406ec9f0dd262ce776ab6efbc38f1 jdk-9+150
37b95df0042ae0687324e1f7dc4a2519e230e704 jdk-9+151
ab2c8b03c3284fcbdd157551a66f807e3a182d9b jdk-9+152
d7034ff7f8e257e81c9f95c7785dd4eaaa3c2afc jdk-9+153
8c70d170e62c0c58b5bc3ba666bd140399b98c9c jdk-10+0
45b751afd11e6c05991cf4913c5a0ac3304fcc4e jdk-9+154
f4aff695ffe05cfdb69d8af25a4ddc6a029754ea jdk-9+155
06bce0388880b5ff8e040e4a9d72a3ea11dac321 jdk-9+156
74116beae88a8f17a80301aa6c83865c82f10ece jdk-10+1
4a79ad46e578112fce68f1af9dd931025cc235cb jdk-10+2
d1cab6c7e608479be4ebfad48a25b0ed48600f62 jdk-10+3
02253db2ace1422f576f58502fc7831ead77424b jdk-10+4
f113ce12fe24fbd24acf02711372d9f1e1c12426 jdk-10+5
1407b19a2ddf6baae162f5a1a5b96af473f4d7d1 jdk-10+6
30e75693ae99fd8e47fd2f5116527aff1b59aff9 jdk-10+7
c42dc7b58b4d4301ea676a76326fd9bbd403d595 jdk-10+8
aa5b01f5e5620438fd39efdb2e2f6365a2c7d898 jdk-10+9
b0f2b8ff25a2209b2c807785d75f20e5086bbfc2 jdk-10+10
036dbf8b381798e5d31065109714d04d97bf98a4 jdk-10+11
e6d70017f5b9adbb2ec82d826973d0251800a3c3 jdk-10+12
9927a9f16738e240ab7014f0118f41e314ef8f99 jdk-10+13
9ef5029b247b4d940080417a287440bbdbab995b jdk-10+14
878e216039322cb3f0ecbd0944642a2b4e2593f3 jdk-10+15
4bbea012e5676e8025ade2bcfab4d6581e6e9f4b jdk-10+16
7db699468b4f84abbcc01647e5a964409737411a jdk-10+17
3739654290616e533fc6f51bf9ad69ed47a6abba jdk-10+18
14df107500cc3b8ab238c3e4ad2c74e12bfe6067 jdk-10+19
4586bc5d28d13d3147b993e6237eaf29a7073bbb jdk-10+20
a85884d55ce32799f5c7382b7ea4839052b362a2 jdk-10+21
e5357aa85dadacc6562175ff74714fecfb4470cf jdk-10+22
22850b3a55240253841b9a425ad60a7fcdb22d47 jdk-10+23
3b201865d5c1f244f555cad58da599c9261286d8 jdk-10+24
8eb5e3ccee560c28ac9b1df2670adac2b3d36fad jdk-10+25
1129253d3bc728a2963ba411ab9dd1adf358fb6b jdk-10+26
b87d7b5d5dedc1185e5929470f945b7378cdb3ad jdk-10+27
92f08900cb3c0d694e5c529a676c1c9e5909193f jdk-10+28
a6e591e12f122768f675428e1e5a838fd0e9c7ec jdk-10+29
8fee80b92e65149f7414250fd5e34b6f35d417b4 jdk-10+30
e6278add9ff28fab70fe1cc4c1d65f7363dc9445 jdk-10+31
a2008587c13fa05fa2dbfcb09fe987576fbedfd1 jdk-10+32
bbd692ad4fa300ecca7939ffbe3b1d5e52a28cc6 jdk-10+33
89deac44e51517841491ba86ff44aa82a5ca96b3 jdk-10+34
d8c634b016c628622c9abbdc6bf50509e5dedbec jdk-10+35
0ee20aad71c4f33c426372b4c8bcc1235ce2ec08 jdk-11+0
959f2f7cbaa6d2ee45d50029744efb219721576c jdk-10+36
4f830b447edf04fb4a52151a5ad44d9bb60723cd jdk-10+37
e569e83139fdfbecfeb3cd9014d560917787f158 jdk-10+38
5b834ec962366e00d4445352a999a3ac14e26f64 jdk-10+39
860326263d1f6a83996d7da0f4c66806ae4aa1eb jdk-10+40
3eae36c6baa5f916a3024cf1513e22357e00185d jdk-10+41
4b62b815b4f49970b91a952929cf50115c263cb3 jdk-10+42
107413b070b92c88bde6230ceb4a19b579781068 jdk-10+43
dfa46cfe56346884a61efdc30dc50f7505d66761 jdk-11+1
03ae177c26b016353e5ea1cab6ffd051dfa086ca jdk-11+2
663f20fc51091bd7f95d18448850ba091207b7bd jdk-10+44
4f96cf952e71cb8a127334494faf28880c26181b jdk-10+45
1fd4d6068f54561cfc67d54fc9ca84af7212c4f8 jdk-11+3
e59941f7247d451fa7df9eaef3fce0f492f8420c jdk-11+4
d5c43e9f08fb9a7c74aae0d48daf17f2ad2afaef jdk-11+5
3acb379b86725c47e7f33358cb22efa8752ae532 jdk-11+6
f7363de371c9a1f668bd0a01b7df3d1ddb9cc58b jdk-11+7
755e1b55a4dff510f9639cdb5c5e82549a7e09b3 jdk-11+8
0c3e252cea44f06aef570ef464950ab97c669970 jdk-11+9
6fa770f9f8ab296e1ce255ec17ccf6d4e1051886 jdk-10+46
69d7398038c54774d9395b6810e0cca335edc02c jdk-11+10
e1e60f75cd39312a7f59d2a4f91d624e5aecc95e jdk-11+11
3ab6ba9f94a9045a526d645af26c933235371d6f jdk-11+12
758deedaae8406ae60147486107a54e9864aa7b0 jdk-11+13
3595bd343b65f8c37818ebe6a4c343ddeb1a5f88 jdk-11+14
a11c1cb542bbd1671d25b85efe7d09b983c48525 jdk-11+15
02934b0d661b82b7fe1052a04998d2091352e08d jdk-11+16
64e4b1686141e57a681936a8283983341484676e jdk-11+17
e1b3def126240d5433902f3cb0e91a4c27f6db50 jdk-11+18
36ca515343e00b021dcfc902e986d26ec994a2e5 jdk-11+19
95aad0c785e497f1bade3955c4e4a677b629fa9d jdk-12+0
9816d7cc655e53ba081f938b656e31971b8f097a jdk-11+20
14708e1acdc3974f4539027cbbcfa6d69f83cf51 jdk-11+21
00b16d0457e43d23f6ca5ade6b243edce62750a0 jdk-12+1
9937ef7499dcd7673714517fd5e450410c14ba4e jdk-11+22
69b438908512d3dfef5852c6a843a5778333a309 jdk-12+2
1edcf36fe15f79d6228d1a63eb680878e2386480 jdk-11+23
990db216e7199b2ba9989d8fa20b657e0ca7d969 jdk-12+3
ea900a7dc7d77dee30865c60eabd87fc24b1037c jdk-11+24
499b873761d8e8a1cc4aa649daf04cbe98cbce77 jdk-12+4
331888ea4a788df801b1edf8836646cd25fc758b jdk-11+25
f8696e0ab9b795030429fc3374ec03e378fd9ed7 jdk-12+5
945ba9278a272a5477ffb1b3ea1b04174fed8036 jdk-11+26
7939b3c4e4088bf4f70ec5bbd8030393b653372f jdk-12+6
9d7d74c6f2cbe522e39fa22dc557fdd3f79b32ad jdk-11+27
ef57958c7c511162da8d9a75f0b977f0f7ac464e jdk-12+7
76072a077ee1d815152d45d1692c4b36c53c5c49 jdk-11+28
492b366f8e5784cc4927c2c98f9b8a3f16c067eb jdk-12+8
31b159f30fb281016c5f0c103552809aeda84063 jdk-12+9
8f594f75e0547d4ca16649cb3501659e3155e81b jdk-12+10
f0f5d23449d31f1b3580c8a73313918cafeaefd7 jdk-12+11
15094d12a632f452a2064318a4e416d0c7a9ce0c jdk-12+12
511a9946f83e3e3c7b9dbe1840367063fb39b4e1 jdk-12+13
8897e41b327c0a5601c6ba2bba5d07f15a3ffc91 jdk-12+14
8897e41b327c0a5601c6ba2bba5d07f15a3ffc91 jdk-12+14
6f04692c7d5137ee34a6bd94c0c8a6c9219cb127 jdk-12+14
f8626bcc169813a4b2a15880386b952719d1d6d1 jdk-12+15
199658d1ef860cdc17055b4fd3e94b057f292fe9 jdk-12+16
eefa65e142af305923d2adcd596fab9c639723a1 jdk-12+17
e38473506688e0995e701fc7f77d5a91b438ef93 jdk-12+18
dc1f9dec2018a37fedba47d8a2aedef99faaec64 jdk-12+19
40098289d5804c3b5e7074bc75501a81e70d9b0d jdk-12+20
f8fb0c86f2b3d24294d39c5685a628e1beb14ba7 jdk-12+21

View File

@@ -1,35 +1,2 @@
[general]
project=jdk-updates
jbs=JDK
version=11.0.26
[checks]
error=author,committer,reviewers,merge,issues,executable,symlink,message,hg-tag,whitespace,problemlists
warning=issuestitle,binary
[repository]
tags=(?:jdk-(?:[1-9]([0-9]*)(?:\.(?:0|[1-9][0-9]*)){0,4})(?:\+(?:(?:[0-9]+))|(?:-ga)))|(?:jdk[4-9](?:u\d{1,3})?-(?:(?:b\d{2,3})|(?:ga)))|(?:hs\d\d(?:\.\d{1,2})?-b\d\d)
branches=
[census]
version=0
domain=openjdk.org
[checks "whitespace"]
files=.*\.cpp|.*\.hpp|.*\.c|.*\.h|.*\.java
[checks "merge"]
message=Merge
[checks "reviewers"]
reviewers=1
ignore=duke
[checks "committer"]
role=committer
[checks "issues"]
pattern=^([124-8][0-9]{6}): (\S.*)$
[checks "problemlists"]
dirs=test/jdk|test/langtools|test/lib-test|test/hotspot/jtreg|test/jaxp
project=jdk
bugids=dup

12
README Normal file
View File

@@ -0,0 +1,12 @@
Welcome to the JDK!
===================
For information about building the JDK, including how to retrieve all
of the source code, please see either of these files:
* doc/building.html (html version)
* doc/building.md (markdown version)
See http://openjdk.java.net/ for more information about the OpenJDK
Community and the JDK.

View File

@@ -1,11 +0,0 @@
# Welcome to the JDK!
For build instructions please see the
[online documentation](https://openjdk.java.net/groups/build/doc/building.html),
or either of these files:
- [doc/building.html](doc/building.html) (html version)
- [doc/building.md](doc/building.md) (markdown version)
See <https://openjdk.java.net/> for more information about
the OpenJDK Community and the JDK.

View File

@@ -1,3 +0,0 @@
# JDK Vulnerabilities
Please follow the process outlined in the [OpenJDK Vulnerability Policy](https://openjdk.org/groups/vulnerability/report) to disclose vulnerabilities in the JDK.

View File

@@ -49,7 +49,7 @@ do
;;
-o | --output )
IDEA_OUTPUT=$2
IDEA_OUTPUT=$2/.idea
shift
;;
@@ -64,28 +64,25 @@ do
shift
done
mkdir $IDEA_OUTPUT || exit 1
mkdir -p $IDEA_OUTPUT || exit 1
cd $IDEA_OUTPUT; IDEA_OUTPUT=`pwd`
if [ "x$TOPLEVEL_DIR" = "x" ] ; then
cd $SCRIPT_DIR/..
TOPLEVEL_DIR=`pwd`
cd $IDEA_OUTPUT
fi
MAKE_DIR="$SCRIPT_DIR/../make"
IDEA_MAKE="$MAKE_DIR/idea"
IDEA_TEMPLATE="$IDEA_MAKE/template"
cp -r "$IDEA_TEMPLATE"/* "$IDEA_OUTPUT"
#init template variables
for file in `ls -p $IDEA_TEMPLATE | grep -v /`; do
VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]`
eval "$VAR_SUFFIX"_TEMPLATE="$IDEA_TEMPLATE"/$file
eval IDEA_"$VAR_SUFFIX"="$IDEA_OUTPUT"/$file
done
#override template variables
#override template
if [ -d "$TEMPLATES_OVERRIDE" ] ; then
for file in `ls -p "$TEMPLATES_OVERRIDE" | grep -v /`; do
cp "$TEMPLATES_OVERRIDE"/$file "$IDEA_OUTPUT"/
VAR_SUFFIX=`echo $file | cut -d'.' -f1 | tr [:lower:] [:upper:]`
eval "$VAR_SUFFIX"_TEMPLATE="$TEMPLATES_OVERRIDE"/$file
done
fi
@@ -94,14 +91,6 @@ if [ "$VERBOSE" = "true" ] ; then
echo "idea template dir: $IDEA_TEMPLATE"
fi
if [ ! -f "$JDK_TEMPLATE" ] ; then
echo "FATAL: cannot find $JDK_TEMPLATE" >&2; exit 1
fi
if [ ! -f "$ANT_TEMPLATE" ] ; then
echo "FATAL: cannot find $ANT_TEMPLATE" >&2; exit 1
fi
cd $TOP ; make -f "$IDEA_MAKE/idea.gmk" -I $MAKE_DIR/.. idea MAKEOVERRIDES= OUT=$IDEA_OUTPUT/env.cfg MODULES="$*" || exit 1
cd $SCRIPT_DIR
@@ -124,94 +113,62 @@ if [ "x$SPEC" = "x" ] ; then
echo "FATAL: SPEC is empty" >&2; exit 1
fi
SOURCE_FOLDER=" <sourceFolder url=\"file://\$MODULE_DIR\$/####\" isTestSource=\"false\" />"
SOURCE_FOLDERS_DONE="false"
### Replace template variables
addSourceFolder() {
root=$@
relativePath="`echo "$root" | sed -e s@"$TOP/\(.*$\)"@"\1"@`"
folder="`echo "$SOURCE_FOLDER" | sed -e s@"\(.*/\)####\(.*\)"@"\1$relativePath\2"@`"
printf "%s\n" "$folder" >> $IDEA_JDK
NUM_REPLACEMENTS=0
replace_template_file() {
for i in $(seq 1 $NUM_REPLACEMENTS); do
eval "sed \"s|\${FROM${i}}|\${TO${i}}|g\" $1 > $1.tmp"
mv $1.tmp $1
done
}
### Generate project iml
replace_template_dir() {
for f in `find $1 -type f` ; do
replace_template_file $f
done
}
rm -f $IDEA_JDK
while IFS= read -r line
do
if echo "$line" | egrep "^ .* <sourceFolder.*####" > /dev/null ; then
if [ "$SOURCE_FOLDERS_DONE" = "false" ] ; then
SOURCE_FOLDERS_DONE="true"
for root in $MODULE_ROOTS; do
addSourceFolder $root
done
add_replacement() {
NUM_REPLACEMENTS=`expr $NUM_REPLACEMENTS + 1`
eval FROM$NUM_REPLACEMENTS='$1'
eval TO$NUM_REPLACEMENTS='$2'
}
add_replacement "###MODULE_NAMES###" "$MODULE_NAMES"
SPEC_DIR=`dirname $SPEC`
if [ "x$CYGPATH" = "x" ]; then
add_replacement "###BUILD_DIR###" "$SPEC_DIR"
add_replacement "###JTREG_HOME###" "$JT_HOME"
add_replacement "###IMAGES_DIR###" "$SPEC_DIR/images/jdk"
add_replacement "###ROOT_DIR###" "$TOPLEVEL_DIR"
add_replacement "###IDEA_DIR###" "$IDEA_OUTPUT"
else
add_replacement "###BUILD_DIR###" "`cygpath -am $SPEC_DIR`"
add_replacement "###IMAGES_DIR###" "`cygpath -am $SPEC_DIR`/images/jdk"
add_replacement "###ROOT_DIR###" "`cygpath -am $TOPLEVEL_DIR`"
add_replacement "###IDEA_DIR###" "`cygpath -am $IDEA_OUTPUT`"
if [ "x$JT_HOME" = "x" ]; then
add_replacement "###JTREG_HOME###" ""
else
add_replacement "###JTREG_HOME###" "`cygpath -am $JT_HOME`"
fi
else
printf "%s\n" "$line" >> $IDEA_JDK
fi
done < "$JDK_TEMPLATE"
fi
SOURCE_PREFIX="<sourceFolder url=\"file://"
SOURCE_POSTFIX="\" isTestSource=\"false\" />"
MODULE_NAME=" <property name=\"module.name\" value=\"####\" />"
for root in $MODULE_ROOTS; do
if [ "x$CYGPATH" != "x" ]; then
root=`cygpath -am $root`
fi
SOURCES=$SOURCES" $SOURCE_PREFIX""$root""$SOURCE_POSTFIX"
done
addModuleName() {
mn="`echo "$MODULE_NAME" | sed -e s@"\(.*\)####\(.*\)"@"\1$MODULE_NAMES\2"@`"
printf "%s\n" "$mn" >> $IDEA_ANT
}
add_replacement "###SOURCE_ROOTS###" "$SOURCES"
BUILD_DIR=" <property name=\"build.target.dir\" value=\"####\" />"
addBuildDir() {
DIR=`dirname $SPEC`
mn="`echo "$BUILD_DIR" | sed -e s@"\(.*\)####\(.*\)"@"\1$DIR\2"@`"
printf "%s\n" "$mn" >> $IDEA_ANT
}
### Generate ant.xml
rm -f $IDEA_ANT
while IFS= read -r line
do
if echo "$line" | egrep "^ .* <property name=\"module.name\"" > /dev/null ; then
addModuleName
elif echo "$line" | egrep "^ .* <property name=\"build.target.dir\"" > /dev/null ; then
addBuildDir
else
printf "%s\n" "$line" >> $IDEA_ANT
fi
done < "$ANT_TEMPLATE"
### Generate misc.xml
rm -f $IDEA_MISC
JTREG_HOME=" <path>####</path>"
IMAGES_DIR=" <jre alt=\"true\" value=\"####\" />"
addImagesDir() {
DIR=`dirname $SPEC`/images/jdk
mn="`echo "$IMAGES_DIR" | sed -e s@"\(.*\)####\(.*\)"@"\1$DIR\2"@`"
printf "%s\n" "$mn" >> $IDEA_MISC
}
addJtregHome() {
DIR=`dirname $SPEC`
mn="`echo "$JTREG_HOME" | sed -e s@"\(.*\)####\(.*\)"@"\1$JT_HOME\2"@`"
printf "%s\n" "$mn" >> $IDEA_MISC
}
rm -f $MISC_ANT
while IFS= read -r line
do
if echo "$line" | egrep "^ .*<path>jtreg_home</path>" > /dev/null ; then
addJtregHome
elif echo "$line" | egrep "^ .*<jre alt=\"true\" value=\"images_jdk\"" > /dev/null ; then
addImagesDir
else
printf "%s\n" "$line" >> $IDEA_MISC
fi
done < "$MISC_TEMPLATE"
replace_template_dir "$IDEA_OUTPUT"
### Compile the custom Logger

View File

@@ -128,15 +128,6 @@ install_jib() {
exit 1
fi
fi
# Want to check the filetype using file, to see if we got served a HTML error page.
# This is sensitive to the filename containing a specific string, but good enough.
file "${installed_jib_script}.gz" | grep "gzip compressed data" > /dev/null
if [ $? -ne 0 ]; then
echo "Warning: ${installed_jib_script}.gz is not a gzip file."
echo "If you are behind a proxy you may need to configure exceptions using no_proxy."
echo "The download URL was: ${jib_url}"
exit 1
fi
echo "Extracting JIB bootstrap script"
rm -f "${installed_jib_script}"
gunzip "${installed_jib_script}.gz"

View File

@@ -1,24 +1,19 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Building 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" />
<style type="text/css">code{white-space: pre;}</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]-->
<style type="text/css">pre, code, tt { color: #1d6ae5; }</style>
</head>
<body>
<header id="title-block-header">
<header>
<h1 class="title">Building the JDK</h1>
</header>
<nav id="TOC">
@@ -31,7 +26,8 @@
<li><a href="#build-hardware-requirements">Build Hardware Requirements</a><ul>
<li><a href="#building-on-x86">Building on x86</a></li>
<li><a href="#building-on-sparc">Building on sparc</a></li>
<li><a href="#building-on-armaarch64">Building on arm/aarch64</a></li>
<li><a href="#building-on-aarch64">Building on aarch64</a></li>
<li><a href="#building-on-32-bit-arm">Building on 32-bit arm</a></li>
</ul></li>
<li><a href="#operating-system-requirements">Operating System Requirements</a><ul>
<li><a href="#windows">Windows</a></li>
@@ -72,18 +68,14 @@
<li><a href="#make-control-variables">Make Control Variables</a></li>
</ul></li>
<li><a href="#running-tests">Running Tests</a></li>
<li><a href="#signing">Signing</a><ul>
<li><a href="#macos-1">macOS</a></li>
</ul></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="#cross-compiling-with-debian-sysroots">Cross compiling with Debian sysroots</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="#building-for-musl">Building for musl</a></li>
<li><a href="#verifying-the-build">Verifying the Build</a></li>
</ul></li>
<li><a href="#build-performance">Build Performance</a><ul>
@@ -102,10 +94,12 @@
<li><a href="#getting-help">Getting Help</a></li>
</ul></li>
<li><a href="#hints-and-suggestions-for-advanced-users">Hints and Suggestions for Advanced Users</a><ul>
<li><a href="#setting-up-a-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</a></li>
<li><a href="#bash-completion">Bash Completion</a></li>
<li><a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
<li><a href="#handling-reconfigurations">Handling Reconfigurations</a></li>
<li><a href="#using-fine-grained-make-targets">Using Fine-Grained Make Targets</a></li>
<li><a href="#learn-about-mercurial">Learn About Mercurial</a></li>
</ul></li>
<li><a href="#understanding-the-build-system">Understanding the Build System</a><ul>
<li><a href="#configurations">Configurations</a></li>
@@ -119,10 +113,10 @@
</ul>
</nav>
<h2 id="tldr-instructions-for-the-impatient">TL;DR (Instructions for the Impatient)</h2>
<p>If you are eager to try out building the JDK, these simple steps works most of the time. They assume that you have installed Git (and Cygwin if running on Windows) and cloned the top-level JDK repository that you want to build.</p>
<p>If you are eager to try out building the JDK, these simple steps works most of the time. They assume that you have installed Mercurial (and Cygwin if running on Windows) and cloned the top-level JDK repository that you want to build.</p>
<ol type="1">
<li><p><a href="#getting-the-source-code">Get the complete source code</a>:<br />
<code>git clone https://git.openjdk.java.net/jdk/</code></p></li>
<code>hg clone http://hg.openjdk.java.net/jdk/jdk</code></p></li>
<li><p><a href="#running-configure">Run configure</a>:<br />
<code>bash configure</code></p>
<p>If <code>configure</code> fails due to missing dependencies (to either the <a href="#native-compiler-toolchain-requirements">toolchain</a>, <a href="#build-tools-requirements">build tools</a>, <a href="#external-library-requirements">external libraries</a> or the <a href="#boot-jdk-requirements">boot JDK</a>), most of the time it prints a suggestion on how to resolve the situation on your platform. Follow the instructions, and try running <code>bash configure</code> again.</p></li>
@@ -138,8 +132,8 @@
<p>The JDK is a complex software project. Building it requires a certain amount of technical expertise, a fair number of dependencies on external software, and reasonably powerful hardware.</p>
<p>If you just want to use the JDK and not build it yourself, this document is not for you. See for instance <a href="http://openjdk.java.net/install">OpenJDK installation</a> for some methods of installing a prebuilt JDK.</p>
<h2 id="getting-the-source-code">Getting the Source Code</h2>
<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="https://git.openjdk.java.net/">OpenJDK Git site</a> you can see a list of all available repositories. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
<p>If you are new to Git, a good place to start is the book <a href="https://git-scm.com/book/en/v2">Pro Git</a>. The rest of this document assumes a working knowledge of Git.</p>
<p>Make sure you are getting the correct version. As of JDK 10, the source is no longer split into separate repositories so you only need to clone one single repository. At the <a href="http://hg.openjdk.java.net/">OpenJDK Mercurial server</a> you can see a list of all available repositories. If you want to build an older version, e.g. JDK 8, it is recommended that you get the <code>jdk8u</code> forest, which contains incremental updates, instead of the <code>jdk8</code> forest, which was frozen at JDK 8 GA.</p>
<p>If you are new to Mercurial, a good place to start is the <a href="http://www.mercurial-scm.org/guide">Mercurial Beginner's Guide</a>. The rest of this document assumes a working knowledge of Mercurial.</p>
<h3 id="special-considerations">Special Considerations</h3>
<p>For a smooth building experience, it is recommended that you follow these rules on where and how to check out the source code.</p>
<ul>
@@ -150,11 +144,7 @@
<ul>
<li><p>Create the directory that is going to contain the top directory of the JDK clone by using the <code>mkdir</code> command in the Cygwin bash shell. That is, do <em>not</em> create it using Windows Explorer. This will ensure that it will have proper Cygwin attributes, and that it's children will inherit those attributes.</p></li>
<li><p>Do not put the JDK clone in a path under your Cygwin home directory. This is especially important if your user name contains spaces and/or mixed upper and lower case letters.</p></li>
<li><p>You need to install a git client. You have two choices, Cygwin git or Git for Windows. Unfortunately there are pros and cons with each choice.</p>
<ul>
<li><p>The Cygwin <code>git</code> client has no line ending issues and understands Cygwin paths (which are used throughout the JDK build system). However, it does not currently work well with the Skara CLI tooling. Please see the <a href="https://wiki.openjdk.java.net/display/SKARA/Skara#Skara-Git">Skara wiki on Git clients</a> for up-to-date information about the Skara git client support.</p></li>
<li><p>The <a href="https://gitforwindows.org">Git for Windows</a> client has issues with line endings, and do not understand Cygwin paths. It does work well with the Skara CLI tooling, however. To alleviate the line ending problems, make sure you set <code>core.autocrlf</code> to <code>false</code> (this is asked during installation).</p></li>
</ul></li>
<li><p>Clone the JDK repository using the Cygwin command line <code>hg</code> client as instructed in this document. That is, do <em>not</em> use another Mercurial client such as TortoiseHg.</p></li>
</ul>
<p>Failure to follow this procedure might result in hard-to-debug build problems.</p></li>
</ul>
@@ -166,7 +156,10 @@
<p>Even for 32-bit builds, it is recommended to use a 64-bit build machine, and instead create a 32-bit target using <code>--with-target-bits=32</code>.</p>
<h3 id="building-on-sparc">Building on sparc</h3>
<p>At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The more cores to use, the more memory you need.) At least 8 GB of free disk space is required.</p>
<h3 id="building-on-armaarch64">Building on arm/aarch64</h3>
<h3 id="building-on-aarch64">Building on aarch64</h3>
<p>At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM. (The more cores to use, the more memory you need.) At least 6 GB of free disk space is required.</p>
<p>If you do not have access to sufficiently powerful hardware, it is also possible to use <a href="#cross-compiling">cross-compiling</a>.</p>
<h3 id="building-on-32-bit-arm">Building on 32-bit arm</h3>
<p>This is not recommended. Instead, see the section on <a href="#cross-compiling">Cross-compiling</a>.</p>
<h2 id="operating-system-requirements">Operating System Requirements</h2>
<p>The mainline JDK project supports Linux, Solaris, macOS, AIX and Windows. Support for other operating system, e.g. BSD, exists in separate &quot;port&quot; projects.</p>
@@ -203,8 +196,8 @@
<h3 id="windows">Windows</h3>
<p>Windows XP is not a supported platform, but all newer Windows should be able to build the JDK.</p>
<p>On Windows, it is important that you pay attention to the instructions in the <a href="#special-considerations">Special Considerations</a>.</p>
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layers are Cygwin and MSYS2. (MSYS is no longer supported due to an outdated bash; While OpenJDK can be built with MSYS2, support for it is still experimental, so build failures and unusual errors are not uncommon.)</p>
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/git/jdk/Makefile</code> rather than <code>C:\git\jdk\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
<p>Windows is the only non-POSIX OS supported by the JDK, and as such, requires some extra care. A POSIX support layer is required to build on Windows. Currently, the only supported such layer is Cygwin. (Msys is no longer supported due to a too old bash; msys2 and the new Windows Subsystem for Linux (WSL) would likely be possible to support in a future version but that would require effort to implement.)</p>
<p>Internally in the build system, all paths are represented as Unix-style paths, e.g. <code>/cygdrive/c/hg/jdk9/Makefile</code> rather than <code>C:\hg\jdk9\Makefile</code>. This rule also applies to input to the build system, e.g. in arguments to <code>configure</code>. So, use <code>--with-msvcr-dll=/cygdrive/c/msvcr100.dll</code> rather than <code>--with-msvcr-dll=c:\msvcr100.dll</code>. For details on this conversion, see the section on <a href="#fixpath">Fixpath</a>.</p>
<h4 id="cygwin">Cygwin</h4>
<p>A functioning <a href="http://www.cygwin.com/">Cygwin</a> environment is thus required for building the JDK on Windows. If you have a 64-bit OS, we strongly recommend using the 64-bit version of Cygwin.</p>
<p><strong>Note:</strong> Cygwin has a model of continuously updating all packages without any easy way to install or revert to a specific version of a package. This means that whenever you add or update a package in Cygwin, you might (inadvertently) update tools that are used by the JDK build process, and that can cause unexpected build problems.</p>
@@ -233,8 +226,6 @@
<pre><code>sudo apt-get install build-essential</code></pre>
<p>For rpm-based distributions (Fedora, Red Hat, etc), try this:</p>
<pre><code>sudo yum groupinstall &quot;Development Tools&quot;</code></pre>
<p>For Alpine Linux, aside from basic tooling, install the GNU versions of some programs:</p>
<pre><code>sudo apk add build-base bash grep zip</code></pre>
<h3 id="aix">AIX</h3>
<p>The regular builds by SAP is using AIX version 7.1, but AIX 5.3 is also supported. See the <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port">OpenJDK PowerPC Port Status Page</a> for details.</p>
<h2 id="native-compiler-toolchain-requirements">Native Compiler (Toolchain) Requirements</h2>
@@ -242,30 +233,30 @@
<table>
<thead>
<tr class="header">
<th>Operating system</th>
<th>Supported toolchain</th>
<th style="text-align: left;">Operating system</th>
<th style="text-align: left;">Supported toolchain</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Linux</td>
<td>gcc, clang</td>
<td style="text-align: left;">Linux</td>
<td style="text-align: left;">gcc, clang</td>
</tr>
<tr class="even">
<td>macOS</td>
<td>Apple Xcode (using clang)</td>
<td style="text-align: left;">macOS</td>
<td style="text-align: left;">Apple Xcode (using clang)</td>
</tr>
<tr class="odd">
<td>Solaris</td>
<td>Oracle Solaris Studio</td>
<td style="text-align: left;">Solaris</td>
<td style="text-align: left;">Oracle Solaris Studio</td>
</tr>
<tr class="even">
<td>AIX</td>
<td>IBM XL C/C++</td>
<td style="text-align: left;">AIX</td>
<td style="text-align: left;">IBM XL C/C++</td>
</tr>
<tr class="odd">
<td>Windows</td>
<td>Microsoft Visual Studio</td>
<td style="text-align: left;">Windows</td>
<td style="text-align: left;">Microsoft Visual Studio</td>
</tr>
</tbody>
</table>
@@ -273,30 +264,29 @@
<table>
<thead>
<tr class="header">
<th>Operating system</th>
<th>Toolchain version</th>
<th style="text-align: left;">Operating system</th>
<th style="text-align: left;">Toolchain version</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>Linux</td>
<td>gcc 7.3.0</td>
<td style="text-align: left;">Linux</td>
<td style="text-align: left;">gcc 7.3.0</td>
</tr>
<tr class="even">
<td>macOS</td>
<td>Apple Xcode 9.4 (using clang 9.1.0)</td>
<td style="text-align: left;">macOS</td>
<td style="text-align: left;">Apple Xcode 9.4 (using clang 9.1.0)</td>
</tr>
<tr class="odd">
<td>Solaris</td>
<td>Oracle Solaris Studio 12.4 (with compiler version 5.13)</td>
<td style="text-align: left;">Solaris</td>
<td style="text-align: left;">Oracle Solaris Studio 12.4 (with compiler version 5.13)</td>
</tr>
<tr class="even">
<td>Windows</td>
<td>Microsoft Visual Studio 2017 update 15.9.16</td>
<td style="text-align: left;">Windows</td>
<td style="text-align: left;">Microsoft Visual Studio 2017 update 15.5.5</td>
</tr>
</tbody>
</table>
<p>All compilers are expected to be able to compile to the C99 language standard, as some C99 features are used in the source code. Microsoft Visual Studio doesn't fully support C99 so in practice shared code is limited to using C99 features that it does support.</p>
<h3 id="gcc">gcc</h3>
<p>The minimum accepted version of gcc is 4.8. Older versions will generate a warning by <code>configure</code> and are unlikely to work.</p>
<p>The JDK is currently known to be able to compile with at least version 7.4 of gcc.</p>
@@ -306,13 +296,9 @@
<p>To use clang instead of gcc on Linux, use <code>--with-toolchain-type=clang</code>.</p>
<h3 id="apple-xcode">Apple Xcode</h3>
<p>The oldest supported version of Xcode is 8.</p>
<p>You will need the Xcode command line developer tools to be able to build the JDK. (Actually, <em>only</em> the command line tools are needed, not the IDE.) The simplest way to install these is to run:</p>
<p>You will need the Xcode command lines developers tools to be able to build the JDK. (Actually, <em>only</em> the command lines tools are needed, not the IDE.) The simplest way to install these is to run:</p>
<pre><code>xcode-select --install</code></pre>
<p>When updating Xcode, it is advisable to keep an older version for building the JDK. To use a specific version of Xcode you have multiple options:</p>
<ul>
<li>Use <code>xcode-select -s</code> before running <code>configure</code>, e.g. <code>xcode-select -s /Applications/Xcode13.1.app</code>. The drawback is that the setting is system wide and you may have to revert it after an OpenJDK build.</li>
<li>Use configure option <code>--with-xcode-path</code>, e.g. <code>configure --with-xcode-path=/Applications/Xcode13.1.app</code> This allows using a specific Xcode version for an OpenJDK build, independently of the active Xcode version by <code>xcode-select</code>.</li>
</ul>
<p>It is advisable to keep an older version of Xcode for building the JDK when updating Xcode. This <a href="http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html">blog page</a> has good suggestions on managing multiple Xcode versions. To use a specific version of Xcode, use <code>xcode-select -s</code> before running <code>configure</code>, or use <code>--with-toolchain-path</code> to point to the version of Xcode to use, e.g. <code>configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin</code></p>
<p>If you have recently (inadvertently) updated your OS and/or Xcode version, and the JDK can no longer be built, please see the section on <a href="#problems-with-the-build-environment">Problems with the Build Environment</a>, and <a href="#getting-help">Getting Help</a> to find out if there are any recent, non-merged patches available for this update.</p>
<h3 id="oracle-solaris-studio">Oracle Solaris Studio</h3>
<p>The minimum accepted version of the Solaris Studio compilers is 5.13 (corresponding to Solaris Studio 12.4). Older versions will not be accepted by configure.</p>
@@ -373,10 +359,9 @@ cc: Sun C 5.13 SunOS_i386 2014/10/20
$ CC -V
CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<h3 id="microsoft-visual-studio">Microsoft Visual Studio</h3>
<p>The minimum accepted version of Visual Studio is 2010. Older versions will not be accepted by <code>configure</code>. The maximum accepted version of Visual Studio is 2019. Versions older than 2017 are unlikely to continue working for long.</p>
<p>The minimum accepted version of Visual Studio is 2010. Older versions will not be accepted by <code>configure</code>. The maximum accepted version of Visual Studio is 2017. Versions older than 2017 are unlikely to continue working for long.</p>
<p>If you have multiple versions of Visual Studio installed, <code>configure</code> will by default pick the latest. You can request a specific version to be used by setting <code>--with-toolchain-version</code>, e.g. <code>--with-toolchain-version=2015</code>.</p>
<p>If you get <code>LINK: fatal error LNK1123: failure during conversion to COFF: file invalid</code> when building using Visual Studio 2010, you have encountered <a href="http://support.microsoft.com/kb/2757355">KB2757355</a>, a bug triggered by a specific installation order. However, the solution suggested by the KB article does not always resolve the problem. See <a href="https://stackoverflow.com/questions/10888391">this stackoverflow discussion</a> for other suggestions.</p>
<p>If you have Visual Studio installed but <code>configure</code> fails to detect it, it may be because of <a href="#spaces-in-path">spaces in path</a>.</p>
<h3 id="ibm-xl-cc">IBM XL C/C++</h3>
<p>The regular builds by SAP is using version 12.1, described as <code>IBM XL C/C++ for AIX, V12.1 (5765-J02, 5725-C72) Version: 12.01.0000.0017</code>.</p>
<p>See the <a href="http://cr.openjdk.java.net/~simonis/ppc-aix-port">OpenJDK PowerPC Port Status Page</a> for details.</p>
@@ -390,15 +375,13 @@ 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>
<li>To install on Alpine Linux, try running <code>sudo apk add freetype-dev</code>.</li>
<li>To install on macOS, try running <code>brew install freetype</code>.</li>
<li>To install on Solaris, try running <code>pkg install system/library/freetype-2</code>.</li>
</ul>
<p>Use <code>--with-freetype-include=&lt;path&gt;</code> and <code>--with-freetype-lib=&lt;path&gt;</code> if <code>configure</code> does not automatically locate the platform FreeType files.</p>
@@ -407,7 +390,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libcups2-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install cups-devel</code>.</li>
<li>To install on Alpine Linux, try running <code>sudo apk add cups-dev</code>.</li>
<li>To install on Solaris, try running <code>pkg install print/cups</code>.</li>
</ul>
<p>Use <code>--with-cups=&lt;path&gt;</code> if <code>configure</code> does not properly locate your CUPS files.</p>
@@ -416,7 +398,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install libXtst-devel libXt-devel libXrender-devel libXi-devel</code>.</li>
<li>To install on Alpine Linux, try running <code>sudo apk add libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev</code>.</li>
<li>To install on Solaris, try running <code>pkg install x11/header/x11-protocols x11/library/libice x11/library/libpthread-stubs x11/library/libsm x11/library/libx11 x11/library/libxau x11/library/libxcb x11/library/libxdmcp x11/library/libxevie x11/library/libxext x11/library/libxrender x11/library/libxscrnsaver x11/library/libxtst x11/library/toolkit/libxt</code>.</li>
</ul>
<p>Use <code>--with-x=&lt;path&gt;</code> if <code>configure</code> does not properly locate your X11 files.</p>
@@ -425,7 +406,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libasound2-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install alsa-lib-devel</code>.</li>
<li>To install on Alpine Linux, try running <code>sudo apk add alsa-lib-dev</code>.</li>
</ul>
<p>Use <code>--with-alsa=&lt;path&gt;</code> if <code>configure</code> does not properly locate your ALSA files.</p>
<h3 id="libffi">libffi</h3>
@@ -433,7 +413,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install libffi-dev</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install libffi-devel</code>.</li>
<li>To install on Alpine Linux, try running <code>sudo apk add libffi-dev</code>.</li>
</ul>
<p>Use <code>--with-libffi=&lt;path&gt;</code> if <code>configure</code> does not properly locate your libffi files.</p>
<h2 id="build-tools-requirements">Build Tools Requirements</h2>
@@ -442,7 +421,6 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<ul>
<li>To install on an apt-based Linux, try running <code>sudo apt-get install autoconf</code>.</li>
<li>To install on an rpm-based Linux, try running <code>sudo yum install autoconf</code>.</li>
<li>To install on Alpine Linux, try running <code>sudo apk add autoconf</code>.</li>
<li>To install on macOS, try running <code>brew install autoconf</code>.</li>
<li>To install on Windows, try running <code>&lt;path to Cygwin setup&gt;/setup-x86_64 -q -P autoconf</code>.</li>
</ul>
@@ -461,7 +439,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>
@@ -566,7 +544,7 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<li><code>CONF</code> and <code>CONF_NAME</code> - Selecting the configuration(s) to use. See <a href="#using-multiple-configurations">Using Multiple Configurations</a></li>
</ul>
<h4 id="test-make-control-variables">Test Make Control Variables</h4>
<p>These make control variables only make sense when running tests. Please see <strong>Testing the JDK</strong> (<a href="testing.html">html</a>, <a href="testing.md">markdown</a>) for details.</p>
<p>These make control variables only make sense when running tests. Please see <a href="testing.html">Testing the JDK</a> for details.</p>
<ul>
<li><code>TEST</code></li>
<li><code>TEST_JOBS</code></li>
@@ -586,13 +564,7 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<p>The <a href="https://wiki.openjdk.java.net/display/Adoption">Adoption Group</a> provides recent builds of jtreg <a href="https://adopt-openjdk.ci.cloudbees.com/job/jtreg/lastSuccessfulBuild/artifact">here</a>. Download the latest <code>.tar.gz</code> file, unpack it, and point <code>--with-jtreg</code> to the <code>jtreg</code> directory that you just unpacked.</p>
<p>To execute the most basic tests (tier 1), use:</p>
<pre><code>make run-test-tier1</code></pre>
<p>For more details on how to run tests, please see <strong>Testing the JDK</strong> (<a href="testing.html">html</a>, <a href="testing.md">markdown</a>).</p>
<h2 id="signing">Signing</h2>
<h3 id="macos-1">macOS</h3>
<p>Modern versions of macOS require applications to be signed and notarizied before distribution. See Apple's documentation for more background on what this means and how it works. To help support this, the JDK build can be configured to automatically sign all native binaries, and the JDK bundle, with all the options needed for successful notarization, as well as all the entitlements required by the JDK. To enable <code>hardened</code> signing, use configure parameter <code>--with-macosx-codesign=hardened</code> and configure the signing identity you wish to use with <code>--with-macosx-codesign-identity=&lt;identity&gt;</code>. The identity refers to a signing identity from Apple that needs to be preinstalled on the build host.</p>
<p>When not signing for distribution with the hardened option, the JDK build will still attempt to perform <code>adhoc</code> signing to add the special entitlement <code>com.apple.security.get-task-allow</code> to each binary. This entitlement is required to be able to dump core files from a process. Note that adding this entitlement makes the build invalid for notarization, so it is only added when signing in <code>debug</code> mode. To explicitly enable this kind of adhoc signing, use configure parameter <code>--with-macosx-codesign=debug</code>. It will be enabled by default in most cases.</p>
<p>It's also possible to completely disable any explicit codesign operations done by the JDK build using the configure parameter <code>--without-macosx-codesign</code>. The exact behavior then depends on the architecture. For macOS on x64, it (at least at the time of this writing) results in completely unsigned binaries that should still work fine for development and debugging purposes. On aarch64, the Xcode linker will apply a default &quot;adhoc&quot; signing, without any entitlements. Such a build does not allow dumping core files.</p>
<p>The default mode &quot;auto&quot; will try for <code>hardened</code> signing if the debug level is <code>release</code> and either the default identity or the specified identity is valid. If hardened isn't possible, then <code>debug</code> signing is chosen if it works. If nothing works, the codesign build step is disabled.</p>
<p>For more details on how to run tests, please see the <a href="testing.html">Testing the JDK</a> document.</p>
<h2 id="cross-compiling">Cross-compiling</h2>
<p>Cross-compiling means using one platform (the <em>build</em> platform) to generate output that can ran on another platform (the <em>target</em> platform).</p>
<p>The typical reason for cross-compiling is that the build is performed on a more powerful desktop computer, but the resulting binaries will be able to run on a different, typically low-performing system. Most of the complications that arise when building for embedded is due to this separation of <em>build</em> and <em>target</em> systems.</p>
@@ -609,27 +581,27 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30</code></pre>
<table>
<thead>
<tr class="header">
<th>Supported devkit targets</th>
<th style="text-align: left;">Supported devkit targets</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td>x86_64-linux-gnu</td>
<td style="text-align: left;">x86_64-linux-gnu</td>
</tr>
<tr class="even">
<td>aarch64-linux-gnu</td>
<td style="text-align: left;">aarch64-linux-gnu</td>
</tr>
<tr class="odd">
<td>arm-linux-gnueabihf</td>
<td style="text-align: left;">arm-linux-gnueabihf</td>
</tr>
<tr class="even">
<td>ppc64-linux-gnu</td>
<td style="text-align: left;">ppc64-linux-gnu</td>
</tr>
<tr class="odd">
<td>ppc64le-linux-gnu</td>
<td style="text-align: left;">ppc64le-linux-gnu</td>
</tr>
<tr class="even">
<td>s390x-linux-gnu</td>
<td style="text-align: left;">s390x-linux-gnu</td>
</tr>
</tbody>
</table>
@@ -664,13 +636,11 @@ x86_64-linux-gnu-to-ppc64le-linux-gnu</code></pre>
<p>Note that alsa is needed even if you only want to build a headless JDK.</p>
<ul>
<li><p>Go to <a href="https://www.debian.org/distrib/packages">Debian Package Search</a> and search for the <code>libasound2</code> and <code>libasound2-dev</code> packages for your <em>target</em> system. Download them to /tmp.</p></li>
<li>Install the libraries into the cross-compilation toolchain. For instance:</li>
</ul>
<li><p>Install the libraries into the cross-compilation toolchain. For instance:</p>
<pre><code>cd /tools/gcc-linaro-arm-linux-gnueabihf-raspbian-2012.09-20120921_linux/arm-linux-gnueabihf/libc
dpkg-deb -x /tmp/libasound2_1.0.25-4_armhf.deb .
dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre>
<ul>
<li>If alsa is not properly detected by <code>configure</code>, you can point it out by <code>--with-alsa</code>.</li>
dpkg-deb -x /tmp/libasound2-dev_1.0.25-4_armhf.deb .</code></pre></li>
<li><p>If alsa is not properly detected by <code>configure</code>, you can point it out by <code>--with-alsa</code>.</p></li>
</ul>
<h4 id="x11-1">X11</h4>
<p>You will need X11 libraries suitable for your <em>target</em> system. For most cases, using Debian's pre-built libraries work fine.</p>
@@ -711,155 +681,74 @@ 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="cross-compiling-with-debian-sysroots">Cross compiling with Debian sysroots</h3>
<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,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
--resolve-deps \
buster \
~/sysroot-arm64 \
http://httpredir.debian.org/debian/</code></pre></li>
<li><p>Make sure the symlinks inside the newly created chroot point to proper locations:</p>
<pre><code>sudo chroot ~/sysroot-arm64 symlinks -cr .</code></pre></li>
<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>sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64
<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>The build system should automatically detect the toolchain paths and dependencies, but sometimes it might require a little nudge with:</p>
<ul>
<li><p>Native compilers: override <code>CC</code> or <code>CXX</code> for <code>./configure</code></p></li>
<li><p>Freetype lib location: override <code>--with-freetype-lib</code>, for example <code>${sysroot}/usr/lib/${target}/</code></p></li>
<li><p>Freetype includes location: override <code>--with-freetype-include</code> for example <code>${sysroot}/usr/include/freetype2/</code></p></li>
<li><p>X11 libraries location: override <code>--x-libraries</code>, for example <code>${sysroot}/usr/lib/${target}/</code></p></li>
</ul>
<p>Architectures that are known to successfully cross-compile like this are:</p>
<table>
<thead>
<tr class="header">
<th style="text-align: left;">Target</th>
<th style="text-align: left;">Debian tree</th>
<th style="text-align: left;">Debian arch</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>
<th><code>--with-jvm-variants=...</code></th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td style="text-align: left;">x86</td>
<td style="text-align: left;">buster</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>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">arm</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">armhf</td>
<td style="text-align: left;">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>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">aarch64</td>
<td style="text-align: left;">buster</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>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">ppc64le</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">ppc64el</td>
<td style="text-align: left;">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>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">s390x</td>
<td style="text-align: left;">buster</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>
<td>(all)</td>
</tr>
<tr class="even">
<td style="text-align: left;">mipsle</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">mipsel</td>
<td style="text-align: left;">mipsel-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">mips64le</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">mips64el</td>
<td style="text-align: left;">mips64el-linux-gnueabi64</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">armel</td>
<td style="text-align: left;">buster</td>
<td style="text-align: left;">arm</td>
<td style="text-align: left;">arm-linux-gnueabi</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">ppc</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">powerpc</td>
<td style="text-align: left;">powerpc-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">ppc64be</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">ppc64</td>
<td style="text-align: left;">powerpc64-linux-gnu</td>
<td>(all)</td>
</tr>
<tr class="odd">
<td style="text-align: left;">m68k</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">m68k</td>
<td style="text-align: left;">m68k-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="even">
<td style="text-align: left;">alpha</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">alpha</td>
<td style="text-align: left;">alpha-linux-gnu</td>
<td>zero</td>
</tr>
<tr class="odd">
<td style="text-align: left;">sh4</td>
<td style="text-align: left;">sid</td>
<td style="text-align: left;">sh4</td>
<td style="text-align: left;">sh4-linux-gnu</td>
<td>zero</td>
</tr>
</tbody>
</table>
<p>Additional architectures might be supported by Debian/Ubuntu Ports.</p>
<h3 id="building-for-armaarch64">Building for ARM/aarch64</h3>
<p>A common cross-compilation target is the ARM CPU. When building for ARM, it is useful to set the ABI profile. A number of pre-defined ABI profiles are available using <code>--with-abi-profile</code>: arm-vfp-sflt, arm-vfp-hflt, arm-sflt, armv5-vfp-sflt, armv6-vfp-hflt. Note that soft-float ABIs are no longer properly supported by the JDK.</p>
<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>
<h3 id="building-for-musl">Building for musl</h3>
<p>Just like it's possible to cross-compile for a different CPU, it's possible to cross-compile for musl libc on a glibc-based <em>build</em> system. A devkit suitable for most target CPU architectures can be obtained from <a href="https://musl.cc">musl.cc</a>. After installing the required packages in the sysroot, configure the build with <code>--openjdk-target</code>:</p>
<pre><code>sh ./configure --with-jvm-variants=server \
--with-boot-jdk=$BOOT_JDK \
--with-build-jdk=$BUILD_JDK \
--openjdk-target=x86_64-unknown-linux-musl \
--with-devkit=$DEVKIT \
--with-sysroot=$SYSROOT</code></pre>
<p>and run <code>make</code> normally.</p>
<h3 id="verifying-the-build">Verifying the Build</h3>
<p>The build will end up in a directory named like <code>build/linux-arm-normal-server-release</code>.</p>
<p>Inside this build output directory, the <code>images/jdk</code> will contain the newly built JDK, for your <em>target</em> system.</p>
@@ -903,14 +792,14 @@ ls build/linux-aarch64-normal-server-release/</code></pre></li>
=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_psMemoryPool.o:
/localhome/git/jdk-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: &#39;failhere&#39; does not name a type
/localhome/hg/jdk9-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: &#39;failhere&#39; does not name a type
... (rest of output omitted)
* All command lines available in /localhome/git/jdk-sandbox/build/linux-x64/make-support/failure-logs.
* All command lines available in /localhome/hg/jdk9-sandbox/build/linux-x64/make-support/failure-logs.
=== End of repeated output ===
=== Make failed targets repeated here ===
lib/CompileJvm.gmk:207: recipe for target &#39;/localhome/git/jdk-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o&#39; failed
lib/CompileJvm.gmk:207: recipe for target &#39;/localhome/hg/jdk9-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o&#39; failed
make/Main.gmk:263: recipe for target &#39;hotspot-server-libs&#39; failed
=== End of repeated output ===
@@ -937,7 +826,7 @@ Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code>
<p>Here are a suggested list of things to try if you are having unexpected build problems. Each step requires more time than the one before, so try them in order. Most issues will be solved at step 1 or 2.</p>
<ol type="1">
<li><p>Make sure your repository is up-to-date</p>
<p>Run <code>git pull origin master</code> to make sure you have the latest changes.</p></li>
<p>Run <code>hg pull -u</code> to make sure you have the latest changes.</p></li>
<li><p>Clean build results</p>
<p>The simplest way to fix incremental rebuild issues is to run <code>make clean</code>. This will remove all build results, but not the configuration or any build system support artifacts. In most cases, this will solve build errors resulting from incremental build mismatches.</p></li>
<li><p>Completely clean the build directory.</p>
@@ -946,8 +835,8 @@ Hint: If caused by a warning, try configure --disable-warnings-as-errors.</code>
make dist-clean
bash configure $(cat current-configuration)
make</code></pre></li>
<li><p>Re-clone the Git repository</p>
<p>Sometimes the Git repository gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the &quot;sledgehammer approach&quot;: delete the entire repository, and re-clone it. If you have local changes, save them first to a different location using <code>git format-patch</code>.</p></li>
<li><p>Re-clone the Mercurial repository</p>
<p>Sometimes the Mercurial repository gets in a state that causes the product to be un-buildable. In such a case, the simplest solution is often the &quot;sledgehammer approach&quot;: delete the entire repository, and re-clone it. If you have local changes, save them first to a different location using <code>hg export</code>.</p></li>
</ol>
<h3 id="specific-build-issues">Specific Build Issues</h3>
<h4 id="clock-skew">Clock Skew</h4>
@@ -965,12 +854,28 @@ Clock skew detected. Your build may be incomplete.</code></pre>
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>
<h4 id="spaces-in-path">Spaces in Path</h4>
<p>On Windows, when configuring, <code>fixpath.sh</code> may report that some directory names have spaces. Usually, it assumes those directories have <a href="https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name">short paths</a>. You can run <code>fsutil file setshortname</code> in <code>cmd</code> on certain directories, such as <code>Microsoft Visual Studio</code> or <code>Windows Kits</code>, to assign arbitrary short paths so <code>configure</code> can access them.</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 <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 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 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-repository-for-pushing-changes-defpath">Setting Up a Repository for Pushing Changes (defpath)</h3>
<p>To help you prepare a proper push path for a Mercurial repository, there exists a useful tool known as <a href="http://openjdk.java.net/projects/code-tools/defpath">defpath</a>. It will help you setup a proper push path for pushing changes to the JDK.</p>
<p>Install the extension by cloning <code>http://hg.openjdk.java.net/code-tools/defpath</code> and updating your <code>.hgrc</code> file. Here's one way to do this:</p>
<pre><code>cd ~
mkdir hg-ext
cd hg-ext
hg clone http://hg.openjdk.java.net/code-tools/defpath
cat &lt;&lt; EOT &gt;&gt; ~/.hgrc
[extensions]
defpath=~/hg-ext/defpath/defpath.py
EOT</code></pre>
<p>You can now setup a proper push path using:</p>
<pre><code>hg defpath -d -u &lt;your OpenJDK username&gt;</code></pre>
<h3 id="bash-completion">Bash Completion</h3>
<p>The <code>configure</code> and <code>make</code> commands tries to play nice with bash command-line completion (using <code>&lt;tab&gt;</code> or <code>&lt;tab&gt;&lt;tab&gt;</code>). To use this functionality, make sure you enable completion in your <code>~/.bashrc</code> (see instructions for bash in your operating system).</p>
<p>Make completion will work out of the box, and will complete valid make targets. For instance, typing <code>make jdk-i&lt;tab&gt;</code> will complete to <code>make jdk-image</code>.</p>
@@ -988,10 +893,10 @@ chmod +x /tmp/configure
sudo mv /tmp/configure /usr/local/bin</code></pre>
<p>Now <code>configure --en&lt;tab&gt;-dt&lt;tab&gt;</code> will result in <code>configure --enable-dtrace</code>.</p>
<h3 id="using-multiple-configurations">Using Multiple Configurations</h3>
<p>You can have multiple configurations for a single source forest. When you create a new configuration, run <code>configure --with-conf-name=&lt;name&gt;</code> to create a configuration with the name <code>&lt;name&gt;</code>. Alternatively, you can create a directory under <code>build</code> and run <code>configure</code> from there, e.g. <code>mkdir build/&lt;name&gt; &amp;&amp; cd build/&lt;name&gt; &amp;&amp; bash ../../configure</code>.</p>
<p>You can have multiple configurations for a single source repository. When you create a new configuration, run <code>configure --with-conf-name=&lt;name&gt;</code> to create a configuration with the name <code>&lt;name&gt;</code>. Alternatively, you can create a directory under <code>build</code> and run <code>configure</code> from there, e.g. <code>mkdir build/&lt;name&gt; &amp;&amp; cd build/&lt;name&gt; &amp;&amp; bash ../../configure</code>.</p>
<p>Then you can build that configuration using <code>make CONF_NAME=&lt;name&gt;</code> or <code>make CONF=&lt;pattern&gt;</code>, where <code>&lt;pattern&gt;</code> is a substring matching one or several configurations, e.g. <code>CONF=debug</code>. The special empty pattern (<code>CONF=</code>) will match <em>all</em> available configuration, so <code>make CONF= hotspot</code> will build the <code>hotspot</code> target for all configurations. Alternatively, you can execute <code>make</code> in the configuration directory, e.g. <code>cd build/&lt;name&gt; &amp;&amp; make</code>.</p>
<h3 id="handling-reconfigurations">Handling Reconfigurations</h3>
<p>If you update the forest and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
<p>If you update the repository and part of the configure script has changed, the build system will force you to re-run <code>configure</code>.</p>
<p>Most of the time, you will be fine by running <code>configure</code> again with the same arguments as the last time, which can easily be performed by <code>make reconfigure</code>. To simplify this, you can use the <code>CONF_CHECK</code> make control variable, either as <code>make CONF_CHECK=auto</code>, or by setting an environment variable. For instance, if you add <code>export CONF_CHECK=auto</code> to your <code>.bashrc</code> file, <code>make</code> will always run <code>reconfigure</code> automatically whenever the configure script has changed.</p>
<p>You can also use <code>CONF_CHECK=ignore</code> to skip the check for a needed configure update. This might speed up the build, but comes at the risk of an incorrect build result. This is only recommended if you know what you're doing.</p>
<p>From time to time, you will also need to modify the command line to <code>configure</code> due to changes. Use <code>make print-configure</code> to show the command line used for your current configuration.</p>
@@ -1024,6 +929,14 @@ sudo mv /tmp/configure /usr/local/bin</code></pre>
<h4 id="rebuilding-part-of-java.base-jdk_filter">Rebuilding Part of java.base (JDK_FILTER)</h4>
<p>If you are modifying files in <code>java.base</code>, which is the by far largest module in the JDK, then you need to rebuild all those files whenever a single file has changed. (This inefficiency will hopefully be addressed in JDK 10.)</p>
<p>As a hack, you can use the make control variable <code>JDK_FILTER</code> to specify a pattern that will be used to limit the set of files being recompiled. For instance, <code>make java.base JDK_FILTER=javax/crypto</code> (or, to combine methods, <code>make java.base-java-only JDK_FILTER=javax/crypto</code>) will limit the compilation to files in the <code>javax.crypto</code> package.</p>
<h3 id="learn-about-mercurial">Learn About Mercurial</h3>
<p>To become an efficient JDK developer, it is recommended that you invest in learning Mercurial properly. Here are some links that can get you started:</p>
<ul>
<li><a href="http://www.mercurial-scm.org/wiki/GitConcepts">Mercurial for git users</a></li>
<li><a href="http://www.mercurial-scm.org/wiki/Tutorial">The official Mercurial tutorial</a></li>
<li><a href="http://hginit.com/">hg init</a></li>
<li><a href="http://hgbook.red-bean.com/read/">Mercurial: The Definitive Guide</a></li>
</ul>
<h2 id="understanding-the-build-system">Understanding the Build System</h2>
<p>This section will give you a more technical description on the details of the build system.</p>
<h3 id="configurations">Configurations</h3>

View File

@@ -3,11 +3,11 @@
## TL;DR (Instructions for the Impatient)
If you are eager to try out building the JDK, these simple steps works most of
the time. They assume that you have installed Git (and Cygwin if running
the time. They assume that you have installed Mercurial (and Cygwin if running
on Windows) and cloned the top-level JDK repository that you want to build.
1. [Get the complete source code](#getting-the-source-code): \
`git clone https://git.openjdk.java.net/jdk/`
`hg clone http://hg.openjdk.java.net/jdk/jdk`
2. [Run configure](#running-configure): \
`bash configure`
@@ -47,14 +47,14 @@ JDK.
Make sure you are getting the correct version. As of JDK 10, the source is no
longer split into separate repositories so you only need to clone one single
repository. At the [OpenJDK Git site](https://git.openjdk.java.net/) you
repository. At the [OpenJDK Mercurial server](http://hg.openjdk.java.net/) you
can see a list of all available repositories. If you want to build an older version,
e.g. JDK 8, it is recommended that you get the `jdk8u` forest, which contains
incremental updates, instead of the `jdk8` forest, which was frozen at JDK 8 GA.
If you are new to Git, a good place to start is the book [Pro
Git](https://git-scm.com/book/en/v2). The rest of this document
assumes a working knowledge of Git.
If you are new to Mercurial, a good place to start is the [Mercurial Beginner's
Guide](http://www.mercurial-scm.org/guide). The rest of this document assumes a
working knowledge of Mercurial.
### Special Considerations
@@ -89,21 +89,9 @@ on where and how to check out the source code.
directory. This is especially important if your user name contains
spaces and/or mixed upper and lower case letters.
* You need to install a git client. You have two choices, Cygwin git or
Git for Windows. Unfortunately there are pros and cons with each choice.
* The Cygwin `git` client has no line ending issues and understands
Cygwin paths (which are used throughout the JDK build system).
However, it does not currently work well with the Skara CLI tooling.
Please see the [Skara wiki on Git clients](
https://wiki.openjdk.java.net/display/SKARA/Skara#Skara-Git) for
up-to-date information about the Skara git client support.
* The [Git for Windows](https://gitforwindows.org) client has issues
with line endings, and do not understand Cygwin paths. It does work
well with the Skara CLI tooling, however. To alleviate the line ending
problems, make sure you set `core.autocrlf` to `false` (this is asked
during installation).
* Clone the JDK repository using the Cygwin command line `hg` client
as instructed in this document. That is, do *not* use another Mercurial
client such as TortoiseHg.
Failure to follow this procedure might result in hard-to-debug build
problems.
@@ -132,7 +120,16 @@ At a minimum, a machine with 4 cores is advisable, as well as 4 GB of RAM. (The
more cores to use, the more memory you need.) At least 8 GB of free disk space
is required.
### Building on arm/aarch64
### Building on aarch64
At a minimum, a machine with 8 cores is advisable, as well as 8 GB of RAM.
(The more cores to use, the more memory you need.) At least 6 GB of free disk
space is required.
If you do not have access to sufficiently powerful hardware, it is also
possible to use [cross-compiling](#cross-compiling).
### Building on 32-bit arm
This is not recommended. Instead, see the section on [Cross-compiling](
#cross-compiling).
@@ -177,12 +174,13 @@ On Windows, it is important that you pay attention to the instructions in the
Windows is the only non-POSIX OS supported by the JDK, and as such, requires
some extra care. A POSIX support layer is required to build on Windows.
Currently, the only supported such layers are Cygwin and MSYS2. (MSYS is no longer
supported due to an outdated bash; While OpenJDK can be built with MSYS2,
support for it is still experimental, so build failures and unusual errors are not uncommon.)
Currently, the only supported such layer is Cygwin. (Msys is no longer
supported due to a too old bash; msys2 and the new Windows Subsystem for Linux
(WSL) would likely be possible to support in a future version but that would
require effort to implement.)
Internally in the build system, all paths are represented as Unix-style paths,
e.g. `/cygdrive/c/git/jdk/Makefile` rather than `C:\git\jdk\Makefile`. This
e.g. `/cygdrive/c/hg/jdk9/Makefile` rather than `C:\hg\jdk9\Makefile`. This
rule also applies to input to the build system, e.g. in arguments to
`configure`. So, use `--with-msvcr-dll=/cygdrive/c/msvcr100.dll` rather than
`--with-msvcr-dll=c:\msvcr100.dll`. For details on this conversion, see the section
@@ -271,13 +269,6 @@ For rpm-based distributions (Fedora, Red Hat, etc), try this:
sudo yum groupinstall "Development Tools"
```
For Alpine Linux, aside from basic tooling, install the GNU versions of some
programs:
```
sudo apk add build-base bash grep zip
```
### AIX
The regular builds by SAP is using AIX version 7.1, but AIX 5.3 is also
@@ -291,13 +282,13 @@ be able to run on the target platform. In theory, toolchain and operating
system should be independent factors, but in practice there's more or less a
one-to-one correlation between target operating system and toolchain.
| Operating system | Supported toolchain |
| ------------------ | ------------------------- |
| Linux | gcc, clang |
| macOS | Apple Xcode (using clang) |
| Solaris | Oracle Solaris Studio |
| AIX | IBM XL C/C++ |
| Windows | Microsoft Visual Studio |
Operating system Supported toolchain
------------------ -------------------------
Linux gcc, clang
macOS Apple Xcode (using clang)
Solaris Oracle Solaris Studio
AIX IBM XL C/C++
Windows Microsoft Visual Studio
Please see the individual sections on the toolchains for version
recommendations. As a reference, these versions of the toolchains are used, at
@@ -306,12 +297,12 @@ possible to compile the JDK with both older and newer versions, but the closer
you stay to this list, the more likely you are to compile successfully without
issues.
| Operating system | Toolchain version |
| ------------------ | ------------------------------------------------------- |
| 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 |
Operating system Toolchain version
------------------ -------------------------------------------------------
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.5.5
### gcc
@@ -334,20 +325,20 @@ To use clang instead of gcc on Linux, use `--with-toolchain-type=clang`.
The oldest supported version of Xcode is 8.
You will need the Xcode command line developer tools to be able to build
the JDK. (Actually, *only* the command line tools are needed, not the IDE.)
You will need the Xcode command lines developers tools to be able to build
the JDK. (Actually, *only* the command lines tools are needed, not the IDE.)
The simplest way to install these is to run:
```
xcode-select --install
```
When updating Xcode, it is advisable to keep an older version for building the JDK.
To use a specific version of Xcode you have multiple options:
* Use `xcode-select -s` before running `configure`, e.g. `xcode-select -s /Applications/Xcode13.1.app`. The drawback is that the setting
is system wide and you may have to revert it after an OpenJDK build.
* Use configure option `--with-xcode-path`, e.g. `configure --with-xcode-path=/Applications/Xcode13.1.app`
This allows using a specific Xcode version for an OpenJDK build, independently of the active Xcode version by `xcode-select`.
It is advisable to keep an older version of Xcode for building the JDK when
updating Xcode. This [blog page](
http://iosdevelopertips.com/xcode/install-multiple-versions-of-xcode.html) has
good suggestions on managing multiple Xcode versions. To use a specific version
of Xcode, use `xcode-select -s` before running `configure`, or use
`--with-toolchain-path` to point to the version of Xcode to use, e.g.
`configure --with-toolchain-path=/Applications/Xcode8.app/Contents/Developer/usr/bin`
If you have recently (inadvertently) updated your OS and/or Xcode version, and
the JDK can no longer be built, please see the section on [Problems with the
@@ -389,7 +380,7 @@ CC: Sun C++ 5.13 SunOS_i386 151846-10 2015/10/30
The minimum accepted version of Visual Studio is 2010. Older versions will not
be accepted by `configure`. The maximum accepted version of Visual Studio is
2019. Versions older than 2017 are unlikely to continue working for long.
2017. Versions older than 2017 are unlikely to continue working for long.
If you have multiple versions of Visual Studio installed, `configure` will by
default pick the latest. You can request a specific version to be used by
@@ -402,9 +393,6 @@ specific installation order. However, the solution suggested by the KB article
does not always resolve the problem. See [this stackoverflow discussion](
https://stackoverflow.com/questions/10888391) for other suggestions.
If you have Visual Studio installed but `configure` fails to detect it, it may
be because of [spaces in path](#spaces-in-path).
### IBM XL C/C++
The regular builds by SAP is using version 12.1, described as `IBM XL C/C++ for
@@ -457,8 +445,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.
@@ -468,14 +456,12 @@ 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`.
* To install on an rpm-based Linux, try running `sudo yum install
freetype-devel`.
* To install on Alpine Linux, try running `sudo apk add freetype-dev`.
* To install on macOS, try running `brew install freetype`.
* To install on Solaris, try running `pkg install system/library/freetype-2`.
Use `--with-freetype-include=<path>` and `--with-freetype-lib=<path>`
@@ -491,7 +477,6 @@ your operating system.
libcups2-dev`.
* To install on an rpm-based Linux, try running `sudo yum install
cups-devel`.
* To install on Alpine Linux, try running `sudo apk add cups-dev`.
* To install on Solaris, try running `pkg install print/cups`.
Use `--with-cups=<path>` if `configure` does not properly locate your CUPS
@@ -506,8 +491,6 @@ Linux and Solaris.
libx11-dev libxext-dev libxrender-dev libxtst-dev libxt-dev`.
* To install on an rpm-based Linux, try running `sudo yum install
libXtst-devel libXt-devel libXrender-devel libXi-devel`.
* To install on Alpine Linux, try running `sudo apk add libx11-dev
libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev`.
* To install on Solaris, try running `pkg install x11/header/x11-protocols
x11/library/libice x11/library/libpthread-stubs x11/library/libsm
x11/library/libx11 x11/library/libxau x11/library/libxcb
@@ -526,7 +509,6 @@ required on Linux. At least version 0.9.1 of ALSA is required.
libasound2-dev`.
* To install on an rpm-based Linux, try running `sudo yum install
alsa-lib-devel`.
* To install on Alpine Linux, try running `sudo apk add alsa-lib-dev`.
Use `--with-alsa=<path>` if `configure` does not properly locate your ALSA
files.
@@ -541,7 +523,6 @@ Hotspot.
libffi-dev`.
* To install on an rpm-based Linux, try running `sudo yum install
libffi-devel`.
* To install on Alpine Linux, try running `sudo apk add libffi-dev`.
Use `--with-libffi=<path>` if `configure` does not properly locate your libffi
files.
@@ -557,7 +538,6 @@ platforms. At least version 2.69 is required.
autoconf`.
* To install on an rpm-based Linux, try running `sudo yum install
autoconf`.
* To install on Alpine Linux, try running `sudo apk add autoconf`.
* To install on macOS, try running `brew install autoconf`.
* To install on Windows, try running `<path to Cygwin setup>/setup-x86_64 -q
-P autoconf`.
@@ -615,8 +595,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.
@@ -835,7 +815,7 @@ configuration, as opposed to the "configure time" configuration.
#### Test Make Control Variables
These make control variables only make sense when running tests. Please see
**Testing the JDK** ([html](testing.html), [markdown](testing.md)) for details.
[Testing the JDK](testing.html) for details.
* `TEST`
* `TEST_JOBS`
@@ -873,44 +853,8 @@ To execute the most basic tests (tier 1), use:
make run-test-tier1
```
For more details on how to run tests, please see **Testing the JDK**
([html](testing.html), [markdown](testing.md)).
## Signing
### macOS
Modern versions of macOS require applications to be signed and notarizied before
distribution. See Apple's documentation for more background on what this means
and how it works. To help support this, the JDK build can be configured to
automatically sign all native binaries, and the JDK bundle, with all the options
needed for successful notarization, as well as all the entitlements required by
the JDK. To enable `hardened` signing, use configure parameter
`--with-macosx-codesign=hardened` and configure the signing identity you wish to
use with `--with-macosx-codesign-identity=<identity>`. The identity refers to a
signing identity from Apple that needs to be preinstalled on the build host.
When not signing for distribution with the hardened option, the JDK build will
still attempt to perform `adhoc` signing to add the special entitlement
`com.apple.security.get-task-allow` to each binary. This entitlement is required
to be able to dump core files from a process. Note that adding this entitlement
makes the build invalid for notarization, so it is only added when signing in
`debug` mode. To explicitly enable this kind of adhoc signing, use configure
parameter `--with-macosx-codesign=debug`. It will be enabled by default in most
cases.
It's also possible to completely disable any explicit codesign operations done
by the JDK build using the configure parameter `--without-macosx-codesign`.
The exact behavior then depends on the architecture. For macOS on x64, it (at
least at the time of this writing) results in completely unsigned binaries that
should still work fine for development and debugging purposes. On aarch64, the
Xcode linker will apply a default "adhoc" signing, without any entitlements.
Such a build does not allow dumping core files.
The default mode "auto" will try for `hardened` signing if the debug level is
`release` and either the default identity or the specified identity is valid.
If hardened isn't possible, then `debug` signing is chosen if it works. If
nothing works, the codesign build step is disabled.
For more details on how to run tests, please see the [Testing
the JDK](testing.html) document.
## Cross-compiling
@@ -1141,7 +1085,7 @@ Note that X11 is needed even if you only want to build a headless JDK.
* If the X11 libraries are not properly detected by `configure`, you can
point them out by `--with-x`.
### Cross compiling with Debian sysroots
### 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
@@ -1153,67 +1097,38 @@ 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
```
```
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,symlinks,build-essential,libx11-dev,libxext-dev,libxrender-dev,libxrandr-dev,libxtst-dev,libxt-dev,libcups2-dev,libfontconfig1-dev,libasound2-dev,libfreetype6-dev,libpng-dev,libffi-dev \
--resolve-deps \
buster \
~/sysroot-arm64 \
http://httpredir.debian.org/debian/
```
* Make sure the symlinks inside the newly created chroot point to proper locations:
```
sudo chroot ~/sysroot-arm64 symlinks -cr .
```
```
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:
```
sh ./configure \
--openjdk-target=aarch64-linux-gnu \
--with-sysroot=~/sysroot-arm64
make images
ls build/linux-aarch64-normal-server-release/
```
```
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.
The build system should automatically detect the toolchain paths and dependencies, but sometimes
it might require a little nudge with:
* Native compilers: override `CC` or `CXX` for `./configure`
* Freetype lib location: override `--with-freetype-lib`, for example `${sysroot}/usr/lib/${target}/`
* Freetype includes location: override `--with-freetype-include` for example `${sysroot}/usr/include/freetype2/`
* X11 libraries location: override `--x-libraries`, for example `${sysroot}/usr/lib/${target}/`
Architectures that are known to successfully cross-compile like this are:
Target Debian tree Debian arch `--openjdk-target=...` `--with-jvm-variants=...`
------------ ------------ ------------- ------------------------ --------------
x86 buster i386 i386-linux-gnu (all)
arm buster armhf arm-linux-gnueabihf (all)
aarch64 buster arm64 aarch64-linux-gnu (all)
ppc64le buster ppc64el powerpc64le-linux-gnu (all)
s390x buster s390x s390x-linux-gnu (all)
mipsle buster mipsel mipsel-linux-gnu zero
mips64le buster mips64el mips64el-linux-gnueabi64 zero
armel buster arm arm-linux-gnueabi zero
ppc sid powerpc powerpc-linux-gnu zero
ppc64be sid ppc64 powerpc64-linux-gnu (all)
m68k sid m68k m68k-linux-gnu zero
alpha sid alpha alpha-linux-gnu zero
sh4 sid sh4 sh4-linux-gnu zero
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
@@ -1223,33 +1138,6 @@ available using `--with-abi-profile`: 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.
The JDK contains two different ports for the aarch64 platform, one is the
original aarch64 port from the [AArch64 Port Project](
http://openjdk.java.net/projects/aarch64-port) 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
`--with-cpu-port=arm64`. Also set the corresponding value (`aarch64` or
`arm64`) to --with-abi-profile, to ensure a consistent build.
### Building for musl
Just like it's possible to cross-compile for a different CPU, it's possible to
cross-compile for musl libc on a glibc-based *build* system.
A devkit suitable for most target CPU architectures can be obtained from
[musl.cc](https://musl.cc). After installing the required packages in the
sysroot, configure the build with `--openjdk-target`:
```
sh ./configure --with-jvm-variants=server \
--with-boot-jdk=$BOOT_JDK \
--with-build-jdk=$BUILD_JDK \
--openjdk-target=x86_64-unknown-linux-musl \
--with-devkit=$DEVKIT \
--with-sysroot=$SYSROOT
```
and run `make` normally.
### Verifying the Build
The build will end up in a directory named like
@@ -1374,14 +1262,14 @@ ERROR: Build failed for target 'hotspot' in configuration 'linux-x64' (exit code
=== Output from failing command(s) repeated here ===
* For target hotspot_variant-server_libjvm_objs_psMemoryPool.o:
/localhome/git/jdk-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: 'failhere' does not name a type
/localhome/hg/jdk9-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: 'failhere' does not name a type
... (rest of output omitted)
* All command lines available in /localhome/git/jdk-sandbox/build/linux-x64/make-support/failure-logs.
* All command lines available in /localhome/hg/jdk9-sandbox/build/linux-x64/make-support/failure-logs.
=== End of repeated output ===
=== Make failed targets repeated here ===
lib/CompileJvm.gmk:207: recipe for target '/localhome/git/jdk-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o' failed
lib/CompileJvm.gmk:207: recipe for target '/localhome/hg/jdk9-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o' failed
make/Main.gmk:263: recipe for target 'hotspot-server-libs' failed
=== End of repeated output ===
@@ -1479,7 +1367,7 @@ order. Most issues will be solved at step 1 or 2.
1. Make sure your repository is up-to-date
Run `git pull origin master` to make sure you have the latest changes.
Run `hg pull -u` to make sure you have the latest changes.
2. Clean build results
@@ -1504,13 +1392,13 @@ order. Most issues will be solved at step 1 or 2.
make
```
4. Re-clone the Git repository
4. Re-clone the Mercurial repository
Sometimes the Git repository gets in a state that causes the product
Sometimes the Mercurial repository gets in a state that causes the product
to be un-buildable. In such a case, the simplest solution is often the
"sledgehammer approach": delete the entire repository, and re-clone it.
If you have local changes, save them first to a different location using
`git format-patch`.
`hg export`.
### Specific Build Issues
@@ -1548,15 +1436,6 @@ This can be a sign of a Cygwin problem. See the information about solving
problems in the [Cygwin](#cygwin) section. Rebooting the computer might help
temporarily.
#### Spaces in Path
On Windows, when configuring, `fixpath.sh` may report that some directory
names have spaces. Usually, it assumes those directories have
[short paths](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/fsutil-8dot3name).
You can run `fsutil file setshortname` in `cmd` on certain directories, such as
`Microsoft Visual Studio` or `Windows Kits`, to assign arbitrary short paths so
`configure` can access them.
### Getting Help
If none of the suggestions in this document helps you, or if you find what you
@@ -1570,6 +1449,33 @@ contact the Adoption Group. See the section on [Contributing to OpenJDK](
## Hints and Suggestions for Advanced Users
### Setting Up a Repository for Pushing Changes (defpath)
To help you prepare a proper push path for a Mercurial repository, there exists
a useful tool known as [defpath](
http://openjdk.java.net/projects/code-tools/defpath). It will help you setup a
proper push path for pushing changes to the JDK.
Install the extension by cloning
`http://hg.openjdk.java.net/code-tools/defpath` and updating your `.hgrc` file.
Here's one way to do this:
```
cd ~
mkdir hg-ext
cd hg-ext
hg clone http://hg.openjdk.java.net/code-tools/defpath
cat << EOT >> ~/.hgrc
[extensions]
defpath=~/hg-ext/defpath/defpath.py
EOT
```
You can now setup a proper push path using:
```
hg defpath -d -u <your OpenJDK username>
```
### Bash Completion
The `configure` and `make` commands tries to play nice with bash command-line
@@ -1604,7 +1510,7 @@ Now `configure --en<tab>-dt<tab>` will result in `configure --enable-dtrace`.
### Using Multiple Configurations
You can have multiple configurations for a single source forest. When you
You can have multiple configurations for a single source repository. When you
create a new configuration, run `configure --with-conf-name=<name>` to create a
configuration with the name `<name>`. Alternatively, you can create a directory
under `build` and run `configure` from there, e.g. `mkdir build/<name> && cd
@@ -1619,7 +1525,7 @@ in the configuration directory, e.g. `cd build/<name> && make`.
### Handling Reconfigurations
If you update the forest and part of the configure script has changed, the
If you update the repository and part of the configure script has changed, the
build system will force you to re-run `configure`.
Most of the time, you will be fine by running `configure` again with the same
@@ -1712,6 +1618,16 @@ instance, `make java.base JDK_FILTER=javax/crypto` (or, to combine methods,
`make java.base-java-only JDK_FILTER=javax/crypto`) will limit the compilation
to files in the `javax.crypto` package.
### Learn About Mercurial
To become an efficient JDK developer, it is recommended that you invest in
learning Mercurial properly. Here are some links that can get you started:
* [Mercurial for git users](http://www.mercurial-scm.org/wiki/GitConcepts)
* [The official Mercurial tutorial](http://www.mercurial-scm.org/wiki/Tutorial)
* [hg init](http://hginit.com/)
* [Mercurial: The Definitive Guide](http://hgbook.red-bean.com/read/)
## Understanding the Build System
This section will give you a more technical description on the details of the

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

@@ -1,79 +1,60 @@
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<html>
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<meta charset="utf-8">
<meta name="generator" content="pandoc">
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes">
<title>Testing the JDK</title>
<style>
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" />
<style type="text/css">code{white-space: pre;}</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]-->
<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" role="doc-toc">
<nav id="TOC">
<ul>
<li><a href="#using-the-run-test-framework">Using the run-test framework</a><ul>
<li><a href="#using-make-test-the-run-test-framework">Using &quot;make test&quot; (the run-test framework)</a><ul>
<li><a href="#configuration">Configuration</a></li>
</ul></li>
<li><a href="#test-selection">Test selection</a><ul>
<li><a href="#common-test-groups">Common Test Groups</a></li>
<li><a href="#jtreg">JTReg</a></li>
<li><a href="#gtest">Gtest</a></li>
<li><a href="#microbenchmarks">Microbenchmarks</a></li>
<li><a href="#special-tests">Special tests</a></li>
</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>
<li><a href="#pkcs11-tests">PKCS11 Tests</a></li>
<li><a href="#microbenchmark-keywords">Microbenchmark keywords</a></li>
</ul></li>
</ul>
</nav>
<h2 id="using-the-run-test-framework">Using the run-test framework</h2>
<h2 id="using-make-test-the-run-test-framework">Using &quot;make test&quot; (the run-test framework)</h2>
<p>This new way of running tests is developer-centric. It assumes that you have built a JDK locally and want to test it. Running common test targets is simple, and more complex ad-hoc combination of tests is possible. The user interface is forgiving, and clearly report errors it cannot resolve.</p>
<p>The main target &quot;run-test&quot; uses the jdk-image as the tested product. There is also an alternate target &quot;exploded-run-test&quot; that uses the exploded image instead. Not all tests will run successfully on the exploded image, but using this target can greatly improve rebuild times for certain workflows.</p>
<p>The main target <code>test</code> uses the jdk-image as the tested product. There is also an alternate target <code>exploded-test</code> that uses the exploded image instead. Not all tests will run successfully on the exploded image, but using this target can greatly improve rebuild times for certain workflows.</p>
<p>Previously, <code>make test</code> was used invoke an old system for running test, and <code>make run-test</code> was used for the new test framework. For backward compatibility with scripts and muscle memory, <code>run-test</code> (and variants like <code>exploded-run-test</code> or <code>run-test-tier1</code>) are kept as aliases. The old system can still be accessed for some time using <code>cd test &amp;&amp; make</code>.</p>
<p>Some example command-lines:</p>
<pre><code>$ make run-test-tier1
$ make run-test-jdk_lang JTREG=&quot;JOBS=8&quot;
$ make run-test TEST=jdk_lang
$ make run-test-only TEST=&quot;gtest:LogTagSet gtest:LogTagSetDescriptions&quot; GTEST=&quot;REPEAT=-1&quot;
$ make run-test TEST=&quot;hotspot:hotspot_gc&quot; JTREG=&quot;JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug&quot;
$ make run-test TEST=&quot;jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java&quot;
$ make exploded-run-test TEST=tier2</code></pre>
<pre><code>$ make test-tier1
$ make test-jdk_lang JTREG=&quot;JOBS=8&quot;
$ make test TEST=jdk_lang
$ make test-only TEST=&quot;gtest:LogTagSet gtest:LogTagSetDescriptions&quot; GTEST=&quot;REPEAT=-1&quot;
$ make test TEST=&quot;hotspot:hotspot_gc&quot; JTREG=&quot;JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug&quot;
$ make test TEST=&quot;jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java&quot;
$ make test TEST=&quot;micro:java.lang.reflect&quot; MICRO=&quot;FORK=1;WARMUP_ITER=2&quot;
$ make exploded-test TEST=tier2</code></pre>
<h3 id="configuration">Configuration</h3>
<p>To be able to run JTReg tests, <code>configure</code> needs to know where to find the JTReg test framework. If it is not picked up automatically by configure, use the <code>--with-jtreg=&lt;path to jtreg home&gt;</code> option to point to the JTReg framework. Note that this option should point to the JTReg home, i.e. the top directory, containing <code>lib/jtreg.jar</code> etc. (An alternative is to set the <code>JT_HOME</code> environment variable to point to the JTReg home before running <code>configure</code>.)</p>
<p>To be able to run microbenchmarks, <code>configure</code> needs to know where to find the JMH dependency. Use <code>--with-jmh=&lt;path to JMH jars&gt;</code> to point to a directory containing the core JMH and transitive dependencies. The recommended dependencies can be retrieved by running <code>sh make/devkit/createJMHBundle.sh</code>, after which <code>--with-jmh=build/jmh/jars</code> should work.</p>
<h2 id="test-selection">Test selection</h2>
<p>All functionality is available using the run-test make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, run-test-only can be used instead, which do not depend on the source and test image build.</p>
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make run-test-tier1</code> is equivalent to <code>make run-test TEST="tier1"</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>run-test TEST="x"</code> solution needs to be used.</p>
<p>All functionality is available using the <code>test</code> make target. In this use case, the test or tests to be executed is controlled using the <code>TEST</code> variable. To speed up subsequent test runs with no source code changes, <code>test-only</code> can be used instead, which do not depend on the source and test image build.</p>
<p>For some common top-level tests, direct make targets have been generated. This includes all JTReg test groups, the hotspot gtest, and custom tests (if present). This means that <code>make test-tier1</code> is equivalent to <code>make test TEST=&quot;tier1&quot;</code>, but the latter is more tab-completion friendly. For more complex test runs, the <code>test TEST=&quot;x&quot;</code> solution needs to be used.</p>
<p>The test specifications given in <code>TEST</code> is parsed into fully qualified test descriptors, which clearly and unambigously show which tests will be run. As an example, <code>:tier1</code> will expand to <code>jtreg:$(TOPDIR)/test/hotspot/jtreg:tier1 jtreg:$(TOPDIR)/test/jdk:tier1 jtreg:$(TOPDIR)/test/langtools:tier1 jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1</code>. You can always submit a list of fully qualified test descriptors in the <code>TEST</code> variable if you want to shortcut the parser.</p>
<h3 id="common-test-groups">Common Test Groups</h3>
<p>Ideally, all tests are run for every change but this may not be practical due to the limited testing resources, the scope of the change, etc.</p>
<p>The source tree currently defines a few common test groups in the relevant <code>TEST.groups</code> files. There are test groups that cover a specific component, for example <code>hotspot_gc</code>. It is a good idea to look into <code>TEST.groups</code> files to get a sense what tests are relevant to a particular JDK component.</p>
<p>Component-specific tests may miss some unintended consequences of a change, so other tests should also be run. Again, it might be impractical to run all tests, and therefore <em>tiered</em> test groups exist. Tiered test groups are not component-specific, but rather cover the significant parts of the entire JDK.</p>
<p>Multiple tiers allow balancing test coverage and testing costs. Lower test tiers are supposed to contain the simpler, quicker and more stable tests. Higher tiers are supposed to contain progressively more thorough, slower, and sometimes less stable tests, or the tests that require special configuration.</p>
<p>Contributors are expected to run the tests for the areas that are changed, and the first N tiers they can afford to run, but at least tier1.</p>
<p>A brief description of the tiered test groups:</p>
<ul>
<li><p><code>tier1</code>: This is the lowest test tier. Multiple developers run these tests every day. Because of the widespread use, the tests in <code>tier1</code> are carefully selected and optimized to run fast, and to run in the most stable manner. The test failures in <code>tier1</code> are usually followed up on quickly, either with fixes, or adding relevant tests to problem list. GitHub Actions workflows, if enabled, run <code>tier1</code> tests.</p></li>
<li><p><code>tier2</code>: This test group covers even more ground. These contain, among other things, tests that either run for too long to be at <code>tier1</code>, or may require special configuration, or tests that are less stable, or cover the broader range of non-core JVM and JDK features/components (for example, XML).</p></li>
<li><p><code>tier3</code>: This test group includes more stressful tests, the tests for corner cases not covered by previous tiers, plus the tests that require GUIs. As such, this suite should either be run with low concurrency (<code>TEST_JOBS=1</code>), or without headful tests (<code>JTREG_KEYWORDS=\!headful</code>), or both.</p></li>
<li><p><code>tier4</code>: This test group includes every other test not covered by previous tiers. It includes, for example, <code>vmTestbase</code> suites for Hotspot, which run for many hours even on large machines. It also runs GUI tests, so the same <code>TEST_JOBS</code> and <code>JTREG_KEYWORDS</code> caveats apply.</p></li>
</ul>
<h3 id="jtreg">JTReg</h3>
<p>JTReg tests can be selected either by picking a JTReg test group, or a selection of files or directories containing JTReg tests.</p>
<p>JTReg test groups can be specified either without a test root, e.g. <code>:tier1</code> (or <code>tier1</code>, the initial colon is optional), or with, e.g. <code>hotspot:tier1</code>, <code>test/jdk:jdk_util</code> or <code>$(TOPDIR)/test/hotspot/jtreg:hotspot_all</code>. The test root can be specified either as an absolute path, or a path relative to the JDK top directory, or the <code>test</code> directory. For simplicity, the hotspot JTReg test root, which really is <code>hotspot/jtreg</code> can be abbreviated as just <code>hotspot</code>.</p>
@@ -84,6 +65,16 @@ $ make exploded-run-test TEST=tier2</code></pre>
<p>Since the Hotspot Gtest suite is so quick, the default is to run all tests. This is specified by just <code>gtest</code>, or as a fully qualified test descriptor <code>gtest:all</code>.</p>
<p>If you want, you can single out an individual test or a group of tests, for instance <code>gtest:LogDecorations</code> or <code>gtest:LogDecorations.level_test_vm</code>. This can be particularly useful if you want to run a shaky test repeatedly.</p>
<p>For Gtest, there is a separate test suite for each JVM variant. The JVM variant is defined by adding <code>/&lt;variant&gt;</code> to the test descriptor, e.g. <code>gtest:Log/client</code>. If you specify no variant, gtest will run once for each JVM variant present (e.g. server, client). So if you only have the server JVM present, then <code>gtest:all</code> will be equivalent to <code>gtest:all/server</code>.</p>
<h3 id="microbenchmarks">Microbenchmarks</h3>
<p>Which microbenchmarks to run is selected using a regular expression following the <code>micro:</code> test descriptor, e.g., <code>micro:java.lang.reflect</code>. This delegates the test selection to JMH, meaning package name, class name and even benchmark method names can be used to select tests.</p>
<p>Using special characters like <code>|</code> in the regular expression is possible, but needs to be escaped multiple times: <code>micro:ArrayCopy\\\\\|reflect</code>.</p>
<h3 id="special-tests">Special tests</h3>
<p>A handful of odd tests that are not covered by any other testing framework are accessible using the <code>special:</code> test descriptor. Currently, this includes <code>failure-handler</code> and <code>make</code>.</p>
<ul>
<li><p>Failure handler testing is run using <code>special:failure-handler</code> or just <code>failure-handler</code> as test descriptor.</p></li>
<li><p>Tests for the build system, including both makefiles and related functionality, is run using <code>special:make</code> or just <code>make</code> as test descriptor. This is equivalent to <code>special:make:all</code>.</p>
<p>A specific make test can be run by supplying it as argument, e.g. <code>special:make:idea</code>. As a special syntax, this can also be expressed as <code>make-idea</code>, which allows for command lines as <code>make test-make-idea</code>.</p></li>
</ul>
<h2 id="test-results-and-summary">Test results and summary</h2>
<p>At the end of the test run, a summary of all tests run will be presented. This will have a consistent look, regardless of what test suites were used. This is a sample summary:</p>
<pre><code>==============================
@@ -97,33 +88,20 @@ Test summary
TEST FAILURE</code></pre>
<p>Tests where the number of TOTAL tests does not equal the number of PASSed tests will be considered a test failure. These are marked with the <code>&gt;&gt; ... &lt;&lt;</code> marker for easy identification.</p>
<p>The classification of non-passed tests differs a bit between test suites. In the summary, ERROR is used as a catch-all for tests that neither passed nor are classified as failed by the framework. This might indicate test framework error, timeout or other problems.</p>
<p>In case of test failures, <code>make run-test</code> will exit with a non-zero exit value.</p>
<p>In case of test failures, <code>make test</code> will exit with a non-zero exit value.</p>
<p>All tests have their result stored in <code>build/$BUILD/test-results/$TEST_ID</code>, where TEST_ID is a path-safe conversion from the fully qualified test descriptor, e.g. for <code>jtreg:jdk/test:tier1</code> the TEST_ID is <code>jtreg_jdk_test_tier1</code>. This path is also printed in the log at the end of the test run.</p>
<p>Additional work data is stored in <code>build/$BUILD/test-support/$TEST_ID</code>. For some frameworks, this directory might contain information that is useful in determining the cause of a failed test.</p>
<h2 id="test-suite-control">Test suite control</h2>
<p>It is possible to control various aspects of the test suites using make control variables.</p>
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG="JOBS=1;TIMEOUT=8"</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG="TMIEOUT=8"</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p>
<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="...;..."</code>. This will also make sure spaces are preserved, as in <code>JTREG="VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"</code>.</p>
<p>These variables use a keyword=value approach to allow multiple values to be set. So, for instance, <code>JTREG=&quot;JOBS=1;TIMEOUT=8&quot;</code> will set the JTReg concurrency level to 1 and the timeout factor to 8. This is equivalent to setting <code>JTREG_JOBS=1 JTREG_TIMEOUT=8</code>, but using the keyword format means that the <code>JTREG</code> variable is parsed and verified for correctness, so <code>JTREG=&quot;TMIEOUT=8&quot;</code> would give an error, while <code>JTREG_TMIEOUT=8</code> would just pass unnoticed.</p>
<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 don't 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>
@@ -142,57 +120,36 @@ 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="run_problem_lists">RUN_PROBLEM_LISTS</h4>
<p>Use the problem lists to select tests instead of excluding them.</p>
<p>Set to <code>true</code> or <code>false</code>. If <code>true</code>, JTReg will use <code>-match:</code> option, otherwise <code>-exclude:</code> will be used. Default is <code>false</code>.</p>
<h4 id="options">OPTIONS</h4>
<p>Additional options to the JTReg test framework.</p>
<p>Use <code>JTREG="OPTIONS=--help all"</code> to see all available JTReg options.</p>
<h4 id="java_options-1">JAVA_OPTIONS</h4>
<p>Use <code>JTREG=&quot;OPTIONS=--help all&quot;</code> to see all available JTReg options.</p>
<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>
<h4 id="retry_count">RETRY_COUNT</h4>
<p>Retry failed tests up to a set number of times, until they pass. This allows to pass the tests with intermittent failures. Defaults to 0.</p>
<h4 id="repeat_count">REPEAT_COUNT</h4>
<p>Repeat the tests up to a set number of times, stopping at first failure. This helps to reproduce intermittent test failures. Defaults to 0.</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>
<p>Default is 1. Set to -1 to repeat indefinitely. This can be especially useful combined with <code>OPTIONS=--gtest_break_on_failure</code> to reproduce an intermittent problem.</p>
<h4 id="options-1">OPTIONS</h4>
<p>Additional options to the Gtest test framework.</p>
<p>Use <code>GTEST="OPTIONS=--help"</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="pkcs11-tests">PKCS11 Tests</h3>
<p>It is highly recommended to use the latest NSS version when running PKCS11 tests. Improper NSS version may lead to unexpected failures which are hard to diagnose. For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu 18.04 with the default NSS version in the system. To run these tests correctly, the system property <<code>jdk.test.lib.artifacts.&lt;NAME&gt;</code> is required on Ubuntu 18.04 to specify the alternative NSS lib directories.The<code>&lt;NAME&gt;</code> component should be replaced with the name element of the appropriate <code>@Artifact</code> class. (See<code>test/jdk/sun/security/pkcs11/PKCS11Test.java</code>)</p>
<p>For example:</p>
<pre><code>$ make test TEST=&quot;jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java&quot; JTREG=&quot;JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs&quot</code></pre>
<p>For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.</p>
<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 &quot;Turn keyboard access on or off&quot; 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 &quot;Turn off Windows key hotkeys&quot; and double click on it; enable or disable hotkeys.</p>
<p>Note: restart is required to make the settings take effect.</p>
<p>Use <code>GTEST=&quot;OPTIONS=--help&quot;</code> to see all available Gtest options.</p>
<h3 id="microbenchmark-keywords">Microbenchmark keywords</h3>
<h4 id="fork">FORK</h4>
<p>Override the number of benchmark forks to spawn. Same as specifying <code>-f &lt;num&gt;</code>.</p>
<h4 id="iter">ITER</h4>
<p>Number of measurement iterations per fork. Same as specifying <code>-i &lt;num&gt;</code>.</p>
<h4 id="time">TIME</h4>
<p>Amount of time to spend in each measurement iteration, in seconds. Same as specifying <code>-r &lt;num&gt;</code></p>
<h4 id="warmup_iter">WARMUP_ITER</h4>
<p>Number of warmup iterations to run before the measurement phase in each fork. Same as specifying <code>-wi &lt;num&gt;</code>.</p>
<h4 id="warmup_time">WARMUP_TIME</h4>
<p>Amount of time to spend in each warmup iteration. Same as specifying <code>-w &lt;num&gt;</code>.</p>
<h4 id="results_format">RESULTS_FORMAT</h4>
<p>Specify to have the test run save a log of the values. Accepts the same values as <code>-rff</code>, i.e., <code>text</code>, <code>csv</code>, <code>scsv</code>, <code>json</code>, or <code>latex</code>.</p>
<h4 id="vm_options-1">VM_OPTIONS</h4>
<p>Additional VM arguments to provide to forked off VMs. Same as <code>-jvmArgs &lt;args&gt;</code></p>
<h4 id="options-2">OPTIONS</h4>
<p>Additional arguments to send to JMH.</p>
</body>
</html>

View File

@@ -1,26 +1,33 @@
% Testing the JDK
## Using the run-test framework
## Using "make test" (the run-test framework)
This new way of running tests is developer-centric. It assumes that you have
built a JDK locally and want to test it. Running common test targets is simple,
and more complex ad-hoc combination of tests is possible. The user interface is
forgiving, and clearly report errors it cannot resolve.
The main target "run-test" uses the jdk-image as the tested product. There is
also an alternate target "exploded-run-test" that uses the exploded image
The main target `test` uses the jdk-image as the tested product. There is
also an alternate target `exploded-test` that uses the exploded image
instead. Not all tests will run successfully on the exploded image, but using
this target can greatly improve rebuild times for certain workflows.
Previously, `make test` was used invoke an old system for running test, and
`make run-test` was used for the new test framework. For backward compatibility
with scripts and muscle memory, `run-test` (and variants like
`exploded-run-test` or `run-test-tier1`) are kept as aliases. The old system
can still be accessed for some time using `cd test && make`.
Some example command-lines:
$ make run-test-tier1
$ make run-test-jdk_lang JTREG="JOBS=8"
$ make run-test TEST=jdk_lang
$ make run-test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
$ make run-test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
$ make run-test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
$ make exploded-run-test TEST=tier2
$ make test-tier1
$ make test-jdk_lang JTREG="JOBS=8"
$ make test TEST=jdk_lang
$ make test-only TEST="gtest:LogTagSet gtest:LogTagSetDescriptions" GTEST="REPEAT=-1"
$ make test TEST="hotspot:hotspot_gc" JTREG="JOBS=1;TIMEOUT=8;VM_OPTIONS=-XshowSettings -Xlog:gc+ref=debug"
$ make test TEST="jtreg:test/hotspot:hotspot_gc test/hotspot/jtreg/native_sanity/JniVersion.java"
$ make test TEST="micro:java.lang.reflect" MICRO="FORK=1;WARMUP_ITER=2"
$ make exploded-test TEST=tier2
### Configuration
@@ -31,18 +38,24 @@ Note that this option should point to the JTReg home, i.e. the top directory,
containing `lib/jtreg.jar` etc. (An alternative is to set the `JT_HOME`
environment variable to point to the JTReg home before running `configure`.)
To be able to run microbenchmarks, `configure` needs to know where to find
the JMH dependency. Use `--with-jmh=<path to JMH jars>` to point to a directory
containing the core JMH and transitive dependencies. The recommended dependencies
can be retrieved by running `sh make/devkit/createJMHBundle.sh`, after which
`--with-jmh=build/jmh/jars` should work.
## Test selection
All functionality is available using the run-test make target. In this use
case, the test or tests to be executed is controlled using the `TEST` variable.
To speed up subsequent test runs with no source code changes, run-test-only can
be used instead, which do not depend on the source and test image build.
All functionality is available using the `test` make target. In this use case,
the test or tests to be executed is controlled using the `TEST` variable. To
speed up subsequent test runs with no source code changes, `test-only` can be
used instead, which do not depend on the source and test image build.
For some common top-level tests, direct make targets have been generated. This
includes all JTReg test groups, the hotspot gtest, and custom tests (if
present). This means that `make run-test-tier1` is equivalent to `make run-test
present). This means that `make test-tier1` is equivalent to `make test
TEST="tier1"`, but the latter is more tab-completion friendly. For more complex
test runs, the `run-test TEST="x"` solution needs to be used.
test runs, the `test TEST="x"` solution needs to be used.
The test specifications given in `TEST` is parsed into fully qualified test
descriptors, which clearly and unambigously show which tests will be run. As an
@@ -52,52 +65,6 @@ jtreg:$(TOPDIR)/test/nashorn:tier1 jtreg:$(TOPDIR)/test/jaxp:tier1`. You can
always submit a list of fully qualified test descriptors in the `TEST` variable
if you want to shortcut the parser.
### Common Test Groups
Ideally, all tests are run for every change but this may not be practical due to the limited
testing resources, the scope of the change, etc.
The source tree currently defines a few common test groups in the relevant `TEST.groups`
files. There are test groups that cover a specific component, for example `hotspot_gc`.
It is a good idea to look into `TEST.groups` files to get a sense what tests are relevant
to a particular JDK component.
Component-specific tests may miss some unintended consequences of a change, so other
tests should also be run. Again, it might be impractical to run all tests, and therefore
_tiered_ test groups exist. Tiered test groups are not component-specific, but rather cover
the significant parts of the entire JDK.
Multiple tiers allow balancing test coverage and testing costs. Lower test tiers are supposed to
contain the simpler, quicker and more stable tests. Higher tiers are supposed to contain
progressively more thorough, slower, and sometimes less stable tests, or the tests that require
special configuration.
Contributors are expected to run the tests for the areas that are changed, and the first N tiers
they can afford to run, but at least tier1.
A brief description of the tiered test groups:
- `tier1`: This is the lowest test tier. Multiple developers run these tests every day.
Because of the widespread use, the tests in `tier1` are carefully selected and optimized to run
fast, and to run in the most stable manner. The test failures in `tier1` are usually followed up
on quickly, either with fixes, or adding relevant tests to problem list. GitHub Actions workflows,
if enabled, run `tier1` tests.
- `tier2`: This test group covers even more ground. These contain, among other things,
tests that either run for too long to be at `tier1`, or may require special configuration,
or tests that are less stable, or cover the broader range of non-core JVM and JDK features/components
(for example, XML).
- `tier3`: This test group includes more stressful tests, the tests for corner cases
not covered by previous tiers, plus the tests that require GUIs. As such, this suite
should either be run with low concurrency (`TEST_JOBS=1`), or without headful tests
(`JTREG_KEYWORDS=\!headful`), or both.
- `tier4`: This test group includes every other test not covered by previous tiers. It includes,
for example, `vmTestbase` suites for Hotspot, which run for many hours even on large
machines. It also runs GUI tests, so the same `TEST_JOBS` and `JTREG_KEYWORDS` caveats
apply.
### JTReg
JTReg tests can be selected either by picking a JTReg test group, or a selection
@@ -144,6 +111,33 @@ is defined by adding `/<variant>` to the test descriptor, e.g.
variant present (e.g. server, client). So if you only have the server JVM
present, then `gtest:all` will be equivalent to `gtest:all/server`.
### Microbenchmarks
Which microbenchmarks to run is selected using a regular expression
following the `micro:` test descriptor, e.g., `micro:java.lang.reflect`. This
delegates the test selection to JMH, meaning package name, class name and even
benchmark method names can be used to select tests.
Using special characters like `|` in the regular expression is possible, but
needs to be escaped multiple times: `micro:ArrayCopy\\\\\|reflect`.
### Special tests
A handful of odd tests that are not covered by any other testing framework are
accessible using the `special:` test descriptor. Currently, this includes
`failure-handler` and `make`.
* Failure handler testing is run using `special:failure-handler` or just
`failure-handler` as test descriptor.
* Tests for the build system, including both makefiles and related
functionality, is run using `special:make` or just `make` as test
descriptor. This is equivalent to `special:make:all`.
A specific make test can be run by supplying it as argument, e.g.
`special:make:idea`. As a special syntax, this can also be expressed as
`make-idea`, which allows for command lines as `make test-make-idea`.
## Test results and summary
At the end of the test run, a summary of all tests run will be presented. This
@@ -169,7 +163,7 @@ the summary, ERROR is used as a catch-all for tests that neither passed nor are
classified as failed by the framework. This might indicate test framework
error, timeout or other problems.
In case of test failures, `make run-test` will exit with a non-zero exit value.
In case of test failures, `make test` will exit with a non-zero exit value.
All tests have their result stored in `build/$BUILD/test-results/$TEST_ID`,
where TEST_ID is a path-safe conversion from the fully qualified test
@@ -208,35 +202,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
@@ -246,7 +211,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.
@@ -280,32 +245,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.
#### RUN_PROBLEM_LISTS
Use the problem lists to select tests instead of excluding them.
Set to `true` or `false`.
If `true`, JTReg will use `-match:` option, otherwise `-exclude:` will be used.
Default is `false`.
#### OPTIONS
Additional options to the JTReg test framework.
@@ -317,24 +256,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`).
#### RETRY_COUNT
Retry failed tests up to a set number of times, until they pass.
This allows to pass the tests with intermittent failures.
Defaults to 0.
#### REPEAT_COUNT
Repeat the tests up to a set number of times, stopping at first failure.
This helps to reproduce intermittent test failures.
Defaults to 0.
### Gtest keywords
#### REPEAT
@@ -349,71 +270,34 @@ Additional options to the Gtest test framework.
Use `GTEST="OPTIONS=--help"` to see all available Gtest options.
#### AOT_MODULES
### Microbenchmark keywords
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`).
#### FORK
Override the number of benchmark forks to spawn. Same as specifying `-f <num>`.
## Notes for Specific Tests
#### ITER
Number of measurement iterations per fork. Same as specifying `-i <num>`.
### Docker Tests
#### TIME
Amount of time to spend in each measurement iteration, in seconds. Same as
specifying `-r <num>`
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:
#### WARMUP_ITER
Number of warmup iterations to run before the measurement phase in each fork.
Same as specifying `-wi <num>`.
$ make run-test TEST="jtreg:test/hotspot/jtreg/containers/docker"
#### WARMUP_TIME
Amount of time to spend in each warmup iteration. Same as specifying `-w <num>`.
To run these tests correctly, additional parameters for the correct docker image are
required on Ubuntu 18.04 by using `JAVA_OPTIONS`.
#### RESULTS_FORMAT
Specify to have the test run save a log of the values. Accepts the same values
as `-rff`, i.e., `text`, `csv`, `scsv`, `json`, or `latex`.
$ 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"
#### VM_OPTIONS
Additional VM arguments to provide to forked off VMs. Same as `-jvmArgs <args>`
### PKCS11 Tests
It is highly recommended to use the latest NSS version when running PKCS11 tests.
Improper NSS version may lead to unexpected failures which are hard to diagnose.
For example, sun/security/pkcs11/Secmod/AddTrustedCert.java may fail on Ubuntu
18.04 with the default NSS version in the system.
To run these tests correctly, the system property `jdk.test.lib.artifacts.<NAME>` is required on
Ubuntu 18.04 to specify the alternative NSS lib directory. The `<NAME>`
component should be replaced with the name element of the appropriate
`@Artifact` class. (See `test/jdk/sun/security/pkcs11/PKCS11Test.java`)
For example:
$ make test TEST="jtreg:sun/security/pkcs11/Secmod/AddTrustedCert.java" JTREG="JAVA_OPTIONS=-Djdk.test.lib.artifacts.nsslib-linux_aarch64=/path/to/NSS-libs"
For more notes about the PKCS11 tests, please refer to test/jdk/sun/security/pkcs11/README.
### 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.
#### OPTIONS
Additional arguments to send to JMH.
---
# Override some definitions in the global css file that are not optimal for

View File

@@ -42,7 +42,7 @@ MODULES_SYMBOLS_FILES := $(foreach module, $(EXPORTED_SYMBOLS_MODULES), \
$(GLOBAL_SYMBOLS_FILE): $(MODULES_SYMBOLS_FILES)
$(call LogInfo, Generating global exported.symbols file)
$(MKDIR) -p $(@D)
$(call MakeTargetDir)
$(CAT) $^ > $@
TARGETS += $(GLOBAL_SYMBOLS_FILE)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 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
@@ -29,14 +29,13 @@ include $(SPEC)
include MakeBase.gmk
PRODUCT_TARGETS :=
LEGACY_TARGETS :=
TEST_TARGETS :=
DOCS_TARGETS :=
# On Windows tar frequently complains that "file changed as we read it" for
# some random source files. This seems to be cause by anti virus scanners and
# is most likely safe to ignore. When it happens, tar returns '1'.
ifeq ($(call isBuildOs, windows), true)
ifeq ($(OPENJDK_BUILD_OS), windows)
TAR_IGNORE_EXIT_VALUE := || test "$$$$?" = "1"
endif
@@ -50,7 +49,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 +69,9 @@ 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)
$$(call MakeTargetDir)
# 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), \
@@ -84,7 +80,6 @@ define SetupBundleFileBody
$$(CAT) $$($1_$$d_LIST_FILE) | $$(TR) '?' ' ' > $$($1_$$d_LIST_FILE).tmp \
&& $(MV) $$($1_$$d_LIST_FILE).tmp $$($1_$$d_LIST_FILE) $$(NEWLINE) \
)
$$(call MakeDir, $$(@D))
ifneq ($$($1_SPECIAL_INCLUDES), )
$$(foreach i, $$($1_SPECIAL_INCLUDES), \
$$(foreach d, $$($1_BASE_DIRS), \
@@ -125,13 +120,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 +136,7 @@ define SetupBundleFileBody
endif
endif
$1 += $$($1_OUTPUTDIR)/$$($1_BUNDLE_NAME)
$1 += $(BUNDLES_OUTPUTDIR)/$$($1_BUNDLE_NAME)
endef
@@ -156,78 +144,33 @@ endef
# On Macosx, we bundle up the macosx specific images which already have the
# correct base directories.
ifeq ($(call isTargetOs, macosx)+$(DEBUG_LEVEL), true+release)
ifeq ($(OPENJDK_TARGET_OS)-$(DEBUG_LEVEL), macosx-release)
JDK_IMAGE_DIR := $(JDK_MACOSX_BUNDLE_DIR)
JRE_IMAGE_DIR := $(JRE_MACOSX_BUNDLE_DIR)
JDK_IMAGE_HOMEDIR := $(JDK_MACOSX_CONTENTS_DIR)/Home
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)
JDK_BUNDLE_SUBDIR := jdk-$(VERSION_NUMBER)
JRE_BUNDLE_SUBDIR := jre-$(VERSION_NUMBER)
ifneq ($(DEBUG_LEVEL), release)
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, $(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 ($(call isTargetOs, macosx), true)
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,147 +183,40 @@ 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))
$(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), \
))
# Create special filter rules when dealing with unzipped .dSYM directories on
# macosx
ifeq ($(OPENJDK_TARGET_OS), macosx)
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), false)
JRE_SYMBOLS_EXCLUDE_PATTERN := $(addprefix %, \
$(call containing, .dSYM/, $(patsubst $(JRE_IMAGE_DIR)/%, %, $(ALL_JRE_FILES))))
endif
endif
PRODUCT_TARGETS += $(BUILD_JDK_BUNDLE)
# 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
$(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, \
))
JRE_BUNDLE_FILES := $(filter-out \
$(JRE_SYMBOLS_EXCLUDE_PATTERN) \
$(SYMBOLS_EXCLUDE_PATTERN), \
$(ALL_JRE_FILES))
ifeq ($(MACOSX_CODESIGN_MODE), hardened)
# Macosx release build and code signing available.
################################################################################
# JDK bundle
$(eval $(call SetupCopyFiles, CREATE_JDK_BUNDLE_DIR_SIGNED, \
SRC := $(JDK_IMAGE_DIR), \
FILES := $(JDK_BUNDLE_FILES), \
DEST := $(JDK_MACOSX_BUNDLE_DIR_SIGNED), \
))
JDK_SIGNED_CODE_RESOURCES := \
$(JDK_MACOSX_BUNDLE_DIR_SIGNED)/$(JDK_MACOSX_CONTENTS_SUBDIR)/_CodeSignature/CodeResources
$(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_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
@@ -388,7 +224,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), \
))
@@ -398,7 +234,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), \
@@ -412,7 +248,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), \
@@ -426,37 +262,13 @@ 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))
################################################################################
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,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 =
@@ -234,14 +234,14 @@ $(SUPPORT_OUTPUTDIR)/demos/image/nbproject/%: $(DEMO_SHARE_SRC)/nbproject/%
$(call install-file)
$(CHMOD) -f ug+w $@
ifeq ($(call isTargetOs, solaris), true)
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

@@ -51,18 +51,21 @@ java.base_EXCLUDES += java/lang/doc-files
# data files and shouldn't go in the product
java.base_EXCLUDE_FILES += sun/text/resources/BreakIteratorRules.java
ifeq ($(call isTargetOs, solaris), false)
ifneq ($(OPENJDK_TARGET_OS), solaris)
java.base_EXCLUDE_FILES += \
SolarisLoginModule.java \
SolarisSystem.java \
#
endif
ifeq ($(call isTargetOs, solaris macosx aix), false)
ifeq ($(filter $(OPENJDK_TARGET_OS), solaris macosx aix), )
#
# only solaris, macosx and aix
#
java.base_EXCLUDE_FILES += sun/nio/fs/PollingWatchService.java
endif
ifeq ($(call isTargetOs, windows), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
java.base_EXCLUDE_FILES += \
sun/nio/ch/SimpleAsynchronousFileChannelImpl.java \
#
@@ -121,7 +124,7 @@ java.desktop_EXCLUDE_FILES += \
.template \
#
ifeq ($(call isTargetOs, macosx), true)
ifeq ($(OPENJDK_TARGET_OS), macosx)
# exclude all X11 on Mac.
java.desktop_EXCLUDES += \
sun/awt/X11 \
@@ -183,7 +186,7 @@ else
sun/awt/X11/XwcTextItem.java
endif
ifeq ($(call isTargetOs, windows), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
java.desktop_EXCLUDES += com/sun/java/swing/plaf/gtk
endif
@@ -191,7 +194,8 @@ ifdef BUILD_HEADLESS_ONLY
java.desktop_EXCLUDES += sun/applet
endif
ifeq ($(call isTargetOs, windows macosx), false)
# Used on windows and macosx
ifeq ($(filter $(OPENJDK_TARGET_OS), windows macosx), )
java.desktop_EXCLUDE_FILES += sun/awt/AWTCharset.java
endif
@@ -317,7 +321,7 @@ jdk.jshell_COPY += .jsh .properties
################################################################################
jdk.internal.le_COPY += .properties .caps .txt
jdk.internal.le_COPY += .properties
################################################################################
@@ -370,11 +374,11 @@ SCTP_IMPL_CLASSES = \
$(TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/SendFailed.java \
$(TOPDIR)/src/jdk.sctp/unix/classes/sun/nio/ch/sctp/Shutdown.java
ifeq ($(call isTargetOs, macosx), true)
ifeq ($(OPENJDK_TARGET_OS), macosx)
jdk.sctp_EXCLUDE_FILES += $(SCTP_IMPL_CLASSES)
endif
ifeq ($(call isTargetOs, aix), true)
ifeq ($(OPENJDK_TARGET_OS),aix)
jdk.sctp_EXCLUDE_FILES += $(SCTP_IMPL_CLASSES)
endif
@@ -446,21 +450,17 @@ jdk.internal.vm.compiler_ADD_JAVAC_FLAGS += -parameters -XDstringConcat=inline \
jdk.internal.vm.compiler_EXCLUDES += \
jdk.internal.vm.compiler.collections.test \
org.graalvm.compiler.processor \
org.graalvm.compiler.core.match.processor \
org.graalvm.compiler.nodeinfo.processor \
org.graalvm.compiler.options.processor \
org.graalvm.compiler.serviceprovider.processor \
org.graalvm.compiler.replacements.processor \
org.graalvm.compiler.replacements.jdk9.test \
jdk.tools.jaotc.test \
org.graalvm.compiler.api.directives.test \
org.graalvm.compiler.api.test \
org.graalvm.compiler.asm.aarch64.test \
org.graalvm.compiler.asm.amd64.test \
org.graalvm.compiler.asm.sparc.test \
org.graalvm.compiler.asm.test \
org.graalvm.compiler.core.aarch64.test \
org.graalvm.compiler.core.amd64.test \
org.graalvm.compiler.core.sparc.test \
org.graalvm.compiler.core.jdk9.test \
org.graalvm.compiler.core.match.processor \
org.graalvm.compiler.core.test \
org.graalvm.compiler.debug.test \
org.graalvm.compiler.graph.test \
@@ -473,10 +473,18 @@ jdk.internal.vm.compiler_EXCLUDES += \
org.graalvm.compiler.lir.test \
org.graalvm.compiler.loop.test \
org.graalvm.compiler.microbenchmarks \
org.graalvm.compiler.nodeinfo.processor \
org.graalvm.compiler.nodes.test \
org.graalvm.compiler.options.processor \
org.graalvm.compiler.options.test \
org.graalvm.compiler.phases.common.test \
org.graalvm.compiler.processor \
org.graalvm.compiler.replacements.jdk12.test \
org.graalvm.compiler.replacements.jdk9.test \
org.graalvm.compiler.replacements.jdk9_11.test \
org.graalvm.compiler.replacements.processor \
org.graalvm.compiler.replacements.test \
org.graalvm.compiler.serviceprovider.processor \
org.graalvm.compiler.test \
org.graalvm.compiler.virtual.bench \
org.graalvm.micro.benchmarks \
@@ -507,6 +515,10 @@ jdk.aot_ADD_JAVAC_FLAGS += -parameters -XDstringConcat=inline \
--add-exports jdk.internal.vm.ci/jdk.vm.ci.sparc=jdk.internal.vm.compiler,jdk.aot \
#
jdk.aot_EXCLUDES += \
jdk.tools.jaotc.test
#
################################################################################
sun.charsets_COPY += .dat
@@ -640,7 +652,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
@@ -29,6 +29,7 @@ include $(SPEC)
include MakeBase.gmk
include JavaCompilation.gmk
include SetupJavaCompilers.gmk
include TextFileProcessing.gmk
################################################################################
@@ -39,13 +40,14 @@ $(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_tzdb_classes \
$(BUILDTOOLS_OUTPUTDIR)/interim_cldrconverter_classes \
#
$(eval $(call SetupJavaCompilation,BUILD_TOOLS_JDK, \
SETUP := GENERATE_OLDBYTECODE, \
SRC := $(BUILD_TOOLS_SRC_DIRS), \
EXCLUDES := \
build/tools/classlist \
build/tools/deps \
build/tools/docs \
build/tools/jigsaw \
@@ -55,7 +57,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 \
, \
))
@@ -87,4 +88,30 @@ TARGETS += $(COMPILE_DEPEND) $(DEPEND_SERVICE_PROVIDER)
################################################################################
# To be able to call the javascript filter when generating man pages using
# pandoc, we need to create this executable wrapper script.
ifneq ($(PANDOC), )
# PANDOC_FILTER is duplicated for export in ToolsJdk.gmk.
PANDOC_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-manpage-filter
PANDOC_FILTER_SETUP := $(BUILDTOOLS_OUTPUTDIR)/manpages/_pandoc_filter_setup.marker
# Create a usable instance of the wrapper script that calls the pandoc filter
# (which is written in javascript).
$(eval $(call SetupTextFileProcessing, CREATE_PANDOC_FILTER, \
SOURCE_FILES := $(TOPDIR)/make/scripts/pandoc-manpage-filter.sh.template, \
OUTPUT_FILE := $(PANDOC_FILTER), \
REPLACEMENTS := \
@@BOOT_JDK@@ => $(BOOT_JDK) ; \
@@TOPDIR@@ => $(TOPDIR) ; \
@@JJS_FLAGS@@ => $(addprefix -J, $(JAVA_FLAGS_SMALL)), \
))
# Created script must be made executable
$(PANDOC_FILTER_SETUP): $(CREATE_PANDOC_FILTER)
$(CHMOD) a+rx $(PANDOC_FILTER)
$(TOUCH) $@
TARGETS += $(PANDOC_FILTER_SETUP)
endif
all: $(TARGETS)

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,31 +35,31 @@ 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 ($(call isTargetOs, windows), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
TO_BIN_FILTER := %$(SHARED_LIBRARY_SUFFIX) %.diz %.pdb %.map
$(eval $(call SetupCopyFiles, COPY_LIBS_TO_BIN, \
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

@@ -0,0 +1,52 @@
#
# 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
# 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
##########################################################################################
### CLDRConverter needs the JRE time zone names from the java.base source.
define cldrconverter_copytznames
$(call MakeTargetDir)
$(RM) '$@'
$(SED) -e "s/package sun.util.resources/package build.tools.cldrconverter/" \
-e "s/extends TimeZoneNamesBundle//" \
-e "s/protected final/static final/" \
< $(<) > $@
endef
$(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: $(COPY_INTERIM_CLDRCONVERTER)

View File

@@ -1,50 +0,0 @@
#
# Copyright (c) 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
# 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
##########################################################################################
### TZDB tool needs files from java.time.zone package
define tzdb_copyfiles
$(call MakeTargetDir)
$(RM) '$@'
$(SED) -e "s/package java.time.zone/package build.tools.tzdb/" \
< $(<) > $@
endef
$(eval $(call SetupCopyFiles,COPY_INTERIM_TZDB, \
SRC := $(TOPDIR)/src/java.base/share/classes/java/time/zone, \
DEST := $(BUILDTOOLS_OUTPUTDIR)/interim_tzdb_classes/build/tools/tzdb, \
FILES := ZoneRules.java ZoneOffsetTransition.java ZoneOffsetTransitionRule.java Ser.java, \
MACRO := tzdb_copyfiles))
##########################################################################################
all: $(COPY_INTERIM_TZDB)

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,9 +39,9 @@ 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)"
$(call LogInfo, Copying java modules to buildjdk: $(MODULES_TO_COPY))
$(RM) -r $(BUILDJDK_OUTPUTDIR)/jdk/modules
$(MKDIR) -p $(BUILDJDK_OUTPUTDIR)/jdk/modules
$(foreach m, $(MODULES_TO_COPY), \
@@ -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)
@@ -165,7 +118,7 @@ ifeq ($(MODULE), java.base)
endif
endif
else # not java.base
ifeq ($(call isTargetOs, windows), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
# Only java.base needs to include the MSVC*_DLLs. Make sure no other module
# tries to include them (typically imported ones).
ifneq ($(MSVCR_DLL), )
@@ -173,11 +126,6 @@ else # not java.base
JMOD_FLAGS += --exclude '$(notdir $(MSVCR_DLL))'
endif
endif
ifneq ($(VCRUNTIME_1_DLL), )
ifneq ($(wildcard $(LIBS_DIR)/$(notdir $(VCRUNTIME_1_DLL))), )
JMOD_FLAGS += --exclude '$(notdir $(VCRUNTIME_1_DLL))'
endif
endif
ifneq ($(MSVCP_DLL), )
ifneq ($(wildcard $(LIBS_DIR)/$(notdir $(MSVCP_DLL))), )
JMOD_FLAGS += --exclude '$(notdir $(MSVCP_DLL))'
@@ -197,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
@@ -206,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

@@ -61,11 +61,11 @@ MODULES_SOURCE_PATH := $(call PathList, $(call GetModuleSrcPath) \
$(SUPPORT_OUTPUTDIR)/rmic/* $(TOPDIR)/src/*/share/doc/stub)
# URLs
JAVADOC_BASE_URL := http://www.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&amp;id=homepage
BUG_SUBMIT_URL := http://bugreport.java.com/bugreport/
JAVADOC_BASE_URL := https://docs.oracle.com/pls/topic/lookup?ctx=javase$(VERSION_NUMBER)&amp;id=homepage
BUG_SUBMIT_URL := https://bugreport.java.com/bugreport/
COPYRIGHT_URL := {@docroot}/../legal/copyright.html
LICENSE_URL := http://www.oracle.com/technetwork/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
REDISTRIBUTION_URL := http://www.oracle.com/technetwork/java/redist-137594.html
LICENSE_URL := https://www.oracle.com/technetwork/java/javase/terms/license/java$(VERSION_NUMBER)speclicense.html
REDISTRIBUTION_URL := https://www.oracle.com/technetwork/java/redist-137594.html
# In order to get a specific ordering it's necessary to specify the total
# ordering of tags as the tags are otherwise ordered in order of definition.
@@ -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
@@ -220,7 +228,7 @@ define create_overview_file
<blockquote><dl> \
#
$1_OVERVIEW_TEXT += $$(foreach g, $$($1_GROUPS), \
<dt style="margin-top: 8px;"><a href="\#$$g">$$($$g_GROUP_NAME)</a></dt> \
<dt style="margin-top: 8px;">$$($$g_GROUP_NAME)</dt> \
<dd style="margin-top: 8px;">$$($$g_GROUP_DESCRIPTION)</dd> \
)
$1_OVERVIEW_TEXT += \
@@ -324,7 +332,7 @@ define SetupApiDocsGenerationBody
$1_JAVADOC_CMD := $$(JAVA) -Djava.awt.headless=true $$($1_JAVA_ARGS) \
$$(NEW_JAVADOC)
else
$1_OPTIONS += $$(addprefix -J, $$($1_JAVA_ARGS))
$1_OPTIONS += $$(addprefix -J, $$($1_JAVA_ARGS))
endif
$1_VARDEPS := $$($1_JAVA_ARGS) $$($1_OPTIONS) $$(MODULES_SOURCE_PATH) \
@@ -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
@@ -458,7 +466,7 @@ $(eval $(call SetupApiDocsGeneration, JAVASE_API, \
# Setup generation of the reference Java SE API documentation (javadoc + modulegraph)
# The reference javadoc is just the same as javase, but using the BootJDK javadoc
# and a stable set of javadoc options. Typically it is used for generating
# and a stable set of javadoc options. Typically it is used for generating
# diffs between the reference javadoc and a javadoc bundle of a specific build
# generated in the same way.
@@ -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)), \
$(eval $m_$d_NAME := CONVERT_MARKDOWN_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
$(if $(filter %.md, $(call CacheFind, $d)), \
$(eval $m_$d_NAME := SPECS_TO_HTML_$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), \
)) \
@@ -538,6 +553,28 @@ ifeq ($(ENABLE_FULL_DOCS), true)
) \
) \
)
# For all markdown files in $module/share/man directories, convert them to
# html.
$(foreach m, $(ALL_MODULES), \
$(eval MAN_$m := $(call FindModuleManDirs, $m)) \
$(foreach d, $(MAN_$m), \
$(if $(filter %.md, $(call CacheFind, $d)), \
$(eval $m_$d_NAME := MAN_TO_HTML_$m_$(strip $(call RelativePath, $d, $(TOPDIR)))) \
$(eval $(call SetupProcessMarkdown, $($m_$d_NAME), \
SRC := $d, \
FILES := $(filter %.md, $(call CacheFind, $d)), \
DEST := $(DOCS_OUTPUTDIR)/specs/man, \
CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
REPLACEMENTS := @@VERSION_SHORT@@ => $(VERSION_SHORT), \
)) \
$(eval JDK_SPECS_TARGETS += $($($m_$d_NAME))) \
) \
) \
)
# The html generated from markdown also needs the css file
JDK_SPECS_TARGETS += $(COPY_GLOBAL_RESOURCES)
endif
# Special treatment for generated documentation

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
@@ -31,15 +31,17 @@ default: all
include $(SPEC)
include MakeBase.gmk
include JarArchive.gmk
include SetupJavaCompilers.gmk
################################################################################
# Create a jar with our generator class. Using a jar is intentional since it
# will load more classes
$(eval $(call SetupJarArchive, CLASSLIST_JAR, \
SRCS := $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes, \
$(eval $(call SetupJavaCompilation, CLASSLIST_JAR, \
SETUP := GENERATE_JDKBYTECODE, \
SRC := $(TOPDIR)/make/jdk/src/classes, \
INCLUDES := build/tools/classlist, \
BIN := $(BUILDTOOLS_OUTPUTDIR)/classlist_classes, \
JAR := $(SUPPORT_OUTPUTDIR)/classlist.jar, \
))
@@ -57,7 +59,7 @@ ifeq ($(EXTERNAL_BUILDJDK), true)
INTERIM_IMAGE_DIR := $(BUILD_JDK)
endif
$(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST_JAR)
$(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
$(call MakeDir, $(LINK_OPT_DIR))
$(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $@))
$(call LogInfo, Generating $(patsubst $(OUTPUTDIR)/%, %, $(JLI_TRACE_FILE)))
@@ -72,7 +74,7 @@ $(CLASSLIST_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST
# dependencies, make will correctly rebuild both jli trace and classlist
# incrementally using the single recipe above.
$(CLASSLIST_FILE): $(JLI_TRACE_FILE)
$(JLI_TRACE_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXECUTABLE_SUFFIX) $(CLASSLIST_JAR)
$(JLI_TRACE_FILE): $(INTERIM_IMAGE_DIR)/bin/java$(EXE_SUFFIX) $(CLASSLIST_JAR)
TARGETS += $(CLASSLIST_FILE) $(JLI_TRACE_FILE)
@@ -84,17 +86,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

@@ -35,18 +35,18 @@ SPEC_DOTFILES_DIR := $(GENGRAPHS_DIR)/spec-dotfiles
TOOLS_MODULE_SRCDIR := $(TOPDIR)/make/jdk/src/classes/build/tools/jigsaw
$(GENGRAPHS_DIR)/jdk.dot: $(BUILD_JIGSAW_TOOLS)
$(MKDIR) -p $(@D)
$(call MakeTargetDir)
$(TOOL_GENGRAPHS) --output $(GENGRAPHS_DIR)
$(SPEC_DOTFILES_DIR)/java.se.dot: $(BUILD_JIGSAW_TOOLS)
$(MKDIR) -p $(@D)
$(call MakeTargetDir)
$(TOOL_GENGRAPHS) --spec --output $(SPEC_DOTFILES_DIR)
$(GENGRAPHS_DIR)/technology-summary.html: $(TOOLS_MODULE_SRCDIR)/technology-summary.html
$(install-file)
$(GENGRAPHS_DIR)/module-summary.html: $(BUILD_JIGSAW_TOOLS) $(GENGRAPHS_DIR)/technology-summary.html
$(MKDIR) -p $(@D)
$(call MakeTargetDir)
$(TOOL_MODULESUMMARY) -o $@ --module-path $(IMAGES_OUTPUTDIR)/jmods
all: $(GENGRAPHS_DIR)/jdk.dot $(GENGRAPHS_DIR)/module-summary.html $(SPEC_DOTFILES_DIR)/java.se.dot

View File

@@ -79,11 +79,9 @@ ifneq ($(MOD_FILES), )
$(BUILD_TOOLS_JDK) \
$(MOD_FILES) \
$(call DependOnVariable, ALL_MODULES)
$(MKDIR) -p $(@D)
$(call MakeTargetDir)
$(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

@@ -1,5 +1,5 @@
#
# Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 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
@@ -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)
@@ -55,10 +55,10 @@ help:
$(info $(_) make install # Install the generated images locally)
$(info $(_) make reconfigure # Rerun configure with the same arguments as last time)
$(info $(_) make help # Give some help on using make)
$(info $(_) make test # Run tests, default is all tests (see TEST below))
$(info $(_) make run-test-<test> # Run test, e.g. run-test-tier1)
$(info $(_) make run-test TEST=<t> # Run test(s) given by TEST specification)
$(info $(_) make exploded-run-test TEST=<t> # Run test(s) on the exploded image instead of)
$(info $(_) make check # Run basic testing (currently tier1))
$(info $(_) make test-<test> # Run test, e.g. test-tier1)
$(info $(_) make test TEST=<t> # Run test(s) given by TEST specification)
$(info $(_) make exploded-test TEST=<t> # Run test(s) on the exploded image instead of)
$(info $(_) # the full jdk image)
$(info )
$(info Targets for cleaning)
@@ -99,10 +99,13 @@ help:
$(info $(_) TEST_JOBS=<n> # Run <n> parallel test jobs)
$(info $(_) CONF_CHECK=<method> # What to do if spec file is out of date)
$(info $(_) # method is 'auto', 'ignore' or 'fail' (default))
$(info $(_) make test TEST=<test> # Only run the given test or tests, e.g.)
$(info $(_) # make test TEST="jdk_lang jdk_net")
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness for run-test)
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness for run-test)
$(info $(_) TEST="test1 ..." # Use the given test descriptor(s) for testing, e.g.)
$(info $(_) # make test TEST="jdk_lang gtest:all")
$(info $(_) JTREG="OPT1=x;OPT2=y" # Control the JTREG test harness)
$(info $(_) GTEST="OPT1=x;OPT2=y" # Control the GTEST test harness)
$(info $(_) MICRO="OPT1=x;OPT2=y" # Control the MICRO test harness)
$(info $(_) TEST_OPTS="OPT1=x;..." # Generic control of all test harnesses)
$(info $(_) TEST_VM_OPTS="ARG ..." # Same as setting TEST_OPTS to VM_OPTIONS="ARG ...")
$(info )
$(if $(all_confs), $(info Available configurations in $(build_dir):) $(foreach var,$(all_confs),$(info * $(var))),\
$(info No configurations were found in $(build_dir).) $(info Run 'bash configure' to create a configuration.))

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
@@ -90,150 +90,37 @@ endif
$(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
$(call DependOnVariable, JDK_MODULES_LIST) $(BASE_RELEASE_FILE)
$(ECHO) Creating jdk image
$(call LogWarn, Creating jdk image)
$(RM) -r $(JDK_IMAGE_DIR)
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jdk, \
$(JLINK_TOOL) --add-modules $(JDK_MODULES_LIST) \
$(JLINK_JDK_EXTRA_OPTS) \
--output $(JDK_IMAGE_DIR) \
)
ifeq ($(BUILD_CDS_ARCHIVE), true)
$(call LogWarn, Creating CDS archive for jdk image)
$(JDK_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
endif
$(TOUCH) $@
$(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE): $(JMODS) \
$(call DependOnVariable, JRE_MODULES_LIST) $(BASE_RELEASE_FILE)
$(ECHO) Creating legacy jre image
$(call LogWarn, Creating legacy jre image)
$(RM) -r $(JRE_IMAGE_DIR)
$(call ExecuteWithLog, $(SUPPORT_OUTPUTDIR)/images/jre, \
$(JLINK_TOOL) --add-modules $(JRE_MODULES_LIST) \
$(JLINK_JRE_EXTRA_OPTS) \
--output $(JRE_IMAGE_DIR) \
)
ifeq ($(BUILD_CDS_ARCHIVE), true)
$(call LogWarn, Creating CDS archive for jre image)
$(JRE_IMAGE_DIR)/bin/java -Xshare:dump -Xmx128M -Xms128M $(LOG_INFO)
endif
$(TOUCH) $@
TOOL_JRE_TARGETS := $(JRE_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
TOOL_JDK_TARGETS := $(JDK_IMAGE_DIR)/$(JIMAGE_TARGET_FILE)
################################################################################
# /man dir
#
# All variables in this section are assigned with simple =, without :, to enable
# more selective overriding from the custom version of this file.
#
# Avoid evaluating this whole section on windows for speed and stability
ifneq ($(OPENJDK_TARGET_OS), windows)
ifeq ($(BUILD_MANPAGES), true)
JRE_MAN_PAGES += \
java.1 \
jjs.1 \
keytool.1 \
orbd.1 \
pack200.1 \
rmid.1 \
rmiregistry.1 \
servertool.1 \
unpack200.1
JDK_MAN_PAGES += \
$(JRE_MAN_PAGES) \
idlj.1 \
jar.1 \
jarsigner.1 \
javac.1 \
javadoc.1 \
javap.1 \
jconsole.1 \
jcmd.1 \
jdb.1 \
jdeps.1 \
jinfo.1 \
jmap.1 \
jps.1 \
jrunscript.1 \
jstack.1 \
jstat.1 \
jstatd.1 \
rmic.1 \
serialver.1
# This variable is potentially overridden in the closed makefile.
MAN_SRC_BASEDIR ?= $(TOPDIR)/src
ifeq ($(OPENJDK_TARGET_OS), linux)
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/linux/doc
MAN1_SUBDIR = man
endif
ifeq ($(OPENJDK_TARGET_OS), solaris)
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/solaris/doc
MAN1_SUBDIR = sun/man/man1
endif
ifeq ($(OPENJDK_TARGET_OS), macosx)
MAN_SRC_DIR = $(MAN_SRC_BASEDIR)/bsd/doc
MAN1_SUBDIR = man
endif
$(JRE_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
$(install-file)
$(JDK_IMAGE_DIR)/man/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/%
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
$(install-file)
$(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
$(install-file)
$(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
$(call LogInfo, Copying $(patsubst $(OUTPUTDIR)/%,%,$@))
$(install-file)
ifeq ($(OPENJDK_TARGET_OS), solaris)
$(JRE_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
$(install-file)
$(JDK_IMAGE_DIR)/man/ja/man1/%: $(MAN_SRC_DIR)/$(MAN1_SUBDIR)/ja/%
$(call LogInfo, Converting $(patsubst $(OUTPUTDIR)/%,%,$@))
$(install-file)
endif
ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
$(JRE_IMAGE_DIR)/man/ja:
$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
$(JDK_IMAGE_DIR)/man/ja:
$(call LogInfo, Creating $(patsubst $(OUTPUTDIR)/%,%,$@))
$(CD) $(@D) && $(RM) ja && $(LN) -s ja_JP.UTF-8 ja
endif
ifeq ($(OPENJDK_TARGET_OS), solaris)
JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
$(addprefix $(JRE_IMAGE_DIR)/man/ja/man1/, $(JRE_MAN_PAGES)) \
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JRE_MAN_PAGES))
JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
$(addprefix $(JDK_IMAGE_DIR)/man/ja/man1/, $(JDK_MAN_PAGES)) \
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.PCK/man1/, $(JDK_MAN_PAGES))
endif
ifneq ($(findstring $(OPENJDK_TARGET_OS), linux macosx), )
JRE_MAN_PAGE_LIST = $(addprefix $(JRE_IMAGE_DIR)/man/man1/, $(JRE_MAN_PAGES)) \
$(addprefix $(JRE_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JRE_MAN_PAGES)) \
$(JRE_IMAGE_DIR)/man/ja
JDK_MAN_PAGE_LIST = $(addprefix $(JDK_IMAGE_DIR)/man/man1/, $(JDK_MAN_PAGES)) \
$(addprefix $(JDK_IMAGE_DIR)/man/ja_JP.UTF-8/man1/, $(JDK_MAN_PAGES)) \
$(JDK_IMAGE_DIR)/man/ja
endif
JRE_TARGETS += $(JRE_MAN_PAGE_LIST)
JDK_TARGETS += $(JDK_MAN_PAGE_LIST)
endif # BUILD_MANPAGES
endif # Windows
################################################################################
# src.zip
@@ -255,7 +142,7 @@ ifneq ($(filter jdk, $(MAKECMDGOALS)), )
)
ifeq ($(ZIP_EXTERNAL_DEBUG_SYMBOLS), true)
ifeq ($(call isTargetOs, macosx), true)
ifeq ($(OPENJDK_TARGET_OS), macosx)
DEMO_FILES := $(call not-containing, .dSYM, $(DEMO_FILES))
else
DEMO_FILES := $(filter-out %.debuginfo %.pdb %.map, $(DEMO_FILES))
@@ -276,14 +163,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
@@ -296,12 +190,11 @@ ALL_JDK_MODULES := $(JDK_MODULES)
ALL_JRE_MODULES := $(sort $(JRE_MODULES), $(foreach m, $(JRE_MODULES), \
$(call FindTransitiveDepsForModule, $m)))
ifeq ($(call isTargetOs, windows), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
LIBS_TARGET_SUBDIR := bin
else
LIBS_TARGET_SUBDIR := lib
endif
CMDS_TARGET_SUBDIR := bin
# Param 1 - dir to find debuginfo files in
FindDebuginfoFiles = \
@@ -316,17 +209,14 @@ else
DEBUGINFO_SUFFIXES := .debuginfo .pdb .map
# On Macosx, if debug symbols have not been zipped, find all files inside *.dSYM
# dirs.
ifeq ($(call isTargetOs, macosx), true)
$(call FillFindCache, \
$(SUPPORT_OUTPUTDIR)/modules_libs $(SUPPORT_OUTPUTDIR)/modules_cmds)
ifeq ($(OPENJDK_TARGET_OS), macosx)
$(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 +227,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) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2012, 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
@@ -226,9 +226,6 @@ else # HAS_SPEC=true
# Parse COMPARE_BUILD (for makefile development)
$(eval $(call ParseCompareBuild))
# Setup reproducible build environment
$(eval $(call SetupReproducibleBuild))
# If no LOG= was given on command line, but we have a non-standard default
# value, use that instead and re-parse log level.
ifeq ($(LOG), )
@@ -243,6 +240,11 @@ else # HAS_SPEC=true
override BUILD_LOG_PIPE :=
endif
ifeq ($(filter dist-clean, $(SEQUENTIAL_TARGETS)), dist-clean)
# We can't have a log file if we're about to remove it.
override BUILD_LOG_PIPE :=
endif
ifeq ($(OUTPUT_SYNC_SUPPORTED), true)
OUTPUT_SYNC_FLAG := -O$(OUTPUT_SYNC)
endif
@@ -275,7 +277,7 @@ else # HAS_SPEC=true
else
$(ECHO) "Re-running configure using default settings"
endif
( cd $(CONFIGURE_START_DIR) && PATH="$(ORIGINAL_PATH)" AUTOCONF="$(AUTOCONF)" \
( cd $(OUTPUTDIR) && PATH="$(ORIGINAL_PATH)" \
CUSTOM_ROOT="$(CUSTOM_ROOT)" \
CUSTOM_CONFIG_DIR="$(CUSTOM_CONFIG_DIR)" \
$(BASH) $(TOPDIR)/configure $(CONFIGURE_COMMAND_LINE) )

View File

@@ -50,7 +50,7 @@ ifeq ($(HAS_SPEC),)
# Make control variables, handled by Init.gmk
INIT_CONTROL_VARIABLES += LOG CONF CONF_NAME SPEC JOBS TEST_JOBS CONF_CHECK \
COMPARE_BUILD JTREG GTEST TEST_OPTS TEST_VM_OPTS
COMPARE_BUILD JTREG GTEST MICRO TEST_OPTS TEST_VM_OPTS
# All known make control variables
MAKE_CONTROL_VARIABLES := $(INIT_CONTROL_VARIABLES) TEST JDK_FILTER
@@ -264,9 +264,13 @@ ifeq ($(HAS_SPEC),)
endif
endif
# The --no-print-directory is needed to make the call from
# FindTest.gmk to Test.gmk work with LOG=debug/trace. See
# JDK-8213736
$$(main_targets_file):
@( cd $$(topdir) && \
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R -f $$(topdir)/make/Main.gmk \
$$(MAKE) $$(MAKE_LOG_FLAGS) -r -R --no-print-directory \
-f $$(topdir)/make/Main.gmk \
-I $$(topdir)/make/common SPEC=$(strip $2) NO_RECIPES=true \
$$(MAKE_LOG_VARS) \
create-main-targets-include )
@@ -303,15 +307,6 @@ else # $(HAS_SPEC)=true
topdir=$(TOPDIR)
endif
# Setup the build environment to match the requested specification on
# level of reproducible builds
define SetupReproducibleBuild
ifeq ($$(SOURCE_DATE), updated)
SOURCE_DATE := $$(shell $$(DATE) +"%s")
endif
export SOURCE_DATE_EPOCH := $$(SOURCE_DATE)
endef
# Parse COMPARE_BUILD into COMPARE_BUILD_*
# Syntax: COMPARE_BUILD=CONF=<configure options>:PATCH=<patch file>:
# MAKE=<make targets>:COMP_OPTS=<compare script options>:
@@ -430,8 +425,8 @@ else # $(HAS_SPEC)=true
$(if $(filter all, $(LOG_REPORT)), \
$(GREP) -v -e "^Note: including file:" < $(logfile) || true $(NEWLINE) \
, \
($(GREP) -v -e "^Note: including file:" < $(logfile) || true) | $(HEAD) -n 15 $(NEWLINE) \
if test `$(WC) -l < $(logfile)` -gt 15; then \
($(GREP) -v -e "^Note: including file:" < $(logfile) || true) | $(HEAD) -n 12 $(NEWLINE) \
if test `$(WC) -l < $(logfile)` -gt 12; then \
$(ECHO) " ... (rest of output omitted)" ; \
fi $(NEWLINE) \
) \
@@ -488,7 +483,7 @@ else # $(HAS_SPEC)=true
$(TOUCH) $(SJAVAC_SERVER_DIR)/server.port.stop; true
endef
ifeq ($(call isBuildOs, windows), true)
ifeq ($(OPENJDK_BUILD_OS), windows)
# On windows we need to synchronize with the javac server to be able to
# move or remove the build output directory. Since we have no proper
# synchronization process, wait for a while and hope it helps. This is only

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 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
@@ -32,7 +32,7 @@ include Modules.gmk
################################################################################
# Use this file inside the image as target for make rule
JIMAGE_TARGET_FILE := bin/java$(EXECUTABLE_SUFFIX)
JIMAGE_TARGET_FILE := bin/java$(EXE_SUFFIX)
INTERIM_MODULES_LIST := $(call CommaList, $(INTERIM_IMAGE_MODULES))

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
@@ -30,7 +30,7 @@ include TextFileProcessing.gmk
default: bundles
# Only macosx has bundles defined.
ifeq ($(call isTargetOs, macosx), true)
ifeq ($(OPENJDK_TARGET_OS), macosx)
bundles: jre-bundle jdk-bundle
@@ -38,8 +38,11 @@ ifeq ($(call isTargetOs, macosx), true)
MACOSX_PLIST_SRC := $(TOPDIR)/make/data/bundle
BUNDLE_ID := $(MACOSX_BUNDLE_ID_BASE).$(VERSION_SHORT)
BUNDLE_NAME := $(MACOSX_BUNDLE_NAME_BASE) $(VERSION_SHORT)
BUNDLE_INFO := $(MACOSX_BUNDLE_NAME_BASE) $(VERSION_STRING)
BUNDLE_PLATFORM_VERSION := $(VERSION_FEATURE).$(VERSION_INTERIM)
BUNDLE_VERSION := $(VERSION_NUMBER)
ifeq ($(COMPANY_NAME), N/A)
BUNDLE_VENDOR := UNDEFINED
else
@@ -49,64 +52,58 @@ ifeq ($(call isTargetOs, macosx), true)
$(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, \
FILES := $(JDK_IMAGE_DIR)/lib/jli/libjli.dylib, \
DEST := $(JDK_MACOSX_CONTENTS_DIR)/MacOS, \
))
$(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
$(call MakeTargetDir)
$(RM) $@
$(LN) -s ../Home/lib/libjli.dylib $@
$(eval $(call SetupCopyFiles, COPY_LIBJLI_JRE, \
FILES := $(JRE_IMAGE_DIR)/lib/jli/libjli.dylib, \
DEST := $(JRE_MACOSX_CONTENTS_DIR)/MacOS, \
))
$(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib:
$(call LogInfo, Creating link $(patsubst $(OUTPUTDIR)/%,%,$@))
$(call MakeTargetDir)
$(RM) $@
$(LN) -s ../Home/lib/libjli.dylib $@
$(eval $(call SetupTextFileProcessing, BUILD_JDK_PLIST, \
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JDK-Info.plist, \
OUTPUT_FILE := $(JDK_MACOSX_CONTENTS_DIR)/Info.plist, \
REPLACEMENTS := \
@@ID@@ => $(MACOSX_BUNDLE_ID_BASE).jdk ; \
@@ID@@ => $(BUNDLE_ID).jdk ; \
@@NAME@@ => $(BUNDLE_NAME) ; \
@@INFO@@ => $(BUNDLE_INFO) ; \
@@VERSION@@ => $(VERSION_NUMBER) ; \
@@BUILD_VERSION@@ => $(MACOSX_BUNDLE_BUILD_VERSION) ; \
@@VENDOR@@ => $(BUNDLE_VENDOR) ; \
@@MACOSX_VERSION_MIN@@ => $(MACOSX_VERSION_MIN) , \
@@PLATFORM_VERSION@@ => $(BUNDLE_PLATFORM_VERSION) ; \
@@VERSION@@ => $(BUNDLE_VERSION) ; \
@@VENDOR@@ => $(BUNDLE_VENDOR) , \
))
$(eval $(call SetupTextFileProcessing, BUILD_JRE_PLIST, \
SOURCE_FILES := $(MACOSX_PLIST_SRC)/JRE-Info.plist, \
OUTPUT_FILE := $(JRE_MACOSX_CONTENTS_DIR)/Info.plist, \
REPLACEMENTS := \
@@ID@@ => $(MACOSX_BUNDLE_ID_BASE).jre ; \
@@ID@@ => $(BUNDLE_ID).jre ; \
@@NAME@@ => $(BUNDLE_NAME) ; \
@@INFO@@ => $(BUNDLE_INFO) ; \
@@VERSION@@ => $(VERSION_NUMBER) ; \
@@BUILD_VERSION@@ => $(BUNDLE_BUILD_VERSION) ; \
@@VENDOR@@ => $(BUNDLE_VENDOR) ; \
@@MACOSX_VERSION_MIN@@ => $(MACOSX_VERSION_MIN) , \
@@PLATFORM_VERSION@@ => $(BUNDLE_PLATFORM_VERSION) ; \
@@VERSION@@ => $(BUNDLE_VERSION) ; \
@@VENDOR@@ => $(BUNDLE_VENDOR) , \
))
$(SUPPORT_OUTPUTDIR)/images/_jdk_bundle_attribute_set: $(COPY_JDK_IMAGE)
jdk-bundle: $(COPY_JDK_IMAGE) $(JDK_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib \
$(BUILD_JDK_PLIST)
$(SETFILE) -a B $(dir $(JDK_MACOSX_CONTENTS_DIR))
$(TOUCH) $@
$(SUPPORT_OUTPUTDIR)/images/_jre_bundle_attribute_set: $(COPY_JRE_IMAGE)
jre-bundle: $(COPY_JRE_IMAGE) $(JRE_MACOSX_CONTENTS_DIR)/MacOS/libjli.dylib \
$(BUILD_JRE_PLIST)
$(SETFILE) -a B $(dir $(JRE_MACOSX_CONTENTS_DIR))
$(TOUCH) $@
jdk-bundle: $(COPY_JDK_IMAGE) $(COPY_LIBJLI_JDK) \
$(BUILD_JDK_PLIST) $(SUPPORT_OUTPUTDIR)/images/_jdk_bundle_attribute_set
jre-bundle: $(COPY_JRE_IMAGE) $(COPY_LIBJLI_JRE) \
$(BUILD_JRE_PLIST) $(SUPPORT_OUTPUTDIR)/images/_jre_bundle_attribute_set
else # Not macosx

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,8 +78,8 @@ ifneq ($(CREATING_BUILDJDK), true)
interim-rmic:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileInterimRmic.gmk)
interim-tzdb:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimTZDB.gmk)
interim-cldrconverter:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CopyInterimCLDRConverter.gmk)
buildtools-jdk:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f CompileToolsJdk.gmk)
@@ -92,7 +92,7 @@ ifneq ($(CREATING_BUILDJDK), true)
endif
ALL_TARGETS += buildtools-langtools interim-langtools \
interim-rmic interim-tzdb buildtools-jdk buildtools-modules \
interim-rmic interim-cldrconverter buildtools-jdk buildtools-modules \
buildtools-hotspot
################################################################################
@@ -136,7 +136,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 +221,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, \
@@ -302,27 +287,6 @@ compile-commands compile-commands-hotspot:
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 +359,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 +371,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
@@ -515,10 +473,10 @@ ALL_TARGETS += $(INTERIM_JMOD_TARGETS) interim-image generate-link-opt-data
#
define DeclareRunTestRecipe
run-test-$1:
test-$1:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$1")
exploded-run-test-$1:
exploded-test-$1:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
TEST="$1" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
@@ -526,13 +484,16 @@ endef
# ALL_NAMED_TESTS is defined in FindTests.gmk
$(foreach t, $(ALL_NAMED_TESTS), $(eval $(call DeclareRunTestRecipe,$t)))
ALL_TEST_TARGETS := $(addprefix run-test-, $(ALL_NAMED_TESTS))
ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-run-test-, $(ALL_NAMED_TESTS))
ALL_TEST_TARGETS := $(addprefix test-, $(ALL_NAMED_TESTS))
# We only support the "exploded-test-gtest" shortcut
ALL_EXPLODED_TESTS := gtest
ALL_EXPLODED_TEST_TARGETS := $(addprefix exploded-test-, $(ALL_EXPLODED_TESTS))
ALL_TARGETS += $(ALL_TEST_TARGETS) $(ALL_EXPLODED_TEST_TARGETS)
################################################################################
# Build tests
# Build tests and microbenchmarks
#
prepare-test-image:
@@ -554,18 +515,6 @@ test-image-jdk-jtreg-native:
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregNativeJdk.gmk \
test-image-jdk-jtreg-native)
# Native files needed by the testlib
build-test-lib-native:
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f BuildTestLibNative.gmk \
build-test-lib-native)
test-image-lib-native:
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f BuildTestLibNative.gmk \
test-image-lib-native)
# Native files needed when testing the testlib itself
# ... build-test-libtest-jtreg-native etc not yet backported
build-test-hotspot-jtreg-graal:
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregGraalUnit.gmk \
build-test-hotspot-jtreg-graal)
@@ -574,13 +523,6 @@ test-image-hotspot-jtreg-graal:
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f JtregGraalUnit.gmk \
test-image-hotspot-jtreg-graal)
run-test:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$(TEST)")
exploded-run-test:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
ifeq ($(BUILD_GTEST), true)
test-image-hotspot-gtest:
+($(CD) $(TOPDIR)/make/hotspot/test && $(MAKE) $(MAKE_ARGS) -f GtestImage.gmk)
@@ -595,56 +537,33 @@ ifeq ($(BUILD_FAILURE_HANDLER), true)
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
-f BuildFailureHandler.gmk build)
# Runs the tests for the failure handler jtreg extension
test-failure-handler:
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
-f BuildFailureHandler.gmk test)
# Copies the failure handler jtreg extension into the test image
test-image-failure-handler:
+($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) \
-f BuildFailureHandler.gmk images)
endif
build-microbenchmark:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f test/BuildMicrobenchmark.gmk)
ALL_TARGETS += prepare-test-image build-test-hotspot-jtreg-native \
test-image-hotspot-jtreg-native build-test-jdk-jtreg-native \
test-image-jdk-jtreg-native build-test-lib-native test-image-lib-native \
build-test-lib build-test-failure-handler \
test-image-jdk-jtreg-native build-test-lib build-test-failure-handler \
test-failure-handler test-image-failure-handler test-image-hotspot-gtest \
test-image-hotspot-jtreg-graal build-test-hotspot-jtreg-graal \
run-test exploded-run-test
build-microbenchmark
################################################################################
# Run tests
# Run tests specified by $(TEST), or the default test set.
test:
$(call RunTests, $(TEST), $(JDK_IMAGE_DIR))
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test TEST="$(TEST)")
test-hotspot-jtreg:
$(call RunTests, "hotspot_all", $(JDK_IMAGE_DIR))
exploded-test:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f RunTests.gmk run-test \
TEST="$(TEST)" JDK_IMAGE_DIR=$(JDK_OUTPUTDIR))
test-hotspot-jtreg-native:
$(call RunTests, "hotspot_native_sanity", $(JDK_IMAGE_DIR))
test-hotspot-internal:
$(call RunTests, "hotspot_internal", $(JDK_OUTPUTDIR))
test-hotspot-gtest:
$(call RunTests, "hotspot_gtest", $(JDK_OUTPUTDIR))
test-jdk-jtreg-native:
$(call RunTests, "jdk_native_sanity", $(JDK_IMAGE_DIR))
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
ALL_TARGETS += test exploded-test
################################################################################
# Bundles
@@ -652,20 +571,13 @@ ALL_TARGETS += test test-hotspot-jtreg test-hotspot-jtreg-native \
product-bundles:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk product-bundles)
legacy-bundles:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk legacy-bundles)
test-bundles:
+($(CD) $(TOPDIR)/make && $(MAKE) $(MAKE_ARGS) -f Bundles.gmk 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 test-bundles docs-bundles
################################################################################
# Install targets
@@ -698,7 +610,7 @@ else
interim-langtools: $(INTERIM_LANGTOOLS_GENSRC_TARGETS)
buildtools-jdk: interim-langtools interim-tzdb
buildtools-jdk: interim-langtools interim-cldrconverter
buildtools-hotspot: interim-langtools
@@ -720,7 +632,7 @@ else
# Declare dependencies between hotspot-<variant>* targets
$(foreach v, $(JVM_VARIANTS), \
$(eval hotspot-$v-gensrc: java.base-copy) \
$(eval hotspot-$v: hotspot-$v-gensrc hotspot-$v-libs) \
$(eval hotspot-$v-libs: hotspot-$v-gensrc java.base-copy) \
)
@@ -730,14 +642,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)
@@ -842,20 +750,9 @@ else
$(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
@@ -896,6 +793,8 @@ else
jrtfs-jar: interim-langtools
build-microbenchmark: interim-langtools exploded-image
ifeq ($(ENABLE_GENERATE_CLASSLIST), true)
ifeq ($(CREATE_BUILDJDK), true)
# If creating a buildjdk, the interim image needs to be based on that.
@@ -918,10 +817,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
@@ -956,13 +851,17 @@ else
docs-zip: docs-jdk
# Tests
test: jdk-image test-image
run-test: jdk-image test-image
exploded-run-test: exploded-image test-image
exploded-test: exploded-image test-image
test-make: clean-test-make compile-commands
test-make-compile-commands: compile-commands
# Declare dependency for all generated test targets
$(foreach t, $(ALL_TEST_TARGETS), $(eval $t: jdk-image test-image))
$(foreach t, $(filter-out test-make%, $(ALL_TEST_TARGETS)), $(eval $t: jdk-image test-image))
$(foreach t, $(ALL_EXPLODED_TEST_TARGETS), $(eval $t: exploded-image test-image))
create-buildjdk-copy: jdk.jlink-java java.base-gendata \
@@ -972,16 +871,10 @@ else
interim-image: $(INTERIM_JMOD_TARGETS)
test-make: clean-test-make
test-compile-commands: compile-commands
build-test-lib: exploded-image-optimize
build-test-failure-handler: interim-langtools
test-failure-handler: build-test-failure-handler
test-image-failure-handler: build-test-failure-handler
build-test-hotspot-jtreg-native: buildtools-jdk \
@@ -989,38 +882,24 @@ else
build-test-jdk-jtreg-native: buildtools-jdk java.base-libs
build-test-lib-native: buildtools-jdk java.base-libs
build-test-hotspot-jtreg-graal: exploded-image-optimize
test-image-hotspot-jtreg-native: build-test-hotspot-jtreg-native
test-image-jdk-jtreg-native: build-test-jdk-jtreg-native
test-image-lib-native: build-test-lib-native
test-image-hotspot-jtreg-graal: build-test-hotspot-jtreg-graal
test-image-hotspot-gtest: hotspot
test-hotspot-internal: exploded-image
test-hotspot-jtreg: jdk-image test-image
test-hotspot-gtest: exploded-image test-image-hotspot-gtest
install: product-images
product-bundles: product-images
legacy-bundles: legacy-images
test-bundles: test-image
docs-bundles: docs-image
static-libs-bundles: static-libs-image
generate-summary: jmods buildtools-modules
update-x11wrappers: java.base-copy buildtools-jdk
@@ -1035,10 +914,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.
@@ -1059,8 +934,6 @@ rmic: $(RMIC_TARGETS)
libs: $(LIBS_TARGETS)
static-libs: $(STATIC_LIBS_TARGETS)
launchers: $(LAUNCHER_TARGETS)
jmods: $(JMOD_TARGETS)
@@ -1123,9 +996,6 @@ mac-bundles: mac-jdk-bundle
# (and possibly other, more specific versions)
product-images: jdk-image symbols-image exploded-image
# This target builds the legacy images, e.g. the legacy JRE image
legacy-images: legacy-jre-image
# zip-security is actually a bundle, but for now it needs to be considered
# an image until this can be cleaned up properly.
product-images: zip-security
@@ -1140,10 +1010,8 @@ ifneq ($(CREATE_BUILDJDK), true)
endif
endif
ifeq ($(call isTargetOs, macosx), true)
ifeq ($(OPENJDK_TARGET_OS), macosx)
product-images: mac-jdk-bundle
legacy-images: mac-legacy-jre-bundle
endif
# This target builds the documentation image
@@ -1158,24 +1026,27 @@ endif
# This target builds the test image
test-image: prepare-test-image \
test-image-jdk-jtreg-native test-image-lib-native \
test-image-failure-handler \
test-image-jdk-jtreg-native test-image-failure-handler \
test-image-demos-jdk $(JVM_TEST_IMAGE_TARGETS)
ifneq ($(JMH_CORE_JAR), )
test-image: build-microbenchmark
endif
################################################################################
# all-images builds all our deliverables as images.
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 \
docs-javase docs-reference docs-javadoc mac-bundles product-images legacy-images \
docs-javase docs-reference docs-javadoc mac-bundles product-images \
docs-image test-image all-images \
all-bundles
@@ -1193,6 +1064,28 @@ all: all-images
ALL_TARGETS += default jdk images docs bundles all
# Aliases used for running tests.
# Let "run-test" be an alias for "test"
$(foreach t, $(ALL_NAMED_TESTS), $(eval run-test-$t: test-$t))
RUN_TEST_TARGETS := $(addprefix run-test-, $(ALL_NAMED_TESTS))
run-test: test
exploded-run-test: exploded-test
# "make check" is a common idiom for running basic testing
check: test-tier1
# Keep some old names as aliases
test-hotspot-jtreg: test-hotspot_all
test-hotspot-jtreg-native: test-hotspot_native_sanity
test-hotspot-gtest: exploded-test-gtest
test-jdk-jtreg-native: test-jdk_native_sanity
ALL_TARGETS += $(RUN_TEST_TARGETS) run-test exploded-run-test check \
test-hotspot-jtreg test-hotspot-jtreg-native test-hotspot-gtest \
test-jdk-jtreg-native
################################################################################
################################################################################
#
@@ -1224,9 +1117,6 @@ clean: $(CLEAN_DIR_TARGETS)
clean-docs:
$(call CleanDocs)
clean-compile-commands:
$(call CleanMakeSupportDir,compile-commands)
$(CLEAN_DIR_TARGETS):
$(call CleanDir,$(patsubst clean-%, %, $@))
@@ -1257,7 +1147,8 @@ clean-test: clean-test-results clean-test-support
# directory was created by configure and now becomes empty, remove it as well.
dist-clean: clean
($(CD) $(OUTPUTDIR) && \
$(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide)
$(RM) -r *spec.gmk $(CONFIGURESUPPORT_OUTPUTDIR) Makefile compare.sh ide \
configure.log* build.log*)
$(if $(filter $(CONF_NAME),$(notdir $(OUTPUTDIR))), \
if test "x`$(LS) $(OUTPUTDIR)`" != x; then \
$(ECHO) "Warning: Not removing non-empty configuration directory for '$(CONF_NAME)'" ; \
@@ -1268,9 +1159,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

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2017, 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
@@ -30,17 +30,6 @@
ifndef _MAINSUPPORT_GMK
_MAINSUPPORT_GMK := 1
# Run the tests specified by $1, with PRODUCT_HOME specified by $2
# JT_JAVA is picked up by the jtreg launcher and used to run Jtreg itself.
define RunTests
($(CD) $(TOPDIR)/test && $(MAKE) $(MAKE_ARGS) -j1 -k MAKEFLAGS= \
JT_HOME=$(JT_HOME) PRODUCT_HOME=$(strip $2) \
TEST_IMAGE_DIR=$(TEST_IMAGE_DIR) \
ALT_OUTPUTDIR=$(OUTPUTDIR) TEST_JOBS=$(TEST_JOBS) \
JT_JAVA=$(BOOT_JDK) JIB_JAR=$(JIB_JAR) \
JOBS=$(JOBS) $1) || true
endef
define CleanDocs
@$(PRINTF) "Cleaning docs ..."
@$(PRINTF) "\n" $(LOG_DEBUG)
@@ -65,13 +54,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 +126,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 +135,7 @@ define DeclareRecipeForModuleMakefile
$$(addprefix -I, $$(PHASE_MAKEDIRS) \
$$(addsuffix /$$($1_MAKE_SUBDIR), $$(PHASE_MAKEDIRS)) \
) \
MODULE=$2 $$($1_EXTRA_ARGS) \
MODULE=$2 \
)
endif
@@ -193,13 +175,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

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2016, 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
@@ -42,7 +42,7 @@ TARGETS :=
include $(MAKEFILE_PREFIX)-$(MODULE).gmk
# Setup copy rules from the modules directories to the jdk image directory.
ifeq ($(call isTargetOs, windows), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
TO_BIN_FILTER := %$(SHARED_LIBRARY_SUFFIX) %.diz %.pdb %.map
$(eval $(call SetupCopyFiles, COPY_LIBS_TO_BIN, \
@@ -93,6 +93,12 @@ $(eval $(call SetupCopyFiles, COPY_CMDS, \
FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_cmds/$(MODULE)/%, $(TARGETS)), \
))
$(eval $(call SetupCopyFiles, COPY_MAN, \
SRC := $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE), \
DEST := $(JDK_OUTPUTDIR)/man, \
FILES := $(filter $(SUPPORT_OUTPUTDIR)/modules_man/$(MODULE)/%, $(TARGETS)), \
))
$(eval $(call SetupCopyFiles, COPY_CONF, \
SRC := $(SUPPORT_OUTPUTDIR)/modules_conf/$(MODULE), \
DEST := $(JDK_OUTPUTDIR)/conf, \
@@ -104,5 +110,5 @@ 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)
$(COPY_INCLUDE) $(COPY_CMDS) $(COPY_MAN) $(COPY_CONF) $(LINK_LIBS_TO_LIB)
endif

View File

@@ -51,10 +51,8 @@ define create-info-file
$(if $(VENDOR_VERSION_STRING), \
$(call info-file-item, "IMPLEMENTOR_VERSION", "$(VENDOR_VERSION_STRING)"))
$(call info-file-item, "JAVA_VERSION_DATE", "$(VERSION_DATE)")
$(call info-file-item, "JAVA_RUNTIME_VERSION", "$(VERSION_STRING)")
$(call info-file-item, "OS_NAME", "$(RELEASE_FILE_OS_NAME)")
$(call info-file-item, "OS_ARCH", "$(RELEASE_FILE_OS_ARCH)")
$(call info-file-item, "LIBC", "$(RELEASE_FILE_LIBC)")
endef
# Param 1 - The file containing the MODULES list

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2016, 2017, 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
@@ -45,8 +45,8 @@ ifneq ($(TEST_VM_OPTS), )
endif
$(eval $(call ParseKeywordVariable, TEST_OPTS, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR, \
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
SINGLE_KEYWORDS := JOBS TIMEOUT_FACTOR AOT_MODULES, \
STRING_KEYWORDS := VM_OPTIONS JAVA_OPTIONS, \
))
# Helper function to propagate TEST_OPTS values.
@@ -60,13 +60,18 @@ define SetTestOpt
endif
endef
# Setup _NT_SYMBOL_PATH on Windows, which points to our pdb files.
ifeq ($(call isTargetOs, windows), true)
# Setup _NT_SYMBOL_PATH on Windows
ifeq ($(OPENJDK_TARGET_OS), windows)
ifndef _NT_SYMBOL_PATH
SYMBOL_PATH := $(call PathList, $(sort $(patsubst %/, %, $(dir $(wildcard \
$(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb))))))
export _NT_SYMBOL_PATH := $(subst \\,\, $(call FixPath, \
$(subst $(DQUOTE),, $(SYMBOL_PATH))))
# Can't use PathList here as it adds quotes around the value.
_NT_SYMBOL_PATH := \
$(subst $(SPACE),;,$(strip \
$(foreach p, $(sort $(dir $(wildcard \
$(addprefix $(SYMBOLS_IMAGE_DIR)/bin/, *.pdb */*.pdb)))), \
$(call FixPath, $p) \
) \
))
export _NT_SYMBOL_PATH
$(info _NT_SYMBOL_PATH=$(_NT_SYMBOL_PATH))
endif
endif
@@ -99,10 +104,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)))
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.
@@ -126,14 +129,17 @@ 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
ifeq ($(OPENJDK_TARGET_OS), windows)
$1_LD := $$(addsuffix $$(EXE_SUFFIX), $$(filter-out $$(FIXPATH), $$(LD)))
else
$1_LD := $$(LD)
endif
$1_JAOTC_OPTS := \
-J-Xmx4g --info \
$$(addprefix -J, $$(filter-out -Xcomp %TieredCompilation, $$($1_VM_OPTIONS))) \
$$(addprefix -J, $$($1_VM_OPTIONS)) \
$$(addprefix --compile-commands$(SPACE), $$($1_AOT_CCLIST)) \
--linker-path $$(LD_JAOTC) \
--linker-path $$($1_LD) \
#
ifneq ($$(filter -ea, $$($1_VM_OPTIONS)), )
@@ -145,17 +151,15 @@ define SetupAotModuleBody
$$(call DependOnVariable, JDK_IMAGE_DIR)
$$(call LogWarn, Generating $$(patsubst $$(OUTPUTDIR)/%, %, $$@))
$$(call MakeTargetDir)
$$(call ExecuteWithLog, $$@, ( \
$$(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_JAOTC_OPTS) --output $$@ --module $$($1_MODULE) \
)
$$(call ExecuteWithLog, $$@.check, \
$$(FIXPATH) $$(JDK_IMAGE_DIR)/bin/java \
$$($1_VM_OPTIONS) -XX:+PrintAOT -XX:+UseAOTStrictLoading -XX:AOTLibrary=$$@ -version \
> $$@.verify-aot \
)
$1_AOT_OPTIONS += -XX:AOTLibrary=$$($1_AOT_LIB)
$1_AOT_TARGETS += $$($1_AOT_LIB)
@@ -200,7 +204,7 @@ TEST_JOBS_FACTOR_MACHINE ?= 1
ifeq ($(TEST_JOBS), 0)
CORES_DIVIDER := 2
ifeq ($(call isTargetCpuArch, sparc), true)
ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
# For smaller SPARC machines we see reasonable scaling of throughput up to
# cpus/4 without affecting test reliability. On the bigger machines, cpus/4
# causes intermittent timeouts.
@@ -210,29 +214,11 @@ ifeq ($(TEST_JOBS), 0)
CORES_DIVIDER := 4
endif
endif
# For some big multi-core machines with low ulimit -u setting we hit the max
# threads/process limit. In such a setup the memory/cores-only-guided
# TEST_JOBS config is insufficient. From experience a concurrency setting of
# 14 works reasonably well for low ulimit values (<= 4096). Thus, use
# divider 4096/14. For high ulimit -u values this shouldn't make a difference.
ULIMIT_DIVIDER := (4096/14)
PROC_ULIMIT := -1
ifneq ($(OPENJDK_TARGET_OS), windows)
PROC_ULIMIT := $(shell $(ULIMIT) -u)
ifeq ($(PROC_ULIMIT), unlimited)
PROC_ULIMIT := -1
endif
endif
MEMORY_DIVIDER := 2048
TEST_JOBS := $(shell $(AWK) \
'BEGIN { \
c = $(NUM_CORES) / $(CORES_DIVIDER); \
m = $(MEMORY_SIZE) / $(MEMORY_DIVIDER); \
u = $(PROC_ULIMIT); \
if (u > -1) { \
u = u / $(ULIMIT_DIVIDER); \
if (u < c) c = u; \
} \
if (c > m) c = m; \
c = c * $(TEST_JOBS_FACTOR); \
c = c * $(TEST_JOBS_FACTOR_JDL); \
@@ -251,22 +237,19 @@ ifneq ($(TEST_OPTS), )
$(info Running tests using TEST_OPTS control variable '$(TEST_OPTS)')
endif
### Jtreg
$(eval $(call SetTestOpt,VM_OPTIONS,JTREG))
$(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 RUN_PROBLEM_LISTS RETRY_COUNT REPEAT_COUNT, \
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 AOT_MODULES, \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS, \
))
ifneq ($(JTREG), )
@@ -274,9 +257,15 @@ ifneq ($(JTREG), )
$(info Running tests using JTREG control variable '$(JTREG)')
endif
### Gtest
$(eval $(call SetTestOpt,VM_OPTIONS,GTEST))
$(eval $(call SetTestOpt,JAVA_OPTIONS,GTEST))
$(eval $(call SetTestOpt,AOT_MODULES,GTEST))
$(eval $(call ParseKeywordVariable, GTEST, \
SINGLE_KEYWORDS := REPEAT, \
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS AOT_MODULES, \
SINGLE_KEYWORDS := REPEAT AOT_MODULES, \
STRING_KEYWORDS := OPTIONS VM_OPTIONS JAVA_OPTIONS, \
))
ifneq ($(GTEST), )
@@ -284,6 +273,21 @@ ifneq ($(GTEST), )
$(info Running tests using GTEST control variable '$(GTEST)')
endif
### Microbenchmarks
$(eval $(call SetTestOpt,VM_OPTIONS,MICRO))
$(eval $(call SetTestOpt,JAVA_OPTIONS,MICRO))
$(eval $(call ParseKeywordVariable, MICRO, \
SINGLE_KEYWORDS := ITER FORK TIME WARMUP_ITER WARMUP_TIME, \
STRING_KEYWORDS := OPTIONS JAVA_OPTIONS VM_OPTIONS RESULTS_FORMAT TEST_JDK BENCHMARKS_JAR, \
))
ifneq ($(MICRO), )
# Inform the user
$(info Running tests using MICRO control variable '$(MICRO)')
endif
################################################################################
# Component-specific Jtreg settings
@@ -300,6 +304,8 @@ langtools_JTREG_PROBLEM_LIST += $(TOPDIR)/test/langtools/ProblemList.txt
nashorn_JTREG_PROBLEM_LIST += $(TOPDIR)/test/nashorn/ProblemList.txt
hotspot_JTREG_PROBLEM_LIST += $(TOPDIR)/test/hotspot/jtreg/ProblemList.txt
langtools_JTREG_MAX_MEM := 768m
################################################################################
# Parse test selection
#
@@ -338,6 +344,24 @@ define ParseGtestTestSelection
)
endef
# Helper function to determine if a test specification is a microbenchmark test
#
# It is a microbenchmark test if it is either "micro", or "micro:" followed by an optional
# test filter string.
define ParseMicroTestSelection
$(if $(filter micro%, $1), \
$(if $(filter micro, $1), \
micro:all \
, \
$(if $(filter micro:, $1), \
micro:all \
, \
$1 \
) \
) \
)
endef
# Helper function that removes the TOPDIR part
CleanupJtregPath = \
$(strip $(patsubst %/, %, $(subst $(JTREG_TOPDIR)/,, $1)))
@@ -413,15 +437,31 @@ 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,
# if it is "make:" or "make-" followed by a make test, or any of the special test names
# as a single word.
define ParseSpecialTestSelection
$(if $(filter special:%, $1), \
$1 \
) \
$(if $(filter make%, $1), \
$(if $(filter make:%, $1), \
special:$(strip $1) \
) \
$(if $(filter make-%, $1), \
special:$(patsubst make-%,make:%, $1) \
) \
$(if $(filter make, $1), \
special:make:all \
)
) \
$(if $(filter failure-handler, $1), \
special:$(strip $1) \
)
endef
ifeq ($(TEST), )
$(info No test selection given in TEST!)
$(info Please use e.g. 'run-test TEST=tier1' or 'run-test-tier1')
$(info Please use e.g. 'make test TEST=tier1' or 'make test-tier1')
$(info See doc/testing.[md|html] for help)
$(error Cannot continue)
endif
@@ -434,6 +474,9 @@ $(foreach test, $(TEST), \
$(if $(strip $(PARSED_TESTS)), , \
$(eval PARSED_TESTS += $(call ParseGtestTestSelection, $(test))) \
) \
$(if $(strip $(PARSED_TESTS)), , \
$(eval PARSED_TESTS += $(call ParseMicroTestSelection, $(test))) \
) \
$(if $(strip $(PARSED_TESTS)), , \
$(eval PARSED_TESTS += $(call ParseJtregTestSelection, $(test))) \
) \
@@ -514,17 +557,16 @@ define SetupRunGtestTestBody
$$(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 \
--gtest_catch_exceptions=0 \
$$($1_GTEST_REPEAT) $$(GTEST_OPTIONS) $$(GTEST_VM_OPTIONS) \
$$(GTEST_JAVA_OPTIONS) $$($1_AOT_OPTIONS) \
> >($(TEE) $$($1_TEST_RESULTS_DIR)/gtest.txt) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
))
)
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/gtest.txt
@@ -558,6 +600,113 @@ endef
################################################################################
### Rules for Microbenchmarks
# Helper function for SetupRunMicroTest. Set a MICRO_* variable from, in order:
# 1) Specified by user on command line
# 2) Generic default
#
# Note: No spaces are allowed around the arguments.
# Arg $1 The test ID (i.e. $1 in SetupRunMicroTest)
# Arg $2 Base variable, e.g. MICRO_TEST_JDK
# Arg $3 The default value (optional)
define SetMicroValue
ifneq ($$($2), )
$1_$2 := $$($2)
else
ifneq ($3, )
$1_$2 := $3
endif
endif
endef
SetupRunMicroTest = $(NamedParamsMacroTemplate)
define SetupRunMicroTestBody
$1_TEST_RESULTS_DIR := $$(TEST_RESULTS_DIR)/$1
$1_TEST_SUPPORT_DIR := $$(TEST_SUPPORT_DIR)/$1
$1_EXITCODE := $$($1_TEST_RESULTS_DIR)/exitcode.txt
$1_TEST_NAME := $$(strip $$(patsubst micro:%, %, $$($1_TEST)))
$$(eval $$(call SetMicroValue,$1,MICRO_BENCHMARKS_JAR,$$(TEST_IMAGE_DIR)/micro/benchmarks.jar))
$$(eval $$(call SetMicroValue,$1,MICRO_TEST_JDK,$$(JDK_IMAGE_DIR)))
$$(eval $$(call SetMicroValue,$1,MICRO_JAVA_OPTIONS))
# Current tests needs to open java.io
$1_MICRO_JAVA_OPTIONS += --add-opens=java.base/java.io=ALL-UNNAMED
# Save output as JSON or CSV file
ifneq ($$(MICRO_RESULTS_FORMAT), )
$1_MICRO_BASIC_OPTIONS += -rf $$(MICRO_RESULTS_FORMAT) -rff $$($1_TEST_RESULTS_DIR)/jmh-result.$(MICRO_RESULTS_FORMAT)
endif
ifneq ($$(MICRO_VM_OPTIONS)$$(MICRO_JAVA_OPTIONS), )
$1_MICRO_VM_OPTIONS := -jvmArgs $$(MICRO_VM_OPTIONS) $$(MICRO_JAVA_OPTIONS)
endif
ifneq ($$(MICRO_ITER), )
$1_MICRO_ITER := -i $$(MICRO_ITER)
endif
ifneq ($$(MICRO_FORK), )
$1_MICRO_FORK := -f $$(MICRO_FORK)
endif
ifneq ($$(MICRO_TIME), )
$1_MICRO_TIME := -r $$(MICRO_TIME)
endif
ifneq ($$(MICRO_WARMUP_ITER), )
$1_MICRO_WARMUP_ITER := -wi $$(MICRO_WARMUP_ITER)
endif
ifneq ($$(MICRO_WARMUP_TIME), )
$1_MICRO_WARMUP_TIME := -w $$(MICRO_WARMUP_TIME)
endif
run-test-$1:
$$(call LogWarn)
$$(call LogWarn, Running test '$$($1_TEST)')
$$(call MakeDir, $$($1_TEST_RESULTS_DIR) $$($1_TEST_SUPPORT_DIR))
$$(call ExecuteWithLog, $$($1_TEST_SUPPORT_DIR)/micro, \
$$($1_MICRO_TEST_JDK)/bin/java $$($1_MICRO_JAVA_OPTIONS) -jar $$($1_MICRO_BENCHMARKS_JAR) \
$$($1_MICRO_ITER) $$($1_MICRO_FORK) $$($1_MICRO_TIME) \
$$($1_MICRO_WARMUP_ITER) $$($1_MICRO_WARMUP_TIME) \
$$($1_MICRO_VM_OPTIONS) $$($1_MICRO_BASIC_OPTIONS) $$(MICRO_OPTIONS) \
$$($1_TEST_NAME) \
> >($(TEE) $$($1_TEST_RESULTS_DIR)/micro.txt) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
)
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/micro.txt
parse-test-$1: run-test-$1
$$(call LogWarn, Finished running test '$$($1_TEST)')
$$(call LogWarn, Test report is stored in $$(strip \
$$(subst $$(TOPDIR)/, , $$($1_TEST_RESULTS_DIR))))
$$(if $$(wildcard $$($1_EXITCODE)), \
$$(eval $1_EXIT_CODE := $$(shell $$(CAT) $$($1_EXITCODE))) \
$$(if $$(filter 0, $$($1_EXIT_CODE)), \
$$(eval $1_PASSED := 1) \
$$(eval $1_ERROR := 0) \
, \
$$(eval $1_PASSED := 0) \
$$(eval $1_ERROR := 1) \
) \
$$(eval $1_FAILED := 0) \
$$(eval $1_TOTAL := $$(shell \
$$(EXPR) $$($1_PASSED) + $$($1_ERROR))) \
, \
$$(eval $1_PASSED := 0) \
$$(eval $1_FAILED := 0) \
$$(eval $1_ERROR := 1) \
$$(eval $1_TOTAL := 1) \
)
$1: run-test-$1 parse-test-$1
TARGETS += $1
endef
################################################################################
### Rules for Jtreg
# Helper function for SetupRunJtregTest. Set a JTREG_* variable from, in order:
@@ -613,7 +762,7 @@ define SetupRunJtregTestBody
# Convert JTREG_foo into $1_JTREG_foo with a suitable value.
$$(eval $$(call SetJtregValue,$1,JTREG_TEST_MODE,agentvm))
$$(eval $$(call SetJtregValue,$1,JTREG_ASSERT,true))
$$(eval $$(call SetJtregValue,$1,JTREG_MAX_MEM,768m))
$$(eval $$(call SetJtregValue,$1,JTREG_MAX_MEM,512m))
$$(eval $$(call SetJtregValue,$1,JTREG_NATIVEPATH))
$$(eval $$(call SetJtregValue,$1,JTREG_BASIC_OPTIONS))
$$(eval $$(call SetJtregValue,$1,JTREG_PROBLEM_LIST))
@@ -629,41 +778,26 @@ define SetupRunJtregTestBody
# Make sure MaxRAMPercentage is high enough to not cause OOM or swapping since
# we may end up with a lot of JVM's
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $(AWK) 'BEGIN { print 25 / $$($1_JTREG_JOBS); }')
$1_JTREG_MAX_RAM_PERCENTAGE := $$(shell $$(EXPR) 25 / $$($1_JTREG_JOBS))
# SPARC is in general slower per core so need to scale up timeouts a bit.
ifeq ($(call isTargetCpuArch, sparc), true)
ifeq ($(OPENJDK_TARGET_CPU_ARCH), sparc)
JTREG_TIMEOUT_FACTOR ?= 8
else
JTREG_TIMEOUT_FACTOR ?= 4
endif
JTREG_VERBOSE ?= fail,error,summary
JTREG_RETAIN ?= fail,error
JTREG_RUN_PROBLEM_LISTS ?= false
JTREG_RETRY_COUNT ?= 0
JTREG_REPEAT_COUNT ?= 0
ifneq ($$(JTREG_RETRY_COUNT), 0)
ifneq ($$(JTREG_REPEAT_COUNT), 0)
$$(info Error: Cannot use both JTREG_RETRY_COUNT and JTREG_REPEAT_COUNT together.)
$$(info Please choose one or the other.)
$$(error Cannot continue)
endif
endif
ifneq ($$($1_JTREG_MAX_MEM), 0)
$1_JTREG_BASIC_OPTIONS += -vmoption:-Xmx$$($1_JTREG_MAX_MEM)
$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
@@ -674,10 +808,8 @@ define SetupRunJtregTestBody
$1_JTREG_BASIC_OPTIONS += -e:JDK8_HOME=$$(BOOT_JDK)
# If running on Windows, propagate the _NT_SYMBOL_PATH to enable
# symbol lookup in hserr files
# The minidumps are disabled by default on client Windows, so enable them
ifeq ($$(call isTargetOs, windows), true)
ifeq ($$(OPENJDK_TARGET_OS), windows)
$1_JTREG_BASIC_OPTIONS += -e:_NT_SYMBOL_PATH
$1_JTREG_BASIC_OPTIONS += -vmoption:-XX:+CreateCoredumpOnCrash
endif
$1_JTREG_BASIC_OPTIONS += \
@@ -693,19 +825,13 @@ define SetupRunJtregTestBody
$1_JTREG_BASIC_OPTIONS += -nativepath:$$($1_JTREG_NATIVEPATH)
endif
ifeq ($$(JTREG_RUN_PROBLEM_LISTS), true)
JTREG_PROBLEM_LIST_PREFIX := -match:
else
JTREG_PROBLEM_LIST_PREFIX := -exclude:
endif
ifneq ($$($1_JTREG_PROBLEM_LIST), )
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$($1_JTREG_PROBLEM_LIST))
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$($1_JTREG_PROBLEM_LIST))
endif
ifneq ($$(JTREG_EXTRA_PROBLEM_LISTS), )
# Accept both absolute paths as well as relative to the current test root.
$1_JTREG_BASIC_OPTIONS += $$(addprefix $$(JTREG_PROBLEM_LIST_PREFIX), $$(wildcard \
$1_JTREG_BASIC_OPTIONS += $$(addprefix -exclude:, $$(wildcard \
$$(JTREG_EXTRA_PROBLEM_LISTS) \
$$(addprefix $$($1_TEST_ROOT)/, $$(JTREG_EXTRA_PROBLEM_LISTS)) \
))
@@ -715,8 +841,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)"
@@ -744,60 +869,27 @@ define SetupRunJtregTestBody
$1_JTREG_BASIC_OPTIONS += -vmoptions:"$$($1_AOT_OPTIONS)"
endif
clean-outputdirs-$1:
clean-workdir-$1:
$$(RM) -r $$($1_TEST_SUPPORT_DIR)
$$(RM) -r $$($1_TEST_RESULTS_DIR)
$1_COMMAND_LINE := \
$$(JTREG_JAVA) $$($1_JTREG_LAUNCHER_OPTIONS) \
-Dprogram=jtreg -jar $$(JT_HOME)/lib/jtreg.jar \
$$($1_JTREG_BASIC_OPTIONS) \
-testjdk:$$(JDK_IMAGE_DIR) \
-dir:$$(JTREG_TOPDIR) \
-reportDir:$$($1_TEST_RESULTS_DIR) \
-workDir:$$($1_TEST_SUPPORT_DIR) \
-status:$$$${JTREG_STATUS} \
$$(JTREG_OPTIONS) \
$$(JTREG_FAILURE_HANDLER_OPTIONS) \
$$($1_TEST_NAME) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE)
ifneq ($$(JTREG_RETRY_COUNT), 0)
$1_COMMAND_LINE := \
for i in {0..$$(JTREG_RETRY_COUNT)}; do \
if [ "$$$$i" != 0 ]; then \
$$(PRINTF) "\nRetrying Jtreg run. Attempt: $$$$i\n"; \
fi; \
$$($1_COMMAND_LINE); \
if [ "`$$(CAT) $$($1_EXITCODE)`" = "0" ]; then \
break; \
fi; \
export JTREG_STATUS="-status:error,fail"; \
done
endif
ifneq ($$(JTREG_REPEAT_COUNT), 0)
$1_COMMAND_LINE := \
for i in {1..$$(JTREG_REPEAT_COUNT)}; do \
$$(PRINTF) "\nRepeating Jtreg run: $$$$i out of $$(JTREG_REPEAT_COUNT)\n"; \
$$($1_COMMAND_LINE); \
if [ "`$$(CAT) $$($1_EXITCODE)`" != "0" ]; then \
$$(PRINTF) "\nFailures detected, no more repeats.\n"; \
break; \
fi; \
done
endif
run-test-$1: clean-outputdirs-$1 $$($1_AOT_TARGETS)
run-test-$1: clean-workdir-$1 $$($1_AOT_TARGETS)
$$(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, ( \
$$($1_COMMAND_LINE) \
))
$$(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) \
-testjdk:$$(JDK_IMAGE_DIR) \
-dir:$$(JTREG_TOPDIR) \
-reportDir:$$($1_TEST_RESULTS_DIR) \
-workDir:$$($1_TEST_SUPPORT_DIR) \
$$(JTREG_OPTIONS) \
$$(JTREG_FAILURE_HANDLER_OPTIONS) \
$$($1_TEST_NAME) \
&& $$(ECHO) $$$$? > $$($1_EXITCODE) \
|| $$(ECHO) $$$$? > $$($1_EXITCODE) \
)
$1_RESULT_FILE := $$($1_TEST_RESULTS_DIR)/text/stats.txt
@@ -851,14 +943,14 @@ define SetupRunSpecialTestBody
$1_TEST_ARGS :=
endif
ifeq ($$($1_TEST_NAME), hotspot-internal)
$1_TEST_COMMAND_LINE := \
$$(JDK_IMAGE_DIR)/bin/java -XX:+ExecuteInternalVMTests \
-XX:+ShowMessageBoxOnError -version
else ifeq ($$($1_TEST_NAME), failure-handler)
$1_TEST_COMMAND_LINE := \
($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f \
BuildFailureHandler.gmk test)
ifeq ($$($1_TEST_NAME), failure-handler)
ifeq ($(BUILD_FAILURE_HANDLER), true)
$1_TEST_COMMAND_LINE := \
($(CD) $(TOPDIR)/make/test && $(MAKE) $(MAKE_ARGS) -f \
BuildFailureHandler.gmk test)
else
$$(error Cannot test failure handler if it is not built)
endif
else ifeq ($$($1_TEST_NAME), make)
$1_TEST_COMMAND_LINE := \
($(CD) $(TOPDIR)/test/make && $(MAKE) $(MAKE_ARGS) -f \
@@ -871,12 +963,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
@@ -904,6 +996,9 @@ endef
UseGtestTestHandler = \
$(if $(filter gtest:%, $1), true)
UseMicroTestHandler = \
$(if $(filter micro:%, $1), true)
UseJtregTestHandler = \
$(if $(filter jtreg:%, $1), true)
@@ -925,6 +1020,11 @@ $(foreach test, $(TESTS_TO_RUN), \
TEST := $(test), \
)) \
) \
$(if $(call UseMicroTestHandler, $(test)), \
$(eval $(call SetupRunMicroTest, $(TEST_ID), \
TEST := $(test), \
)) \
) \
$(if $(call UseJtregTestHandler, $(test)), \
$(eval $(call SetupRunJtregTest, $(TEST_ID), \
TEST := $(test), \

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2017, 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
@@ -122,7 +122,6 @@ $(eval $(call SetupVariable,JT_HOME))
$(eval $(call SetupVariable,JDK_IMAGE_DIR,$(OUTPUTDIR)/images/jdk))
$(eval $(call SetupVariable,TEST_IMAGE_DIR,$(OUTPUTDIR)/images/test))
$(eval $(call SetupVariable,SYMBOLS_IMAGE_DIR,$(OUTPUTDIR)/images/symbols,NO_CHECK))
$(eval $(call SetupVariable,JTREG_JDK,$(BOOT_JDK)))
# Provide default values for tools that we need
$(eval $(call SetupVariable,MAKE,make,NO_CHECK))
@@ -158,10 +157,6 @@ ifeq ($(UNAME_OS), CYGWIN)
OPENJDK_TARGET_OS := windows
OPENJDK_TARGET_OS_TYPE := windows
OPENJDK_TARGET_OS_ENV := windows.cygwin
else ifeq ($(UNAME_OS), MINGW64)
OPENJDK_TARGET_OS := windows
OPENJDK_TARGET_OS_TYPE := windows
OPENJDK_TARGET_OS_ENV := windows.msys2
else
OPENJDK_TARGET_OS_TYPE:=unix
ifeq ($(UNAME_OS), Linux)
@@ -176,9 +171,6 @@ else
OPENJDK_TARGET_OS_ENV := $(OPENJDK_TARGET_OS)
endif
# Sanity check env detection
$(info Detected target OS, type and env: [$(OPENJDK_TARGET_OS)] [$(OPENJDK_TARGET_OS_TYPE)] [$(OPENJDK_TARGET_OS_ENV)])
# Assume little endian unless otherwise specified
OPENJDK_TARGET_CPU_ENDIAN := little
@@ -217,9 +209,15 @@ else ifeq ($(OPENJDK_TARGET_CPU), sparcv9)
endif
ifeq ($(OPENJDK_TARGET_OS), windows)
FIXPATH := $(BASH) $(TOPDIR)/make/scripts/fixpath.sh exec
ifeq ($(wildcard $(TEST_IMAGE_DIR)/bin/fixpath.exe), )
$(info Error: fixpath is missing from test image '$(TEST_IMAGE_DIR)')
$(error Cannot continue.)
endif
FIXPATH := $(TEST_IMAGE_DIR)/bin/fixpath.exe -c
PATH_SEP:=;
else
FIXPATH :=
PATH_SEP:=:
endif
# Check number of cores and memory in MB
@@ -232,15 +230,14 @@ else ifeq ($(OPENJDK_TARGET_OS), macosx)
NUM_CORES := $(shell /usr/sbin/sysctl -n hw.ncpu)
MEMORY_SIZE := $(shell $(EXPR) `/usr/sbin/sysctl -n hw.memsize` / 1024 / 1024)
else ifeq ($(OPENJDK_TARGET_OS), solaris)
NUM_CORES := $(shell /usr/sbin/psrinfo -v | $(GREP) -c on-line)
NUM_CORES := $(shell LC_MESSAGES=C /usr/sbin/psrinfo -v | $(GREP) -c on-line)
MEMORY_SIZE := $(shell \
/usr/sbin/prtconf 2> /dev/null | $(GREP) "^Memory [Ss]ize" | $(AWK) '{print $$3}' \
)
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
@@ -256,22 +253,26 @@ endif
# Setup LD for AOT support
ifneq ($(DEVKIT_HOME), )
ifeq ($(OPENJDK_TARGET_OS), windows)
LD_JAOTC := $(DEVKIT_HOME)/VC/bin/x64/link.exe
LD := $(DEVKIT_HOME)/VC/bin/x64/link
LIBRARY_PREFIX :=
SHARED_LIBRARY_SUFFIX := .dll
EXE_SUFFIX := .exe
else ifeq ($(OPENJDK_TARGET_OS), linux)
LD_JAOTC := $(DEVKIT_HOME)/bin/ld
LD := $(DEVKIT_HOME)/bin/ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .so
EXE_SUFFIX :=
else ifeq ($(OPENJDK_TARGET_OS), macosx)
LD_JAOTC := $(DEVKIT_HOME)/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
LD := $(DEVKIT_HOME)/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .dylib
EXE_SUFFIX :=
else ifeq ($(OPENJDK_TARGET_OS), solaris)
# Prefer system linker for AOT on Solaris.
LD_JAOTC := ld
LD := ld
LIBRARY_PREFIX := lib
SHARED_LIBRARY_SUFFIX := .so
EXE_SUFFIX :=
endif
else
LD := ld
@@ -295,7 +296,6 @@ $(call CreateNewSpec, $(NEW_SPEC), \
TOPDIR := $(TOPDIR), \
OUTPUTDIR := $(OUTPUTDIR), \
BOOT_JDK := $(BOOT_JDK), \
JTREG_JDK := $(JTREG_JDK), \
JT_HOME := $(JT_HOME), \
JDK_IMAGE_DIR := $(JDK_IMAGE_DIR), \
TEST_IMAGE_DIR := $(TEST_IMAGE_DIR), \
@@ -304,6 +304,7 @@ $(call CreateNewSpec, $(NEW_SPEC), \
BASH := $(BASH), \
JIB_JAR := $(JIB_JAR), \
FIXPATH := $(FIXPATH), \
PATH_SEP := $(PATH_SEP), \
OPENJDK_TARGET_OS := $(OPENJDK_TARGET_OS), \
OPENJDK_TARGET_OS_TYPE := $(OPENJDK_TARGET_OS_TYPE), \
OPENJDK_TARGET_OS_ENV := $(OPENJDK_TARGET_OS_ENV), \
@@ -313,9 +314,10 @@ $(call CreateNewSpec, $(NEW_SPEC), \
OPENJDK_TARGET_CPU_ENDIAN := $(OPENJDK_TARGET_CPU_ENDIAN), \
NUM_CORES := $(NUM_CORES), \
MEMORY_SIZE := $(MEMORY_SIZE), \
LD_JAOTC := $(LD_JAOTC), \
LD := $(LD), \
LIBRARY_PREFIX := $(LIBRARY_PREFIX), \
SHARED_LIBRARY_SUFFIX := $(SHARED_LIBRARY_SUFFIX), \
EXE_SUFFIX := $(EXE_SUFFIX), \
include $(TOPDIR)/make/RunTestsPrebuiltSpec.gmk, \
$(CUSTOM_NEW_SPEC_LINE), \
)

View File

@@ -27,9 +27,6 @@
# Fake minimalistic spec file for RunTestsPrebuilt.gmk.
################################################################################
# Make sure all shell commands are executed with the C locale
export LC_ALL := C
define VerifyVariable
ifeq ($$($1), )
$$(info Error: Variable $1 is missing, needed by RunTestPrebuiltSpec.gmk)
@@ -116,6 +113,7 @@ JAVAC_CMD := $(BOOT_JDK)/bin/javac
JAR_CMD := $(BOOT_JDK)/bin/jar
JLINK_CMD := $(JDK_OUTPUTDIR)/bin/jlink
JMOD_CMD := $(JDK_OUTPUTDIR)/bin/jmod
JARSIGNER_CMD := $(BOOT_JDK)/bin/jarsigner
JAVA := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVA_SMALL := $(FIXPATH) $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
@@ -124,8 +122,7 @@ JAVAC := $(FIXPATH) $(JAVAC_CMD)
JAR := $(FIXPATH) $(JAR_CMD)
JLINK := $(FIXPATH) $(JLINK_CMD)
JMOD := $(FIXPATH) $(JMOD_CMD)
JTREG_JAVA := $(FIXPATH) $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JARSIGNER := $(FIXPATH) $(JARSIGNER_CMD)
BUILD_JAVA := $(JDK_IMAGE_DIR)/bin/JAVA
################################################################################
@@ -167,6 +164,7 @@ TAIL := tail
TEE := tee
TR := tr
TOUCH := touch
UNIQ := uniq
WC := wc
XARGS := xargs
ZIPEXE := zip
@@ -174,7 +172,6 @@ UNZIP := unzip
EXPR := expr
FILE := file
HG := hg
ULIMIT := ulimit
# On Solaris gnu versions of some tools are required.
ifeq ($(OPENJDK_BUILD_OS), solaris)
@@ -187,7 +184,7 @@ ifeq ($(OPENJDK_BUILD_OS), solaris)
endif
ifeq ($(OPENJDK_BUILD_OS), windows)
PATHTOOL := cygpath
CYGPATH := cygpath
endif
################################################################################

View File

@@ -1,56 +0,0 @@
#
# Copyright (c) 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
# 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 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)
################################################################################
TARGETS :=
$(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)) \
)
################################################################################
all: $(TARGETS)
.PHONY: all

View File

@@ -30,22 +30,17 @@ include MakeBase.gmk
############################################################################
BUILD_INFO_PROPERTIES := $(TEST_IMAGE_DIR)/build-info.properties
ifeq ($(OPENJDK_TARGET_OS), windows)
FIXPATH_COPY := $(TEST_IMAGE_DIR)/bin/fixpath.exe
FIXPATH_ECHO := $(FIXPATH) $(call FixPath, $(ECHO))
$(FIXPATH_COPY): $(firstword $(FIXPATH))
$(call install-file)
endif
$(BUILD_INFO_PROPERTIES):
$(call MakeTargetDir)
$(ECHO) "# Build info properties for JDK tests" > $@
$(ECHO) 'build.workspace.root=$(call FixPath, $(WORKSPACE_ROOT))' >> $@
$(ECHO) 'build.output.root=$(call FixPath, $(OUTPUTDIR))' >> $@
prepare-test-image: $(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, 2021, 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
@@ -47,9 +47,6 @@ TOOL_COMPILEFONTCONFIG = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_cla
TOOL_COMPILEPROPERTIES = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.compileproperties.CompileProperties
TOOL_JARREORDER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.jarreorder.JarReorder
TOOL_GENERATECHARACTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.generatecharacter.GenerateCharacter
@@ -67,22 +64,15 @@ TOOL_GENERATEBREAKITERATORDATA = $(JAVA_SMALL) \
TOOL_GENERATECURRENCYDATA = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.generatecurrencydata.GenerateCurrencyData
TOOL_HASHER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.hasher.Hasher
TOOL_TZDB = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.tzdb.TzdbZoneRulesCompiler
TOOL_BLOCKED_CERTS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
--add-exports java.base/sun.security.util=ALL-UNNAMED \
build.tools.blockedcertsconverter.BlockedCertsConverter
TOOL_BLACKLISTED_CERTS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.blacklistedcertsconverter.BlacklistedCertsConverter
TOOL_MAKEJAVASECURITY = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.makejavasecurity.MakeJavaSecurity
TOOL_GENERATECACERTS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.generatecacerts.GenerateCacerts
# TODO: There are references to the jdwpgen.jar in jdk/make/netbeans/jdwpgen/build.xml
# and nbproject/project.properties in the same dir. Needs to be looked at.
@@ -113,10 +103,6 @@ TOOL_CLDRCONVERTER = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes
TOOL_GENERATELSREQUIVMAPS = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes \
build.tools.generatelsrequivmaps.EquivMapsGenerator
TOOL_GENMODULESXML = $(JAVA_SMALL) $(INTERIM_LANGTOOLS_BOOTCLASSPATH) \
-cp $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes) \
build.tools.module.GenJdepsModulesXml
TOOL_GENMODULEINFOSOURCE = $(JAVA_SMALL) $(INTERIM_LANGTOOLS_BOOTCLASSPATH) \
-cp $(call PathList, $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_classes) \
build.tools.module.GenModuleInfoSource
@@ -130,4 +116,10 @@ TOOL_PUBLICSUFFIXLIST = $(JAVA_SMALL) -cp $(BUILDTOOLS_OUTPUTDIR)/jdk_tools_clas
##########################################################################################
# Executable javascript filter for man page generation using pandoc.
PANDOC_FILTER := $(BUILDTOOLS_OUTPUTDIR)/manpages/pandoc-manpage-filter
##########################################################################################
endif # _TOOLS_GMK

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,21 +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, ide, \
FILES := $(DOCS_DIR)/ide.md, \
$(eval $(call SetupProcessMarkdown, testing, \
FILES := $(DOCS_DIR)/testing.md, \
DEST := $(DOCS_DIR), \
CSS := $(GLOBAL_SPECS_DEFAULT_CSS_FILE), \
OPTIONS := --toc, \
))
TARGETS += $(ide)
TARGETS += $(testing)
################################################################################

View File

@@ -70,7 +70,7 @@ TARGETS += $(IMAGES_OUTPUTDIR)/sec-bin.zip
#
# Windows specific binary security packages.
#
ifeq ($(call isTargetOs, windows), true)
ifeq ($(OPENJDK_TARGET_OS), windows)
# sec-windows-bin.zip is used by builds where the corresponding sources are not available
$(eval $(call SetupZipArchive,BUILD_SEC_WINDOWS_BIN_ZIP, \
SRC := $(JDK_OUTPUTDIR), \
@@ -80,7 +80,7 @@ ifeq ($(call isTargetOs, windows), true)
TARGETS += $(IMAGES_OUTPUTDIR)/sec-windows-bin.zip
# JGSS files contain the native Kerberos library
ifeq ($(call isTargetCpu, x86_64), true)
ifeq ($(OPENJDK_TARGET_CPU), x86_64)
JGSS_ZIP_NAME = jgss-windows-x64-bin.zip
else
JGSS_ZIP_NAME = jgss-windows-i586-bin.zip

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2014, 2022, 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
@@ -31,7 +31,6 @@ include JavaCompilation.gmk
include Modules.gmk
SRC_ZIP_WORK_DIR := $(SUPPORT_OUTPUTDIR)/src
$(if $(filter $(TOPDIR)/%, $(SUPPORT_OUTPUTDIR)), $(eval SRC_ZIP_BASE := $(TOPDIR)), $(eval SRC_ZIP_BASE := $(SUPPORT_OUTPUTDIR)))
# Hook to include the corresponding custom file, if present.
$(eval $(call IncludeCustomExtension, ZipSource.gmk))
@@ -52,10 +51,10 @@ ALL_MODULES := $(FindAllModules)
# again to create src.zip.
$(foreach m, $(ALL_MODULES), \
$(foreach d, $(call FindModuleSrcDirs, $m) $(call ExtraSrcDirs, $m), \
$(eval $d_TARGET := $(SRC_ZIP_WORK_DIR)/$(patsubst $(TOPDIR)/%,%,$(patsubst $(SUPPORT_OUTPUTDIR)/%,%,$d))/$m) \
$(eval $d_TARGET := $(SRC_ZIP_WORK_DIR)/$(patsubst $(TOPDIR)/%,%,$d)/$m) \
$(if $(SRC_GENERATED), , \
$(eval $$($d_TARGET): $d ; \
$$(if $(filter $(SRC_ZIP_BASE)/%, $d), $$(link-file-relative), $$(link-file-absolute)) \
$$(if $(filter $(TOPDIR)/%, $d), $$(link-file-relative), $$(link-file-absolute)) \
) \
) \
$(eval SRC_ZIP_SRCS += $$($d_TARGET)) \
@@ -88,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

@@ -1,555 +0,0 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
m4_include([basic_tools.m4])
m4_include([basic_windows.m4])
###############################################################################
AC_DEFUN_ONCE([BASIC_INIT],
[
# Save the original command line. This is passed to us by the wrapper configure script.
AC_SUBST(CONFIGURE_COMMAND_LINE)
# AUTOCONF might be set in the environment by the user. Preserve for "make reconfigure".
AC_SUBST(AUTOCONF)
# Save the path variable before it gets changed
ORIGINAL_PATH="$PATH"
AC_SUBST(ORIGINAL_PATH)
DATE_WHEN_CONFIGURED=`date`
AC_SUBST(DATE_WHEN_CONFIGURED)
AC_MSG_NOTICE([Configuration created at $DATE_WHEN_CONFIGURED.])
])
###############################################################################
# Check that there are no unprocessed overridden variables left.
# If so, they are an incorrect argument and we will exit with an error.
AC_DEFUN([BASIC_CHECK_LEFTOVER_OVERRIDDEN],
[
if test "x$CONFIGURE_OVERRIDDEN_VARIABLES" != x; then
# Replace the separating ! with spaces before presenting for end user.
unknown_variables=${CONFIGURE_OVERRIDDEN_VARIABLES//!/ }
AC_MSG_WARN([The following variables might be unknown to configure: $unknown_variables])
fi
])
###############################################################################
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
# Make sure to only use tools set up in BASIC_SETUP_FUNDAMENTAL_TOOLS.
AC_DEFUN_ONCE([BASIC_SETUP_PATHS],
[
# Save the current directory this script was started from
CONFIGURE_START_DIR="$PWD"
# We might need to rewrite ORIGINAL_PATH, if it includes "#", to quote them
# for make. We couldn't do this when we retrieved ORIGINAL_PATH, since SED
# was not available at that time.
REWRITTEN_PATH=`$ECHO "$ORIGINAL_PATH" | $SED -e 's/#/\\\\#/g'`
if test "x$REWRITTEN_PATH" != "x$ORIGINAL_PATH"; then
ORIGINAL_PATH="$REWRITTEN_PATH"
AC_MSG_NOTICE([Rewriting ORIGINAL_PATH to $REWRITTEN_PATH])
fi
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
BASIC_SETUP_PATHS_WINDOWS
fi
# We get the top-level directory from the supporting wrappers.
BASIC_WINDOWS_VERIFY_DIR($TOPDIR, source)
UTIL_FIXUP_PATH(TOPDIR)
AC_MSG_CHECKING([for top-level directory])
AC_MSG_RESULT([$TOPDIR])
AC_SUBST(TOPDIR)
if test "x$CUSTOM_ROOT" != x; then
BASIC_WINDOWS_VERIFY_DIR($CUSTOM_ROOT, custom root)
UTIL_FIXUP_PATH(CUSTOM_ROOT)
WORKSPACE_ROOT="${CUSTOM_ROOT}"
else
WORKSPACE_ROOT="${TOPDIR}"
fi
AC_SUBST(WORKSPACE_ROOT)
# We can only call UTIL_FIXUP_PATH after BASIC_CHECK_PATHS_WINDOWS.
UTIL_FIXUP_PATH(CONFIGURE_START_DIR)
UTIL_FIXUP_PATH(TOPDIR)
AC_SUBST(CONFIGURE_START_DIR)
# Locate the directory of this script.
AUTOCONF_DIR=$TOPDIR/make/autoconf
# Setup username (for use in adhoc version strings etc)
# Outer [ ] to quote m4.
[ USERNAME=`$ECHO "$USER" | $TR -d -c '[a-z][A-Z][0-9]'` ]
AC_SUBST(USERNAME)
])
###############################################################################
# Evaluates platform specific overrides for devkit variables.
# $1: Name of variable
AC_DEFUN([BASIC_EVAL_DEVKIT_VARIABLE],
[
if test "x[$]$1" = x; then
eval $1="\${$1_${OPENJDK_TARGET_CPU}}"
fi
])
###############################################################################
# Evaluates platform specific overrides for build devkit variables.
# $1: Name of variable
AC_DEFUN([BASIC_EVAL_BUILD_DEVKIT_VARIABLE],
[
if test "x[$]$1" = x; then
eval $1="\${$1_${OPENJDK_BUILD_CPU}}"
fi
])
###############################################################################
AC_DEFUN_ONCE([BASIC_SETUP_DEVKIT],
[
AC_ARG_WITH([devkit], [AS_HELP_STRING([--with-devkit],
[use this devkit for compilers, tools and resources])])
if test "x$with_devkit" = xyes; then
AC_MSG_ERROR([--with-devkit must have a value])
elif test "x$with_devkit" != x && test "x$with_devkit" != xno; then
UTIL_FIXUP_PATH([with_devkit])
DEVKIT_ROOT="$with_devkit"
# Check for a meta data info file in the root of the devkit
if test -f "$DEVKIT_ROOT/devkit.info"; then
. $DEVKIT_ROOT/devkit.info
# This potentially sets the following:
# A descriptive name of the devkit
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_NAME])
# Corresponds to --with-extra-path
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_EXTRA_PATH])
# Corresponds to --with-toolchain-path
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_TOOLCHAIN_PATH])
# Corresponds to --with-sysroot
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_SYSROOT])
# Identifies the Visual Studio version in the devkit
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_VS_VERSION])
# The Visual Studio include environment variable
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_VS_INCLUDE])
# The Visual Studio lib environment variable
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_VS_LIB])
# Corresponds to --with-msvcr-dll
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_MSVCR_DLL])
# Corresponds to --with-vcruntime-1-dll
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_VCRUNTIME_1_DLL])
# Corresponds to --with-msvcp-dll
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_MSVCP_DLL])
# Corresponds to --with-ucrt-dll-dir
BASIC_EVAL_DEVKIT_VARIABLE([DEVKIT_UCRT_DLL_DIR])
fi
AC_MSG_CHECKING([for devkit])
if test "x$DEVKIT_NAME" != x; then
AC_MSG_RESULT([$DEVKIT_NAME in $DEVKIT_ROOT])
else
AC_MSG_RESULT([$DEVKIT_ROOT])
fi
UTIL_PREPEND_TO_PATH([EXTRA_PATH],$DEVKIT_EXTRA_PATH)
# Fallback default of just /bin if DEVKIT_PATH is not defined
if test "x$DEVKIT_TOOLCHAIN_PATH" = x; then
DEVKIT_TOOLCHAIN_PATH="$DEVKIT_ROOT/bin"
fi
UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],$DEVKIT_TOOLCHAIN_PATH)
# If DEVKIT_SYSROOT is set, use that, otherwise try a couple of known
# places for backwards compatiblity.
if test "x$DEVKIT_SYSROOT" != x; then
SYSROOT="$DEVKIT_SYSROOT"
elif test -d "$DEVKIT_ROOT/$host_alias/libc"; then
SYSROOT="$DEVKIT_ROOT/$host_alias/libc"
elif test -d "$DEVKIT_ROOT/$host/sys-root"; then
SYSROOT="$DEVKIT_ROOT/$host/sys-root"
fi
if test "x$DEVKIT_ROOT" != x; then
DEVKIT_LIB_DIR="$DEVKIT_ROOT/lib"
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
DEVKIT_LIB_DIR="$DEVKIT_ROOT/lib64"
fi
AC_SUBST(DEVKIT_LIB_DIR)
fi
fi
# You can force the sysroot if the sysroot encoded into the compiler tools
# is not correct.
AC_ARG_WITH(sys-root, [AS_HELP_STRING([--with-sys-root],
[alias for --with-sysroot for backwards compatability])],
[SYSROOT=$with_sys_root]
)
AC_ARG_WITH(sysroot, [AS_HELP_STRING([--with-sysroot],
[use this directory as sysroot])],
[SYSROOT=$with_sysroot]
)
AC_ARG_WITH([tools-dir], [AS_HELP_STRING([--with-tools-dir],
[alias for --with-toolchain-path for backwards compatibility])],
[UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],$with_tools_dir)]
)
AC_ARG_WITH([toolchain-path], [AS_HELP_STRING([--with-toolchain-path],
[prepend these directories when searching for toolchain binaries (compilers etc)])],
[UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],$with_toolchain_path)]
)
AC_ARG_WITH([xcode-path], [AS_HELP_STRING([--with-xcode-path],
[set up toolchain on Mac OS using a path to an Xcode installation])])
if test "x$with_xcode_path" != x; then
if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then
UTIL_PREPEND_TO_PATH([TOOLCHAIN_PATH],
$with_xcode_path/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:$with_xcode_path/Contents/Developer/usr/bin)
else
AC_MSG_WARN([Option --with-xcode-path is only valid on Mac OS, ignoring.])
fi
fi
AC_ARG_WITH([extra-path], [AS_HELP_STRING([--with-extra-path],
[prepend these directories to the default path])],
[UTIL_PREPEND_TO_PATH([EXTRA_PATH],$with_extra_path)]
)
if test "x$OPENJDK_BUILD_OS" = "xmacosx"; then
# If a devkit has been supplied, find xcodebuild in the toolchain_path.
# If not, detect if Xcode is installed by running xcodebuild -version
# if no Xcode installed, xcodebuild exits with 1
# if Xcode is installed, even if xcode-select is misconfigured, then it exits with 0
if test "x$DEVKIT_ROOT" != x || test "x$TOOLCHAIN_PATH" != x || /usr/bin/xcodebuild -version >/dev/null 2>&1; then
# We need to use xcodebuild in the toolchain dir provided by the user
UTIL_LOOKUP_PROGS(XCODEBUILD, xcodebuild, $TOOLCHAIN_PATH)
if test x$XCODEBUILD = x; then
# fall back on the stub binary in /usr/bin/xcodebuild
XCODEBUILD=/usr/bin/xcodebuild
fi
else
# this should result in SYSROOT being empty, unless --with-sysroot is provided
# when only the command line tools are installed there are no SDKs, so headers
# are copied into the system frameworks
XCODEBUILD=
AC_SUBST(XCODEBUILD)
fi
AC_MSG_CHECKING([for sdk name])
AC_ARG_WITH([sdk-name], [AS_HELP_STRING([--with-sdk-name],
[use the platform SDK of the given name. @<:@macosx@:>@])],
[SDKNAME=$with_sdk_name]
)
AC_MSG_RESULT([$SDKNAME])
# if toolchain path is specified then don't rely on system headers, they may not compile
HAVE_SYSTEM_FRAMEWORK_HEADERS=0
test -z "$TOOLCHAIN_PATH" && \
HAVE_SYSTEM_FRAMEWORK_HEADERS=`test ! -f /System/Library/Frameworks/Foundation.framework/Headers/Foundation.h; echo $?`
if test -z "$SYSROOT"; then
if test -n "$XCODEBUILD"; then
# if we don't have system headers, use default SDK name (last resort)
if test -z "$SDKNAME" -a $HAVE_SYSTEM_FRAMEWORK_HEADERS -eq 0; then
SDKNAME=${SDKNAME:-macosx}
fi
if test -n "$SDKNAME"; then
# Call xcodebuild to determine SYSROOT
SYSROOT=`"$XCODEBUILD" -sdk $SDKNAME -version | $GREP '^Path: ' | $SED 's/Path: //'`
fi
else
if test $HAVE_SYSTEM_FRAMEWORK_HEADERS -eq 0; then
AC_MSG_ERROR([No xcodebuild tool and no system framework headers found, use --with-sysroot or --with-sdk-name to provide a path to a valid SDK])
fi
fi
else
# warn user if --with-sdk-name was also set
if test -n "$with_sdk_name"; then
AC_MSG_WARN([Both SYSROOT and --with-sdk-name are set, only SYSROOT will be used])
fi
fi
if test $HAVE_SYSTEM_FRAMEWORK_HEADERS -eq 0 -a -z "$SYSROOT"; then
# If no system framework headers, then SYSROOT must be set, or we won't build
AC_MSG_ERROR([Unable to determine SYSROOT and no headers found in /System/Library/Frameworks. Check Xcode configuration, --with-sysroot or --with-sdk-name arguments.])
fi
# Perform a basic sanity test
if test ! -f "$SYSROOT/System/Library/Frameworks/Foundation.framework/Headers/Foundation.h"; then
if test -z "$SYSROOT"; then
AC_MSG_ERROR([Unable to find required framework headers, provide a path to an SDK via --with-sysroot or --with-sdk-name and be sure Xcode is installed properly])
else
AC_MSG_ERROR([Invalid SDK or SYSROOT path, dependent framework headers not found])
fi
fi
# set SDKROOT too, Xcode tools will pick it up
SDKROOT="$SYSROOT"
AC_SUBST(SDKROOT)
fi
# Prepend the extra path to the global path
UTIL_PREPEND_TO_PATH([PATH],$EXTRA_PATH)
AC_MSG_CHECKING([for sysroot])
AC_MSG_RESULT([$SYSROOT])
AC_MSG_CHECKING([for toolchain path])
AC_MSG_RESULT([$TOOLCHAIN_PATH])
AC_SUBST(TOOLCHAIN_PATH)
AC_MSG_CHECKING([for extra path])
AC_MSG_RESULT([$EXTRA_PATH])
])
###############################################################################
AC_DEFUN_ONCE([BASIC_SETUP_OUTPUT_DIR],
[
AC_ARG_WITH(conf-name, [AS_HELP_STRING([--with-conf-name],
[use this as the name of the configuration @<:@generated from important configuration options@:>@])],
[ CONF_NAME=${with_conf_name} ])
# Test from where we are running configure, in or outside of src root.
AC_MSG_CHECKING([where to store configuration])
if test "x$CONFIGURE_START_DIR" = "x$TOPDIR" \
|| test "x$CONFIGURE_START_DIR" = "x$CUSTOM_ROOT" \
|| test "x$CONFIGURE_START_DIR" = "x$TOPDIR/make/autoconf" \
|| test "x$CONFIGURE_START_DIR" = "x$TOPDIR/make" ; then
# We are running configure from the src root.
# Create a default ./build/target-variant-debuglevel output root.
if test "x${CONF_NAME}" = x; then
AC_MSG_RESULT([in default location])
CONF_NAME="${OPENJDK_TARGET_OS}-${OPENJDK_TARGET_CPU}-${JDK_VARIANT}-${JVM_VARIANTS_WITH_AND}-${DEBUG_LEVEL}"
else
AC_MSG_RESULT([in build directory with custom name])
fi
OUTPUTDIR="${WORKSPACE_ROOT}/build/${CONF_NAME}"
$MKDIR -p "$OUTPUTDIR"
if test ! -d "$OUTPUTDIR"; then
AC_MSG_ERROR([Could not create build directory $OUTPUTDIR])
fi
else
# We are running configure from outside of the src dir.
# Then use the current directory as output dir!
# If configuration is situated in normal build directory, just use the build
# directory name as configuration name, otherwise use the complete path.
if test "x${CONF_NAME}" = x; then
CONF_NAME=`$ECHO $CONFIGURE_START_DIR | $SED -e "s!^${TOPDIR}/build/!!"`
fi
OUTPUTDIR="$CONFIGURE_START_DIR"
AC_MSG_RESULT([in current directory])
# WARNING: This might be a bad thing to do. You need to be sure you want to
# have a configuration in this directory. Do some sanity checks!
if test ! -e "$OUTPUTDIR/spec.gmk"; then
# If we have a spec.gmk, we have run here before and we are OK. Otherwise, check for
# other files
files_present=`$LS $OUTPUTDIR`
# Configure has already touched config.log and confdefs.h in the current dir when this check
# is performed.
filtered_files=`$ECHO "$files_present" \
| $SED -e 's/config.log//g' \
-e 's/configure.log//g' \
-e 's/confdefs.h//g' \
-e 's/configure-support//g' \
-e 's/ //g' \
| $TR -d '\n'`
if test "x$filtered_files" != x; then
AC_MSG_NOTICE([Current directory is $CONFIGURE_START_DIR.])
AC_MSG_NOTICE([Since this is not the source root, configure will output the configuration here])
AC_MSG_NOTICE([(as opposed to creating a configuration in <src_root>/build/<conf-name>).])
AC_MSG_NOTICE([However, this directory is not empty. This is not allowed, since it could])
AC_MSG_NOTICE([seriously mess up just about everything.])
AC_MSG_NOTICE([Try 'cd $TOPDIR' and restart configure])
AC_MSG_NOTICE([(or create a new empty directory and cd to it).])
AC_MSG_ERROR([Will not continue creating configuration in $CONFIGURE_START_DIR])
fi
fi
fi
AC_MSG_CHECKING([what configuration name to use])
AC_MSG_RESULT([$CONF_NAME])
BASIC_WINDOWS_VERIFY_DIR($OUTPUTDIR, output)
UTIL_FIXUP_PATH(OUTPUTDIR)
CONFIGURESUPPORT_OUTPUTDIR="$OUTPUTDIR/configure-support"
$MKDIR -p "$CONFIGURESUPPORT_OUTPUTDIR"
SPEC="$OUTPUTDIR/spec.gmk"
AC_SUBST(SPEC)
AC_SUBST(CONF_NAME)
AC_SUBST(OUTPUTDIR)
AC_SUBST(CONFIGURESUPPORT_OUTPUTDIR)
# The spec.gmk file contains all variables for the make system.
AC_CONFIG_FILES([$OUTPUTDIR/spec.gmk:$AUTOCONF_DIR/spec.gmk.in])
# The bootcycle-spec.gmk file contains support for boot cycle builds.
AC_CONFIG_FILES([$OUTPUTDIR/bootcycle-spec.gmk:$AUTOCONF_DIR/bootcycle-spec.gmk.in])
# The buildjdk-spec.gmk file contains support for building a buildjdk when cross compiling.
AC_CONFIG_FILES([$OUTPUTDIR/buildjdk-spec.gmk:$AUTOCONF_DIR/buildjdk-spec.gmk.in])
# The compare.sh is used to compare the build output to other builds.
AC_CONFIG_FILES([$OUTPUTDIR/compare.sh:$AUTOCONF_DIR/compare.sh.in])
# The generated Makefile knows where the spec.gmk is and where the source is.
# You can run make from the OUTPUTDIR, or from the top-level Makefile
# which will look for generated configurations
AC_CONFIG_FILES([$OUTPUTDIR/Makefile:$AUTOCONF_DIR/Makefile.in])
])
###############################################################################
# Check if build directory is on local disk. If not possible to determine,
# we prefer to claim it's local.
# Argument 1: directory to test
# Argument 2: what to do if it is on local disk
# Argument 3: what to do otherwise (remote disk or failure)
AC_DEFUN([BASIC_CHECK_DIR_ON_LOCAL_DISK],
[
# df -l lists only local disks; if the given directory is not found then
# a non-zero exit code is given
if test "x$DF" = x; then
# No df here, say it's local
$2
else
# JDK-8189619
# df on AIX does not understand -l. On modern AIXes it understands "-T local" which
# is the same. On older AIXes we just continue to live with a "not local build" warning.
if test "x$OPENJDK_TARGET_OS" = xaix; then
DF_LOCAL_ONLY_OPTION='-T local'
else
DF_LOCAL_ONLY_OPTION='-l'
fi
if $DF $DF_LOCAL_ONLY_OPTION $1 > /dev/null 2>&1; then
$2
else
# In WSL, local Windows drives are considered remote by df, but we are
# required to build into a directory accessible from windows, so consider
# them local here.
$3
fi
fi
])
###############################################################################
# Check that source files have basic read permissions set. This might
# not be the case in cygwin in certain conditions.
AC_DEFUN_ONCE([BASIC_CHECK_SRC_PERMS],
[
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
file_to_test="$TOPDIR/LICENSE"
if test `$STAT -c '%a' "$file_to_test"` -lt 400; then
AC_MSG_ERROR([Bad file permissions on src files. This is usually caused by cloning the repositories with a non cygwin hg in a directory not created in cygwin.])
fi
fi
])
###############################################################################
AC_DEFUN_ONCE([BASIC_TEST_USABILITY_ISSUES],
[
AC_MSG_CHECKING([if build directory is on local disk])
BASIC_CHECK_DIR_ON_LOCAL_DISK($OUTPUTDIR,
[OUTPUT_DIR_IS_LOCAL="yes"],
[OUTPUT_DIR_IS_LOCAL="no"])
AC_MSG_RESULT($OUTPUT_DIR_IS_LOCAL)
BASIC_CHECK_SRC_PERMS
# Check if the user has any old-style ALT_ variables set.
FOUND_ALT_VARIABLES=`env | grep ^ALT_`
# Before generating output files, test if they exist. If they do, this is a reconfigure.
# Since we can't properly handle the dependencies for this, warn the user about the situation
if test -e $OUTPUTDIR/spec.gmk; then
IS_RECONFIGURE=yes
else
IS_RECONFIGURE=no
fi
])
################################################################################
#
# Default make target
#
AC_DEFUN_ONCE([BASIC_SETUP_DEFAULT_MAKE_TARGET],
[
AC_ARG_WITH(default-make-target, [AS_HELP_STRING([--with-default-make-target],
[set the default make target @<:@exploded-image@:>@])])
if test "x$with_default_make_target" = "x" \
|| test "x$with_default_make_target" = "xyes"; then
DEFAULT_MAKE_TARGET="exploded-image"
elif test "x$with_default_make_target" = "xno"; then
AC_MSG_ERROR([--without-default-make-target is not a valid option])
else
DEFAULT_MAKE_TARGET="$with_default_make_target"
fi
AC_SUBST(DEFAULT_MAKE_TARGET)
])
###############################################################################
# Setup the default value for LOG=
#
AC_DEFUN_ONCE([BASIC_SETUP_DEFAULT_LOG],
[
AC_ARG_WITH(log, [AS_HELP_STRING([--with-log],
[[default vaue for make LOG argument [warn]]])])
AC_MSG_CHECKING([for default LOG value])
if test "x$with_log" = x; then
DEFAULT_LOG=""
else
# Syntax for valid LOG options is a bit too complex for it to be worth
# implementing a test for correctness in configure. Just accept it.
DEFAULT_LOG=$with_log
fi
AC_MSG_RESULT([$DEFAULT_LOG])
AC_SUBST(DEFAULT_LOG)
])
###############################################################################
# Code to run after AC_OUTPUT
AC_DEFUN_ONCE([BASIC_POST_CONFIG_OUTPUT],
[
# Try to move config.log (generated by autoconf) to the configure-support directory.
if test -e ./config.log; then
$MV -f ./config.log "$CONFIGURESUPPORT_OUTPUTDIR/config.log" 2> /dev/null
fi
# Rotate our log file (configure.log)
if test -e "$OUTPUTDIR/configure.log.old"; then
$RM -f "$OUTPUTDIR/configure.log.old"
fi
if test -e "$OUTPUTDIR/configure.log"; then
$MV -f "$OUTPUTDIR/configure.log" "$OUTPUTDIR/configure.log.old" 2> /dev/null
fi
# Move configure.log from current directory to the build output root
if test -e ./configure.log; then
$MV -f ./configure.log "$OUTPUTDIR/configure.log" 2> /dev/null
fi
# Make the compare script executable
$CHMOD +x $OUTPUTDIR/compare.sh
])

View File

@@ -1,453 +0,0 @@
#
# Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation. Oracle designates this
# particular file as subject to the "Classpath" exception as provided
# by Oracle in the LICENSE file that accompanied this code.
#
# This code is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
# or visit www.oracle.com if you need additional information or have any
# questions.
#
###############################################################################
# Setup the most fundamental tools, used for setting up build platform and
# path handling.
AC_DEFUN_ONCE([BASIC_SETUP_FUNDAMENTAL_TOOLS],
[
# Bootstrapping: These tools are needed by UTIL_LOOKUP_PROGS
AC_PATH_PROGS(BASENAME, basename)
UTIL_CHECK_NONEMPTY(BASENAME)
AC_PATH_PROGS(DIRNAME, dirname)
UTIL_CHECK_NONEMPTY(DIRNAME)
AC_PATH_PROGS(FILE, file)
UTIL_CHECK_NONEMPTY(FILE)
AC_PATH_PROGS(LDD, ldd)
# Required tools
UTIL_REQUIRE_PROGS(ECHO, echo)
UTIL_REQUIRE_PROGS(TR, tr)
UTIL_REQUIRE_PROGS(UNAME, uname)
UTIL_REQUIRE_PROGS(WC, wc)
# Required tools with some special treatment
UTIL_REQUIRE_SPECIAL(GREP, [AC_PROG_GREP])
UTIL_REQUIRE_SPECIAL(EGREP, [AC_PROG_EGREP])
UTIL_REQUIRE_SPECIAL(SED, [AC_PROG_SED])
# Tools only needed on some platforms
UTIL_LOOKUP_PROGS(PATHTOOL, cygpath wslpath)
UTIL_LOOKUP_PROGS(CMD, cmd.exe, $PATH:/cygdrive/c/windows/system32:/mnt/c/windows/system32:/c/windows/system32)
])
###############################################################################
# Setup further tools that should be resolved early but after setting up
# build platform and path handling.
AC_DEFUN_ONCE([BASIC_SETUP_TOOLS],
[
# Required tools
UTIL_REQUIRE_PROGS(BASH, bash)
UTIL_REQUIRE_PROGS(CAT, cat)
UTIL_REQUIRE_PROGS(CHMOD, chmod)
UTIL_REQUIRE_PROGS(CP, cp)
UTIL_REQUIRE_PROGS(CUT, cut)
UTIL_REQUIRE_PROGS(DATE, date)
UTIL_REQUIRE_PROGS(DIFF, gdiff diff)
UTIL_REQUIRE_PROGS(EXPR, expr)
UTIL_REQUIRE_PROGS(FIND, find)
UTIL_REQUIRE_PROGS(GUNZIP, gunzip)
UTIL_REQUIRE_PROGS(GZIP, pigz gzip)
UTIL_REQUIRE_PROGS(HEAD, head)
UTIL_REQUIRE_PROGS(LN, ln)
UTIL_REQUIRE_PROGS(LS, ls)
# gmkdir is known to be safe for concurrent invocations with -p flag.
UTIL_REQUIRE_PROGS(MKDIR, gmkdir mkdir)
UTIL_REQUIRE_PROGS(MKTEMP, mktemp)
UTIL_REQUIRE_PROGS(MV, mv)
UTIL_REQUIRE_PROGS(NAWK, nawk gawk awk)
UTIL_REQUIRE_PROGS(PRINTF, printf)
UTIL_REQUIRE_PROGS(RM, rm)
UTIL_REQUIRE_PROGS(RMDIR, rmdir)
UTIL_REQUIRE_PROGS(SH, sh)
UTIL_REQUIRE_PROGS(SORT, sort)
UTIL_REQUIRE_PROGS(TAIL, tail)
UTIL_REQUIRE_PROGS(TAR, gtar tar)
UTIL_REQUIRE_PROGS(TEE, tee)
UTIL_REQUIRE_PROGS(TOUCH, touch)
UTIL_REQUIRE_PROGS(WHICH, which)
UTIL_REQUIRE_PROGS(XARGS, xargs)
# Required tools with some special treatment
UTIL_REQUIRE_SPECIAL(AWK, [AC_PROG_AWK])
UTIL_REQUIRE_SPECIAL(FGREP, [AC_PROG_FGREP])
# Optional tools, we can do without them
UTIL_LOOKUP_PROGS(DF, df)
UTIL_LOOKUP_PROGS(NICE, nice)
UTIL_LOOKUP_PROGS(READLINK, greadlink readlink)
# Tools only needed on some platforms
UTIL_LOOKUP_PROGS(LSB_RELEASE, lsb_release)
# For compare.sh only
UTIL_LOOKUP_PROGS(CMP, cmp)
UTIL_LOOKUP_PROGS(UNIQ, uniq)
# Always force rm.
RM="$RM -f"
])
###############################################################################
# Check if we have found a usable version of make
# $1: the path to a potential make binary (or empty)
# $2: the description on how we found this
AC_DEFUN([BASIC_CHECK_MAKE_VERSION],
[
MAKE_CANDIDATE="$1"
DESCRIPTION="$2"
# On Cygwin, we require a newer version of make than on other platforms
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
MAKE_VERSION_EXPR="-e 4\."
MAKE_REQUIRED_VERSION="4.0"
else
MAKE_VERSION_EXPR="-e 3\.8[[12]] -e 4\."
MAKE_REQUIRED_VERSION="3.81"
fi
if test "x$MAKE_CANDIDATE" != x; then
AC_MSG_NOTICE([Testing potential make at $MAKE_CANDIDATE, found using $DESCRIPTION])
MAKE_VERSION_STRING=`$MAKE_CANDIDATE --version | $HEAD -n 1`
IS_GNU_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP 'GNU Make'`
if test "x$IS_GNU_MAKE" = x; then
AC_MSG_NOTICE([Found potential make at $MAKE_CANDIDATE, however, this is not GNU Make. Ignoring.])
else
IS_MODERN_MAKE=`$ECHO $MAKE_VERSION_STRING | $GREP $MAKE_VERSION_EXPR`
if test "x$IS_MODERN_MAKE" = x; then
AC_MSG_NOTICE([Found GNU make at $MAKE_CANDIDATE, however this is not version $MAKE_REQUIRED_VERSION or later. (it is: $MAKE_VERSION_STRING). Ignoring.])
else
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
MAKE_EXPECTED_ENV='cygwin'
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys2"; then
MAKE_EXPECTED_ENV='msys'
else
AC_MSG_ERROR([Unknown Windows environment])
fi
MAKE_BUILT_FOR=`$MAKE_CANDIDATE --version | $GREP -i 'built for'`
IS_MAKE_CORRECT_ENV=`$ECHO $MAKE_BUILT_FOR | $GREP $MAKE_EXPECTED_ENV`
else
# Not relevant for non-Windows
IS_MAKE_CORRECT_ENV=true
fi
if test "x$IS_MAKE_CORRECT_ENV" = x; then
AC_MSG_NOTICE([Found GNU make version $MAKE_VERSION_STRING at $MAKE_CANDIDATE, but it is not for $MAKE_EXPECTED_ENV (it says: $MAKE_BUILT_FOR). Ignoring.])
else
FOUND_MAKE=$MAKE_CANDIDATE
UTIL_FIXUP_EXECUTABLE(FOUND_MAKE)
fi
fi
fi
fi
])
###############################################################################
AC_DEFUN([BASIC_CHECK_MAKE_OUTPUT_SYNC],
[
# Check if make supports the output sync option and if so, setup using it.
UTIL_ARG_WITH(NAME: output-sync, TYPE: literal,
VALID_VALUES: [none recurse line target], DEFAULT: none,
OPTIONAL: true, ENABLED_DEFAULT: true,
ENABLED_RESULT: OUTPUT_SYNC_SUPPORTED,
CHECKING_MSG: [for make --output-sync value],
DESC: [set make --output-sync type if supported by make],
CHECK_AVAILABLE:
[
AC_MSG_CHECKING([if make --output-sync is supported])
if ! $MAKE --version -O > /dev/null 2>&1; then
AC_MSG_RESULT([no])
AVAILABLE=false
else
AC_MSG_RESULT([yes])
fi
]
)
AC_SUBST(OUTPUT_SYNC_SUPPORTED)
AC_SUBST(OUTPUT_SYNC)
])
###############################################################################
# Goes looking for a usable version of GNU make.
AC_DEFUN([BASIC_CHECK_GNU_MAKE],
[
UTIL_SETUP_TOOL(MAKE,
[
# Try our hardest to locate a correct version of GNU make
UTIL_LOOKUP_PROGS(CHECK_GMAKE, gmake)
BASIC_CHECK_MAKE_VERSION("$CHECK_GMAKE", [gmake in PATH])
if test "x$FOUND_MAKE" = x; then
UTIL_LOOKUP_PROGS(CHECK_MAKE, make)
BASIC_CHECK_MAKE_VERSION("$CHECK_MAKE", [make in PATH])
fi
if test "x$FOUND_MAKE" = x; then
if test "x$TOOLCHAIN_PATH" != x; then
# We have a toolchain path, check that as well before giving up.
OLD_PATH=$PATH
PATH=$TOOLCHAIN_PATH:$PATH
UTIL_LOOKUP_PROGS(CHECK_TOOLSDIR_GMAKE, gmake)
BASIC_CHECK_MAKE_VERSION("$CHECK_TOOLSDIR_GMAKE", [gmake in tools-dir])
if test "x$FOUND_MAKE" = x; then
UTIL_LOOKUP_PROGS(CHECK_TOOLSDIR_MAKE, make)
BASIC_CHECK_MAKE_VERSION("$CHECK_TOOLSDIR_MAKE", [make in tools-dir])
fi
PATH=$OLD_PATH
fi
fi
if test "x$FOUND_MAKE" = x; then
AC_MSG_ERROR([Cannot find GNU make $MAKE_REQUIRED_VERSION or newer! Please put it in the path, or add e.g. MAKE=/opt/gmake3.81/make as argument to configure.])
fi
],[
# If MAKE was set by user, verify the version
BASIC_CHECK_MAKE_VERSION("$MAKE", [user supplied MAKE=$MAKE])
if test "x$FOUND_MAKE" = x; then
AC_MSG_ERROR([The specified make (by MAKE=$MAKE) is not GNU make $MAKE_REQUIRED_VERSION or newer.])
fi
])
MAKE=$FOUND_MAKE
AC_SUBST(MAKE)
AC_MSG_NOTICE([Using GNU make at $FOUND_MAKE (version: $MAKE_VERSION_STRING)])
BASIC_CHECK_MAKE_OUTPUT_SYNC
])
###############################################################################
AC_DEFUN([BASIC_CHECK_FIND_DELETE],
[
# Test if find supports -delete
AC_MSG_CHECKING([if find supports -delete])
FIND_DELETE="-delete"
DELETEDIR=`$MKTEMP -d tmp.XXXXXXXXXX` || (echo Could not create temporary directory!; exit $?)
echo Hejsan > $DELETEDIR/TestIfFindSupportsDelete
TEST_DELETE=`$FIND "$DELETEDIR" -name TestIfFindSupportsDelete $FIND_DELETE 2>&1`
if test -f $DELETEDIR/TestIfFindSupportsDelete; then
# No, it does not.
$RM $DELETEDIR/TestIfFindSupportsDelete
if test "x$OPENJDK_TARGET_OS" = "xaix"; then
# AIX 'find' is buggy if called with '-exec {} \+' and an empty file list
FIND_DELETE="-print | $XARGS $RM"
else
FIND_DELETE="-exec $RM \{\} \+"
fi
AC_MSG_RESULT([no])
else
AC_MSG_RESULT([yes])
fi
$RMDIR $DELETEDIR
AC_SUBST(FIND_DELETE)
])
###############################################################################
AC_DEFUN([BASIC_CHECK_TAR],
[
# Test which kind of tar was found
if test "x$($TAR --version | $GREP "GNU tar")" != "x"; then
TAR_TYPE="gnu"
elif test "x$($TAR --version | $GREP "bsdtar")" != "x"; then
TAR_TYPE="bsd"
elif test "x$($TAR -v | $GREP "bsdtar")" != "x"; then
TAR_TYPE="bsd"
elif test "x$($TAR --version | $GREP "busybox")" != "x"; then
TAR_TYPE="busybox"
elif test "x$OPENJDK_BUILD_OS" = "xsolaris"; then
TAR_TYPE="solaris"
elif test "x$OPENJDK_BUILD_OS" = "xaix"; then
TAR_TYPE="aix"
fi
AC_MSG_CHECKING([what type of tar was found])
AC_MSG_RESULT([$TAR_TYPE])
TAR_CREATE_FILE_PARAM=""
if test "x$TAR_TYPE" = "xgnu"; then
TAR_INCLUDE_PARAM="T"
TAR_SUPPORTS_TRANSFORM="true"
if test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
# When using gnu tar for Solaris targets, need to use compatibility mode
TAR_CREATE_EXTRA_PARAM="--format=ustar"
fi
elif test "x$TAR_TYPE" = "aix"; then
# -L InputList of aix tar: name of file listing the files and directories
# that need to be archived or extracted
TAR_INCLUDE_PARAM="L"
TAR_SUPPORTS_TRANSFORM="false"
elif test "x$TAR_TYPE" = "xbusybox"; then
TAR_INCLUDE_PARAM="T"
TAR_SUPPORTS_TRANSFORM="false"
else
TAR_INCLUDE_PARAM="I"
TAR_SUPPORTS_TRANSFORM="false"
fi
AC_SUBST(TAR_TYPE)
AC_SUBST(TAR_CREATE_EXTRA_PARAM)
AC_SUBST(TAR_INCLUDE_PARAM)
AC_SUBST(TAR_SUPPORTS_TRANSFORM)
])
###############################################################################
AC_DEFUN([BASIC_CHECK_GREP],
[
# Test that grep supports -Fx with a list of pattern which includes null pattern.
# This is a problem for the grep resident on AIX.
AC_MSG_CHECKING([that grep ($GREP) -Fx handles empty lines in the pattern list correctly])
# Multiple subsequent spaces..
STACK_SPACES='aaa bbb ccc'
# ..converted to subsequent newlines, causes STACK_LIST to be a list with some empty
# patterns in it.
STACK_LIST=${STACK_SPACES// /$'\n'}
NEEDLE_SPACES='ccc bbb aaa'
NEEDLE_LIST=${NEEDLE_SPACES// /$'\n'}
RESULT="$($GREP -Fvx "$STACK_LIST" <<< "$NEEDLE_LIST")"
if test "x$RESULT" == "x"; then
AC_MSG_RESULT([yes])
else
if test "x$OPENJDK_TARGET_OS" = "xaix"; then
ADDINFO="Please make sure you use GNU grep, usually found at /opt/freeware/bin."
fi
AC_MSG_ERROR([grep does not handle -Fx correctly. ${ADDINFO}])
fi
])
###############################################################################
AC_DEFUN_ONCE([BASIC_SETUP_COMPLEX_TOOLS],
[
BASIC_CHECK_GNU_MAKE
BASIC_CHECK_FIND_DELETE
BASIC_CHECK_TAR
BASIC_CHECK_GREP
BASIC_SETUP_PANDOC
# These tools might not be installed by default,
# need hint on how to install them.
UTIL_REQUIRE_PROGS(UNZIP, unzip)
# Since zip uses "ZIP" as a environment variable for passing options, we need
# to name our variable differently, hence ZIPEXE.
UTIL_REQUIRE_PROGS(ZIPEXE, zip)
# Non-required basic tools
UTIL_LOOKUP_PROGS(READELF, greadelf readelf)
UTIL_LOOKUP_PROGS(DOT, dot)
UTIL_LOOKUP_PROGS(HG, hg)
UTIL_LOOKUP_PROGS(GIT, git)
UTIL_LOOKUP_PROGS(STAT, stat)
UTIL_LOOKUP_PROGS(TIME, time)
UTIL_LOOKUP_PROGS(FLOCK, flock)
# Dtrace is usually found in /usr/sbin on Solaris, but that directory may not
# be in the user path.
UTIL_LOOKUP_PROGS(DTRACE, dtrace, $PATH:/usr/sbin)
UTIL_LOOKUP_PROGS(PATCH, gpatch patch)
# Check if it's GNU time
IS_GNU_TIME=`$TIME --version 2>&1 | $GREP 'GNU time'`
if test "x$IS_GNU_TIME" != x; then
IS_GNU_TIME=yes
else
IS_GNU_TIME=no
fi
AC_SUBST(IS_GNU_TIME)
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
UTIL_REQUIRE_PROGS(DSYMUTIL, dsymutil)
UTIL_REQUIRE_PROGS(MIG, mig)
UTIL_REQUIRE_PROGS(XATTR, xattr)
UTIL_LOOKUP_PROGS(CODESIGN, codesign)
UTIL_REQUIRE_PROGS(SETFILE, SetFile)
elif test "x$OPENJDK_TARGET_OS" = "xsolaris"; then
UTIL_REQUIRE_PROGS(ELFEDIT, elfedit)
fi
if ! test "x$OPENJDK_TARGET_OS" = "xwindows"; then
UTIL_REQUIRE_PROGS(ULIMIT, ulimit)
fi
])
###############################################################################
# Check for support for specific options in bash
AC_DEFUN_ONCE([BASIC_CHECK_BASH_OPTIONS],
[
# Check bash version
# Extra [ ] to stop m4 mangling
[ BASH_VER=`$BASH --version | $SED -n -e 's/^.*bash.*ersion *\([0-9.]*\).*$/\1/ p'` ]
AC_MSG_CHECKING([bash version])
AC_MSG_RESULT([$BASH_VER])
BASH_MAJOR=`$ECHO $BASH_VER | $CUT -d . -f 1`
BASH_MINOR=`$ECHO $BASH_VER | $CUT -d . -f 2`
if test $BASH_MAJOR -lt 3 || (test $BASH_MAJOR -eq 3 && test $BASH_MINOR -lt 2); then
AC_MSG_ERROR([bash version 3.2 or better is required])
fi
# Test if bash supports pipefail.
AC_MSG_CHECKING([if bash supports pipefail])
if ${BASH} -c 'set -o pipefail'; then
BASH_ARGS="$BASH_ARGS -o pipefail"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
AC_MSG_CHECKING([if bash supports errexit (-e)])
if ${BASH} -e -c 'true'; then
BASH_ARGS="$BASH_ARGS -e"
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
AC_SUBST(BASH_ARGS)
])
################################################################################
#
# Setup Pandoc
#
AC_DEFUN_ONCE([BASIC_SETUP_PANDOC],
[
UTIL_LOOKUP_PROGS(PANDOC, pandoc)
PANDOC_MARKDOWN_FLAG="markdown"
if test -n "$PANDOC"; then
AC_MSG_CHECKING(if the pandoc smart extension needs to be disabled for markdown)
if $PANDOC --list-extensions | $GREP -q '\+smart'; then
AC_MSG_RESULT([yes])
PANDOC_MARKDOWN_FLAG="markdown-smart"
else
AC_MSG_RESULT([no])
fi
fi
if test -n "$PANDOC"; then
ENABLE_PANDOC="true"
else
ENABLE_PANDOC="false"
fi
AC_SUBST(ENABLE_PANDOC)
AC_SUBST(PANDOC_MARKDOWN_FLAG)
])

View File

@@ -1,187 +0,0 @@
#
# 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
# 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.
#
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
AC_DEFUN([BASIC_SETUP_PATHS_WINDOWS],
[
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys2"; then
# Must be done prior to calling any commands to avoid mangling of command line
export MSYS2_ARG_CONV_EXCL="*"
fi
AC_MSG_CHECKING([Windows environment type])
WINENV_VENDOR=${OPENJDK_BUILD_OS_ENV#windows.}
AC_MSG_RESULT([$WINENV_VENDOR])
if test "x$WINENV_VENDOR" = x; then
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin nor msys2 was detected.])
fi
if test "x$PATHTOOL" = x; then
AC_MSG_ERROR([Incorrect $WINENV_VENDOR installation. cygpath was found])
fi
if test "x$CMD" = x; then
AC_MSG_ERROR([Incorrect Windows/$WINENV_VENDOR setup. Could not locate cmd.exe])
fi
AC_MSG_CHECKING([$WINENV_VENDOR drive prefix])
WINENV_PREFIX=`$PATHTOOL -u c:/ | $SED -e 's!/c/!!'`
AC_MSG_RESULT(['$WINENV_PREFIX'])
AC_SUBST(WINENV_PREFIX)
AC_MSG_CHECKING([$WINENV_VENDOR root directory as Windows path])
if test "x$OPENJDK_BUILD_OS_ENV" != "xwindows.wsl1"; then
WINENV_ROOT=`$PATHTOOL -w / 2> /dev/null`
# msys2 has a trailing backslash; strip it
WINENV_ROOT=${WINENV_ROOT%\\}
else
WINENV_ROOT='[[unavailable]]'
fi
AC_MSG_RESULT(['$WINENV_ROOT'])
AC_SUBST(WINENV_ROOT)
AC_MSG_CHECKING([$WINENV_VENDOR temp directory])
WINENV_TEMP_DIR=$($PATHTOOL -u $($CMD /q /c echo %TEMP% 2> /dev/null) | $TR -d '\r\n')
AC_MSG_RESULT([$WINENV_TEMP_DIR])
AC_MSG_CHECKING([$WINENV_VENDOR release])
WINENV_UNAME_RELEASE=`$UNAME -r`
AC_MSG_RESULT([$WINENV_UNAME_RELEASE])
AC_MSG_CHECKING([$WINENV_VENDOR version])
WINENV_UNAME_VERSION=`$UNAME -v`
AC_MSG_RESULT([$WINENV_UNAME_VERSION])
WINENV_VERSION="$WINENV_UNAME_RELEASE, $WINENV_UNAME_VERSION"
AC_MSG_CHECKING([Windows version])
# We must change directory to one guaranteed to work, otherwise WSL1
# can complain (since it does not have a WINENV_ROOT so it can't access
# unix-style paths from Windows.
# Additional [] needed to keep m4 from mangling shell constructs.
[ WINDOWS_VERSION=`cd $WINENV_TEMP_DIR && $CMD /c ver | $EGREP -o '([0-9]+\.)+[0-9]+'` ]
AC_MSG_RESULT([$WINDOWS_VERSION])
# Additional handling per specific env
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
# Additional [] needed to keep m4 from mangling shell constructs.
[ CYGWIN_VERSION_OLD=`$ECHO $WINENV_UNAME_RELEASE | $GREP -e '^1\.[0-6]'` ]
if test "x$CYGWIN_VERSION_OLD" != x; then
AC_MSG_NOTICE([Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade.])
AC_MSG_ERROR([Cannot continue])
fi
if test "x$LDD" = x; then
AC_MSG_ERROR([ldd is missing, which is needed on cygwin])
fi
WINENV_MARKER_DLL=cygwin1.dll
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys2"; then
if test "x$LDD" = x; then
AC_MSG_ERROR([ldd is missing, which is needed on msys2])
fi
WINENV_MARKER_DLL=msys-2.0.dll
fi
# Chicken and egg: FIXPATH is needed for UTIL_FIXUP_PATH to work. So for the
# first run we use the auto-detect abilities of fixpath.sh.
FIXPATH_DIR="$TOPDIR/make/scripts"
FIXPATH="$BASH $FIXPATH_DIR/fixpath.sh exec"
FIXPATH_BASE="$BASH $FIXPATH_DIR/fixpath.sh"
FIXPATH_SAVED_PATH="$PATH"
UTIL_FIXUP_PATH(FIXPATH_DIR)
# Now we can use FIXPATH_DIR to rewrite path to fixpath.sh properly.
if test "x$WINENV_PREFIX" = x; then
# On msys the prefix is empty, but we need to pass something to have the
# fixpath.sh options parser happy.
WINENV_PREFIX_ARG="NONE"
else
WINENV_PREFIX_ARG="$WINENV_PREFIX"
fi
FIXPATH_ARGS="-e $PATHTOOL -p $WINENV_PREFIX_ARG -r ${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR -c $CMD -q"
FIXPATH_BASE="$BASH $FIXPATH_DIR/fixpath.sh $FIXPATH_ARGS"
FIXPATH="$FIXPATH_BASE exec"
AC_SUBST(FIXPATH_BASE)
AC_SUBST(FIXPATH)
SRC_ROOT_LENGTH=`$ECHO "$TOPDIR" | $WC -m`
if test $SRC_ROOT_LENGTH -gt 100; then
AC_MSG_ERROR([Your base path is too long. It is $SRC_ROOT_LENGTH characters long, but only 100 is supported])
fi
# Test if windows or unix "find" is first in path.
AC_MSG_CHECKING([what kind of 'find' is first on the PATH])
FIND_BINARY_OUTPUT=`find --version 2>&1`
if test "x`echo $FIND_BINARY_OUTPUT | $GREP GNU`" != x; then
AC_MSG_RESULT([unix style])
elif test "x`echo $FIND_BINARY_OUTPUT | $GREP FIND`" != x; then
AC_MSG_RESULT([Windows])
AC_MSG_NOTICE([Your path contains Windows tools (C:\Windows\system32) before your unix tools.])
AC_MSG_NOTICE([This will not work. Please correct and make sure /usr/bin (or similar) is first in path.])
AC_MSG_ERROR([Cannot continue])
else
AC_MSG_RESULT([unknown])
AC_MSG_WARN([It seems that your find utility is non-standard.])
fi
])
# Verify that the directory is usable on Windows
AC_DEFUN([BASIC_WINDOWS_VERIFY_DIR],
[
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl1"; then
OUTPUTDIR_WIN=`$FIXPATH_BASE print $1`
if test "x$OUTPUTDIR_WIN" = x; then
AC_MSG_NOTICE([For wsl1, the $2 dir must be located on a Windows drive. Please see doc/building.md for details.])
AC_MSG_ERROR([Cannot continue])
fi
fi
])
# Create fixpath wrapper
AC_DEFUN([BASIC_WINDOWS_FINALIZE_FIXPATH],
[
if test "x$OPENJDK_BUILD_OS" = xwindows; then
FIXPATH_CMDLINE=". $TOPDIR/make/scripts/fixpath.sh -e $PATHTOOL \
-p $WINENV_PREFIX_ARG -r ${WINENV_ROOT//\\/\\\\} -t $WINENV_TEMP_DIR \
-c $CMD -q"
$ECHO > $OUTPUTDIR/fixpath '#!/bin/bash'
$ECHO >> $OUTPUTDIR/fixpath export PATH='"[$]PATH:'$PATH'"'
$ECHO >> $OUTPUTDIR/fixpath $FIXPATH_CMDLINE '"[$]@"'
$CHMOD +x $OUTPUTDIR/fixpath
FIXPATH_BASE="$OUTPUTDIR/fixpath"
FIXPATH="$FIXPATH_BASE exec"
fi
])
# Platform-specific finalization
AC_DEFUN([BASIC_WINDOWS_FINALIZE],
[
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.wsl2"; then
# Change back from temp dir
cd $CONFIGURE_START_DIR
fi
])

1410
make/autoconf/basics.m4 Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,432 @@
#
# 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
# 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.
#
AC_DEFUN([BASIC_WINDOWS_REWRITE_AS_UNIX_PATH],
[
windows_path="[$]$1"
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
unix_path=`$CYGPATH -u "$windows_path"`
$1="$unix_path"
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
unix_path=`$ECHO "$windows_path" | $SED -e 's,^\\(.\\):,/\\1,g' -e 's,\\\\,/,g'`
$1="$unix_path"
fi
])
AC_DEFUN([BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH],
[
unix_path="[$]$1"
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
windows_path=`$CYGPATH -m "$unix_path"`
$1="$windows_path"
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
windows_path=`cmd //c echo $unix_path`
$1="$windows_path"
fi
])
# Helper function which possibly converts a path using DOS-style short mode.
# If so, the updated path is stored in $new_path.
# $1: The path to check
AC_DEFUN([BASIC_MAKE_WINDOWS_SPACE_SAFE_CYGWIN],
[
input_path="$1"
# Check if we need to convert this using DOS-style short mode. If the path
# contains just simple characters, use it. Otherwise (spaces, weird characters),
# take no chances and rewrite it.
# Note: m4 eats our [], so we need to use @<:@ and @:>@ instead.
has_forbidden_chars=`$ECHO "$input_path" | $GREP @<:@^-._/a-zA-Z0-9@:>@`
if test "x$has_forbidden_chars" != x; then
# Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
shortmode_path=`$CYGPATH -s -m -a "$input_path"`
path_after_shortmode=`$CYGPATH -u "$shortmode_path"`
if test "x$path_after_shortmode" != "x$input_to_shortpath"; then
# Going to short mode and back again did indeed matter. Since short mode is
# case insensitive, let's make it lowercase to improve readability.
shortmode_path=`$ECHO "$shortmode_path" | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
# Now convert it back to Unix-style (cygpath)
input_path=`$CYGPATH -u "$shortmode_path"`
new_path="$input_path"
fi
fi
test_cygdrive_prefix=`$ECHO $input_path | $GREP ^/cygdrive/`
if test "x$test_cygdrive_prefix" = x; then
# As a simple fix, exclude /usr/bin since it's not a real path.
if test "x`$ECHO $1 | $GREP ^/usr/bin/`" = x; then
# The path is in a Cygwin special directory (e.g. /home). We need this converted to
# a path prefixed by /cygdrive for fixpath to work.
new_path="$CYGWIN_ROOT_PATH$input_path"
fi
fi
])
# Helper function which possibly converts a path using DOS-style short mode.
# If so, the updated path is stored in $new_path.
# $1: The path to check
AC_DEFUN([BASIC_MAKE_WINDOWS_SPACE_SAFE_MSYS],
[
input_path="$1"
# Check if we need to convert this using DOS-style short mode. If the path
# contains just simple characters, use it. Otherwise (spaces, weird characters),
# take no chances and rewrite it.
# Note: m4 eats our [], so we need to use @<:@ and @:>@ instead.
has_forbidden_chars=`$ECHO "$input_path" | $GREP @<:@^-_/:a-zA-Z0-9@:>@`
if test "x$has_forbidden_chars" != x; then
# Now convert it to mixed DOS-style, short mode (no spaces, and / instead of \)
new_path=`cmd /c "for %A in (\"$input_path\") do @echo %~sA"|$TR \\\\\\\\ / | $TR 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
fi
])
# FIXME: The BASIC_FIXUP_*_CYGWIN/MSYS is most likely too convoluted
# and could probably be heavily simplified. However, all changes in this
# area tend to need lot of testing in different scenarios, and in lack of
# proper unit testing, cleaning this up has not been deemed worth the effort
# at the moment.
AC_DEFUN([BASIC_FIXUP_PATH_CYGWIN],
[
# Input might be given as Windows format, start by converting to
# unix format.
path="[$]$1"
new_path=`$CYGPATH -u "$path"`
# Cygwin tries to hide some aspects of the Windows file system, such that binaries are
# named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
# the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
# "foo.exe" is OK but "foo" is an error.
#
# This test is therefore slightly more accurate than "test -f" to check for file precense.
# It is also a way to make sure we got the proper file name for the real test later on.
test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
if test "x$test_shortpath" = x; then
AC_MSG_NOTICE([The path of $1, which resolves as "$path", is invalid.])
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
# Call helper function which possibly converts this using DOS-style short mode.
# If so, the updated path is stored in $new_path.
BASIC_MAKE_WINDOWS_SPACE_SAFE_CYGWIN([$new_path])
if test "x$path" != "x$new_path"; then
$1="$new_path"
AC_MSG_NOTICE([Rewriting $1 to "$new_path"])
fi
])
AC_DEFUN([BASIC_FIXUP_PATH_MSYS],
[
path="[$]$1"
has_colon=`$ECHO $path | $GREP ^.:`
new_path="$path"
if test "x$has_colon" = x; then
# Not in mixed or Windows style, start by that.
new_path=`cmd //c echo $path`
fi
BASIC_MAKE_WINDOWS_SPACE_SAFE_MSYS([$new_path])
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(new_path)
if test "x$path" != "x$new_path"; then
$1="$new_path"
AC_MSG_NOTICE([Rewriting $1 to "$new_path"])
fi
# Save the first 10 bytes of this path to the storage, so fixpath can work.
all_fixpath_prefixes=("${all_fixpath_prefixes@<:@@@:>@}" "${new_path:0:10}")
])
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_CYGWIN],
[
# First separate the path from the arguments. This will split at the first
# space.
complete="[$]$1"
path="${complete%% *}"
tmp="$complete EOL"
arguments="${tmp#* }"
# Input might be given as Windows format, start by converting to
# unix format.
new_path=`$CYGPATH -u "$path"`
# Now try to locate executable using which
new_path=`$WHICH "$new_path" 2> /dev/null`
# bat and cmd files are not always considered executable in cygwin causing which
# to not find them
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path=`$CYGPATH -u "$path"`
fi
if test "x$new_path" = x; then
# Oops. Which didn't find the executable.
# The splitting of arguments from the executable at a space might have been incorrect,
# since paths with space are more likely in Windows. Give it another try with the whole
# argument.
path="$complete"
arguments="EOL"
new_path=`$CYGPATH -u "$path"`
new_path=`$WHICH "$new_path" 2> /dev/null`
# bat and cmd files are not always considered executable in cygwin causing which
# to not find them
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path=`$CYGPATH -u "$path"`
fi
if test "x$new_path" = x; then
# It's still not found. Now this is an unrecoverable error.
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
has_space=`$ECHO "$complete" | $GREP " "`
if test "x$has_space" != x; then
AC_MSG_NOTICE([You might be mixing spaces in the path and extra arguments, which is not allowed.])
fi
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
fi
# Cygwin tries to hide some aspects of the Windows file system, such that binaries are
# named .exe but called without that suffix. Therefore, "foo" and "foo.exe" are considered
# the same file, most of the time (as in "test -f"). But not when running cygpath -s, then
# "foo.exe" is OK but "foo" is an error.
#
# This test is therefore slightly more accurate than "test -f" to check for file presence.
# It is also a way to make sure we got the proper file name for the real test later on.
test_shortpath=`$CYGPATH -s -m "$new_path" 2> /dev/null`
if test "x$test_shortpath" = x; then
# Short path failed, file does not exist as specified.
# Try adding .exe or .cmd
if test -f "${new_path}.exe"; then
input_to_shortpath="${new_path}.exe"
elif test -f "${new_path}.cmd"; then
input_to_shortpath="${new_path}.cmd"
else
AC_MSG_NOTICE([The path of $1, which resolves as "$new_path", is invalid.])
AC_MSG_NOTICE([Neither "$new_path" nor "$new_path.exe/cmd" can be found])
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
else
input_to_shortpath="$new_path"
fi
# Call helper function which possibly converts this using DOS-style short mode.
# If so, the updated path is stored in $new_path.
new_path="$input_to_shortpath"
BASIC_MAKE_WINDOWS_SPACE_SAFE_CYGWIN([$input_to_shortpath])
# remove trailing .exe if any
new_path="${new_path/%.exe/}"
])
AC_DEFUN([BASIC_FIXUP_EXECUTABLE_MSYS],
[
# First separate the path from the arguments. This will split at the first
# space.
complete="[$]$1"
path="${complete%% *}"
tmp="$complete EOL"
arguments="${tmp#* }"
# Input might be given as Windows format, start by converting to
# unix format.
new_path="$path"
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(new_path)
# Now try to locate executable using which
new_path=`$WHICH "$new_path" 2> /dev/null`
if test "x$new_path" = x; then
# Oops. Which didn't find the executable.
# The splitting of arguments from the executable at a space might have been incorrect,
# since paths with space are more likely in Windows. Give it another try with the whole
# argument.
path="$complete"
arguments="EOL"
new_path="$path"
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(new_path)
new_path=`$WHICH "$new_path" 2> /dev/null`
# bat and cmd files are not always considered executable in MSYS causing which
# to not find them
if test "x$new_path" = x \
&& test "x`$ECHO \"$path\" | $GREP -i -e \"\\.bat$\" -e \"\\.cmd$\"`" != x \
&& test "x`$LS \"$path\" 2>/dev/null`" != x; then
new_path="$path"
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(new_path)
fi
if test "x$new_path" = x; then
# It's still not found. Now this is an unrecoverable error.
AC_MSG_NOTICE([The path of $1, which resolves as "$complete", is not found.])
has_space=`$ECHO "$complete" | $GREP " "`
if test "x$has_space" != x; then
AC_MSG_NOTICE([You might be mixing spaces in the path and extra arguments, which is not allowed.])
fi
AC_MSG_ERROR([Cannot locate the the path of $1])
fi
fi
# Now new_path has a complete unix path to the binary
if test "x`$ECHO $new_path | $GREP ^/bin/`" != x; then
# Keep paths in /bin as-is, but remove trailing .exe if any
new_path="${new_path/%.exe/}"
# Do not save /bin paths to all_fixpath_prefixes!
else
# Not in mixed or Windows style, start by that.
new_path=`cmd //c echo $new_path`
BASIC_MAKE_WINDOWS_SPACE_SAFE_MSYS([$new_path])
# Output is in $new_path
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(new_path)
# remove trailing .exe if any
new_path="${new_path/%.exe/}"
# Save the first 10 bytes of this path to the storage, so fixpath can work.
all_fixpath_prefixes=("${all_fixpath_prefixes@<:@@@:>@}" "${new_path:0:10}")
fi
])
# Setup basic configuration paths, and platform-specific stuff related to PATHs.
AC_DEFUN([BASIC_CHECK_PATHS_WINDOWS],
[
SRC_ROOT_LENGTH=`$THEPWDCMD -L|$WC -m`
if test $SRC_ROOT_LENGTH -gt 100; then
AC_MSG_ERROR([Your base path is too long. It is $SRC_ROOT_LENGTH characters long, but only 100 is supported])
fi
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
AC_MSG_CHECKING([cygwin release])
CYGWIN_VERSION=`$UNAME -r`
AC_MSG_RESULT([$CYGWIN_VERSION])
WINDOWS_ENV_VENDOR='cygwin'
WINDOWS_ENV_VERSION="$CYGWIN_VERSION"
CYGWIN_VERSION_OLD=`$ECHO $CYGWIN_VERSION | $GREP -e '^1\.[0-6]'`
if test "x$CYGWIN_VERSION_OLD" != x; then
AC_MSG_NOTICE([Your cygwin is too old. You are running $CYGWIN_VERSION, but at least cygwin 1.7 is required. Please upgrade.])
AC_MSG_ERROR([Cannot continue])
fi
if test "x$CYGPATH" = x; then
AC_MSG_ERROR([Something is wrong with your cygwin installation since I cannot find cygpath.exe in your path])
fi
AC_MSG_CHECKING([cygwin root directory as unix-style path])
# The cmd output ends with Windows line endings (CR/LF)
cygwin_winpath_root=`cd / ; cmd /c cd | $TR -d '\r\n'`
# Force cygpath to report the proper root by including a trailing space, and then stripping it off again.
CYGWIN_ROOT_PATH=`$CYGPATH -u "$cygwin_winpath_root " | $CUT -f 1 -d " "`
AC_MSG_RESULT([$CYGWIN_ROOT_PATH])
WINDOWS_ENV_ROOT_PATH="$CYGWIN_ROOT_PATH"
test_cygdrive_prefix=`$ECHO $CYGWIN_ROOT_PATH | $GREP ^/cygdrive/`
if test "x$test_cygdrive_prefix" = x; then
AC_MSG_ERROR([Your cygdrive prefix is not /cygdrive. This is currently not supported. Change with mount -c.])
fi
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
AC_MSG_CHECKING([msys release])
MSYS_VERSION=`$UNAME -r`
AC_MSG_RESULT([$MSYS_VERSION])
WINDOWS_ENV_VENDOR='msys'
WINDOWS_ENV_VERSION="$MSYS_VERSION"
AC_MSG_CHECKING([msys root directory as unix-style path])
# The cmd output ends with Windows line endings (CR/LF), the grep command will strip that away
MSYS_ROOT_PATH=`cd / ; cmd /c cd | $GREP ".*"`
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(MSYS_ROOT_PATH)
AC_MSG_RESULT([$MSYS_ROOT_PATH])
WINDOWS_ENV_ROOT_PATH="$MSYS_ROOT_PATH"
else
AC_MSG_ERROR([Unknown Windows environment. Neither cygwin nor msys was detected.])
fi
# Test if windows or unix (cygwin/msys) find is first in path.
AC_MSG_CHECKING([what kind of 'find' is first on the PATH])
FIND_BINARY_OUTPUT=`find --version 2>&1`
if test "x`echo $FIND_BINARY_OUTPUT | $GREP GNU`" != x; then
AC_MSG_RESULT([unix style])
elif test "x`echo $FIND_BINARY_OUTPUT | $GREP FIND`" != x; then
AC_MSG_RESULT([Windows])
AC_MSG_NOTICE([Your path contains Windows tools (C:\Windows\system32) before your unix (cygwin or msys) tools.])
AC_MSG_NOTICE([This will not work. Please correct and make sure /usr/bin (or similar) is first in path.])
AC_MSG_ERROR([Cannot continue])
else
AC_MSG_RESULT([unknown])
AC_MSG_WARN([It seems that your find utility is non-standard.])
fi
])
AC_DEFUN_ONCE([BASIC_COMPILE_FIXPATH],
[
# When using cygwin or msys, we need a wrapper binary that renames
# /cygdrive/c/ arguments into c:/ arguments and peeks into
# @files and rewrites these too! This wrapper binary is
# called fixpath.
FIXPATH=
if test "x$OPENJDK_BUILD_OS" = xwindows; then
AC_MSG_CHECKING([if fixpath can be created])
FIXPATH_SRC="$TOPDIR/make/src/native/fixpath.c"
FIXPATH_BIN="$CONFIGURESUPPORT_OUTPUTDIR/bin/fixpath.exe"
FIXPATH_DIR="$CONFIGURESUPPORT_OUTPUTDIR/fixpath"
if test "x$OPENJDK_BUILD_OS_ENV" = xwindows.cygwin; then
# Important to keep the .exe suffix on Cygwin for Hotspot makefiles
FIXPATH="$FIXPATH_BIN -c"
elif test "x$OPENJDK_BUILD_OS_ENV" = xwindows.msys; then
# Take all collected prefixes and turn them into a -m/c/foo@/c/bar@... command line
# @ was chosen as separator to minimize risk of other tools messing around with it
all_unique_prefixes=`echo "${all_fixpath_prefixes@<:@@@:>@}" \
| tr ' ' '\n' | $GREP '^/./' | $SORT | $UNIQ`
fixpath_argument_list=`echo $all_unique_prefixes | tr ' ' '@'`
FIXPATH="$FIXPATH_BIN -m$fixpath_argument_list"
fi
FIXPATH_SRC_W="$FIXPATH_SRC"
FIXPATH_BIN_W="$FIXPATH_BIN"
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_SRC_W])
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([FIXPATH_BIN_W])
$RM -rf $FIXPATH_BIN $FIXPATH_DIR
$MKDIR -p $FIXPATH_DIR $CONFIGURESUPPORT_OUTPUTDIR/bin
cd $FIXPATH_DIR
$CC $FIXPATH_SRC_W -Fe$FIXPATH_BIN_W > $FIXPATH_DIR/fixpath1.log 2>&1
cd $CURDIR
if test ! -x $FIXPATH_BIN; then
AC_MSG_RESULT([no])
cat $FIXPATH_DIR/fixpath1.log
AC_MSG_ERROR([Could not create $FIXPATH_BIN])
fi
AC_MSG_RESULT([yes])
AC_MSG_CHECKING([if fixpath.exe works])
cd $FIXPATH_DIR
$FIXPATH $CC $FIXPATH_SRC -Fe$FIXPATH_DIR/fixpath2.exe \
> $FIXPATH_DIR/fixpath2.log 2>&1
cd $CURDIR
if test ! -x $FIXPATH_DIR/fixpath2.exe; then
AC_MSG_RESULT([no])
cat $FIXPATH_DIR/fixpath2.log
AC_MSG_ERROR([fixpath did not work!])
fi
AC_MSG_RESULT([yes])
FIXPATH_DETACH_FLAG="--detach"
fi
AC_SUBST(FIXPATH)
AC_SUBST(FIXPATH_DETACH_FLAG)
])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2022, 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
@@ -63,23 +63,18 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
# If previous step claimed to have found a JDK, check it to see if it seems to be valid.
if test "x$BOOT_JDK_FOUND" = xmaybe; then
# Do we have a bin/java?
if test ! -x "$BOOT_JDK/bin/java" && test ! -x "$BOOT_JDK/bin/java.exe"; then
if test ! -x "$BOOT_JDK/bin/java"; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/java; ignoring])
BOOT_JDK_FOUND=no
else
# Do we have a bin/javac?
if test ! -x "$BOOT_JDK/bin/javac" && test ! -x "$BOOT_JDK/bin/javac.exe"; then
if test ! -x "$BOOT_JDK/bin/javac"; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK did not contain bin/javac; ignoring])
AC_MSG_NOTICE([(This might be an JRE instead of an JDK)])
BOOT_JDK_FOUND=no
else
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
java_to_test="$BOOT_JDK/bin/java"
UTIL_FIXUP_EXECUTABLE(java_to_test)
BOOT_JDK_VERSION_OUTPUT=`$java_to_test $USER_BOOT_JDK_OPTIONS -version 2>&1`
# Additional [] needed to keep m4 from mangling shell constructs.
[ BOOT_JDK_VERSION=`echo $BOOT_JDK_VERSION_OUTPUT | $AWK '/version "[0-9a-zA-Z\._\-]+"/ {print $ 0; exit;}'` ]
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $HEAD -n 1`
if [ [[ "$BOOT_JDK_VERSION" =~ "Picked up" ]] ]; then
AC_MSG_NOTICE([You have _JAVA_OPTIONS or JAVA_TOOL_OPTIONS set. This can mess up the build. Please use --with-boot-jdk-jvmargs instead.])
AC_MSG_NOTICE([Java reports: "$BOOT_JDK_VERSION".])
@@ -95,25 +90,18 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
# Extra M4 quote needed to protect [] in grep expression.
[FOUND_CORRECT_VERSION=`$ECHO $BOOT_JDK_VERSION \
| $EGREP "\"(${DEFAULT_ACCEPTABLE_BOOT_VERSIONS// /|})([\.+-].*)?\""`]
if test "x$BOOT_JDK_VERSION" = x; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is not a working JDK; ignoring])
AC_MSG_NOTICE([Output from java -version was: $BOOT_JDK_VERSION_OUTPUT])
BOOT_JDK_FOUND=no
elif test "x$FOUND_CORRECT_VERSION" = x; then
if test "x$FOUND_CORRECT_VERSION" = x; then
AC_MSG_NOTICE([Potential Boot JDK found at $BOOT_JDK is incorrect JDK version ($BOOT_JDK_VERSION); ignoring])
AC_MSG_NOTICE([(Your Boot JDK version must be one of: $DEFAULT_ACCEPTABLE_BOOT_VERSIONS)])
BOOT_JDK_FOUND=no
else
# We're done! :-)
BOOT_JDK_FOUND=yes
UTIL_FIXUP_PATH(BOOT_JDK)
BASIC_FIXUP_PATH(BOOT_JDK)
AC_MSG_CHECKING([for Boot JDK])
AC_MSG_RESULT([$BOOT_JDK])
AC_MSG_CHECKING([Boot JDK version])
BOOT_JDK_VERSION=`$java_to_test $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR -d '\r'`
# This is not a no-op; it will portably convert newline to space
BOOT_JDK_VERSION=`$ECHO $BOOT_JDK_VERSION`
BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $TR '\n\r' ' '`
AC_MSG_RESULT([$BOOT_JDK_VERSION])
fi # end check jdk version
fi # end check javac
@@ -126,18 +114,16 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
AC_DEFUN([BOOTJDK_CHECK_ARGUMENTS],
[
if test "x$with_boot_jdk" != x; then
BOOT_JDK_ARG="$with_boot_jdk"
UTIL_FIXUP_PATH(BOOT_JDK_ARG)
if test -d "$BOOT_JDK_ARG"; then
BOOT_JDK=$BOOT_JDK_ARG
if test -d "$with_boot_jdk"; then
BOOT_JDK=$with_boot_jdk
BOOT_JDK_FOUND=maybe
elif test -f "$BOOT_JDK_ARG"; then
case "$BOOT_JDK_ARG" in
elif test -f "$with_boot_jdk"; then
case "$with_boot_jdk" in
*.tar.gz )
BOOT_JDK_SUPPORT_DIR=$CONFIGURESUPPORT_OUTPUTDIR/boot-jdk
$RM -rf $BOOT_JDK_SUPPORT_DIR
$MKDIR -p $BOOT_JDK_SUPPORT_DIR
$GUNZIP -c $BOOT_JDK_ARG | $TAR xf - -C $BOOT_JDK_SUPPORT_DIR
$GUNZIP -c $with_boot_jdk | $TAR xf - -C $BOOT_JDK_SUPPORT_DIR
# Try to find javac to determine BOOT_JDK path
BOOT_JDK_JAVAC_PATH=`$FIND $BOOT_JDK_SUPPORT_DIR | $GREP "/bin/javac"`
@@ -164,8 +150,8 @@ AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
[
if test "x$JAVA_HOME" != x; then
JAVA_HOME_PROCESSED="$JAVA_HOME"
UTIL_FIXUP_PATH(JAVA_HOME_PROCESSED, NOFAIL)
if test "x$JAVA_HOME_PROCESSED" = x || test ! -d "$JAVA_HOME_PROCESSED"; then
BASIC_FIXUP_PATH(JAVA_HOME_PROCESSED)
if test ! -d "$JAVA_HOME_PROCESSED"; then
AC_MSG_NOTICE([Your JAVA_HOME points to a non-existing directory!])
else
# Aha, the user has set a JAVA_HOME
@@ -180,8 +166,8 @@ AC_DEFUN([BOOTJDK_CHECK_JAVA_HOME],
# Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
AC_DEFUN([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK],
[
UTIL_LOOKUP_PROGS(JAVAC_CHECK, javac, , NOFIXPATH)
UTIL_LOOKUP_PROGS(JAVA_CHECK, java, , NOFIXPATH)
AC_PATH_PROG(JAVAC_CHECK, javac)
AC_PATH_PROG(JAVA_CHECK, java)
BINARY="$JAVAC_CHECK"
if test "x$JAVAC_CHECK" = x; then
BINARY="$JAVA_CHECK"
@@ -191,7 +177,7 @@ AC_DEFUN([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK],
# Lets find the JDK/JRE directory by following symbolic links.
# Linux/GNU systems often have links from /usr/bin/java to
# /etc/alternatives/java to the real JDK binary.
UTIL_REMOVE_SYMBOLIC_LINKS(BINARY)
BASIC_REMOVE_SYMBOLIC_LINKS(BINARY)
BOOT_JDK=`dirname "$BINARY"`
BOOT_JDK=`cd "$BOOT_JDK/.."; pwd`
if test -x "$BOOT_JDK/bin/javac" && test -x "$BOOT_JDK/bin/java"; then
@@ -220,9 +206,9 @@ AC_DEFUN([BOOTJDK_CHECK_MACOSX_JAVA_LOCATOR],
# First check at user selected default
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME()])
# If that did not work out (e.g. too old), try explicit versions instead
for ver in $DEFAULT_ACCEPTABLE_BOOT_VERSIONS ; do
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v $ver])])
done
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.9])])
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.8])])
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_LIBEXEC_JAVA_HOME([-v 1.7])])
fi
])
@@ -255,10 +241,8 @@ AC_DEFUN([BOOTJDK_FIND_BEST_JDK_IN_WINDOWS_VIRTUAL_DIRECTORY],
[
if test "x[$]$1" != x; then
VIRTUAL_DIR="[$]$1/Java"
UTIL_FIXUP_PATH(VIRTUAL_DIR, NOFAIL)
if test "x$VIRTUAL_DIR" != x; then
BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY($VIRTUAL_DIR)
fi
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(VIRTUAL_DIR)
BOOTJDK_FIND_BEST_JDK_IN_DIRECTORY($VIRTUAL_DIR)
fi
])
@@ -285,17 +269,16 @@ AC_DEFUN([BOOTJDK_CHECK_WELL_KNOWN_LOCATIONS],
AC_DEFUN([BOOTJDK_CHECK_TOOL_IN_BOOTJDK],
[
# Use user overridden value if available, otherwise locate tool in the Boot JDK.
UTIL_REQUIRE_SPECIAL($1,
BASIC_SETUP_TOOL($1,
[
AC_MSG_CHECKING([for $2 [[Boot JDK]]])
AC_MSG_CHECKING([for $2 in Boot JDK])
$1=$BOOT_JDK/bin/$2
if test ! -x [$]$1 && test ! -x [$]$1.exe; then
if test ! -x [$]$1; then
AC_MSG_RESULT(not found)
AC_MSG_NOTICE([Your Boot JDK seems broken. This might be fixed by explicitly setting --with-boot-jdk])
AC_MSG_ERROR([Could not find $2 in the Boot JDK])
fi
AC_MSG_RESULT(\[$]BOOT_JDK/bin/$2)
UTIL_FIXUP_EXECUTABLE($1)
AC_MSG_RESULT(ok)
AC_SUBST($1)
])
])
@@ -329,12 +312,12 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
AC_MSG_ERROR([The path given by --with-boot-jdk does not contain a valid Boot JDK])
fi
# Test: Is $JAVA_HOME set?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_HOME])
# Test: On MacOS X, can we find a boot jdk using /usr/libexec/java_home?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_MACOSX_JAVA_LOCATOR])
# Test: Is $JAVA_HOME set?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_HOME])
# Test: Is there a java or javac in the PATH, which is a symlink to the JDK?
BOOTJDK_DO_CHECK([BOOTJDK_CHECK_JAVA_IN_PATH_IS_SYMLINK])
@@ -356,6 +339,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVAC, javac)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAVADOC, javadoc)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JAR, jar)
BOOTJDK_CHECK_TOOL_IN_BOOTJDK(JARSIGNER, jarsigner)
# Finally, set some other options...
@@ -367,7 +351,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
AC_SUBST(JAVAC_FLAGS)
# Check if the boot jdk is 32 or 64 bit
if $JAVA -version 2>&1 | $GREP -q "64-Bit"; then
if "$JAVA" -version 2>&1 | $GREP -q "64-Bit"; then
BOOT_JDK_BITS="64"
else
BOOT_JDK_BITS="32"
@@ -378,11 +362,11 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK],
# Try to enable CDS
AC_MSG_CHECKING([for local Boot JDK Class Data Sharing (CDS)])
BOOT_JDK_CDS_ARCHIVE=$CONFIGURESUPPORT_OUTPUTDIR/classes.jsa
UTIL_ADD_JVM_ARG_IF_OK([-XX:+UnlockDiagnosticVMOptions -XX:-VerifySharedSpaces -XX:SharedArchiveFile=$BOOT_JDK_CDS_ARCHIVE],boot_jdk_cds_args,[$JAVA])
ADD_JVM_ARG_IF_OK([-XX:+UnlockDiagnosticVMOptions -XX:-VerifySharedSpaces -XX:SharedArchiveFile=$BOOT_JDK_CDS_ARCHIVE],boot_jdk_cds_args,[$JAVA])
if test "x$boot_jdk_cds_args" != x; then
# Try creating a CDS archive
$JAVA $boot_jdk_cds_args -Xshare:dump > /dev/null 2>&1
"$JAVA" $boot_jdk_cds_args -Xshare:dump > /dev/null 2>&1
if test $? -eq 0; then
BOOTJDK_USE_LOCAL_CDS=true
AC_MSG_RESULT([yes, created])
@@ -407,18 +391,18 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
AC_MSG_CHECKING([flags for boot jdk java command] )
# Force en-US environment
UTIL_ADD_JVM_ARG_IF_OK([-Duser.language=en -Duser.country=US],boot_jdk_jvmargs,[$JAVA])
ADD_JVM_ARG_IF_OK([-Duser.language=en -Duser.country=US],boot_jdk_jvmargs,[$JAVA])
if test "x$BOOTJDK_USE_LOCAL_CDS" = xtrue; then
# Use our own CDS archive
UTIL_ADD_JVM_ARG_IF_OK([$boot_jdk_cds_args -Xshare:auto],boot_jdk_jvmargs,[$JAVA])
ADD_JVM_ARG_IF_OK([$boot_jdk_cds_args -Xshare:auto],boot_jdk_jvmargs,[$JAVA])
else
# Otherwise optimistically use the system-wide one, if one is present
UTIL_ADD_JVM_ARG_IF_OK([-Xshare:auto],boot_jdk_jvmargs,[$JAVA])
ADD_JVM_ARG_IF_OK([-Xshare:auto],boot_jdk_jvmargs,[$JAVA])
fi
# Finally append user provided options to allow them to override.
UTIL_ADD_JVM_ARG_IF_OK([$USER_BOOT_JDK_OPTIONS],boot_jdk_jvmargs,[$JAVA])
ADD_JVM_ARG_IF_OK([$USER_BOOT_JDK_OPTIONS],boot_jdk_jvmargs,[$JAVA])
AC_MSG_RESULT([$boot_jdk_jvmargs])
@@ -429,7 +413,7 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
AC_MSG_CHECKING([flags for boot jdk java command for big workloads])
# Starting amount of heap memory.
UTIL_ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
ADD_JVM_ARG_IF_OK([-Xms64M],boot_jdk_jvmargs_big,[$JAVA])
BOOTCYCLE_JVM_ARGS_BIG=-Xms64M
# Maximum amount of heap memory and stack size.
@@ -457,8 +441,8 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
STACK_SIZE=$STACK_SIZE_64
JVM_MAX_HEAP=$JVM_HEAP_LIMIT_64
fi
UTIL_ADD_JVM_ARG_IF_OK([-Xmx${JVM_MAX_HEAP}M],boot_jdk_jvmargs_big,[$JAVA])
UTIL_ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA])
ADD_JVM_ARG_IF_OK([-Xmx${JVM_MAX_HEAP}M],boot_jdk_jvmargs_big,[$JAVA])
ADD_JVM_ARG_IF_OK([-XX:ThreadStackSize=$STACK_SIZE],boot_jdk_jvmargs_big,[$JAVA])
AC_MSG_RESULT([$boot_jdk_jvmargs_big])
@@ -485,10 +469,10 @@ AC_DEFUN_ONCE([BOOTJDK_SETUP_BOOT_JDK_ARGUMENTS],
AC_MSG_CHECKING([flags for boot jdk java command for small workloads])
# Use serial gc for small short lived tools if possible
UTIL_ADD_JVM_ARG_IF_OK([-XX:+UseSerialGC],boot_jdk_jvmargs_small,[$JAVA])
UTIL_ADD_JVM_ARG_IF_OK([-Xms32M],boot_jdk_jvmargs_small,[$JAVA])
UTIL_ADD_JVM_ARG_IF_OK([-Xmx512M],boot_jdk_jvmargs_small,[$JAVA])
UTIL_ADD_JVM_ARG_IF_OK([-XX:TieredStopAtLevel=1],boot_jdk_jvmargs_small,[$JAVA])
ADD_JVM_ARG_IF_OK([-XX:+UseSerialGC],boot_jdk_jvmargs_small,[$JAVA])
ADD_JVM_ARG_IF_OK([-Xms32M],boot_jdk_jvmargs_small,[$JAVA])
ADD_JVM_ARG_IF_OK([-Xmx512M],boot_jdk_jvmargs_small,[$JAVA])
ADD_JVM_ARG_IF_OK([-XX:TieredStopAtLevel=1],boot_jdk_jvmargs_small,[$JAVA])
AC_MSG_RESULT([$boot_jdk_jvmargs_small])
@@ -547,7 +531,7 @@ AC_DEFUN([BOOTJDK_CHECK_BUILD_JDK],
else
# We're done!
BUILD_JDK_FOUND=yes
UTIL_FIXUP_PATH(BUILD_JDK)
BASIC_FIXUP_PATH(BUILD_JDK)
AC_MSG_CHECKING([for Build JDK])
AC_MSG_RESULT([$BUILD_JDK])
AC_MSG_CHECKING([Build JDK version])
@@ -594,12 +578,8 @@ AC_DEFUN([BOOTJDK_SETUP_BUILD_JDK],
fi
fi
# Since these tools do not yet exist, we cannot use UTIL_FIXUP_EXECUTABLE to
# detect the need of fixpath
JMOD="$BUILD_JDK/bin/jmod"
UTIL_ADD_FIXPATH(JMOD)
JLINK="$BUILD_JDK/bin/jlink"
UTIL_ADD_FIXPATH(JLINK)
AC_SUBST(JMOD)
AC_SUBST(JLINK)

View File

@@ -39,6 +39,7 @@ ifneq ($(word $(JAVA_EXEC_POS),$(SJAVAC_SERVER_JAVA)),$(word $(JAVA_EXEC_POS),$(
$(error Bootcycle builds are not possible if --with-sjavac-server-java is specified)
endif
# Override specific values to do a boot cycle build
# Use a different Boot JDK
@@ -49,10 +50,11 @@ OLD_OUTPUTDIR:=@OUTPUTDIR@
OUTPUTDIR:=$(OLD_OUTPUTDIR)/bootcycle-build
SJAVAC_SERVER_DIR:=$(patsubst $(OLD_OUTPUTDIR)%, $(OUTPUTDIR)%, $(SJAVAC_SERVER_DIR))
JAVA_CMD := $(FIXPATH) $(BOOT_JDK)/bin/java
JAVAC_CMD := $(FIXPATH) $(BOOT_JDK)/bin/javac
JAR_CMD := $(FIXPATH) $(BOOT_JDK)/bin/jar
SJAVAC_SERVER_JAVA_CMD := $(JAVA_CMD)
JAVA_CMD:=$(BOOT_JDK)/bin/java
JAVAC_CMD:=$(BOOT_JDK)/bin/javac
JAR_CMD:=$(BOOT_JDK)/bin/jar
JARSIGNER_CMD:=$(BOOT_JDK)/bin/jarsigner
SJAVAC_SERVER_JAVA_CMD:=$(JAVA_CMD)
# When building a 32bit target, make sure the sjavac server flags are compatible
# with a 32bit JVM.
ifeq ($(OPENJDK_TARGET_CPU_BITS), 32)

View File

@@ -1,7 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2021, Azul Systems, Inc. All rights reserved.
# Copyright (c) 2012, 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
@@ -29,40 +28,7 @@
# and fix the broken property, if needed.
DIR=`dirname $0`
OUT=`. $DIR/autoconf-config.guess 2> /dev/null`
# Handle some cases that autoconf-config.guess is not capable of
if [ "x$OUT" = x ]; then
if [ `uname -s` = Linux ]; then
# Test and fix little endian MIPS.
if [ `uname -m` = mipsel ]; then
OUT=mipsel-unknown-linux-gnu
elif [ `uname -m` = mips64el ]; then
OUT=mips64el-unknown-linux-gnu
# Test and fix little endian PowerPC64.
elif [ `uname -m` = ppc64le ]; then
OUT=powerpc64le-unknown-linux-gnu
# Test and fix LoongArch64.
elif [ `uname -m` = loongarch64 ]; then
OUT=loongarch64-unknown-linux-gnu
# Test and fix RISC-V.
elif [ `uname -m` = riscv64 ]; then
OUT=riscv64-unknown-linux-gnu
fi
# Test and fix cygwin machine arch .x86_64
elif [[ `uname -s` = CYGWIN* ]]; then
if [ `uname -m` = ".x86_64" ]; then
OUT=x86_64-unknown-cygwin
fi
fi
if [ "x$OUT" = x ]; then
# Run autoconf-config.guess again to get the error message.
. $DIR/autoconf-config.guess > /dev/null
else
printf "guessed by custom config.guess... " >&2
fi
fi
OUT=`. $DIR/autoconf-config.guess`
# Test and fix solaris on x86_64
echo $OUT | grep i386-pc-solaris > /dev/null 2> /dev/null
@@ -80,17 +46,6 @@ if test $? = 0; then
OUT=$REAL_CPU`echo $OUT | sed -e 's/[^-]*//'`
fi
# Detect C library.
# Use '-gnu' suffix on systems that use glibc.
# Use '-musl' suffix on systems that use the musl libc.
echo $OUT | grep -- -linux- > /dev/null 2> /dev/null
if test $? = 0; then
libc_vendor=`ldd --version 2>&1 | sed -n '1s/.*\(musl\).*/\1/p'`
if [ x"${libc_vendor}" = x"musl" ]; then
OUT=`echo $OUT | sed 's/-gnu/-musl/'`
fi
fi
# Test and fix cygwin on x86_64
echo $OUT | grep 86-pc-cygwin > /dev/null 2> /dev/null
if test $? != 0; then
@@ -121,11 +76,24 @@ if test $? = 0; then
OUT=powerpc$KERNEL_BITMODE`echo $OUT | sed -e 's/[^-]*//'`
fi
# Test and fix cpu on macos-aarch64, uname -p reports arm, buildsys expects aarch64
echo $OUT | grep arm-apple-darwin > /dev/null 2> /dev/null
if test $? = 0; then
if [ `uname -m` = arm64 ]; then
OUT=aarch64`echo $OUT | sed -e 's/[^-]*//'`
# Test and fix little endian PowerPC64.
# TODO: should be handled by autoconf-config.guess.
if [ "x$OUT" = x ]; then
if [ `uname -m` = ppc64le ]; then
if [ `uname -s` = Linux ]; then
OUT=powerpc64le-unknown-linux-gnu
fi
fi
fi
# Test and fix little endian MIPS.
if [ "x$OUT" = x ]; then
if [ `uname -s` = Linux ]; then
if [ `uname -m` = mipsel ]; then
OUT=mipsel-unknown-linux-gnu
elif [ `uname -m` = mips64el ]; then
OUT=mips64el-unknown-linux-gnu
fi
fi
fi

View File

@@ -1,6 +1,6 @@
#!/bin/sh
#
# Copyright (c) 2014, 2020, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2014, 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
@@ -29,17 +29,6 @@
DIR=`dirname $0`
if echo $* | grep linux-musl >/dev/null ; then
echo $*
exit
fi
# Allow msys2
if echo $* | grep pc-msys >/dev/null ; then
echo $*
exit
fi
# First, filter out everything that doesn't begin with "aarch64-"
if ! echo $* | grep '^aarch64-' >/dev/null ; then
. $DIR/autoconf-config.sub "$@"
@@ -49,7 +38,7 @@ if ! echo $* | grep '^aarch64-' >/dev/null ; then
fi
while test $# -gt 0 ; do
case $1 in
case $1 in
-- ) # Stop option processing
shift; break ;;
aarch64-* )

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
@@ -35,18 +35,15 @@ AC_DEFUN([BPERF_CHECK_CORES],
FOUND_CORES=yes
elif test -x /usr/sbin/psrinfo; then
# Looks like a Solaris system
NUM_CORES=`/usr/sbin/psrinfo -v | grep -c on-line`
NUM_CORES=`LC_MESSAGES=C /usr/sbin/psrinfo -v | grep -c on-line`
FOUND_CORES=yes
elif test -x /usr/sbin/sysctl; then
# Looks like a MacOSX system
NUM_CORES=`/usr/sbin/sysctl -n hw.ncpu`
FOUND_CORES=yes
elif test "x$OPENJDK_BUILD_OS" = xaix ; then
NUM_LCPU=`lparstat -m 2> /dev/null | $GREP -o "lcpu=[[0-9]]*" | $CUT -d "=" -f 2`
if test -n "$NUM_LCPU"; then
NUM_CORES=$NUM_LCPU
FOUND_CORES=yes
fi
NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print [$]4 }'`
FOUND_CORES=yes
elif test -n "$NUMBER_OF_PROCESSORS"; then
# On windows, look in the env
NUM_CORES=$NUMBER_OF_PROCESSORS
@@ -180,7 +177,7 @@ AC_DEFUN([BPERF_SETUP_CCACHE],
if test "x$TOOLCHAIN_PATH" != x; then
PATH=$TOOLCHAIN_PATH:$PATH
fi
UTIL_LOOKUP_PROGS(CCACHE, ccache)
BASIC_REQUIRE_PROGS(CCACHE, ccache)
PATH="$OLD_PATH"
CCACHE_VERSION=[`$CCACHE --version | head -n1 | $SED 's/[A-Za-z ]*//'`]
CCACHE_STATUS="Active ($CCACHE_VERSION)"
@@ -288,12 +285,12 @@ AC_DEFUN([BPERF_SETUP_ICECC],
[enable distribted compilation of native code using icecc/icecream @<:@disabled@:>@])])
if test "x${enable_icecc}" = "xyes"; then
UTIL_REQUIRE_PROGS(ICECC_CMD, icecc)
BASIC_REQUIRE_PROGS(ICECC_CMD, icecc)
old_path="$PATH"
# Look for icecc-create-env in some known places
PATH="$PATH:/usr/lib/icecc:/usr/lib64/icecc"
UTIL_REQUIRE_PROGS(ICECC_CREATE_ENV, icecc-create-env)
BASIC_REQUIRE_PROGS(ICECC_CREATE_ENV, icecc-create-env)
# Use icecc-create-env to create a minimal compilation environment that can
# be sent to the other hosts in the icecream cluster.
icecc_create_env_log="${CONFIGURESUPPORT_OUTPUTDIR}/icecc/icecc_create_env.log"
@@ -308,7 +305,7 @@ AC_DEFUN([BPERF_SETUP_ICECC],
elif test "x$TOOLCHAIN_TYPE" = "xclang"; then
# For clang, the icecc compilerwrapper is needed. It usually resides next
# to icecc-create-env.
UTIL_REQUIRE_PROGS(ICECC_WRAPPER, compilerwrapper)
BASIC_REQUIRE_PROGS(ICECC_WRAPPER, compilerwrapper)
BPERF_RUN_ICECC_CREATE_ENV([--clang ${CC} ${ICECC_WRAPPER}], ${icecc_create_env_log})
else
AC_MSG_ERROR([Can only create icecc compiler packages for toolchain types gcc and clang])
@@ -442,7 +439,7 @@ AC_DEFUN_ONCE([BPERF_SETUP_SMART_JAVAC],
if test "$MX_VALUE" -lt "512"; then
MX_VALUE=512
fi
UTIL_ADD_JVM_ARG_IF_OK([-Xms${MS_VALUE}M -Xmx${MX_VALUE}M],SJAVAC_SERVER_JAVA_FLAGS,[$SJAVAC_SERVER_JAVA])
ADD_JVM_ARG_IF_OK([-Xms${MS_VALUE}M -Xmx${MX_VALUE}M],SJAVAC_SERVER_JAVA_FLAGS,[$SJAVAC_SERVER_JAVA])
AC_SUBST(SJAVAC_SERVER_JAVA_FLAGS)
AC_ARG_ENABLE([sjavac], [AS_HELP_STRING([--enable-sjavac],

View File

@@ -50,13 +50,11 @@ IMAGES_OUTPUTDIR := $(patsubst $(OUTPUTDIR)%,$(BUILDJDK_OUTPUTDIR)%,$(IMAGES_OUT
OPENJDK_BUILD_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@
OPENJDK_BUILD_CPU_LEGACY_LIB := @OPENJDK_BUILD_CPU_LEGACY_LIB@
OPENJDK_BUILD_LIBC := @OPENJDK_BUILD_LIBC@
OPENJDK_TARGET_CPU := @OPENJDK_BUILD_CPU@
OPENJDK_TARGET_CPU_ARCH := @OPENJDK_BUILD_CPU_ARCH@
OPENJDK_TARGET_CPU_BITS := @OPENJDK_BUILD_CPU_BITS@
OPENJDK_TARGET_CPU_ENDIAN := @OPENJDK_BUILD_CPU_ENDIAN@
OPENJDK_TARGET_CPU_LEGACY := @OPENJDK_BUILD_CPU_LEGACY@
OPENJDK_TARGET_LIBC := @OPENJDK_BUILD_LIBC@
OPENJDK_TARGET_OS_INCLUDE_SUBDIR := @OPENJDK_BUILD_OS_INCLUDE_SUBDIR@
HOTSPOT_TARGET_OS := @HOTSPOT_BUILD_OS@
@@ -64,7 +62,6 @@ HOTSPOT_TARGET_OS_TYPE := @HOTSPOT_BUILD_OS_TYPE@
HOTSPOT_TARGET_CPU := @HOTSPOT_BUILD_CPU@
HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_BUILD_CPU_ARCH@
HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_BUILD_CPU_DEFINE@
HOTSPOT_TARGET_LIBC := @HOTSPOT_BUILD_LIBC@
CFLAGS_JDKLIB := @OPENJDK_BUILD_CFLAGS_JDKLIB@
CXXFLAGS_JDKLIB := @OPENJDK_BUILD_CXXFLAGS_JDKLIB@
@@ -78,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

@@ -39,11 +39,10 @@ export AWK="@AWK@"
export BASH="@BASH@"
export CAT="@CAT@"
export CMP="@CMP@"
export CODESIGN="@CODESIGN@"
export CP="@CP@"
export CUT="@CUT@"
export DIFF="@DIFF@"
export DUMPBIN="@DUMPBIN@"
export DUMPBIN="@FIXPATH@ @DUMPBIN@"
export EXPR="@EXPR@"
export FILE="@FILE@"
export FIND="@FIND@"
@@ -85,7 +84,7 @@ else
fi
if [ "$OPENJDK_TARGET_OS" = "windows" ]; then
export PATH="$PATH:@TOOLCHAIN_PATH@"
export PATH="@VS_PATH@"
fi
# Now locate the main script and run it.

View File

@@ -43,9 +43,6 @@ fi
export CONFIG_SHELL=$BASH
export _as_can_reexec=no
# Make sure all shell commands are executed with the C locale
export LC_ALL=C
if test "x$CUSTOM_CONFIG_DIR" != x; then
custom_hook=$CUSTOM_CONFIG_DIR/custom-hook.m4
if test ! -e $custom_hook; then
@@ -125,14 +122,18 @@ generate_configure_script() {
if test "x$CUSTOM_CONFIG_DIR" != x; then
# Generate configure script with custom hooks compiled in.
custom_patcher='sed -e "s|#CUSTOM_AUTOCONF_INCLUDE|m4_include([$custom_hook])|"'
custom_script_dir_include="-I$CUSTOM_CONFIG_DIR"
else
custom_patcher='cat'
custom_script_dir_include=""
fi
mkdir -p $build_support_dir
# Call autoconf but replace the "magic" variable in configure.ac if requested.
cat $conf_script_dir/configure.ac | eval $custom_patcher | \
${AUTOCONF} -W all -I$conf_script_dir - > $generated_script
${AUTOCONF} -W all $custom_script_dir_include -I$conf_script_dir - \
> $generated_script
rm -rf autom4te.cache
# Sanity check

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
@@ -37,9 +37,9 @@ AC_CONFIG_AUX_DIR([$TOPDIR/make/autoconf/build-aux])
m4_include([build-aux/pkg.m4])
# Include these first...
m4_include([util.m4])
m4_include([basics.m4])
m4_include([basics_windows.m4])
# ... then the rest
m4_include([basic.m4])
m4_include([boot-jdk.m4])
m4_include([build-performance.m4])
m4_include([flags.m4])
@@ -51,6 +51,7 @@ m4_include([libraries.m4])
m4_include([platform.m4])
m4_include([source-dirs.m4])
m4_include([toolchain.m4])
m4_include([toolchain_windows.m4])
AC_DEFUN_ONCE([CUSTOM_EARLY_HOOK])
AC_DEFUN_ONCE([CUSTOM_LATE_HOOK])
@@ -85,30 +86,23 @@ PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET
# Continue setting up basic stuff. Most remaining code require fundamental tools.
BASIC_SETUP_PATHS
BASIC_SETUP_TOOLS
# Check if it's a pure open build or if custom sources are to be used.
JDKOPT_SETUP_OPEN_OR_CUSTOM
# These are needed to be able to create a configuration name (and thus the output directory)
JDKOPT_SETUP_JDK_VARIANT
JDKOPT_SETUP_DEBUG_LEVEL
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
# To properly create a configuration name, we need to have the OpenJDK target
# and options (variants and debug level) parsed.
BASIC_SETUP_OUTPUT_DIR
# After we have the output dir we can finalize the fixpath wrapper
BASIC_WINDOWS_FINALIZE_FIXPATH
# Must be done before we can call HELP_MSG_MISSING_DEPENDENCY.
HELP_SETUP_DEPENDENCY_HELP
@@ -183,20 +177,23 @@ TOOLCHAIN_POST_DETECTION
TOOLCHAIN_SETUP_BUILD_COMPILERS
TOOLCHAIN_MISC_CHECKS
# Setup the JTReg Regression Test Harness.
TOOLCHAIN_SETUP_JTREG
# Setup the Java Microbenchmark Harness (JMH)
LIB_TESTS_SETUP_JMH
# Setup Jib dependency tool
TOOLCHAIN_SETUP_JIB
# After toolchain setup, we need to process some flags to be able to continue.
FLAGS_POST_TOOLCHAIN
# Setup the tools needed to test the JDK (JTReg Regression Test Harness
# and the Jib dependency tool).
LIB_TESTS_SETUP_JTREG
LIB_TESTS_SETUP_JIB
# Now we can test some aspects on the target using configure macros.
PLATFORM_SETUP_OPENJDK_TARGET_BITS
PLATFORM_SETUP_OPENJDK_TARGET_ENDIANNESS
# Configure flags for the tools. Need to know if we should build reproducible.
JDKOPT_SETUP_REPRODUCIBLE_BUILD
# Configure flags for the tools
FLAGS_SETUP_FLAGS
# Setup debug symbols (need objcopy from the toolchain for that)
@@ -218,6 +215,9 @@ HOTSPOT_ENABLE_DISABLE_GTEST
#
###############################################################################
# After we have toolchain, we can compile fixpath. It's needed by the lib checks.
BASIC_COMPILE_FIXPATH
LIB_DETERMINE_DEPENDENCIES
LIB_SETUP_LIBRARIES
@@ -232,13 +232,11 @@ HOTSPOT_SETUP_JVM_FEATURES
###############################################################################
JDKOPT_DETECT_INTREE_EC
LIB_TESTS_ENABLE_DISABLE_FAILURE_HANDLER
JDKOPT_ENABLE_DISABLE_FAILURE_HANDLER
JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
JDKOPT_EXCLUDE_TRANSLATIONS
JDKOPT_ENABLE_DISABLE_MANPAGES
JDKOPT_SETUP_REPRODUCIBLE_BUILD
JDKOPT_SETUP_MACOSX_SIGNING
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
###############################################################################
#
@@ -290,7 +288,6 @@ BASIC_CHECK_LEFTOVER_OVERRIDDEN
CONFIG_STATUS="$CONFIGURESUPPORT_OUTPUTDIR/config.status"
# Create the actual output files. Now the main work of configure is done.
BASIC_WINDOWS_FINALIZE
AC_OUTPUT
# After AC_OUTPUT, we need to do final work

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
@@ -28,7 +28,7 @@
# Setup flags for C/C++ compiler
#
################################################################################
###############################################################################
#
# How to compile shared libraries.
#
@@ -39,10 +39,7 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
# Default works for linux, might work on other platforms as well.
SHARED_LIBRARY_FLAGS='-shared'
# --disable-new-dtags forces use of RPATH instead of RUNPATH for rpaths.
# This protects internal library dependencies within the JDK from being
# overridden using LD_LIBRARY_PATH. See JDK-8326891 for more information.
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1 -Wl,--disable-new-dtags'
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
SET_SHARED_LIBRARY_ORIGIN="-Wl,-z,origin $SET_EXECUTABLE_ORIGIN"
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
@@ -62,9 +59,6 @@ AC_DEFUN([FLAGS_SETUP_SHARED_LIBS],
# Default works for linux, might work on other platforms as well.
SHARED_LIBRARY_FLAGS='-shared'
SET_EXECUTABLE_ORIGIN='-Wl,-rpath,\$$ORIGIN[$]1'
if test "x$OPENJDK_TARGET_OS" = xlinux; then
SET_EXECUTABLE_ORIGIN="$SET_EXECUTABLE_ORIGIN -Wl,--disable-new-dtags"
fi
SET_SHARED_LIBRARY_NAME='-Wl,-soname=[$]1'
SET_SHARED_LIBRARY_MAPFILE='-Wl,-version-script=[$]1'
@@ -127,11 +121,7 @@ AC_DEFUN([FLAGS_SETUP_DEBUG_SYMBOLS],
# -g0 enables debug symbols without disabling inlining.
CFLAGS_DEBUG_SYMBOLS="-g0 -xs"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
if test "x$XLC_USES_CLANG" = xtrue; then
CFLAGS_DEBUG_SYMBOLS="-g1"
else
CFLAGS_DEBUG_SYMBOLS="-g"
fi
CFLAGS_DEBUG_SYMBOLS="-g"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
CFLAGS_DEBUG_SYMBOLS="-Z7 -d2Zi+"
fi
@@ -170,7 +160,6 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
case "${TOOLCHAIN_TYPE}" in
microsoft)
DISABLE_WARNING_PREFIX="-wd"
BUILD_CC_DISABLE_WARNING_PREFIX="-wd"
CFLAGS_WARNINGS_ARE_ERRORS="-WX"
WARNINGS_ENABLE_ALL="-W3"
@@ -190,19 +179,48 @@ AC_DEFUN([FLAGS_SETUP_WARNINGS],
gcc)
DISABLE_WARNING_PREFIX="-Wno-"
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
# Additional warnings that are not activated by -Wall and -Wextra
WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare \
-Wunused-function -Wundef -Wunused-value -Wreturn-type"
WARNINGS_ENABLE_ADDITIONAL_CXX="-Woverloaded-virtual -Wreorder"
WARNINGS_ENABLE_ALL_CFLAGS="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
WARNINGS_ENABLE_ALL_CXXFLAGS="$WARNINGS_ENABLE_ALL_CFLAGS $WARNINGS_ENABLE_ADDITIONAL_CXX"
DISABLED_WARNINGS="unused-parameter unused"
# 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-"
BUILD_CC_DISABLE_WARNING_PREFIX="-Wno-"
CFLAGS_WARNINGS_ARE_ERRORS="-Werror"
WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2"
WARNINGS_ENABLE_ADDITIONAL_JVM="-Wpointer-arith -Wsign-compare -Wunused-function -Wundef -Wunused-value -Woverloaded-virtual -Wreorder"
# Additional warnings that are not activated by -Wall and -Wextra
WARNINGS_ENABLE_ADDITIONAL="-Wpointer-arith -Wsign-compare -Wreorder \
-Wunused-function -Wundef -Wunused-value -Woverloaded-virtual"
WARNINGS_ENABLE_ALL="-Wall -Wextra -Wformat=2 $WARNINGS_ENABLE_ADDITIONAL"
DISABLED_WARNINGS="unused-parameter unused"
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# missing-method-return-type triggers in JavaNativeFoundation framework
DISABLED_WARNINGS="$DISABLED_WARNINGS missing-method-return-type"
fi
;;
xlc)
@@ -246,20 +264,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],
@@ -401,17 +405,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
@@ -421,13 +414,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_])
CC="$CC_OLD"
CXX="$CXX_OLD"
CFLAGS="$CFLAGS_OLD"
CXXFLAGS="$CXXFLAGS_OLD"
FLAGS_SETUP_CFLAGS_CPU_DEP([BUILD], [OPENJDK_BUILD_])
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)
])
################################################################################
@@ -525,16 +526,17 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
fi
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_JVM="$TOOLCHAIN_CFLAGS_JVM -fcheck-new"
TOOLCHAIN_CFLAGS_JDK="-pipe"
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
@@ -557,7 +559,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
TOOLCHAIN_CFLAGS="-errshort=tags"
TOOLCHAIN_CFLAGS_JDK="-mt $TOOLCHAIN_FLAGS"
TOOLCHAIN_CFLAGS_JDK_CONLY="-xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
TOOLCHAIN_CFLAGS_JDK_CONLY="-xc99=%none -xCC -Xa -W0,-noglobal $TOOLCHAIN_CFLAGS" # C only
TOOLCHAIN_CFLAGS_JDK_CXXONLY="-features=no%except -norunpath -xnolib" # CXX only
TOOLCHAIN_CFLAGS_JVM="-template=no%extdef -features=no%split_init \
-library=stlport4 -mt -features=no%except $TOOLCHAIN_FLAGS"
@@ -569,10 +571,10 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
# Suggested additions: -qsrcmsg to get improved error reporting
# set -qtbtable=full for a better traceback table/better stacks in hs_err when xlc16 is used
TOOLCHAIN_CFLAGS_JDK="-qtbtable=full -qchars=signed -qfullpath -qsaveopt -qstackprotect" # add on both CFLAGS
TOOLCHAIN_CFLAGS_JVM="-qtbtable=full -qtune=balanced \
-qalias=noansi -qstrict -qtls=default -qnortti -qnoeh -qignerrno -qstackprotect"
TOOLCHAIN_CFLAGS_JDK="-qchars=signed -qfullpath -qsaveopt" # add on both CFLAGS
TOOLCHAIN_CFLAGS_JVM="-qtune=balanced \
-qalias=noansi -qstrict -qtls=default -qlanglvl=c99vla \
-qlanglvl=noredefmac -qnortti -qnoeh -qignerrno"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
TOOLCHAIN_CFLAGS_JVM="-nologo -MD -MP"
TOOLCHAIN_CFLAGS_JDK="-nologo -MD -Zc:wchar_t-"
@@ -581,23 +583,21 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
# CFLAGS WARNINGS STUFF
# Set JVM_CFLAGS warning handling
if test "x$TOOLCHAIN_TYPE" = xgcc; then
WARNING_CFLAGS_JDK="$WARNINGS_ENABLE_ALL"
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL $WARNINGS_ENABLE_ADDITIONAL_JVM"
WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
if test "x$OPENJDK_TARGET_OS" = xlinux; then
WARNING_CFLAGS_JDK="$WARNINGS_ENABLE_ALL"
else
WARNING_CFLAGS_JDK="" # currently left empty
fi
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL $WARNINGS_ENABLE_ADDITIONAL_JVM"
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
WARNING_CFLAGS_JDK_CONLY="$WARNINGS_ENABLE_ALL_CFLAGS"
WARNING_CFLAGS_JDK_CXXONLY="$WARNINGS_ENABLE_ALL_CXXFLAGS"
WARNING_CFLAGS_JVM="" # currently left empty
WARNING_CFLAGS_JVM="$WARNINGS_ENABLE_ALL_CXXFLAGS"
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
WARNING_CFLAGS="$WARNINGS_ENABLE_ALL"
elif test "x$TOOLCHAIN_TYPE" = xxlc; then
WARNING_CFLAGS="" # currently left empty
fi
@@ -615,15 +615,9 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_HELPER],
fi
fi
OS_CFLAGS="$OS_CFLAGS -DLIBC=$OPENJDK_TARGET_LIBC"
if test "x$OPENJDK_TARGET_LIBC" = xmusl; then
OS_CFLAGS="$OS_CFLAGS -DMUSL_LIBC"
fi
# 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
@@ -675,13 +669,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
@@ -730,9 +726,7 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -DcpuIntel -Di586 -D$FLAGS_CPU_LEGACY_LIB"
fi
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
if test "x$FLAGS_CPU" = xaarch64; then
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_ARM64_ -Darm64"
elif test "x$FLAGS_CPU" = xx86_64; then
if test "x$FLAGS_CPU" = xx86_64; then
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_AMD64_ -Damd64"
else
$1_DEFINES_CPU_JDK="${$1_DEFINES_CPU_JDK} -D_X86_ -Dx86"
@@ -742,21 +736,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
@@ -765,10 +747,6 @@ AC_DEFUN([FLAGS_SETUP_CFLAGS_CPU_DEP],
# -Wno-psabi to get rid of annoying "note: the mangling of 'va_list' has changed in GCC 4.4"
$1_CFLAGS_CPU="-fsigned-char -Wno-psabi $ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS -DJDK_ARCH_ABI_PROP_NAME='\"\$(JDK_ARCH_ABI_PROP_NAME)\"'"
$1_CFLAGS_CPU_JVM="-DARM"
elif test "x$FLAGS_CPU" = xaarch64; then
if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
$1_CFLAGS_CPU_JVM="-fsigned-char -DARM"
fi
elif test "x$FLAGS_CPU_ARCH" = xppc; then
$1_CFLAGS_CPU_JVM="-minsert-sched-nops=regroup_exact -mno-multiple -mno-string"
if test "x$FLAGS_CPU" = xppc64; then
@@ -789,13 +767,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
@@ -832,78 +803,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
if test "x$TOOLCHAIN_TYPE" = xmicrosoft && test "x$ENABLE_REPRODUCIBLE_BUILD" = xtrue; then
# Enabling deterministic creates warnings if __DATE__ or __TIME__ are
# used, and since we are, silence that warning.
REPRODUCIBLE_CFLAGS="-experimental:deterministic -wd5048"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${REPRODUCIBLE_CFLAGS}],
PREFIX: $3,
IF_FALSE: [
REPRODUCIBLE_CFLAGS=
]
)
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=
]
)
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft &&
test "x$ENABLE_REPRODUCIBLE_BUILD" = xtrue; then
# There is a known issue with the pathmap if the mapping is made to the
# empty string. Add a minimal string "s" as prefix to work around this.
# PATHMAP_FLAGS is also added to LDFLAGS in flags-ldflags.m4.
PATHMAP_FLAGS="-pathmap:${WORKSPACE_ROOT}=s"
FILE_MACRO_CFLAGS="$PATHMAP_FLAGS"
FLAGS_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [${FILE_MACRO_CFLAGS}],
PREFIX: $3,
IF_FALSE: [
PATHMAP_FLAGS=
FILE_MACRO_CFLAGS=
]
)
fi
AC_MSG_CHECKING([how to prevent absolute paths in output])
if test "x$FILE_MACRO_CFLAGS" != x; then
AC_MSG_RESULT([using compiler options])
else
AC_MSG_RESULT([using relative paths])
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 \
$REPRODUCIBLE_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 $REPRODUCIBLE_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
@@ -911,9 +824,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}"
@@ -921,40 +832,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
@@ -962,11 +854,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

@@ -70,15 +70,10 @@ 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 -Wl,-z,relro"
BASIC_LDFLAGS_JVM_ONLY="-Wl,-O1"
elif test "x$TOOLCHAIN_TYPE" = xclang; then
BASIC_LDFLAGS_JVM_ONLY="-mno-omit-leaf-frame-pointer -mstack-alignment=16 \
@@ -116,7 +111,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_HELPER],
# 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
@@ -125,6 +120,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
@@ -148,25 +150,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$ENABLE_REPRODUCIBLE_BUILD" = "xtrue"; then
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
REPRODUCIBLE_LDFLAGS="-experimental:deterministic"
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%"
# PATHMAP_FLAGS is setup in flags-cflags.m4.
FILE_MACRO_LDFLAGS="${PATHMAP_FLAGS}"
fi
fi
# Export some intermediate variables for compatibility
@@ -190,10 +173,6 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
elif test "x$OPENJDK_$1_CPU" = xarm; then
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
$1_CPU_LDFLAGS="$ARM_ARCH_TYPE_FLAGS $ARM_FLOAT_TYPE_FLAGS"
elif test "x$FLAGS_CPU" = xaarch64; then
if test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
$1_CPU_LDFLAGS_JVM_ONLY="${$1_CPU_LDFLAGS_JVM_ONLY} -fsigned-char"
fi
fi
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
@@ -201,14 +180,12 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
$1_CPU_LDFLAGS_JVM_ONLY="-xarch=sparc"
fi
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
if test "x${OPENJDK_$1_CPU}" = "xx86"; then
$1_CPU_LDFLAGS="-safeseh"
# NOTE: Old build added -machine. Probably not needed.
$1_CPU_LDFLAGS_JVM_ONLY="-machine:I386"
$1_CPU_EXECUTABLE_LDFLAGS="-stack:327680"
elif test "x${OPENJDK_$1_CPU}" = "xaarch64"; then
$1_CPU_EXECUTABLE_LDFLAGS="-stack:1048576"
else
$1_CPU_LDFLAGS_JVM_ONLY="-machine:AMD64"
$1_CPU_EXECUTABLE_LDFLAGS="-stack:1048576"
@@ -217,7 +194,7 @@ AC_DEFUN([FLAGS_SETUP_LDFLAGS_CPU_DEP],
# JVM_VARIANT_PATH depends on if this is build or target...
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
$1_LDFLAGS_JDK_LIBPATH="-libpath:\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base"
$1_LDFLAGS_JDK_LIBPATH="-libpath:${OUTPUTDIR}/support/modules_libs/java.base"
else
$1_LDFLAGS_JDK_LIBPATH="-L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base \
-L\$(SUPPORT_OUTPUTDIR)/modules_libs/java.base/${$1_JVM_VARIANT_PATH}"
@@ -225,17 +202,15 @@ 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 \
$REPRODUCIBLE_LDFLAGS $FILE_MACRO_LDFLAGS"
${$1_LDFLAGS_JDK_LIBPATH} $SHARED_LIBRARY_FLAGS"
$2LDFLAGS_JDKEXE="$LDFLAGS_JDK_COMMON $EXECUTABLE_LDFLAGS \
${$1_CPU_EXECUTABLE_LDFLAGS} $REPRODUCIBLE_LDFLAGS $FILE_MACRO_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} \
$REPRODUCIBLE_LDFLAGS $FILE_MACRO_LDFLAGS"
${$1_CPU_LDFLAGS} ${$1_CPU_LDFLAGS_JVM_ONLY} ${$2EXTRA_LDFLAGS}"
AC_SUBST($2LDFLAGS_JDKLIB)
AC_SUBST($2LDFLAGS_JDKEXE)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2021, 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
@@ -81,10 +81,10 @@ AC_DEFUN([FLAGS_SETUP_RCFLAGS],
RC_FLAGS="$RC_FLAGS \
-D\"JDK_VERSION_STRING=\$(VERSION_STRING)\" \
-D\"JDK_COMPANY=\$(COMPANY_NAME)\" \
-D\"JDK_COMPONENT=\$(JDK_RC_NAME) binary\" \
-D\"JDK_COMPONENT=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) binary\" \
-D\"JDK_VER=\$(VERSION_NUMBER)\" \
-D\"JDK_COPYRIGHT=Copyright \xA9 $COPYRIGHT_YEAR\" \
-D\"JDK_NAME=\$(JDK_RC_NAME) \$(VERSION_FEATURE)\" \
-D\"JDK_NAME=\$(PRODUCT_NAME) \$(JDK_RC_PLATFORM_NAME) \$(VERSION_FEATURE)\" \
-D\"JDK_FVER=\$(subst .,\$(COMMA),\$(VERSION_NUMBER_FOUR_POSITIONS))\""
JVM_RCFLAGS="$JVM_RCFLAGS \
@@ -107,16 +107,6 @@ AC_DEFUN([FLAGS_SETUP_ASFLAGS],
[
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
JVM_BASIC_ASFLAGS="-x assembler-with-cpp -mno-omit-leaf-frame-pointer -mstack-alignment=16"
# Fix linker warning.
# Code taken from make/autoconf/flags-cflags.m4 and adapted.
JVM_BASIC_ASFLAGS+=" -DMAC_OS_X_VERSION_MIN_REQUIRED=$MACOSX_VERSION_MIN_NODOTS \
-mmacosx-version-min=$MACOSX_VERSION_MIN"
if test -n "$MACOSX_VERSION_MAX"; then
JVM_BASIC_ASFLAGS+=" $OS_CFLAGS \
-DMAC_OS_X_VERSION_MAX_ALLOWED=$MACOSX_VERSION_MAX_NODOTS"
fi
fi
])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2021, 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
@@ -34,7 +34,7 @@ m4_include([flags-other.m4])
AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
[
AC_ARG_WITH(abi-profile, [AS_HELP_STRING([--with-abi-profile],
[specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,arm64,aarch64) @<:@toolchain dependent@:>@ ])])
[specify ABI profile for ARM builds (arm-vfp-sflt,arm-vfp-hflt,arm-sflt, armv5-vfp-sflt,armv6-vfp-hflt,aarch64) @<:@toolchain dependent@:>@ ])])
if test "x$with_abi_profile" != x; then
if test "x$OPENJDK_TARGET_CPU" != xarm && \
@@ -61,10 +61,6 @@ AC_DEFUN([FLAGS_SETUP_ABI_PROFILE],
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarmv6-vfp-hflt; then
ARM_FLOAT_TYPE=vfp-hflt
ARM_ARCH_TYPE_FLAGS='-march=armv6 -marm'
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xarm64; then
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
ARM_FLOAT_TYPE=
ARM_ARCH_TYPE_FLAGS=
elif test "x$OPENJDK_TARGET_ABI_PROFILE" = xaarch64; then
# No special flags, just need to trigger setting JDK_ARCH_ABI_PROP_NAME
ARM_FLOAT_TYPE=
@@ -111,25 +107,19 @@ AC_DEFUN([FLAGS_SETUP_MACOSX_VERSION],
[
# Additional macosx handling
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# The expected format for <version> is either nn.n.n or nn.nn.nn. See
# /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/AvailabilityVersions.h
# MACOSX_VERSION_MIN specifies the lowest version of Macosx that the built
# binaries should be compatible with, even if compiled on a newer version
# of the OS. It currently has a hard coded value. Setting this also limits
# exposure to API changes in header files. Bumping this is likely to
# require code changes to build.
if test "x$OPENJDK_TARGET_CPU_ARCH" = xaarch64; then
MACOSX_VERSION_MIN=11.00.00
else
MACOSX_VERSION_MIN=10.12.0
fi
MACOSX_VERSION_MIN=10.9.0
MACOSX_VERSION_MIN_NODOTS=${MACOSX_VERSION_MIN//\./}
AC_SUBST(MACOSX_VERSION_MIN)
# Setting --with-macosx-version-max=<version> makes it an error to build or
# link to macosx APIs that are newer than the given OS version.
# link to macosx APIs that are newer than the given OS version. The expected
# format for <version> is either nn.n.n or nn.nn.nn. See /usr/include/AvailabilityMacros.h.
AC_ARG_WITH([macosx-version-max], [AS_HELP_STRING([--with-macosx-version-max],
[error on use of newer functionality. @<:@macosx@:>@])],
[
@@ -168,10 +158,6 @@ AC_DEFUN_ONCE([FLAGS_SETUP_USER_SUPPLIED_FLAGS],
AC_MSG_WARN([Ignoring LDFLAGS($LDFLAGS) found in environment. Use --with-extra-ldflags])
fi
if test "x$ASFLAGS" != "x"; then
AC_MSG_WARN([Ignoring ASFLAGS($ASFLAGS) found in environment. Use --with-extra-asflags])
fi
AC_ARG_WITH(extra-cflags, [AS_HELP_STRING([--with-extra-cflags],
[extra flags to be used when compiling jdk c-files])])
@@ -181,13 +167,9 @@ AC_DEFUN_ONCE([FLAGS_SETUP_USER_SUPPLIED_FLAGS],
AC_ARG_WITH(extra-ldflags, [AS_HELP_STRING([--with-extra-ldflags],
[extra flags to be used when linking jdk])])
AC_ARG_WITH(extra-asflags, [AS_HELP_STRING([--with-extra-asflags],
[extra flags to be passed to the assembler])])
USER_CFLAGS="$with_extra_cflags"
USER_CXXFLAGS="$with_extra_cxxflags"
USER_LDFLAGS="$with_extra_ldflags"
USER_ASFLAGS="$with_extra_asflags"
])
# Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
@@ -230,20 +212,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
fi
# For the microsoft toolchain, we need to get the SYSROOT flags from the
# Visual Studio environment. Currently we cannot handle this as a separate
# build toolchain.
if test "x$1" = x && test "x$OPENJDK_BUILD_OS" = "xwindows" \
&& test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV
# 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)
@@ -254,7 +226,6 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
[
# We should always include user supplied flags
FLAGS_SETUP_USER_SUPPLIED_FLAGS
# The sysroot flags are needed for configure to be able to run the compilers
FLAGS_SETUP_SYSROOT_FLAGS
@@ -266,21 +237,14 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
elif test "x$TOOLCHAIN_TYPE" = xgcc || test "x$TOOLCHAIN_TYPE" = xclang; then
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86 ||
if test "x$OPENJDK_TARGET_CPU_ARCH" = xx86 &&
test "x$OPENJDK_TARGET_CPU" != xx32 ||
test "x$OPENJDK_TARGET_CPU_ARCH" = xsparc ||
test "x$OPENJDK_TARGET_CPU_ARCH" = xppc; then
MACHINE_FLAG="-m${OPENJDK_TARGET_CPU_BITS}"
fi
fi
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
if test "x$OPENJDK_TARGET_CPU" = xaarch64; then
MACHINE_FLAG="$MACHINE_FLAG -arch arm64"
elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
MACHINE_FLAG="$MACHINE_FLAG -arch x86_64"
fi
fi
# FIXME: global flags are not used yet...
# The "global" flags will *always* be set. Without them, it is not possible to
# get a working compilation.
@@ -289,17 +253,19 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
GLOBAL_LDFLAGS="$MACHINE_FLAG $SYSROOT_LDFLAGS $USER_LDFLAGS"
# FIXME: Don't really know how to do with this, but this was the old behavior
GLOBAL_CPPFLAGS="$SYSROOT_CFLAGS"
AC_SUBST(GLOBAL_CFLAGS)
AC_SUBST(GLOBAL_CXXFLAGS)
AC_SUBST(GLOBAL_LDFLAGS)
AC_SUBST(GLOBAL_CPPFLAGS)
# FIXME: For compatilibity, export this as EXTRA_CFLAGS for now.
EXTRA_CFLAGS="$MACHINE_FLAG $USER_CFLAGS"
EXTRA_CXXFLAGS="$MACHINE_FLAG $USER_CXXFLAGS"
EXTRA_LDFLAGS="$MACHINE_FLAG $USER_LDFLAGS"
EXTRA_ASFLAGS="$USER_ASFLAGS"
AC_SUBST(EXTRA_CFLAGS)
AC_SUBST(EXTRA_CXXFLAGS)
AC_SUBST(EXTRA_LDFLAGS)
AC_SUBST(EXTRA_ASFLAGS)
# For autoconf testing to work, the global flags must also be stored in the
# "unnamed" CFLAGS etc.
@@ -307,14 +273,6 @@ AC_DEFUN_ONCE([FLAGS_PRE_TOOLCHAIN],
CXXFLAGS="$GLOBAL_CXXFLAGS"
LDFLAGS="$GLOBAL_LDFLAGS"
CPPFLAGS="$GLOBAL_CPPFLAGS"
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# When autoconf sends both compiler and linker flags to cl.exe at the same
# time, linker flags must be last at the command line. Achieve this by
# moving them to LIBS.
LIBS="$LIBS -link $LDFLAGS"
LDFLAGS=""
fi
])
AC_DEFUN([FLAGS_SETUP_TOOLCHAIN_CONTROL],
@@ -412,6 +370,9 @@ AC_DEFUN_ONCE([FLAGS_POST_TOOLCHAIN],
BUILD_SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS"
fi
fi
AC_SUBST(BUILD_SYSROOT_CFLAGS)
AC_SUBST(BUILD_SYSROOT_LDFLAGS)
])
AC_DEFUN([FLAGS_SETUP_FLAGS],
@@ -441,21 +402,18 @@ AC_DEFUN([FLAGS_SETUP_FLAGS],
# IF_FALSE: [RUN-IF-FALSE])
# ------------------------------------------------------------
# Check that the C compiler supports an argument
UTIL_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
BASIC_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
[*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])
@@ -472,21 +430,18 @@ UTIL_DEFUN_NAMED([FLAGS_C_COMPILER_CHECK_ARGUMENTS],
# IF_FALSE: [RUN-IF-FALSE])
# ------------------------------------------------------------
# Check that the C++ compiler supports an argument
UTIL_DEFUN_NAMED([FLAGS_CXX_COMPILER_CHECK_ARGUMENTS],
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
BASIC_DEFUN_NAMED([FLAGS_CXX_COMPILER_CHECK_ARGUMENTS],
[*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])
@@ -503,23 +458,19 @@ UTIL_DEFUN_NAMED([FLAGS_CXX_COMPILER_CHECK_ARGUMENTS],
# IF_FALSE: [RUN-IF-FALSE])
# ------------------------------------------------------------
# Check that the C and C++ compilers support an argument
UTIL_DEFUN_NAMED([FLAGS_COMPILER_CHECK_ARGUMENTS],
[*ARGUMENT IF_TRUE IF_FALSE PREFIX], [$@],
BASIC_DEFUN_NAMED([FLAGS_COMPILER_CHECK_ARGUMENTS],
[*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)
FLAGS_CXX_COMPILER_CHECK_ARGUMENTS(ARGUMENT: ARG_ARGUMENT,
IF_TRUE: [CXX_COMP_SUPPORTS="yes"],
IF_FALSE: [CXX_COMP_SUPPORTS="no"],
PREFIX: ARG_PREFIX)
FLAGS_C_COMPILER_CHECK_ARGUMENTS(ARGUMENT: [ARG_ARGUMENT],
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"])
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
@@ -535,7 +486,7 @@ UTIL_DEFUN_NAMED([FLAGS_COMPILER_CHECK_ARGUMENTS],
# IF_FALSE: [RUN-IF-FALSE])
# ------------------------------------------------------------
# Check that the linker support an argument
UTIL_DEFUN_NAMED([FLAGS_LINKER_CHECK_ARGUMENTS],
BASIC_DEFUN_NAMED([FLAGS_LINKER_CHECK_ARGUMENTS],
[*ARGUMENT IF_TRUE IF_FALSE], [$@],
[
AC_MSG_CHECKING([if linker supports "ARG_ARGUMENT"])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2022, 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
@@ -25,7 +25,7 @@
AC_DEFUN_ONCE([HELP_SETUP_DEPENDENCY_HELP],
[
UTIL_LOOKUP_PROGS(PKGHANDLER, apt-get yum brew port pkgutil pkgadd pacman apk)
AC_CHECK_PROGS(PKGHANDLER, apt-get yum brew port pkgutil pkgadd)
])
AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
@@ -36,26 +36,24 @@ AC_DEFUN([HELP_MSG_MISSING_DEPENDENCY],
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.cygwin"; then
cygwin_help $MISSING_DEPENDENCY
elif test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
msys_help $MISSING_DEPENDENCY
else
PKGHANDLER_COMMAND=
case $PKGHANDLER in
*apt-get)
apt-get)
apt_help $MISSING_DEPENDENCY ;;
*yum)
yum)
yum_help $MISSING_DEPENDENCY ;;
*brew)
brew)
brew_help $MISSING_DEPENDENCY ;;
*port)
port)
port_help $MISSING_DEPENDENCY ;;
*pkgutil)
pkgutil)
pkgutil_help $MISSING_DEPENDENCY ;;
*pkgadd)
pkgadd)
pkgadd_help $MISSING_DEPENDENCY ;;
*pacman)
pacman_help $MISSING_DEPENDENCY ;;
*apk)
apk_help $MISSING_DEPENDENCY ;;
esac
if test "x$PKGHANDLER_COMMAND" != x; then
@@ -81,6 +79,10 @@ cygwin_help() {
esac
}
msys_help() {
PKGHANDLER_COMMAND=""
}
apt_help() {
case $1 in
reduced)
@@ -88,7 +90,7 @@ apt_help() {
devkit)
PKGHANDLER_COMMAND="sudo apt-get install build-essential" ;;
openjdk)
PKGHANDLER_COMMAND="sudo apt-get install openjdk-11-jdk" ;;
PKGHANDLER_COMMAND="sudo apt-get install openjdk-8-jdk" ;;
alsa)
PKGHANDLER_COMMAND="sudo apt-get install libasound2-dev" ;;
cups)
@@ -97,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)
@@ -115,7 +115,7 @@ yum_help() {
devkit)
PKGHANDLER_COMMAND="sudo yum groupinstall \"Development Tools\"" ;;
openjdk)
PKGHANDLER_COMMAND="sudo yum install java-11-openjdk-devel" ;;
PKGHANDLER_COMMAND="sudo yum install java-1.8.0-openjdk-devel" ;;
alsa)
PKGHANDLER_COMMAND="sudo yum install alsa-lib-devel" ;;
cups)
@@ -124,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)
@@ -144,17 +142,6 @@ brew_help() {
esac
}
pacman_help() {
case $1 in
unzip)
PKGHANDLER_COMMAND="sudo pacman -S unzip" ;;
zip)
PKGHANDLER_COMMAND="sudo pacman -S zip" ;;
make)
PKGHANDLER_COMMAND="sudo pacman -S make" ;;
esac
}
port_help() {
PKGHANDLER_COMMAND=""
}
@@ -167,27 +154,6 @@ pkgadd_help() {
PKGHANDLER_COMMAND=""
}
apk_help() {
case $1 in
devkit)
PKGHANDLER_COMMAND="sudo apk add alpine-sdk linux-headers" ;;
alsa)
PKGHANDLER_COMMAND="sudo apk add alsa-lib-dev" ;;
cups)
PKGHANDLER_COMMAND="sudo apk add cups-dev" ;;
fontconfig)
PKGHANDLER_COMMAND="sudo apk add fontconfig-dev" ;;
freetype)
PKGHANDLER_COMMAND="sudo apk add freetype-dev" ;;
harfbuzz)
PKGHANDLER_COMMAND="sudo apk add harfbuzz-dev" ;;
x11)
PKGHANDLER_COMMAND="sudo apk add libxtst-dev libxt-dev libxrender-dev libxrandr-dev" ;;
ccache)
PKGHANDLER_COMMAND="sudo apk add ccache" ;;
esac
}
# This function will check if we're called from the "configure" wrapper while
# printing --help. If so, we will print out additional information that can
# only be extracted within the autoconf script, and then exit. This must be
@@ -263,13 +229,12 @@ AC_DEFUN_ONCE([HELP_PRINT_SUMMARY_AND_WARNINGS],
printf "\n"
printf "Tools summary:\n"
if test "x$OPENJDK_BUILD_OS" = "xwindows"; then
printf "* Environment: %s version %s; windows version %s; prefix \"%s\"; root \"%s\"\n" \
"$WINENV_VENDOR" "$WINENV_VERSION" "$WINDOWS_VERSION" "$WINENV_PREFIX" "$WINENV_ROOT"
printf "* Environment: $WINDOWS_ENV_VENDOR version $WINDOWS_ENV_VERSION (root at $WINDOWS_ENV_ROOT_PATH)\n"
fi
printf "* Boot JDK: $BOOT_JDK_VERSION (at $BOOT_JDK)\n"
printf "* Toolchain: $TOOLCHAIN_TYPE ($TOOLCHAIN_DESCRIPTION)\n"
printf "* C Compiler: Version $CC_VERSION_NUMBER (at ${CC#"$FIXPATH "})\n"
printf "* C++ Compiler: Version $CXX_VERSION_NUMBER (at ${CXX#"$FIXPATH "})\n"
printf "* C Compiler: Version $CC_VERSION_NUMBER (at $CC)\n"
printf "* C++ Compiler: Version $CXX_VERSION_NUMBER (at $CXX)\n"
printf "\n"
printf "Build performance summary:\n"

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, 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
@@ -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
@@ -86,8 +72,6 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
AC_ARG_WITH([jvm-variants], [AS_HELP_STRING([--with-jvm-variants],
[JVM variants (separated by commas) to build (server,client,minimal,core,zero,custom) @<:@server@:>@])])
SETUP_HOTSPOT_TARGET_CPU_PORT
if test "x$with_jvm_variants" = x; then
with_jvm_variants="server"
fi
@@ -110,8 +94,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
AC_MSG_RESULT([$JVM_VARIANTS])
# Check that the selected variants are valid
UTIL_GET_NON_MATCHING_VALUES(INVALID_VARIANTS, $JVM_VARIANTS, \
$VALID_JVM_VARIANTS)
BASIC_GET_NON_MATCHING_VALUES(INVALID_VARIANTS, $JVM_VARIANTS, $VALID_JVM_VARIANTS)
if test "x$INVALID_VARIANTS" != x; then
AC_MSG_NOTICE([Unknown variant(s) specified: "$INVALID_VARIANTS"])
AC_MSG_NOTICE([The available JVM variants are: "$VALID_JVM_VARIANTS"])
@@ -120,11 +103,9 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_VARIANTS],
# All "special" variants share the same output directory ("server")
VALID_MULTIPLE_JVM_VARIANTS="server client minimal"
UTIL_GET_NON_MATCHING_VALUES(INVALID_MULTIPLE_VARIANTS, $JVM_VARIANTS, \
$VALID_MULTIPLE_JVM_VARIANTS)
if test "x$INVALID_MULTIPLE_VARIANTS" != x && \
test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = xtrue; then
AC_MSG_ERROR([You can only build multiple variants using these variants: '$VALID_MULTIPLE_JVM_VARIANTS'])
BASIC_GET_NON_MATCHING_VALUES(INVALID_MULTIPLE_VARIANTS, $JVM_VARIANTS, $VALID_MULTIPLE_JVM_VARIANTS)
if test "x$INVALID_MULTIPLE_VARIANTS" != x && test "x$BUILDING_MULTIPLE_JVM_VARIANTS" = xtrue; then
AC_MSG_ERROR([You cannot build multiple variants with anything else than $VALID_MULTIPLE_JVM_VARIANTS.])
fi
# The "main" variant is the one used by other libs to link against during the
@@ -165,11 +146,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_DTRACE],
DTRACE_DEP_MISSING=false
AC_MSG_CHECKING([for dtrace tool and platform support])
if test "x$OPENJDK_TARGET_CPU_ARCH" = "xppc"; then
AC_MSG_RESULT([no, $OPENJDK_TARGET_CPU_ARCH])
DTRACE_DEP_MISSING=true
elif test "x$DTRACE" != "x" && test -x "$DTRACE"; then
AC_MSG_CHECKING([for dtrace tool])
if test "x$DTRACE" != "x" && test -x "$DTRACE"; then
AC_MSG_RESULT([$DTRACE])
else
AC_MSG_RESULT([not found, cannot build dtrace])
@@ -227,7 +205,7 @@ AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_AOT],
if test "x$ENABLE_AOT" = "xtrue"; then
# Only enable AOT on X64 platforms.
if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || test "x$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU" = "xlinux-aarch64" ; then
if test "x$OPENJDK_TARGET_CPU" = "xx86_64" || test "x$OPENJDK_TARGET_CPU" = "xaarch64" ; then
if test -e "${TOPDIR}/src/jdk.aot"; then
if test -e "${TOPDIR}/src/jdk.internal.vm.compiler"; then
ENABLE_AOT="true"
@@ -246,7 +224,7 @@ AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_AOT],
else
ENABLE_AOT="false"
if test "x$enable_aot" = "xyes"; then
AC_MSG_ERROR([AOT is currently only supported on x86_64 and linux-aarch64. Remove --enable-aot.])
AC_MSG_ERROR([AOT is currently only supported on x86_64 and aarch64. Remove --enable-aot.])
fi
fi
fi
@@ -272,22 +250,6 @@ AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_CDS],
AC_MSG_ERROR([Invalid value for --enable-cds: $enable_cds])
fi
# Disable CDS on AIX.
if test "x$OPENJDK_TARGET_OS" = "xaix"; 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
# 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 macOS/aarch64. Remove --enable-cds.])
fi
fi
AC_SUBST(ENABLE_CDS)
])
@@ -297,7 +259,7 @@ AC_DEFUN_ONCE([HOTSPOT_ENABLE_DISABLE_CDS],
AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
[
# Prettify the VALID_JVM_FEATURES string
UTIL_SORT_LIST(VALID_JVM_FEATURES, $VALID_JVM_FEATURES)
BASIC_SORT_LIST(VALID_JVM_FEATURES, $VALID_JVM_FEATURES)
# The user can in some cases supply additional jvm features. For the custom
# variant, this defines the entire variant.
@@ -313,7 +275,7 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
DISABLED_JVM_FEATURES=`$ECHO $USER_JVM_FEATURE_LIST | $AWK '{ for (i=1; i<=NF; i++) if (match($i, /^-.*/)) printf("%s ", substr($i, 2))}'`
# Verify that the user has provided valid features
UTIL_GET_NON_MATCHING_VALUES(INVALID_FEATURES, $JVM_FEATURES $DISABLED_JVM_FEATURES, $VALID_JVM_FEATURES $DEPRECATED_JVM_FEATURES)
BASIC_GET_NON_MATCHING_VALUES(INVALID_FEATURES, $JVM_FEATURES $DISABLED_JVM_FEATURES, $VALID_JVM_FEATURES $DEPRECATED_JVM_FEATURES)
if test "x$INVALID_FEATURES" != x; then
AC_MSG_NOTICE([Unknown JVM features specified: "$INVALID_FEATURES"])
AC_MSG_NOTICE([The available JVM features are: "$VALID_JVM_FEATURES"])
@@ -321,12 +283,12 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
fi
# Check if the user has provided deprecated features
UTIL_GET_MATCHING_VALUES(DEPRECATED_FEATURES, $JVM_FEATURES $DISABLED_JVM_FEATURES, $DEPRECATED_JVM_FEATURES)
BASIC_GET_MATCHING_VALUES(DEPRECATED_FEATURES, $JVM_FEATURES $DISABLED_JVM_FEATURES, $DEPRECATED_JVM_FEATURES)
if test "x$DEPRECATED_FEATURES" != x; then
AC_MSG_WARN([Deprecated JVM features specified (will be ignored): "$DEPRECATED_FEATURES"])
# Filter out deprecated features
UTIL_GET_NON_MATCHING_VALUES(JVM_FEATURES, $JVM_FEATURES, $DEPRECATED_FEATURES)
UTIL_GET_NON_MATCHING_VALUES(DISABLED_JVM_FEATURES, $DISABLED_JVM_FEATURES, $DEPRECATED_FEATURES)
BASIC_GET_NON_MATCHING_VALUES(JVM_FEATURES, $JVM_FEATURES, $DEPRECATED_FEATURES)
BASIC_GET_NON_MATCHING_VALUES(DISABLED_JVM_FEATURES, $DISABLED_JVM_FEATURES, $DEPRECATED_FEATURES)
fi
fi
@@ -335,9 +297,6 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
if test "x$OPENJDK_TARGET_CPU" = xarm; then
HOTSPOT_TARGET_CPU=arm_32
HOTSPOT_TARGET_CPU_DEFINE="ARM32"
elif test "x$OPENJDK_TARGET_CPU" = xaarch64 && test "x$HOTSPOT_TARGET_CPU_PORT" = xarm64; then
HOTSPOT_TARGET_CPU=arm_64
HOTSPOT_TARGET_CPU_ARCH=arm
fi
# Verify that dependencies are met for explicitly set features.
@@ -366,32 +325,22 @@ 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
# Only enable ZGC on Linux x86_64
AC_MSG_CHECKING([if zgc should be built])
if HOTSPOT_CHECK_JVM_FEATURE(zgc); then
if test "x$OPENJDK_TARGET_OS" = "xlinux" && test "x$OPENJDK_TARGET_CPU" = "xx86_64"; then
AC_MSG_RESULT([yes])
else
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES shenandoahgc"
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc"
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
AC_MSG_RESULT([yes])
else
DISABLED_JVM_FEATURES="$DISABLED_JVM_FEATURES zgc"
AC_MSG_RESULT([no, platform not supported])
AC_MSG_RESULT([no])
fi
# 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
@@ -419,7 +368,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"
@@ -445,7 +395,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"
@@ -458,11 +409,10 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
JVM_FEATURES_graal="graal"
INCLUDE_GRAAL="true"
else
# By default enable graal build on x64/aarch64 or where AOT is available.
# By default enable graal build on x64 or where AOT is available.
# graal build requires jvmci.
if test "x$JVM_FEATURES_jvmci" = "xjvmci" && \
(test "x$OPENJDK_TARGET_CPU" = "xx86_64" || \
test "x$OPENJDK_TARGET_CPU" = "xaarch64" || \
test "x$ENABLE_AOT" = "xtrue") ; then
AC_MSG_RESULT([yes])
JVM_FEATURES_graal="graal"
@@ -478,7 +428,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
@@ -502,7 +453,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])
@@ -523,7 +474,35 @@ 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"
# Disable CDS on AIX.
if test "x$OPENJDK_TARGET_OS" = "xaix"; 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
# Disable CDS if user requested it with --with-jvm-features=-cds.
DISABLE_CDS=`$ECHO $DISABLED_JVM_FEATURES | $GREP cds`
if test "x$DISABLE_CDS" = "xcds"; then
ENABLE_CDS="false"
if test "x$enable_cds" = "xyes"; then
AC_MSG_ERROR([CDS was disabled by --with-jvm-features=-cds. Remove --enable-cds.])
fi
fi
# Disable CDS for zero, minimal, core..
if HOTSPOT_CHECK_JVM_VARIANT(zero) || HOTSPOT_CHECK_JVM_VARIANT(minimal) || HOTSPOT_CHECK_JVM_VARIANT(core); then
# ..except when the user explicitely requested it with --enable-jvm-features
if ! HOTSPOT_CHECK_JVM_FEATURE(cds); then
ENABLE_CDS="false"
if test "x$enable_cds" = "xyes"; then
AC_MSG_ERROR([CDS not implemented for variants zero, minimal, core. Remove --enable-cds.])
fi
fi
fi
AC_MSG_CHECKING([if cds should be enabled])
if test "x$ENABLE_CDS" = "xtrue"; then
@@ -559,8 +538,8 @@ AC_DEFUN_ONCE([HOTSPOT_SETUP_JVM_FEATURES],
# Used for verification of Makefiles by check-jvm-feature
AC_SUBST(VALID_JVM_FEATURES)
# We don't support --with-jvm-interpreter anymore, use zero instead.
UTIL_DEPRECATED_ARG_WITH(jvm-interpreter)
# --with-cpu-port is no longer supported
BASIC_DEPRECATED_ARG_WITH(with-cpu-port)
])
###############################################################################
@@ -574,10 +553,10 @@ AC_DEFUN_ONCE([HOTSPOT_FINALIZE_JVM_FEATURES],
JVM_FEATURES_FOR_VARIANT=${!features_var_name}
# Filter out user-requested disabled features
UTIL_GET_NON_MATCHING_VALUES(JVM_FEATURES_FOR_VARIANT, $JVM_FEATURES_FOR_VARIANT, $DISABLED_JVM_FEATURES)
BASIC_GET_NON_MATCHING_VALUES(JVM_FEATURES_FOR_VARIANT, $JVM_FEATURES_FOR_VARIANT, $DISABLED_JVM_FEATURES)
# Keep feature lists sorted and free of duplicates
UTIL_SORT_LIST(JVM_FEATURES_FOR_VARIANT, $JVM_FEATURES_FOR_VARIANT)
BASIC_SORT_LIST(JVM_FEATURES_FOR_VARIANT, $JVM_FEATURES_FOR_VARIANT)
# Update real feature set variable
eval $features_var_name='"'$JVM_FEATURES_FOR_VARIANT'"'
@@ -590,38 +569,13 @@ AC_DEFUN_ONCE([HOTSPOT_FINALIZE_JVM_FEATURES],
fi
# Validate features (for configure script errors, not user errors)
UTIL_GET_NON_MATCHING_VALUES(INVALID_FEATURES, $JVM_FEATURES_FOR_VARIANT, $VALID_JVM_FEATURES)
BASIC_GET_NON_MATCHING_VALUES(INVALID_FEATURES, $JVM_FEATURES_FOR_VARIANT, $VALID_JVM_FEATURES)
if test "x$INVALID_FEATURES" != x; then
AC_MSG_ERROR([Internal configure script error. Invalid JVM feature(s): $INVALID_FEATURES])
fi
done
])
################################################################################
#
# Specify which sources will be used to build the 64-bit ARM port
#
# --with-cpu-port=arm64 will use hotspot/src/cpu/arm
# --with-cpu-port=aarch64 will use hotspot/src/cpu/aarch64
#
AC_DEFUN([SETUP_HOTSPOT_TARGET_CPU_PORT],
[
AC_ARG_WITH(cpu-port, [AS_HELP_STRING([--with-cpu-port],
[specify sources to use for Hotspot 64-bit ARM port (arm64,aarch64) @<:@aarch64@:>@ ])])
if test "x$with_cpu_port" != x; then
if test "x$OPENJDK_TARGET_CPU" != xaarch64; then
AC_MSG_ERROR([--with-cpu-port only available on aarch64])
fi
if test "x$with_cpu_port" != xarm64 && \
test "x$with_cpu_port" != xaarch64; then
AC_MSG_ERROR([--with-cpu-port must specify arm64 or aarch64])
fi
HOTSPOT_TARGET_CPU_PORT="$with_cpu_port"
fi
])
################################################################################
# Check if gtest should be built
#

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, 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
@@ -33,19 +33,8 @@
# modules to compile into the JDK.
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_VARIANT],
[
AC_MSG_CHECKING([which variant of the JDK to build])
AC_ARG_WITH([jdk-variant], [AS_HELP_STRING([--with-jdk-variant],
[JDK variant to build (normal) @<:@normal@:>@])])
if test "x$with_jdk_variant" = xnormal || test "x$with_jdk_variant" = x; then
JDK_VARIANT="normal"
else
AC_MSG_ERROR([The available JDK variants are: normal])
fi
AC_SUBST(JDK_VARIANT)
AC_MSG_RESULT([$JDK_VARIANT])
# Deprecated in JDK 12
BASIC_DEPRECATED_ARG_WITH([jdk-variant])
])
###############################################################################
@@ -126,10 +115,6 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_OPEN_OR_CUSTOM],
else
AC_MSG_ERROR([Invalid value for --enable-openjdk-only: $enable_openjdk_only])
fi
# custom-make-dir is deprecated. Please use your custom-hook.m4 to override
# the IncludeCustomExtension macro.
UTIL_DEPRECATED_ARG_WITH(custom-make-dir)
])
AC_DEFUN_ONCE([JDKOPT_SETUP_JDK_OPTIONS],
@@ -283,7 +268,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])
@@ -291,43 +276,28 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_DEBUG_SYMBOLS],
[AS_HELP_STRING([--with-native-debug-symbols],
[set the native debug symbol configuration (none, internal, external, zipped) @<:@varying@:>@])],
[
if test "x$OPENJDK_TARGET_OS" = xwindows; then
if test "x$withval" = xinternal; then
AC_MSG_ERROR([Windows does not support the parameter 'internal' for --with-native-debug-symbols])
if test "x$OPENJDK_TARGET_OS" = xaix; then
if test "x$withval" = xexternal || test "x$withval" = xzipped; then
AC_MSG_ERROR([AIX only supports the parameters 'none' and 'internal' for --with-native-debug-symbols])
fi
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
with_native_debug_symbols="external"
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
@@ -340,50 +310,34 @@ 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
# --enable-debug-symbols is deprecated.
# Please use --with-native-debug-symbols=[internal,external,zipped] .
UTIL_DEPRECATED_ARG_ENABLE(debug-symbols, debug_symbols,
[Please use --with-native-debug-symbols=[[internal,external,zipped]] .])
# --enable-zip-debug-info is deprecated.
# Please use --with-native-debug-symbols=zipped .
UTIL_DEPRECATED_ARG_ENABLE(zip-debug-info, zip_debug_info,
[Please use --with-native-debug-symbols=zipped .])
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)
])
################################################################################
@@ -521,6 +475,45 @@ AC_DEFUN_ONCE([JDKOPT_SETUP_JLINK_OPTIONS],
AC_SUBST(JLINK_KEEP_PACKAGED_MODULES)
])
################################################################################
#
# Check if building of the jtreg failure handler should be enabled.
#
AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_FAILURE_HANDLER],
[
AC_ARG_ENABLE([jtreg-failure-handler], [AS_HELP_STRING([--enable-jtreg-failure-handler],
[forces build of the jtreg failure handler to be enabled, missing dependencies
become fatal errors. Default is auto, where the failure handler is built if all
dependencies are present and otherwise just disabled.])])
AC_MSG_CHECKING([if jtreg failure handler should be built])
if test "x$enable_jtreg_failure_handler" = "xyes"; then
if test "x$JT_HOME" = "x"; then
AC_MSG_ERROR([Cannot enable jtreg failure handler without jtreg.])
else
BUILD_FAILURE_HANDLER=true
AC_MSG_RESULT([yes, forced])
fi
elif test "x$enable_jtreg_failure_handler" = "xno"; then
BUILD_FAILURE_HANDLER=false
AC_MSG_RESULT([no, forced])
elif test "x$enable_jtreg_failure_handler" = "xauto" \
|| test "x$enable_jtreg_failure_handler" = "x"; then
if test "x$JT_HOME" = "x"; then
BUILD_FAILURE_HANDLER=false
AC_MSG_RESULT([no, missing jtreg])
else
BUILD_FAILURE_HANDLER=true
AC_MSG_RESULT([yes, jtreg present])
fi
else
AC_MSG_ERROR([Invalid value for --enable-jtreg-failure-handler: $enable_jtreg_failure_handler])
fi
AC_SUBST(BUILD_FAILURE_HANDLER)
])
################################################################################
#
# Enable or disable generation of the classlist at build time
@@ -534,7 +527,7 @@ AC_DEFUN_ONCE([JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST],
# Check if it's likely that it's possible to generate the classlist. Depending
# on exact jvm configuration it could be possible anyway.
if test "x$ENABLE_CDS" = "xtrue" && (HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client)); then
if test "x$ENABLE_CDS" = "xtrue" && (HOTSPOT_CHECK_JVM_VARIANT(server) || HOTSPOT_CHECK_JVM_VARIANT(client) || HOTSPOT_CHECK_JVM_FEATURE(cds)); then
ENABLE_GENERATE_CLASSLIST_POSSIBLE="true"
else
ENABLE_GENERATE_CLASSLIST_POSSIBLE="false"
@@ -594,10 +587,10 @@ AC_DEFUN([JDKOPT_EXCLUDE_TRANSLATIONS],
AC_DEFUN([JDKOPT_ENABLE_DISABLE_MANPAGES],
[
AC_ARG_ENABLE([manpages], [AS_HELP_STRING([--disable-manpages],
[Set to disable building of man pages @<:@enabled@:>@])])
[Set to disable copy of static man pages @<:@enabled@:>@])])
BUILD_MANPAGES="true"
AC_MSG_CHECKING([if man pages should be built])
AC_MSG_CHECKING([if static man pages should be copied])
if test "x$enable_manpages" = "x"; then
AC_MSG_RESULT([yes])
elif test "x$enable_manpages" = "xyes"; then
@@ -615,207 +608,34 @@ AC_DEFUN([JDKOPT_ENABLE_DISABLE_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.
# Disable the default CDS archive generation
# cross compilation - disabled
#
AC_DEFUN([JDKOPT_ALLOW_ABSOLUTE_PATHS_IN_OUTPUT],
AC_DEFUN([JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE],
[
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_ARG_ENABLE([cds-archive], [AS_HELP_STRING([--disable-cds-archive],
[Set to disable generation of a default CDS archive in the product image @<:@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_CHECKING([if a default CDS archive should be generated])
if test "x$ENABLE_CDS" = "xfalse"; then
AC_MSG_RESULT([no, because CDS is disabled])
BUILD_CDS_ARCHIVE="false"
elif test "x$COMPILE_TYPE" = "xcross"; then
AC_MSG_RESULT([no, not possible with cross compilation])
BUILD_CDS_ARCHIVE="false"
elif test "x$enable_cds_archive" = "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)
])
################################################################################
#
# Check and set options related to reproducible builds.
#
AC_DEFUN_ONCE([JDKOPT_SETUP_REPRODUCIBLE_BUILD],
[
AC_ARG_WITH([source-date], [AS_HELP_STRING([--with-source-date],
[how to set SOURCE_DATE_EPOCH ('updated', 'current', 'version' a timestamp or an ISO-8601 date) @<:@updated@:>@])],
[with_source_date_present=true], [with_source_date_present=false])
AC_MSG_CHECKING([what source date to use])
if test "x$with_source_date" = xyes; then
AC_MSG_ERROR([--with-source-date must have a value])
elif test "x$with_source_date" = xupdated || test "x$with_source_date" = x; then
# Tell the makefiles to update at each build
SOURCE_DATE=updated
AC_MSG_RESULT([determined at build time, from 'updated'])
elif test "x$with_source_date" = xcurrent; then
# Set the current time
SOURCE_DATE=$($DATE +"%s")
AC_MSG_RESULT([$SOURCE_DATE, from 'current'])
elif test "x$with_source_date" = xversion; then
# Use the date from version-numbers
UTIL_GET_EPOCH_TIMESTAMP(SOURCE_DATE, $DEFAULT_VERSION_DATE)
if test "x$SOURCE_DATE" = x; then
AC_MSG_RESULT([unavailable])
AC_MSG_ERROR([Cannot convert DEFAULT_VERSION_DATE to timestamp])
fi
AC_MSG_RESULT([$SOURCE_DATE, from 'version'])
else
# It's a timestamp, an ISO-8601 date, or an invalid string
# Additional [] needed to keep m4 from mangling shell constructs.
if [ [[ "$with_source_date" =~ ^[0-9][0-9]*$ ]] ] ; then
SOURCE_DATE=$with_source_date
AC_MSG_RESULT([$SOURCE_DATE, from timestamp on command line])
else
UTIL_GET_EPOCH_TIMESTAMP(SOURCE_DATE, $with_source_date)
if test "x$SOURCE_DATE" != x; then
AC_MSG_RESULT([$SOURCE_DATE, from ISO-8601 date on command line])
else
AC_MSG_RESULT([unavailable])
AC_MSG_ERROR([Cannot parse date string "$with_source_date"])
fi
fi
fi
REPRODUCIBLE_BUILD_DEFAULT=$with_source_date_present
if test "x$OPENJDK_BUILD_OS" = xwindows && \
test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = xfalse; then
# To support banning absolute paths on Windows, we must use the -pathmap
# method, which requires reproducible builds.
REPRODUCIBLE_BUILD_DEFAULT=true
fi
UTIL_ARG_ENABLE(NAME: reproducible-build, DEFAULT: $REPRODUCIBLE_BUILD_DEFAULT,
RESULT: ENABLE_REPRODUCIBLE_BUILD,
DESC: [enable reproducible builds (not yet fully functional)],
DEFAULT_DESC: [enabled if --with-source-date is given or on Windows without absolute paths])
if test "x$OPENJDK_BUILD_OS" = xwindows && \
test "x$ALLOW_ABSOLUTE_PATHS_IN_OUTPUT" = xfalse && \
test "x$ENABLE_REPRODUCIBLE_BUILD" = xfalse; then
AC_MSG_NOTICE([On Windows it is not possible to combine --disable-reproducible-builds])
AC_MSG_NOTICE([with --disable-absolute-paths-in-output.])
AC_MSG_ERROR([Cannot continue])
fi
AC_SUBST(SOURCE_DATE)
AC_SUBST(ENABLE_REPRODUCIBLE_BUILD)
])
################################################################################
#
# Setup signing on macOS. This can either be setup to sign with a real identity
# and enabling the hardened runtime, or it can simply add the debug entitlement
# com.apple.security.get-task-allow without actually signing any binaries. The
# latter is needed to be able to debug processes and dump core files on modern
# versions of macOS. It can also be skipped completely.
#
# Check if codesign will run with the given parameters
# $1: Parameters to run with
# $2: Checking message
# Sets CODESIGN_SUCCESS=true/false
AC_DEFUN([JDKOPT_CHECK_CODESIGN_PARAMS],
[
PARAMS="$1"
MESSAGE="$2"
CODESIGN_TESTFILE="$CONFIGURESUPPORT_OUTPUTDIR/codesign-testfile"
$RM "$CODESIGN_TESTFILE"
$TOUCH "$CODESIGN_TESTFILE"
CODESIGN_SUCCESS=false
eval \"$CODESIGN\" $PARAMS \"$CODESIGN_TESTFILE\" 2>&AS_MESSAGE_LOG_FD \
>&AS_MESSAGE_LOG_FD && CODESIGN_SUCCESS=true
$RM "$CODESIGN_TESTFILE"
AC_MSG_CHECKING([$MESSAGE])
if test "x$CODESIGN_SUCCESS" = "xtrue"; then
BUILD_CDS_ARCHIVE="true"
elif test "x$enable_cds_archive" = "x"; then
AC_MSG_RESULT([yes])
BUILD_CDS_ARCHIVE="true"
elif test "x$enable_cds_archive" = "xno"; then
AC_MSG_RESULT([no, forced])
BUILD_CDS_ARCHIVE="false"
else
AC_MSG_RESULT([no])
AC_MSG_ERROR([--enable-cds_archive can only be yes/no or empty])
fi
])
AC_DEFUN([JDKOPT_CHECK_CODESIGN_HARDENED],
[
JDKOPT_CHECK_CODESIGN_PARAMS([-s \"$MACOSX_CODESIGN_IDENTITY\" --option runtime],
[if codesign with hardened runtime is possible])
])
AC_DEFUN([JDKOPT_CHECK_CODESIGN_DEBUG],
[
JDKOPT_CHECK_CODESIGN_PARAMS([-s -], [if debug mode codesign is possible])
])
AC_DEFUN([JDKOPT_SETUP_MACOSX_SIGNING],
[
ENABLE_CODESIGN=false
if test "x$OPENJDK_TARGET_OS" = "xmacosx" && test "x$CODESIGN" != "x"; then
UTIL_ARG_WITH(NAME: macosx-codesign, TYPE: literal, OPTIONAL: true,
VALID_VALUES: [hardened debug auto], DEFAULT: auto,
ENABLED_DEFAULT: true,
CHECKING_MSG: [for macosx code signing mode],
DESC: [set the macosx code signing mode (hardened, debug, auto)]
)
MACOSX_CODESIGN_MODE=disabled
if test "x$MACOSX_CODESIGN_ENABLED" = "xtrue"; then
# Check for user provided code signing identity.
UTIL_ARG_WITH(NAME: macosx-codesign-identity, TYPE: string,
DEFAULT: openjdk_codesign, CHECK_VALUE: UTIL_CHECK_STRING_NON_EMPTY,
DESC: [specify the macosx code signing identity],
CHECKING_MSG: [for macosx code signing identity]
)
AC_SUBST(MACOSX_CODESIGN_IDENTITY)
if test "x$MACOSX_CODESIGN" = "xauto"; then
# Only try to default to hardened signing on release builds
if test "x$DEBUG_LEVEL" = "xrelease"; then
JDKOPT_CHECK_CODESIGN_HARDENED
if test "x$CODESIGN_SUCCESS" = "xtrue"; then
MACOSX_CODESIGN_MODE=hardened
fi
fi
if test "x$MACOSX_CODESIGN_MODE" = "xdisabled"; then
JDKOPT_CHECK_CODESIGN_DEBUG
if test "x$CODESIGN_SUCCESS" = "xtrue"; then
MACOSX_CODESIGN_MODE=debug
fi
fi
AC_MSG_CHECKING([for macosx code signing mode])
AC_MSG_RESULT([$MACOSX_CODESIGN_MODE])
elif test "x$MACOSX_CODESIGN" = "xhardened"; then
JDKOPT_CHECK_CODESIGN_HARDENED
if test "x$CODESIGN_SUCCESS" = "xfalse"; then
AC_MSG_ERROR([Signing with hardened runtime is not possible])
fi
MACOSX_CODESIGN_MODE=hardened
elif test "x$MACOSX_CODESIGN" = "xdebug"; then
JDKOPT_CHECK_CODESIGN_DEBUG
if test "x$CODESIGN_SUCCESS" = "xfalse"; then
AC_MSG_ERROR([Signing in debug mode is not possible])
fi
MACOSX_CODESIGN_MODE=debug
else
AC_MSG_ERROR([unknown value for --with-macosx-codesign: $MACOSX_CODESIGN])
fi
fi
AC_SUBST(MACOSX_CODESIGN_IDENTITY)
AC_SUBST(MACOSX_CODESIGN_MODE)
fi
AC_SUBST(BUILD_CDS_ARCHIVE)
])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
# Copyright (c) 2015, 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
@@ -36,7 +36,7 @@
AC_DEFUN([JDKVER_CHECK_AND_SET_NUMBER],
[
# Additional [] needed to keep m4 from mangling shell constructs.
if [ ! [[ "$2" =~ ^0*([1-9][0-9]*)$|^0*(0)$ ]] ] ; then
if [ ! [[ "$2" =~ ^0*([1-9][0-9]*)|(0)$ ]] ] ; then
AC_MSG_ERROR(["$2" is not a valid numerical value for $1])
fi
# Extract the version number without leading zeros.
@@ -57,15 +57,6 @@ AC_DEFUN([JDKVER_CHECK_AND_SET_NUMBER],
AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
[
# Warn user that old version arguments are deprecated.
UTIL_DEPRECATED_ARG_WITH([milestone])
UTIL_DEPRECATED_ARG_WITH([update-version])
UTIL_DEPRECATED_ARG_WITH([user-release-suffix])
UTIL_DEPRECATED_ARG_WITH([build-number])
UTIL_DEPRECATED_ARG_WITH([version-major])
UTIL_DEPRECATED_ARG_WITH([version-minor])
UTIL_DEPRECATED_ARG_WITH([version-security])
# Source the version numbers file
. $AUTOCONF_DIR/version-numbers
@@ -75,23 +66,8 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
AC_SUBST(PRODUCT_SUFFIX)
AC_SUBST(JDK_RC_PLATFORM_NAME)
AC_SUBST(HOTSPOT_VM_DISTRO)
# Set the JDK RC name
AC_ARG_WITH(jdk-rc-name, [AS_HELP_STRING([--with-jdk-rc-name],
[Set JDK RC name. This is used for FileDescription and ProductName properties
of MS Windows binaries. @<:@not specified@:>@])])
if test "x$with_jdk_rc_name" = xyes; then
AC_MSG_ERROR([--with-jdk-rc-name must have a value])
elif [ ! [[ $with_jdk_rc_name =~ ^[[:print:]]*$ ]] ]; then
AC_MSG_ERROR([--with-jdk-rc-name contains non-printing characters: $with_jdk_rc_name])
elif test "x$with_jdk_rc_name" != x; then
# Set JDK_RC_NAME to a custom value if '--with-jdk-rc-name' was used and is not empty.
JDK_RC_NAME="$with_jdk_rc_name"
else
# Otherwise calculate from "version-numbers" included above.
JDK_RC_NAME="$PRODUCT_NAME $JDK_RC_PLATFORM_NAME"
fi
AC_SUBST(JDK_RC_NAME)
AC_SUBST(MACOSX_BUNDLE_NAME_BASE)
AC_SUBST(MACOSX_BUNDLE_ID_BASE)
# The vendor name, if any
AC_ARG_WITH(vendor-name, [AS_HELP_STRING([--with-vendor-name],
@@ -115,9 +91,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)
@@ -129,9 +103,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)
@@ -143,9 +115,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)
@@ -464,7 +434,7 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
AC_MSG_ERROR([--with-version-date must have a value])
elif test "x$with_version_date" != x; then
if [ ! [[ $with_version_date =~ ^[0-9]{4}-[0-9]{2}-[0-9]{2}$ ]] ]; then
AC_MSG_ERROR(["$with_version_date" is not a valid version date])
AC_MSG_ERROR(["$with_version_date" is not a valid version date])
else
VERSION_DATE="$with_version_date"
fi
@@ -483,60 +453,6 @@ AC_DEFUN_ONCE([JDKVER_SETUP_JDK_VERSION_NUMBERS],
VENDOR_VERSION_STRING="$with_vendor_version_string"
fi
# Set the MACOSX Bundle Name base
AC_ARG_WITH(macosx-bundle-name-base, [AS_HELP_STRING([--with-macosx-bundle-name-base],
[Set the MacOSX Bundle Name base. This is the base name for calculating MacOSX Bundle Names.
@<:@not specified@:>@])])
if test "x$with_macosx_bundle_name_base" = xyes; then
AC_MSG_ERROR([--with-macosx-bundle-name-base must have a value])
elif [ ! [[ $with_macosx_bundle_name_base =~ ^[[:print:]]*$ ]] ]; then
AC_MSG_ERROR([--with-macosx-bundle-name-base contains non-printing characters: $with_macosx_bundle_name_base])
elif test "x$with_macosx_bundle_name_base" != x; then
# Set MACOSX_BUNDLE_NAME_BASE to the configured value.
MACOSX_BUNDLE_NAME_BASE="$with_macosx_bundle_name_base"
fi
AC_SUBST(MACOSX_BUNDLE_NAME_BASE)
# Set the MACOSX Bundle ID base
AC_ARG_WITH(macosx-bundle-id-base, [AS_HELP_STRING([--with-macosx-bundle-id-base],
[Set the MacOSX Bundle ID base. This is the base ID for calculating MacOSX Bundle IDs.
@<:@not specified@:>@])])
if test "x$with_macosx_bundle_id_base" = xyes; then
AC_MSG_ERROR([--with-macosx-bundle-id-base must have a value])
elif [ ! [[ $with_macosx_bundle_id_base =~ ^[[:print:]]*$ ]] ]; then
AC_MSG_ERROR([--with-macosx-bundle-id-base contains non-printing characters: $with_macosx_bundle_id_base])
elif test "x$with_macosx_bundle_id_base" != x; then
# Set MACOSX_BUNDLE_ID_BASE to the configured value.
MACOSX_BUNDLE_ID_BASE="$with_macosx_bundle_id_base"
else
# If using the default value, append the VERSION_PRE if there is one
# to make it possible to tell official builds apart from developer builds
if test "x$VERSION_PRE" != x; then
MACOSX_BUNDLE_ID_BASE="$MACOSX_BUNDLE_ID_BASE-$VERSION_PRE"
fi
fi
AC_SUBST(MACOSX_BUNDLE_ID_BASE)
# Set the MACOSX CFBundleVersion field
AC_ARG_WITH(macosx-bundle-build-version, [AS_HELP_STRING([--with-macosx-bundle-build-version],
[Set the MacOSX Bundle CFBundleVersion field. This key is a machine-readable
string composed of one to three period-separated integers and should represent the
build version. Defaults to the build number.])])
if test "x$with_macosx_bundle_build_version" = xyes; then
AC_MSG_ERROR([--with-macosx-bundle-build-version must have a value])
elif [ ! [[ $with_macosx_bundle_build_version =~ ^[0-9\.]*$ ]] ]; then
AC_MSG_ERROR([--with-macosx-bundle-build-version contains non numbers and periods: $with_macosx_bundle_build_version])
elif test "x$with_macosx_bundle_build_version" != x; then
MACOSX_BUNDLE_BUILD_VERSION="$with_macosx_bundle_build_version"
else
MACOSX_BUNDLE_BUILD_VERSION="$VERSION_BUILD"
# If VERSION_OPT consists of only numbers and periods, add it.
if [ [[ $VERSION_OPT =~ ^[0-9\.]+$ ]] ]; then
MACOSX_BUNDLE_BUILD_VERSION+=".$VERSION_OPT"
fi
fi
AC_SUBST(MACOSX_BUNDLE_BUILD_VERSION)
# We could define --with flags for these, if really needed
VERSION_CLASSFILE_MAJOR="$DEFAULT_VERSION_CLASSFILE_MAJOR"
VERSION_CLASSFILE_MINOR="$DEFAULT_VERSION_CLASSFILE_MINOR"

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2022, 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
@@ -37,7 +37,6 @@ AC_DEFUN_ONCE([LIB_SETUP_BUNDLED_LIBS],
LIB_SETUP_LIBPNG
LIB_SETUP_ZLIB
LIB_SETUP_LCMS
LIB_SETUP_HARFBUZZ
])
################################################################################
@@ -214,9 +213,6 @@ AC_DEFUN_ONCE([LIB_SETUP_ZLIB],
LIBZ_LIBS=""
if test "x$USE_EXTERNAL_LIBZ" = "xfalse"; then
LIBZ_CFLAGS="$LIBZ_CFLAGS -I$TOPDIR/src/java.base/share/native/libzip/zlib"
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
LIBZ_CFLAGS="$LIBZ_CFLAGS -DHAVE_UNISTD_H"
fi
else
LIBZ_LIBS="-lz"
fi
@@ -264,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

@@ -173,16 +173,6 @@ AC_DEFUN_ONCE([LIB_SETUP_FREETYPE],
FREETYPE_BASE_DIR="$SYSROOT/usr"
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location])
if test "x$FOUND_FREETYPE" != "xyes" ; then
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include],
[$FREETYPE_BASE_DIR/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI], [well-known location])
fi
if test "x$FOUND_FREETYPE" != "xyes" ; then
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include],
[$FREETYPE_BASE_DIR/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI], [well-known location])
fi
if (test "x$FOUND_FREETYPE" != "xyes"); then
FREETYPE_BASE_DIR="$SYSROOT/usr/X11"
LIB_CHECK_POTENTIAL_FREETYPE([$FREETYPE_BASE_DIR/include], [$FREETYPE_BASE_DIR/lib], [well-known location])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2018, 2022, Oracle and/or its affiliates. All rights reserved.
# 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
@@ -23,13 +23,6 @@
# questions.
#
################################################################################
# Setup libraries and functionalities needed to test the JDK.
################################################################################
# Minimum supported version
JTREG_MINIMUM_VERSION=7.3.1
###############################################################################
#
# Check for graalunit libs, needed for running graalunit tests.
@@ -58,211 +51,69 @@ AC_DEFUN_ONCE([LIB_TESTS_SETUP_GRAALUNIT],
fi
fi
UTIL_FIXUP_PATH([GRAALUNIT_LIB])
BASIC_FIXUP_PATH([GRAALUNIT_LIB])
AC_SUBST(GRAALUNIT_LIB)
])
# Setup the JTReg Regression Test Harness.
AC_DEFUN_ONCE([LIB_TESTS_SETUP_JTREG],
###############################################################################
#
# Setup and check the Java Microbenchmark Harness
#
AC_DEFUN_ONCE([LIB_TESTS_SETUP_JMH],
[
AC_ARG_WITH(jtreg, [AS_HELP_STRING([--with-jtreg],
[Regression Test Harness @<:@probed@:>@])])
AC_ARG_WITH(jmh, [AS_HELP_STRING([--with-jmh],
[Java Microbenchmark Harness for building the OpenJDK Microbenchmark Suite])])
if test "x$with_jtreg" = xno; then
# jtreg disabled
AC_MSG_CHECKING([for jtreg test harness])
AC_MSG_CHECKING([for jmh (Java Microbenchmark Harness)])
if test "x$with_jmh" = xno || test "x$with_jmh" = x; then
AC_MSG_RESULT([no, disabled])
elif test "x$with_jtreg" != xyes && test "x$with_jtreg" != x; then
# An explicit path is specified, use it.
JT_HOME="$with_jtreg"
UTIL_FIXUP_PATH([JT_HOME])
if test ! -d "$JT_HOME"; then
AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg does not exist])
fi
if test ! -e "$JT_HOME/lib/jtreg.jar"; then
AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg is not a valid jtreg home])
fi
JTREGEXE="$JT_HOME/bin/jtreg"
if test ! -x "$JTREGEXE"; then
AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg does not contain valid jtreg executable])
fi
AC_MSG_CHECKING([for jtreg test harness])
AC_MSG_RESULT([$JT_HOME])
elif test "x$with_jmh" = xyes; then
AC_MSG_RESULT([no, error])
AC_MSG_ERROR([--with-jmh requires a directory containing all jars needed by JMH])
else
# Try to locate jtreg
if test "x$JT_HOME" != x; then
# JT_HOME set in environment, use it
if test ! -d "$JT_HOME"; then
AC_MSG_WARN([Ignoring JT_HOME pointing to invalid directory: $JT_HOME])
JT_HOME=
else
if test ! -e "$JT_HOME/lib/jtreg.jar"; then
AC_MSG_WARN([Ignoring JT_HOME which is not a valid jtreg home: $JT_HOME])
JT_HOME=
elif test ! -x "$JT_HOME/bin/jtreg"; then
AC_MSG_WARN([Ignoring JT_HOME which does not contain valid jtreg executable: $JT_HOME])
JT_HOME=
else
JTREGEXE="$JT_HOME/bin/jtreg"
AC_MSG_NOTICE([Located jtreg using JT_HOME from environment])
fi
fi
# Path specified
JMH_HOME="$with_jmh"
if test ! -d [$JMH_HOME]; then
AC_MSG_RESULT([no, error])
AC_MSG_ERROR([$JMH_HOME does not exist or is not a directory])
fi
BASIC_FIXUP_PATH([JMH_HOME])
if test "x$JT_HOME" = x; then
# JT_HOME is not set in environment, or was deemed invalid.
# Try to find jtreg on path
UTIL_LOOKUP_PROGS(JTREGEXE, jtreg)
if test "x$JTREGEXE" != x; then
# That's good, now try to derive JT_HOME
JT_HOME=`(cd $($DIRNAME $JTREGEXE)/.. && pwd)`
if test ! -e "$JT_HOME/lib/jtreg.jar"; then
AC_MSG_WARN([Ignoring jtreg from path since a valid jtreg home cannot be found])
JT_HOME=
JTREGEXE=
else
AC_MSG_NOTICE([Located jtreg using jtreg executable in path])
fi
jar_names="jmh-core jmh-generator-annprocess jopt-simple commons-math3"
for jar in $jar_names; do
found_jar_files=$($ECHO $(ls $JMH_HOME/$jar-*.jar 2> /dev/null))
if test "x$found_jar_files" = x; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([--with-jmh does not contain $jar-*.jar])
elif ! test -e "$found_jar_files"; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([--with-jmh contain multiple $jar-*.jar: $found_jar_files])
fi
fi
AC_MSG_CHECKING([for jtreg test harness])
if test "x$JT_HOME" != x; then
AC_MSG_RESULT([$JT_HOME])
found_jar_var_name=found_${jar//-/_}
eval $found_jar_var_name='"'$found_jar_files'"'
done
AC_MSG_RESULT([yes])
JMH_CORE_JAR=$found_jmh_core
JMH_GENERATOR_JAR=$found_jmh_generator_annprocess
JMH_JOPT_SIMPLE_JAR=$found_jopt_simple
JMH_COMMONS_MATH_JAR=$found_commons_math3
if [ [[ "$JMH_CORE_JAR" =~ jmh-core-(.*)\.jar$ ]] ] ; then
JMH_VERSION=${BASH_REMATCH[[1]]}
else
AC_MSG_RESULT([no, not found])
if test "x$with_jtreg" = xyes; then
AC_MSG_ERROR([--with-jtreg was specified, but no jtreg found.])
fi
JMH_VERSION=unknown
fi
AC_MSG_NOTICE([JMH core version: $JMH_VERSION])
fi
UTIL_FIXUP_EXECUTABLE(JTREGEXE)
UTIL_FIXUP_PATH(JT_HOME)
AC_SUBST(JT_HOME)
# Specify a JDK for running jtreg. Defaults to the BOOT_JDK.
AC_ARG_WITH(jtreg-jdk, [AS_HELP_STRING([--with-jdk],
[path to JDK for running jtreg @<:@BOOT_JDK@:>@])])
AC_MSG_CHECKING([for jtreg jdk])
if test "x${with_jtreg_jdk}" != x; then
if test "x${with_jtreg_jdk}" = xno; then
AC_MSG_RESULT([no, jtreg jdk not specified])
elif test "x${with_jtreg_jdk}" = xyes; then
AC_MSG_RESULT([not specified])
AC_MSG_ERROR([--with-jtreg-jdk needs a value])
else
JTREG_JDK="${with_jtreg_jdk}"
AC_MSG_RESULT([$JTREG_JDK])
UTIL_FIXUP_PATH(JTREG_JDK)
if test ! -f "$JTREG_JDK/bin/java"; then
AC_MSG_ERROR([Could not find jtreg java at $JTREG_JDK/bin/java])
fi
fi
else
JTREG_JDK="${BOOT_JDK}"
AC_MSG_RESULT([no, using BOOT_JDK])
fi
UTIL_FIXUP_PATH(JTREG_JDK)
AC_SUBST([JTREG_JDK])
# For use in the configure script
JTREG_JAVA="$FIXPATH $JTREG_JDK/bin/java"
# Verify jtreg version
if test "x$JT_HOME" != x; then
AC_MSG_CHECKING([jtreg jar existence])
if test ! -f "$JT_HOME/lib/jtreg.jar"; then
AC_MSG_ERROR([Could not find jtreg jar at $JT_HOME/lib/jtreg.jar])
fi
AC_MSG_CHECKING([jtreg version number])
# jtreg -version looks like this: "jtreg 6.1+1-19"
# Extract actual version part ("6.1" in this case)
jtreg_version_full=$($JTREG_JAVA -jar $JT_HOME/lib/jtreg.jar -version | $HEAD -n 1 | $CUT -d ' ' -f 2)
jtreg_version=${jtreg_version_full/%+*}
AC_MSG_RESULT([$jtreg_version])
# This is a simplified version of TOOLCHAIN_CHECK_COMPILER_VERSION
comparable_actual_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$jtreg_version"`
comparable_minimum_version=`$AWK -F. '{ printf("%05d%05d%05d%05d\n", [$]1, [$]2, [$]3, [$]4) }' <<< "$JTREG_MINIMUM_VERSION"`
if test $comparable_actual_version -lt $comparable_minimum_version ; then
AC_MSG_ERROR([jtreg version is too old, at least version $JTREG_MINIMUM_VERSION is required])
fi
fi
AC_SUBST(JTREGEXE)
])
# Setup the JIB dependency resolver
AC_DEFUN_ONCE([LIB_TESTS_SETUP_JIB],
[
AC_ARG_WITH(jib, [AS_HELP_STRING([--with-jib],
[Jib dependency management tool @<:@not used@:>@])])
if test "x$with_jib" = xno || test "x$with_jib" = x; then
# jib disabled
AC_MSG_CHECKING([for jib])
AC_MSG_RESULT(no)
elif test "x$with_jib" = xyes; then
AC_MSG_ERROR([Must supply a value to --with-jib])
else
JIB_HOME="${with_jib}"
AC_MSG_CHECKING([for jib])
AC_MSG_RESULT(${JIB_HOME})
if test ! -d "${JIB_HOME}"; then
AC_MSG_ERROR([--with-jib must be a directory])
fi
JIB_JAR=$(ls ${JIB_HOME}/lib/jib-*.jar)
if test ! -f "${JIB_JAR}"; then
AC_MSG_ERROR([Could not find jib jar file in ${JIB_HOME}])
fi
fi
AC_SUBST(JIB_HOME)
])
################################################################################
#
# Check if building of the jtreg failure handler should be enabled.
#
AC_DEFUN_ONCE([LIB_TESTS_ENABLE_DISABLE_FAILURE_HANDLER],
[
AC_ARG_ENABLE([jtreg-failure-handler], [AS_HELP_STRING([--enable-jtreg-failure-handler],
[forces build of the jtreg failure handler to be enabled, missing dependencies
become fatal errors. Default is auto, where the failure handler is built if all
dependencies are present and otherwise just disabled.])])
AC_MSG_CHECKING([if jtreg failure handler should be built])
if test "x$enable_jtreg_failure_handler" = "xyes"; then
if test "x$JT_HOME" = "x"; then
AC_MSG_ERROR([Cannot enable jtreg failure handler without jtreg.])
else
BUILD_FAILURE_HANDLER=true
AC_MSG_RESULT([yes, forced])
fi
elif test "x$enable_jtreg_failure_handler" = "xno"; then
BUILD_FAILURE_HANDLER=false
AC_MSG_RESULT([no, forced])
elif test "x$enable_jtreg_failure_handler" = "xauto" \
|| test "x$enable_jtreg_failure_handler" = "x"; then
if test "x$JT_HOME" = "x"; then
BUILD_FAILURE_HANDLER=false
AC_MSG_RESULT([no, missing jtreg])
else
BUILD_FAILURE_HANDLER=true
AC_MSG_RESULT([yes, jtreg present])
fi
else
AC_MSG_ERROR([Invalid value for --enable-jtreg-failure-handler: $enable_jtreg_failure_handler])
fi
AC_SUBST(BUILD_FAILURE_HANDLER)
AC_SUBST(JMH_CORE_JAR)
AC_SUBST(JMH_GENERATOR_JAR)
AC_SUBST(JMH_JOPT_SIMPLE_JAR)
AC_SUBST(JMH_COMMONS_MATH_JAR)
AC_SUBST(JMH_VERSION)
])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2023, 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
@@ -35,7 +35,6 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
X_CFLAGS=
X_LIBS=
else
x_libraries_orig="$x_libraries"
if test "x${with_x}" = xno; then
AC_MSG_ERROR([It is not possible to disable the use of X11. Remove the --without-x option.])
@@ -49,7 +48,6 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
fi
if test "x$x_libraries" = xNONE; then
x_libraries="${with_x}/lib"
x_libraries_orig="$x_libraries"
fi
else
# Check if the user has specified sysroot, but not --with-x, --x-includes or --x-libraries.
@@ -70,10 +68,6 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
x_libraries="$SYSROOT/usr/lib64"
elif test -f "$SYSROOT/usr/lib/libX11.so"; then
x_libraries="$SYSROOT/usr/lib"
elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"; then
x_libraries="$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"
elif test -f "$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"; then
x_libraries="$SYSROOT/usr/lib/$OPENJDK_TARGET_CPU_AUTOCONF-$OPENJDK_TARGET_OS-$OPENJDK_TARGET_ABI/libX11.so"
fi
fi
fi
@@ -84,8 +78,8 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
AC_PATH_XTRA
# AC_PATH_XTRA creates X_LIBS and sometimes adds -R flags. When cross compiling
# this doesn't make sense so we remove it; same for sysroot (devkit).
if test "x$COMPILE_TYPE" = xcross || (test "x$SYSROOT" != "x" && test "x$x_libraries_orig" = xNONE); then
# this doesn't make sense so we remove it.
if test "x$COMPILE_TYPE" = xcross; then
X_LIBS=`$ECHO $X_LIBS | $SED 's/-R \{0,1\}[[^ ]]*//g'`
fi
@@ -105,31 +99,27 @@ AC_DEFUN_ONCE([LIB_SETUP_X11],
OLD_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $SYSROOT_CFLAGS $X_CFLAGS"
if test "x$OPENJDK_TARGET_OS" != xaix; then
AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h X11/extensions/Xrandr.h],
[X11_HEADERS_OK=yes],
[X11_HEADERS_OK=no; break],
[
# include <X11/Xlib.h>
# include <X11/Xutil.h>
]
)
HEADERS_TO_CHECK="X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h"
# There is no Xrandr extension on AIX
if test "x$OPENJDK_TARGET_OS" = xaix; then
X_CFLAGS="$X_CFLAGS -DNO_XRANDR"
else
# There is no Xrandr extension on AIX. Code is duplicated to avoid autoconf
# 2.71+ warning "AC_CHECK_HEADERS: you should use literals"
AC_CHECK_HEADERS([X11/extensions/shape.h X11/extensions/Xrender.h X11/extensions/XTest.h X11/Intrinsic.h],
[X11_HEADERS_OK=yes],
[X11_HEADERS_OK=no; break],
[
# include <X11/Xlib.h>
# include <X11/Xutil.h>
]
)
HEADERS_TO_CHECK="$HEADERS_TO_CHECK X11/extensions/Xrandr.h"
fi
# Need to include Xlib.h and Xutil.h to avoid "present but cannot be compiled" warnings on Solaris 10
AC_CHECK_HEADERS([$HEADERS_TO_CHECK],
[X11_HEADERS_OK=yes],
[X11_HEADERS_OK=no; break],
[
# include <X11/Xlib.h>
# include <X11/Xutil.h>
]
)
if test "x$X11_HEADERS_OK" = xno; then
HELP_MSG_MISSING_DEPENDENCY([x11])
AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h Xrandr.h XTest.h Intrinsic.h). $HELP_MSG])
AC_MSG_ERROR([Could not find all X11 headers (shape.h Xrender.h Xrander.h XTest.h Intrinsic.h). $HELP_MSG])
fi
# If XLinearGradient isn't available in Xrender.h, signal that it needs to be

View File

@@ -130,11 +130,6 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lthread"
fi
# perfstat lib
if test "x$OPENJDK_TARGET_OS" = xaix; then
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lperfstat"
fi
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
BASIC_JVM_LIBS="$BASIC_JVM_LIBS -lsocket -lsched -ldoor -ldemangle -lnsl \
-lrt -lkstat"
@@ -144,7 +139,7 @@ AC_DEFUN_ONCE([LIB_SETUP_LIBRARIES],
if test "x$OPENJDK_TARGET_OS" = xwindows; then
BASIC_JVM_LIBS="$BASIC_JVM_LIBS kernel32.lib user32.lib gdi32.lib winspool.lib \
comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib \
ws2_32.lib winmm.lib version.lib psapi.lib"
wsock32.lib winmm.lib version.lib psapi.lib"
fi
JDKLIB_LIBS="$BASIC_JDKLIB_LIBS"
@@ -185,13 +180,6 @@ AC_DEFUN_ONCE([LIB_SETUP_MISC_LIBS],
AC_SUBST(LIBDL)
LIBS="$save_LIBS"
# Deprecated libraries, keep the flags for backwards compatibility
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
UTIL_DEPRECATED_ARG_WITH([dxsdk])
UTIL_DEPRECATED_ARG_WITH([dxsdk-lib])
UTIL_DEPRECATED_ARG_WITH([dxsdk-include])
fi
# Control if libzip can use mmap. Available for purposes of overriding.
LIBZIP_CAN_USE_MMAP=true
AC_SUBST(LIBZIP_CAN_USE_MMAP)
@@ -214,7 +202,7 @@ AC_DEFUN_ONCE([LIB_SETUP_SOLARIS_STLPORT],
fi
if test -f "$STLPORT_LIB"; then
AC_MSG_RESULT([yes, $STLPORT_LIB])
UTIL_FIXUP_PATH([STLPORT_LIB])
BASIC_FIXUP_PATH([STLPORT_LIB])
else
AC_MSG_RESULT([no, not found at $STLPORT_LIB])
AC_MSG_ERROR([Failed to find libstlport.so.1, cannot build Hotspot gtests])
@@ -222,4 +210,3 @@ AC_DEFUN_ONCE([LIB_SETUP_SOLARIS_STLPORT],
AC_SUBST(STLPORT_LIB)
fi
])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2021, 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
@@ -30,6 +30,12 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
[
# First argument is the cpu name from the trip/quad
case "$1" in
x86_64*x32)
VAR_CPU=x32
VAR_CPU_ARCH=x86
VAR_CPU_BITS=32
VAR_CPU_ENDIAN=little
;;
x86_64)
VAR_CPU=x86_64
VAR_CPU_ARCH=x86
@@ -66,12 +72,6 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
;;
loongarch64)
VAR_CPU=loongarch64
VAR_CPU_ARCH=loongarch
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
;;
m68k)
VAR_CPU=m68k
VAR_CPU_ARCH=m68k
@@ -120,12 +120,6 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_CPU],
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
;;
riscv64)
VAR_CPU=riscv64
VAR_CPU_ARCH=riscv
VAR_CPU_BITS=64
VAR_CPU_ENDIAN=little
;;
s390)
VAR_CPU=s390
VAR_CPU_ARCH=s390
@@ -194,9 +188,9 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_OS],
VAR_OS=windows
VAR_OS_ENV=windows.cygwin
;;
*msys* | *mingw*)
*mingw*)
VAR_OS=windows
VAR_OS_ENV=windows.msys2
VAR_OS_ENV=windows.msys
;;
*aix*)
VAR_OS=aix
@@ -208,51 +202,6 @@ AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_OS],
esac
])
# Support macro for PLATFORM_EXTRACT_TARGET_AND_BUILD.
# Converts autoconf style OS name to OpenJDK style, into
# VAR_LIBC.
AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_LIBC],
[
case "$1" in
*linux*-musl)
VAR_LIBC=musl
;;
*linux*-gnu)
VAR_LIBC=gnu
;;
*)
VAR_LIBC=default
;;
esac
])
# Support macro for PLATFORM_EXTRACT_TARGET_AND_BUILD.
# Converts autoconf style OS name to OpenJDK style, into
# VAR_ABI.
AC_DEFUN([PLATFORM_EXTRACT_VARS_FROM_ABI],
[
case "$1" in
*linux*-musl)
VAR_ABI=musl
;;
*linux*-gnu)
VAR_ABI=gnu
;;
*linux*-gnueabi)
VAR_ABI=gnueabi
;;
*linux*-gnueabihf)
VAR_ABI=gnueabihf
;;
*linux*-gnuabi64)
VAR_ABI=gnuabi64
;;
*)
VAR_ABI=default
;;
esac
])
# Expects $host_os $host_cpu $build_os and $build_cpu
# and $with_target_bits to have been setup!
#
@@ -270,11 +219,9 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
AC_SUBST(OPENJDK_TARGET_AUTOCONF_NAME)
AC_SUBST(OPENJDK_BUILD_AUTOCONF_NAME)
# Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU/LIBC variables.
# 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)
PLATFORM_EXTRACT_VARS_FROM_LIBC($build_os)
PLATFORM_EXTRACT_VARS_FROM_ABI($build_os)
# ..and setup our own variables. (Do this explicitly to facilitate searching)
OPENJDK_BUILD_OS="$VAR_OS"
if test "x$VAR_OS_TYPE" != x; then
@@ -291,9 +238,6 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
OPENJDK_BUILD_CPU_ARCH="$VAR_CPU_ARCH"
OPENJDK_BUILD_CPU_BITS="$VAR_CPU_BITS"
OPENJDK_BUILD_CPU_ENDIAN="$VAR_CPU_ENDIAN"
OPENJDK_BUILD_CPU_AUTOCONF="$build_cpu"
OPENJDK_BUILD_LIBC="$VAR_LIBC"
OPENJDK_BUILD_ABI="$VAR_ABI"
AC_SUBST(OPENJDK_BUILD_OS)
AC_SUBST(OPENJDK_BUILD_OS_TYPE)
AC_SUBST(OPENJDK_BUILD_OS_ENV)
@@ -301,23 +245,13 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
AC_SUBST(OPENJDK_BUILD_CPU_ARCH)
AC_SUBST(OPENJDK_BUILD_CPU_BITS)
AC_SUBST(OPENJDK_BUILD_CPU_ENDIAN)
AC_SUBST(OPENJDK_BUILD_CPU_AUTOCONF)
AC_SUBST(OPENJDK_BUILD_LIBC)
AC_SUBST(OPENJDK_BUILD_ABI)
AC_MSG_CHECKING([openjdk-build os-cpu])
AC_MSG_RESULT([$OPENJDK_BUILD_OS-$OPENJDK_BUILD_CPU])
if test "x$OPENJDK_BUILD_OS" = "xlinux"; then
AC_MSG_CHECKING([openjdk-build C library])
AC_MSG_RESULT([$OPENJDK_BUILD_LIBC])
fi
# Convert the autoconf OS/CPU value to our own data, into the VAR_OS/CPU/LIBC variables.
# 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)
PLATFORM_EXTRACT_VARS_FROM_LIBC($host_os)
PLATFORM_EXTRACT_VARS_FROM_ABI($host_os)
# ... and setup our own variables. (Do this explicitly to facilitate searching)
OPENJDK_TARGET_OS="$VAR_OS"
if test "x$VAR_OS_TYPE" != x; then
@@ -334,10 +268,7 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
OPENJDK_TARGET_CPU_ARCH="$VAR_CPU_ARCH"
OPENJDK_TARGET_CPU_BITS="$VAR_CPU_BITS"
OPENJDK_TARGET_CPU_ENDIAN="$VAR_CPU_ENDIAN"
OPENJDK_TARGET_CPU_AUTOCONF="$host_cpu"
OPENJDK_TARGET_OS_UPPERCASE=`$ECHO $OPENJDK_TARGET_OS | $TR 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'`
OPENJDK_TARGET_LIBC="$VAR_LIBC"
OPENJDK_TARGET_ABI="$VAR_ABI"
AC_SUBST(OPENJDK_TARGET_OS)
AC_SUBST(OPENJDK_TARGET_OS_TYPE)
@@ -347,17 +278,9 @@ AC_DEFUN([PLATFORM_EXTRACT_TARGET_AND_BUILD],
AC_SUBST(OPENJDK_TARGET_CPU_ARCH)
AC_SUBST(OPENJDK_TARGET_CPU_BITS)
AC_SUBST(OPENJDK_TARGET_CPU_ENDIAN)
AC_SUBST(OPENJDK_TARGET_CPU_AUTOCONF)
AC_SUBST(OPENJDK_TARGET_LIBC)
AC_SUBST(OPENJDK_TARGET_ABI)
AC_MSG_CHECKING([openjdk-target os-cpu])
AC_MSG_RESULT([$OPENJDK_TARGET_OS-$OPENJDK_TARGET_CPU])
if test "x$OPENJDK_TARGET_OS" = "xlinux"; then
AC_MSG_CHECKING([openjdk-target C library])
AC_MSG_RESULT([$OPENJDK_TARGET_LIBC])
fi
])
# Check if a reduced build (32-bit on 64-bit platforms) is requested, and modify behaviour
@@ -481,11 +404,9 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
fi
# The new version string in JDK 9 also defined new naming of OS and ARCH for bundles
# The macOS bundle name was revised in JDK 17
#
# macosx is macos and x86_64 is x64
# Macosx is osx and x86_64 is x64
if test "x$OPENJDK_$1_OS" = xmacosx; then
OPENJDK_$1_OS_BUNDLE="macos"
OPENJDK_$1_OS_BUNDLE="osx"
else
OPENJDK_$1_OS_BUNDLE="$OPENJDK_TARGET_OS"
fi
@@ -494,13 +415,7 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
else
OPENJDK_$1_CPU_BUNDLE="$OPENJDK_$1_CPU"
fi
OPENJDK_$1_LIBC_BUNDLE=""
if test "x$OPENJDK_$1_LIBC" = "xmusl"; then
OPENJDK_$1_LIBC_BUNDLE="-$OPENJDK_$1_LIBC"
fi
OPENJDK_$1_BUNDLE_PLATFORM="${OPENJDK_$1_OS_BUNDLE}-${OPENJDK_$1_CPU_BUNDLE}${OPENJDK_$1_LIBC_BUNDLE}"
OPENJDK_$1_BUNDLE_PLATFORM="${OPENJDK_$1_OS_BUNDLE}-${OPENJDK_$1_CPU_BUNDLE}"
AC_SUBST(OPENJDK_$1_BUNDLE_PLATFORM)
if test "x$COMPILE_TYPE" = "xcross"; then
@@ -546,6 +461,8 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
HOTSPOT_$1_CPU_DEFINE=IA32
elif test "x$OPENJDK_$1_CPU" = xx86_64; then
HOTSPOT_$1_CPU_DEFINE=AMD64
elif test "x$OPENJDK_$1_CPU" = xx32; then
HOTSPOT_$1_CPU_DEFINE=X32
elif test "x$OPENJDK_$1_CPU" = xsparcv9; then
HOTSPOT_$1_CPU_DEFINE=SPARC
elif test "x$OPENJDK_$1_CPU" = xaarch64; then
@@ -564,18 +481,11 @@ AC_DEFUN([PLATFORM_SETUP_LEGACY_VARS_HELPER],
HOTSPOT_$1_CPU_DEFINE=S390
elif test "x$OPENJDK_$1_CPU" = xs390x; then
HOTSPOT_$1_CPU_DEFINE=S390
elif test "x$OPENJDK_$1_CPU" = xriscv64; then
HOTSPOT_$1_CPU_DEFINE=RISCV
elif test "x$OPENJDK_$1_CPU" = xloongarch64; then
HOTSPOT_$1_CPU_DEFINE=LOONGARCH64
elif test "x$OPENJDK_$1_CPU" != x; then
HOTSPOT_$1_CPU_DEFINE=$(echo $OPENJDK_$1_CPU | tr a-z A-Z)
fi
AC_SUBST(HOTSPOT_$1_CPU_DEFINE)
HOTSPOT_$1_LIBC=$OPENJDK_$1_LIBC
AC_SUBST(HOTSPOT_$1_LIBC)
# For historical reasons, the OS include directories have odd names.
OPENJDK_$1_OS_INCLUDE_SUBDIR="$OPENJDK_TARGET_OS"
if test "x$OPENJDK_TARGET_OS" = "xwindows"; then
@@ -604,11 +514,9 @@ AC_DEFUN([PLATFORM_SET_RELEASE_FILE_OS_VALUES],
RELEASE_FILE_OS_NAME="AIX"
fi
RELEASE_FILE_OS_ARCH=${OPENJDK_TARGET_CPU}
RELEASE_FILE_LIBC=${OPENJDK_TARGET_LIBC}
AC_SUBST(RELEASE_FILE_OS_NAME)
AC_SUBST(RELEASE_FILE_OS_ARCH)
AC_SUBST(RELEASE_FILE_LIBC)
])
AC_DEFUN([PLATFORM_SET_MODULE_TARGET_OS_VALUES],
@@ -630,7 +538,6 @@ AC_DEFUN([PLATFORM_SET_MODULE_TARGET_OS_VALUES],
])
#%%% Build and target systems %%%
# Make sure to only use tools set up in BASIC_SETUP_FUNDAMENTAL_TOOLS.
AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_BUILD_AND_TARGET],
[
# Figure out the build and target systems. # Note that in autoconf terminology, "build" is obvious, but "target"
@@ -714,7 +621,7 @@ AC_DEFUN_ONCE([PLATFORM_SETUP_OPENJDK_TARGET_ENDIANNESS],
[
###############################################################################
#
# Is the target little or big endian?
# Is the target little of big endian?
#
AC_C_BIGENDIAN([ENDIAN="big"],[ENDIAN="little"],[ENDIAN="unknown"],[ENDIAN="universal_endianness"])

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2020, 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
@@ -28,6 +28,9 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_DIRS],
OUTPUTDIR="$OUTPUTDIR"
AC_SUBST(OUTPUTDIR)
JDK_OUTPUTDIR="$OUTPUTDIR/jdk"
# Where are the sources.
AC_SUBST(TOPDIR)
])
################################################################################
@@ -43,7 +46,7 @@ AC_DEFUN_ONCE([SRCDIRS_SETUP_IMPORT_MODULES],
&& test "x$with_import_modules" != "xno"; then
if test -d "$with_import_modules"; then
IMPORT_MODULES_TOPDIR="$with_import_modules"
UTIL_FIXUP_PATH([IMPORT_MODULES_TOPDIR])
BASIC_FIXUP_PATH([IMPORT_MODULES_TOPDIR])
elif test -e "$with_import_modules"; then
IMPORT_MODULES_TOPDIR="$CONFIGURESUPPORT_OUTPUTDIR/import-modules"
$RM -rf "$IMPORT_MODULES_TOPDIR"

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
@@ -32,15 +32,10 @@
# The command line given to configure.
CONFIGURE_COMMAND_LINE:=@CONFIGURE_COMMAND_LINE@
# The current directory when configure was run
CONFIGURE_START_DIR:=@CONFIGURE_START_DIR@
# A self-referential reference to this file.
SPEC:=@SPEC@
# Path to autoconf if overriden by the user, to be used by "make reconfigure"
AUTOCONF := @AUTOCONF@
# SPACE and COMMA are defined in MakeBase.gmk, but they are also used in
# some definitions here, and are needed if MakeBase.gmk is not included before
# this file.
@@ -51,9 +46,6 @@ COMMA:=,
# What make to use for main processing, after bootstrapping top-level Makefile.
MAKE := @MAKE@
# Make sure all shell commands are executed with the C locale
export LC_ALL := C
# The default make arguments
MAKE_ARGS = $(MAKE_LOG_FLAGS) -r -R -I $(TOPDIR)/make/common SPEC=$(SPEC) \
MAKE_LOG_FLAGS="$(MAKE_LOG_FLAGS)" $(MAKE_LOG_VARS)
@@ -80,8 +72,6 @@ OPENJDK_TARGET_CPU_ARCH:=@OPENJDK_TARGET_CPU_ARCH@
OPENJDK_TARGET_CPU_BITS:=@OPENJDK_TARGET_CPU_BITS@
OPENJDK_TARGET_CPU_ENDIAN:=@OPENJDK_TARGET_CPU_ENDIAN@
OPENJDK_TARGET_LIBC:=@OPENJDK_TARGET_LIBC@
COMPILE_TYPE:=@COMPILE_TYPE@
# Legacy support
@@ -98,8 +88,6 @@ HOTSPOT_TARGET_CPU := @HOTSPOT_TARGET_CPU@
HOTSPOT_TARGET_CPU_ARCH := @HOTSPOT_TARGET_CPU_ARCH@
HOTSPOT_TARGET_CPU_DEFINE := @HOTSPOT_TARGET_CPU_DEFINE@
HOTSPOT_TARGET_LIBC := @HOTSPOT_TARGET_LIBC@
OPENJDK_TARGET_BUNDLE_PLATFORM:=@OPENJDK_TARGET_BUNDLE_PLATFORM@
JDK_ARCH_ABI_PROP_NAME := @JDK_ARCH_ABI_PROP_NAME@
@@ -114,8 +102,6 @@ OPENJDK_BUILD_CPU_ARCH:=@OPENJDK_BUILD_CPU_ARCH@
OPENJDK_BUILD_CPU_BITS:=@OPENJDK_BUILD_CPU_BITS@
OPENJDK_BUILD_CPU_ENDIAN:=@OPENJDK_BUILD_CPU_ENDIAN@
OPENJDK_BUILD_LIBC:=@OPENJDK_BUILD_LIBC@
OPENJDK_BUILD_OS_INCLUDE_SUBDIR:=@OPENJDK_TARGET_OS_INCLUDE_SUBDIR@
# Target platform value in ModuleTarget class file attribute.
@@ -124,29 +110,19 @@ OPENJDK_MODULE_TARGET_PLATFORM:=@OPENJDK_MODULE_TARGET_PLATFORM@
# OS_* properties in release file
RELEASE_FILE_OS_NAME:=@RELEASE_FILE_OS_NAME@
RELEASE_FILE_OS_ARCH:=@RELEASE_FILE_OS_ARCH@
RELEASE_FILE_LIBC:=@RELEASE_FILE_LIBC@
SOURCE_DATE := @SOURCE_DATE@
ENABLE_REPRODUCIBLE_BUILD := @ENABLE_REPRODUCIBLE_BUILD@
LIBM:=@LIBM@
LIBDL:=@LIBDL@
WINENV_ROOT := @WINENV_ROOT@
WINENV_PREFIX := @WINENV_PREFIX@
ifeq (@OPENJDK_BUILD_OS_ENV@, windows.msys2)
# Prohibit msys2 from attemping any path wrangling
export MSYS2_ARG_CONV_EXCL := "*"
endif
# colon or semicolon
PATH_SEP:=@PATH_SEP@
# Save the original path before replacing it with the Visual Studio tools
ORIGINAL_PATH := @ORIGINAL_PATH@
ifeq (@TOOLCHAIN_TYPE@, microsoft)
# The Visual Studio toolchain needs the PATH to be adjusted to include
# Visual Studio tools.
export PATH := @TOOLCHAIN_PATH@:$(PATH)
ORIGINAL_PATH:=@ORIGINAL_PATH@
ifeq ($(OPENJDK_TARGET_OS), windows)
# On Windows, the Visual Studio toolchain needs the PATH to be adjusted
# to include Visual Studio tools (this needs to be in cygwin/msys style).
export PATH:=@VS_PATH@
endif
SYSROOT_CFLAGS := @SYSROOT_CFLAGS@
@@ -154,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@
@@ -173,12 +148,10 @@ LAUNCHER_NAME:=@LAUNCHER_NAME@
PRODUCT_NAME:=@PRODUCT_NAME@
PRODUCT_SUFFIX:=@PRODUCT_SUFFIX@
JDK_RC_PLATFORM_NAME:=@JDK_RC_PLATFORM_NAME@
JDK_RC_NAME:=@JDK_RC_NAME@
COMPANY_NAME:=@COMPANY_NAME@
HOTSPOT_VM_DISTRO:=@HOTSPOT_VM_DISTRO@
MACOSX_BUNDLE_NAME_BASE=@MACOSX_BUNDLE_NAME_BASE@
MACOSX_BUNDLE_ID_BASE=@MACOSX_BUNDLE_ID_BASE@
MACOSX_BUNDLE_BUILD_VERSION=@MACOSX_BUNDLE_BUILD_VERSION@
USERNAME:=@USERNAME@
VENDOR_URL:=@VENDOR_URL@
VENDOR_URL_BUG:=@VENDOR_URL_BUG@
@@ -255,8 +228,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
@@ -282,10 +254,6 @@ RUNTIME_NAME=$(PRODUCT_NAME) $(PRODUCT_SUFFIX)
DEBUG_LEVEL:=@DEBUG_LEVEL@
HOTSPOT_DEBUG_LEVEL:=@HOTSPOT_DEBUG_LEVEL@
# This is the JDK variant to build.
# The JDK variant is a name for a specific set of modules to be compiled for the JDK.
JDK_VARIANT:=@JDK_VARIANT@
# Which JVM variants to build (space-separated list)
JVM_VARIANTS := @JVM_VARIANTS@
JVM_VARIANT_MAIN := @JVM_VARIANT_MAIN@
@@ -312,9 +280,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.
@@ -344,7 +309,7 @@ EXCLUDE_TRANSLATIONS := @EXCLUDE_TRANSLATIONS@
BUILD_MANPAGES := @BUILD_MANPAGES@
ALLOW_ABSOLUTE_PATHS_IN_OUTPUT := @ALLOW_ABSOLUTE_PATHS_IN_OUTPUT@
BUILD_CDS_ARCHIVE := @BUILD_CDS_ARCHIVE@
# The boot jdk to use. This is overridden in bootcycle-spec.gmk. Make sure to keep
# it in sync.
@@ -389,11 +354,12 @@ 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@
JMH_CORE_JAR := @JMH_CORE_JAR@
JMH_GENERATOR_JAR := @JMH_GENERATOR_JAR@
JMH_JOPT_SIMPLE_JAR := @JMH_JOPT_SIMPLE_JAR@
JMH_COMMONS_MATH_JAR := @JMH_COMMONS_MATH_JAR@
JMH_VERSION := @JMH_VERSION@
# Source file for cacerts
CACERTS_FILE=@CACERTS_FILE@
@@ -407,7 +373,7 @@ GCOV_ENABLED=@GCOV_ENABLED@
export ASAN_ENABLED:=@ASAN_ENABLED@
export DEVKIT_LIB_DIR:=@DEVKIT_LIB_DIR@
ifeq ($(ASAN_ENABLED), yes)
export ASAN_OPTIONS=handle_segv=0 detect_leaks=0
export ASAN_OPTIONS="handle_segv=0 detect_leaks=0"
ifneq ($(DEVKIT_LIB_DIR),)
export LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(DEVKIT_LIB_DIR)
endif
@@ -422,10 +388,6 @@ MACOSX_VERSION_MIN=@MACOSX_VERSION_MIN@
# The highest allowed version of macosx
MACOSX_VERSION_MAX=@MACOSX_VERSION_MAX@
# The macosx code signing configuration
MACOSX_CODESIGN_MODE:=@MACOSX_CODESIGN_MODE@
MACOSX_CODESIGN_IDENTITY=@MACOSX_CODESIGN_IDENTITY@
# Toolchain type: gcc, clang, solstudio, lxc, microsoft...
TOOLCHAIN_TYPE:=@TOOLCHAIN_TYPE@
TOOLCHAIN_VERSION := @TOOLCHAIN_VERSION@
@@ -481,7 +443,7 @@ CFLAGS_CCACHE:=@CFLAGS_CCACHE@
ADLC_CXXFLAG=@ADLC_CXXFLAG@
# Tools that potentially need to be cross compilation aware.
CC := @CCACHE@ @ICECC@ @CC@
CC:=@FIXPATH@ @CCACHE@ @ICECC@ @CC@
# CFLAGS used to compile the jdk native libraries (C-code)
CFLAGS_JDKLIB:=@CFLAGS_JDKLIB@
@@ -505,17 +467,13 @@ JVM_RCFLAGS := @JVM_RCFLAGS@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
EXTRA_CXXFLAGS = @EXTRA_CXXFLAGS@
EXTRA_LDFLAGS = @EXTRA_LDFLAGS@
EXTRA_ASFLAGS = @EXTRA_ASFLAGS@
CXX := @CCACHE@ @ICECC@ @CXX@
CXX:=@FIXPATH@ @CCACHE@ @ICECC@ @CXX@
CPP := @CPP@
CPP:=@FIXPATH@ @CPP@
# The linker can be gcc or ld on unix systems, or link.exe on windows systems.
LD := @LD@
# Linker used by the jaotc tool for AOT compilation.
LD_JAOTC:=@LD_JAOTC@
LD:=@FIXPATH@ @LD@
# Xcode SDK path
SDKROOT:=@SDKROOT@
@@ -533,7 +491,7 @@ JDKEXE_LIBS:=@JDKEXE_LIBS@
LDFLAGS_CXX_JDK:=@LDFLAGS_CXX_JDK@
# Sometimes a different linker is needed for c++ libs
LDCXX := @LDCXX@
LDCXX:=@FIXPATH@ @LDCXX@
# The flags for linking libstdc++ linker.
LIBCXX:=@LIBCXX@
@@ -542,22 +500,22 @@ LDFLAGS_TESTEXE:=@LDFLAGS_TESTEXE@
# BUILD_CC/BUILD_LD is a compiler/linker that generates code that is runnable on the
# build platform.
BUILD_CC := @BUILD_ICECC@ @BUILD_CC@
BUILD_CXX := @BUILD_ICECC@ @BUILD_CXX@
BUILD_LD := @BUILD_LD@
BUILD_LDCXX := @BUILD_LDCXX@
BUILD_AS := @BUILD_AS@
BUILD_AR := @BUILD_AR@
BUILD_NM := @BUILD_NM@
BUILD_CC:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CC@
BUILD_CXX:=@FIXPATH@ @BUILD_ICECC@ @BUILD_CXX@
BUILD_LD:=@FIXPATH@ @BUILD_LD@
BUILD_LDCXX:=@FIXPATH@ @BUILD_LDCXX@
BUILD_AS:=@FIXPATH@ @BUILD_AS@
BUILD_AR:=@FIXPATH@ @BUILD_AR@
BUILD_NM:=@FIXPATH@ @BUILD_NM@
BUILD_OBJCOPY:=@BUILD_OBJCOPY@
BUILD_STRIP:=@BUILD_STRIP@
BUILD_SYSROOT_CFLAGS:=@BUILD_SYSROOT_CFLAGS@
BUILD_SYSROOT_LDFLAGS:=@BUILD_SYSROOT_LDFLAGS@
AS := @AS@
AS:=@FIXPATH@ @AS@
# AR is used to create a static library (is ar in unix, lib.exe in windows)
AR := @AR@
AR:=@FIXPATH@ @AR@
ARFLAGS:=@ARFLAGS@
NM:=@NM@
@@ -610,7 +568,7 @@ STATIC_LIBRARY=@STATIC_LIBRARY@
LIBRARY_PREFIX:=@LIBRARY_PREFIX@
SHARED_LIBRARY_SUFFIX:=@SHARED_LIBRARY_SUFFIX@
STATIC_LIBRARY_SUFFIX:=@STATIC_LIBRARY_SUFFIX@
EXECUTABLE_SUFFIX:=@EXECUTABLE_SUFFIX@
EXE_SUFFIX:=@EXE_SUFFIX@
OBJ_SUFFIX:=@OBJ_SUFFIX@
STATIC_BUILD:=@STATIC_BUILD@
@@ -632,28 +590,28 @@ JAVADOC_CMD:=@JAVADOC@
JAR_CMD:=@JAR@
JLINK_CMD := @JLINK@
JMOD_CMD := @JMOD@
JARSIGNER_CMD:=@JARSIGNER@
SJAVAC_SERVER_JAVA_CMD:=@SJAVAC_SERVER_JAVA@
# These variables are meant to be used. They are defined with = instead of := to make
# it possible to override only the *_CMD variables.
JAVA = $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVA_SMALL = $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
JAVA_JAVAC = $(JAVA_CMD) $(JAVA_FLAGS_JAVAC) $(JAVA_FLAGS)
JAVAC = $(JAVAC_CMD)
JAVADOC = $(JAVADOC_CMD)
JAR = $(JAR_CMD)
JLINK = $(JLINK_CMD)
JMOD = $(JMOD_CMD) $(JAVA_TOOL_FLAGS_SMALL)
JAVA=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
JAVA_SMALL=@FIXPATH@ $(JAVA_CMD) $(JAVA_FLAGS_SMALL) $(JAVA_FLAGS)
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) $(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
# the long running background sjavac servers and other long running tasks.
SJAVAC_SERVER_JAVA = $(SJAVAC_SERVER_JAVA_CMD) \
SJAVAC_SERVER_JAVA=@FIXPATH@ @FIXPATH_DETACH_FLAG@ $(SJAVAC_SERVER_JAVA_CMD) \
$(SJAVAC_SERVER_JAVA_FLAGS)
# Hotspot sets this variable before reading the SPEC when compiling sa-jdi.jar. Avoid
# overriding that value by using ?=.
JAVAC_FLAGS? = @JAVAC_FLAGS@
JAVAC_FLAGS?=@JAVAC_FLAGS@
JTREG_JDK := @JTREG_JDK@
JTREG_JAVA = @FIXPATH@ $(JTREG_JDK)/bin/java $(JAVA_FLAGS_BIG) $(JAVA_FLAGS)
BUILD_JAVA_FLAGS := @BOOTCYCLE_JVM_ARGS_BIG@
BUILD_JAVA=@FIXPATH@ $(BUILD_JDK)/bin/java $(BUILD_JAVA_FLAGS)
@@ -710,7 +668,9 @@ CCACHE:=@CCACHE@
CD:=cd
CHMOD:=@CHMOD@
CODESIGN:=@CODESIGN@
COMM:=@COMM@
CP:=@CP@
CPIO:=@CPIO@
CUT:=@CUT@
DATE:=@DATE@
DIFF:=@DIFF@
@@ -732,7 +692,7 @@ MKDIR:=@MKDIR@
MV:=@MV@
NAWK:=@NAWK@
NICE:=@NICE@
PANDOC:=@PANDOC@
PANDOC:=@FIXPATH@ @PANDOC@
PATCH:=@PATCH@
PRINTF:=@PRINTF@
READLINK:=@READLINK@
@@ -748,14 +708,15 @@ TIME:=@TIME@
IS_GNU_TIME:=@IS_GNU_TIME@
TR:=@TR@
TOUCH:=@TOUCH@
UNIQ:=@UNIQ@
WC:=@WC@
XARGS:=@XARGS@
ZIPEXE:=@ZIPEXE@
UNZIP:=@UNZIP@
MT:=@MT@
RC:=@RC@
DUMPBIN:=@DUMPBIN@
PATHTOOL:=@PATHTOOL@
MT:=@FIXPATH@ @MT@
RC:=@FIXPATH@ @RC@
DUMPBIN:=@FIXPATH@ @DUMPBIN@
CYGPATH:=@CYGPATH@
LDD:=@LDD@
OTOOL:=@OTOOL@
READELF:=@READELF@
@@ -773,9 +734,7 @@ JTREGEXE:=@JTREGEXE@
JIB_HOME:=@JIB_HOME@
XCODEBUILD=@XCODEBUILD@
DTRACE := @DTRACE@
FIXPATH := @FIXPATH@
FIXPATH_BASE := @FIXPATH_BASE@
ULIMIT:=@ULIMIT@
FIXPATH:=@FIXPATH@
TAR_TYPE:=@TAR_TYPE@
TAR_CREATE_EXTRA_PARAM:=@TAR_CREATE_EXTRA_PARAM@
@@ -792,12 +751,9 @@ LIBZ_CFLAGS:=@LIBZ_CFLAGS@
LIBZ_LIBS:=@LIBZ_LIBS@
LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@
MSVCR_DLL:=@MSVCR_DLL@
VCRUNTIME_1_DLL:=@VCRUNTIME_1_DLL@
MSVCP_DLL:=@MSVCP_DLL@
UCRT_DLL_DIR:=@UCRT_DLL_DIR@
STLPORT_LIB:=@STLPORT_LIB@
ENABLE_PANDOC:=@ENABLE_PANDOC@
PANDOC_MARKDOWN_FLAG:=@PANDOC_MARKDOWN_FLAG@
####################################################
#
@@ -859,10 +815,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@
@@ -906,27 +858,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)
@@ -943,15 +881,12 @@ else
JDK_BUNDLE_EXTENSION := tar.gz
endif
JDK_BUNDLE_NAME := jdk-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
JRE_BUNDLE_NAME := jre-$(BASE_NAME)_bin$(DEBUG_PART).$(JDK_BUNDLE_EXTENSION)
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)
JDK_SYMBOLS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(JDK_SYMBOLS_BUNDLE_NAME)
TEST_DEMOS_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_DEMOS_BUNDLE_NAME)
TEST_BUNDLE := $(BUNDLES_OUTPUTDIR)/$(TEST_BUNDLE_NAME)

View File

@@ -1,5 +1,5 @@
#
# Copyright (c) 2011, 2024, 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
@@ -32,7 +32,6 @@
# compilers and related tools that are used.
########################################################################
m4_include([toolchain_microsoft.m4])
# All valid toolchains, regardless of platform (used by help.m4)
VALID_TOOLCHAINS_all="gcc clang solstudio xlc microsoft"
@@ -92,7 +91,7 @@ AC_DEFUN([TOOLCHAIN_PREPARE_FOR_VERSION_COMPARISONS],
# IF_AT_LEAST: block to run if the compiler is at least this version (>=)
# IF_OLDER_THAN: block to run if the compiler is older than this version (<)
# PREFIX: Optional variable prefix for compiler to compare version for (OPENJDK_BUILD_)
UTIL_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION],
BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_COMPILER_VERSION],
[*VERSION PREFIX IF_AT_LEAST IF_OLDER_THAN], [$@],
[
# Need to assign to a variable since m4 is blocked from modifying parts in [].
@@ -143,7 +142,7 @@ AC_DEFUN([TOOLCHAIN_PREPARE_FOR_LD_VERSION_COMPARISONS],
# IF_AT_LEAST: block to run if the compiler is at least this version (>=)
# IF_OLDER_THAN: block to run if the compiler is older than this version (<)
# PREFIX: Optional variable prefix for compiler to compare version for (OPENJDK_BUILD_)
UTIL_DEFUN_NAMED([TOOLCHAIN_CHECK_LINKER_VERSION],
BASIC_DEFUN_NAMED([TOOLCHAIN_CHECK_LINKER_VERSION],
[*VERSION PREFIX IF_AT_LEAST IF_OLDER_THAN], [$@],
[
# Need to assign to a variable since m4 is blocked from modifying parts in [].
@@ -181,7 +180,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
SHARED_LIBRARY='[$]1.dll'
STATIC_LIBRARY='[$]1.lib'
OBJ_SUFFIX='.obj'
EXECUTABLE_SUFFIX='.exe'
EXE_SUFFIX='.exe'
else
LIBRARY_PREFIX=lib
SHARED_LIBRARY_SUFFIX='.so'
@@ -189,7 +188,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
SHARED_LIBRARY='lib[$]1.so'
STATIC_LIBRARY='lib[$]1.a'
OBJ_SUFFIX='.o'
EXECUTABLE_SUFFIX=''
EXE_SUFFIX=''
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
# For full static builds, we're overloading the SHARED_LIBRARY
# variables in order to limit the amount of changes required.
@@ -213,7 +212,7 @@ AC_DEFUN([TOOLCHAIN_SETUP_FILENAME_PATTERNS],
AC_SUBST(SHARED_LIBRARY)
AC_SUBST(STATIC_LIBRARY)
AC_SUBST(OBJ_SUFFIX)
AC_SUBST(EXECUTABLE_SUFFIX)
AC_SUBST(EXE_SUFFIX)
])
# Determine which toolchain type to use, and make sure it is valid for this
@@ -230,9 +229,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
if test "x$OPENJDK_TARGET_OS" = xmacosx; then
if test -n "$XCODEBUILD"; then
# On Mac OS X, default toolchain to clang after Xcode 5
XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version | $HEAD -n 1`
XCODE_VERSION_OUTPUT=`"$XCODEBUILD" -version 2>&1 | $HEAD -n 1`
$ECHO "$XCODE_VERSION_OUTPUT" | $GREP "Xcode " > /dev/null
if test $? -ne 0; then
AC_MSG_NOTICE([xcodebuild output: $XCODE_VERSION_OUTPUT])
AC_MSG_ERROR([Failed to determine Xcode version.])
fi
XCODE_MAJOR_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | \
@@ -279,20 +279,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
fi
AC_SUBST(TOOLCHAIN_TYPE)
# on AIX, check for xlclang++ on the PATH and TOOLCHAIN_PATH and use it if it is available
if test "x$OPENJDK_TARGET_OS" = xaix; then
if test "x$TOOLCHAIN_PATH" != x; then
XLC_TEST_PATH=${TOOLCHAIN_PATH}/
fi
XLCLANG_VERSION_OUTPUT=`${XLC_TEST_PATH}xlclang++ -qversion 2>&1 | $HEAD -n 1`
$ECHO "$XLCLANG_VERSION_OUTPUT" | $GREP "IBM XL C/C++ for AIX" > /dev/null
if test $? -eq 0; then
AC_MSG_NOTICE([xlclang++ output: $XLCLANG_VERSION_OUTPUT])
XLC_USES_CLANG=true
fi
fi
TOOLCHAIN_CC_BINARY_clang="clang"
TOOLCHAIN_CC_BINARY_gcc="gcc"
TOOLCHAIN_CC_BINARY_microsoft="cl"
@@ -305,14 +291,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
TOOLCHAIN_CXX_BINARY_solstudio="CC"
TOOLCHAIN_CXX_BINARY_xlc="xlC_r"
if test "x$OPENJDK_TARGET_OS" = xaix; then
if test "x$XLC_USES_CLANG" = xtrue; then
AC_MSG_NOTICE([xlclang++ detected, using it])
TOOLCHAIN_CC_BINARY_xlc="xlclang"
TOOLCHAIN_CXX_BINARY_xlc="xlclang++"
fi
fi
# Use indirect variable referencing
toolchain_var_name=TOOLCHAIN_DESCRIPTION_$TOOLCHAIN_TYPE
TOOLCHAIN_DESCRIPTION=${!toolchain_var_name}
@@ -338,6 +316,9 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETERMINE_TOOLCHAIN_TYPE],
# special setup, e.g. additional paths etc.
AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
[
# FIXME: Is this needed?
AC_LANG(C++)
# Store the CFLAGS etc passed to the configure script.
ORG_CFLAGS="$CFLAGS"
ORG_CXXFLAGS="$CXXFLAGS"
@@ -345,26 +326,44 @@ AC_DEFUN_ONCE([TOOLCHAIN_PRE_DETECTION],
# autoconf magic only relies on PATH, so update it if tools dir is specified
OLD_PATH="$PATH"
if test "x$XCODE_VERSION_OUTPUT" != x; then
# For Xcode, we set the Xcode version as TOOLCHAIN_VERSION
TOOLCHAIN_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | $CUT -f 2 -d ' '`
TOOLCHAIN_DESCRIPTION="$TOOLCHAIN_DESCRIPTION from Xcode $TOOLCHAIN_VERSION"
# On Windows, we need to detect the visual studio installation first.
# This will change the PATH, but we need to keep that new PATH even
# after toolchain detection is done, since the compiler (on x86) uses
# it for DLL resolution in runtime.
if test "x$OPENJDK_BUILD_OS" = "xwindows" \
&& test "x$TOOLCHAIN_TYPE" = "xmicrosoft"; then
TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV
# Reset path to VS_PATH. It will include everything that was on PATH at the time we
# ran TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV.
PATH="$VS_PATH"
# The microsoft toolchain also requires INCLUDE and LIB to be set.
export INCLUDE="$VS_INCLUDE"
export LIB="$VS_LIB"
else
if test "x$XCODE_VERSION_OUTPUT" != x; then
# For Xcode, we set the Xcode version as TOOLCHAIN_VERSION
TOOLCHAIN_VERSION=`$ECHO $XCODE_VERSION_OUTPUT | $CUT -f 2 -d ' '`
TOOLCHAIN_DESCRIPTION="$TOOLCHAIN_DESCRIPTION from Xcode $TOOLCHAIN_VERSION"
else
# Currently we do not define this for other toolchains. This might change as the need arise.
TOOLCHAIN_VERSION=
fi
fi
AC_SUBST(TOOLCHAIN_VERSION)
# Finally prepend TOOLCHAIN_PATH to the PATH, to allow --with-tools-dir to
# Finally add TOOLCHAIN_PATH at the beginning, to allow --with-tools-dir to
# override all other locations.
if test "x$TOOLCHAIN_PATH" != x; then
export PATH=$TOOLCHAIN_PATH:$PATH
PATH=$TOOLCHAIN_PATH:$PATH
fi
])
# Restore path, etc
AC_DEFUN_ONCE([TOOLCHAIN_POST_DETECTION],
[
# Restore old path, except for the microsoft toolchain, which requires the
# toolchain path to remain in place. Otherwise the compiler will not work in
# some siutations in later configure checks.
# Restore old path, except for the microsoft toolchain, which requires VS_PATH
# to remain in place. Otherwise the compiler will not work in some siutations
# in later configure checks.
if test "x$TOOLCHAIN_TYPE" != "xmicrosoft"; then
PATH="$OLD_PATH"
fi
@@ -373,10 +372,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_POST_DETECTION],
# This is necessary since AC_PROG_CC defaults CFLAGS to "-g -O2"
CFLAGS="$ORG_CFLAGS"
CXXFLAGS="$ORG_CXXFLAGS"
# filter out some unwanted additions autoconf may add to CXX; we saw this on macOS with autoconf 2.72
UTIL_GET_NON_MATCHING_VALUES(cxx_filtered, $CXX, -std=c++11 -std=gnu++11)
CXX="$cxx_filtered"
])
# Check if a compiler is of the toolchain type we expect, and save the version
@@ -435,10 +430,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 1>/dev/null | $HEAD -n 1 | $TR -d '\r'`
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"])
@@ -467,7 +461,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)
@@ -515,7 +509,7 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
if test "x`basename [$]$1`" = "x[$]$1"; then
# A command without a complete path is provided, search $PATH.
UTIL_LOOKUP_PROGS(POTENTIAL_$1, [$]$1)
AC_PATH_PROGS(POTENTIAL_$1, [$]$1)
if test "x$POTENTIAL_$1" != x; then
$1=$POTENTIAL_$1
else
@@ -537,21 +531,39 @@ AC_DEFUN([TOOLCHAIN_FIND_COMPILER],
# If we are not cross compiling, then the default compiler name will be
# used.
UTIL_LOOKUP_TOOLCHAIN_PROGS(POTENTIAL_$1, $SEARCH_LIST)
if test "x$POTENTIAL_$1" != x; then
$1=
# If TOOLCHAIN_PATH is set, check for all compiler names in there first
# before checking the rest of the PATH.
# FIXME: Now that we prefix the TOOLS_DIR to the PATH in the PRE_DETECTION
# step, this should not be necessary.
if test -n "$TOOLCHAIN_PATH"; then
PATH_save="$PATH"
PATH="$TOOLCHAIN_PATH"
AC_PATH_TOOL(TOOLCHAIN_PATH_$1, $SEARCH_LIST)
$1=$TOOLCHAIN_PATH_$1
PATH="$PATH_save"
fi
# AC_PATH_TOOL can't be run multiple times with the same variable,
# so create a new name for this run.
if test "x[$]$1" = x; then
AC_PATH_TOOL(POTENTIAL_$1, $SEARCH_LIST)
$1=$POTENTIAL_$1
else
fi
if test "x[$]$1" = x; then
HELP_MSG_MISSING_DEPENDENCY([devkit])
AC_MSG_ERROR([Could not find a $COMPILER_NAME compiler. $HELP_MSG])
fi
fi
# Now we have a compiler binary in $1. Make sure it's okay.
BASIC_FIXUP_EXECUTABLE($1)
TEST_COMPILER="[$]$1"
AC_MSG_CHECKING([resolved symbolic links for $1])
SYMLINK_ORIGINAL="$TEST_COMPILER"
UTIL_REMOVE_SYMBOLIC_LINKS(SYMLINK_ORIGINAL)
BASIC_REMOVE_SYMBOLIC_LINKS(SYMLINK_ORIGINAL)
if test "x$TEST_COMPILER" = "x$SYMLINK_ORIGINAL"; then
AC_MSG_RESULT([no symlink])
else
@@ -578,7 +590,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
@@ -599,26 +611,19 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
# There is no specific version flag, but all output starts with a version string.
# First line typically looks something like:
# Microsoft (R) Incremental Linker Version 12.00.31101.0
LINKER_VERSION_STRING=`$LINKER 2>&1 | $HEAD -n 1 | $TR -d '\r'`
LINKER_VERSION_STRING=`$LD 2>&1 | $HEAD -n 1 | $TR -d '\r'`
# Extract version number
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
# gcc -Wl,-version output typically looks like:
# gcc -Wl,-version output typically looks like
# GNU ld (GNU Binutils for Ubuntu) 2.26.1
# Copyright (C) 2015 Free Software Foundation, Inc.
# This program is free software; [...]
# If using gold it will look like:
# GNU gold (GNU Binutils 2.30) 1.15
LINKER_VERSION_STRING=`$LINKER -Wl,--version 2> /dev/null | $HEAD -n 1`
LINKER_VERSION_STRING=`$LD -Wl,-version 2>&1 | $HEAD -n 1`
# Extract version number
if [ [[ "$LINKER_VERSION_STRING" == *gold* ]] ]; then
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*) .*/\1/'` ]
else
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
fi
[ LINKER_VERSION_NUMBER=`$ECHO $LINKER_VERSION_STRING | \
$SED -e 's/.* \([0-9][0-9]*\(\.[0-9][0-9]*\)*\).*/\1/'` ]
elif test "x$TOOLCHAIN_TYPE" = xclang; then
# clang -Wl,-v output typically looks like
# @(#)PROGRAM:ld PROJECT:ld64-305
@@ -627,7 +632,7 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
# or
# GNU ld (GNU Binutils for Ubuntu) 2.26.1
LINKER_VERSION_STRING=`$LINKER -Wl,-v 2>&1 | $HEAD -n 1`
LINKER_VERSION_STRING=`$LD -Wl,-v 2>&1 | $HEAD -n 1`
# Check if we're using the GNU ld
$ECHO "$LINKER_VERSION_STRING" | $GREP "GNU" > /dev/null
if test $? -eq 0; then
@@ -647,23 +652,6 @@ AC_DEFUN([TOOLCHAIN_EXTRACT_LD_VERSION],
AC_MSG_NOTICE([Using $TOOLCHAIN_TYPE $LINKER_NAME version $LINKER_VERSION_NUMBER @<:@$LINKER_VERSION_STRING@:>@])
])
# Make sure we did not pick up /usr/bin/link, which is the unix-style link
# executable.
#
# $1 = linker to test (LD or BUILD_LD)
AC_DEFUN(TOOLCHAIN_VERIFY_LINK_BINARY,
[
LINKER=[$]$1
AC_MSG_CHECKING([if the found link.exe is actually the Visual Studio linker])
$LINKER --version > /dev/null
if test $? -eq 0 ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([$LINKER is the winenv link tool. Please check your PATH and rerun configure.])
else
AC_MSG_RESULT([yes])
fi
])
# Detect the core components of the toolchain, i.e. the compilers (CC and CXX),
# preprocessor (CPP and CXXCPP), the linker (LD), the assembler (AS) and the
# archiver (AR). Verify that the compilers are correct according to the
@@ -699,30 +687,35 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
# Setup the preprocessor (CPP and CXXCPP)
#
AC_PROG_CPP
UTIL_FIXUP_EXECUTABLE(CPP)
BASIC_FIXUP_EXECUTABLE(CPP)
AC_PROG_CXXCPP
UTIL_FIXUP_EXECUTABLE(CXXCPP)
BASIC_FIXUP_EXECUTABLE(CXXCPP)
#
# Setup the linker (LD)
#
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# In the Microsoft toolchain we have a separate LD command "link".
UTIL_LOOKUP_TOOLCHAIN_PROGS(LD, link)
TOOLCHAIN_VERIFY_LINK_BINARY(LD)
# Make sure we reject /usr/bin/link (as determined in CYGWIN_LINK), which is
# a cygwin program for something completely different.
AC_CHECK_PROG([LD], [link],[link],,, [$CYGWIN_LINK])
BASIC_FIXUP_EXECUTABLE(LD)
# Verify that we indeed succeeded with this trick.
AC_MSG_CHECKING([if the found link.exe is actually the Visual Studio linker])
"$LD" --version > /dev/null
if test $? -eq 0 ; then
AC_MSG_RESULT([no])
AC_MSG_ERROR([This is the Cygwin link tool. Please check your PATH and rerun configure.])
else
AC_MSG_RESULT([yes])
fi
LDCXX="$LD"
# jaotc being a windows program expects the linker to be supplied with exe suffix.but without
# fixpath
LD_JAOTC="${LD##$FIXPATH }"
else
# All other toolchains use the compiler to link.
LD="$CC"
LDCXX="$CXX"
# jaotc expects 'ld' as the linker rather than the compiler.
UTIL_LOOKUP_TOOLCHAIN_PROGS(LD_JAOTC, ld)
fi
AC_SUBST(LD)
AC_SUBST(LD_JAOTC)
# FIXME: it should be CXXLD, according to standard (cf CXXCPP)
AC_SUBST(LDCXX)
@@ -741,15 +734,14 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
# Setup the assembler (AS)
#
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
UTIL_LOOKUP_PROGS(AS, as)
BASIC_PATH_PROGS(AS, as)
BASIC_FIXUP_EXECUTABLE(AS)
if test "x$AS" = x; then
AC_MSG_ERROR([Solaris assembler (as) is required. Please install via "pkg install pkg:/developer/assembler".])
fi
elif test "x$TOOLCHAIN_TYPE" != xmicrosoft; then
AS="$CC -c"
else
# On windows, the assember is "ml.exe"
UTIL_LOOKUP_TOOLCHAIN_PROGS(AS, ml)
# FIXME: is this correct for microsoft?
AS="$CC -c"
fi
AC_SUBST(AS)
@@ -758,12 +750,13 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
#
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# The corresponding ar tool is lib.exe (used to create static libraries)
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, lib)
AC_CHECK_PROG([AR], [lib],[lib],,,)
elif test "x$TOOLCHAIN_TYPE" = xgcc; then
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, ar gcc-ar)
BASIC_CHECK_TOOLS(AR, ar gcc-ar)
else
UTIL_LOOKUP_TOOLCHAIN_PROGS(AR, ar)
BASIC_CHECK_TOOLS(AR, ar)
fi
BASIC_FIXUP_EXECUTABLE(AR)
])
# Setup additional tools that is considered a part of the toolchain, but not the
@@ -772,30 +765,49 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_CORE],
AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
[
if test "x$OPENJDK_TARGET_OS" = "xmacosx"; then
UTIL_LOOKUP_PROGS(LIPO, lipo)
UTIL_REQUIRE_PROGS(OTOOL, otool)
UTIL_REQUIRE_PROGS(INSTALL_NAME_TOOL, install_name_tool)
BASIC_PATH_PROGS(LIPO, lipo)
BASIC_FIXUP_EXECUTABLE(LIPO)
BASIC_REQUIRE_PROGS(OTOOL, otool)
BASIC_FIXUP_EXECUTABLE(OTOOL)
BASIC_REQUIRE_PROGS(INSTALL_NAME_TOOL, install_name_tool)
BASIC_FIXUP_EXECUTABLE(INSTALL_NAME_TOOL)
fi
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# Setup the manifest tool (MT)
UTIL_LOOKUP_TOOLCHAIN_PROGS(MT, mt)
AC_CHECK_PROG([MT], [mt], [mt],,, [/usr/bin/mt])
BASIC_FIXUP_EXECUTABLE(MT)
# Setup the resource compiler (RC)
UTIL_LOOKUP_TOOLCHAIN_PROGS(RC, rc)
UTIL_LOOKUP_TOOLCHAIN_PROGS(DUMPBIN, dumpbin)
AC_CHECK_PROG([RC], [rc], [rc],,, [/usr/bin/rc])
BASIC_FIXUP_EXECUTABLE(RC)
AC_CHECK_PROG([DUMPBIN], [dumpbin], [dumpbin],,,)
BASIC_FIXUP_EXECUTABLE(DUMPBIN)
# We need to check for 'msbuild.exe' because at the place where we expect to
# find 'msbuild.exe' there's also a directory called 'msbuild' and configure
# won't find the 'msbuild.exe' executable in that case (and the
# 'ac_executable_extensions' is unusable due to performance reasons).
# Notice that we intentionally don't fix up the path to MSBUILD because we
# will call it in a DOS shell during freetype detection on Windows (see
# 'LIB_SETUP_FREETYPE' in "libraries.m4"
AC_CHECK_PROG([MSBUILD], [msbuild.exe], [msbuild.exe],,,)
fi
if test "x$OPENJDK_TARGET_OS" = xsolaris; then
UTIL_LOOKUP_PROGS(STRIP, strip)
UTIL_LOOKUP_PROGS(NM, nm)
UTIL_LOOKUP_PROGS(GNM, gnm)
BASIC_PATH_PROGS(STRIP, strip)
BASIC_FIXUP_EXECUTABLE(STRIP)
BASIC_PATH_PROGS(NM, nm)
BASIC_FIXUP_EXECUTABLE(NM)
BASIC_PATH_PROGS(GNM, gnm)
BASIC_FIXUP_EXECUTABLE(GNM)
elif test "x$OPENJDK_TARGET_OS" != xwindows; then
UTIL_LOOKUP_TOOLCHAIN_PROGS(STRIP, strip)
# FIXME: we should unify this with the solaris case above.
BASIC_CHECK_TOOLS(STRIP, strip)
BASIC_FIXUP_EXECUTABLE(STRIP)
if test "x$TOOLCHAIN_TYPE" = xgcc; then
UTIL_LOOKUP_TOOLCHAIN_PROGS(NM, nm gcc-nm)
BASIC_CHECK_TOOLS(NM, nm gcc-nm)
else
UTIL_LOOKUP_TOOLCHAIN_PROGS(NM, nm)
BASIC_CHECK_TOOLS(NM, nm)
fi
BASIC_FIXUP_EXECUTABLE(NM)
GNM="$NM"
AC_SUBST(GNM)
fi
@@ -803,51 +815,62 @@ AC_DEFUN_ONCE([TOOLCHAIN_DETECT_TOOLCHAIN_EXTRA],
# objcopy is used for moving debug symbols to separate files when
# full debug symbols are enabled.
if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then
UTIL_LOOKUP_TOOLCHAIN_PROGS(OBJCOPY, gobjcopy objcopy)
if test "x$OPENJDK_BUILD_OS" = xsolaris; then
# objcopy prior to 2.21.1 on solaris is broken and is not usable.
# Rewrite objcopy version output to VALID_VERSION or BAD_VERSION.
# - version number is last blank separate word on first line
# - version number formats that have been seen:
# - <major>.<minor>
# - <major>.<minor>.<micro>
OBJCOPY_VERSION=`$OBJCOPY --version | $HEAD -n 1`
# The outer [ ] is to prevent m4 from eating the [] in the sed expression.
[ OBJCOPY_VERSION_CHECK=`$ECHO $OBJCOPY_VERSION | $SED -n \
-e 's/.* //' \
-e '/^[01]\./b bad' \
-e '/^2\./{' \
-e ' s/^2\.//' \
-e ' /^[0-9]$/b bad' \
-e ' /^[0-9]\./b bad' \
-e ' /^1[0-9]$/b bad' \
-e ' /^1[0-9]\./b bad' \
-e ' /^20\./b bad' \
-e ' /^21\.0$/b bad' \
-e ' /^21\.0\./b bad' \
-e '}' \
-e ':good' \
-e 's/.*/VALID_VERSION/p' \
-e 'q' \
-e ':bad' \
-e 's/.*/BAD_VERSION/p' \
-e 'q'` ]
if test "x$OBJCOPY_VERSION_CHECK" = xBAD_VERSION; then
OBJCOPY=
AC_MSG_WARN([Ignoring found objcopy since it is broken (prior to 2.21.1). No debug symbols will be generated.])
AC_MSG_NOTICE([objcopy reports version $OBJCOPY_VERSION])
AC_MSG_NOTICE([Note: patch 149063-01 or newer contains the correct Solaris 10 SPARC version])
AC_MSG_NOTICE([Note: patch 149064-01 or newer contains the correct Solaris 10 X86 version])
AC_MSG_NOTICE([Note: Solaris 11 Update 1 contains the correct version])
BASIC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy])
# Only call fixup if objcopy was found.
if test -n "$OBJCOPY"; then
BASIC_FIXUP_EXECUTABLE(OBJCOPY)
if test "x$OPENJDK_BUILD_OS" = xsolaris; then
# objcopy prior to 2.21.1 on solaris is broken and is not usable.
# Rewrite objcopy version output to VALID_VERSION or BAD_VERSION.
# - version number is last blank separate word on first line
# - version number formats that have been seen:
# - <major>.<minor>
# - <major>.<minor>.<micro>
OBJCOPY_VERSION=`$OBJCOPY --version | $HEAD -n 1`
# The outer [ ] is to prevent m4 from eating the [] in the sed expression.
[ OBJCOPY_VERSION_CHECK=`$ECHO $OBJCOPY_VERSION | $SED -n \
-e 's/.* //' \
-e '/^[01]\./b bad' \
-e '/^2\./{' \
-e ' s/^2\.//' \
-e ' /^[0-9]$/b bad' \
-e ' /^[0-9]\./b bad' \
-e ' /^1[0-9]$/b bad' \
-e ' /^1[0-9]\./b bad' \
-e ' /^20\./b bad' \
-e ' /^21\.0$/b bad' \
-e ' /^21\.0\./b bad' \
-e '}' \
-e ':good' \
-e 's/.*/VALID_VERSION/p' \
-e 'q' \
-e ':bad' \
-e 's/.*/BAD_VERSION/p' \
-e 'q'` ]
if test "x$OBJCOPY_VERSION_CHECK" = xBAD_VERSION; then
OBJCOPY=
AC_MSG_WARN([Ignoring found objcopy since it is broken (prior to 2.21.1). No debug symbols will be generated.])
AC_MSG_NOTICE([objcopy reports version $OBJCOPY_VERSION])
AC_MSG_NOTICE([Note: patch 149063-01 or newer contains the correct Solaris 10 SPARC version])
AC_MSG_NOTICE([Note: patch 149064-01 or newer contains the correct Solaris 10 X86 version])
AC_MSG_NOTICE([Note: Solaris 11 Update 1 contains the correct version])
fi
fi
fi
fi
UTIL_LOOKUP_TOOLCHAIN_PROGS(OBJDUMP, gobjdump objdump)
BASIC_CHECK_TOOLS(OBJDUMP, [gobjdump objdump])
if test "x$OBJDUMP" != x; then
# Only used for compare.sh; we can live without it. BASIC_FIXUP_EXECUTABLE
# bails if argument is missing.
BASIC_FIXUP_EXECUTABLE(OBJDUMP)
fi
case $TOOLCHAIN_TYPE in
gcc|clang|solstudio)
UTIL_REQUIRE_TOOLCHAIN_PROGS(CXXFILT, c++filt)
BASIC_CHECK_TOOLS(CXXFILT, [c++filt])
BASIC_CHECK_NONEMPTY(CXXFILT)
BASIC_FIXUP_EXECUTABLE(CXXFILT)
;;
esac
])
@@ -875,7 +898,7 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
if test ! -d "$with_build_devkit"; then
AC_MSG_ERROR([--with-build-devkit points to non existing dir: $with_build_devkit])
else
UTIL_FIXUP_PATH([with_build_devkit])
BASIC_FIXUP_PATH([with_build_devkit])
BUILD_DEVKIT_ROOT="$with_build_devkit"
# Check for a meta data info file in the root of the devkit
if test -f "$BUILD_DEVKIT_ROOT/devkit.info"; then
@@ -889,18 +912,14 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
. $CONFIGURESUPPORT_OUTPUTDIR/build-devkit.info
# This potentially sets the following:
# A descriptive name of the devkit
BASIC_EVAL_BUILD_DEVKIT_VARIABLE([BUILD_DEVKIT_NAME])
BASIC_EVAL_DEVKIT_VARIABLE([BUILD_DEVKIT_NAME])
# Corresponds to --with-extra-path
BASIC_EVAL_BUILD_DEVKIT_VARIABLE([BUILD_DEVKIT_EXTRA_PATH])
BASIC_EVAL_DEVKIT_VARIABLE([BUILD_DEVKIT_EXTRA_PATH])
# Corresponds to --with-toolchain-path
BASIC_EVAL_BUILD_DEVKIT_VARIABLE([BUILD_DEVKIT_TOOLCHAIN_PATH])
BASIC_EVAL_DEVKIT_VARIABLE([BUILD_DEVKIT_TOOLCHAIN_PATH])
# Corresponds to --with-sysroot
BASIC_EVAL_BUILD_DEVKIT_VARIABLE([BUILD_DEVKIT_SYSROOT])
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
BASIC_EVAL_BUILD_DEVKIT_VARIABLE([BUILD_DEVKIT_VS_INCLUDE])
BASIC_EVAL_BUILD_DEVKIT_VARIABLE([BUILD_DEVKIT_VS_LIB])
fi
BASIC_EVAL_DEVKIT_VARIABLE([BUILD_DEVKIT_SYSROOT])
# Skip the Window specific parts
fi
AC_MSG_CHECKING([for build platform devkit])
@@ -910,72 +929,36 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
AC_MSG_RESULT([$BUILD_DEVKIT_ROOT])
fi
PATH="$BUILD_DEVKIT_EXTRA_PATH:$PATH"
BUILD_SYSROOT="$BUILD_DEVKIT_SYSROOT"
# Fallback default of just /bin if DEVKIT_PATH is not defined
# Fallback default of just /bin if DEVKIT_PATH is not defined
if test "x$BUILD_DEVKIT_TOOLCHAIN_PATH" = x; then
BUILD_DEVKIT_TOOLCHAIN_PATH="$BUILD_DEVKIT_ROOT/bin"
fi
PATH="$BUILD_DEVKIT_TOOLCHAIN_PATH:$PATH"
BUILD_SYSROOT="$BUILD_DEVKIT_SYSROOT"
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# For historical reasons, paths are separated by ; in devkit.info
BUILD_VS_INCLUDE="${BUILD_DEVKIT_VS_INCLUDE//;/:}"
BUILD_VS_LIB="${BUILD_DEVKIT_VS_LIB//;/:}"
TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS(BUILD_, BUILD_)
fi
fi
else
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# If we got no devkit, we need to go hunting for the proper env
TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE($OPENJDK_BUILD_CPU, [$TOOLCHAIN_VERSION])
TOOLCHAIN_EXTRACT_VISUAL_STUDIO_ENV($OPENJDK_BUILD_CPU, BUILD_)
# We cannot currently export the VS_PATH to spec.gmk. This is probably
# strictly not correct, but seems to work anyway.
# Convert VS_INCLUDE and VS_LIB into sysroot flags
TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS(BUILD_)
PATH="$BUILD_DEVKIT_TOOLCHAIN_PATH:$BUILD_DEVKIT_EXTRA_PATH"
fi
fi
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
UTIL_REQUIRE_PROGS(BUILD_CC, cl, [$VS_PATH])
UTIL_REQUIRE_PROGS(BUILD_CXX, cl, [$VS_PATH])
# On windows, the assember is "ml.exe". We currently don't need this so
# do not require.
UTIL_LOOKUP_PROGS(BUILD_AS, ml, [$VS_PATH])
# On windows, the ar tool is lib.exe (used to create static libraries).
# We currently don't need this so do not require.
UTIL_LOOKUP_PROGS(BUILD_AR, lib, [$VS_PATH])
# In the Microsoft toolchain we have a separate LD command "link".
UTIL_REQUIRE_PROGS(BUILD_LD, link, [$VS_PATH])
TOOLCHAIN_VERIFY_LINK_BINARY(BUILD_LD)
BUILD_LDCXX="$BUILD_LD"
else
if test "x$OPENJDK_BUILD_OS" = xmacosx; then
UTIL_REQUIRE_PROGS(BUILD_CC, clang cc gcc)
UTIL_REQUIRE_PROGS(BUILD_CXX, clang++ CC g++)
else
UTIL_REQUIRE_PROGS(BUILD_CC, cc gcc)
UTIL_REQUIRE_PROGS(BUILD_CXX, CC g++)
fi
UTIL_LOOKUP_PROGS(BUILD_NM, nm gcc-nm)
UTIL_LOOKUP_PROGS(BUILD_AR, ar gcc-ar lib)
UTIL_LOOKUP_PROGS(BUILD_OBJCOPY, objcopy)
UTIL_LOOKUP_PROGS(BUILD_STRIP, strip)
# Assume the C compiler is the assembler
BUILD_AS="$BUILD_CC -c"
# Just like for the target compiler, use the compiler as linker
BUILD_LD="$BUILD_CC"
BUILD_LDCXX="$BUILD_CXX"
fi
# 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.
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)
BASIC_PATH_PROGS(BUILD_AR, ar gcc-ar)
BASIC_FIXUP_EXECUTABLE(BUILD_AR)
BASIC_PATH_PROGS(BUILD_OBJCOPY, objcopy)
BASIC_FIXUP_EXECUTABLE(BUILD_OBJCOPY)
BASIC_PATH_PROGS(BUILD_STRIP, strip)
BASIC_FIXUP_EXECUTABLE(BUILD_STRIP)
# Assume the C compiler is the assembler
BUILD_AS="$BUILD_CC -c"
# Just like for the target compiler, use the compiler as linker
BUILD_LD="$BUILD_CC"
BUILD_LDCXX="$BUILD_CXX"
PATH="$OLDPATH"
@@ -1013,15 +996,10 @@ AC_DEFUN_ONCE([TOOLCHAIN_SETUP_BUILD_COMPILERS],
# Do some additional checks on the detected tools.
AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
[
# The package path is used only on macosx?
# FIXME: clean this up, and/or move it elsewhere.
PACKAGE_PATH=/opt/local
AC_SUBST(PACKAGE_PATH)
# Check for extra potential brokenness.
if test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
# On Windows, double-check that we got the right compiler.
CC_VERSION_OUTPUT=`$CC 2>&1 1>/dev/null | $HEAD -n 1 | $TR -d '\r'`
CC_VERSION_OUTPUT=`$CC 2>&1 | $HEAD -n 1 | $TR -d '\r'`
COMPILER_CPU_TEST=`$ECHO $CC_VERSION_OUTPUT | $SED -n "s/^.* \(.*\)$/\1/p"`
if test "x$OPENJDK_TARGET_CPU" = "xx86"; then
if test "x$COMPILER_CPU_TEST" != "x80x86" -a "x$COMPILER_CPU_TEST" != "xx86"; then
@@ -1031,10 +1009,6 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
if test "x$COMPILER_CPU_TEST" != "xx64"; then
AC_MSG_ERROR([Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for "$COMPILER_CPU_TEST"; expected "x64".])
fi
elif test "x$OPENJDK_TARGET_CPU" = "xaarch64"; then
if test "x$COMPILER_CPU_TEST" != "xARM64"; then
AC_MSG_ERROR([Target CPU mismatch. We are building for $OPENJDK_TARGET_CPU but CL is for "$COMPILER_CPU_TEST"; expected "arm64".])
fi
fi
fi
@@ -1054,10 +1028,121 @@ AC_DEFUN_ONCE([TOOLCHAIN_MISC_CHECKS],
HOTSPOT_TOOLCHAIN_TYPE=$TOOLCHAIN_TYPE
if test "x$TOOLCHAIN_TYPE" = xclang; then
HOTSPOT_TOOLCHAIN_TYPE=gcc
elif test "x$TOOLCHAIN_TYPE" = xsolstudio; then
HOTSPOT_TOOLCHAIN_TYPE=sparcWorks
elif test "x$TOOLCHAIN_TYPE" = xmicrosoft; then
HOTSPOT_TOOLCHAIN_TYPE=visCPP
fi
AC_SUBST(HOTSPOT_TOOLCHAIN_TYPE)
])
# Setup the JTReg Regression Test Harness.
AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JTREG],
[
AC_ARG_WITH(jtreg, [AS_HELP_STRING([--with-jtreg],
[Regression Test Harness @<:@probed@:>@])])
if test "x$with_jtreg" = xno; then
# jtreg disabled
AC_MSG_CHECKING([for jtreg test harness])
AC_MSG_RESULT([no, disabled])
elif test "x$with_jtreg" != xyes && test "x$with_jtreg" != x; then
# An explicit path is specified, use it.
JT_HOME="$with_jtreg"
BASIC_FIXUP_PATH([JT_HOME])
if test ! -d "$JT_HOME"; then
AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg does not exist])
fi
if test ! -e "$JT_HOME/lib/jtreg.jar"; then
AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg is not a valid jtreg home])
fi
JTREGEXE="$JT_HOME/bin/jtreg"
if test ! -x "$JTREGEXE"; then
AC_MSG_ERROR([jtreg home directory from --with-jtreg=$with_jtreg does not contain valid jtreg executable])
fi
AC_MSG_CHECKING([for jtreg test harness])
AC_MSG_RESULT([$JT_HOME])
else
# Try to locate jtreg
if test "x$JT_HOME" != x; then
# JT_HOME set in environment, use it
if test ! -d "$JT_HOME"; then
AC_MSG_WARN([Ignoring JT_HOME pointing to invalid directory: $JT_HOME])
JT_HOME=
else
if test ! -e "$JT_HOME/lib/jtreg.jar"; then
AC_MSG_WARN([Ignoring JT_HOME which is not a valid jtreg home: $JT_HOME])
JT_HOME=
elif test ! -x "$JT_HOME/bin/jtreg"; then
AC_MSG_WARN([Ignoring JT_HOME which does not contain valid jtreg executable: $JT_HOME])
JT_HOME=
else
JTREGEXE="$JT_HOME/bin/jtreg"
AC_MSG_NOTICE([Located jtreg using JT_HOME from environment])
fi
fi
fi
if test "x$JT_HOME" = x; then
# JT_HOME is not set in environment, or was deemed invalid.
# Try to find jtreg on path
BASIC_PATH_PROGS(JTREGEXE, jtreg)
if test "x$JTREGEXE" != x; then
# That's good, now try to derive JT_HOME
JT_HOME=`(cd $($DIRNAME $JTREGEXE)/.. && pwd)`
if test ! -e "$JT_HOME/lib/jtreg.jar"; then
AC_MSG_WARN([Ignoring jtreg from path since a valid jtreg home cannot be found])
JT_HOME=
JTREGEXE=
else
AC_MSG_NOTICE([Located jtreg using jtreg executable in path])
fi
fi
fi
AC_MSG_CHECKING([for jtreg test harness])
if test "x$JT_HOME" != x; then
AC_MSG_RESULT([$JT_HOME])
else
AC_MSG_RESULT([no, not found])
if test "x$with_jtreg" = xyes; then
AC_MSG_ERROR([--with-jtreg was specified, but no jtreg found.])
fi
fi
fi
BASIC_FIXUP_EXECUTABLE(JTREGEXE)
BASIC_FIXUP_PATH(JT_HOME)
AC_SUBST(JT_HOME)
AC_SUBST(JTREGEXE)
])
# Setup the JIB dependency resolver
AC_DEFUN_ONCE([TOOLCHAIN_SETUP_JIB],
[
AC_ARG_WITH(jib, [AS_HELP_STRING([--with-jib],
[Jib dependency management tool @<:@not used@:>@])])
if test "x$with_jib" = xno || test "x$with_jib" = x; then
# jib disabled
AC_MSG_CHECKING([for jib])
AC_MSG_RESULT(no)
elif test "x$with_jib" = xyes; then
AC_MSG_ERROR([Must supply a value to --with-jib])
else
JIB_HOME="${with_jib}"
AC_MSG_CHECKING([for jib])
AC_MSG_RESULT(${JIB_HOME})
if test ! -d "${JIB_HOME}"; then
AC_MSG_ERROR([--with-jib must be a directory])
fi
JIB_JAR=$(ls ${JIB_HOME}/lib/jib-*.jar)
if test ! -f "${JIB_JAR}"; then
AC_MSG_ERROR([Could not find jib jar file in ${JIB_HOME}])
fi
fi
AC_SUBST(JIB_HOME)
])

View File

@@ -1,763 +0,0 @@
#
# Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# 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.
#
################################################################################
# The order of these defines the priority by which we try to find them.
VALID_VS_VERSIONS="2017 2019 2022 2013 2015 2012 2010"
VS_DESCRIPTION_2010="Microsoft Visual Studio 2010"
VS_VERSION_INTERNAL_2010=100
VS_MSVCR_2010=msvcr100.dll
# We don't use msvcp on Visual Studio 2010
#VS_MSVCP_2010=msvcp100.dll
VS_ENVVAR_2010="VS100COMNTOOLS"
VS_VS_INSTALLDIR_2010="Microsoft Visual Studio 10.0"
VS_SDK_INSTALLDIR_2010="Microsoft SDKs/Windows/v7.1"
VS_VS_PLATFORM_NAME_2010="v100"
VS_SDK_PLATFORM_NAME_2010="Windows7.1SDK"
VS_SUPPORTED_2010=false
VS_DESCRIPTION_2012="Microsoft Visual Studio 2012"
VS_VERSION_INTERNAL_2012=110
VS_MSVCR_2012=msvcr110.dll
VS_MSVCP_2012=msvcp110.dll
VS_ENVVAR_2012="VS110COMNTOOLS"
VS_VS_INSTALLDIR_2012="Microsoft Visual Studio 11.0"
VS_SDK_INSTALLDIR_2012=
VS_VS_PLATFORM_NAME_2012="v110"
VS_SDK_PLATFORM_NAME_2012=
VS_SUPPORTED_2012=false
VS_DESCRIPTION_2013="Microsoft Visual Studio 2013"
VS_VERSION_INTERNAL_2013=120
VS_MSVCR_2013=msvcr120.dll
VS_MSVCP_2013=msvcp120.dll
VS_ENVVAR_2013="VS120COMNTOOLS"
VS_VS_INSTALLDIR_2013="Microsoft Visual Studio 12.0"
VS_SDK_INSTALLDIR_2013=
VS_VS_PLATFORM_NAME_2013="v120"
VS_SDK_PLATFORM_NAME_2013=
VS_SUPPORTED_2013=false
VS_DESCRIPTION_2015="Microsoft Visual Studio 2015"
VS_VERSION_INTERNAL_2015=140
VS_MSVCR_2015=vcruntime140.dll
VS_MSVCP_2015=msvcp140.dll
VS_ENVVAR_2015="VS140COMNTOOLS"
VS_VS_INSTALLDIR_2015="Microsoft Visual Studio 14.0"
VS_SDK_INSTALLDIR_2015=
VS_VS_PLATFORM_NAME_2015="v140"
VS_SDK_PLATFORM_NAME_2015=
# The vcvars of 2015 breaks if 2017 is also installed. Work around this by
# explicitly specifying Windows Kit 8.1 to be used.
VS_ENV_ARGS_2015="8.1"
VS_SUPPORTED_2015=false
VS_DESCRIPTION_2017="Microsoft Visual Studio 2017"
VS_VERSION_INTERNAL_2017=141
VS_MSVCR_2017=vcruntime140.dll
VS_MSVCP_2017=msvcp140.dll
VS_ENVVAR_2017="VS150COMNTOOLS"
VS_USE_UCRT_2017="true"
VS_VS_INSTALLDIR_2017="Microsoft Visual Studio/2017"
VS_EDITIONS_2017="BuildTools Community Professional Enterprise"
VS_SDK_INSTALLDIR_2017=
VS_VS_PLATFORM_NAME_2017="v141"
VS_SDK_PLATFORM_NAME_2017=
VS_SUPPORTED_2017=true
VS_TOOLSET_SUPPORTED_2017=true
VS_DESCRIPTION_2019="Microsoft Visual Studio 2019"
VS_VERSION_INTERNAL_2019=142
VS_MSVCR_2019=vcruntime140.dll
VS_VCRUNTIME_1_2019=vcruntime140_1.dll
VS_MSVCP_2019=msvcp140.dll
VS_ENVVAR_2019="VS160COMNTOOLS"
VS_USE_UCRT_2019="true"
VS_VS_INSTALLDIR_2019="Microsoft Visual Studio/2019"
VS_EDITIONS_2019="BuildTools Community Professional Enterprise"
VS_SDK_INSTALLDIR_2019=
VS_VS_PLATFORM_NAME_2019="v142"
VS_SDK_PLATFORM_NAME_2019=
VS_SUPPORTED_2019=false
VS_TOOLSET_SUPPORTED_2019=false
VS_DESCRIPTION_2022="Microsoft Visual Studio 2022"
VS_VERSION_INTERNAL_2022=143
VS_MSVCR_2022=vcruntime140.dll
VS_VCRUNTIME_1_2022=vcruntime140_1.dll
VS_MSVCP_2022=msvcp140.dll
VS_ENVVAR_2022="VS170COMNTOOLS"
VS_USE_UCRT_2022="true"
VS_VS_INSTALLDIR_2022="Microsoft Visual Studio/2022"
VS_EDITIONS_2022="BuildTools Community Professional Enterprise"
VS_SDK_INSTALLDIR_2022=
VS_VS_PLATFORM_NAME_2022="v143"
VS_SDK_PLATFORM_NAME_2022=
VS_SUPPORTED_2022=true
VS_TOOLSET_SUPPORTED_2022=true
################################################################################
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
[
if test "x$VS_ENV_CMD" = x; then
TARGET_CPU="$1"
VS_VERSION="$2"
VS_BASE="$3"
METHOD="$4"
UTIL_FIXUP_PATH(VS_BASE, NOFAIL)
if test "x$VS_BASE" != x && test -d "$VS_BASE"; then
# In VS 2017 and VS 2019, the default installation is in a subdir named after the edition.
# Find the first one present and use that.
if test "x$VS_EDITIONS" != x; then
for edition in $VS_EDITIONS; do
if test -d "$VS_BASE/$edition"; then
VS_BASE="$VS_BASE/$edition"
break
fi
done
fi
AC_MSG_NOTICE([Found Visual Studio installation at $VS_BASE using $METHOD])
if test "x$TARGET_CPU" = xx86; then
VCVARSFILES="vc/bin/vcvars32.bat vc/auxiliary/build/vcvars32.bat"
elif test "x$TARGET_CPU" = xx86_64; then
VCVARSFILES="vc/bin/amd64/vcvars64.bat vc/bin/x86_amd64/vcvarsx86_amd64.bat \
vc/auxiliary/build/vcvarsx86_amd64.bat vc/auxiliary/build/vcvars64.bat"
elif test "x$TARGET_CPU" = xaarch64; then
# for host x86-64, target aarch64
VCVARSFILES="vc/auxiliary/build/vcvarsamd64_arm64.bat \
vc/auxiliary/build/vcvarsx86_arm64.bat"
fi
for VCVARSFILE in $VCVARSFILES; do
if test -f "$VS_BASE/$VCVARSFILE"; then
VS_ENV_CMD="$VS_BASE/$VCVARSFILE"
break
fi
done
if test "x$VS_ENV_CMD" = x; then
AC_MSG_NOTICE([Warning: None of $VCVARSFILES were found, Visual Studio installation not recognized. Ignoring])
else
# PLATFORM_TOOLSET is used during the compilation of the freetype sources
# (see 'LIB_BUILD_FREETYPE' in libraries.m4) and must be one of 'v100',
# 'v110' or 'v120' for VS 2010, 2012 or VS2013
eval PLATFORM_TOOLSET="\${VS_VS_PLATFORM_NAME_${VS_VERSION}}"
fi
fi
fi
])
################################################################################
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT],
[
if test "x$VS_ENV_CMD" = x; then
TARGET_CPU="$1"
VS_VERSION="$2"
WIN_SDK_BASE="$3"
METHOD="$4"
UTIL_FIXUP_PATH(WIN_SDK_BASE, NOFAIL)
if test "x$WIN_SDK_BASE" != x && test -d "$WIN_SDK_BASE"; then
# There have been cases of partial or broken SDK installations. A missing
# lib dir is not going to work.
if test ! -d "$WIN_SDK_BASE/lib"; then
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
AC_MSG_NOTICE([Warning: Installation is broken, lib dir is missing. Ignoring])
elif test -f "$WIN_SDK_BASE/bin/setenv.cmd"; then
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
VS_ENV_CMD="$WIN_SDK_BASE/bin/setenv.cmd"
if test "x$TARGET_CPU" = xx86; then
VS_ENV_ARGS="/x86"
elif test "x$TARGET_CPU" = xx86_64; then
VS_ENV_ARGS="/x64"
elif test "x$TARGET_CPU" = xaarch64; then
VS_ENV_ARGS="/arm64"
fi
# PLATFORM_TOOLSET is used during the compilation of the freetype sources (see
# 'LIB_BUILD_FREETYPE' in libraries.m4) and must be 'Windows7.1SDK' for Windows7.1SDK
# TODO: improve detection for other versions of SDK
eval PLATFORM_TOOLSET="\${VS_SDK_PLATFORM_NAME_${VS_VERSION}}"
else
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
AC_MSG_NOTICE([Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring])
fi
fi
fi
])
################################################################################
# Finds the bat or cmd file in Visual Studio or the SDK that sets up a proper
# build environment and assigns it to VS_ENV_CMD
AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
[
# VS2017 provides the option to install previous minor versions of the MSVC
# toolsets. It is not possible to directly download earlier minor versions of
# VS2017 and in order to build with a previous minor compiler toolset version,
# it is now possible to compile with earlier minor versions by passing
# -vcvars_ver=<toolset_version> argument to vcvarsall.bat.
AC_ARG_WITH(msvc-toolset-version, [AS_HELP_STRING([--with-msvc-toolset-version],
[specific MSVC toolset version to use, passed as -vcvars_ver argument to
pass to vcvarsall.bat (Windows only)])])
TARGET_CPU="$1"
VS_VERSION="$2"
eval VS_COMNTOOLS_VAR="\${VS_ENVVAR_${VS_VERSION}}"
eval VS_COMNTOOLS="\$${VS_COMNTOOLS_VAR}"
eval VS_INSTALL_DIR="\${VS_VS_INSTALLDIR_${VS_VERSION}}"
eval VS_EDITIONS="\${VS_EDITIONS_${VS_VERSION}}"
eval SDK_INSTALL_DIR="\${VS_SDK_INSTALLDIR_${VS_VERSION}}"
eval VS_ENV_ARGS="\${VS_ENV_ARGS_${VS_VERSION}}"
eval VS_TOOLSET_SUPPORTED="\${VS_TOOLSET_SUPPORTED_${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
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$with_tools_dir/../..], [--with-tools-dir])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$with_tools_dir/../../..], [--with-tools-dir])
if test "x$VS_ENV_CMD" = x; then
# Having specified an argument which is incorrect will produce an instant failure;
# we should not go on looking
AC_MSG_NOTICE([The path given by --with-tools-dir does not contain a valid])
AC_MSG_NOTICE([Visual Studio installation. Please point to the VC/bin or VC/bin/amd64])
AC_MSG_NOTICE([directory within the Visual Studio installation])
AC_MSG_ERROR([Cannot locate a valid Visual Studio installation])
fi
fi
if test "x$VS_COMNTOOLS" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$VS_COMNTOOLS/../..], [$VS_COMNTOOLS_VAR variable])
fi
if test "x$PROGRAMFILES" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMFILES/$VS_INSTALL_DIR], [well-known name])
fi
# Work around the insanely named ProgramFiles(x86) env variable
PROGRAMFILES_X86="`env | $SED -n 's/^ProgramFiles(x86)=//p'`"
if test "x$PROGRAMFILES_X86" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMFILES_X86/$VS_INSTALL_DIR], [well-known name])
fi
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files/$VS_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files (x86)/$VS_INSTALL_DIR], [well-known name])
if test "x$SDK_INSTALL_DIR" != x; then
if test "x$ProgramW6432" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[$ProgramW6432/$SDK_INSTALL_DIR], [well-known name])
fi
if test "x$PROGRAMW6432" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMW6432/$SDK_INSTALL_DIR], [well-known name])
fi
if test "x$PROGRAMFILES" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[$PROGRAMFILES/$SDK_INSTALL_DIR], [well-known name])
fi
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files/$SDK_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([$TARGET_CPU], [$VS_VERSION],
[c:/program files (x86)/$SDK_INSTALL_DIR], [well-known name])
fi
VCVARS_VER=auto
if test "x$VS_TOOLSET_SUPPORTED" != x; then
if test "x$with_msvc_toolset_version" != x; then
VCVARS_VER="$with_msvc_toolset_version"
fi
fi
])
################################################################################
AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO],
[
AC_ARG_WITH(toolchain-version, [AS_HELP_STRING([--with-toolchain-version],
[the version of the toolchain to look for, use '--help' to show possible values @<:@platform dependent@:>@])])
if test "x$with_toolchain_version" = xlist; then
# List all toolchains
AC_MSG_NOTICE([The following toolchain versions are valid on this platform:])
for version in $VALID_VS_VERSIONS; do
eval VS_DESCRIPTION=\${VS_DESCRIPTION_$version}
$PRINTF " %-10s %s\n" $version "$VS_DESCRIPTION"
done
exit 0
elif test "x$DEVKIT_VS_VERSION" != x; then
VS_VERSION=$DEVKIT_VS_VERSION
TOOLCHAIN_VERSION=$VS_VERSION
# If the devkit has a name, use that as description
VS_DESCRIPTION="$DEVKIT_NAME"
if test "x$VS_DESCRIPTION" = x; then
eval VS_DESCRIPTION="\${VS_DESCRIPTION_${VS_VERSION}}"
fi
eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}"
eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}"
eval VCRUNTIME_1_NAME="\${VS_VCRUNTIME_1_${VS_VERSION}}"
eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}"
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
eval PLATFORM_TOOLSET="\${VS_VS_PLATFORM_NAME_${VS_VERSION}}"
# For historical reasons, paths are separated by ; in devkit.info
VS_INCLUDE=${DEVKIT_VS_INCLUDE//;/:}
VS_LIB=${DEVKIT_VS_LIB//;/:}
AC_MSG_NOTICE([Found devkit $VS_DESCRIPTION])
elif test "x$with_toolchain_version" != x; then
# User override; check that it is valid
if test "x${VALID_VS_VERSIONS/$with_toolchain_version/}" = "x${VALID_VS_VERSIONS}"; then
AC_MSG_NOTICE([Visual Studio version $with_toolchain_version is not valid.])
AC_MSG_NOTICE([Valid Visual Studio versions: $VALID_VS_VERSIONS.])
AC_MSG_ERROR([Cannot continue.])
fi
VS_VERSIONS_PROBE_LIST="$with_toolchain_version"
else
# No flag given, use default
VS_VERSIONS_PROBE_LIST="$VALID_VS_VERSIONS"
fi
for VS_VERSION in $VS_VERSIONS_PROBE_LIST; do
TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE($OPENJDK_TARGET_CPU, [$VS_VERSION])
if test "x$VS_ENV_CMD" != x; then
TOOLCHAIN_VERSION=$VS_VERSION
eval VS_DESCRIPTION="\${VS_DESCRIPTION_${VS_VERSION}}"
eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}"
eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}"
eval VCRUNTIME_1_NAME="\${VS_VCRUNTIME_1_${VS_VERSION}}"
eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}"
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
# The rest of the variables are already evaled while probing
AC_MSG_NOTICE([Found $VS_DESCRIPTION])
break
fi
done
TOOLCHAIN_DESCRIPTION="$VS_DESCRIPTION"
if test "x$VS_SUPPORTED" = "xfalse"; then
UNSUPPORTED_TOOLCHAIN_VERSION=yes
fi
])
AC_DEFUN([TOOLCHAIN_EXTRACT_VISUAL_STUDIO_ENV],
[
TARGET_CPU=$1
AC_MSG_NOTICE([Trying to extract Visual Studio environment variables for $TARGET_CPU])
AC_MSG_NOTICE([using $VS_ENV_CMD $VS_ENV_ARGS])
VS_ENV_TMP_DIR="$CONFIGURESUPPORT_OUTPUTDIR/vs-env-$TARGET_CPU"
$MKDIR -p $VS_ENV_TMP_DIR
# Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment).
# Instead create a shell script which will set the relevant variables when run.
OLDPATH="$PATH"
# Make sure we only capture additions to PATH needed by VS.
# Clear out path, but need system dir present for vsvars cmd file to be able to run
export PATH=$WINENV_PREFIX/c/windows/system32
# The "| cat" is to stop SetEnv.Cmd to mess with system colors on some systems
# We can't pass -vcvars_ver=$VCVARS_VER here because cmd.exe eats all '='
# in bat file arguments. :-(
$FIXPATH $CMD /c "$TOPDIR/make/scripts/extract-vs-env.cmd" "$VS_ENV_CMD" \
"$VS_ENV_TMP_DIR/set-vs-env.sh" $VCVARS_VER $VS_ENV_ARGS \
> $VS_ENV_TMP_DIR/extract-vs-env.log | $CAT 2>&1
PATH="$OLDPATH"
if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
AC_MSG_NOTICE([Could not succesfully extract the environment variables needed for the VS setup.])
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation.])
AC_MSG_NOTICE([To analyze the problem, see extract-vs-env.log and extract-vs-env.bat in])
AC_MSG_NOTICE([$VS_ENV_TMP_DIR.])
AC_MSG_ERROR([Cannot continue])
fi
# Remove windows line endings
$SED -i -e 's|\r||g' $VS_ENV_TMP_DIR/set-vs-env.sh
# Now set all paths and other env variables by executing the generated
# shell script. This will allow the rest of the configure script to find
# and run the compiler in the proper way.
AC_MSG_NOTICE([Setting extracted environment variables for $TARGET_CPU])
. $VS_ENV_TMP_DIR/set-vs-env.sh
# Extract only what VS_ENV_CMD added to the PATH
VS_PATH=${PATH_AFTER/"$PATH_BEFORE"}
VS_PATH=${VS_PATH//::/:}
# Remove any paths containing # (typically F#) as that messes up make. This
# is needed if visual studio was installed with F# support.
[ VS_PATH=`$ECHO "$VS_PATH" | $SED 's/[^:#]*#[^:]*://g'` ]
# Sometimes case is off
if test -z "$WINDOWSSDKDIR"; then
WINDOWSSDKDIR="$WindowsSdkDir"
fi
# Now we have VS_PATH, VS_INCLUDE, VS_LIB. For further checking, we
# also define VCINSTALLDIR and WINDOWSSDKDIR. All are in
# unix style.
])
################################################################################
# Check if the VS env variables were setup prior to running configure.
# If not, then find vcvarsall.bat and run it automatically, and integrate
# the set env variables into the spec file.
AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
[
# Locate the vsvars bat file and save it as VS_ENV_CMD
TOOLCHAIN_FIND_VISUAL_STUDIO
# If we have a devkit, we don't need to run VS_ENV_CMD
if test "x$DEVKIT_VS_VERSION" = x; then
if test "x$VS_ENV_CMD" != x; then
# We have found a Visual Studio environment on disk, let's extract variables
# from the vsvars bat file into shell variables in the configure script.
TOOLCHAIN_EXTRACT_VISUAL_STUDIO_ENV($OPENJDK_TARGET_CPU)
# Now we have VS_PATH, VS_INCLUDE, VS_LIB. For further checking, we
# also define VCINSTALLDIR and WINDOWSSDKDIR. All are in
# unix style.
else
# We did not find a vsvars bat file.
AC_MSG_ERROR([Cannot locate a valid Visual Studio installation])
fi
fi
# At this point, we should have correct variables in the environment
AC_MSG_CHECKING([that Visual Studio variables have been correctly extracted])
if test "x$VCINSTALLDIR" != x || test "x$WINDOWSSDKDIR" != x \
|| test "x$DEVKIT_NAME" != x; then
if test "x$VS_INCLUDE" = x || test "x$VS_LIB" = x; then
AC_MSG_RESULT([no; Visual Studio present but broken])
AC_MSG_ERROR([Your VC command prompt seems broken, INCLUDE and/or LIB is missing.])
else
AC_MSG_RESULT([ok])
# Turn VS_PATH into TOOLCHAIN_PATH
TOOLCHAIN_PATH="$TOOLCHAIN_PATH:$VS_PATH"
# Convert VS_INCLUDE and VS_LIB into sysroot flags
TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS
fi
else
AC_MSG_RESULT([not found])
if test "x$VS_ENV_CMD" = x; then
AC_MSG_NOTICE([Cannot locate a valid Visual Studio or Windows SDK installation on disk])
else
AC_MSG_NOTICE([Running the extraction script failed])
fi
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation.])
AC_MSG_NOTICE([To analyze the problem, see extract-vs-env.log and extract-vs-env.bat in])
AC_MSG_NOTICE([$VS_ENV_TMP_DIR.])
AC_MSG_ERROR([Cannot continue])
fi
])
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL],
[
DLL_NAME="$1"
POSSIBLE_MSVC_DLL="$2"
METHOD="$3"
if test -n "$POSSIBLE_MSVC_DLL" -a -e "$POSSIBLE_MSVC_DLL"; then
AC_MSG_NOTICE([Found $DLL_NAME at $POSSIBLE_MSVC_DLL using $METHOD])
# Need to check if the found msvcr is correct architecture
AC_MSG_CHECKING([found $DLL_NAME architecture])
MSVC_DLL_FILETYPE=`$FILE -b "$POSSIBLE_MSVC_DLL"`
if test "x$OPENJDK_TARGET_CPU" = xx86; then
CORRECT_MSVCR_ARCH=386
elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
CORRECT_MSVCR_ARCH=x86-64
elif test "x$OPENJDK_TARGET_CPU" = xaarch64; then
# The cygwin 'file' command only returns "PE32+ executable (DLL) (console), for MS Windows",
# without specifying which architecture it is for specifically. This has been fixed upstream.
# https://github.com/file/file/commit/b849b1af098ddd530094bf779b58431395db2e10#diff-ff2eced09e6860de75057dd731d092aeR142
CORRECT_MSVCR_ARCH="PE32+ executable"
fi
if $ECHO "$MSVC_DLL_FILETYPE" | $GREP "$CORRECT_MSVCR_ARCH" 2>&1 > /dev/null; then
AC_MSG_RESULT([ok])
MSVC_DLL="$POSSIBLE_MSVC_DLL"
AC_MSG_CHECKING([for $DLL_NAME])
AC_MSG_RESULT([$MSVC_DLL])
else
AC_MSG_RESULT([incorrect, ignoring])
AC_MSG_NOTICE([The file type of the located $DLL_NAME is $MSVC_DLL_FILETYPE])
fi
fi
])
AC_DEFUN([TOOLCHAIN_SETUP_MSVC_DLL],
[
DLL_NAME="$1"
MSVC_DLL=
if test "x$OPENJDK_TARGET_CPU" = xx86; then
vs_target_cpu=x86
elif test "x$OPENJDK_TARGET_CPU" = xx86_64; then
vs_target_cpu=x64
elif test "x$OPENJDK_TARGET_CPU" = xaarch64; then
vs_target_cpu=arm64
fi
if test "x$MSVC_DLL" = x; then
if test "x$VCINSTALLDIR" != x; then
if test "$VS_VERSION" -lt 2017; then
# Probe: Using well-known location from Visual Studio 12.0 and older
POSSIBLE_MSVC_DLL="$VCINSTALLDIR/redist/$vs_target_cpu/microsoft.vc${VS_VERSION_INTERNAL}.crt/$DLL_NAME"
else
# Probe: Using well-known location from VS 2017 and VS 2019
POSSIBLE_MSVC_DLL="`ls $VCToolsRedistDir/$vs_target_cpu/microsoft.vc${VS_VERSION_INTERNAL}.crt/$DLL_NAME 2> /dev/null`"
fi
# In case any of the above finds more than one file, loop over them.
for possible_msvc_dll in $POSSIBLE_MSVC_DLL; do
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$possible_msvc_dll],
[well-known location in VCINSTALLDIR])
done
fi
fi
if test "x$MSVC_DLL" = x; then
# Probe: Check in the Boot JDK directory.
POSSIBLE_MSVC_DLL="$BOOT_JDK/bin/$DLL_NAME"
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[well-known location in Boot JDK])
fi
if test "x$MSVC_DLL" = x; then
# Probe: Look in the Windows system32 directory
WIN_SYSTEMROOT="$SYSTEMROOT"
UTIL_FIXUP_PATH(WIN_SYSTEMROOT, NOFAIL)
if test "x$WIN_SYSTEMROOT" != x; then
POSSIBLE_MSVC_DLL="$WIN_SYSTEMROOT/system32/$DLL_NAME"
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[well-known location in SYSTEMROOT])
fi
fi
if test "x$MSVC_DLL" = x; then
# Probe: If Visual Studio Express is installed, there is usually one with the debugger
if test "x$VS100COMNTOOLS" != x; then
WIN_VS_TOOLS_DIR="$VS100COMNTOOLS/.."
UTIL_FIXUP_PATH(WIN_VS_TOOLS_DIR, NOFAIL)
if test "x$WIN_VS_TOOLS_DIR" != x; then
POSSIBLE_MSVC_DLL=`$FIND "$WIN_VS_TOOLS_DIR" -name $DLL_NAME \
| $GREP -i /$vs_target_cpu/ | $HEAD --lines 1`
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[search of VS100COMNTOOLS])
fi
fi
fi
if test "x$MSVC_DLL" = x; then
# Probe: Search wildly in the VCINSTALLDIR. We've probably lost by now.
# (This was the original behaviour; kept since it might turn something up)
if test "x$VCINSTALLDIR" != x; then
if test "x$OPENJDK_TARGET_CPU" = xx86; then
POSSIBLE_MSVC_DLL=`$FIND "$VCINSTALLDIR" -name $DLL_NAME \
| $GREP x86 | $GREP -v ia64 | $GREP -v x64 | $GREP -v arm64 | $HEAD --lines 1`
if test "x$POSSIBLE_MSVC_DLL" = x; then
# We're grasping at straws now...
POSSIBLE_MSVC_DLL=`$FIND "$VCINSTALLDIR" -name $DLL_NAME \
| $HEAD --lines 1`
fi
else
POSSIBLE_MSVC_DLL=`$FIND "$VCINSTALLDIR" -name $DLL_NAME \
| $GREP x64 | $HEAD --lines 1`
fi
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[search of VCINSTALLDIR])
fi
fi
if test "x$MSVC_DLL" = x; then
AC_MSG_CHECKING([for $DLL_NAME])
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find $DLL_NAME. Please specify using --with-msvcr-dll.])
fi
])
AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
[
AC_ARG_WITH(msvcr-dll, [AS_HELP_STRING([--with-msvcr-dll],
[path to microsoft C runtime dll (msvcr*.dll) (Windows only) @<:@probed@:>@])])
if test "x$with_msvcr_dll" != x; then
# If given explicitly by user, do not probe. If not present, fail directly.
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCR_NAME, [$with_msvcr_dll], [--with-msvcr-dll])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $MSVCR_NAME as specified by --with-msvcr-dll])
fi
MSVCR_DLL="$MSVC_DLL"
elif test "x$DEVKIT_MSVCR_DLL" != x; then
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCR_NAME, [$DEVKIT_MSVCR_DLL], [devkit])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $MSVCR_NAME as specified by devkit])
fi
MSVCR_DLL="$MSVC_DLL"
else
TOOLCHAIN_SETUP_MSVC_DLL([${MSVCR_NAME}])
MSVCR_DLL="$MSVC_DLL"
fi
AC_SUBST(MSVCR_DLL)
AC_ARG_WITH(msvcp-dll, [AS_HELP_STRING([--with-msvcp-dll],
[path to microsoft C++ runtime dll (msvcp*.dll) (Windows only) @<:@probed@:>@])])
if test "x$MSVCP_NAME" != "x"; then
if test "x$with_msvcp_dll" != x; then
# If given explicitly by user, do not probe. If not present, fail directly.
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCP_NAME, [$with_msvcp_dll], [--with-msvcp-dll])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $MSVCP_NAME as specified by --with-msvcp-dll])
fi
MSVCP_DLL="$MSVC_DLL"
elif test "x$DEVKIT_MSVCP_DLL" != x; then
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCP_NAME, [$DEVKIT_MSVCP_DLL], [devkit])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $MSVCP_NAME as specified by devkit])
fi
MSVCP_DLL="$MSVC_DLL"
else
TOOLCHAIN_SETUP_MSVC_DLL([${MSVCP_NAME}])
MSVCP_DLL="$MSVC_DLL"
fi
AC_SUBST(MSVCP_DLL)
fi
AC_ARG_WITH(vcruntime-1-dll, [AS_HELP_STRING([--with-vcruntime-1-dll],
[path to microsoft C++ runtime dll (vcruntime*_1.dll) (Windows x64 only) @<:@probed@:>@])])
if test "x$VCRUNTIME_1_NAME" != "x" && test "x$OPENJDK_TARGET_CPU" = xx86_64; then
if test "x$with_vcruntime_1_dll" != x; then
# If given explicitly by user, do not probe. If not present, fail directly.
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($VCRUNTIME_1_NAME, [$with_vcruntime_1_dll],
[--with-vcruntime-1-dll])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $VCRUNTIME_1_NAME as specified by --with-vcruntime-1-dll])
fi
VCRUNTIME_1_DLL="$MSVC_DLL"
elif test "x$DEVKIT_VCRUNTIME_1_DLL" != x; then
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($VCRUNTIME_1_NAME, [$DEVKIT_VCRUNTIME_1_DLL], [devkit])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $VCRUNTIME_1_NAME as specified by devkit])
fi
VCRUNTIME_1_DLL="$MSVC_DLL"
else
TOOLCHAIN_SETUP_MSVC_DLL([${VCRUNTIME_1_NAME}])
VCRUNTIME_1_DLL="$MSVC_DLL"
fi
fi
AC_SUBST(VCRUNTIME_1_DLL)
AC_ARG_WITH(ucrt-dll-dir, [AS_HELP_STRING([--with-ucrt-dll-dir],
[path to Microsoft Windows Kit UCRT DLL dir (Windows only) @<:@probed@:>@])])
if test "x$USE_UCRT" = "xtrue" && test "x$OPENJDK_TARGET_CPU" != xaarch64; 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
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find any dlls in $with_ucrt_dll_dir])
else
AC_MSG_RESULT([$with_ucrt_dll_dir])
UCRT_DLL_DIR="$with_ucrt_dll_dir"
UTIL_FIXUP_PATH([UCRT_DLL_DIR])
fi
elif test "x$DEVKIT_UCRT_DLL_DIR" != "x"; then
UCRT_DLL_DIR="$DEVKIT_UCRT_DLL_DIR"
AC_MSG_RESULT($UCRT_DLL_DIR)
else
dll_subdir=$OPENJDK_TARGET_CPU
if test "x$dll_subdir" = "xaarch64"; then
dll_subdir="arm64"
elif test "x$dll_subdir" = "xx86_64"; then
dll_subdir="x64"
fi
UCRT_DLL_DIR="$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 $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
else
AC_MSG_RESULT($UCRT_DLL_DIR)
fi
fi
else
UCRT_DLL_DIR=
fi
AC_SUBST(UCRT_DLL_DIR)
])
# Setup the sysroot flags and add them to global CFLAGS and LDFLAGS so
# that configure can use them while detecting compilers.
# TOOLCHAIN_TYPE is available here.
# Param 1 - Optional prefix to SYSROOT variables. (e.g BUILD_)
# Param 2 - Optional prefix to VS variables. (e.g BUILD_)
AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_SYSROOT_FLAGS],
[
# Convert $1VS_INCLUDE into $1SYSROOT_CFLAGS
OLDIFS="$IFS"
IFS=":"
# Convert VS_INCLUDE into SYSROOT_CFLAGS
for ipath in [$]$2VS_INCLUDE; do
$1SYSROOT_CFLAGS="[$]$1SYSROOT_CFLAGS -I$ipath"
done
# Convert VS_LIB into SYSROOT_LDFLAGS
for libpath in [$]$2VS_LIB; do
$1SYSROOT_LDFLAGS="[$]$1SYSROOT_LDFLAGS -libpath:$libpath"
done
IFS="$OLDIFS"
AC_SUBST($1SYSROOT_CFLAGS)
AC_SUBST($1SYSROOT_LDFLAGS)
])

View File

@@ -0,0 +1,726 @@
#
# Copyright (c) 2011, 2012, 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.
#
################################################################################
# The order of these defines the priority by which we try to find them.
VALID_VS_VERSIONS="2017 2013 2015 2012 2010"
VS_DESCRIPTION_2010="Microsoft Visual Studio 2010"
VS_VERSION_INTERNAL_2010=100
VS_MSVCR_2010=msvcr100.dll
# We don't use msvcp on Visual Studio 2010
#VS_MSVCP_2010=msvcp100.dll
VS_ENVVAR_2010="VS100COMNTOOLS"
VS_VS_INSTALLDIR_2010="Microsoft Visual Studio 10.0"
VS_SDK_INSTALLDIR_2010="Microsoft SDKs/Windows/v7.1"
VS_VS_PLATFORM_NAME_2010="v100"
VS_SDK_PLATFORM_NAME_2010="Windows7.1SDK"
VS_SUPPORTED_2010=false
VS_DESCRIPTION_2012="Microsoft Visual Studio 2012"
VS_VERSION_INTERNAL_2012=110
VS_MSVCR_2012=msvcr110.dll
VS_MSVCP_2012=msvcp110.dll
VS_ENVVAR_2012="VS110COMNTOOLS"
VS_VS_INSTALLDIR_2012="Microsoft Visual Studio 11.0"
VS_SDK_INSTALLDIR_2012=
VS_VS_PLATFORM_NAME_2012="v110"
VS_SDK_PLATFORM_NAME_2012=
VS_SUPPORTED_2012=false
VS_DESCRIPTION_2013="Microsoft Visual Studio 2013"
VS_VERSION_INTERNAL_2013=120
VS_MSVCR_2013=msvcr120.dll
VS_MSVCP_2013=msvcp120.dll
VS_ENVVAR_2013="VS120COMNTOOLS"
VS_VS_INSTALLDIR_2013="Microsoft Visual Studio 12.0"
VS_SDK_INSTALLDIR_2013=
VS_VS_PLATFORM_NAME_2013="v120"
VS_SDK_PLATFORM_NAME_2013=
VS_SUPPORTED_2013=false
VS_DESCRIPTION_2015="Microsoft Visual Studio 2015"
VS_VERSION_INTERNAL_2015=140
VS_MSVCR_2015=vcruntime140.dll
VS_MSVCP_2015=msvcp140.dll
VS_ENVVAR_2015="VS140COMNTOOLS"
VS_VS_INSTALLDIR_2015="Microsoft Visual Studio 14.0"
VS_SDK_INSTALLDIR_2015=
VS_VS_PLATFORM_NAME_2015="v140"
VS_SDK_PLATFORM_NAME_2015=
# The vcvars of 2015 breaks if 2017 is also installed. Work around this by
# explicitly specifying Windows Kit 8.1 to be used.
VS_ENV_ARGS_2015="8.1"
VS_SUPPORTED_2015=false
VS_DESCRIPTION_2017="Microsoft Visual Studio 2017"
VS_VERSION_INTERNAL_2017=141
VS_MSVCR_2017=vcruntime140.dll
VS_MSVCP_2017=msvcp140.dll
VS_ENVVAR_2017="VS150COMNTOOLS"
VS_USE_UCRT_2017="true"
VS_VS_INSTALLDIR_2017="Microsoft Visual Studio/2017"
VS_EDITIONS_2017="BuildTools Community Professional Enterprise"
VS_SDK_INSTALLDIR_2017=
VS_VS_PLATFORM_NAME_2017="v141"
VS_SDK_PLATFORM_NAME_2017=
VS_SUPPORTED_2017=true
################################################################################
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT],
[
if test "x$VS_ENV_CMD" = x; then
VS_VERSION="$1"
VS_BASE="$2"
METHOD="$3"
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(VS_BASE)
# In VS 2017, the default installation is in a subdir named after the edition.
# Find the first one present and use that.
if test "x$VS_EDITIONS" != x; then
for edition in $VS_EDITIONS; do
if test -d "$VS_BASE/$edition"; then
VS_BASE="$VS_BASE/$edition"
break
fi
done
fi
if test -d "$VS_BASE"; then
AC_MSG_NOTICE([Found Visual Studio installation at $VS_BASE using $METHOD])
if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
VCVARSFILES="vc/bin/vcvars32.bat vc/auxiliary/build/vcvars32.bat"
else
VCVARSFILES="vc/bin/amd64/vcvars64.bat vc/bin/x86_amd64/vcvarsx86_amd64.bat \
vc/auxiliary/build/vcvarsx86_amd64.bat vc/auxiliary/build/vcvars64.bat"
fi
for VCVARSFILE in $VCVARSFILES; do
if test -f "$VS_BASE/$VCVARSFILE"; then
VS_ENV_CMD="$VS_BASE/$VCVARSFILE"
break
fi
done
if test "x$VS_ENV_CMD" = x; then
AC_MSG_NOTICE([Warning: None of $VCVARSFILES were found, Visual Studio installation not recognized. Ignoring])
else
# PLATFORM_TOOLSET is used during the compilation of the freetype sources
# (see 'LIB_BUILD_FREETYPE' in libraries.m4) and must be one of 'v100',
# 'v110' or 'v120' for VS 2010, 2012 or VS2013
eval PLATFORM_TOOLSET="\${VS_VS_PLATFORM_NAME_${VS_VERSION}}"
fi
fi
fi
])
################################################################################
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT],
[
if test "x$VS_ENV_CMD" = x; then
VS_VERSION="$1"
WIN_SDK_BASE="$2"
METHOD="$3"
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(WIN_SDK_BASE)
if test -d "$WIN_SDK_BASE"; then
# There have been cases of partial or broken SDK installations. A missing
# lib dir is not going to work.
if test ! -d "$WIN_SDK_BASE/lib"; then
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
AC_MSG_NOTICE([Warning: Installation is broken, lib dir is missing. Ignoring])
elif test -f "$WIN_SDK_BASE/Bin/SetEnv.Cmd"; then
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
VS_ENV_CMD="$WIN_SDK_BASE/Bin/SetEnv.Cmd"
if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
VS_ENV_ARGS="/x86"
else
VS_ENV_ARGS="/x64"
fi
# PLATFORM_TOOLSET is used during the compilation of the freetype sources (see
# 'LIB_BUILD_FREETYPE' in libraries.m4) and must be 'Windows7.1SDK' for Windows7.1SDK
# TODO: improve detection for other versions of SDK
eval PLATFORM_TOOLSET="\${VS_SDK_PLATFORM_NAME_${VS_VERSION}}"
else
AC_MSG_NOTICE([Found Windows SDK installation at $WIN_SDK_BASE using $METHOD])
AC_MSG_NOTICE([Warning: Installation is broken, SetEnv.Cmd is missing. Ignoring])
fi
fi
fi
])
################################################################################
# Finds the bat or cmd file in Visual Studio or the SDK that sets up a proper
# build environment and assigns it to VS_ENV_CMD
AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE],
[
VS_VERSION="$1"
eval VS_COMNTOOLS_VAR="\${VS_ENVVAR_${VS_VERSION}}"
eval VS_COMNTOOLS="\$${VS_COMNTOOLS_VAR}"
eval VS_INSTALL_DIR="\${VS_VS_INSTALLDIR_${VS_VERSION}}"
eval VS_EDITIONS="\${VS_EDITIONS_${VS_VERSION}}"
eval SDK_INSTALL_DIR="\${VS_SDK_INSTALLDIR_${VS_VERSION}}"
eval VS_ENV_ARGS="\${VS_ENV_ARGS_${VS_VERSION}}"
# 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
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[$with_tools_dir/../..], [--with-tools-dir])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[$with_tools_dir/../../..], [--with-tools-dir])
if test "x$VS_ENV_CMD" = x; then
# Having specified an argument which is incorrect will produce an instant failure;
# we should not go on looking
AC_MSG_NOTICE([The path given by --with-tools-dir does not contain a valid])
AC_MSG_NOTICE([Visual Studio installation. Please point to the VC/bin or VC/bin/amd64])
AC_MSG_NOTICE([directory within the Visual Studio installation])
AC_MSG_ERROR([Cannot locate a valid Visual Studio installation])
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])
fi
if test "x$PROGRAMFILES" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[$PROGRAMFILES/$VS_INSTALL_DIR], [well-known name])
fi
# Work around the insanely named ProgramFiles(x86) env variable
PROGRAMFILES_X86="`env | $SED -n 's/^ProgramFiles(x86)=//p'`"
if test "x$PROGRAMFILES_X86" != x; then
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[$PROGRAMFILES_X86/$VS_INSTALL_DIR], [well-known name])
fi
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[C:/Program Files/$VS_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_VISUAL_STUDIO_ROOT([${VS_VERSION}],
[C:/Program Files (x86)/$VS_INSTALL_DIR], [well-known name])
if test "x$SDK_INSTALL_DIR" != x; then
if test "x$ProgramW6432" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
[$ProgramW6432/$SDK_INSTALL_DIR], [well-known name])
fi
if test "x$PROGRAMW6432" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
[$PROGRAMW6432/$SDK_INSTALL_DIR], [well-known name])
fi
if test "x$PROGRAMFILES" != x; then
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
[$PROGRAMFILES/$SDK_INSTALL_DIR], [well-known name])
fi
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
[C:/Program Files/$SDK_INSTALL_DIR], [well-known name])
TOOLCHAIN_CHECK_POSSIBLE_WIN_SDK_ROOT([${VS_VERSION}],
[C:/Program Files (x86)/$SDK_INSTALL_DIR], [well-known name])
fi
])
################################################################################
AC_DEFUN([TOOLCHAIN_FIND_VISUAL_STUDIO],
[
AC_ARG_WITH(toolchain-version, [AS_HELP_STRING([--with-toolchain-version],
[the version of the toolchain to look for, use '--help' to show possible values @<:@platform dependent@:>@])])
if test "x$with_toolchain_version" = xlist; then
# List all toolchains
AC_MSG_NOTICE([The following toolchain versions are valid on this platform:])
for version in $VALID_VS_VERSIONS; do
eval VS_DESCRIPTION=\${VS_DESCRIPTION_$version}
$PRINTF " %-10s %s\n" $version "$VS_DESCRIPTION"
done
exit 0
elif test "x$DEVKIT_VS_VERSION" != x; then
VS_VERSION=$DEVKIT_VS_VERSION
TOOLCHAIN_VERSION=$VS_VERSION
# If the devkit has a name, use that as description
VS_DESCRIPTION="$DEVKIT_NAME"
if test "x$VS_DESCRIPTION" = x; then
eval VS_DESCRIPTION="\${VS_DESCRIPTION_${VS_VERSION}}"
fi
eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}"
eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}"
eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}"
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
eval PLATFORM_TOOLSET="\${VS_VS_PLATFORM_NAME_${VS_VERSION}}"
VS_PATH="$TOOLCHAIN_PATH:$PATH"
# Convert DEVKIT_VS_INCLUDE into windows style VS_INCLUDE so that it
# can still be exported as INCLUDE for compiler invocations without
# SYSROOT_CFLAGS
OLDIFS="$IFS"
IFS=";"
for i in $DEVKIT_VS_INCLUDE; do
ipath=$i
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([ipath])
VS_INCLUDE="$VS_INCLUDE;$ipath"
done
# Convert DEVKIT_VS_LIB into VS_LIB so that it can still be exported
# as LIB for compiler invocations without SYSROOT_LDFLAGS
for i in $DEVKIT_VS_LIB; do
libpath=$i
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([libpath])
VS_LIB="$VS_LIB;$libpath"
done
IFS="$OLDIFS"
AC_MSG_NOTICE([Found devkit $VS_DESCRIPTION])
elif test "x$with_toolchain_version" != x; then
# User override; check that it is valid
if test "x${VALID_VS_VERSIONS/$with_toolchain_version/}" = "x${VALID_VS_VERSIONS}"; then
AC_MSG_NOTICE([Visual Studio version $with_toolchain_version is not valid.])
AC_MSG_NOTICE([Valid Visual Studio versions: $VALID_VS_VERSIONS.])
AC_MSG_ERROR([Cannot continue.])
fi
VS_VERSIONS_PROBE_LIST="$with_toolchain_version"
else
# No flag given, use default
VS_VERSIONS_PROBE_LIST="$VALID_VS_VERSIONS"
fi
for VS_VERSION in $VS_VERSIONS_PROBE_LIST; do
TOOLCHAIN_FIND_VISUAL_STUDIO_BAT_FILE([$VS_VERSION])
if test "x$VS_ENV_CMD" != x; then
TOOLCHAIN_VERSION=$VS_VERSION
eval VS_DESCRIPTION="\${VS_DESCRIPTION_${VS_VERSION}}"
eval VS_VERSION_INTERNAL="\${VS_VERSION_INTERNAL_${VS_VERSION}}"
eval MSVCR_NAME="\${VS_MSVCR_${VS_VERSION}}"
eval MSVCP_NAME="\${VS_MSVCP_${VS_VERSION}}"
eval USE_UCRT="\${VS_USE_UCRT_${VS_VERSION}}"
eval VS_SUPPORTED="\${VS_SUPPORTED_${VS_VERSION}}"
# The rest of the variables are already evaled while probing
AC_MSG_NOTICE([Found $VS_DESCRIPTION])
break
fi
done
TOOLCHAIN_DESCRIPTION="$VS_DESCRIPTION"
if test "x$VS_SUPPORTED" = "xfalse"; then
UNSUPPORTED_TOOLCHAIN_VERSION=yes
fi
])
################################################################################
# Check if the VS env variables were setup prior to running configure.
# If not, then find vcvarsall.bat and run it automatically, and integrate
# the set env variables into the spec file.
AC_DEFUN([TOOLCHAIN_SETUP_VISUAL_STUDIO_ENV],
[
# Store path to cygwin link.exe to help excluding it when searching for
# VS linker. This must be done before changing the PATH when looking for VS.
AC_PATH_PROG(CYGWIN_LINK, link)
if test "x$CYGWIN_LINK" != x; then
AC_MSG_CHECKING([if the first found link.exe is actually the Cygwin link tool])
"$CYGWIN_LINK" --version > /dev/null
if test $? -eq 0 ; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
# This might be the VS linker. Don't exclude it later on.
CYGWIN_LINK=""
fi
fi
# First-hand choice is to locate and run the vsvars bat file.
TOOLCHAIN_FIND_VISUAL_STUDIO
# If we have a devkit, skip all of the below.
if test "x$DEVKIT_VS_VERSION" = x; then
if test "x$VS_ENV_CMD" != x; then
# We have found a Visual Studio environment on disk, let's extract variables from the vsvars bat file.
BASIC_FIXUP_EXECUTABLE(VS_ENV_CMD)
# Lets extract the variables that are set by vcvarsall.bat/vsvars32.bat/vsvars64.bat
AC_MSG_NOTICE([Trying to extract Visual Studio environment variables])
# We need to create a couple of temporary files.
VS_ENV_TMP_DIR="$CONFIGURESUPPORT_OUTPUTDIR/vs-env"
$MKDIR -p $VS_ENV_TMP_DIR
# Cannot use the VS10 setup script directly (since it only updates the DOS subshell environment).
# Instead create a shell script which will set the relevant variables when run.
WINPATH_VS_ENV_CMD="$VS_ENV_CMD"
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_VS_ENV_CMD])
WINPATH_BASH="$BASH"
BASIC_WINDOWS_REWRITE_AS_WINDOWS_MIXED_PATH([WINPATH_BASH])
# Generate a DOS batch file which runs $VS_ENV_CMD, and then creates a shell
# script (executable by bash) that will setup the important variables.
EXTRACT_VC_ENV_BAT_FILE="$VS_ENV_TMP_DIR/extract-vs-env.bat"
$ECHO "@echo off" > $EXTRACT_VC_ENV_BAT_FILE
# This will end up something like:
# call C:/progra~2/micros~2.0/vc/bin/amd64/vcvars64.bat
$ECHO "call $WINPATH_VS_ENV_CMD $VS_ENV_ARGS" >> $EXTRACT_VC_ENV_BAT_FILE
# In some cases, the VS_ENV_CMD will change directory, change back so
# the set-vs-env.sh ends up in the right place.
$ECHO 'cd %~dp0' >> $EXTRACT_VC_ENV_BAT_FILE
# These will end up something like:
# C:/CygWin/bin/bash -c 'echo VS_PATH=\"$PATH\" > localdevenv.sh
# The trailing space for everyone except PATH is no typo, but is needed due
# to trailing \ in the Windows paths. These will be stripped later.
$ECHO "$WINPATH_BASH -c 'echo VS_PATH="'\"$PATH\" > set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo VS_INCLUDE="'\"$INCLUDE\;$include \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo VS_LIB="'\"$LIB\;$lib \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo VCINSTALLDIR="'\"$VCINSTALLDIR \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo WindowsSdkDir="'\"$WindowsSdkDir \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
$ECHO "$WINPATH_BASH -c 'echo WINDOWSSDKDIR="'\"$WINDOWSSDKDIR \" >> set-vs-env.sh' \
>> $EXTRACT_VC_ENV_BAT_FILE
# Now execute the newly created bat file.
# The | cat is to stop SetEnv.Cmd to mess with system colors on msys.
# Change directory so we don't need to mess with Windows paths in redirects.
cd $VS_ENV_TMP_DIR
cmd /c extract-vs-env.bat | $CAT
cd $CURDIR
if test ! -s $VS_ENV_TMP_DIR/set-vs-env.sh; then
AC_MSG_NOTICE([Could not succesfully extract the envionment variables needed for the VS setup.])
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation])
AC_MSG_NOTICE([or run "bash.exe -l" from a VS command prompt and then run configure from there.])
AC_MSG_ERROR([Cannot continue])
fi
# Now set all paths and other env variables. This will allow the rest of
# the configure script to find and run the compiler in the proper way.
AC_MSG_NOTICE([Setting extracted environment variables])
. $VS_ENV_TMP_DIR/set-vs-env.sh
# Now we have VS_PATH, VS_INCLUDE, VS_LIB. For further checking, we
# also define VCINSTALLDIR, WindowsSdkDir and WINDOWSSDKDIR.
else
# We did not find a vsvars bat file, let's hope we are run from a VS command prompt.
AC_MSG_NOTICE([Cannot locate a valid Visual Studio installation, checking current environment])
fi
fi
# At this point, we should have correct variables in the environment, or we can't continue.
AC_MSG_CHECKING([for Visual Studio variables])
if test "x$VCINSTALLDIR" != x || test "x$WindowsSDKDir" != x \
|| test "x$WINDOWSSDKDIR" != x || test "x$DEVKIT_NAME" != x; then
if test "x$VS_INCLUDE" = x || test "x$VS_LIB" = x; then
AC_MSG_RESULT([present but broken])
AC_MSG_ERROR([Your VC command prompt seems broken, INCLUDE and/or LIB is missing.])
else
AC_MSG_RESULT([ok])
# Remove any trailing "\" ";" and " " from the variables.
VS_INCLUDE=`$ECHO "$VS_INCLUDE" | $SED -e 's/\\\\*;* *$//'`
VS_LIB=`$ECHO "$VS_LIB" | $SED 's/\\\\*;* *$//'`
VCINSTALLDIR=`$ECHO "$VCINSTALLDIR" | $SED 's/\\\\* *$//'`
WindowsSdkDir=`$ECHO "$WindowsSdkDir" | $SED 's/\\\\* *$//'`
WINDOWSSDKDIR=`$ECHO "$WINDOWSSDKDIR" | $SED 's/\\\\* *$//'`
if test -z "$WINDOWSSDKDIR"; then
WINDOWSSDKDIR="$WindowsSdkDir"
fi
# Remove any paths containing # (typically F#) as that messes up make. This
# is needed if visual studio was installed with F# support.
VS_PATH=`$ECHO "$VS_PATH" | $SED 's/[[^:#]]*#[^:]*://g'`
AC_SUBST(VS_PATH)
AC_SUBST(VS_INCLUDE)
AC_SUBST(VS_LIB)
# Convert VS_INCLUDE into SYSROOT_CFLAGS
OLDIFS="$IFS"
IFS=";"
for i in $VS_INCLUDE; do
ipath=$i
# Only process non-empty elements
if test "x$ipath" != x; then
IFS="$OLDIFS"
# Check that directory exists before calling fixup_path
testpath=$ipath
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([testpath])
if test -d "$testpath"; then
BASIC_FIXUP_PATH([ipath])
SYSROOT_CFLAGS="$SYSROOT_CFLAGS -I$ipath"
fi
IFS=";"
fi
done
# Convert VS_LIB into SYSROOT_LDFLAGS
for i in $VS_LIB; do
libpath=$i
# Only process non-empty elements
if test "x$libpath" != x; then
IFS="$OLDIFS"
# Check that directory exists before calling fixup_path
testpath=$libpath
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH([testpath])
if test -d "$testpath"; then
BASIC_FIXUP_PATH([libpath])
SYSROOT_LDFLAGS="$SYSROOT_LDFLAGS -libpath:$libpath"
fi
IFS=";"
fi
done
IFS="$OLDIFS"
fi
else
AC_MSG_RESULT([not found])
if test "x$VS_ENV_CMD" = x; then
AC_MSG_NOTICE([Cannot locate a valid Visual Studio or Windows SDK installation on disk,])
AC_MSG_NOTICE([nor is this script run from a Visual Studio command prompt.])
else
AC_MSG_NOTICE([Running the extraction script failed.])
fi
AC_MSG_NOTICE([Try setting --with-tools-dir to the VC/bin directory within the VS installation])
AC_MSG_NOTICE([or run "bash.exe -l" from a VS command prompt and then run configure from there.])
AC_MSG_ERROR([Cannot continue])
fi
])
AC_DEFUN([TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL],
[
DLL_NAME="$1"
POSSIBLE_MSVC_DLL="$2"
METHOD="$3"
if test -n "$POSSIBLE_MSVC_DLL" -a -e "$POSSIBLE_MSVC_DLL"; then
AC_MSG_NOTICE([Found $DLL_NAME at $POSSIBLE_MSVC_DLL using $METHOD])
# Need to check if the found msvcr is correct architecture
AC_MSG_CHECKING([found $DLL_NAME architecture])
MSVC_DLL_FILETYPE=`$FILE -b "$POSSIBLE_MSVC_DLL"`
if test "x$OPENJDK_BUILD_OS_ENV" = "xwindows.msys"; then
# The MSYS 'file' command returns "PE32 executable for MS Windows (DLL) (GUI) Intel 80386 32-bit"
# on x32 and "PE32+ executable for MS Windows (DLL) (GUI) Mono/.Net assembly" on x64 systems.
if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
CORRECT_MSVCR_ARCH="PE32 executable"
else
CORRECT_MSVCR_ARCH="PE32+ executable"
fi
else
if test "x$OPENJDK_TARGET_CPU_BITS" = x32; then
CORRECT_MSVCR_ARCH=386
else
CORRECT_MSVCR_ARCH=x86-64
fi
fi
if $ECHO "$MSVC_DLL_FILETYPE" | $GREP "$CORRECT_MSVCR_ARCH" 2>&1 > /dev/null; then
AC_MSG_RESULT([ok])
MSVC_DLL="$POSSIBLE_MSVC_DLL"
AC_MSG_CHECKING([for $DLL_NAME])
AC_MSG_RESULT([$MSVC_DLL])
else
AC_MSG_RESULT([incorrect, ignoring])
AC_MSG_NOTICE([The file type of the located $DLL_NAME is $MSVC_DLL_FILETYPE])
fi
fi
])
AC_DEFUN([TOOLCHAIN_SETUP_MSVC_DLL],
[
DLL_NAME="$1"
MSVC_DLL=
if test "x$MSVC_DLL" = x; then
if test "x$VCINSTALLDIR" != x; then
CYGWIN_VC_INSTALL_DIR="$VCINSTALLDIR"
BASIC_FIXUP_PATH(CYGWIN_VC_INSTALL_DIR)
if test "$VS_VERSION" -lt 2017; then
# Probe: Using well-known location from Visual Studio 12.0 and older
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
POSSIBLE_MSVC_DLL="$CYGWIN_VC_INSTALL_DIR/redist/x64/Microsoft.VC${VS_VERSION_INTERNAL}.CRT/$DLL_NAME"
else
POSSIBLE_MSVC_DLL="$CYGWIN_VC_INSTALL_DIR/redist/x86/Microsoft.VC${VS_VERSION_INTERNAL}.CRT/$DLL_NAME"
fi
else
# Probe: Using well-known location from VS 2017
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
POSSIBLE_MSVC_DLL="`ls $CYGWIN_VC_INSTALL_DIR/Redist/MSVC/*/x64/Microsoft.VC${VS_VERSION_INTERNAL}.CRT/$DLL_NAME`"
else
POSSIBLE_MSVC_DLL="`ls $CYGWIN_VC_INSTALL_DIR/Redist/MSVC/*/x86/Microsoft.VC${VS_VERSION_INTERNAL}.CRT/$DLL_NAME`"
fi
fi
# In case any of the above finds more than one file, loop over them.
for possible_msvc_dll in $POSSIBLE_MSVC_DLL; do
$ECHO "POSSIBLE_MSVC_DLL $possible_msvc_dll"
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$possible_msvc_dll],
[well-known location in VCINSTALLDIR])
done
fi
fi
if test "x$MSVC_DLL" = x; then
# Probe: Check in the Boot JDK directory.
POSSIBLE_MSVC_DLL="$BOOT_JDK/bin/$DLL_NAME"
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[well-known location in Boot JDK])
fi
if test "x$MSVC_DLL" = x; then
# Probe: Look in the Windows system32 directory
CYGWIN_SYSTEMROOT="$SYSTEMROOT"
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(CYGWIN_SYSTEMROOT)
POSSIBLE_MSVC_DLL="$CYGWIN_SYSTEMROOT/system32/$DLL_NAME"
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[well-known location in SYSTEMROOT])
fi
if test "x$MSVC_DLL" = x; then
# Probe: If Visual Studio Express is installed, there is usually one with the debugger
if test "x$VS100COMNTOOLS" != x; then
CYGWIN_VS_TOOLS_DIR="$VS100COMNTOOLS/.."
BASIC_WINDOWS_REWRITE_AS_UNIX_PATH(CYGWIN_VS_TOOLS_DIR)
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VS_TOOLS_DIR" -name $DLL_NAME \
| $GREP -i /x64/ | $HEAD --lines 1`
else
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VS_TOOLS_DIR" -name $DLL_NAME \
| $GREP -i /x86/ | $HEAD --lines 1`
fi
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[search of VS100COMNTOOLS])
fi
fi
if test "x$MSVC_DLL" = x; then
# Probe: Search wildly in the VCINSTALLDIR. We've probably lost by now.
# (This was the original behaviour; kept since it might turn something up)
if test "x$CYGWIN_VC_INSTALL_DIR" != x; then
if test "x$OPENJDK_TARGET_CPU_BITS" = x64; then
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
| $GREP x64 | $HEAD --lines 1`
else
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
| $GREP x86 | $GREP -v ia64 | $GREP -v x64 | $HEAD --lines 1`
if test "x$POSSIBLE_MSVC_DLL" = x; then
# We're grasping at straws now...
POSSIBLE_MSVC_DLL=`$FIND "$CYGWIN_VC_INSTALL_DIR" -name $DLL_NAME \
| $HEAD --lines 1`
fi
fi
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL([$DLL_NAME], [$POSSIBLE_MSVC_DLL],
[search of VCINSTALLDIR])
fi
fi
if test "x$MSVC_DLL" = x; then
AC_MSG_CHECKING([for $DLL_NAME])
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find $DLL_NAME. Please specify using --with-msvcr-dll.])
fi
])
AC_DEFUN([TOOLCHAIN_SETUP_VS_RUNTIME_DLLS],
[
AC_ARG_WITH(msvcr-dll, [AS_HELP_STRING([--with-msvcr-dll],
[path to microsoft C runtime dll (msvcr*.dll) (Windows only) @<:@probed@:>@])])
if test "x$with_msvcr_dll" != x; then
# If given explicitly by user, do not probe. If not present, fail directly.
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCR_NAME, [$with_msvcr_dll], [--with-msvcr-dll])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $MSVCR_NAME as specified by --with-msvcr-dll])
fi
MSVCR_DLL="$MSVC_DLL"
elif test "x$DEVKIT_MSVCR_DLL" != x; then
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCR_NAME, [$DEVKIT_MSVCR_DLL], [devkit])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $MSVCR_NAME as specified by devkit])
fi
MSVCR_DLL="$MSVC_DLL"
else
TOOLCHAIN_SETUP_MSVC_DLL([${MSVCR_NAME}])
MSVCR_DLL="$MSVC_DLL"
fi
AC_SUBST(MSVCR_DLL)
AC_ARG_WITH(msvcp-dll, [AS_HELP_STRING([--with-msvcp-dll],
[path to microsoft C++ runtime dll (msvcp*.dll) (Windows only) @<:@probed@:>@])])
if test "x$MSVCP_NAME" != "x"; then
if test "x$with_msvcp_dll" != x; then
# If given explicitly by user, do not probe. If not present, fail directly.
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCP_NAME, [$with_msvcp_dll], [--with-msvcp-dll])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $MSVCP_NAME as specified by --with-msvcp-dll])
fi
MSVCP_DLL="$MSVC_DLL"
elif test "x$DEVKIT_MSVCP_DLL" != x; then
TOOLCHAIN_CHECK_POSSIBLE_MSVC_DLL($MSVCP_NAME, [$DEVKIT_MSVCP_DLL], [devkit])
if test "x$MSVC_DLL" = x; then
AC_MSG_ERROR([Could not find a proper $MSVCP_NAME as specified by devkit])
fi
MSVCP_DLL="$MSVC_DLL"
else
TOOLCHAIN_SETUP_MSVC_DLL([${MSVCP_NAME}])
MSVCP_DLL="$MSVC_DLL"
fi
AC_SUBST(MSVCP_DLL)
fi
AC_ARG_WITH(ucrt-dll-dir, [AS_HELP_STRING([--with-ucrt-dll-dir],
[path to Microsoft Windows Kit UCRT DLL dir (Windows only) @<:@probed@:>@])])
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
AC_MSG_RESULT([no])
AC_MSG_ERROR([Could not find any dlls in $with_ucrt_dll_dir])
else
AC_MSG_RESULT([$with_ucrt_dll_dir])
UCRT_DLL_DIR="$with_ucrt_dll_dir"
BASIC_FIXUP_PATH([UCRT_DLL_DIR])
fi
elif test "x$DEVKIT_UCRT_DLL_DIR" != "x"; then
UCRT_DLL_DIR="$DEVKIT_UCRT_DLL_DIR"
AC_MSG_RESULT($UCRT_DLL_DIR)
else
CYGWIN_WINDOWSSDKDIR="${WINDOWSSDKDIR}"
BASIC_FIXUP_PATH([CYGWIN_WINDOWSSDKDIR])
dll_subdir=$OPENJDK_TARGET_CPU
if test "x$dll_subdir" = "xx86_64"; then
dll_subdir="x64"
fi
UCRT_DLL_DIR="$CYGWIN_WINDOWSSDKDIR/Redist/ucrt/DLLs/$dll_subdir"
if 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
fi
else
UCRT_DLL_DIR=
fi
AC_SUBST(UCRT_DLL_DIR)
])

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