Skip to content

Commit 193243d

Browse files
Core(M): Add support for LLVM/Clang
- Add compiler header for clang. - Enhance CoreValidation for clang.
1 parent 8a7f362 commit 193243d

180 files changed

Lines changed: 3323 additions & 10075 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/workflows/corevalidation.yml

Lines changed: 30 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,23 @@ jobs:
5454
mkdir -p arm-compiler-6.20.0
5555
tar xf standalone-linux-x86_64-rel.tgz -C arm-compiler-6.20.0
5656
echo "AC6_TOOLCHAIN_6_20_0=$(pwd)/arm-compiler-6.20.0/bin" >> $GITHUB_ENV
57+
58+
- name: Cache LLVM/Clang
59+
uses: actions/cache@v3
60+
with:
61+
key: clang-16.0.0
62+
path: /home/runner/LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64.tar.gz
63+
64+
- name: Install LLVM/Clang
65+
working-directory: /home/runner
66+
run: |
67+
sudo apt-get update
68+
sudo apt-get install libtinfo5
69+
test -f LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64.tar.gz || \
70+
wget https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm/releases/download/release-16.0.0/LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64.tar.gz
71+
tar xf LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64.tar.gz
72+
./LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64/bin/clang --version
73+
echo "CLANG_TOOLCHAIN_16_0_0=$(pwd)/LLVMEmbeddedToolchainForArm-16.0.0-Linux-x86_64/bin" >> $GITHUB_ENV
5774
5875
- name: Initialize CodeQL
5976
uses: github/codeql-action/init@v2
@@ -72,15 +89,26 @@ jobs:
7289
echo "Activate vcpkg environment"
7390
. <(curl https://aka.ms/vcpkg-init.sh -L)
7491
vcpkg activate
75-
92+
7693
echo "Activate Arm tool license"
7794
${AC6_TOOLCHAIN_6_20_0}/armlm activate --server https://mdk-preview.keil.arm.com --product KEMDK-COM0
7895
96+
echo "Patch CMSIS-Toolbox"
97+
pushd $(dirname $(which cbuild))/../etc
98+
curl -O https://raw.githubusercontent.com/Open-CMSIS-Pack/devtools/main/tools/buildmgr/cbuildgen/config/CLANG.16.0.0.cmake
99+
curl -O https://raw.githubusercontent.com/Open-CMSIS-Pack/devtools/main/tools/buildmgr/cbuildgen/config/CMSIS-Build-Utils.cmake
100+
curl -O https://raw.githubusercontent.com/Open-CMSIS-Pack/devtools/main/tools/projmgr/templates/cdefault.yml
101+
curl -O https://raw.githubusercontent.com/Open-CMSIS-Pack/devtools/main/tools/projmgr/templates/clang_linker_script.ld
102+
popd
103+
79104
echo "Register local CMSIS-DFP pack"
80105
cpackget add /home/runner/CMSIS-DFP/ARM.CMSIS_DFP.pdsc
81106
82107
echo "Run build script"
83-
./build.py --verbose -m FVP -c GCC -c AC6 build || echo "=== Something failed! ==="
108+
./build.py --verbose -m FVP -c AC6 -c GCC -c Clang build || echo "=== Something failed! ==="
109+
110+
echo "Deactivate Arm tool license"
111+
${AC6_TOOLCHAIN_6_20_0}/armlm deactivate --product KEMDK-COM0
84112
85113
- name: Perform CodeQL Analysis
86114
if: always()

0 commit comments

Comments
 (0)