Skip to content

compile failure for linux-user when host libc defines "struct sched_attr" in its sched.h

Host environment

  • Operating system: Archlinux
  • OS/kernel version: 6.12.11-2-lts
  • Architecture: x86_64

Description of problem

When I tried to build commit 871af84d the build process stopped in [3306/9698] Compiling C object libqemu...-linux-user.a.p/linux-user_syscall.c.o

Here is the error log:

../linux-user/syscall.c:364:8: error: redefinition of 'struct sched_attr'
  364 | struct sched_attr {
      |        ^~~~~~~~~~
In file included from /usr/include/bits/sched.h:63,
                 from /usr/include/sched.h:43,
                 from /usr/include/pthread.h:22,
                 from /usr/include/glib-2.0/glib/deprecated/gthread.h:126,
                 from /usr/include/glib-2.0/glib.h:115,
                 from /home/fred/qemu-git/src/qemu/include/glib-compat.h:32,
                 from /home/fred/qemu-git/src/qemu/include/qemu/osdep.h:161,
                 from ../linux-user/syscall.c:20:
/usr/include/linux/sched/types.h:98:8: note: originally defined here
   98 | struct sched_attr {
      |        ^~~~~~~~~~

Steps to reproduce

  1. Grab commit 871af84d
  2. Use this configure command line:
--prefix=/usr \
    --sysconfdir=/etc \
    --localstatedir=/var \
    --libexecdir=/usr/lib/qemu \
    --smbd=/usr/bin/smbd \
    --enable-modules \
    --enable-sdl \
    --disable-werror \
    "${@:2}"
  1. Launch ninja and wait.

Additional information

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information