From 196eac4118b02882759ae9ac55b27c244f6c4305 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Pereda?= Date: Thu, 5 Sep 2024 09:31:04 +0200 Subject: [PATCH] Allow building libjdk.a for linux-aarch64 (#6) * Update static-build.yml * Update build-cross-compile.yml * Update static-build.yml * Update static-build.yml * Update build-cross-compile.yml * Update static-build.yml * Update build-cross-compile.yml * Update build-cross-compile.yml * Update static-build.yml * Update static-release.yml * Update build-cross-compile.yml * Update build-cross-compile.yml --- .github/workflows/build-cross-compile.yml | 75 ++++++++++++++--------- .github/workflows/static-build.yml | 16 ++++- .github/workflows/static-release.yml | 18 +++++- 3 files changed, 78 insertions(+), 31 deletions(-) diff --git a/.github/workflows/build-cross-compile.yml b/.github/workflows/build-cross-compile.yml index fa5a8a61a0a..1b8bb326082 100644 --- a/.github/workflows/build-cross-compile.yml +++ b/.github/workflows/build-cross-compile.yml @@ -28,18 +28,29 @@ name: 'Build (cross-compile)' on: workflow_call: inputs: + platform: + required: true + type: string gcc-major-version: required: true type: string extra-conf-options: required: false type: string + debug-levels: + required: false + type: string + default: '[ "release" ]' configure-arguments: required: false type: string make-arguments: required: false type: string + make-target: + required: false + type: string + default: 'static-libs' jobs: build-cross-compile: @@ -51,10 +62,10 @@ jobs: matrix: target-cpu: - aarch64 - - arm - - s390x - - ppc64le - - riscv64 +# - arm +# - s390x +# - ppc64le +# - riscv64 include: - target-cpu: aarch64 gnu-arch: aarch64 @@ -62,31 +73,31 @@ jobs: debian-repository: https://httpredir.debian.org/debian/ debian-version: bullseye tolerate-sysroot-errors: false - - target-cpu: arm - gnu-arch: arm - debian-arch: armhf - debian-repository: https://httpredir.debian.org/debian/ - debian-version: bullseye - tolerate-sysroot-errors: false - gnu-abi: eabihf - - target-cpu: s390x - gnu-arch: s390x - debian-arch: s390x - debian-repository: https://httpredir.debian.org/debian/ - debian-version: bullseye - tolerate-sysroot-errors: false - - target-cpu: ppc64le - gnu-arch: powerpc64le - debian-arch: ppc64el - debian-repository: https://httpredir.debian.org/debian/ - debian-version: bullseye - tolerate-sysroot-errors: false - - target-cpu: riscv64 - gnu-arch: riscv64 - debian-arch: riscv64 - debian-repository: https://httpredir.debian.org/debian/ - debian-version: sid - tolerate-sysroot-errors: true +# - target-cpu: arm +# gnu-arch: arm +# debian-arch: armhf +# debian-repository: https://httpredir.debian.org/debian/ +# debian-version: bullseye +# tolerate-sysroot-errors: false +# gnu-abi: eabihf +# - target-cpu: s390x +# gnu-arch: s390x +# debian-arch: s390x +# debian-repository: https://httpredir.debian.org/debian/ +# debian-version: bullseye +# tolerate-sysroot-errors: false +# - target-cpu: ppc64le +# gnu-arch: powerpc64le +# debian-arch: ppc64el +# debian-repository: https://httpredir.debian.org/debian/ +# debian-version: bullseye +# tolerate-sysroot-errors: false +# - target-cpu: riscv64 +# gnu-arch: riscv64 +# debian-arch: riscv64 +# debian-repository: https://httpredir.debian.org/debian/ +# debian-version: sid +# tolerate-sysroot-errors: true steps: - name: 'Checkout the JDK source' @@ -186,3 +197,9 @@ jobs: make-target: 'hotspot ${{ inputs.make-arguments }}' platform: linux-${{ matrix.target-cpu }} if: steps.create-sysroot.outcome == 'success' || steps.get-cached-sysroot.outputs.cache-hit == 'true' + + - name: 'Upload bundles' + uses: ./.github/actions/upload-bundles + with: + platform: linux-${{ matrix.target-cpu }} + make-target: 'static-libs' diff --git a/.github/workflows/static-build.yml b/.github/workflows/static-build.yml index c4fb3df7b93..c34cfe87642 100644 --- a/.github/workflows/static-build.yml +++ b/.github/workflows/static-build.yml @@ -31,7 +31,7 @@ on: platforms: description: 'Platform(s) to execute on (comma separated, e.g. "android-linux-aarch64, ios-macos-aarch64, linux-x64, macos, aarch64")' required: true - default: 'android-linux-aarch64, ios-macos-aarch64, linux-x64, macos-x64, macos-aarch64, windows-x64, windows-aarch64' + default: 'android-linux-aarch64, ios-macos-aarch64, linux-x64, linux-cross-compile, macos-x64, macos-aarch64, windows-x64, windows-aarch64' configure-arguments: description: 'Additional configure arguments' required: false @@ -186,6 +186,19 @@ jobs: make-arguments: ${{ github.event.inputs.make-arguments }} if: needs.select.outputs.linux-x64 == 'true' + build-linux-cross-compile: + name: linux-cross-compile + needs: select + uses: ./.github/workflows/build-cross-compile.yml + with: + platform: linux-cross-compile + make-target: 'static-libs' + gcc-major-version: '10' + debug-levels: '[ "release" ]' + 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 @@ -252,6 +265,7 @@ jobs: - build-android-linux-aarch64 - build-ios-macos-aarch64 - build-linux-x64 + - build-linux-cross-compile - build-macos-x64 - build-macos-aarch64 - build-windows-x64 diff --git a/.github/workflows/static-release.yml b/.github/workflows/static-release.yml index 727b336bbb0..8bfb1049837 100644 --- a/.github/workflows/static-release.yml +++ b/.github/workflows/static-release.yml @@ -59,6 +59,15 @@ jobs: gcc-major-version: '10' debug-levels: '[ "release" ]' + build-linux-cross-compile: + name: linux-cross-compile + uses: ./.github/workflows/build-cross-compile.yml + with: + platform: linux-cross-compile + make-target: 'static-libs' + gcc-major-version: '10' + debug-levels: '[ "release" ]' + build-macos-x64: name: macos-x64 uses: ./.github/workflows/build-macos.yml @@ -103,7 +112,7 @@ jobs: release: needs: [ build-android-linux-aarch64, build-ios-macos-aarch64, - build-linux-x64, + build-linux-x64, build-linux-cross-compile, build-macos-x64, build-macos-aarch64, build-windows-x64, build-windows-aarch64 ] @@ -127,6 +136,12 @@ jobs: name: linux-x64 path: ./dist/linux-x64 + - name: Download Linux AArch64 artifact + uses: actions/download-artifact@v4 + with: + name: linux-aarch64 + path: ./dist/linux-aarch64 + - name: Download macOS x64 artifact uses: actions/download-artifact@v4 with: @@ -162,6 +177,7 @@ jobs: zip -r android-linux-aarch64.zip android-linux-aarch64 zip -r ios-macos-aarch64.zip ios-macos-aarch64 zip -r linux-x64.zip linux-x64 + zip -r linux-aarch64.zip linux-aarch64 zip -r macos-x64.zip macos-x64 zip -r macos-aarch64.zip macos-aarch64 zip -r windows-x64.zip windows-x64