1010 platforms :
1111 description : " Platform(s) to execute on"
1212 required : true
13- default : " Linux x64, Linux x86, Windows x64, Windows x86, macOS x64"
13+ default : " Linux additional (hotspot only), Linux x64, Linux x86, Windows x64, Windows x86, macOS x64"
1414
1515concurrency :
1616 group : ${{ github.workflow }}-${{ github.ref }}
2323 outputs :
2424 should_run : ${{ steps.check_submit.outputs.should_run }}
2525 bundle_id : ${{ steps.check_bundle_id.outputs.bundle_id }}
26- platform_linux_additional : false
26+ platform_linux_additional : ${{ steps.check_platforms.outputs.platform_linux_additional }}
2727 platform_linux_x64 : ${{ steps.check_platforms.outputs.platform_linux_x64 }}
2828 platform_linux_x86 : ${{ steps.check_platforms.outputs.platform_linux_x86 }}
2929 platform_windows_x64 : ${{ steps.check_platforms.outputs.platform_windows_x64 }}
@@ -117,7 +117,7 @@ jobs:
117117 name : Linux x64
118118 runs-on : " ubuntu-20.04"
119119 needs : prerequisites
120- if : needs.prerequisites.outputs.should_run != 'false' && ( needs.prerequisites.outputs.platform_linux_x64 != 'false' || needs.prerequisites.outputs.platform_linux_additional == 'true')
120+ if : needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_x64 != 'false'
121121
122122 strategy :
123123 fail-fast : false
@@ -307,7 +307,6 @@ jobs:
307307 runs-on : " ubuntu-20.04"
308308 needs :
309309 - prerequisites
310- - linux_x64_build
311310 if : needs.prerequisites.outputs.should_run != 'false' && needs.prerequisites.outputs.platform_linux_additional != 'false'
312311
313312 strategy :
@@ -316,8 +315,8 @@ jobs:
316315 flavor :
317316 - hs x64 build only
318317 - hs x64 zero build only
319- - hs x64 minimal build only
320- - hs x64 optimized build only
318+ - hs x86 minimal build only
319+ - hs x86 client build only
321320 - hs aarch64 build only
322321 - hs arm build only
323322 - hs s390x build only
@@ -327,21 +326,23 @@ jobs:
327326 flags : --enable-debug --disable-precompiled-headers
328327 - flavor : hs x64 zero build only
329328 flags : --enable-debug --disable-precompiled-headers --with-jvm-variants=zero
330- - flavor : hs x64 minimal build only
331- flags : --enable-debug --disable-precompiled-headers --with-jvm-variants=minimal
332- - flavor : hs x64 optimized build only
333- flags : --with-debug-level=optimized --disable-precompiled-headers
329+ - flavor : hs x86 minimal build only
330+ flags : --enable-debug --disable-precompiled-headers --with-jvm-variants=minimal1 --with-target-bits=32
331+ multilib : true
332+ - flavor : hs x86 client build only
333+ flags : --enable-debug --disable-precompiled-headers --with-jvm-variants=client --with-target-bits=32
334+ multilib : true
334335 - flavor : hs aarch64 build only
335336 flags : --enable-debug --disable-precompiled-headers
336337 debian-arch : arm64
337338 gnu-arch : aarch64
338339 - flavor : hs arm build only
339- flags : --enable-debug --disable-precompiled-headers
340+ flags : --enable-debug --disable-precompiled-headers --with-jvm-variants=zero
340341 debian-arch : armhf
341342 gnu-arch : arm
342343 gnu-flavor : eabihf
343344 - flavor : hs s390x build only
344- flags : --enable-debug --disable-precompiled-headers
345+ flags : --enable-debug --disable-precompiled-headers --with-jvm-variants=zero
345346 debian-arch : s390x
346347 gnu-arch : s390x
347348 - flavor : hs ppc64le build only
@@ -359,31 +360,6 @@ jobs:
359360 with :
360361 path : jdk
361362
362- - name : Restore build JDK
363- id : build_restore
364- uses : actions/download-artifact@v3
365- with :
366- name : transient_jdk-linux-x64_${{ needs.prerequisites.outputs.bundle_id }}
367- path : ~/jdk-linux-x64
368- continue-on-error : true
369-
370- - name : Restore build JDK (retry)
371- uses : actions/download-artifact@v3
372- with :
373- name : transient_jdk-linux-x64_${{ needs.prerequisites.outputs.bundle_id }}
374- path : ~/jdk-linux-x64
375- if : steps.build_restore.outcome == 'failure'
376-
377- - name : Unpack build JDK
378- run : |
379- mkdir -p "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
380- tar -xf "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin.tar.gz" -C "${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin"
381-
382- - name : Find root of build JDK image dir
383- run : |
384- build_jdk_root=`find ${HOME}/jdk-linux-x64/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x64_bin -name release -type f`
385- echo "build_jdk_root=`dirname ${build_jdk_root}`" >> $GITHUB_ENV
386-
387363 - name : Update apt
388364 run : sudo apt-get update
389365
@@ -393,8 +369,17 @@ jobs:
393369 sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100 --slave /usr/bin/g++ g++ /usr/bin/g++-9
394370 if : matrix.debian-arch == ''
395371
372+ - name : Install multilib dependencies
373+ run : |
374+ sudo dpkg --add-architecture i386
375+ sudo apt-get update
376+ sudo apt-get install --only-upgrade apt
377+ sudo apt-get install openjdk-8-jdk gcc-9-multilib g++-9-multilib libfreetype6-dev:i386 libxrandr-dev:i386 libxtst-dev:i386 libtiff-dev:i386 libcupsimage2-dev:i386 libcups2-dev:i386 libasound2-dev:i386
378+ sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 100 --slave /usr/bin/g++ g++ /usr/bin/g++-9
379+ if : matrix.multilib != ''
380+
396381 - name : Install cross-compilation host dependencies
397- run : sudo apt-get install gcc-9-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}} g++-9-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}
382+ run : sudo apt-get install openjdk-8-jdk gcc-9-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}} g++-9-${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}
398383 if : matrix.debian-arch != ''
399384
400385 - name : Cache sysroot
@@ -414,7 +399,7 @@ jobs:
414399 sudo qemu-debootstrap
415400 --arch=${{ matrix.debian-arch }}
416401 --verbose
417- --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
402+ --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
418403 --resolve-deps
419404 buster
420405 ~/sysroot-${{ matrix.debian-arch }}
@@ -439,19 +424,30 @@ jobs:
439424 echo "cross_flags=
440425 --openjdk-target=${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}
441426 --with-sysroot=${HOME}/sysroot-${{ matrix.debian-arch }}/
427+ --with-cups=${HOME}/sysroot-${{ matrix.debian-arch }}/usr
428+ --with-freetype-lib=${HOME}/sysroot-${{ matrix.debian-arch }}/usr/lib/${{ matrix.gnu-arch }}-linux-gnu${{ matrix.gnu-flavor}}
429+ --with-freetype-include=${HOME}/sysroot-${{ matrix.debian-arch }}/usr/include/freetype2
430+ --with-alsa=${HOME}/sysroot-${{ matrix.debian-arch }}/usr
431+ --with-fontconfig=${HOME}/sysroot-${{ matrix.debian-arch }}/usr
432+ " >> $GITHUB_ENV
433+ && echo "cross_conf_env=
434+ CFLAGS=--sysroot=${HOME}/sysroot-${{ matrix.debian-arch }}
435+ CXXFLAGS=--sysroot=${HOME}/sysroot-${{ matrix.debian-arch }}
436+ LDFLAGS=--sysroot=${HOME}/sysroot-${{ matrix.debian-arch }}
442437 " >> $GITHUB_ENV
443438 if : matrix.debian-arch != ''
444439
445440 - name : Configure
446441 run : >
442+ ${{ env.cross_conf_env }}
447443 bash configure
448444 --with-conf-name=linux-${{ matrix.gnu-arch }}-hotspot
449445 ${{ matrix.flags }}
450446 ${{ env.cross_flags }}
451447 --with-user-release-suffix=${GITHUB_ACTOR}-${GITHUB_SHA}
452448 --with-build-number=b00
453449 --with-boot-jdk=${BOOT_JDK}
454- --with-build-jdk=${{ env.build_jdk_root }}
450+ --disable-headful
455451 --with-zlib=bundled
456452 working-directory : jdk
457453
@@ -558,14 +554,14 @@ jobs:
558554 test :
559555 - jdk/tier1
560556 - langtools/tier1
561- # - hotspot/tier1
557+ - hotspot/tier1
562558 include :
563559 - test : jdk/tier1
564560 suites : jdk_tier1
565561 - test : langtools/tier1
566562 suites : langtools_tier1
567- # - test: hotspot/tier1
568- # suites: hotspot_tier1
563+ - test : hotspot/tier1
564+ suites : hotspot_tier1
569565
570566 # Reduced 32-bit build uses the same boot JDK as 64-bit build
571567 env :
@@ -609,13 +605,21 @@ jobs:
609605 - name : Install dependencies
610606 run : |
611607 sudo apt-get update
612- sudo apt-get install openjdk-8-jdk
608+ sudo apt-get install openjdk-8-jdk gcc-9-multilib g++-9-multilib
613609
614610 - name : Unpack jdk
615611 run : |
616612 mkdir -p "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}"
617613 tar -xf "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}.tar.gz" -C "${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}"
618614
615+ - name : Build multilib docker image
616+ if : matrix.test == 'hotspot/tier1'
617+ run : >
618+ printf '%s\n%s\n'
619+ 'FROM ubuntu:latest'
620+ 'RUN dpkg --add-architecture i386 && apt-get update && apt-get -y install libc6:i386'
621+ | docker build -t 'ubuntu-multilib:latest' -
622+
619623 - name : Run tests
620624 run : >
621625 chmod +x "${HOME}/jtreg/bin/jtreg" &&
@@ -624,7 +628,7 @@ jobs:
624628 PRODUCT_HOME="${HOME}/jdk-linux-x86${{ matrix.artifact }}/jdk-${{ env.JDK_VERSION }}-internal+0_linux-x86_bin${{ matrix.artifact }}/j2sdk-image"
625629 JT_HOME="${HOME}/jtreg"
626630 ALT_OUTPUTDIR="${GITHUB_WORKSPACE}/test-results"
627- JAVA_ARGS="-Djdk.test.docker.image.name=ubuntu -Djdk.test.docker.image.version=latest"
631+ JAVA_ARGS="-Djdk.test.docker.image.name=ubuntu-multilib -Djdk.test.docker.image.version=latest"
628632 JTREG_TIMEOUT_FACTOR="4"
629633 make
630634 "${{ matrix.suites }}"
@@ -1177,14 +1181,14 @@ jobs:
11771181 test :
11781182 - jdk/tier1
11791183 - langtools/tier1
1180- # - hotspot/tier1
1184+ - hotspot/tier1
11811185 include :
11821186 - test : jdk/tier1
11831187 suites : jdk_tier1
11841188 - test : langtools/tier1
11851189 suites : langtools_tier1
1186- # - test: hotspot/tier1
1187- # suites: hotspot_tier1
1190+ - test : hotspot/tier1
1191+ suites : hotspot_tier1
11881192
11891193 env :
11901194 JDK_VERSION : " ${{ fromJson(needs.prerequisites.outputs.dependencies).JDK_MAJOR_VERSION }}.${{ fromJson(needs.prerequisites.outputs.dependencies).JDK_MINOR_VERSION }}.${{ fromJson(needs.prerequisites.outputs.dependencies).JDK_MICRO_VERSION }}"
@@ -1557,6 +1561,7 @@ jobs:
15571561 continue-on-error : true
15581562 needs :
15591563 - prerequisites
1564+ - linux_additional_build
15601565 - linux_x64_test
15611566 - linux_x86_test
15621567 - windows_x64_test
0 commit comments