Skip to content

Commit f5118e8

Browse files
j-stephanbernhardmgruber
authored andcommitted
Simplify clang installation
1 parent 5a4691c commit f5118e8

File tree

2 files changed

+33
-28
lines changed

2 files changed

+33
-28
lines changed

.github/workflows/ci.yml

+11-11
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ concurrency:
2626
# ALPAKA_CI_STDLIB : {libstdc++, [CXX==clang++]:libc++}
2727
# CMAKE_BUILD_TYPE : {Debug, Release}
2828
# alpaka_CI : {GITHUB}
29-
# ALPAKA_CI_DOCKER_BASE_IMAGE_NAME : {ubuntu:20.04}
29+
# ALPAKA_CI_DOCKER_BASE_IMAGE_NAME : {ubuntu:18.04, ubuntu:20.04, ubuntu:22.04}
3030
# ALPAKA_CI_BOOST_BRANCH : {boost-1.74.0, boost-1.75.0, boost-1.76.0, boost-1.77.0, boost-1.78.0, boost-1.79.0}
3131
# ALPAKA_CI_CMAKE_VER : {3.18.6, 3.19.8, 3.20.6, 3.21.6, 3.22.3}
3232
# ALPAKA_CI_XCODE_VER : {13.2.1, 13.4.1}
@@ -104,10 +104,10 @@ jobs:
104104
os: ubuntu-latest
105105
env: {CXX: g++, CC: gcc, ALPAKA_CI_GCC_VER: 8, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.74.0, ALPAKA_CI_CMAKE_VER: 3.20.6, OMP_NUM_THREADS: 4, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_CI_ANALYSIS: ON, alpaka_DEBUG: 2}
106106
- name: linux_clang-8_debug_analysis
107-
os: ubuntu-latest
107+
os: ubuntu-18.04
108108
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 8, ALPAKA_CI_STDLIB: libc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.77.0, ALPAKA_CI_CMAKE_VER: 3.20.6, OMP_NUM_THREADS: 4, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_CI_ANALYSIS: ON, alpaka_DEBUG: 2, alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF}
109109
- name: linux_clang-9_cuda-9.2_debug_analysis
110-
os: ubuntu-latest
110+
os: ubuntu-20.04
111111
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 9, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.77.0, ALPAKA_CI_CMAKE_VER: 3.20.6, OMP_NUM_THREADS: 4, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", ALPAKA_CI_ANALYSIS: ON, ALPAKA_CI_RUN_TESTS: OFF, alpaka_DEBUG: 1, alpaka_ACC_GPU_CUDA_ENABLE: ON, ALPAKA_CI_CUDA_VERSION: "9.2", CMAKE_CUDA_COMPILER: clang++, alpaka_ACC_CPU_B_SEQ_T_FIBERS_ENABLE: OFF, alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF, alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE: OFF}
112112
- name: windows_cl-2019_debug_analysis
113113
os: windows-2019
@@ -216,28 +216,28 @@ jobs:
216216

