Skip to content

Commit f734bd6

Browse files
waahm7graebm
andauthored
Fix CI for GCC-13 on Ubuntu-18 (#496)
Co-authored-by: Michael Graeb <[email protected]>
1 parent 9ad52cf commit f734bd6

File tree

1 file changed

+34
-17
lines changed

1 file changed

+34
-17
lines changed

.github/workflows/ci.yml

+34-17
Original file line numberDiff line numberDiff line change
@@ -49,31 +49,48 @@ jobs:
4949
strategy:
5050
matrix:
5151
compiler:
52-
- clang-3
53-
- clang-6
54-
- clang-8
55-
- clang-9
56-
- clang-10
57-
- clang-11
58-
- clang-15
59-
- clang-17
60-
- gcc-4.8
61-
- gcc-5
62-
- gcc-6
63-
- gcc-7
64-
- gcc-8
65-
- gcc-11
66-
# - gcc-13 TODO: figure out why its not passing
52+
- name: clang-3
53+
- name: clang-6
54+
- name: clang-8
55+
- name: clang-9
56+
- name: clang-10
57+
- name: clang-11
58+
- name: clang-15
59+
- name: clang-17
60+
- name: gcc-4.8
61+
- name: gcc-5
62+
- name: gcc-6
63+
- name: gcc-7
64+
- name: gcc-8
65+
- name: gcc-11
66+
- name: gcc-13
67+
# See Issue: https://github.com/llvm/llvm-project/issues/59007. Although this issue
68+
# has been fixed in LLVM, the fix will probably not propagate to older versions of Ubuntu and GCC 13.1.
69+
#
70+
# Starting with GLIBC version 2.34, the `dn_expand` function, previously found in `libresolv.so`, was moved to `libc.so`. This
71+
# function is used internally by the `getaddrinfo()` system call.
72+
#
73+
# In our setup (As of December 2024), we are using an Ubuntu 18 Docker image on a newer Ubuntu host.
74+
# However, due to compatibility issues between newer libasan.so in GCC 13.1
75+
# and the older Ubuntu image, the linker does not link with `libresolv.so`.
76+
# This results in crashes in `getaddrinfo()` since Ubuntu-18 GLIBC is 2.31.
77+
#
78+
# This problem does not occur on Ubuntu 22 and newer because GLIBC versions 2.34
79+
# and above include `dn_expand` in `libc.so`, eliminating the dependency on
80+
# `libresolv.so`.
81+
#
82+
# We can bypass this problem by linking with "resolv" manually until we bump
83+
# our base Linux image to Ubuntu 22.
84+
extra-build-flag: --cmake-extra=-DCMAKE_EXE_LINKER_FLAGS="-lresolv"
6785
steps:
6886
- uses: aws-actions/configure-aws-credentials@v4
6987
with:
7088
role-to-assume: ${{ env.CRT_CI_ROLE }}
7189
aws-region: ${{ env.AWS_DEFAULT_REGION }}
72-
# We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
7390
- name: Build ${{ env.PACKAGE_NAME }}
7491
run: |
7592
aws s3 cp s3://aws-crt-test-stuff/ci/${{ env.BUILDER_VERSION }}/linux-container-ci.sh ./linux-container-ci.sh && chmod a+x ./linux-container-ci.sh
76-
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler }}
93+
./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.compiler.name }} ${{ matrix.compiler.extra-build-flag }}
7794
7895
clang-sanitizers:
7996
runs-on: ubuntu-24.04 # latest

0 commit comments

Comments
 (0)