Skip to content

Commit 23f5c3f

Browse files
fix: compiler version incompatible
1 parent b97afc4 commit 23f5c3f

File tree

1 file changed

+90
-12
lines changed

1 file changed

+90
-12
lines changed

.github/workflows/coverage.yml

Lines changed: 90 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -463,13 +463,26 @@ jobs:
463463
sudo apt-get clean
464464
sudo rm -rf /var/lib/apt/lists/*
465465
466-
# Create symlinks to make llvm-cov and llvm-profdata available without version suffix
466+
# CRITICAL: Create symlinks to ensure clang-21 is used by build tools (tgn)
467+
# libc++-21 requires Clang 19+ and is incompatible with older Clang versions
468+
sudo ln -sf /usr/bin/clang-21 /usr/local/bin/clang
469+
sudo ln -sf /usr/bin/clang++-21 /usr/local/bin/clang++
470+
sudo ln -sf /usr/bin/llvm-ar-21 /usr/local/bin/llvm-ar
471+
sudo ln -sf /usr/bin/llvm-nm-21 /usr/local/bin/llvm-nm
472+
sudo ln -sf /usr/bin/llvm-ranlib-21 /usr/local/bin/llvm-ranlib
473+
474+
# Create symlinks for coverage tools
467475
sudo ln -sf /usr/bin/llvm-cov-21 /usr/local/bin/llvm-cov
468476
sudo ln -sf /usr/bin/llvm-profdata-21 /usr/local/bin/llvm-profdata
469477
sudo ln -sf /usr/bin/llvm-objdump-21 /usr/local/bin/llvm-objdump
470478
471479
# Verify installation
472-
llvm-cov --version
480+
echo "=== Verifying Clang-21 is correctly linked ==="
481+
which clang
482+
clang --version | head -3
483+
which clang++
484+
clang++ --version | head -3
485+
llvm-cov --version | head -3
473486
llvm-profdata merge --version 2>&1 | head -3 || echo "llvm-profdata installed"
474487
475488
- name: Clean profraw files before tests
@@ -830,13 +843,26 @@ jobs:
830843
sudo apt-get clean
831844
sudo rm -rf /var/lib/apt/lists/*
832845
833-
# Create symlinks to make llvm-cov and llvm-profdata available without version suffix
846+
# CRITICAL: Create symlinks to ensure clang-21 is used by build tools (tgn)
847+
# libc++-21 requires Clang 19+ and is incompatible with older Clang versions
848+
sudo ln -sf /usr/bin/clang-21 /usr/local/bin/clang
849+
sudo ln -sf /usr/bin/clang++-21 /usr/local/bin/clang++
850+
sudo ln -sf /usr/bin/llvm-ar-21 /usr/local/bin/llvm-ar
851+
sudo ln -sf /usr/bin/llvm-nm-21 /usr/local/bin/llvm-nm
852+
sudo ln -sf /usr/bin/llvm-ranlib-21 /usr/local/bin/llvm-ranlib
853+
854+
# Create symlinks for coverage tools
834855
sudo ln -sf /usr/bin/llvm-cov-21 /usr/local/bin/llvm-cov
835856
sudo ln -sf /usr/bin/llvm-profdata-21 /usr/local/bin/llvm-profdata
836857
sudo ln -sf /usr/bin/llvm-objdump-21 /usr/local/bin/llvm-objdump
837858
838859
# Verify installation
839-
llvm-cov --version
860+
echo "=== Verifying Clang-21 is correctly linked ==="
861+
which clang
862+
clang --version | head -3
863+
which clang++
864+
clang++ --version | head -3
865+
llvm-cov --version | head -3
840866
llvm-profdata merge --version 2>&1 | head -3 || echo "llvm-profdata installed"
841867
842868
- name: Clean profraw files before tests
@@ -1055,13 +1081,26 @@ jobs:
10551081
sudo apt-get clean
10561082
sudo rm -rf /var/lib/apt/lists/*
10571083
1058-
# Create symlinks to make llvm-cov and llvm-profdata available without version suffix
1084+
# CRITICAL: Create symlinks to ensure clang-21 is used by build tools (tgn)
1085+
# libc++-21 requires Clang 19+ and is incompatible with older Clang versions
1086+
sudo ln -sf /usr/bin/clang-21 /usr/local/bin/clang
1087+
sudo ln -sf /usr/bin/clang++-21 /usr/local/bin/clang++
1088+
sudo ln -sf /usr/bin/llvm-ar-21 /usr/local/bin/llvm-ar
1089+
sudo ln -sf /usr/bin/llvm-nm-21 /usr/local/bin/llvm-nm
1090+
sudo ln -sf /usr/bin/llvm-ranlib-21 /usr/local/bin/llvm-ranlib
1091+
1092+
# Create symlinks for coverage tools
10591093
sudo ln -sf /usr/bin/llvm-cov-21 /usr/local/bin/llvm-cov
10601094
sudo ln -sf /usr/bin/llvm-profdata-21 /usr/local/bin/llvm-profdata
10611095
sudo ln -sf /usr/bin/llvm-objdump-21 /usr/local/bin/llvm-objdump
10621096
10631097
# Verify installation
1064-
llvm-cov --version
1098+
echo "=== Verifying Clang-21 is correctly linked ==="
1099+
which clang
1100+
clang --version | head -3
1101+
which clang++
1102+
clang++ --version | head -3
1103+
llvm-cov --version | head -3
10651104
llvm-profdata merge --version 2>&1 | head -3 || echo "llvm-profdata installed"
10661105
10671106
- name: Clean profraw files before tests
@@ -1281,13 +1320,26 @@ jobs:
12811320
sudo apt-get clean
12821321
sudo rm -rf /var/lib/apt/lists/*
12831322
1284-
# Create symlinks to make llvm-cov and llvm-profdata available without version suffix
1323+
# CRITICAL: Create symlinks to ensure clang-21 is used by build tools (tgn)
1324+
# libc++-21 requires Clang 19+ and is incompatible with older Clang versions
1325+
sudo ln -sf /usr/bin/clang-21 /usr/local/bin/clang
1326+
sudo ln -sf /usr/bin/clang++-21 /usr/local/bin/clang++
1327+
sudo ln -sf /usr/bin/llvm-ar-21 /usr/local/bin/llvm-ar
1328+
sudo ln -sf /usr/bin/llvm-nm-21 /usr/local/bin/llvm-nm
1329+
sudo ln -sf /usr/bin/llvm-ranlib-21 /usr/local/bin/llvm-ranlib
1330+
1331+
# Create symlinks for coverage tools
12851332
sudo ln -sf /usr/bin/llvm-cov-21 /usr/local/bin/llvm-cov
12861333
sudo ln -sf /usr/bin/llvm-profdata-21 /usr/local/bin/llvm-profdata
12871334
sudo ln -sf /usr/bin/llvm-objdump-21 /usr/local/bin/llvm-objdump
12881335
12891336
# Verify installation
1290-
llvm-cov --version
1337+
echo "=== Verifying Clang-21 is correctly linked ==="
1338+
which clang
1339+
clang --version | head -3
1340+
which clang++
1341+
clang++ --version | head -3
1342+
llvm-cov --version | head -3
12911343
llvm-profdata merge --version 2>&1 | head -3 || echo "llvm-profdata installed"
12921344
12931345
- name: Clean profraw files before tests
@@ -1507,13 +1559,26 @@ jobs:
15071559
sudo apt-get clean
15081560
sudo rm -rf /var/lib/apt/lists/*
15091561
1510-
# Create symlinks to make llvm-cov and llvm-profdata available without version suffix
1562+
# CRITICAL: Create symlinks to ensure clang-21 is used by build tools (tgn)
1563+
# libc++-21 requires Clang 19+ and is incompatible with older Clang versions
1564+
sudo ln -sf /usr/bin/clang-21 /usr/local/bin/clang
1565+
sudo ln -sf /usr/bin/clang++-21 /usr/local/bin/clang++
1566+
sudo ln -sf /usr/bin/llvm-ar-21 /usr/local/bin/llvm-ar
1567+
sudo ln -sf /usr/bin/llvm-nm-21 /usr/local/bin/llvm-nm
1568+
sudo ln -sf /usr/bin/llvm-ranlib-21 /usr/local/bin/llvm-ranlib
1569+
1570+
# Create symlinks for coverage tools
15111571
sudo ln -sf /usr/bin/llvm-cov-21 /usr/local/bin/llvm-cov
15121572
sudo ln -sf /usr/bin/llvm-profdata-21 /usr/local/bin/llvm-profdata
15131573
sudo ln -sf /usr/bin/llvm-objdump-21 /usr/local/bin/llvm-objdump
15141574
15151575
# Verify installation
1516-
llvm-cov --version
1576+
echo "=== Verifying Clang-21 is correctly linked ==="
1577+
which clang
1578+
clang --version | head -3
1579+
which clang++
1580+
clang++ --version | head -3
1581+
llvm-cov --version | head -3
15171582
llvm-profdata merge --version 2>&1 | head -3 || echo "llvm-profdata installed"
15181583
15191584
- name: Clean profraw files before tests
@@ -1753,13 +1818,26 @@ jobs:
17531818
sudo apt-get clean
17541819
sudo rm -rf /var/lib/apt/lists/*
17551820
1756-
# Create symlinks to make llvm-cov and llvm-profdata available without version suffix
1821+
# CRITICAL: Create symlinks to ensure clang-21 is used by build tools (tgn)
1822+
# libc++-21 requires Clang 19+ and is incompatible with older Clang versions
1823+
sudo ln -sf /usr/bin/clang-21 /usr/local/bin/clang
1824+
sudo ln -sf /usr/bin/clang++-21 /usr/local/bin/clang++
1825+
sudo ln -sf /usr/bin/llvm-ar-21 /usr/local/bin/llvm-ar
1826+
sudo ln -sf /usr/bin/llvm-nm-21 /usr/local/bin/llvm-nm
1827+
sudo ln -sf /usr/bin/llvm-ranlib-21 /usr/local/bin/llvm-ranlib
1828+
1829+
# Create symlinks for coverage tools
17571830
sudo ln -sf /usr/bin/llvm-cov-21 /usr/local/bin/llvm-cov
17581831
sudo ln -sf /usr/bin/llvm-profdata-21 /usr/local/bin/llvm-profdata
17591832
sudo ln -sf /usr/bin/llvm-objdump-21 /usr/local/bin/llvm-objdump
17601833
17611834
# Verify installation
1762-
llvm-cov --version
1835+
echo "=== Verifying Clang-21 is correctly linked ==="
1836+
which clang
1837+
clang --version | head -3
1838+
which clang++
1839+
clang++ --version | head -3
1840+
llvm-cov --version | head -3
17631841
llvm-profdata merge --version 2>&1 | head -3 || echo "llvm-profdata installed"
17641842
17651843
- name: Install Go for building Go apps

0 commit comments

Comments
 (0)