217217
# clang++
218218
- name: linux_clang-6_release_asan_c++17
219-
os: ubuntu-latest
219+
os: ubuntu-18.04
220220
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: "6.0", ALPAKA_CI_STDLIB: libc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.74.0, ALPAKA_CI_CMAKE_VER: 3.20.6, OMP_NUM_THREADS: 2, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:18.04", alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, ALPAKA_CI_SANITIZERS: ASan, alpaka_CXX_STANDARD: 17}
221221
- name: linux_clang-7_release_c++17
222-
os: ubuntu-latest
222+
os: ubuntu-18.04
223223
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 7, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.75.0, ALPAKA_CI_CMAKE_VER: 3.20.6, OMP_NUM_THREADS: 1, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", alpaka_CXX_STANDARD: 17, CMAKE_CXX_EXTENSIONS: OFF}
224224
- name: linux_clang-8_release
225-
os: ubuntu-latest
225+
os: ubuntu-18.04
226226
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 8, ALPAKA_CI_STDLIB: libc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.74.0, ALPAKA_CI_CMAKE_VER: 3.18.6, OMP_NUM_THREADS: 4, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, CMAKE_CXX_EXTENSIONS: OFF}
227227
- name: linux_clang-9_debug
228-
os: ubuntu-latest
228+
os: ubuntu-20.04
229229
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 9, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.77.0, ALPAKA_CI_CMAKE_VER: 3.20.6, OMP_NUM_THREADS: 1, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04"}
230230
- name: linux_clang-10_release
231-
os: ubuntu-latest
231+
os: ubuntu-20.04
232232
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 10, ALPAKA_CI_STDLIB: libc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.75.0, ALPAKA_CI_CMAKE_VER: 3.22.3, OMP_NUM_THREADS: 2, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, alpaka_CXX_STANDARD: 17}
233233
- name: linux_clang-13_debug_omp5
234-
os: ubuntu-latest
234+
os: ubuntu-22.04
235235
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 13, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.77.0, ALPAKA_CI_CMAKE_VER: 3.19.8, OMP_NUM_THREADS: 4, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", CMAKE_CXX_FLAGS: "-fopenmp=libomp -fopenmp-targets=x86_64-pc-linux-gnu -Wno-openmp-mapping", alpaka_ACC_ANY_BT_OMP5_ENABLE: ON, alpaka_OFFLOAD_MAX_BLOCK_SIZE: 1, CMAKE_EXE_LINKER_FLAGS: "-fopenmp", alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE: OFF}
236236
- name: linux_clang-12_release
237-
os: ubuntu-latest
237+
os: ubuntu-20.04
238238
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 12, ALPAKA_CI_STDLIB: libc++, CMAKE_BUILD_TYPE: Release, ALPAKA_CI_BOOST_BRANCH: boost-1.76.0, ALPAKA_CI_CMAKE_VER: 3.21.6, OMP_NUM_THREADS: 4, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", alpaka_ACC_CPU_B_TBB_T_SEQ_ENABLE: OFF, CMAKE_CXX_EXTENSIONS: OFF}
239239
- name: linux_clang-13_debug
240-
os: ubuntu-latest
240+
os: ubuntu-22.04
241241
env: {CXX: clang++, CC: clang, ALPAKA_CI_CLANG_VER: 13, ALPAKA_CI_STDLIB: libstdc++, CMAKE_BUILD_TYPE: Debug, ALPAKA_CI_BOOST_BRANCH: boost-1.74.0, ALPAKA_CI_CMAKE_VER: 3.20.6, OMP_NUM_THREADS: 3, ALPAKA_CI_DOCKER_BASE_IMAGE_NAME: "ubuntu:20.04", CMAKE_CXX_EXTENSIONS: OFF}
242242

243243
# icpx

script/install_clang.sh

+22-17
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/bin/bash
22

33
#
4-
# Copyright 2021 Benjamin Worpitz, Bernhard Manfred Gruber
4+
# Copyright 2022 Benjamin Worpitz, Bernhard Manfred Gruber, Jan Stephan
55
#
66
# This file is part of alpaka.
77
#
@@ -18,33 +18,38 @@ source ./script/set.sh
1818
: "${ALPAKA_CI_STDLIB?'ALPAKA_CI_STDLIB must be specified'}"
1919
: "${CXX?'CXX must be specified'}"
2020

21-
# add clang-11 repository for ubuntu 18.04
22-
if [[ "$(cat /etc/os-release)" == *"18.04"* && "${ALPAKA_CI_CLANG_VER}" -eq 11 ]]
23-
then
24-
travis_retry sudo DEBIAN_FRONTEND=noninteractive apt-get -y --quiet --allow-unauthenticated --no-install-recommends install tzdata
25-
travis_retry apt-get -y --quiet install wget gnupg2
26-
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
27-
echo "deb http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" | sudo tee /etc/apt/sources.list.d/clang11.list
28-
echo "deb-src http://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main" | sudo tee -a /etc/apt/sources.list.d/clang11.list
29-
travis_retry apt-get -y --quiet update
30-
fi
21+
# Install from LLVM repository (if available); otherwise install LLVM from official Ubuntu repositories
22+
ALPAKA_CI_UBUNTU_NAME=`lsb_release -c | awk '{print $2}'`
23+
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
3124

