#1015551 mustache-d: ftbfs with LTO (link time optimization) enabled

#1015551#5
Date:
2022-07-19 16:57:04 UTC
From:
To:
This package currently fails to build (at least on the amd64
architecture) with link time optimizations enabled.  For a background
for LTO please see

https://wiki.debian.org/ToolChain/LTO

The goal is to enable this optimization by default in an upcoming
Debian release in dpkg-buildflags for 64bit architectures.  The goal
is to get this package to build with link time optimizations, or to
explicitly disable link time optimizations for this package build.

To reproduce the build failure, enable the lto optimization in
testing/unstable by adding "optimize=+lto" to DEB_BUILD_MAINT_OPTIONS
in the debian/rules file, or if this macro is unset, just set it:

export DEB_BUILD_MAINT_OPTIONS = optimize=+lto

Please try to fix the build with lto enabled, fixing the packaging or
forwarding the issue upstream. If the issue cannot be fixed,
explicitly disallow building the package with lto by adding to your
rules file:

export DEB_BUILD_MAINT_OPTIONS = optimize=-lto

or adding that string to your existing setting of DEB_BUILD_MAINT_OPTIONS.

The full build log can be found at:
http://qa-logs.debian.net/2022/06/09/dpkglto/mustache-d_0.1.4-1_unstable_dpkglto.log
The last lines of the build log are at the end of this report.

[...]
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
SCHROOT_ALIAS_NAME=unstable
SCHROOT_CHROOT_NAME=sid-amd64-sbuild
SCHROOT_COMMAND=env
SCHROOT_GID=1001
SCHROOT_GROUP=user42
SCHROOT_SESSION_ID=sid-amd64-sbuild-a02b5b6b-5858-4ff2-ac62-a5c2030c745c
SCHROOT_UID=1001
SCHROOT_USER=user42
SHELL=/bin/sh
USER=user42

dpkg-buildpackage
-----------------

Command: dpkg-buildpackage --sanitize-env -us -uc -b -rfakeroot
dpkg-buildpackage: info: source package mustache-d
dpkg-buildpackage: info: source version 0.1.4-1
dpkg-buildpackage: info: source distribution unstable
dpkg-buildpackage: info: source changed by Matthias Klumpp <mak@debian.org>
 dpkg-source --before-build .
dpkg-buildpackage: info: host architecture amd64
 debian/rules clean
dh clean
   dh_clean
 debian/rules binary
dh binary
   dh_update_autotools_config
   dh_autoreconf
   dh_auto_configure
	cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 meson .. --wrap-mode=nodownload --buildtype=plain --prefix=/usr --sysconfdir=/etc --localstatedir=/var --libdir=lib/x86_64-linux-gnu
The Meson build system
Version: 0.62.2
Source dir: /<<PKGBUILDDIR>>
Build dir: /<<PKGBUILDDIR>>/obj-x86_64-linux-gnu
Build type: native build
Project name: mustache-d
Project version: 0.1.4
D compiler for the host machine: ldc2 (llvm 1.29.0 "LDC - the LLVM D compiler (1.29.0):")
D linker for the host machine: ldc2 ld.bfd 2.38
Host machine cpu family: x86_64
Host machine cpu: x86_64
Build targets in project: 2

mustache-d 0.1.4

  User defined options
    buildtype    : plain
    libdir       : lib/x86_64-linux-gnu
    localstatedir: /var
    prefix       : /usr
    sysconfdir   : /etc
    wrap_mode    : nodownload

Found ninja-1.11.0 at /usr/bin/ninja
   dh_auto_build
	cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v
[1/5] ldc2 -I=libmustache-d.so.0.1.4.p -I=. -I=.. -I=../src -enable-color -wi -O -g -release -wi -relocation-model=pic -makedeps=libmustache-d.so.0.1.4.p/src_mustache.d.o.deps -of=libmustache-d.so.0.1.4.p/src_mustache.d.o -c ../src/mustache.d
[2/5] ldc2  -of=libmustache-d.so.0.1.4 libmustache-d.so.0.1.4.p/src_mustache.d.o -L=-soname -L=libmustache-d.so.0 -L=--allow-shlib-undefined -link-defaultlib-shared -shared -relocation-model=pic -flto=auto -ffat-lto-objects -L=-z -L=relro -O -g -release -wi
FAILED: libmustache-d.so.0.1.4
ldc2  -of=libmustache-d.so.0.1.4 libmustache-d.so.0.1.4.p/src_mustache.d.o -L=-soname -L=libmustache-d.so.0 -L=--allow-shlib-undefined -link-defaultlib-shared -shared -relocation-model=pic -flto=auto -ffat-lto-objects -L=-z -L=relro -O -g -release -wi
ldc2: for the --flto option: Cannot find option named 'auto'!
ldc2: Unknown command line argument '-ffat-lto-objects'.  Try: 'ldc2 --help'
ldc2: Did you mean '--enable-asserts'?
[3/5] ldc2 -I=mustached_test.p -I=. -I=.. -I=../src -enable-color -wi -O -g -release -wi -unittest -makedeps=mustached_test.p/example_basic.d.o.deps -of=mustached_test.p/example_basic.d.o -c ../example/basic.d
[4/5] ldc2 -I=mustached_test.p -I=. -I=.. -I=../src -enable-color -wi -O -g -release -wi -unittest -makedeps=mustached_test.p/src_mustache.d.o.deps -of=mustached_test.p/src_mustache.d.o -c ../src/mustache.d
ninja: build stopped: subcommand failed.
dh_auto_build: error: cd obj-x86_64-linux-gnu && LC_ALL=C.UTF-8 ninja -j8 -v returned exit code 1
make: *** [debian/rules:8: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2