Skip to content

Commit f999deb

Browse files
committed
Switch to LLVM versions 20/21 as supported versions.
LLVM 21.1.0 has been released, so by our policy of supporting the two most recent LLVM releases, we can now move from LLVM 19/20 to LLVM 20/21.
1 parent aa0795b commit f999deb

55 files changed

Lines changed: 89 additions & 631 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/README.md

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,6 @@ create_llvm_artefacts.yml
2020
`Run planned testing`: planned_testing_caller.yml
2121
- description: runs planned_testing-style tests, called from an llvm version caller
2222

23-
`run planned tests for llvm 19`: planned_testing_caller_19.yml
24-
- description: runs planned_tests for llvm 19
25-
2623
`run planned tests for llvm 20`: planned_testing_caller_20.yml
2724
- description: runs planned_tests for llvm 20
2825

@@ -60,8 +57,6 @@ create_llvm_artefacts.yml
6057

6158
`CodeQL`: codeql.yml
6259

63-
`run planned tests for llvm 19`: planned_testing_caller_19.yml
64-
6560
`run planned tests for llvm 20`: planned_testing_caller_20.yml
6661

6762
`run planned tests for llvm 21`: planned_testing_caller_21.yml
@@ -74,8 +69,6 @@ create_llvm_artefacts.yml
7469

7570
### `workflow_dispatch:` workflows (manually runnable and available in forks)
7671

77-
`run planned tests for llvm 19`: planned_testing_caller_19.yml
78-
7972
`run planned tests for llvm 20`: planned_testing_caller_20.yml
8073

8174
`run planned tests for llvm 21`: planned_testing_caller_21.yml
@@ -114,7 +107,7 @@ The `publish docker images` workflow is configured to rebuild the containers whe
114107

115108
## LLVM artefact management
116109

117-
Planned_testing workflows each use a particular llvm artefact according to llvm version, OS and architecture (e.g. llvm 19/20/21, Ubuntu_24, x86_64). The specific version to use and branch to reference are contained in the .yml workflow definition. llvm artefacts can be installed, built or accessed as pre-built artefacts from Github cache. They are handled as follows:
110+
Planned_testing workflows each use a particular llvm artefact according to llvm version, OS and architecture (e.g. llvm 20/21, Ubuntu_24, x86_64). The specific version to use and branch to reference are contained in the .yml workflow definition. llvm artefacts can be installed, built or accessed as pre-built artefacts from Github cache. They are handled as follows:
118111
- PR testing: llvm artefact is installed as needed.
119112
- Planned testing: a flag is set depending on whether the llvm version is stable. If the `use_llvm_github_cache` flag is set, cache is used with llvm artefact being built if required. If the flag is not set, the llvm artefact is always built.
120113

