@@ -78,6 +78,14 @@ if [[ "$COMPILER" == clang ]]; then
7878 CXX=" clang++-$COMPILER_VERSION "
7979 AR=" llvm-ar-$COMPILER_VERSION "
8080
81+ if systemd-analyze compare-versions " $COMPILER_VERSION " ge 17; then
82+ CFLAGS=" -fno-sanitize=function"
83+ CXXFLAGS=" -fno-sanitize=function"
84+ else
85+ CFLAGS=" "
86+ CXXFLAGS=" "
87+ fi
88+
8189 # Prefer the distro version if available
8290 if ! apt install --dry-run " llvm-$COMPILER_VERSION " > /dev/null; then
8391 # Latest LLVM stack deb packages provided by https://apt.llvm.org/
@@ -92,6 +100,8 @@ elif [[ "$COMPILER" == gcc ]]; then
92100 CC=" gcc-$COMPILER_VERSION "
93101 CXX=" g++-$COMPILER_VERSION "
94102 AR=" gcc-ar-$COMPILER_VERSION "
103+ CFLAGS=" "
104+ CXXFLAGS=" "
95105
96106 if ! apt install --dry-run " gcc-$COMPILER_VERSION " > /dev/null; then
97107 # Latest gcc stack deb packages provided by
@@ -104,16 +114,20 @@ else
104114 fatal " Unknown compiler: $COMPILER "
105115fi
106116
107- # PPA with some newer build dependencies (like zstd)
108- add-apt-repository -y ppa:upstream-systemd-ci/systemd-ci
109- apt-get -y update
110- apt-get -y build-dep systemd
111- apt-get -y install " ${PACKAGES[@]} "
117+ # This is added by default, and it is often broken, but we don't need anything from it
118+ sudo rm -f /etc/apt/sources.list.d/microsoft-prod.{list,sources}
119+ # add-apt-repository --enable-source does not work on deb822 style sources.
120+ for f in /etc/apt/sources.list.d/* .sources; do
121+ sudo sed -i " s/Types: deb/Types: deb deb-src/g" " $f "
122+ done
123+ sudo apt-get -y update
124+ sudo apt-get -y build-dep systemd
125+ sudo apt-get -y install " ${PACKAGES[@]} "
112126# Install more or less recent meson and ninja with pip, since the distro versions don't
113127# always support all the features we need (like --optimization=). Since the build-dep
114128# command above installs the distro versions, let's install the pip ones just
115129# locally and add the local bin directory to the $PATH.
116- pip3 install --user -r .github/workflows/requirements.txt --require-hashes
130+ pip3 install --user -r .github/workflows/requirements.txt --require-hashes --break-system-packages
117131export PATH=" $HOME /.local/bin:$PATH "
118132
119133$CC --version
@@ -135,8 +149,8 @@ for args in "${ARGS[@]}"; do
135149 info " Checking build with $args "
136150 # shellcheck disable=SC2086
137151 if ! AR=" $AR " \
138- CC=" $CC " CC_LD=" $LD " CFLAGS=" -Werror " \
139- CXX=" $CXX " CXX_LD=" $LD " CXXFLAGS=" -Werror " \
152+ CC=" $CC " CC_LD=" $LD " CFLAGS=" $CFLAGS " \
153+ CXX=" $CXX " CXX_LD=" $LD " CXXFLAGS=" $CXXFLAGS " \
140154 meson setup \
141155 -Dtests=unsafe -Dslow-tests=true -Dfuzz-tests=true --werror \
142156 -Dnobody-group=nogroup -Dcryptolib=" ${CRYPTOLIB:? } " \
0 commit comments