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
- Grab commit 871af84d
- 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}"
- Launch ninja and wait.