Package: papi Version: 7.0.0-2 Severity: minor Tags: patch User: ubuntu-de...@lists.ubuntu.com Usertags: origin-ubuntu lunar ubuntu-patch
Dear maintainers, In Ubuntu we have observed that papi fails to build from source on ppc64el: [...] cc -I../testlib -I../validation_tests -I.. -I. -g -O3 -ffile-prefix-map=/<<PKGBUILDDIR>>=. -flto=auto -ffat-lto-objects -fstack-protector-strong -Wformat -Werror=format-security -Wdate-time -D_FORTIFY_SOURCE=2 -g -Wextra -Wall -DHAVE_ROCM_SMI -DPAPI_NUM_COMP=5 -O1 exeinfo.c ../testlib/libtestlib.a ../libpapi.so.7.0.0.0 -Wl,-Bsymbolic-functions -flto=auto -ffat-lto-objects -Wl,-z,relro -Wl,-z,now -Wl,--enable-new-dtags -o exeinfo /usr/bin/ld: /tmp/ccNFJgHF.ltrans0.ltrans.o:(.rodata+0x10): undefined reference to `f08_callback_' /usr/bin/ld: BFD (GNU Binutils for Ubuntu) 2.40 assertion fail ../../bfd/elf64-ppc.c:17380 collect2: error: ld returned 1 exit status make[2]: *** [Makefile:151: sde_test_f08] Error 1 [...] This error only happens when LTO is enabled. It is likely a bug in the LTO toolchain implementation, but to work around the build failure, I have uploaded the attached patch to Ubuntu which disables LTO on ppc64el. This patch should presently be a safe no-op in Debian, since Debian does not enable LTO by default. But as there are discussions to enable it by default in the future, I am forwarding this patch to you in case it proves useful. Thanks for considering, -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. Ubuntu Developer https://www.debian.org/ slanga...@ubuntu.com vor...@debian.org
diff -Nru papi-7.0.0/debian/rules papi-7.0.0/debian/rules --- papi-7.0.0/debian/rules 2022-11-29 05:40:48.000000000 -0800 +++ papi-7.0.0/debian/rules 2023-03-28 21:18:17.000000000 -0700 @@ -8,9 +8,14 @@ # see FEATURE AREAS in dpkg-buildflags(1) export DEB_BUILD_MAINT_OPTIONS = hardening=+all +include /usr/share/dpkg/architecture.mk + +ifeq ($(DEB_HOST_ARCH),ppc64el) + DEB_BUILD_MAINT_OPTIONS += optimize=-lto +endif + DPKG_EXPORT_BUILDFLAGS = yes include /usr/share/dpkg/buildflags.mk -include /usr/share/dpkg/architecture.mk # Upstream does not use CPPFLAGS CFLAGS += $(CPPFLAGS)