Skip to content

File tree

.github/workflows/llvm-abi-tests.yml

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,9 @@ jobs:
4949

5050
- name: Setup Variables
5151
id: vars
52+
env:
53+
LLVM_VERSION_MAJOR: ${{ steps.version.outputs.major }}
54+
LLVM_VERSION_PATCH: ${{ steps.version.outputs.patch }}
5255
run: |
5356
# C++ ABI:
5457
# 18.1.0 we aren't doing ABI checks.
@@ -57,14 +60,14 @@ jobs:
5760
# 18.1.0 We want to check 17.0.x
5861
# 18.1.1 We want to check 18.1.0
5962
echo "BASELINE_VERSION_MINOR=1" >> "$GITHUB_OUTPUT"
60-
if [ ${{ steps.version.outputs.patch }} -eq 0 ]; then
63+
if [ $LLVM_VERSION_PATCH -eq 0 ]; then
6164
{
62-
echo "BASELINE_VERSION_MAJOR=$(( ${{ steps.version.outputs.major }} - 1))"
65+
echo "BASELINE_VERSION_MAJOR=$(( $LLVM_VERSION_MAJOR - 1))"
6366
echo "ABI_HEADERS=llvm-c"
6467
} >> "$GITHUB_OUTPUT"
6568
else
6669
{
67-
echo "BASELINE_VERSION_MAJOR=${{ steps.version.outputs.major }}"
70+
echo "BASELINE_VERSION_MAJOR=$LLVM_VERSION_MAJOR"
6871
echo "ABI_HEADERS=."
6972
} >> "$GITHUB_OUTPUT"
7073
fi
@@ -107,17 +110,21 @@ jobs:
107110
ninja -C build install-LLVM
108111
ninja -C build install-llvm-headers
109112
- name: Dump ABI
113+
env:
114+
REF: ${{ matrix.ref }}
115+
ABI_HEADERS: ${{ needs.abi-dump-setup.outputs.ABI_HEADERS }}
116+
LLVM_VERSION_MAJOR: ${{ matrix.llvm_version_major }}
110117
run: |
111-
if [ "${{ needs.abi-dump-setup.outputs.ABI_HEADERS }}" = "llvm-c" ]; then
118+
if [ "$ABI_HEADERS" = "llvm-c" ]; then
112119
nm ./install/lib/libLLVM.so | awk "/T _LLVM/ || /T LLVM/ { print $3 }" | sort -u | sed -e "s/^_//g" | cut -d ' ' -f 3 > llvm.symbols
113120
# Even though the -symbols-list option doesn't seem to filter out the symbols, I believe it speeds up processing, so I'm leaving it in.
114121
export EXTRA_ARGS="-symbols-list llvm.symbols"
115122
else
116123
touch llvm.symbols
117124
fi
118-
abi-dumper $EXTRA_ARGS -lver ${{ matrix.ref }} -skip-cxx -public-headers ./install/include/${{ needs.abi-dump-setup.outputs.ABI_HEADERS }} -o ${{ matrix.ref }}.abi ./install/lib/libLLVM.so
125+
abi-dumper $EXTRA_ARGS -lver $REF -skip-cxx -public-headers ./install/include/$ABI_HEADERS -o $$REF.abi ./install/lib/libLLVM.so
119126
# Remove symbol versioning from dumps, so we can compare across major versions.
120-
sed -i 's/LLVM_${{ matrix.llvm_version_major }}/LLVM_NOVERSION/' ${{ matrix.ref }}.abi
127+
sed -i "s/LLVM_$LLVM_VERSION_MAJOR/LLVM_NOVERSION/" $REF.abi
121128
- name: Upload ABI file
122129
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
123130
with:
@@ -157,6 +164,8 @@ jobs:
157164
path: symbol-list
158165

159166
- name: Compare ABI
167+
env:
168+
ABI_HEADERS: ${{ needs.abi-dump-setup.outputs.ABI_HEADERS }}
160169
run: |
161170
if [ -s symbol-list/llvm.symbols ]; then
162171
# This option doesn't seem to work with the ABI dumper, so passing it here.
@@ -165,7 +174,7 @@ jobs:
165174
# FIXME: Reading of gzip'd abi files on the GitHub runners stop
166175
# working some time in March of 2021, likely due to a change in the
167176
# runner's environment.
168-
abi-compliance-checker $EXTRA_ARGS -l libLLVM.so -old build-baseline/*.abi -new build-latest/*.abi || test "${{ needs.abi-dump-setup.outputs.ABI_HEADERS }}" = "llvm-c"
177+
abi-compliance-checker $EXTRA_ARGS -l libLLVM.so -old build-baseline/*.abi -new build-latest/*.abi || test "$ABI_HEADERS" = "llvm-c"
169178
- name: Upload ABI Comparison
170179
if: always()
171180
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1

0 commit comments

Comments
 (0)