Skip to content

Commit 602113a

Browse files
authored
Merge pull request #11166 from sharon-wang/mixedbuild_cmake
Add support for mixed references mode in CMake builds
2 parents 13ad3c7 + ae0f27d commit 602113a

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+940
-75
lines changed

buildenv/jenkins/jobs/pipelines/Pipeline-Build-Test-All.groovy

+16
Original file line numberDiff line numberDiff line change
@@ -74,37 +74,43 @@ SPECS = ['ppc64_aix' : CURRENT_RELEASES,
7474
'ppc64_aix_xl' : CURRENT_RELEASES,
7575
'ppc64_aix_xl_cm' : CURRENT_RELEASES,
7676
'ppc64_aix_xl_uma' : CURRENT_RELEASES,
77+
'ppc64_aix_mixed_cm' : CURRENT_RELEASES,
7778
'ppc64le_linux' : CURRENT_RELEASES,
7879
'ppc64le_linux_cm' : CURRENT_RELEASES - '11',
7980
'ppc64le_linux_uma' : CURRENT_RELEASES,
8081
'ppc64le_linux_jit' : CURRENT_RELEASES,
8182
'ppc64le_linux_xl' : CURRENT_RELEASES,
8283
'ppc64le_linux_xl_cm' : CURRENT_RELEASES - '11',
8384
'ppc64le_linux_xl_uma' : CURRENT_RELEASES,
85+
'ppc64le_linux_mixed_cm' : CURRENT_RELEASES,
8486
's390x_linux' : CURRENT_RELEASES,
8587
's390x_linux_cm' : CURRENT_RELEASES - '11',
8688
's390x_linux_uma' : CURRENT_RELEASES,
8789
's390x_linux_jit' : CURRENT_RELEASES,
8890
's390x_linux_xl' : CURRENT_RELEASES,
8991
's390x_linux_xl_cm' : CURRENT_RELEASES - '11',
9092
's390x_linux_xl_uma' : CURRENT_RELEASES,
93+
's390x_linux_mixed_cm' : CURRENT_RELEASES,
9194
's390x_zos' : ['11'],
9295
's390x_zos_cm' : ['11'],
9396
's390x_zos_uma' : ['11'],
9497
's390x_zos_xl' : ['11'],
9598
's390x_zos_xl_cm' : ['11'],
99+
's390x_zos_mixed_cm' : ['11'],
96100
'x86-64_linux' : CURRENT_RELEASES,
97101
'x86-64_linux_cm': CURRENT_RELEASES - '11',
98102
'x86-64_linux_uma' : CURRENT_RELEASES,
99103
'x86-64_linux_xl': CURRENT_RELEASES,
100104
'x86-64_linux_xl_cm': CURRENT_RELEASES - '11',
101105
'x86-64_linux_xl_uma' : CURRENT_RELEASES,
106+
'x86-64_linux_mixed_cm' : CURRENT_RELEASES,
102107
'x86-64_linux_jit' : CURRENT_RELEASES,
103108
'x86-64_linux_valhalla' : ['next'],
104109
'x86-64_mac_xl' : CURRENT_RELEASES,
105110
'x86-64_mac' : CURRENT_RELEASES,
106111
'x86-64_mac_cm' : CURRENT_RELEASES - '11',
107112
'x86-64_mac_xl_cm' : CURRENT_RELEASES - '11',
113+
'x86-64_mac_mixed_cm' : CURRENT_RELEASES,
108114
'x86-64_mac_uma' : CURRENT_RELEASES,
109115
'x86-64_mac_xl_uma' : CURRENT_RELEASES,
110116
'x86-32_windows' : ['8'],
@@ -116,12 +122,14 @@ SPECS = ['ppc64_aix' : CURRENT_RELEASES,
116122
'x86-64_windows_xl' : CURRENT_RELEASES,
117123
'x86-64_windows_xl_cm': CURRENT_RELEASES,
118124
'x86-64_windows_xl_uma' : CURRENT_RELEASES,
125+
'x86-64_windows_mixed_cm' : CURRENT_RELEASES,
119126
'aarch64_linux' : CURRENT_RELEASES,
120127
'aarch64_linux_cm': CURRENT_RELEASES,
121128
'aarch64_linux_uma': CURRENT_RELEASES,
122129
'aarch64_linux_xl' : CURRENT_RELEASES,
123130
'aarch64_linux_xl_cm': CURRENT_RELEASES,
124131
'aarch64_linux_xl_uma': CURRENT_RELEASES,
132+
'aarch64_linux_mixed_cm' : CURRENT_RELEASES,
125133
'ppc64_aix_ojdk292' : CURRENT_RELEASES,
126134
'ppc64_aix_xl_ojdk292' : CURRENT_RELEASES,
127135
'ppc64le_linux_ojdk292' : CURRENT_RELEASES,
@@ -150,6 +158,7 @@ SHORT_NAMES = ['all' : ['ppc64le_linux','ppc64le_linux_xl','s390x_linux','s390x_
150158
'aixxl' : ['ppc64_aix_xl'],
151159
'aixxlcm' : ['ppc64_aix_xl_cm'],
152160
'aixxluma' : ['ppc64_aix_xl_uma'],
161+
'aixmxdcm' : ['ppc64_aix_mixed_cm'],
153162
'zlinux' : ['s390x_linux'],
154163
'zlinuxcm' : ['s390x_linux_cm'],
155164
'zlinuxuma' : ['s390x_linux_uma'],
@@ -158,6 +167,7 @@ SHORT_NAMES = ['all' : ['ppc64le_linux','ppc64le_linux_xl','s390x_linux','s390x_
158167
'zlinuxxl' : ['s390x_linux_xl'],
159168
'zlinuxxlcm' : ['s390x_linux_xl_cm'],
160169
'zlinuxxluma' : ['s390x_linux_xl_uma'],
170+
'zlinuxmxdcm' : ['s390x_linux_mixed_cm'],
161171
'plinux' : ['ppc64le_linux'],
162172
'plinuxcmake' : ['ppc64le_linux_cm'],
163173
'plinuxcm' : ['ppc64le_linux_cm'],
@@ -167,6 +177,7 @@ SHORT_NAMES = ['all' : ['ppc64le_linux','ppc64le_linux_xl','s390x_linux','s390x_
167177
'plinuxxl' : ['ppc64le_linux_xl'],
168178
'plinuxxlcm' : ['ppc64le_linux_xl_cm'],
169179
'plinuxxluma' : ['ppc64le_linux_xl_uma'],
180+
'plinuxmxdcm' : ['ppc64le_linux_mixed_cm'],
170181
'xlinuxlargeheap' : ['x86-64_linux_xl'],
171182
'xlinuxxl' : ['x86-64_linux_xl'],
172183
'xlinux' : ['x86-64_linux'],
@@ -175,6 +186,7 @@ SHORT_NAMES = ['all' : ['ppc64le_linux','ppc64le_linux_xl','s390x_linux','s390x_
175186
'xlinuxuma' : ['x86-64_linux_uma'],
176187
'xlinuxxlcm' : ['x86-64_linux_xl_cm'],
177188
'xlinuxxluma' : ['x86-64_linux_xl_uma'],
189+
'xlinuxmxdcm' : ['x86-64_linux_mixed_cm'],
178190
'xlinuxjit' : ['x86-64_linux_jit'],
179191
'xlinuxval' : ['x86-64_linux_valhalla'],
180192
'win32' : ['x86-32_windows'],
@@ -187,6 +199,7 @@ SHORT_NAMES = ['all' : ['ppc64le_linux','ppc64le_linux_xl','s390x_linux','s390x_
187199
'winxl' : ['x86-64_windows_xl'],
188200
'winxlcm' : ['x86-64_windows_xl_cm'],
189201
'winxluma' : ['x86-64_windows_xl_uma'],
202+
'winmxdcm' : ['x86-64_windows_mixed_cm'],
190203
'osx' : ['x86-64_mac'],
191204
'osxlargeheap' : ['x86-64_mac_xl'],
192205
'osxxl' : ['x86-64_mac_xl'],
@@ -195,19 +208,22 @@ SHORT_NAMES = ['all' : ['ppc64le_linux','ppc64le_linux_xl','s390x_linux','s390x_
195208
'osxxlcm': ['x86-64_mac_xl_cm'],
196209
'osxuma': ['x86-64_mac_uma'],
197210
'osxxluma': ['x86-64_mac_xl_uma'],
211+
'osxmxdcm': ['x86-64_mac_mixed_cm'],
198212
'alinux64' : ['aarch64_linux'],
199213
'alinux64cm' : ['aarch64_linux_cm'],
200214
'alinux64uma' : ['aarch64_linux_uma'],
201215
'alinux64xl' : ['aarch64_linux_xl'],
202216
'alinux64xlcm' : ['aarch64_linux_xl_cm'],
203217
'alinux64xluma' : ['aarch64_linux_xl_uma'],
204218
'alinux64largeheap' : ['aarch64_linux_xl'],
219+
'alinux64mxdcm' : ['aarch64_linux_mixed_cm'],
205220
'zos' : ['s390x_zos'],
206221
'zoscm' : ['s390x_zos_cm'],
207222
'zosuma' : ['s390x_zos_uma'],
208223
'zosxl' : ['s390x_zos_xl'],
209224
'zoslargeheap' : ['s390x_zos_xl'],
210225
'zosxlcm' : ['s390x_zos_xl_cm'],
226+
'zosmxdcm' : ['s390x_zos_mixed_cm'],
211227
'aixojdk292' : ['ppc64_aix_ojdk292'],
212228
'aixxlojdk292' : ['ppc64_aix_xl_ojdk292'],
213229
'aixlargeheapojdk292' : ['ppc64_aix_xl_ojdk292'],

buildenv/jenkins/variables/defaults.yml

+91
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ debuginfo:
124124
largeheap:
125125
extra_configure_options: '--with-noncompressedrefs'
126126
#========================================#
127+
# Mixed references build
128+
#========================================#
129+
mixedrefs:
130+
extra_configure_options: '--with-mixedrefs'
131+
#========================================#
127132
# Build with cmake
128133
#========================================#
129134
cmake:
@@ -250,6 +255,21 @@ ppc64le_linux_xl_cm:
250255
ppc64le_linux_xl_uma:
251256
extends: ['ppc64le_linux_xl', 'uma']
252257
#========================================#
258+
# Linux PPCLE 64bits Mixed References
259+
#========================================#
260+
ppc64le_linux_mixed:
261+
extends: ['ppc64le_linux', 'mixedrefs']
262+
excluded_tests:
263+
8:
264+
- special.system
265+
11:
266+
- special.system
267+
#========================================#
268+
# Linux PPCLE 64bits Mixed References /w CMake
269+
#========================================#
270+
ppc64le_linux_mixed_cm:
271+
extends: ['ppc64le_linux_mixed', 'cmake']
272+
#========================================#
253273
# Linux PPCLE 64bits Compressed Pointers /w JITSERVER
254274
#========================================#
255275
ppc64le_linux_jit:
@@ -303,6 +323,19 @@ s390x_linux_xl_cm:
303323
s390x_linux_xl_uma:
304324
extends: ['s390x_linux_xl', 'uma']
305325
#========================================#
326+
# Linux S390 64bits Mixed References
327+
#========================================#
328+
s390x_linux_mixed:
329+
extends: ['s390x_linux', 'mixedrefs']
330+
excluded_tests:
331+
11:
332+
- special.system
333+
#========================================#
334+
# Linux S390 64bits Mixed References /w CMake
335+
#========================================#
336+
s390x_linux_mixed_cm:
337+
extends: ['s390x_linux_mixed', 'cmake']
338+
#========================================#
306339
# Linux S390 64bits Compressed Pointers /w JITSERVER
307340
#========================================#
308341
s390x_linux_jit:
@@ -362,6 +395,16 @@ ppc64_aix_xl_cm:
362395
ppc64_aix_xl_uma:
363396
extends: ['ppc64_aix_xl', 'uma']
364397
#========================================#
398+
# AIX PPC 64bits Mixed References
399+
#========================================#
400+
ppc64_aix_mixed:
401+
extends: ['ppc64_aix', 'mixedrefs']
402+
#========================================#
403+
# AIX PPC 64bits Mixed References /w CMake
404+
#========================================#
405+
ppc64_aix_mixed_cm:
406+
extends: ['ppc64_aix_mixed', 'cmake']
407+
#========================================#
365408
# Linux x86 64bits Compressed Pointers
366409
#========================================#
367410
x86-64_linux:
@@ -432,6 +475,21 @@ x86-64_linux_xl:
432475
8:
433476
- special.system
434477
#========================================#
478+
# Linux x86 64bits Mixed References
479+
#========================================#
480+
x86-64_linux_mixed:
481+
extends: ['x86-64_linux', 'mixedrefs']
482+
excluded_tests:
483+
- extended.functional
484+
- sanity.system
485+
- extended.system
486+
- special.system
487+
#========================================#
488+
# Linux x86 64bits Mixed References /w CMake
489+
#========================================#
490+
x86-64_linux_mixed_cm:
491+
extends: ['x86-64_linux_mixed', 'cmake']
492+
#========================================#
435493
# Linux x86 64bits Compressed Pointers / Valhalla
436494
#========================================#
437495
x86-64_linux_valhalla:
@@ -477,6 +535,16 @@ aarch64_linux_xl_cm:
477535
aarch64_linux_xl_uma:
478536
extends: ['aarch64_linux_xl', 'uma']
479537
#========================================#
538+
# Linux Aarch 64bits Mixed References
539+
#========================================#
540+
aarch64_linux_mixed:
541+
extends: ['aarch64_linux', 'mixedrefs']
542+
#========================================#
543+
# Linux Aarch 64bits Mixed References /w CMake
544+
#========================================#
545+
aarch64_linux_mixed_cm:
546+
extends: ['aarch64_linux_mixed', 'cmake']
547+
#========================================#
480548
# Windows x86 64bits Compressed Pointers
481549
#========================================#
482550
x86-64_windows:
@@ -531,6 +599,16 @@ x86-64_windows_xl_cm:
531599
x86-64_windows_xl_uma:
532600
extends: ['x86-64_windows_xl', 'uma']
533601
#========================================#
602+
# Windows x86 64bits Mixed References
603+
#========================================#
604+
x86-64_windows_mixed:
605+
extends: ['x86-64_windows', 'mixedrefs']
606+
#========================================#
607+
# Windows x86 64bits Mixed References /w CMake
608+
#========================================#
609+
x86-64_windows_mixed_cm:
610+
extends: ['x86-64_windows_mixed', 'cmake']
611+
#========================================#
534612
# Windows x86 32bits
535613
#========================================#
536614
x86-32_windows:
@@ -598,6 +676,14 @@ x86-64_mac_xl:
598676
8:
599677
- special.system
600678
#========================================#
679+
# OSX x86 64bits Mixed References
680+
#========================================#
681+
x86-64_mac_mixed:
682+
extends: ['x86-64_mac', 'mixedrefs']
683+
excluded_tests:
684+
8:
685+
- special.system
686+
#========================================#
601687
# OSX x86 64bits Compressed Pointers /w CMake
602688
#========================================#
603689
x86-64_mac_cm:
@@ -608,6 +694,11 @@ x86-64_mac_cm:
608694
x86-64_mac_xl_cm:
609695
extends: ['x86-64_mac_xl', 'cmake']
610696
#========================================#
697+
# OSX x86 64bits Mixed References /w CMake
698+
#========================================#
699+
x86-64_mac_mixed_cm:
700+
extends: ['x86-64_mac_mixed', 'cmake']
701+
#========================================#
611702
# OSX x86 64bits Compressed Pointers /w UMA
612703
#========================================#
613704
x86-64_mac_uma:

doc/build-instructions/Build_Instructions_V11.md

+10
Original file line numberDiff line numberDiff line change
@@ -155,6 +155,8 @@ bash configure --with-freemarker-jar=/<my_home_dir>/freemarker.jar --with-boot-j
155155

156156
:pencil: **Non-compressed references support:** If you require a heap size greater than 57GB, enable a noncompressedrefs build with the `--with-noncompressedrefs` option during this step.
157157

158+
:pencil: **Mixed references support:** If you require a single build with both compressed references and non-compressed references available, enable a mixedrefs build with the `--with-mixedrefs` option during this step. Specify `--with-mixedrefs=static` for the VM to determine the reference mode statically (at compile time), or `--with-mixedrefs=dynamic` for the VM to determine the reference mode dynamically (at run time). The option defaults to determine the reference mode statically, if neither `static` nor `dynamic` is provided. _Note that `--with-cmake` must be used with this option, as it is only available with CMake enabled at this time._
159+
158160
:pencil: **OpenSSL support:** If you want to build an OpenJDK that includes OpenSSL, you must specify `--with-openssl={fetched|system|path_to_library}`
159161

160162
where:
@@ -282,6 +284,8 @@ where `<my_home_dir>` is the location where you stored **freemarker.jar** and `<
282284

283285
:pencil: **Non-compressed references support:** If you require a heap size greater than 57GB, enable a noncompressedrefs build with the `--with-noncompressedrefs` option during this step.
284286

287+
:pencil: **Mixed references support:** If you require a single build with both compressed references and non-compressed references available, enable a mixedrefs build with the `--with-mixedrefs` option during this step. Specify `--with-mixedrefs=static` for the VM to determine the reference mode statically (at compile time), or `--with-mixedrefs=dynamic` for the VM to determine the reference mode dynamically (at run time). The option defaults to determine the reference mode statically, if neither `static` nor `dynamic` is provided. _Note that `--with-cmake` must be used with this option, as it is only available with CMake enabled at this time._
288+
285289
:pencil: **OpenSSL support:** If you want to build an OpenJDK that includes OpenSSL, you must specify `--with-openssl={fetched|system|path_to_library}`
286290

287291
where:
@@ -441,6 +445,8 @@ Note: there is no need to specify --with-toolchain-version for 2017 as it will b
441445

442446
:pencil: **Non-compressed references support:** If you require a heap size greater than 57GB, enable a noncompressedrefs build with the `--with-noncompressedrefs` option during this step.
443447

448+
:pencil: **Mixed references support:** If you require a single build with both compressed references and non-compressed references available, enable a mixedrefs build with the `--with-mixedrefs` option during this step. Specify `--with-mixedrefs=static` for the VM to determine the reference mode statically (at compile time), or `--with-mixedrefs=dynamic` for the VM to determine the reference mode dynamically (at run time). The option defaults to determine the reference mode statically, if neither `static` nor `dynamic` is provided. _Note that `--with-cmake` must be used with this option, as it is only available with CMake enabled at this time._
449+
444450
:pencil: **OpenSSL support:** If you want to build an OpenJDK that includes OpenSSL, you must specify `--with-openssl=path_to_library`, where `path_to_library` specifies the path to the prebuilt OpenSSL library that you obtained in **2. Get the source**. If you want to include the OpenSSL cryptographic library in the OpenJDK binary, you must also include `--enable-openssl-bundling`.
445451

446452
### 4. build
@@ -559,6 +565,8 @@ bash configure --with-boot-jdk=<path_to_boot_JDK11>
559565

560566
:pencil: **Non-compressed references support:** If you require a heap size greater than 57GB, enable a noncompressedrefs build with the `--with-noncompressedrefs` option during this step.
561567

568+
:pencil: **Mixed references support:** If you require a single build with both compressed references and non-compressed references available, enable a mixedrefs build with the `--with-mixedrefs` option during this step. Specify `--with-mixedrefs=static` for the VM to determine the reference mode statically (at compile time), or `--with-mixedrefs=dynamic` for the VM to determine the reference mode dynamically (at run time). The option defaults to determine the reference mode statically, if neither `static` nor `dynamic` is provided. _Note that `--with-cmake` must be used with this option, as it is only available with CMake enabled at this time._
569+
562570
:pencil: **OpenSSL support:** If you want to build an OpenJDK that includes OpenSSL, you must specify `--with-openssl=path_to_library`, where `path_to_library` specifies the path to the prebuilt OpenSSL library that you obtained in **2. Get the source**. If you want to include the OpenSSL cryptographic library in the OpenJDK binary, you must also include `--enable-openssl-bundling`.
563571

564572
### 4. build
@@ -701,6 +709,8 @@ bash configure --openjdk-target=${OPENJ9_CC_PREFIX} \
701709

702710
:pencil: **Non-compressed references support:** If you require a heap size greater than 57GB, enable a noncompressedrefs build with the `--with-noncompressedrefs` option during this step.
703711

712+
:pencil: **Mixed references support:** If you require a single build with both compressed references and non-compressed references available, enable a mixedrefs build with the `--with-mixedrefs` option during this step. Specify `--with-mixedrefs=static` for the VM to determine the reference mode statically (at compile time), or `--with-mixedrefs=dynamic` for the VM to determine the reference mode dynamically (at run time). The option defaults to determine the reference mode statically, if neither `static` nor `dynamic` is provided. _Note that `--with-cmake` must be used with this option, as it is only available with CMake enabled at this time._
713+
704714
:pencil: **OpenSSL support:** If you want to build an OpenJDK that uses OpenSSL, you must specify `--with-openssl={system|path_to_library}`
705715

706716
where:

0 commit comments

Comments
 (0)