Skip to content

Commit f1314b7

Browse files
authored
Update MacOS x86 runners to MacOS 15 (compiler-research#160)
1 parent c6a68e1 commit f1314b7

File tree

2 files changed

+46
-166
lines changed

2 files changed

+46
-166
lines changed

.github/workflows/MacOS.yml

Lines changed: 25 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -44,22 +44,22 @@ jobs:
4444
cling-version: '1.2'
4545
llvm_enable_projects: "clang"
4646
llvm_targets_to_build: "host;NVPTX"
47-
- name: osx13-x86-clang-clang-repl-19
48-
os: macos-13
47+
- name: osx15-x86-clang-clang-repl-19
48+
os: macos-15-intel
4949
compiler: clang
5050
clang-runtime: '19'
5151
cling: Off
5252
llvm_enable_projects: "clang"
5353
llvm_targets_to_build: "host"
54-
- name: osx13-x86-clang-clang-repl-18
55-
os: macos-13
54+
- name: osx15-x86-clang-clang-repl-18
55+
os: macos-15-intel
5656
compiler: clang
5757
clang-runtime: '18'
5858
cling: Off
5959
llvm_enable_projects: "clang"
6060
llvm_targets_to_build: "host"
61-
- name: osx13-x86-clang-clang18-cling
62-
os: macos-13
61+
- name: osx15-x86-clang-clang18-cling
62+
os: macos-15-intel
6363
compiler: clang
6464
clang-runtime: '18'
6565
cling: On
@@ -125,28 +125,13 @@ jobs:
125125
echo "CC=gcc-${vers}" >> $GITHUB_ENV
126126
echo "CXX=g++-${vers}" >> $GITHUB_ENV
127127
else
128-
export ARCHITECHURE=$(uname -m)
129-
if [[ "$ARCHITECHURE" == "arm64" ]]; then
130-
cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]')
131-
if [[ "${cling_on}" == "ON" ]]; then
132-
brew install llvm@15
133-
brew remove llvm@18
134-
brew cleanup
135-
#FIXME: Do not believe setting all these environment variables are necessary
136-
# They were set to avoid using Xcodes libc++ and to stop CppInterOp using llvm@18 in tests
137-
echo 'LDFLAGS="-L/opt/homebrew/opt/llvm@15/lib/ -L/opt/homebrew/opt/llvm@15/c++/"' >> $GITHUB_ENV
138-
echo 'CPPFLAGS="-I/opt/homebrew/opt/llvm@15/include"' >> $GITHUB_ENV
139-
echo 'CPATH="/opt/homebrew/include/"' >> $GITHUB_ENV
140-
echo 'LIBRARY_PATH="/opt/homebrew/lib/"' >> $GITHUB_ENV
141-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
142-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
143-
else
144-
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
145-
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
146-
fi
128+
brew install llvm@15
129+
if [[ "$(uname -m)" == "x86_64" ]]; then
130+
echo "CC=/usr/local/opt/llvm@15/bin/clang" >> $GITHUB_ENV
131+
echo "CXX=/usr/local/opt/llvm@15/bin/clang++" >> $GITHUB_ENV
147132
else
148-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
149-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
133+
echo "CC=/opt/homebrew/opt/llvm@15/bin/clang" >> $GITHUB_ENV
134+
echo "CXX=/opt/homebrew/opt/llvm@15/bin/clang++" >> $GITHUB_ENV
150135
fi
151136
fi
152137
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
@@ -284,20 +269,20 @@ jobs:
284269
cling: On
285270
cling-version: '1.2'
286271
cppyy: On
287-
- name: osx13-x86-clang-clang-repl-19-cppyy
288-
os: macos-13
272+
- name: osx15-x86-clang-clang-repl-19-cppyy
273+
os: macos-15-intel
289274
compiler: clang
290275
clang-runtime: '19'
291276
cling: Off
292277
cppyy: On
293-
- name: osx13-x86-clang-clang-repl-18-cppyy
294-
os: macos-13
278+
- name: osx15-x86-clang-clang-repl-18-cppyy
279+
os: macos-15-intel
295280
compiler: clang
296281
clang-runtime: '18'
297282
cling: Off
298283
cppyy: On
299-
- name: osx13-x86-clang-clang18-cling-cppyy
300-
os: macos-13
284+
- name: osx15-x86-clang-clang18-cling-cppyy
285+
os: macos-15-intel
301286
compiler: clang
302287
clang-runtime: '18'
303288
cling: On
@@ -366,31 +351,16 @@ jobs:
366351
echo "CC=gcc-${vers}" >> $GITHUB_ENV
367352
echo "CXX=g++-${vers}" >> $GITHUB_ENV
368353
else
369-
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
370-
export ARCHITECHURE=$(uname -m)
371-
if [[ "$ARCHITECHURE" == "arm64" ]]; then
372-
cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]')
373-
if [[ "${cling_on}" == "ON" ]]; then
374-
brew install llvm@15
375-
brew remove llvm@18
376-
brew cleanup
377-
#FIXME: Do not believe setting all these environment variables are necessary
378-
# They were set to avoid using Xcodes libc++ and to stop CppInterOp using llvm@18 in tests
379-
echo 'LDFLAGS="-L/opt/homebrew/opt/llvm@15/lib/ -L/opt/homebrew/opt/llvm@15/c++/"' >> $GITHUB_ENV
380-
echo 'CPPFLAGS="-I/opt/homebrew/opt/llvm@15/include"' >> $GITHUB_ENV
381-
echo 'CPATH="/opt/homebrew/include/"' >> $GITHUB_ENV
382-
echo 'LIBRARY_PATH="/opt/homebrew/lib/"' >> $GITHUB_ENV
383-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
384-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
385-
else
386-
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
387-
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
388-
fi
354+
brew install llvm@15
355+
if [[ "$(uname -m)" == "x86_64" ]]; then
356+
echo "CC=/usr/local/opt/llvm@15/bin/clang" >> $GITHUB_ENV
357+
echo "CXX=/usr/local/opt/llvm@15/bin/clang++" >> $GITHUB_ENV
389358
else
390-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
391-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
359+
echo "CC=/opt/homebrew/opt/llvm@15/bin/clang" >> $GITHUB_ENV
360+
echo "CXX=/opt/homebrew/opt/llvm@15/bin/clang++" >> $GITHUB_ENV
392361
fi
393362
fi
363+
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
394364
env:
395365
compiler: ${{ matrix.compiler }}
396366

