ROCKNIX / distribution

Other
328 stars 61 forks source link

[BUG] Compiling qemu/gobject-introspection failed #403

Closed reavessm closed 3 weeks ago

reavessm commented 1 month ago

Describe the bug

Build fails due to duplicate header.

In file included from /usr/include/linux/btrfs.h:29,
                 from ../linux-user/syscall.c:163:
/usr/include/linux/fs.h:50:8: error: redefinition of 'struct file_clone_range'
   50 | struct file_clone_range {
      |        ^~~~~~~~~~~~~~~~
../linux-user/syscall.c:129:8: note: originally defined here
  129 | struct file_clone_range {
      |        ^~~~~~~~~~~~~~~~

How to reproduce

Steps to reproduce the behavior:

  1. Clone repo
  2. Checkout dev branch
  3. BASE_ONLY=true make -j1 RK3556

Information

Log file

[593/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/linux-user_mmap.c.o
[594/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/linux-user_signal.c.o
[595/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/linux-user_syscall.c.o
FAILED: libqemu-aarch64-linux-user.fa.p/linux-user_syscall.c.o
/home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/toolchain/bin/host-gcc -m64 -mcx16 -Ilibqemu-aarch64-linux-user.fa.p -I. -I.. -Itarget/arm -I../target/arm -I../common-user/host/x86_64 -I../linux-user/include/host/x86_64 -I../linux-user/include -Ilinux-user -I../linux-user -I../linux-user/aarch64 -Iqapi -Itrace -Iui/shader -I/home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/toolchain/include -I/home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/toolchain/include/glib-2.0 -I/home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/toolchain/lib/glib-2.0/include -fdiagnostics-color=auto -Wall -Winvalid-pch -std=gnu11 -O2 -isystem /home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/qemu-7.2.6/linux-headers -isystem linux-headers -iquote . -iquote /home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/qemu-7.2.6 -iquote /home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/qemu-7.2.6/include -iquote /home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/qemu-7.2.6/tcg/i386 -pthread -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -Wstrict-prototypes -Wredundant-decls -Wundef -Wwrite-strings -Wmissing-prototypes -fno-strict-aliasing -fno-common -fwrapv -Wold-style-declaration -Wold-style-definition -Wtype-limits -Wformat-security -Wformat-y2k -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs -Wendif-labels -Wexpansion-to-defined -Wimplicit-fallthrough=2 -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-psabi -fstack-protector-strong -march=native -O3 -Wall -pipe -Wno-format-security -fPIE -isystem../linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="aarch64-linux-user-config-target.h"' '-DCONFIG_DEVICES="aarch64-linux-user-config-devices.h"' -MD -MQ libqemu-aarch64-linux-user.fa.p/linux-user_syscall.c.o -MF libqemu-aarch64-linux-user.fa.p/linux-user_syscall.c.o.d -o libqemu-aarch64-linux-user.fa.p/linux-user_syscall.c.o -c ../linux-user/syscall.c
In file included from /usr/include/linux/btrfs.h:29,
                 from ../linux-user/syscall.c:163:
/usr/include/linux/fs.h:50:8: error: redefinition of 'struct file_clone_range'
   50 | struct file_clone_range {
      |        ^~~~~~~~~~~~~~~~
../linux-user/syscall.c:129:8: note: originally defined here
  129 | struct file_clone_range {
      |        ^~~~~~~~~~~~~~~~
[596/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/linux-user_thunk.c.o
[597/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/linux-user_uaccess.c.o
[598/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/fpu_softfloat.c.o
[599/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/linux-user_strace.c.o
[600/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/accel_tcg_tcg-runtime-gvec.c.o
[601/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/target_arm_translate-sve.c.o
[602/1343] Compiling C object libqemu-aarch64-linux-user.fa.p/target_arm_sve_helper.c.o
ninja: build stopped: subcommand failed.
make[2]: *** [Makefile:165: run-ninja] Error 1
make[2]: Leaving directory '/home/reavessm/Src/ROCKNIX/build.ROCKNIX-RK3566.aarch64/qemu-7.2.6/.x86_64-pc-linux-gnu'
FAILURE: scripts/build qemu:host has failed!
[221/293] [FAIL] build   qemu:host
parallel: This job failed:
package_worker 8 213 293 'build qemu:host'
FAILURE: qemu:host.build.failed exists, a previous dependency process has failed (seq: 213)
FAILURE: scripts/install gobject-introspection has failed!
[222/293] [FAIL] install gobject-introspection
parallel: This job failed:
package_worker 5 215 293 'install gobject-introspection'

Context

Building on Gentoo, /usr/include/linux/btrfs.h is provided by sys-kernel/linux-headers

r3claimer commented 1 month ago

This is an upstream kernel issue. Hopefully fixed soon but in the meantime we can patch it out.

reavessm commented 1 month ago

FWIW, rerunning the make command after the initial failure only shows the qemu build errors, not any gobject stuff

reavessm commented 1 month ago
> uname -r
6.8.12-gentoo-x86_64