Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge lworld #287

Closed
Changes from all commits
Commits
Show all changes
152 commits
Select commit Hold shift + click to select a range
b0b9dd2
8256318: AArch64: Add support for floating-point absolute difference
Nov 18, 2020
9707496
8256479: [PPC64] C2 crashes when UseVectorByteReverseInstructionsPPC6…
TheRealMDoerr Nov 18, 2020
d2ddf07
8256477: Specialize heap memory segment implementations
mcimadamore Nov 18, 2020
f7f3447
8256453: C2: Reduce State footprint
cl4es Nov 18, 2020
5bcf898
8256478: C2 compilation fails with assert(t1->isa_long()) failed: Typ…
TobiHartmann Nov 18, 2020
f504f41
8256385: C2: fatal error: modified node is not on IGVN._worklist
TobiHartmann Nov 18, 2020
eab170c
8256415: Shenandoah: Should evacuate/update codecache concurrently wh…
zhengyu123 Nov 18, 2020
486d6f6
8256363: Define toString() for MGF1ParameterSpec
wangweij Nov 18, 2020
4e5116c
8256501: libTestMainKeyWindow fails to build with Xcode 12.2
erikj79 Nov 18, 2020
fa8dce4
8256365: Clean up vtable initialization code
coleenp Nov 18, 2020
50a2c22
8253742: POSIX signal code cleanup
Nov 18, 2020
1707d5c
8238174: migrate ObjectMonitor::_owner field away from C++ volatile s…
Nov 18, 2020
33d3918
8256565: ProblemList jdk/jfr/api/recording/event/TestReEnableName.jav…
Nov 18, 2020
c9c1573
8256567: ProblemList java/util/stream/test/org/openjdk/tests/java/uti…
Nov 18, 2020
300cbaa
8256418: Jittester make build is broken.
lmesnik Nov 18, 2020
03e84ef
8256189: Exact VarHandle tests should test withInvokeBehavior() works…
JornVernee Nov 18, 2020
3110d58
8256538: Fix annoying awk warning in configure for java versions
magicus Nov 18, 2020
5912df2
8256427: Test com/sun/jndi/dns/ConfigTests/PortUnreachable.java does …
RealCLanger Nov 18, 2020
646c200
8256152: tests fail because of ambiguous method resolution
Nov 18, 2020
99eac53
8225631: Consider replacing muxAcquire/Release with PlatformMonitor
Nov 18, 2020
2b15571
8256383: PlatformMutex::try_lock has different semantics on Windows a…
Nov 18, 2020
cfa92a5
8256178: Add RAII object for file lock
YaSuenag Nov 19, 2020
4178834
8256172: Clean up CDS handling of i2i_entry
iklam Nov 19, 2020
8e241b5
8256552: Let ReplayCompiles set UseDebuggerErgo
Nov 19, 2020
cb2676c
8256499: Zero: enable Epsilon GC
shipilev Nov 19, 2020
9fe2d31
8252304: Seed an HttpRequest.Builder from an existing HttpRequest
pconcannon Nov 19, 2020
6702910
8256375: AArch64: aarch64-asmtest.py may generate undefined register r18
Nov 19, 2020
f626ed6
8255978: [windows] os::release_memory may not release the full range
tstuefe Nov 19, 2020
d183fc7
8221554: aarch64 cross-modifying code
a74nh Nov 19, 2020
342ccf6
8256253: Defer Biased Locking obsoletion to JDK 18
pchilano Nov 19, 2020
3a4b90f
8202343: Disable TLS 1.0 and 1.1
seanjmullan Nov 19, 2020
ba721f5
8212879: Make JVMTI TagMap table concurrent
coleenp Nov 19, 2020
675d1d5
8256516: Simplify clearing References
Nov 19, 2020
580f22c
8256581: Refactor vector conversion tests
Nov 19, 2020
9bb8223
8253299: Manifest bytes are read twice when verifying a signed JAR
Nov 19, 2020
1718aba
8227400: Adjust jib profiles to make 3rd party tools for creating ins…
Nov 19, 2020
defdd12
8142984: Zero: fast accessors should handle both getters and setters
shipilev Nov 19, 2020
b8244b6
8236926: Concurrently uncommit memory in G1
kstefanj Nov 19, 2020
b9db002
8256682: JDK-8202343 is incomplete
seanjmullan Nov 19, 2020
080c707
8253459: Formatter treats index, width and precision > Integer.MAX_VA…
Nov 19, 2020
c140773
8256692: Zero: remove obsolete block from ZeroInterpreter::native_entry
shipilev Nov 19, 2020
fae68ff
8256640: assert(!m->is_old() || ik()->is_being_redefined()) failed: o…
coleenp Nov 19, 2020
c816464
4916923: In MetalRootPaneUI, MetalRootLayout does not correctly calcu…
mrserb Nov 19, 2020
6813889
8251317: Support for CLDR version 38
naotoj Nov 19, 2020
4c09525
8256108: Create implementation for NSAccessibilityElement protocol peer
Nov 20, 2020
fa240f2
8256594: Unexpected warning: SIGSEGV handler flags expected:SA_RESTAR…
Nov 20, 2020
02adaa5
8255885: Metaspace: freelist commit counter is not updated when purging
tstuefe Nov 20, 2020
5fedb69
8250888: nsk/jvmti/scenarios/general_functions/GF08/gf08t001/TestDriv…
lgxbslgx Nov 20, 2020
c45ab1a
8256393: Github Actions build on Linux should define OS and GCC versions
rwestberg Nov 20, 2020
8e7a855
8255526: Enable jcheck whitespace checking of build system files
magicus Nov 20, 2020
f576628
8256633: Fix product build on Windows+Arm64
lewurm Nov 20, 2020
a25fb03
8256406: G1 x86 C1/Interpreter post write barrier always uses 32 bit …
Nov 20, 2020
eb35ade
6232281: -XX:-UseLoopSafepoints causes assert(v_false,"Parse::remove_…
robcasloz Nov 20, 2020
10ba541
8256727: ZGC: Clean out dead code after JDK-8212879
stefank Nov 20, 2020
aeba925
8256416: ZGC: Lower ZMarkCompleteTimeout
pliden Nov 20, 2020
266dea0
8256688: Shenandoah: Lock rank inversion after JDK-8212879
zhengyu123 Nov 20, 2020
b99fd4c
8033441: print line numbers with -XX:+PrintOptoAssembly
Nov 20, 2020
98a5d5a
8256664: Shenandoah: Cleanup after JDK-8212879
zhengyu123 Nov 20, 2020
e7c7469
8246378: [Windows] assert on MethodHandle logging code
coleenp Nov 20, 2020
ff00c59
8256569: Add C2 compiler stress flags to CTW
iignatev Nov 20, 2020
2ae3e51
8229845: Decrease memory consumption of BigInteger.toString()
Nov 20, 2020
11bfdc5
8235304: JPackage Windows test should be added to set Publisher
Nov 20, 2020
2c3a2be
8211449: Correction to the spec of implicit negative subpattern in De…
naotoj Nov 20, 2020
4dd71ae
8256803: ProblemList runtime/ReservedStack/ReservedStackTestCompiler.…
Nov 20, 2020
19b2898
8256751: Incremental rebuild with precompiled header fails when touch…
erikj79 Nov 20, 2020
cc0ed40
8037384: Fix wording in Javadoc of java.io.Serializable
Nov 20, 2020
5ad1e22
8256658: Shenandoah: Deadlock between nmethod_entry_barrier and concu…
zhengyu123 Nov 20, 2020
8d9cf48
8255908: ExceptionInInitializerError due to UncheckedIOException whil…
Nov 20, 2020
b21b96d
8256507: Add a micro benchmark for JDK-8153005
wangweij Nov 20, 2020
be6c893
8256183: InputStream.skipNBytes is missing @since 12
c-cleary Nov 20, 2020
e6fa85b
8256058: Improve vector register handling in RegisterMap::pd_location…
Nov 20, 2020
503590f
8256056: Deoptimization stub doesn't save vector registers on x86
Nov 20, 2020
f79e9d4
8256061: RegisterSaver::save_live_registers() omits upper halves of Z…
Nov 20, 2020
41c0587
8255367: C2: Deoptimization during vector box construction is broken
Nov 20, 2020
57025e6
8256073: Improve vector rematerialization support
Nov 20, 2020
86f3602
8256806: Shenandoah: optimize shenandoah/jni/TestPinnedGarbage.java test
shipilev Nov 20, 2020
14de791
8255934: JConsole 14 and greater fails to connect to older JVM
Nov 20, 2020
9a19eb6
8254105: allow static nested declarations
Nov 21, 2020
edf72f0
8256824: test/langtools/tools/javac/diags/examples/InnerClassCantHave…
Nov 21, 2020
1aa90ac
8256822: runtime/logging/RedefineClasses.java fails with "Error: VM o…
coleenp Nov 21, 2020
d46f6f5
8256523: Streamline Java SHA2 implementation
shipilev Nov 22, 2020
037e49c
8256670: Zero: enable compressed oops support back
shipilev Nov 22, 2020
e06a683
8256497: Zero: enable G1 and Shenandoah GCs
shipilev Nov 22, 2020
659aec8
8256719: C1 flags that should have expired are still present
TobiHartmann Nov 23, 2020
1f32c11
8256740: ZGC: Move closures out of zOopClosure files
stefank Nov 23, 2020
e4a32be
8251925: C2: RenaissanceStressTest fails with assert(!had_error): bad…
chhagedorn Nov 23, 2020
69c3470
8252973: ZGC: Implement Large Pages support on Windows
stefank Nov 23, 2020
65b77d5
8256738: Compiler interface clean-up
cl4es Nov 23, 2020
c0689d2
8256741: Reduce footprint of compiler interface data structures
cl4es Nov 23, 2020
b450e7c
8256827: C2: Avoid reallocations by pre-sizing lists in post_allocate…
cl4es Nov 23, 2020
53f3835
8256419: ZGC: Remove "Heap Used Before/After Mark/Relocation" samplers
pliden Nov 23, 2020
0fb31db
8254231: Implementation of Foreign Linker API (Incubator)
mcimadamore Nov 23, 2020
b0485b9
8256240: Reproducible builds should turn on the "deterministic" flag …
magicus Nov 23, 2020
5ed7044
8256154: Some TestNG tests require default constructors
c-cleary Nov 23, 2020
895cc4f
8255675: Typo in java.net.HttpURLConnection
anupamdev20 Nov 23, 2020
84429cd
8249144: Potential memory leak in TypedMethodOptionMatcher
zhengyu123 Nov 23, 2020
884b9ff
8256485: Zero VM build broken after JDK-8254231
JornVernee Nov 23, 2020
aabc9ca
8255678: Add Mutex::try_lock version without rank checks
pchilano Nov 23, 2020
8ddf5e1
8256809: Annotation processing causes NPE during flow analysis
ebaron Nov 23, 2020
ae0ca74
8247432: Update IANA Language Subtag Registry to Version 2020-09-29
naotoj Nov 23, 2020
042734c
8251549: Update docs on building for Git
jddarcy Nov 23, 2020
18e8506
8256860: S390 builds broken after JDK-8254231
shipilev Nov 23, 2020
9de5d09
8256585: Remove in-place conversion vector operators from Vector API
Nov 23, 2020
fa75ad6
8256725: Metaspace: better blocktree and binlist asserts
tstuefe Nov 23, 2020
aac5c2a
8255984: Shenandoah: "adaptive" heuristic is prone to missing load sp…
earthling-amzn Nov 23, 2020
d9ae0db
8256746: gc/CriticalNativeArgs.java fails without -XX:-CriticalJNINat…
shipilev Nov 23, 2020
7551c68
8256675: Zero: purge biased locking support
shipilev Nov 23, 2020
47a78e8
8256829: GNU hash style is not available on MIPS
shipilev Nov 23, 2020
b50b99d
8256825: Cleanup WeakProcessorPhaseTimes
Nov 23, 2020
b3497f9
8256839: JavaDoc for java.time.Period.negated() method
naotoj Nov 23, 2020
1df94c9
8256912: Zero builds fail after JDK-8255984
shipilev Nov 23, 2020
372595c
8256390: ZGC: Relocate in-place instead of having a heap reserve
pliden Nov 23, 2020
67a9590
8256614: AArch64: Add SVE backend implementation for integer min/max
Nov 24, 2020
cc96b0a
8256813: Simplify WeakProcessor counting of OopStorage entries
Nov 24, 2020
e838d71
8256722: handle VC++:1927 VS2019 in abstract_vm_version
Nov 24, 2020
b52f6c0
8256736: Zero: GTest tests fail with "unsuppported vm variant"
shipilev Nov 24, 2020
9108c12
8256929: [lworld] Fails to compile with --with-debug-level=optimized
Nov 24, 2020
f8d7c5a
8256922: ppc, ppcle build broken after JDK-8254231
tstuefe Nov 24, 2020
8f7caa4
8256857: ARM32 builds broken after JDK-8254231
shipilev Nov 24, 2020
9e4944f
8256308: Send arguments to javac server in a config file
magicus Nov 24, 2020
7b3d095
8256618: Zero: Linux x86_32 build still fails
shipilev Nov 24, 2020
f55ae95
8256858: C2: Devirtualize PhaseIterGVN-specific methods
cl4es Nov 24, 2020
fa3cfcd
8256883: C2: Add a RegMask iterator
cl4es Nov 24, 2020
303631e
8256475: Fix Behavior when Installer name differs from application name.
Nov 24, 2020
ff6df15
8256801: tools/jpackage/share/FileAssociationsTest.java#id0 failed un…
Nov 24, 2020
3b3e90e
8256924: ppc, ppcle, s390: JVM crashes at VM init after JDK-8254231
TheRealMDoerr Nov 24, 2020
1c4c99e
8256823: C2 compilation fails with "assert(isShiftCount(imm8 >> 1)) f…
TobiHartmann Nov 24, 2020
bd14274
8256480: Refactor ObjectInputStream field reader implementation
Nov 24, 2020
f1d6e8d
8256387: Unexpected result if patching an entire instruction on AArch64
Nov 24, 2020
2a1e9be
8256364: vmTestbase/nsk/jvmti/scenarios/capability/CM01/cm01t002 fail…
Nov 24, 2020
dbfeb90
8243559: Remove root certificates with 1024-bit keys
seanjmullan Nov 24, 2020
695117f
8255479: [aarch64] assert(src->section_index_of(target) == CodeBuffer…
Nov 24, 2020
1b7a61f
8254999: Move G1RemSetSamplingTask to more appropriate location
kstefanj Nov 24, 2020
3c230b8
8256993: Clarify Package::isSealed javadoc about package sealing vs s…
Nov 24, 2020
66943fe
8256517: (ref) Reference.clear during reference processing may lose n…
Nov 25, 2020
0d91f0a
8252848: Optimize small primitive arrayCopy operations through partia…
Nov 25, 2020
79e57ac
8256643: Terminally deprecate ThreadGroup stop, destroy, isDestroyed,…
Nov 25, 2020
c45725e
8256747: GitHub Actions: decouple the hotspot build-only jobs from Li…
rwestberg Nov 25, 2020
cdb41ba
8255904: Remove superfluous use of reflection in Class::isRecord
ChrisHegarty Nov 25, 2020
8cd2e0f
8243315: ParallelScavengeHeap::initialize() passes GenAlignment as pa…
jaokim Nov 25, 2020
9aeadbb
8256865: Foreign Memory Access and Linker API are missing NPE checks
mcimadamore Nov 25, 2020
b0bd0c2
8256755: Update build.tools.depend.Depend to handle record components…
ChrisHegarty Nov 25, 2020
911f16d
8257056: Submit workflow should apt-get update to avoid package insta…
shipilev Nov 25, 2020
26e6cb3
8256489: Make gtest for long path names on Windows more resilient in …
schmelter-sap Nov 25, 2020
7aed9b6
8256016: Dacapo24H.java failed with "assert(false) failed: unscheduab…
chhagedorn Nov 25, 2020
89dde2a
8257154: [lworld] AndLNode::Identity optimization does not handle top…
TobiHartmann Nov 26, 2020
c2b5f11
8251966: [lworld] TestArrays.java fails with -XX:+ExpandSubTypeCheckA…
TobiHartmann Nov 26, 2020
41ee0c8
8257166: [lworld] CCP fails to optimize FlatArrayCheckNode
TobiHartmann Nov 27, 2020
7a8c405
8257446: [lworld] VM flag PrintInlineLayout doesn't work anymore
fparain Nov 30, 2020
1abd037
[lworld] Missed disabling testcase that does not pack well with -XX:…
Dec 1, 2020
8efeb68
Merge jdk
Dec 2, 2020
61afcfe
Merge branch 'lworld' into type-restrictions_merge_jdk_16_26
MrSimms Dec 2, 2020
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
40 changes: 14 additions & 26 deletions .github/workflows/submit.yml
Original file line number Diff line number Diff line change
@@ -17,7 +17,7 @@ on:
jobs:
prerequisites:
name: Prerequisites
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
outputs:
should_run: ${{ steps.check_submit.outputs.should_run }}
bundle_id: ${{ steps.check_bundle_id.outputs.bundle_id }}
@@ -81,7 +81,7 @@ jobs:
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'

- name: Build jtreg
run: sh make/build-all.sh ${JAVA_HOME}
run: sh make/build-all.sh ${JAVA_HOME_8_X64}
working-directory: jtreg
if: steps.check_submit.outputs.should_run != 'false' && steps.jtreg.outputs.cache-hit != 'true'

@@ -99,7 +99,7 @@ jobs:

linux_x64_build:
name: Linux x64
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
needs: prerequisites
if: needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_x64 != 'false'

@@ -109,22 +109,10 @@ jobs:
flavor:
- build release
- build debug
- build hotspot no-pch
- build hotspot minimal
- build hotspot optimized
include:
- flavor: build debug
flags: --enable-debug
artifact: -debug
- flavor: build hotspot no-pch
flags: --enable-debug --disable-precompiled-headers
build-target: hotspot
- flavor: build hotspot minimal
flags: --enable-debug --disable-precompiled-headers --with-jvm-variants=minimal
build-target: hotspot
- flavor: build hotspot optimized
flags: --with-debug-level=optimized --disable-precompiled-headers
build-target: hotspot

env:
JDK_VERSION: "${{ fromJson(needs.prerequisites.outputs.dependencies).DEFAULT_VERSION_FEATURE }}"
@@ -178,7 +166,10 @@ jobs:
path: gtest

- name: Install dependencies
run: sudo apt-get install libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
run: |
sudo apt-get update
sudo apt-get install gcc-10=10.2.0-5ubuntu1~20.04 g++-10=10.2.0-5ubuntu1~20.04 libxrandr-dev libxtst-dev libcups2-dev libasound2-dev
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10

- name: Configure
run: >
@@ -196,7 +187,7 @@ jobs:
working-directory: jdk

- name: Build
run: make CONF_NAME=linux-x64 ${{ matrix.build-target }}
run: make CONF_NAME=linux-x64
working-directory: jdk

- name: Persist test bundles
@@ -206,11 +197,10 @@ jobs:
path: |
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin${{ matrix.artifact }}.tar.gz
jdk/build/linux-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin-tests${{ matrix.artifact }}.tar.gz
if: matrix.build-target == false

linux_x64_test:
name: Linux x64
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
needs:
- prerequisites
- linux_x64_build
@@ -471,8 +461,8 @@ jobs:

- name: Ensure a specific version of MSVC is installed
run: >
Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList
'modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" --quiet
Start-Process -FilePath 'C:\Program Files (x86)\Microsoft Visual Studio\Installer\vs_installer.exe' -Wait -NoNewWindow -ArgumentList
'modify --installPath "C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise" --quiet
--add Microsoft.VisualStudio.Component.VC.14.27.x86.x64'

- name: Configure
@@ -497,7 +487,7 @@ jobs:
run: |
$env:Path = "$HOME\cygwin\cygwin64\bin;$HOME\cygwin\cygwin64\bin;$env:Path" ;
$env:Path = $env:Path -split ";" -match "C:\\Windows|PowerShell|cygwin" -join ";" ;
& make CONF_NAME=windows-x64 ${{ matrix.build-target }}
& make CONF_NAME=windows-x64
working-directory: jdk

- name: Persist test bundles
@@ -508,7 +498,6 @@ jobs:
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}.zip
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin-tests${{ matrix.artifact }}.tar.gz
jdk/build/windows-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_windows-x64_bin${{ matrix.artifact }}-symbols.tar.gz
if: matrix.build-target == false

windows_x64_test:
name: Windows x64
@@ -802,7 +791,7 @@ jobs:
working-directory: jdk

- name: Build
run: make CONF_NAME=macos-x64 ${{ matrix.build-target }}
run: make CONF_NAME=macos-x64
working-directory: jdk

- name: Persist test bundles
@@ -812,7 +801,6 @@ jobs:
path: |
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin${{ matrix.artifact }}.tar.gz
jdk/build/macos-x64/bundles/jdk-${{ env.JDK_VERSION }}-internal+0_osx-x64_bin-tests${{ matrix.artifact }}.tar.gz
if: matrix.build-target == false

macos_x64_test:
name: macOS x64
@@ -1001,7 +989,7 @@ jobs:

artifacts:
name: Post-process artifacts
runs-on: "ubuntu-latest"
runs-on: "ubuntu-20.04"
if: always()
continue-on-error: true
needs:
3 changes: 2 additions & 1 deletion .jcheck/conf
Original file line number Diff line number Diff line change
@@ -10,7 +10,8 @@ version=0
domain=openjdk.org

[checks "whitespace"]
files=.*\.cpp|.*\.hpp|.*\.c|.*\.h|.*\.java|.*\.cc|.*\.hh|.*\.m|.*\.mm
files=.*\.cpp|.*\.hpp|.*\.c|.*\.h|.*\.java|.*\.cc|.*\.hh|.*\.m|.*\.mm|.*\.gmk|.*\.m4|.*\.ac|Makefile
ignore-tabs=.*\.gmk|Makefile

[checks "committer"]
role=committer
87 changes: 31 additions & 56 deletions doc/building.md
Original file line number Diff line number Diff line change
@@ -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 Mercurial (and Cygwin if running
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.

1. [Get the complete source code](#getting-the-source-code): \
`hg clone http://hg.openjdk.java.net/jdk/jdk`
`git clone https://git.openjdk.java.net/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 Mercurial server](http://hg.openjdk.java.net/) you
repository. At the [OpenJDK Git site](https://git.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.
e.g. JDK 11, it is recommended that you get the `jdk11u` repo, which contains
incremental updates, instead of the `jdk11` repo, which was frozen at JDK 11 GA.

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.
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.

### Special Considerations

@@ -89,9 +89,21 @@ 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.

* 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.
* 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).

Failure to follow this procedure might result in hard-to-debug build
problems.
@@ -173,7 +185,7 @@ 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/hg/jdk9/Makefile` rather than `C:\hg\jdk9\Makefile`. This
e.g. `/cygdrive/c/git/jdk/Makefile` rather than `C:\git\jdk\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
@@ -1286,14 +1298,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/hg/jdk9-sandbox/hotspot/src/share/vm/services/psMemoryPool.cpp:1:1: error: 'failhere' does not name a type
/localhome/git/jdk-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/hg/jdk9-sandbox/build/linux-x64/make-support/failure-logs.
* All command lines available in /localhome/git/jdk-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/hg/jdk9-sandbox/build/linux-x64/hotspot/variant-server/libjvm/objs/psMemoryPool.o' failed
lib/CompileJvm.gmk:207: recipe for target '/localhome/git/jdk-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 ===

@@ -1391,7 +1403,7 @@ order. Most issues will be solved at step 1 or 2.

1. Make sure your repository is up-to-date

Run `hg pull -u` to make sure you have the latest changes.
Run `git pull origin master` to make sure you have the latest changes.

2. Clean build results

@@ -1416,13 +1428,13 @@ order. Most issues will be solved at step 1 or 2.
make
```

4. Re-clone the Mercurial repository
4. Re-clone the Git repository

Sometimes the Mercurial repository gets in a state that causes the product
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
"sledgehammer approach": delete the entire repository, and re-clone it.
If you have local changes, save them first to a different location using
`hg export`.
`git format-patch`.

### Specific Build Issues

@@ -1467,33 +1479,6 @@ 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
@@ -1634,16 +1619,6 @@ 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
4 changes: 2 additions & 2 deletions make/autoconf/boot-jdk.m4
Original file line number Diff line number Diff line change
@@ -75,7 +75,7 @@ AC_DEFUN([BOOTJDK_DO_CHECK],
else
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
# Additional [] needed to keep m4 from mangling shell constructs.
[ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $AWK '/version \"[0-9a-zA-Z\._\-]+\"/{print $ 0; exit;}'` ]
[ BOOT_JDK_VERSION=`"$BOOT_JDK/bin/java$EXE_SUFFIX" $USER_BOOT_JDK_OPTIONS -version 2>&1 | $AWK '/version "[0-9a-zA-Z\._\-]+"/ {print $ 0; exit;}'` ]
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".])
@@ -516,7 +516,7 @@ AC_DEFUN([BOOTJDK_CHECK_BUILD_JDK],
else
# Oh, this is looking good! We probably have found a proper JDK. Is it the correct version?
# Additional [] needed to keep m4 from mangling shell constructs.
[ BUILD_JDK_VERSION=`"$BUILD_JDK/bin/java" -version 2>&1 | $AWK '/version \"[0-9a-zA-Z\._\-]+\"/{print $ 0; exit;}'` ]
[ BUILD_JDK_VERSION=`"$BUILD_JDK/bin/java" -version 2>&1 | $AWK '/version "[0-9a-zA-Z\._\-]+"/ {print $ 0; exit;}'` ]

# Extra M4 quote needed to protect [] in grep expression.
[FOUND_CORRECT_VERSION=`echo $BUILD_JDK_VERSION | $EGREP "\"$VERSION_FEATURE([\.+-].*)?\""`]
4 changes: 2 additions & 2 deletions make/autoconf/configure.ac
Original file line number Diff line number Diff line change
@@ -203,7 +203,8 @@ FLAGS_POST_TOOLCHAIN
PLATFORM_SETUP_OPENJDK_TARGET_BITS
PLATFORM_SETUP_OPENJDK_TARGET_ENDIANNESS

# Configure flags for the tools
# Configure flags for the tools. Need to know if we should build reproducible.
JDKOPT_SETUP_REPRODUCIBLE_BUILD
FLAGS_SETUP_FLAGS

# Setup debug symbols (need objcopy from the toolchain for that)
@@ -247,7 +248,6 @@ JDKOPT_ENABLE_DISABLE_GENERATE_CLASSLIST
JDKOPT_EXCLUDE_TRANSLATIONS
JDKOPT_ENABLE_DISABLE_MANPAGES
JDKOPT_ENABLE_DISABLE_CDS_ARCHIVE
JDKOPT_SETUP_REPRODUCIBLE_BUILD

###############################################################################
#
Loading