.github/workflows/emscripten.yml

Lines changed: 21 additions & 111 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ jobs:
4545
llvm_enable_projects: "clang;lld"
4646
llvm_targets_to_build: "WebAssembly"
4747
emsdk_ver: "3.1.73"
48-
- name: osx13-x86-clang-clang-repl-19-emscripten
49-
os: macos-13
48+
- name: osx15-x86-clang-clang-repl-19-emscripten
49+
os: macos-15-intel
5050
compiler: clang
5151
clang-runtime: '19'
5252
cling: Off
@@ -131,18 +131,6 @@ jobs:
131131
git clone --depth=1 https://github.com/emscripten-core/emsdk.git
132132
./emsdk/emsdk install ${{ matrix.emsdk_ver }}
133133
134-
- name: Setup default Build Type on *nux
135-
if: ${{ runner.os != 'windows' && steps.cache.outputs.cache-hit != 'true' }}
136-
run: |
137-
echo "BUILD_TYPE=Release" >> $GITHUB_ENV
138-
echo "CODE_COVERAGE=0" >> $GITHUB_ENV
139-
os="${{ matrix.os }}"
140-
if [[ "${os}" == "macos"* ]]; then
141-
echo "ncpus=$(sysctl -n hw.ncpu)" >> $GITHUB_ENV
142-
else
143-
echo "ncpus=$(nproc --all)" >> $GITHUB_ENV
144-
fi
145-
146134
- name: Setup default Build Type on Windows
147135
if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }}
148136
run: |
@@ -151,97 +139,12 @@ jobs:
151139
$env:ncpus=$([Environment]::ProcessorCount)
152140
echo "ncpus=$env:ncpus" >> $env:GITHUB_ENV
153141
154-
- name: Setup compiler on Linux
155-
if: ${{ runner.os == 'Linux' && steps.cache.outputs.cache-hit != 'true' }}
156-
run: |
157-
# https://www.gnu.org/software/bash/manual/html_node/Shell-Parameter-Expansion.html
158-
vers="${compiler#*-}"
159-
os_codename="`cat /etc/os-release | grep UBUNTU_CODENAME | cut -d = -f 2`"
160-
##sudo apt update
161-
if [[ "${{ matrix.compiler }}" == *"gcc"* ]]; then
162-
sudo apt install -y gcc-${vers} g++-${vers} lld
163-
echo "CC=gcc-${vers}" >> $GITHUB_ENV
164-
echo "CXX=g++-${vers}" >> $GITHUB_ENV
165-
else
166-
if ! sudo apt install -y clang-${vers}; then
167-
curl https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
168-
echo "deb https://apt.llvm.org/${os_codename}/ llvm-toolchain-${os_codename}-${vers} main" | sudo tee -a /etc/apt/sources.list
169-
sudo apt-get update
170-
sudo apt-get install -y clang-${vers}
171-
fi
172-
echo "CC=clang-${vers}" >> $GITHUB_ENV
173-
echo "CXX=clang++-${vers}" >> $GITHUB_ENV
174-
fi
175-
env:
176-
compiler: ${{ matrix.compiler }}
177-
178-
- name: Setup compiler on macOS
179-
if: ${{ runner.os == 'macOS' && steps.cache.outputs.cache-hit != 'true' }}
180-
run: |
181-
vers="${compiler#*-}"
182-
if [[ "${{ matrix.compiler }}" == *"gcc"* ]]; then
183-
brew install "gcc@$vers"
184-
echo "CC=gcc-${vers}" >> $GITHUB_ENV
185-
echo "CXX=g++-${vers}" >> $GITHUB_ENV
186-
else
187-
export ARCHITECHURE=$(uname -m)
188-
if [[ "$ARCHITECHURE" == "arm64" ]]; then
189-
cling_on=$(echo "${{ matrix.cling }}" | tr '[:lower:]' '[:upper:]')
190-
if [[ "${cling_on}" == "ON" ]]; then
191-
brew install llvm@15
192-
brew remove llvm@18
193-
brew cleanup
194-
#FIXME: Do not believe setting all these environment variables are necessary
195-
# They were set to avoid using Xcodes libc++ and to stop CppInterOp using llvm@18 in tests
196-
echo 'LDFLAGS="-L/opt/homebrew/opt/llvm@15/lib/ -L/opt/homebrew/opt/llvm@15/c++/"' >> $GITHUB_ENV
197-
echo 'CPPFLAGS="-I/opt/homebrew/opt/llvm@15/include"' >> $GITHUB_ENV
198-
echo 'CPATH="/opt/homebrew/include/"' >> $GITHUB_ENV
199-
echo 'LIBRARY_PATH="/opt/homebrew/lib/"' >> $GITHUB_ENV
200-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
201-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
202-
else
203-
echo "CC=$(brew --prefix llvm@18)/bin/clang" >> $GITHUB_ENV
204-
echo "CXX=$(brew --prefix llvm@18)/bin/clang++" >> $GITHUB_ENV
205-
fi
206-
else
207-
echo "CC=$(brew --prefix llvm@15)/bin/clang" >> $GITHUB_ENV
208-
echo "CXX=$(brew --prefix llvm@15)/bin/clang++" >> $GITHUB_ENV
209-
fi
210-
fi
211-
echo "SDKROOT=$(xcrun --sdk macosx --show-sdk-path)" >> $GITHUB_ENV
212-
env:
213-
compiler: ${{ matrix.compiler }}
214-
215-
#Section slightly modified version of
216-
#https://github.com/vgvassilev/clad/blob/40d8bec11bde47b14a281078183a4f6147abeac5/.github/workflows/ci.yml#L510C1-L534C10
217-
- name: Setup compiler on Windows
218-
if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }}
219-
run: |
220-
if ( "${{ matrix.compiler }}" -imatch "clang" )
221-
{
222-
$ver="${{ matrix.compiler }}".split("-")[1]
223-
choco install llvm --version=$ver --no-progress -my
224-
clang --version
225-
#
226-
$env:CC="clang"
227-
$env:CXX="clang++"
228-
echo "CC=clang" >> $env:GITHUB_ENV
229-
echo "CXX=clang++" >> $env:GITHUB_ENV
230-
}
231-
elseif ( "${{ matrix.compiler }}" -imatch "msvc" )
232-
{
233-
# MSVC is builtin in container image
234-
}
235-
else
236-
{
237-
echo "Unsupported compiler - fix YAML file"
238-
}
239-
240142
- name: Install deps on Windows
241143
if: ${{ runner.os == 'windows' && steps.cache.outputs.cache-hit != 'true' }}
242144
run: |
243-
choco install findutils
145+
choco install findutils ninja
244146
$env:PATH="C:\Program Files (x86)\GnuWin32\bin;$env:PATH"
147+
$env:PATH="C:\Program Files (x86)\Ninja\bin;$env:PATH"
245148
246149
- name: Install deps on MacOS
247150
if: ${{ runner.os == 'macOS' && steps.cache.outputs.cache-hit != 'true' }}
@@ -250,17 +153,13 @@ jobs:
250153
export ARCHITECHURE=$(uname -m)
251154
if [[ "$ARCHITECHURE" != "x86_64" ]]; then
252155
brew remove unxip
253-
else
254-
brew remove [email protected]
255156
fi
256157
# workaround for https://github.com/actions/setup-python/issues/577
257158
for pkg in $(brew list | grep '^python@'); do
258159
brew unlink "$pkg"
259160
brew link --overwrite "$pkg"
260161
done
261-
brew upgrade openssl >/dev/null 2>&1
262162
brew install ninja
263-
brew upgrade
264163
265164
- name: Install deps on Linux
266165
if: ${{ runner.os == 'Linux' && steps.cache.outputs.cache-hit != 'true' }}
@@ -281,14 +180,19 @@ jobs:
281180
git clone https://github.com/root-project/cling.git
282181
cd ./cling
283182
git checkout tags/v${{ matrix.cling-version }}
284-
git apply -v ${{ github.workspace }}/CppInterOp/patches/llvm/cling1.2-LookupHelper.patch
285183
cd ..
286184
git clone --depth=1 -b cling-llvm${{ matrix.clang-runtime }} https://github.com/root-project/llvm-project.git
287185
else # repl
288186
git clone --depth=1 -b release/${{ matrix.clang-runtime }}.x https://github.com/llvm/llvm-project.git
289187
fi
290188
cd llvm-project
291189
# Build
190+
mkdir native_build
191+
cd native_build
192+
cmake -DLLVM_ENABLE_PROJECTS=clang -DLLVM_TARGETS_TO_BUILD=host -DCMAKE_BUILD_TYPE=Release ../llvm/
193+
cmake --build . --target llvm-tblgen clang-tblgen --parallel $(nproc --all)
194+
export NATIVE_DIR=$PWD/bin/
195+
cd ..
292196
mkdir build
293197
if [[ "${cling_on}" == "ON" ]]; then
294198
cd build
@@ -316,14 +220,13 @@ jobs:
316220
else
317221
# Apply patches
318222
llvm_vers=$(echo "${{ matrix.clang-runtime }}" | tr '[:lower:]' '[:upper:]')
319-
if [[ "${llvm_vers}" == "19" ]]; then
223+
if [[ "${llvm_vers}" == "19" || "${llvm_vers}" == "20" ]]; then
320224
git apply -v ${{ github.workspace }}/CppInterOp/patches/llvm/emscripten-clang${{ matrix.clang-runtime }}-*.patch
321225
echo "Apply emscripten-clang${{ matrix.clang-runtime }}-*.patch patches:"
322226
fi
323227
cd build
324228
emcmake cmake -DCMAKE_BUILD_TYPE=Release \
325229
-DLLVM_HOST_TRIPLE=wasm32-unknown-emscripten \
326-
-DLLVM_ENABLE_ASSERTIONS=ON \
327230
-DLLVM_TARGETS_TO_BUILD="${{ matrix.llvm_targets_to_build }}" \
328231
-DLLVM_ENABLE_LIBEDIT=OFF \
329232
-DLLVM_ENABLE_PROJECTS="${{ matrix.llvm_enable_projects }}" \
@@ -337,9 +240,16 @@ jobs:
337240
-DLLVM_INCLUDE_EXAMPLES=OFF \
338241
-DLLVM_INCLUDE_TESTS=OFF \
339242
-DLLVM_ENABLE_THREADS=OFF \
243+
-DLLVM_BUILD_TOOLS=OFF \
244+
-DLLVM_ENABLE_LIBPFM=OFF \
245+
-DCLANG_BUILD_TOOLS=OFF \
340246
-G Ninja \
247+
-DLLVM_NATIVE_TOOL_DIR=$NATIVE_DIR \
248+
-DCMAKE_C_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
249+
-DCMAKE_CXX_FLAGS_RELEASE="-Oz -g0 -DNDEBUG" \
250+
-DLLVM_ENABLE_LTO=Full \
341251
../llvm
342-
emmake ninja clang clang-repl lld -j ${{ env.ncpus }}
252+
emmake ninja libclang clangInterpreter clangStaticAnalyzerCore lldWasm
343253
fi
344254
cd ../
345255
rm -rf $(find . -maxdepth 1 ! -name "build" ! -name "llvm" ! -name "clang" ! -name ".")
@@ -489,8 +399,8 @@ jobs:
489399
cling: Off
490400
micromamba_shell_init: bash
491401
emsdk_ver: "3.1.73"
492-
- name: osx13-x86-clang-clang-repl-19-emscripten_wasm
493-
os: macos-13
402+
- name: osx15-x86-clang-clang-repl-19-emscripten_wasm
403+
os: macos-15-intel
494404
compiler: clang
495405
clang-runtime: '19'
496406
cling: Off

0 commit comments

Comments
 (0)