@@ -48,32 +48,49 @@ jobs:
48
48
runs-on : ubuntu-24.04 # latest
49
49
strategy :
50
50
matrix :
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
51
+ variant :
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
- - uses : aws-actions/configure-aws-credentials@v4
69
- with :
70
- role-to-assume : ${{ env.CRT_CI_ROLE }}
71
- aws-region : ${{ env.AWS_DEFAULT_REGION }}
72
- # We can't use the `uses: docker://image` version yet, GitHub lacks authentication for actions -> packages
73
- - name : Build ${{ env.PACKAGE_NAME }}
74
- run : |
75
- 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 }}
86
+ - uses : aws-actions/configure-aws-credentials@v4
87
+ with :
88
+ role-to-assume : ${{ env.CRT_CI_ROLE }}
89
+ aws-region : ${{ env.AWS_DEFAULT_REGION }}
90
+ - name : Build ${{ matrix.variant.name }}
91
+ run : |
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
93
+ ./linux-container-ci.sh ${{ env.BUILDER_VERSION }} aws-crt-${{ env.LINUX_BASE_IMAGE }} build -p ${{ env.PACKAGE_NAME }} --compiler=${{ matrix.variant.name }} ${{ matrix.variant.extra-build-flag }}
77
94
78
95
clang-sanitizers :
79
96
runs-on : ubuntu-24.04 # latest
0 commit comments