Package: src:linux
Version: 5.18.2-1
Severity: minor
Tags: sid bookworm
User: debian-...@lists.debian.org
Usertags: ftbfs-lto

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/linux_5.18.2-1_unstable_dpkglto.log
The last lines of the build log are at the end of this report.

[...]
util/parse-events.c:1519:30: warning: ‘MEM <unsigned char> [(struct 
perf_pmu_info *)&info + 32B]’ may be used uninitialized in this function 
[-Wmaybe-uninitialized]
util/parse-events.c:1638:22: warning: ‘info.scale’ may be used uninitialized in 
this function [-Wmaybe-uninitialized]
 1638 |         evsel->scale = info.scale;
      |                      ^
util/parse-events.c:1519:30: note: ‘info.scale’ was declared here
 1519 |         struct perf_pmu_info info;
      |                              ^
util/parse-events.c:1637:23: warning: ‘info.unit’ may be used uninitialized in 
this function [-Wmaybe-uninitialized]
 1637 |         evsel->unit = strdup(info.unit);
      |                       ^
util/parse-events.c:1519:30: note: ‘info.unit’ was declared here
 1519 |         struct perf_pmu_info info;
      |                              ^
util/parse-events.c: In function ‘parse_events_load_bpf_obj’:
../lib/bpf/libbpf.c:11973:18: warning: ‘n’ may be used uninitialized in this 
function [-Wmaybe-uninitialized]
11973 |         int err, n, i, tmp_cpus;
      |                  ^
util/parse-events.c: In function ‘parse_events_load_bpf’:
util/parse-events.c:821:37: warning: ‘error_pos’ may be used uninitialized in 
this function [-Wmaybe-uninitialized]
  821 |                                 idx = term->err_term + error_pos;
      |                                     ^
util/parse-events.c:794:13: note: ‘error_pos’ was declared here
  794 |         int error_pos;
      |             ^
util/trace-event-parse.c: In function ‘raw_field_value.constprop’:
util/trace-event-parse.c:84:28: warning: ‘val’ may be used uninitialized in 
this function [-Wmaybe-uninitialized]
   84 |         unsigned long long val;
      |                            ^
util/bpf-event.c: In function ‘perf_env__fetch_btf.isra’:
util/bpf-event.c:156:16: warning: ‘data_size’ may be used uninitialized in this 
function [-Wmaybe-uninitialized]
  156 |         node = malloc(data_size + sizeof(struct btf_node));
      |                ^
util/bpf-event.c:151:13: note: ‘data_size’ was declared here
  151 |         u32 data_size;
      |             ^
util/stat.c: In function ‘perf_event__fprintf_stat_config.isra’:
util/stat.c:538:52: warning: ‘MEM <unsigned char> [(struct perf_stat_config 
*)&sc + 4B]’ may be used uninitialized in this function [-Wmaybe-uninitialized]
  538 |         ret += fprintf(fp, "... scale     %d\n", sc.scale);
      |                                                    ^
util/stat.c:531:33: note: ‘MEM <unsigned char> [(struct perf_stat_config *)&sc 
+ 4B]’ was declared here
  531 |         struct perf_stat_config sc;
      |                                 ^
util/scripting-engines/trace-event-python.c: In function ‘python_process_event’:
util/scripting-engines/trace-event-python.c:884:13: warning: ‘val’ may be used 
uninitialized [-Wmaybe-uninitialized]
  884 |         pid = raw_field_value(event, "common_pid", data);
      |             ^
util/trace-event-parse.c:84:28: note: ‘val’ was declared here
   84 |         unsigned long long val;
      |                            ^
/usr/bin/ld: /tmp/ccct67DD.ltrans17.ltrans.o: in function 
`test_dwarf_unwind__thread':
/<<PKGBUILDDIR>>/tools/perf/arch/x86/tests/dwarf-unwind.c:72: undefined 
reference to `perf_regs_load'
/usr/bin/ld: /tmp/ccct67DD.ltrans10.ltrans.o:(.data.rel.ro+0x28): undefined 
reference to `memset_orig'
/usr/bin/ld: /tmp/ccct67DD.ltrans10.ltrans.o:(.data.rel.ro+0x40): undefined 
reference to `__memset'
/usr/bin/ld: /tmp/ccct67DD.ltrans10.ltrans.o:(.data.rel.ro+0x58): undefined 
reference to `memset_erms'
/usr/bin/ld: /tmp/ccct67DD.ltrans10.ltrans.o:(.data.rel+0x28): undefined 
reference to `memcpy_orig'
/usr/bin/ld: /tmp/ccct67DD.ltrans10.ltrans.o:(.data.rel+0x40): undefined 
reference to `__memcpy'
/usr/bin/ld: /tmp/ccct67DD.ltrans10.ltrans.o:(.data.rel+0x58): undefined 
reference to `memcpy_erms'
collect2: error: ld returned 1 exit status
make[5]: *** [Makefile.perf:677: 
/<<PKGBUILDDIR>>/debian/build/build-tools/tools/perf/perf] Error 1
make[5]: Leaving directory '/<<PKGBUILDDIR>>/tools/perf'
make[4]: *** [Makefile.perf:240: sub-make] Error 2
make[4]: Leaving directory '/<<PKGBUILDDIR>>/tools/perf'
make[3]: *** [/<<PKGBUILDDIR>>/debian/rules.d/tools/perf/Makefile:49: all] 
Error 2
make[3]: Leaving directory 
'/<<PKGBUILDDIR>>/debian/build/build-tools/tools/perf'
make[2]: *** [debian/rules.real:727: build-perf] Error 2
make[2]: Leaving directory '/<<PKGBUILDDIR>>'
make[1]: *** [debian/rules.gen:443: build-arch_amd64_real] Error 2
make[1]: Leaving directory '/<<PKGBUILDDIR>>'
make: *** [debian/rules:39: build-arch] Error 2
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2

Reply via email to