Skip to content

Commit

Permalink
GHA: Promote macOS-arm64 cross-compilation job to full native job
Browse files Browse the repository at this point in the history
  • Loading branch information
kinke committed May 4, 2024
1 parent 449981d commit b895bc3
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 30 deletions.
8 changes: 6 additions & 2 deletions .github/actions/1-setup/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -121,8 +121,12 @@ runs:
run: |
set -euxo pipefail
python3 --version
python3 -m pip install --user setuptools wheel
python3 -m pip install --user lit
if [[ '${{ runner.os }}-${{ inputs.arch }}' == 'macOS-arm64' ]]; then
brew install lit python-setuptools
else
python3 -m pip install --user setuptools wheel
python3 -m pip install --user lit
fi
python3 -c "import lit.main; lit.main.main();" --version . | head -n 1
# the druntime tests require GNU make
Expand Down
46 changes: 18 additions & 28 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,19 @@ jobs:
-DEXTRA_CXXFLAGS=-flto=full
with_pgo: true

- job_name: macOS arm64
os: macos-14
arch: arm64
bootstrap_cmake_flags: >-
-DBUILD_LTO_LIBS=ON
-DD_COMPILER_FLAGS=-gcc=/usr/bin/c++
extra_cmake_flags: >-
-DBUILD_LTO_LIBS=ON
-DD_COMPILER_FLAGS="-gcc=/usr/bin/c++ -O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto -L-exported_symbol '-L__*' -L-w"
# FIXME: 'LLVM ERROR: Unsupported stack probing method' when extending LTO to C++ parts and trying to link ldc2
# -DEXTRA_CXXFLAGS=-flto=full
with_pgo: false # FIXME: ldc2-unittest hangs at runtime (at least sometimes?) with LTO+PGO

- job_name: Windows x64
os: windows-2022
arch: x64
Expand All @@ -76,12 +89,15 @@ jobs:
runs-on: ${{ matrix.os }}
timeout-minutes: 90
env:
MACOSX_DEPLOYMENT_TARGET: 10.12
MACOSX_DEPLOYMENT_TARGET: ${{ matrix.arch == 'arm64' && '11.0' || '10.12' }}
steps:
- uses: actions/checkout@v3
with:
submodules: true
fetch-depth: 50
- name: 'macOS 14: Switch to Xcode v15.3'
if: matrix.os == 'macos-14'
run: sudo xcode-select -switch /Applications/Xcode_15.3.app
- name: Install prerequisites
uses: ./.github/actions/1-setup
with:
Expand Down Expand Up @@ -160,20 +176,6 @@ jobs:
matrix:
include:

- job_name: macOS arm64
host_os: macos-13 # latest x86_64 image
os: osx
arch: arm64
bootstrap_cmake_flags: -DD_COMPILER_FLAGS=-gcc=/usr/bin/c++
# see native macOS job comment for extra flags (https://github.com/ldc-developers/ldc/issues/4462)
extra_cmake_flags: >-
-DBUILD_LTO_LIBS=ON
-DD_COMPILER_FLAGS="-O -flto=full -defaultlib=phobos2-ldc-lto,druntime-ldc-lto -L-exported_symbol '-L__*' -L-w"
# FIXME: disabling LTO for C++ parts as well as PGO, out of caution due to
# weird issues for native job experiments in https://github.com/ldc-developers/ldc/pull/4604
# -DEXTRA_CXXFLAGS=-flto=full
#with_pgo: true

- job_name: Android armv7a
host_os: ubuntu-20.04
os: android
Expand All @@ -192,16 +194,11 @@ jobs:
name: ${{ matrix.job_name }}
runs-on: ${{ matrix.host_os }}
timeout-minutes: 60
env:
MACOSX_DEPLOYMENT_TARGET: 11.0
steps:
- uses: actions/checkout@v4
with:
submodules: true
fetch-depth: 50
- name: 'macOS 13: Switch to Xcode v15.2' # the LLVM package is built natively on macOS 14, using Xcode v15.3
if: matrix.host_os == 'macos-13'
run: sudo xcode-select -switch /Applications/Xcode_15.2.app
- name: Install prerequisites
uses: ./.github/actions/1-setup
with:
Expand Down Expand Up @@ -230,11 +227,6 @@ jobs:
uses: ./.github/actions/5-install
with:
cross_compiling: true
- name: 'macOS: Cross-compile iOS libraries, copy to install dir & extend ldc2.conf'
if: matrix.os == 'osx'
uses: ./.github/actions/5a-ios
with:
arch: ${{ matrix.arch }}
- name: 'Android: Cross-compile ${{ matrix.android_x86_arch }} libraries & copy to install dir'
if: matrix.os == 'android'
uses: ./.github/actions/5a-android-x86
Expand All @@ -253,9 +245,7 @@ jobs:
name: macOS universal
runs-on: macos-latest
timeout-minutes: 30
needs:
- build-native
- build-cross
needs: build-native
steps:
- uses: actions/checkout@v4
- name: Merge x86_64 & arm64 packages to universal one
Expand Down

0 comments on commit b895bc3

Please sign in to comment.