@@ -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