Re: Has anyone tried to build QEMU from ports lately?

From: Warner Losh <imp_at_bsdimp.com>
Date: Mon, 10 Oct 2022 17:53:29 UTC
On Mon, Oct 10, 2022 at 10:56 AM Warner Losh <imp@bsdimp.com> wrote:

> I know what's causing this problem. I'll resolve.
>
> tl/dr: _pv_entry.h depends on sys/param.h being included before its use.
>

https://reviews.freebsd.org/D36927 fixes it by making sys/_pv_entry.h more
self-contained and less reliant on param.h pollution. The kernel includes
that
everywhere it's used, but userland is more hit or miss because
machine/pmap.h
isn't a well defined interface, but is needed for some things sometimes.

Warner


> Warner
>
> On Mon, Oct 10, 2022 at 4:38 AM Dennis Clarke <dclarke@blastwave.org>
> wrote:
>
>>
>> On :
>>
>> phobos#
>> phobos# uname -apKU
>> FreeBSD phobos 14.0-CURRENT FreeBSD 14.0-CURRENT #14
>> main-n258340-497cdf9673e: Sun Oct  2 09:51:14 GMT 2022
>> root@phobos:/usr/obj/usr/src/amd64.amd64/sys/GENERIC amd64 amd64 1400072
>> 1400072
>> phobos#
>>
>>
>> Seems to fail in a pretty consistent fashion :
>>
>> .
>> .
>> .
>> [5633/6772] Compiling C object libqemu-arm-bsd-user.fa.p/bsd-user_mmap.c.o
>> [5634/6772] Compiling C object
>> libqemu-arm-bsd-user.fa.p/bsd-user_signal.c.o
>> FAILED: libqemu-arm-bsd-user.fa.p/bsd-user_signal.c.o
>> cc -m64 -mcx16 -Ilibqemu-arm-bsd-user.fa.p -I. -I.. -Itarget/arm
>> -I../target/arm -I../common-user/host/x86_64 -I../bsd-user/include
>> -Ibsd-user/freebsd -I../bsd-user/freebsd -I../bsd-user/host/x86_64
>> -Ibsd-user -I../bsd-user -I../bsd-user/arm -Iqapi -Itrace -Iui
>> -Iui/shader -I/usr/local/include/capstone
>> -I/usr/ports/emulators/qemu-devel/work/qemu-09ed077d7fae5f825e18ff9a2004dcdd1b165edb
>>
>> -I/usr/local/include -I/usr/local/include/glib-2.0
>> -I/usr/local/lib/glib-2.0/include -fcolor-diagnostics -Wall
>> -Winvalid-pch -std=gnu11 -O0 -g -iquote . -iquote
>> /usr/ports/emulators/qemu-devel/work/qemu-09ed077d7fae5f825e18ff9a2004dcdd1b165edb
>>
>> -iquote
>> /usr/ports/emulators/qemu-devel/work/qemu-09ed077d7fae5f825e18ff9a2004dcdd1b165edb/include
>>
>> -iquote
>> /usr/ports/emulators/qemu-devel/work/qemu-09ed077d7fae5f825e18ff9a2004dcdd1b165edb/tcg/i386
>>
>> -pthread -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-definition -Wtype-limits -Wformat-security -Wformat-y2k
>> -Winit-self -Wignored-qualifiers -Wempty-body -Wnested-externs
>> -Wendif-labels -Wexpansion-to-defined -Wno-initializer-overrides
>> -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-string-plus-int
>> -Wno-typedef-redefinition -Wno-tautological-type-limit-compare
>> -Wno-psabi -fstack-protector-strong -O2 -pipe -fstack-protector-strong
>> -fno-strict-aliasing '-DPREFIX=\""/usr/local\""' -fPIE -DNEED_CPU_H
>> '-DCONFIG_TARGET="arm-bsd-user-config-target.h"'
>> '-DCONFIG_DEVICES="arm-bsd-user-config-devices.h"' -MD -MQ
>> libqemu-arm-bsd-user.fa.p/bsd-user_signal.c.o -MF
>> libqemu-arm-bsd-user.fa.p/bsd-user_signal.c.o.d -o
>> libqemu-arm-bsd-user.fa.p/bsd-user_signal.c.o -c ../bsd-user/signal.c
>> In file included from ../bsd-user/signal.c:27:
>> In file included from ../bsd-user/host/x86_64/host-signal.h:14:
>> In file included from /usr/include/vm/pmap.h:92:
>> /usr/include/machine/pmap.h:452:2: error: fields must have a constant
>> size: 'variable length array in structure' extension will never be
>> supported
>>          PV_CHUNK_HEADER
>>          ^
>> /usr/include/machine/pmap.h:448:12: note: expanded from macro
>> 'PV_CHUNK_HEADER'
>>          uint64_t                pc_map[_NPCM];  /* bitmap; 1 = free */  \
>>                                  ^
>> /usr/include/machine/pmap.h:456:2: error: fields must have a constant
>> size: 'variable length array in structure' extension will never be
>> supported
>>          PV_CHUNK_HEADER
>>          ^
>> /usr/include/machine/pmap.h:448:12: note: expanded from macro
>> 'PV_CHUNK_HEADER'
>>          uint64_t                pc_map[_NPCM];  /* bitmap; 1 = free */  \
>>                                  ^
>> 2 errors generated.
>> ninja: build stopped: subcommand failed.
>> gmake[3]: *** [Makefile:162: run-ninja] Error 1
>> gmake[3]: Leaving directory
>>
>> '/usr/ports/emulators/qemu-devel/work/qemu-09ed077d7fae5f825e18ff9a2004dcdd1b165edb/build'
>> gmake[2]: *** [GNUmakefile:11: all] Error 2
>> gmake[2]: Leaving directory
>>
>> '/usr/ports/emulators/qemu-devel/work/qemu-09ed077d7fae5f825e18ff9a2004dcdd1b165edb'
>> *** Error code 2
>>
>> Stop.
>> make[1]: stopped in /usr/ports/emulators/qemu-devel
>> *** Error code 1
>>
>> Stop.
>> make: stopped in /usr/ports/emulators/qemu-devel
>> phobos#
>> phobos# pwd
>> /usr/ports/emulators/qemu-devel
>> phobos#
>>
>> Possibly a problem with -linotify or who knows what ?
>>
>> Also see :
>>
>>    https://lists.nongnu.org/archive/html/qemu-devel/2022-10/msg01280.html
>>
>> In any case, something feels wrong here.
>>
>>
>> --
>> Dennis Clarke
>> RISC-V/SPARC/PPC/ARM/CISC
>> UNIX and Linux spoken
>> GreyBeard and suspenders optional
>>
>>