32-
# add clang-13 repository for ubuntu 20.04
33-
if [[ "$(cat /etc/os-release)" == *"20.04"* && "${ALPAKA_CI_CLANG_VER}" -eq 13 ]]
25+
# bionic = 18.04; focal = 20.04; jammy = 22.04
26+
if { [ "${ALPAKA_CI_UBUNTU_NAME}" == "bionic" ] && [ "${ALPAKA_CI_CLANG_VER}" -ge 7 ]; } || \
27+
{ [ "${ALPAKA_CI_UBUNTU_NAME}" == "focal" ] && [ "${ALPAKA_CI_CLANG_VER}" -ge 9 ]; } || \
28+
{ [ "${ALPAKA_CI_UBUNTU_NAME}" == "jammy" ] && [ "${ALPAKA_CI_CLANG_VER}" -ge 13 ]; }
3429
then
35-
wget -O - https://apt.llvm.org/llvm-snapshot.gpg.key | sudo apt-key add -
36-
sudo add-apt-repository 'deb http://apt.llvm.org/focal/ llvm-toolchain-focal-13 main'
30+
sudo add-apt-repository "deb http://apt.llvm.org/${ALPAKA_CI_UBUNTU_NAME}/ llvm-toolchain-${ALPAKA_CI_UBUNTU_NAME}-$ALPAKA_CI_CLANG_VER main"
3731
fi
3832

3933
travis_retry sudo apt-get -y --quiet --allow-unauthenticated --no-install-recommends install clang-${ALPAKA_CI_CLANG_VER}
4034

35+
if [ -n "${ALPAKA_CI_SANITIZERS}" ]
36+
then
37+
# llvm-symbolizer is required for meaningful output. This is part of the llvm base package which we don't install by default.
38+
travis_retry sudo apt-get -y --quiet --allow-unauthenticated --no-install-recommends install llvm-${ALPAKA_CI_CLANG_VER}
39+
fi
40+
4141
if [ "${ALPAKA_CI_STDLIB}" == "libc++" ]
4242
then
4343
travis_retry sudo apt-get -y --quiet update
44-
if [ "${ALPAKA_CI_CLANG_VER}" -gt 6 ]
44+
if [ "${ALPAKA_CI_CLANG_VER}" -ge 7 ]
4545
then
4646
travis_retry sudo apt-get -y --quiet --allow-unauthenticated --no-install-recommends install libc++-${ALPAKA_CI_CLANG_VER}-dev
4747
travis_retry sudo apt-get -y --quiet --allow-unauthenticated --no-install-recommends install libc++abi-${ALPAKA_CI_CLANG_VER}-dev
48+
if [ "${ALPAKA_CI_CLANG_VER}" -ge 12 ]
49+
then
50+
# Starting from LLVM 12 libunwind is required when using libc++. For some reason this isn't installed by default
51+
travis_retry sudo apt-get -y --quiet --allow-unauthenticated --no-install-recommends install libunwind-${ALPAKA_CI_CLANG_VER}-dev
52+
fi
4853
else
4954
# Ubuntu started numbering libc++ with version 7. If we got to this point, we need to install the
5055
# default libc++ and hope for the best
@@ -55,7 +60,7 @@ fi
5560

5661
if [ "${alpaka_ACC_CPU_B_OMP2_T_SEQ_ENABLE}" = "ON" ] || [ "${alpaka_ACC_CPU_B_SEQ_T_OMP2_ENABLE}" = "ON" ] || [ "${alpaka_ACC_ANY_BT_OMP5_ENABLE}" = "ON" ]
5762
then
58-
if [[ "${ALPAKA_CI_CLANG_VER}" =~ ^[0-9]+$ ]] && [ "${ALPAKA_CI_CLANG_VER}" -ge 8 ]
63+
if [[ "${ALPAKA_CI_CLANG_VER}" =~ ^[0-9]+$ ]] && [ "${ALPAKA_CI_CLANG_VER}" -ge 7 ]
5964
then
6065
LIBOMP_PACKAGE=libomp-${ALPAKA_CI_CLANG_VER}-dev
6166
else

0 commit comments

Comments
 (0)