@@ -49,31 +49,48 @@ jobs:
49
49
strategy :
50
50
matrix :
51
51
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"
67
85
steps :
68
86
- uses : aws-actions/configure-aws-credentials@v4
69
87
with :
70
88
role-to-assume : ${{ env.CRT_CI_ROLE }}
71
89
aws-region : ${{ env.AWS_DEFAULT_REGION }}
72
- # We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
73
90
- name : Build ${{ env.PACKAGE_NAME }}
74
91
run : |
75
92
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 }}
77
94
78
95
clang-sanitizers :
79
96
runs-on : ubuntu-24.04 # latest
0 commit comments