@@ -153,11 +146,10 @@ Planned_testing workflows are configured to run via `workflow_dispatch:` (manual
153146
### Further tailoring of planned_testing workflows
154147
The following planned_testing workflows call `Run planned testing` (planned_testing_caller.yml) as a sub-workflow:
155148
```
156-
run planned tests for llvm 19: planned_testing_caller_19.yml
157149
run planned tests for llvm 20: planned_testing_caller_20.yml
158150
run planned tests for llvm 21: planned_testing_caller_21.yml
159151
```
160-
These workflows can be tailored to run specific llvm versions (e.g. 19), target lists (e.g. host_x86_64_linux) and test options (e.g. test_sanitizers), etc., by setting the scripted `inputs:` values to `Run planned testing` accordingly. See the planned_testing workflow .yml files for examples of current default values and tailoring options. With the exception of DPC++ PRs (see above) tailored values can only be set directly in workflow config and cannot currently be updated interactively on a per-run basis when called from the web interface (i.e. `workflow_dispatch:`).
152+
These workflows can be tailored to run specific llvm versions (e.g. 20), target lists (e.g. host_x86_64_linux) and test options (e.g. test_sanitizers), etc., by setting the scripted `inputs:` values to `Run planned testing` accordingly. See the planned_testing workflow .yml files for examples of current default values and tailoring options. With the exception of DPC++ PRs (see above) tailored values can only be set directly in workflow config and cannot currently be updated interactively on a per-run basis when called from the web interface (i.e. `workflow_dispatch:`).
161153

162154
### Planned_testing workflows in forks
163155
Planned_testing workflows can also be run via `workflow_dispatch:` (manual event trigger) in forks. Examples can be found [in this fork](https://github.com/AERO-Project-EU/oneapi-construction-kit/actions?query=event%3Aworkflow_dispatch).

.github/actions/do_build_llvm/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,11 @@ inputs:
1616
default: RelAssert
1717
llvm_version:
1818
type: string
19-
description: llvm version - used for naming purposes e.g. 19,20,main"
19+
description: llvm version - used for naming purposes e.g. 20,21,main"
2020
default: ""
2121
llvm_branch:
2222
type: string
23-
description: "The actual llvm branch to check out e.g. release/19.x"
23+
description: "The actual llvm branch to check out e.g. release/20.x"
2424
use_github_cache:
2525
type: boolean
2626
description: "Whether to use caching - will rebuild if not existing"

.github/actions/do_build_ock_artefact/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@ description: Action to build the oneapi-construction-kit as an artefact
55

66
inputs:
77
llvm_version:
8-
description: 'llvm version we want to use (18-19)'
9-
default: '19'
8+
description: 'llvm version we want to use (20-21)'
9+
default: '20'
1010
llvm_source:
1111
required: true
1212
description: 'source to get llvm from - one of install, cache or workflow id'

.github/actions/do_build_run_sanitizers/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ inputs:
1111
type: string
1212
required: true
1313
llvm_branch:
14-
description: 'The actual llvm branch to check out e.g. release/19.x'
14+
description: 'The actual llvm branch to check out e.g. release/20.x'
1515
type: string
1616
required: true
1717

.github/actions/run_opencl_cts/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ inputs:
1010
description: 'quick | full'
1111
default: "quick"
1212
llvm_version:
13-
description: 'llvm major version (e.g 19,20, main) - to be used for llvm specific fails'
13+
description: 'llvm major version (e.g 20,21,main) - to be used for llvm specific fails'
1414
required: true
1515
split_index:
1616
description: "optional split index so this run can be done with different splits, current only 0 or 1"

.github/actions/run_sycl_cts/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ inputs:
88
description: '"opencl" or "native_cpu"'
99
default: 'opencl'
1010
llvm_version:
11-
description: 'llvm major version (e.g 19,20, main) - to be used for llvm specific fails'
11+
description: 'llvm major version (e.g 20,21,main) - to be used for llvm specific fails'
1212
required: true
1313
split_index:
1414
description: "optional split index so this run can be done with different splits, current only 0 or 1"

.github/actions/setup_build/action.yml

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ inputs:
99
description: 'llvm Build type (Release, RelAssert) - note we need to use RelAssert for the cache pattern matching'
1010
default: RelAssert
1111
llvm_version:
12-
description: 'Major llvm version to use for fetching llvm cache e.g. 19'
12+
description: 'Major llvm version to use for fetching llvm cache e.g. 20'
1313
ubuntu_version:
1414
description: 'Version of ubuntu used for cache retrieval and prerequisites'
1515
default: 22.04
@@ -90,8 +90,11 @@ runs:
9090
- name: install llvm native ubuntu # via "apt install"
9191
if: inputs.os == 'ubuntu' && inputs.llvm_source == 'install'
9292
shell: bash
93+
env:
94+
UBUNTU_NAME: "${{ inputs.ubuntu_version == '24.04' && 'noble' || 'jammy' }}"
9395
run: |
9496
set -x
97+
echo "deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/$UBUNTU_NAME/ llvm-toolchain-$UBUNTU_NAME-${{ inputs.llvm_version }} main" | sudo tee /etc/apt/sources.list.d/llvm.list >/dev/null
9598
sudo apt update
9699
97100
sudo apt install -y llvm-${{ inputs.llvm_version }}-dev liblld-${{ inputs.llvm_version }}-dev libclang-${{ inputs.llvm_version }}-dev
@@ -104,7 +107,7 @@ runs:
104107
shell: pwsh
105108
env:
106109
# Map inputs.llvm_version to specific download release here.
107-
LLVM_RELEASE: "${{ inputs.llvm_version == '20' && '20.1.2' || '19.1.7' }}"
110+
LLVM_RELEASE: "${{ inputs.llvm_version == '21' && '21.1.0' || '20.1.8' }}"
108111
run: |
109112
Invoke-WebRequest https://github.com/llvm/llvm-project/releases/download/llvmorg-$env:LLVM_RELEASE/clang+llvm-$env:LLVM_RELEASE-x86_64-pc-windows-msvc.tar.xz -OutFile clang+llvm-$env:LLVM_RELEASE-x86_64-pc-windows-msvc.tar.xz
110113
7z x clang+llvm-$env:LLVM_RELEASE-x86_64-pc-windows-msvc.tar.xz -so | 7z x -si -ttar

.github/dockerfiles/Dockerfile_22.04-aarch64

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,6 @@ RUN pip install cmakelint colorama lit
1010
RUN apt-get install --yes spirv-tools
1111
RUN apt-get install --yes wget gpg
1212
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
13-
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' | tee /etc/apt/sources.list.d/llvm.list >/dev/null
14-
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main' | tee -a /etc/apt/sources.list.d/llvm.list >/dev/null
1513

1614
RUN apt-get install --yes zstd
1715
RUN apt-get install --yes libhwloc-dev

.github/dockerfiles/Dockerfile_22.04-x86-64

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,11 @@ RUN dpkg --add-architecture riscv64
1111
# The main archive only hosts amd64 and i386, we need to add ports for arm64 and riscv64.
1212
RUN sed -i -e '/^deb /{h;s|deb |&[arch=amd64,i386] |p;g;s|deb http://[^ ]*|deb [arch=arm64,riscv64] http://ports.ubuntu.com/ubuntu-ports|p;d}' /etc/apt/sources.list
1313

14-
# Add llvm repos
15-
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
16-
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-19 main' | tee /etc/apt/sources.list.d/llvm.list >/dev/null
17-
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/jammy/ llvm-toolchain-jammy-20 main' | tee -a /etc/apt/sources.list.d/llvm.list >/dev/null
1814
RUN apt-get update
1915

16+
# Add llvm key
17+
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
18+
2019
# Install minimum requirements
2120
RUN apt-get install --yes cmake libtinfo-dev
2221
# Install 32-bit requirements

.github/dockerfiles/Dockerfile_24.04-x86-64

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ FROM ubuntu:24.04
33
RUN apt-get update
44
RUN apt-get install -y wget git build-essential
55

6+
# Enable ability to install foreign packages for cross compilation
67
RUN dpkg --add-architecture i386
78
RUN dpkg --add-architecture arm64
89
RUN dpkg --add-architecture riscv64
@@ -12,10 +13,8 @@ RUN sed -i -e '/^Types:/,/^Signed-By:/{/Types:/{h;d};H;/^Signed-By:/{g;s|$|\nArc
1213

1314
RUN apt-get update
1415

16+
# Add llvm key
1517
RUN wget -qO - https://apt.llvm.org/llvm-snapshot.gpg.key | gpg --dearmor - | tee /usr/share/keyrings/llvm-archive-keyring.gpg >/dev/null
16-
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main' | tee /etc/apt/sources.list.d/llvm.list >/dev/null
17-
RUN echo 'deb [signed-by=/usr/share/keyrings/llvm-archive-keyring.gpg] http://apt.llvm.org/noble/ llvm-toolchain-noble-20 main' | tee -a /etc/apt/sources.list.d/llvm.list >/dev/null
18-
RUN apt-get update
1918

2019
# Install minimum requirements
2120
RUN apt-get install --yes cmake libtinfo-dev

0 commit comments

Comments
 (0)