Control: reassign -1 dpkg-dev 1.22.21 Control: reassign 1110462 dpkg-dev 1.22.21 Control: forcemerge -1 1110462 Control: retitle -1 dpkg-buildflags: add -Wl,-z,gcs-report-dynamic=none to default arm64 ldflags
On Tue, 5 Aug 2025 21:13:46 +0200 Emanuele Rocca <[email protected]> wrote: > Source: systemd > Version: 257.7-1 > User: [email protected] > Usertags: gcs > > Hi, > > systemd fails to build from source on arm64 if built with GCC-15, currently in > experimental. > > GCC-15 includes support for an arm64 security feature called Guarded Control > Stack (GCS). To help with GCS adoption, the linker warns about shared libraries > built without GCS. For example: > > /usr/lib/gcc/aarch64-linux-gnu/15/../../../aarch64-linux- gnu/libncursesw.so.6: warning: GCS is required by -z gcs, but this shared library lacks the necessary property note. The dynamic loader might not enable GCS or refuse to load the program unless all the shared library dependencies have the GCS marking. > > The warning is harmless, and can be ignored. However, systemd is built with > --fatal-warnings, and for this reason will fail to build on arm64 once GCC-15 > becomes the default compiler in Debian. > > Luckily, it is possible to switch the warning off by passing the argument > gcs-report-dynamic=none to the linker. Please consider adding the following to > your debian/rules: > > ifeq ($(DEB_TARGET_ARCH),arm64) > DEB_LDFLAGS_MAINT_APPEND=-Wl,-z,gcs-report-dynamic=none > endif > > This can be done even before GCC-15 becomes the default compiler, to avoid > build failures when it does. Sorry but this approach does not make a lot of sense to me. It's either one of: - all libraries need to be rebuilt with such flags, and then these bugs need to be filed against the libraries mentioned in the errors above or - this is completely superfluous and should be ignored everywhere, which means that ldflag needs to be added to the default dpkg- buildflags, to avoid having to repeat the exact same workaround across (some subset of) ~35k arm64 packages For now I'll assume it's the latter and reassign accordingly, but please feel free to adjust if not.
