Package: cmake
Version: 3.25.1-1
Severity: minor
Tags: patch
User: ubuntu-de...@lists.ubuntu.com
Usertags: origin-ubuntu  ubuntu-patch
X-Debbugs-Cc: sl...@ubuntu.com

Dear Maintainer,

cmake fails to execute its buildtime tests (dh_auto_test) on many
architectures when compiled with an LTO enabled toolchain. E.g. on
Ubuntu/s390x (GCC-12 + LTO) we saw the following failure:

# CustomCommand test fails (LP: #2015872):
#   No INFO:symbol[pcStatic] found in: 
/<<PKGBUILDDIR>>/Build/Tests/CustomCommand/bin/libpcStatic.a
# Instead it produces the following strings (`strings bin/libpcStatic.a | grep 
INFO`):
#   INFO:symbol[]
#   INFO:symbol[pcStatic]

We also observed failures on amd64, arm64 and ppc64el in addition to s390x:
https://git.launchpad.net/ubuntu/+source/lto-disabled-list/commit/?h=ubuntu/devel&id=57f7f783

This does not directly affect Debian, but might, should Debian enable LTO by
default in the future. Please consider disabling LTO explicitly to avoid such
(future) failure, or feel free to reject this patch if you feel like it doesn't
apply.

  * d/rules: Disable LTO to fix FTBFS (LP: #2015872)


Thanks for considering the patch.

-- Lukas


-- System Information:
Debian Release: bookworm/sid
  APT prefers jammy-updates
  APT policy: (500, 'jammy-updates'), (500, 'jammy-security'), (500, 'jammy'), 
(100, 'jammy-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.19.0-38-generic (SMP w/8 CPU threads; PREEMPT)
Kernel taint flags: TAINT_PROPRIETARY_MODULE, TAINT_OOT_MODULE
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled
diff -Nru cmake-3.25.1/debian/rules cmake-3.25.1/debian/rules
--- cmake-3.25.1/debian/rules   2022-11-30 20:56:26.000000000 +0100
+++ cmake-3.25.1/debian/rules   2023-04-11 15:05:40.000000000 +0200
@@ -2,6 +2,14 @@
 
 include /usr/share/dpkg/pkg-info.mk
 
+# LTO makes the cmake build FTBFS on many architectures:
+# 
https://git.launchpad.net/ubuntu/+source/lto-disabled-list/commit/?h=ubuntu/devel&id=57f7f783
+# E.g. on s390x it makes the CustomCommand test fail (LP: #2015872):
+#   No INFO:symbol[pcStatic] found in: 
/<<PKGBUILDDIR>>/Build/Tests/CustomCommand/bin/libpcStatic.a
+# Instead it produces the following strings (`strings bin/libpcStatic.a | grep 
INFO`):
+#   INFO:symbol[]
+#   INFO:symbol[pcStatic]
+export DEB_BUILD_MAINT_OPTIONS=optimize=-lto
 export DEB_CXXFLAGS_MAINT_APPEND := $(shell dpkg-buildflags --get CPPFLAGS)
 export DEB_CFLAGS_MAINT_APPEND := $(shell dpkg-buildflags --get CPPFLAGS)
 export DEB_LDFLAGS_MAINT_APPEND := -Wl,--as-needed

Reply via email to