Giter Site home page Giter Site logo

qemu-3dfx's Introduction

QEMU MESA GL/3Dfx Glide Pass-Through

Copyright (C) 2018-2022
KJ Liew <[email protected]>

Content

qemu-0/hw/3dfx      - Overlay for QEMU source tree to add 3Dfx Glide pass-through device model
qemu-1/hw/mesa      - Overlay for QEMU source tree to add MESA GL pass-through device model
scripts/sign_commit - Script for stamping commit id
wrappers/3dfx       - Glide wrappers for supported guest OS/environment (DOS/Windows/DJGPP/Linux)
wrappers/mesa       - MESA GL wrapper for supported guest OS/environment (Windows)

Patch

00-qemu82x-mesa-glide.patch - Patch for QEMU version 8.2.x (MESA & Glide)
01-qemu72x-mesa-glide.patch - Patch for QEMU version 7.2.x (MESA & Glide)
02-qemu620-mesa-glide.patch - Patch for QEMU version 6.2.0 (MESA & Glide)

QEMU Windows Guests Glide/OpenGL/Direct3D Acceleration

Witness, experience and share your thoughts on modern CPU/GPU prowess for retro Windows games on Apple Silicon macOS, Windows 10/11 and modern Linux. Most games can be installed and played in pristine condition without the hassle of hunting down unofficial, fan-made patches to play them on Windows 10/later or modern Linux/Wine.

Building QEMU

Following instructions are based on MSYS2/mingw-w64 BASH shell environment on Windows 10/11. It is meant to be simple and minor variations are inevitable due to different flavors of Linux distributions.

Simple guide to apply the patch:
(using 00-qemu82x-mesa-glide.patch)

$ mkdir ~/myqemu && cd ~/myqemu
$ git clone https://github.com/kjliew/qemu-3dfx.git
$ cd qemu-3dfx
$ wget https://download.qemu.org/qemu-8.2.1.tar.xz
$ tar xf qemu-8.2.1.tar.xz
$ cd qemu-8.2.1
$ rsync -r ../qemu-0/hw/3dfx ../qemu-1/hw/mesa ./hw/
$ patch -p0 -i ../00-qemu82x-mesa-glide.patch
$ bash ../scripts/sign_commit
$ mkdir ../build && cd ../build
$ ../qemu-8.2.1/configure && make

Building Guest Wrappers

Requirements:

  • base-devel (make, sed, xxd etc.)
  • gendef, shasum
  • mingw32 cross toolchain (binutils, gcc, windres, dlltool) for WIN32 DLL wrappers
  • Open-Watcom-1.9/v2.0 or Watcom C/C++ 11.0 for DOS32 OVL wrapper
  • {i586,i686}-pc-msdosdjgpp cross toolchain (binutils, gcc, dxe3gen) for DJGPP DXE wrappers

GCC Re-Targeting for DJGPP
An old-stable version of GCC was cherry-picked to re-target for DJGPP. There were no specific reason and no customization on GCC sources.

Target: i686-pc-msdosdjgpp
Configured with: ../gcc-7.5.0/configure --prefix=/opt/djgpp --target=i686-pc-msdosdjgpp --enable-languages=c,lto,c++ \
    --enable-lto --enable-graphite --disable-nls --disable-win32-registry --with-arch=i686 --with-tune=generic
Thread model: single
gcc version 7.5.0 (GCC)

$ cd ~/myqemu/qemu-3dfx/wrappers/3dfx
$ mkdir build && cd build
$ bash ../../../scripts/conf_wrapper
$ make && make clean

$ cd ~/myqemu/qemu-3dfx/wrappers/mesa
$ mkdir build && cd build
$ bash ../../../scripts/conf_wrapper
$ make && make clean

Installing Guest Wrappers

For Win9x/ME:

  • Copy FXMEMMAP.VXD to C:\WINDOWS\SYSTEM
  • Copy GLIDE.DLL, GLIDE2X.DLL and GLIDE3X.DLL to C:\WINDOWS\SYSTEM
  • Copy GLIDE2X.OVL to C:\WINDOWS
  • Copy OPENGL32.DLL to Game Installation folders

For Win2k/XP:

  • Copy FXPTL.SYS to %SystemRoot%\system32\drivers
  • Copy GLIDE.DLL, GLIDE2X.DLL and GLIDE3X.DLL to %SystemRoot%\system32
  • Run INSTDRV.EXE, require Administrator Priviledge
  • Copy OPENGL32.DLL to Game Installation folders

Donation

If this project helps you relive the nostalgic memory of Good Old Windows Games, you can now donate in the course of supporting Games Preservation with QEMU. Your donation also motivates and encourages further research in making QEMU the ultimate platform for Retro Windows Games.

For $89.99 donation, you will deserve the following donor's privileges:

  • QEMU binary package built for platform of your choice (choose ONE: Windows 10/11, Ubuntu, etc.)
  • QEMU-enhanced OpenGLide Host-side wrappers built for platform of your choice (choose ONE: Windows 10/11, Ubuntu, etc.)
  • QEMU-enhanced WineD3D libraries for Win98/2K/ME/XP VMs for DirectDraw/Direct3D games up to DirectX 9.0c
  • Game controllers support with QEMU USB Gamepad
  • SDL2 clipboard sharing through built-in QEMU vdagent
  • OpenGLide Guest-side wrappers for Windows
  • Elect up to 5 games for priority support and your name as the honorary sponsor in the supported & tested list of games.

paypal

A Note to Donation

The purpose of the donation is for preserving retailed CD/DVD games in their originality. It may be used to purchase the game online or from local thrift shops. The donation is NOT the ticket for one to learn how to use QEMU Virtual Machine in general. Sometimes, it may be difficult to get virtualization acceleration working and that would result in serious degradation of game experience with QEMU. It is a willing donation pledge and non-refundable. Many classic Windows games also have re-releases from GOG/Steam that work on Windows 10/11 and modern Linux. It can be an option to consider before making a donation.

Donations without leaving notes on Platform of Choice are regarded as upper-class donors who have no desire in exercising donor's privileges. A measure to avoid unneccessary spamming on emails. Donors are expected to proactively follow up the communication to exercise donor's privileges as wished. All donations are tracked in PayPal transaction history. Only "ONE" platform of choice per donation. Upgrades eligibility are limited to the SAME platform of choice.

About Game Election

The game election serves the purpose of allocating additional focus and resources to make them work. Sometimes, it means considerable efforts in researching, debugging and tracing the games to root cause the failures and come up with solutions. It is optional to make game election upon donation. My YouTube channel has video demos of games which already worked and more may be showing up periodically. It is typically a safe assumption that games using the same engine (IdTech1/2/3, LithTech, Unreal etc.) would also work, too. The N counts of eligibility would only be accounted once the game were made to work. If upgrades were neccessary, it would be a free upgrade for QEMU binary packages.

qemu-3dfx's People

Contributors

kjliew avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

qemu-3dfx's Issues

More specific version info (just a suggestion)

For scripting there will be a need to determine the specific git level that the qemu binary was built against (at run-time).
It would also help the users to ensure they're in fact running qemu-3dfx and not vanilla qemu (and also, to match their guest stubs).
A safe way to do this would be to add this information to the -V switch, it's just a printf().

failed to compile on RPI4

Hi!!! what i cant get it's how it would work without 3dfx (so, just gl).. I mean, we dont have mesa driver for windows 98.. how I could really use it?? What I need to install onto the guest windows 98??

after default 3dfx/mesa patch

                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:345:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0p1)(uint32_t arg0, uintptr_t arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:346:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0p2)(uint32_t arg0, uintptr_t arg1, uintptr_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:347:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1p2)(uint32_t arg0, uint32_t arg1, uintptr_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:348:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp2)(uintptr_t arg0, uintptr_t arg1, uintptr_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:349:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0p3)(uint32_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:350:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0p1a3)(uint32_t arg0, uintptr_t arg1, uint32_t arg2, uint32_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:351:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp2a5)(uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:352:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1p2a3)(uint32_t arg0, uint32_t arg1, uintptr_t arg2, uint32_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:353:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1p2a4)(uint32_t arg0, uint32_t arg1, uintptr_t arg2, uint32_t arg3, uint32_t arg4);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:354:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra2p3)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uintptr_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:355:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra3p4a5)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uintptr_t arg4, uint32_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:356:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra4p5)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uintptr_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:357:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra5p6)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uintptr_t arg6);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:358:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra6p7)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uintptr_t arg7);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:359:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra7p8)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uintptr_t arg8);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:360:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra6p7a9)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uintptr_t arg7, uint32_t arg8, uint32_t arg9);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:362:22: error: expected declaration specifiers or '...' before '*' token
     float __stdcall (*fprfra0)(uint32_t arg0);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:363:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp0f1)(uintptr_t arg0, float arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:364:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp0f2)(uintptr_t arg0, float arg1, float arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:365:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf0)(float arg0);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:366:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf1)(float arg0, float arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:367:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0f1)(uint32_t arg0, float arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:368:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra2f3)(uint32_t arg0, uint32_t arg1, uint32_t arg2, float arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:369:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf2)(float arg0, float arg1, float arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:370:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf3)(float arg0, float arg1, float arg2, float arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:371:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf3a4)(float arg0, float arg1, float arg2, float arg3, uint32_t arg4);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:372:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra12f13a14)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, float arg13, uint32_t arg14);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:373:5: warning: no semicolon at end of struct or union
     } PARG_FP;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:388:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0'
             sfp.fprp0 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:389:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0'
             *ret = (*(sfp.fprp0))(parg[0]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:398:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp1'
             sfp.fprp1 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:399:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp1'
             *ret = (*(sfp.fprp1))(parg[0], parg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:408:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p1'
             sfp.fpra0p1 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:409:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p1'
             *ret = (*(sfp.fpra0p1))(arg[0], parg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:415:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp2'
             sfp.fprp2 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:416:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp2'
             *ret = (*(sfp.fprp2))(parg[0], parg[1], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:421:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p3'
             sfp.fpra0p3 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:422:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p3'
             *ret = (*(sfp.fpra0p3))(arg[0], parg[1], parg[2], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:426:9: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp2a5'
      sfp.fprp2a5 = tblGlide2x[FEnum].ptr;
         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:427:19: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp2a5'
      *ret = (*(sfp.fprp2a5))(parg[0], parg[1],parg[2], arg[3], arg[4], arg[5]);
                   ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:432:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2p3'
             sfp.fpra2p3 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:433:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2p3'
             *ret = (*(sfp.fpra2p3))(arg[0], arg[1], arg[2], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:439:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2'
             sfp.fpra1p2 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:440:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2'
             *ret = (*(sfp.fpra1p2))(arg[0], arg[1], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:444:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2a3'
             sfp.fpra1p2a3 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:445:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2a3'
             *ret = (*(sfp.fpra1p2a3))(arg[0], arg[1], parg[2], arg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:449:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2a4'
             sfp.fpra1p2a4 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:450:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2a4'
             *ret = (*(sfp.fpra1p2a4))(arg[0], arg[1], parg[2], arg[3], arg[4]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:454:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p1a3'
             sfp.fpra0p1a3 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:455:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p1a3'
             *ret = (*(sfp.fpra0p1a3))(arg[0], parg[1], arg[2], arg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:460:9: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3p4a5'
      sfp.fpra3p4a5 = tblGlide2x[FEnum].ptr;
         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:461:19: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3p4a5'
      *ret = (*(sfp.fpra3p4a5))(arg[0], arg[1], arg[2], arg[3], parg[0], arg[5]);
                   ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:469:20: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4p5'
                 sfp.fpra4p5 = tblGlide2x[FEnum].ptr;
                    ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:470:30: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4p5'
                 *ret = (*(sfp.fpra4p5))(arg[0], arg[1], arg[2], arg[3], arg[4], parg[1]);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:482:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5p6'
             sfp.fpra5p6 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:483:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5p6'
             *ret = (*(sfp.fpra5p6))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:488:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6p7'
             sfp.fpra6p7 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:489:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6p7'
             *ret = (*(sfp.fpra6p7))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:493:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7p8'
             sfp.fpra7p8 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:494:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7p8'
             *ret = (*(sfp.fpra7p8))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], parg[0]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:498:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6p7a9'
             sfp.fpra6p7a9 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:499:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6p7a9'
             *ret = (*(sfp.fpra6p7a9))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], parg[3], arg[8], arg[9]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:506:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p2'
             sfp.fpra0p2 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:507:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p2'
             *ret = (*(sfp.fpra0p2))(arg[0], parg[1], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:515:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprfra0'
   sfp.fprfra0 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:516:13: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprfra0'
   r = (*(sfp.fprfra0))(arg[0]);
             ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:526:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0f1'
   sfp.fprp0f1 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:527:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0f1'
   *ret = (*(sfp.fprp0f1))(parg[0], a1);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:536:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0f2'
   sfp.fprp0f2 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:537:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0f2'
   *ret = (*(sfp.fprp0f2))(parg[0], a1, a2);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:545:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf0'
   sfp.fprf0 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:546:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf0'
   *ret = (*(sfp.fprf0))(a0);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:555:20: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf1'
                 sfp.fprf1 = tblGlide2x[FEnum].ptr;
                    ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:556:30: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf1'
                 *ret = (*(sfp.fprf1))(a0, a1);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:564:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0f1'
   sfp.fpra0f1 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:565:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0f1'
   *ret = (*(sfp.fpra0f1))(arg[0], a1);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:573:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2f3'
   sfp.fpra2f3 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:574:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2f3'
   *ret = (*(sfp.fpra2f3))(arg[0], arg[1], arg[2], a3);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:584:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf2'
   sfp.fprf2 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:585:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf2'
   *ret = (*(sfp.fprf2))(a0, a1, a2);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:596:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf3'
   sfp.fprf3 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:597:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf3'
   *ret = (*(sfp.fprf3))(a0, a1, a2, a3);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:608:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf3a4'
   sfp.fprf3a4 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:609:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf3a4'
   *ret = (*(sfp.fprf3a4))(a0, a1, a2, a3, arg[4]);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:617:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12f13a14'
   sfp.fpra12f13a14 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:618:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12f13a14'
   *ret = (*(sfp.fpra12f13a14))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], a13, arg[14]);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:643:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0)(void);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:644:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1)(uint32_t arg0);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:645:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra2)(uint32_t arg0, uint32_t arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:646:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra3)(uint32_t arg0, uint32_t arg1, uint32_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:647:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra4)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:648:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra5)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:649:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra6)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:650:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra7)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:651:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra8)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:652:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra9)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:653:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra10)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:654:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra11)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:655:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra12)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:656:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra13)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:657:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra14)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:658:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra15)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:659:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra16)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14, uint32_t arg15);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:660:5: warning: no semicolon at end of struct or union
     } UARG_FP;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:665:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0'
  ufp.fpra0 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:666:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0'
  *ret = (*(ufp.fpra0))();
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:669:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1'
  ufp.fpra1 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:670:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1'
  *ret = (*(ufp.fpra1))(arg[0]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:673:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2'
  ufp.fpra2 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:674:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2'
  *ret = (*(ufp.fpra2))(arg[0], arg[1]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:677:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3'
  ufp.fpra3 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:678:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3'
  *ret = (*(ufp.fpra3))(arg[0], arg[1], arg[2]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:681:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4'
  ufp.fpra4 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:682:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4'
  *ret = (*(ufp.fpra4))(arg[0], arg[1], arg[2], arg[3]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:685:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5'
  ufp.fpra5 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:686:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5'
  *ret = (*(ufp.fpra5))(arg[0], arg[1], arg[2], arg[3], arg[4]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:689:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6'
  ufp.fpra6 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:690:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6'
  *ret = (*(ufp.fpra6))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:693:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7'
  ufp.fpra7 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:694:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7'
  *ret = (*(ufp.fpra7))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:697:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra8'
  ufp.fpra8 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:698:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra8'
  *ret = (*(ufp.fpra8))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:701:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra9'
  ufp.fpra9 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:702:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra9'
  *ret = (*(ufp.fpra9))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:705:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra10'
  ufp.fpra10 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:706:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra10'
  *ret = (*(ufp.fpra10))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:709:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra11'
  ufp.fpra11 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:710:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra11'
  *ret = (*(ufp.fpra11))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:713:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12'
  ufp.fpra12 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:714:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12'
  *ret = (*(ufp.fpra12))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:717:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra13'
  ufp.fpra13 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:718:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra13'
  *ret = (*(ufp.fpra13))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:721:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra14'
  ufp.fpra14 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:722:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra14'
  *ret = (*(ufp.fpra14))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:725:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra15'
  ufp.fpra15 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:726:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra15'
  *ret = (*(ufp.fpra15))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:729:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra16'
  ufp.fpra16 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:730:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra16'
  *ret = (*(ufp.fpra16))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14], arg[15]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:661:13: warning: variable 'ufp' set but not used [-Wunused-but-set-variable]
     UARG_FP ufp;
             ^~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:374:13: warning: variable 'sfp' set but not used [-Wunused-but-set-variable]
     PARG_FP sfp;
             ^~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: At top level:
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:746:17: error: expected declaration specifiers or '...' before '*' token
 void __stdcall (*setConfig)(const uint32_t flag);
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:747:17: error: expected declaration specifiers or '...' before '*' token
 void __stdcall (*setConfigRes)(const int res);
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'conf_glide2x':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:750:9: error: 'setConfig' undeclared (first use in this function); did you mean 'GTestConfig'?
     if (setConfig)
         ^~~~~~~~~
         GTestConfig
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:752:16: error: 'setConfigRes' undeclared (first use in this function); did you mean 'GTestConfig'?
     if (res && setConfigRes)
                ^~~~~~~~~~~~
                GTestConfig
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'init_glide2x':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:791:5: error: 'setConfig' undeclared (first use in this function); did you mean 'GTestConfig'?
     setConfig = (void *)(dlsym(hDll, "setConfig"));
     ^~~~~~~~~
     GTestConfig
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:792:5: error: 'setConfigRes' undeclared (first use in this function); did you mean 'GTestConfig'?
     setConfigRes = (void *)(dlsym(hDll, "setConfigRes"));
     ^~~~~~~~~~~~
     GTestConfig
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrReadRegion':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:289:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrWriteRegion':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:296:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrGetProcAddress':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:303:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrGetString':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:310:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make[1]: *** [/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/rules.mak:69: hw/3dfx/glide2x_impl.o] Error 1
make[1]: *** Se espera a que terminen otras tareas....
  CC      i386-softmmu/migration/ram.o
  CC      i386-softmmu/accel/accel.o
make: *** [Makefile:472: x86_64-softmmu/all] Error 2
make: *** Se espera a que terminen otras tareas....
  CC      i386-softmmu/accel/qtest.o
  CC      i386-softmmu/accel/stubs/hax-stub.o
  CC      i386-softmmu/accel/stubs/hvf-stub.o
  CC      i386-softmmu/accel/stubs/whpx-stub.o
  CC      i386-softmmu/accel/stubs/kvm-stub.o
  CC      i386-softmmu/accel/tcg/tcg-all.o
  CC      i386-softmmu/accel/tcg/cputlb.o
  CC      i386-softmmu/accel/tcg/tcg-runtime.o
  CC      i386-softmmu/accel/tcg/tcg-runtime-gvec.o
  CC      i386-softmmu/accel/tcg/cpu-exec.o
  CC      i386-softmmu/accel/tcg/cpu-exec-common.o
  CC      i386-softmmu/accel/tcg/translate-all.o
  CC      i386-softmmu/accel/tcg/translator.o
  CC      i386-softmmu/dump/dump.o
  CC      i386-softmmu/hw/3dfx/glidept_mm.o
  CC      i386-softmmu/hw/3dfx/glide2x_impl.o
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrReadRegion':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:286:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra5p6)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uintptr_t arg6);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:287:5: error: 'fpra5p6' undeclared (first use in this function)
     fpra5p6 = tblGlide2x[FEnum_grLfbReadRegion].ptr;
     ^~~~~~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:287:5: note: each undeclared identifier is reported only once for each function it appears in
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrWriteRegion':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:293:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra6p7)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uintptr_t arg7);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:294:5: error: 'fpra6p7' undeclared (first use in this function)
     fpra6p7 = tblGlide2x[FEnum_grLfbWriteRegion].ptr;
     ^~~~~~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrGetProcAddress':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:300:26: error: expected declaration specifiers or '...' before '*' token
     uintptr_t __stdcall (*fprp0)(uintptr_t arg0);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:301:5: error: 'fprp0' undeclared (first use in this function)
     fprp0 = tblGlide2x[FEnum_grGetProcAddress].ptr;
     ^~~~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrGetString':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:307:29: error: expected declaration specifiers or '...' before '*' token
     const char * __stdcall (*fpra0)(uint32_t arg0);
                             ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:308:5: error: 'fpra0' undeclared (first use in this function)
     fpra0 = tblGlide2x[FEnum_grGetString].ptr;
     ^~~~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'doGlideFunc':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:343:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp0)(uintptr_t arg0);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:344:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp1)(uintptr_t arg0, uintptr_t arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:345:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0p1)(uint32_t arg0, uintptr_t arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:346:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0p2)(uint32_t arg0, uintptr_t arg1, uintptr_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:347:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1p2)(uint32_t arg0, uint32_t arg1, uintptr_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:348:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp2)(uintptr_t arg0, uintptr_t arg1, uintptr_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:349:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0p3)(uint32_t arg0, uintptr_t arg1, uintptr_t arg2, uintptr_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:350:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0p1a3)(uint32_t arg0, uintptr_t arg1, uint32_t arg2, uint32_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:351:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp2a5)(uintptr_t arg0, uintptr_t arg1, uintptr_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:352:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1p2a3)(uint32_t arg0, uint32_t arg1, uintptr_t arg2, uint32_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:353:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1p2a4)(uint32_t arg0, uint32_t arg1, uintptr_t arg2, uint32_t arg3, uint32_t arg4);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:354:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra2p3)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uintptr_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:355:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra3p4a5)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uintptr_t arg4, uint32_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:356:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra4p5)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uintptr_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:357:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra5p6)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uintptr_t arg6);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:358:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra6p7)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uintptr_t arg7);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:359:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra7p8)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uintptr_t arg8);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:360:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra6p7a9)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uintptr_t arg7, uint32_t arg8, uint32_t arg9);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:362:22: error: expected declaration specifiers or '...' before '*' token
     float __stdcall (*fprfra0)(uint32_t arg0);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:363:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp0f1)(uintptr_t arg0, float arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:364:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprp0f2)(uintptr_t arg0, float arg1, float arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:365:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf0)(float arg0);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:366:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf1)(float arg0, float arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:367:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0f1)(uint32_t arg0, float arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:368:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra2f3)(uint32_t arg0, uint32_t arg1, uint32_t arg2, float arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:369:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf2)(float arg0, float arg1, float arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:370:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf3)(float arg0, float arg1, float arg2, float arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:371:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fprf3a4)(float arg0, float arg1, float arg2, float arg3, uint32_t arg4);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:372:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra12f13a14)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, float arg13, uint32_t arg14);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:373:5: warning: no semicolon at end of struct or union
     } PARG_FP;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:388:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0'
             sfp.fprp0 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:389:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0'
             *ret = (*(sfp.fprp0))(parg[0]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:398:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp1'
             sfp.fprp1 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:399:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp1'
             *ret = (*(sfp.fprp1))(parg[0], parg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:408:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p1'
             sfp.fpra0p1 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:409:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p1'
             *ret = (*(sfp.fpra0p1))(arg[0], parg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:415:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp2'
             sfp.fprp2 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:416:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp2'
             *ret = (*(sfp.fprp2))(parg[0], parg[1], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:421:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p3'
             sfp.fpra0p3 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:422:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p3'
             *ret = (*(sfp.fpra0p3))(arg[0], parg[1], parg[2], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:426:9: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp2a5'
      sfp.fprp2a5 = tblGlide2x[FEnum].ptr;
         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:427:19: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp2a5'
      *ret = (*(sfp.fprp2a5))(parg[0], parg[1],parg[2], arg[3], arg[4], arg[5]);
                   ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:432:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2p3'
             sfp.fpra2p3 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:433:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2p3'
             *ret = (*(sfp.fpra2p3))(arg[0], arg[1], arg[2], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:439:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2'
             sfp.fpra1p2 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:440:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2'
             *ret = (*(sfp.fpra1p2))(arg[0], arg[1], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:444:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2a3'
             sfp.fpra1p2a3 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:445:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2a3'
             *ret = (*(sfp.fpra1p2a3))(arg[0], arg[1], parg[2], arg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:449:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2a4'
             sfp.fpra1p2a4 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:450:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1p2a4'
             *ret = (*(sfp.fpra1p2a4))(arg[0], arg[1], parg[2], arg[3], arg[4]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:454:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p1a3'
             sfp.fpra0p1a3 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:455:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p1a3'
             *ret = (*(sfp.fpra0p1a3))(arg[0], parg[1], arg[2], arg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:460:9: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3p4a5'
      sfp.fpra3p4a5 = tblGlide2x[FEnum].ptr;
         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:461:19: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3p4a5'
      *ret = (*(sfp.fpra3p4a5))(arg[0], arg[1], arg[2], arg[3], parg[0], arg[5]);
                   ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:469:20: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4p5'
                 sfp.fpra4p5 = tblGlide2x[FEnum].ptr;
                    ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:470:30: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4p5'
                 *ret = (*(sfp.fpra4p5))(arg[0], arg[1], arg[2], arg[3], arg[4], parg[1]);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:482:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5p6'
             sfp.fpra5p6 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:483:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5p6'
             *ret = (*(sfp.fpra5p6))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:488:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6p7'
             sfp.fpra6p7 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:489:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6p7'
             *ret = (*(sfp.fpra6p7))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:493:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7p8'
             sfp.fpra7p8 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:494:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7p8'
             *ret = (*(sfp.fpra7p8))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], parg[0]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:498:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6p7a9'
             sfp.fpra6p7a9 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:499:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6p7a9'
             *ret = (*(sfp.fpra6p7a9))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], parg[3], arg[8], arg[9]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:506:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p2'
             sfp.fpra0p2 = tblGlide2x[FEnum].ptr;
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:507:26: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0p2'
             *ret = (*(sfp.fpra0p2))(arg[0], parg[1], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:515:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprfra0'
   sfp.fprfra0 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:516:13: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprfra0'
   r = (*(sfp.fprfra0))(arg[0]);
             ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:526:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0f1'
   sfp.fprp0f1 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:527:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0f1'
   *ret = (*(sfp.fprp0f1))(parg[0], a1);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:536:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0f2'
   sfp.fprp0f2 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:537:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprp0f2'
   *ret = (*(sfp.fprp0f2))(parg[0], a1, a2);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:545:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf0'
   sfp.fprf0 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:546:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf0'
   *ret = (*(sfp.fprf0))(a0);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:555:20: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf1'
                 sfp.fprf1 = tblGlide2x[FEnum].ptr;
                    ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:556:30: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf1'
                 *ret = (*(sfp.fprf1))(a0, a1);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:564:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0f1'
   sfp.fpra0f1 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:565:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0f1'
   *ret = (*(sfp.fpra0f1))(arg[0], a1);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:573:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2f3'
   sfp.fpra2f3 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:574:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2f3'
   *ret = (*(sfp.fpra2f3))(arg[0], arg[1], arg[2], a3);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:584:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf2'
   sfp.fprf2 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:585:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf2'
   *ret = (*(sfp.fprf2))(a0, a1, a2);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:596:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf3'
   sfp.fprf3 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:597:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf3'
   *ret = (*(sfp.fprf3))(a0, a1, a2, a3);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:608:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf3a4'
   sfp.fprf3a4 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:609:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fprf3a4'
   *ret = (*(sfp.fprf3a4))(a0, a1, a2, a3, arg[4]);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:617:6: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12f13a14'
   sfp.fpra12f13a14 = tblGlide2x[FEnum].ptr;
      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:618:16: error: 'PARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12f13a14'
   *ret = (*(sfp.fpra12f13a14))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], a13, arg[14]);
                ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:643:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0)(void);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:644:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1)(uint32_t arg0);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:645:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra2)(uint32_t arg0, uint32_t arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:646:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra3)(uint32_t arg0, uint32_t arg1, uint32_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:647:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra4)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:648:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra5)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:649:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra6)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:650:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra7)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:651:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra8)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:652:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra9)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:653:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra10)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:654:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra11)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:655:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra12)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:656:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra13)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:657:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra14)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:658:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra15)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:659:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra16)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14, uint32_t arg15);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:660:5: warning: no semicolon at end of struct or union
     } UARG_FP;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:665:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0'
  ufp.fpra0 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:666:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0'
  *ret = (*(ufp.fpra0))();
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:669:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1'
  ufp.fpra1 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:670:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1'
  *ret = (*(ufp.fpra1))(arg[0]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:673:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2'
  ufp.fpra2 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:674:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2'
  *ret = (*(ufp.fpra2))(arg[0], arg[1]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:677:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3'
  ufp.fpra3 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:678:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3'
  *ret = (*(ufp.fpra3))(arg[0], arg[1], arg[2]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:681:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4'
  ufp.fpra4 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:682:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4'
  *ret = (*(ufp.fpra4))(arg[0], arg[1], arg[2], arg[3]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:685:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5'
  ufp.fpra5 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:686:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5'
  *ret = (*(ufp.fpra5))(arg[0], arg[1], arg[2], arg[3], arg[4]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:689:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6'
  ufp.fpra6 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:690:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6'
  *ret = (*(ufp.fpra6))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:693:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7'
  ufp.fpra7 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:694:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7'
  *ret = (*(ufp.fpra7))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:697:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra8'
  ufp.fpra8 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:698:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra8'
  *ret = (*(ufp.fpra8))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:701:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra9'
  ufp.fpra9 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:702:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra9'
  *ret = (*(ufp.fpra9))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:705:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra10'
  ufp.fpra10 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:706:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra10'
  *ret = (*(ufp.fpra10))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:709:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra11'
  ufp.fpra11 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:710:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra11'
  *ret = (*(ufp.fpra11))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:713:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12'
  ufp.fpra12 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:714:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12'
  *ret = (*(ufp.fpra12))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:717:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra13'
  ufp.fpra13 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:718:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra13'
  *ret = (*(ufp.fpra13))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:721:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra14'
  ufp.fpra14 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:722:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra14'
  *ret = (*(ufp.fpra14))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:725:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra15'
  ufp.fpra15 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:726:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra15'
  *ret = (*(ufp.fpra15))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:729:5: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra16'
  ufp.fpra16 = tblGlide2x[FEnum].ptr;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:730:15: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra16'
  *ret = (*(ufp.fpra16))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14], arg[15]);
               ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:661:13: warning: variable 'ufp' set but not used [-Wunused-but-set-variable]
     UARG_FP ufp;
             ^~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:374:13: warning: variable 'sfp' set but not used [-Wunused-but-set-variable]
     PARG_FP sfp;
             ^~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: At top level:
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:746:17: error: expected declaration specifiers or '...' before '*' token
 void __stdcall (*setConfig)(const uint32_t flag);
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:747:17: error: expected declaration specifiers or '...' before '*' token
 void __stdcall (*setConfigRes)(const int res);
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'conf_glide2x':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:750:9: error: 'setConfig' undeclared (first use in this function); did you mean 'GTestConfig'?
     if (setConfig)
         ^~~~~~~~~
         GTestConfig
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:752:16: error: 'setConfigRes' undeclared (first use in this function); did you mean 'GTestConfig'?
     if (res && setConfigRes)
                ^~~~~~~~~~~~
                GTestConfig
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'init_glide2x':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:791:5: error: 'setConfig' undeclared (first use in this function); did you mean 'GTestConfig'?
     setConfig = (void *)(dlsym(hDll, "setConfig"));
     ^~~~~~~~~
     GTestConfig
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:792:5: error: 'setConfigRes' undeclared (first use in this function); did you mean 'GTestConfig'?
     setConfigRes = (void *)(dlsym(hDll, "setConfigRes"));
     ^~~~~~~~~~~~
     GTestConfig
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrReadRegion':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:289:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrWriteRegion':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:296:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrGetProcAddress':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:303:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c: In function 'wrGetString':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/3dfx/glide2x_impl.c:310:1: warning: control reaches end of non-void function [-Wreturn-type]
 }
 ^
make[1]: *** [/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/rules.mak:69: hw/3dfx/glide2x_impl.o] Error 1

after mesa only patch

     ^~~~~~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:91:9: warning: implicit declaration of function 'fpra2p3' [-Wimplicit-function-declaration]
         fpra2p3(target, level, GL_TEXTURE_COMPRESSED_IMAGE_SIZE, (uintptr_t)&csize);
         ^~~~~~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:91:9: warning: nested extern declaration of 'fpra2p3' [-Wnested-externs]
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c: In function 'wrGetParamIa1p2':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:102:20: error: expected ')' before '*' token
     void (__stdcall *fpa1p2)(uint32_t arg0, uint32_t arg1, uintptr_t arg2);
                    ^~
                    )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:103:5: error: 'fpa1p2' undeclared (first use in this function)
     fpa1p2 = tblMesaGL[FEnum].ptr;
     ^~~~~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:104:5: warning: implicit declaration of function 'fpa1p2' [-Wimplicit-function-declaration]
     fpa1p2(arg0, arg1, (uintptr_t)&ret);
     ^~~~~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c: In function 'doMesaFunc':
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:129:29: error: expected ')' before '*' token
         uintptr_t (__stdcall *rpfpa0)(uint32_t);
                             ^~
                             )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:130:29: error: expected ')' before '*' token
         uintptr_t (__stdcall *rpfpa1)(uint32_t, uint32_t);
                             ^~
                             )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:131:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpp0)(uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:132:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpp1)(uintptr_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:133:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0p1)(uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:134:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0p2)(uint32_t, uintptr_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:135:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0p3)(uint32_t, uintptr_t, uintptr_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:136:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa1p2)(uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:137:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0p2a3)(uint32_t, uintptr_t, uintptr_t, uint32_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:138:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa2p3)(uint32_t, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:139:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa3p4)(uint32_t, uint32_t, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:140:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa4p5)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:141:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa5p6)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:142:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa6p7)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:143:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa7p8)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:144:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa8p9)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:145:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa9p10)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:147:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0f1)(uint32_t, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:148:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0f2)(uint32_t, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:149:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0f3)(uint32_t, float, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:150:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0f4)(uint32_t, float, float, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:151:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0f2a3f5)(uint32_t, float, float, uint32_t, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:152:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa1f2)(uint32_t, uint32_t, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:153:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa1f5)(uint32_t, uint32_t, float, float, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:154:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0f2p6)(uint32_t, uint32_t, float, float, float, float, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:155:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0f2a4p5)(uint32_t, float, float, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:156:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0f2a4f6a8p9)(uint32_t, float, float, uint32_t, uint32_t, float, float, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:157:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpf0)(float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:158:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpf1)(float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:159:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpf2)(float, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:160:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpf3)(float, float, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:161:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpf5)(float, float, float, float, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:162:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpf7)(float, float, float, float, float, float, float, float);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:164:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpd0)(double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:165:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpd1)(double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:166:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpd2)(double, double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:167:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpd3)(double, double, double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:168:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpd5)(double, double, double, double, double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:169:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0d1)(uint32_t, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:170:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0d2)(uint32_t, double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:171:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0d3)(uint32_t, double, double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:172:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0d4)(uint32_t, double, double, double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:173:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa1d2)(uint32_t, uint32_t, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:174:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa1d5)(uint32_t, uint32_t, double, double, double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:175:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0d2a3d5)(uint32_t, double, double, uint32_t, double, double);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:176:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0d2a4p5)(uint32_t, double, double, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:177:28: error: expected ')' before '*' token
         uint32_t (__stdcall *fpa0d2a4d6a8p9)(uint32_t, double, double, uint32_t, uint32_t, double, double, uint32_t, uint32_t, uintptr_t);
                            ^~
                            )
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:178:5: warning: no semicolon at end of struct or union
     } USFP;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:184:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0p2'
             usfp.fpa0p2 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:185:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0p2'
             *ret = (*usfp.fpa0p2)(arg[0], parg[1], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:191:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0p3'
             usfp.fpa0p3 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:192:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0p3'
             *ret = (*usfp.fpa0p3)(arg[0], parg[1], parg[2], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:208:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa2p3'
             usfp.fpa2p3 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:209:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa2p3'
             *ret = (*usfp.fpa2p3)(arg[0], arg[1], arg[2], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:216:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa3p4'
             usfp.fpa3p4 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:217:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa3p4'
             *ret = (*usfp.fpa3p4)(arg[0], arg[1], arg[2], arg[3], parg[0]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:227:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa4p5'
             usfp.fpa4p5 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:228:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa4p5'
             *ret = (*usfp.fpa4p5)(arg[0], arg[1], arg[2], arg[3], arg[4], parg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:231:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'rpfpa0'
             usfp.rpfpa0 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:232:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'rpfpa0'
             *ret = (*usfp.rpfpa0)(arg[0]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:237:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'rpfpa1'
             usfp.rpfpa1 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:238:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'rpfpa1'
             *ret = (*usfp.rpfpa1)(arg[0], arg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:350:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0p1'
             usfp.fpa0p1 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:351:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0p1'
             *ret = (*usfp.fpa0p1)(arg[0], parg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:445:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpp0'
             usfp.fpp0 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:446:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpp0'
             *ret = (*usfp.fpp0)(parg[0]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:452:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpp1'
             usfp.fpp1 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:453:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpp1'
             *ret = (*usfp.fpp1)(parg[0], parg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:462:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa5p6'
             usfp.fpa5p6 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:463:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa5p6'
             *ret = (*usfp.fpa5p6)(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:509:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1p2'
             usfp.fpa1p2 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:510:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1p2'
             *ret = (*usfp.fpa1p2)(arg[0], arg[1], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:514:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0p2a3'
             usfp.fpa0p2a3 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:515:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0p2a3'
             *ret = (*usfp.fpa0p2a3)(arg[0], parg[1], parg[2], arg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:520:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa6p7'
             usfp.fpa6p7 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:521:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa6p7'
             *ret = (*usfp.fpa6p7)(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], parg[3]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:530:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa7p8'
             usfp.fpa7p8 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:531:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa7p8'
             *ret = (*usfp.fpa7p8)(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], parg[0]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:535:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa8p9'
             usfp.fpa8p9 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:536:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa8p9'
             *ret = (*usfp.fpa8p9)(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], parg[1]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:542:17: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa9p10'
             usfp.fpa9p10 = tblMesaGL[FEnum].ptr;
                 ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:543:26: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa9p10'
             *ret = (*usfp.fpa9p10)(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], parg[2]);
                          ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:593:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf0'
                 usfp.fpf0 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:594:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf0'
                 *ret = (*usfp.fpf0)(a0);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:609:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf1'
                 usfp.fpf1 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:610:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf1'
                 *ret = (*usfp.fpf1)(a0,a1);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:627:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf3'
                 usfp.fpf3 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:628:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf2'
                 *ret = (*usfp.fpf2)(a0,a1,a2);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:644:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf3'
                 usfp.fpf3 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:645:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf3'
                 *ret = (*usfp.fpf3)(a0,a1,a2,a3);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:653:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf5'
                 usfp.fpf5 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:654:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf5'
                 *ret = (*usfp.fpf5)(a0,a1,a2,a3,a4,a5);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:661:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf7'
                 usfp.fpf7 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:662:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpf7'
                 *ret = (*usfp.fpf7)(a0,a1,a2,a3,a4,a5,a6,a7);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:681:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f1'
                 usfp.fpa0f1 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:682:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f1'
                 *ret = (*usfp.fpa0f1)(arg[0], a1);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:694:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2'
                 usfp.fpa0f2 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:695:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2'
                 *ret = (*usfp.fpa0f2)(arg[0], a1, a2);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:707:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f3'
                 usfp.fpa0f3 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:708:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f3'
                 *ret = (*usfp.fpa0f3)(arg[0], a1, a2, a3);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:721:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f4'
                 usfp.fpa0f4 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:722:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f4'
                 *ret = (*usfp.fpa0f4)(arg[0], a1, a2, a3, a4);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:732:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2a3f5'
                 usfp.fpa0f2a3f5 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:733:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2a3f5'
                 *ret = (*usfp.fpa0f2a3f5)(arg[0], a1, a2, arg[3], a4, a5);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:741:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2a4p5'
                 usfp.fpa0f2a4p5 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:742:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2a4p5'
                 *ret = (*usfp.fpa0f2a4p5)(arg[0], a1, a2, arg[3], arg[4], parg[1]);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:752:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2a4f6a8p9'
                 usfp.fpa0f2a4f6a8p9 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:753:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2a4f6a8p9'
                 *ret = (*usfp.fpa0f2a4f6a8p9)(arg[0], a1, a2, arg[3], arg[4], a5, a6, arg[7], arg[8], parg[1]);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:764:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1f2'
                 usfp.fpa1f2 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:765:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1f2'
                 *ret = (*usfp.fpa1f2)(arg[0], arg[1], a2);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:776:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1f5'
                 usfp.fpa1f5 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:777:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1f5'
                 *ret = (*usfp.fpa1f5)(arg[0], arg[1], a2, a3, a4, a5);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:787:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2p6'
                 usfp.fpa0f2p6 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:788:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0f2p6'
                 *ret = (*usfp.fpa0f2p6)(arg[0], arg[1], a2, a3, a4, a5, parg[2]);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:807:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd0'
                 usfp.fpd0 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:808:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd0'
                 *ret = (*usfp.fpd0)(a0);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:826:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd1'
                 usfp.fpd1 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:827:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd1'
                 *ret = (*usfp.fpd1)(a0,a1);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:849:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd2'
                 usfp.fpd2 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:850:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd2'
                 *ret = (*usfp.fpd2)(a0,a1,a2);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:866:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd3'
                 usfp.fpd3 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:867:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd3'
                 *ret = (*usfp.fpd3)(a0,a1,a2,a3);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:880:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd5'
                 usfp.fpd5 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:881:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpd5'
                 *ret = (*usfp.fpd5)(a0,a1,a2,a3,a4,a5);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:891:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d1'
                 usfp.fpa0d1 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:892:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d1'
                 *ret = (*usfp.fpa0d1)(arg[0], a1);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:904:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d2'
                 usfp.fpa0d2 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:905:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d2'
                 *ret = (*usfp.fpa0d2)(arg[0], a1, a2);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:917:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d3'
                 usfp.fpa0d3 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:918:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d3'
                 *ret = (*usfp.fpa0d3)(arg[0], a1, a2, a3);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:931:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d4'
                 usfp.fpa0d4 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:932:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d4'
                 *ret = (*usfp.fpa0d4)(arg[0], a1, a2, a3, a4);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:939:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1d2'
                 usfp.fpa1d2 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:940:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1d2'
                 *ret = (*usfp.fpa1d2)(arg[0], arg[1], a2);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:951:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1d5'
                 usfp.fpa1d5 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:952:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa1d5'
                 *ret = (*usfp.fpa1d5)(arg[0], arg[1], a2, a3, a4, a5);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:962:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d2a3d5'
                 usfp.fpa0d2a3d5 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:963:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d2a3d5'
                 *ret = (*usfp.fpa0d2a3d5)(arg[0], a1, a2, arg[5], a4, a5);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:971:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d2a4p5'
                 usfp.fpa0d2a4p5 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:972:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d2a4p5'
                 *ret = (*usfp.fpa0d2a4p5)(arg[0], a1, a2, arg[5], arg[6], parg[3]);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:982:21: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d2a4d6a8p9'
                 usfp.fpa0d2a4d6a8p9 = tblMesaGL[FEnum].ptr;
                     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:983:30: error: 'USFP' {aka 'union <anonymous>'} has no member named 'fpa0d2a4d6a8p9'
                 *ret = (*usfp.fpa0d2a4d6a8p9)(arg[0], a1, a2, arg[5], arg[6], a5, a6, arg[11], arg[12], parg[1]);
                              ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:992:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra0)(void);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:993:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra1)(uint32_t arg0);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:994:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra2)(uint32_t arg0, uint32_t arg1);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:995:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra3)(uint32_t arg0, uint32_t arg1, uint32_t arg2);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:996:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra4)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:997:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra5)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:998:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra6)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:999:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra7)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1000:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra8)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1001:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra9)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1002:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra10)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1003:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra11)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1004:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra12)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1005:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra13)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1006:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra14)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1007:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra15)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1008:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra16)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14, uint32_t arg15);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1009:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra17)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14, uint32_t arg15, uint32_t arg16);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1010:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra18)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14, uint32_t arg15, uint32_t arg16, uint32_t arg17);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1011:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra19)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14, uint32_t arg15, uint32_t arg16, uint32_t arg17, uint32_t arg18);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1012:25: error: expected declaration specifiers or '...' before '*' token
     uint32_t __stdcall (*fpra20)(uint32_t arg0, uint32_t arg1, uint32_t arg2, uint32_t arg3, uint32_t arg4, uint32_t arg5, uint32_t arg6, uint32_t arg7, uint32_t arg8, uint32_t arg9, uint32_t arg10, uint32_t arg11, uint32_t arg12, uint32_t arg13, uint32_t arg14, uint32_t arg15, uint32_t arg16, uint32_t arg17, uint32_t arg18, uint32_t arg19);
                         ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1013:5: warning: no semicolon at end of struct or union
     } UARG_FP;
     ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1018:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0'
         ufp.fpra0 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1019:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra0'
         *ret = (*(ufp.fpra0))();
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1022:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1'
         ufp.fpra1 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1023:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra1'
         *ret = (*(ufp.fpra1))(arg[0]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1026:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2'
         ufp.fpra2 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1027:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra2'
         *ret = (*(ufp.fpra2))(arg[0], arg[1]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1030:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3'
         ufp.fpra3 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1031:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra3'
         *ret = (*(ufp.fpra3))(arg[0], arg[1], arg[2]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1034:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4'
         ufp.fpra4 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1035:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra4'
         *ret = (*(ufp.fpra4))(arg[0], arg[1], arg[2], arg[3]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1038:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5'
         ufp.fpra5 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1039:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra5'
         *ret = (*(ufp.fpra5))(arg[0], arg[1], arg[2], arg[3], arg[4]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1042:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6'
         ufp.fpra6 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1043:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra6'
         *ret = (*(ufp.fpra6))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1046:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7'
         ufp.fpra7 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1047:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra7'
         *ret = (*(ufp.fpra7))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1050:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra8'
         ufp.fpra8 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1051:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra8'
         *ret = (*(ufp.fpra8))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1054:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra9'
         ufp.fpra9 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1055:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra9'
         *ret = (*(ufp.fpra9))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1058:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra10'
         ufp.fpra10 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1059:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra10'
         *ret = (*(ufp.fpra10))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1062:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra11'
         ufp.fpra11 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1063:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra11'
         *ret = (*(ufp.fpra11))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1066:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12'
         ufp.fpra12 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1067:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra12'
         *ret = (*(ufp.fpra12))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1070:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra13'
         ufp.fpra13 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1071:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra13'
         *ret = (*(ufp.fpra13))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1074:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra14'
         ufp.fpra14 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1075:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra14'
         *ret = (*(ufp.fpra14))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1078:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra15'
         ufp.fpra15 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1079:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra15'
         *ret = (*(ufp.fpra15))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1082:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra16'
         ufp.fpra16 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1083:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra16'
         *ret = (*(ufp.fpra16))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14], arg[15]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1086:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra17'
         ufp.fpra17 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1087:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra17'
         *ret = (*(ufp.fpra17))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14], arg[15], arg[16]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1090:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra18'
         ufp.fpra18 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1091:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra18'
         *ret = (*(ufp.fpra18))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14], arg[15], arg[16], arg[17]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1094:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra19'
         ufp.fpra19 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1095:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra19'
         *ret = (*(ufp.fpra19))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14], arg[15], arg[16], arg[17], arg[18]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1098:12: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra20'
         ufp.fpra20 = tblMesaGL[FEnum].ptr;
            ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1099:22: error: 'UARG_FP' {aka 'union <anonymous>'} has no member named 'fpra20'
         *ret = (*(ufp.fpra20))(arg[0], arg[1], arg[2], arg[3], arg[4], arg[5], arg[6], arg[7], arg[8], arg[9], arg[10], arg[11], arg[12], arg[13], arg[14], arg[15], arg[16], arg[17], arg[18], arg[19]);
                      ^
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:1014:13: warning: variable 'ufp' set but not used [-Wunused-but-set-variable]
     UARG_FP ufp;
             ^~~
/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/hw/mesa/mesagl_impl.c:179:10: warning: variable 'usfp' set but not used [-Wunused-but-set-variable]
     USFP usfp;
          ^~~~
  CC      x86_64-softmmu/hw/mesa/mglcntx_linux.o
  CC      x86_64-softmmu/hw/mesa/mglvarry.o
  CC      x86_64-softmmu/hw/mesa/szgldata.o
make[1]: *** [/home/pi/Escritorio/qemu-3dfx/qemu-4.1.1/rules.mak:69: hw/mesa/mesagl_impl.o] Error 1
make[1]: *** Se espera a que terminen otras tareas....

Cannot include hw/hw.h from user emulation

Hello, I tried building qemu-3dfx on my Arch machine and it gave me this error

...
[5/2751] Generating 'libqemu-mips-linux-user.fa.p/decode-vr54xx.c.inc'.
[6/2751] Generating 'libqemu-mips-linux-user.fa.p/decode-rel6.c.inc'.
[7/2751] Generating 'libqemu-mips-linux-user.fa.p/decode-tx79.c.inc'.
[8/2751] Generating 'libqemu-mips-linux-user.fa.p/syscall_o32_nr.h'.
[9/2751] Generating 'libqemu-mipsn32el-linux-user.fa.p/decode-vr54xx.c.inc'.
[10/2751] Generating 'libqemu-mips-linux-user.fa.p/decode-msa.c.inc'.
[11/2751] Generating 'libqemu-xtensa-linux-user.fa.p/syscall_nr.h'.
[12/2751] Generating 'libqemu-mipsn32-linux-user.fa.p/syscall_n32_nr.h'.
[13/2751] Generating 'libqemu-mipsn32-linux-user.fa.p/decode-rel6.c.inc'.
[14/2751] Generating 'libqemu-mipsn32-linux-user.fa.p/decode-msa.c.inc'.
[15/2751] Generating 'libqemu-mipsn32-linux-user.fa.p/decode-tx79.c.inc'.
[16/2751] Generating 'libqemu-mipsn32-linux-user.fa.p/decode-vr54xx.c.inc'.
[17/2751] Generating qemu-version.h with a custom command (wrapped by meson to capture output)
[18/2669] Generating 'libqemu-ppc64le-linux-user.fa.p/syscall_nr.h'.
[19/2669] Generating 'libqemu-or1k-linux-user.fa.p/decode-insns.c.inc'.
[20/2669] Generating ppc64le-linux-user-gdbstub-xml.c with a custom command (wrapped by meson to capture output)
[21/2669] Compiling C object libqemu-mips-linux-user.fa.p/linux-user_mips_signal.c.o
[22/2669] Compiling C object libqemu-mips-linux-user.fa.p/linux-user_mips_cpu_loop.c.o
[23/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_cpu.c.o
[24/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_fpu.c.o
[25/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_op_helper.c.o
[26/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_msa.c.o
[27/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_gdbstub.c.o
[28/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_rel6_translate.c.o
[29/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_exception.c.o
[30/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_ldst_helper.c.o
[31/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_dsp_helper.c.o
[32/2669] Compiling C object libqemu-mips-linux-user.fa.p/tcg_region.c.o
[33/2669] Compiling C object libqemu-mips-linux-user.fa.p/tcg_optimize.c.o
[34/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_lmmi_helper.c.o
[35/2669] Compiling C object libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o
FAILED: libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o
cc -m64 -mcx16 -Ilibqemu-i386-linux-user.fa.p -I. -I../qemu-6.2.0 -Itarget/i386 -I../qemu-6.2.0/target/i386 -I../qemu-6.2.0/linux-user/host/x86_64 -Ilinux-user -I../qemu-6.2.0/linux-user -Ilinux-user/i386 -I../qemu-6.2.0/linux-user/i386 -I../qemu-6.2.0/capstone/include/capstone -Itrace -Iqapi -Iui -Iui/shader -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -fdiagnostics-color=auto -Wall -Winvalid-pch -std=gnu11 -O2 -g -isystem /run/media/storage/user-files/myqemu/qemu-3dfx/qemu-6.2.0/linux-headers -isystem linux-headers -iquote . -iquote /run/media/storage/user-files/myqemu/qemu-3dfx/qemu-6.2.0 -iquote /run/media/storage/user-files/myqemu/qemu-3dfx/qemu-6.2.0/include -iquote /run/media/storage/user-files/myqemu/qemu-3dfx/qemu-6.2.0/disas/libvixl -iquote /run/media/storage/user-files/myqemu/qemu-3dfx/qemu-6.2.0/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 -fPIE -isystem../qemu-6.2.0/linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="i386-linux-user-config-target.h"' '-DCONFIG_DEVICES="i386-linux-user-config-devices.h"' -MD -MQ libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o -MF libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o.d -o libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o -c ../qemu-6.2.0/hw/3dfx/glide2x_impl.c
In file included from ../qemu-6.2.0/hw/3dfx/glide2x_impl.c:22:
/run/media/storage/user-files/myqemu/qemu-3dfx/qemu-6.2.0/include/hw/hw.h:5:2: error: #error Cannot include hw/hw.h from user emulation
    5 | #error Cannot include hw/hw.h from user emulation
      |  ^~~~~
[36/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_fpu_helper.c.o
[37/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_msa_translate.c.o
[38/2669] Compiling C object libqemu-mips-linux-user.fa.p/target_mips_tcg_msa_helper.c.o
ninja: build stopped: subcommand failed.
make: *** [Makefile:162: run-ninja] Error 1

Compilation fails on Linux Mint 20

Hi,

Awesome project, thank you for your hard work!!
It seems a couple of variables are missing in mglcntx_linux.c:

../qemu-5.2.0/hw/mesa/mglcntx_linux.c:294:82: error: ‘qemu_host_page_size’ undeclared (first use in this function); did you mean ‘qemu_opt_get_size’?
../qemu-5.2.0/hw/mesa/mglcntx_linux.c:296:34: error: ‘qemu_host_page_mask’ undeclared (first use in this function); did you mean ‘qemu_real_host_page_mask’?

Using qemu-5.2.0 and the newest git (Dec 12, 2020)
These variables can be defined as extern, then it compiles. But maybe there is a more appropriate fix.

current fxmemmap.vxd and glide-dll's as a built bundle?

Hello,
unfortunately my distribution doesn't have the necessary packages (e.g. wcc386, i686-pc-msdosdjgpp-gcc) to build the the fxmemmap.vxd and glide-dll's.
Could you please provide the current files as a built bundle?

And many thanks for qemu-3dfx!

Can't compile QEMU 5.2.0 with MSYS2 because of an undeclared variable.

QEMU version: 5.2.0
Host OS: Windows 10 Pro (64-bit)
Building enviroment: MSYS2 MinGW64 (64-bit)


I found this patch recently and I wanted to try it out. I followed these articles to setup MSYS2 system for compiling QEMU with WHPX support:

After following these pages, I applied glide and mesa patches and configured qemu binary using this command:

$ BUILD_PATH=/c/qemumesa/output/

$ ../qemu-5.2.0/configure \
 --prefix=$BUILD_PATH\
 --target-list=x86_64-softmmu,i386-softmmu\
 --enable-whpx\
 --enable-tools\
 --enable-lzo\
 --enable-bzip2\
 --enable-sdl \
 --enable-gtk\
 --enable-vdi \
 --enable-qcow1\
 --enable-hax\
 --disable-capstone

And then, I started compiling process. Compiling went smoothly until I had this error:

../qemu-5.2.0/ui/sdl2.c: In function 'sdl_gui_fullscreen':
../qemu-5.2.0/ui/sdl2.c:867:26: error: 'modeset' undeclared (first use in this function); did you mean 'mode_t'?
  867 |         gui_fullscreen:((modeset)? 0:gui_fullscreen);
      |                          ^~~~~~~
      |                          mode_t
../qemu-5.2.0/ui/sdl2.c:867:26: note: each undeclared identifier is reported only once for each function it appears in
../qemu-5.2.0/ui/sdl2.c:869:1: warning: control reaches end of non-void function [-Wreturn-type]
  869 | }
      | ^

I tried to compile QEMU without the graphics patch, and it compiled without any errors. This means that I don't have any missing libraries in my build system.

I tried to apply same steps in WSL subsystem, but I gave up because of the library problems.

I wonder is there any errors in my end, or is this a bug? I would be pretty appreciated if this issue gets fixed.


Full error output (no verbose output):

[1099/1691] Compiling C object libcommon.fa.p/ui_sdl2.c.obj
FAILED: libcommon.fa.p/ui_sdl2.c.obj
"cc" "-Ilibcommon.fa.p" "-I." "-I../qemu-5.2.0" "-I../qemu-5.2.0/dtc/libfdt" "-I../qemu-5.2.0/slirp" "-I../qemu-5.2.0/slirp/src" "-Iqapi" "-Itrace" "-Iui" "-Iui/shader" "-IC:/MSYS/msys64/mingw64/include/ncursesw" "-IC:/MSYS/msys64/mingw64/include" "-IC:/MSYS/msys64/mingw64/include/glib-2.0" "-IC:/MSYS/msys64/mingw64/lib/glib-2.0/include" "-IC:/MSYS/msys64/mingw64/include/pixman-1" "-IC:/MSYS/msys64/mingw64/include/libpng16" "-IC:/MSYS/msys64/mingw64/include/gtk-3.0" "-IC:/MSYS/msys64/mingw64/include/pango-1.0" "-IC:/MSYS/msys64/mingw64/include/harfbuzz" "-IC:/MSYS/msys64/mingw64/include/freetype2" "-IC:/MSYS/msys64/mingw64/include/fribidi" "-IC:/MSYS/msys64/mingw64/include/cairo" "-IC:/MSYS/msys64/mingw64/include/lzo" "-IC:/MSYS/msys64/mingw64/include/gdk-pixbuf-2.0" "-IC:/MSYS/msys64/mingw64/include/atk-1.0" "-IC:/MSYS/msys64/mingw64/include/SDL2" "-fdiagnostics-color=auto" "-pipe" "-Wall" "-Winvalid-pch" "-std=gnu99" "-O2" "-g" "-U_FORTIFY_SOURCE" "-D_FORTIFY_SOURCE=2" "-m64" "-mcx16" "-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" "-Wno-missing-include-dirs" "-Wno-shift-negative-value" "-Wno-psabi" "-fstack-protector-strong" "-iquote" "C:/qemumesa/qemu-3dfx/qemu-5.2.0/tcg/i386" "-iquote" "." "-iquote" "C:/qemumesa/qemu-3dfx/qemu-5.2.0" "-iquote" "C:/qemumesa/qemu-3dfx/qemu-5.2.0/accel/tcg" "-iquote" "C:/qemumesa/qemu-3dfx/qemu-5.2.0/include" "-iquote" "C:/qemumesa/qemu-3dfx/qemu-5.2.0/disas/libvixl" "-pthread" "-mms-bitfields" "-Dmain=SDL_main" "-Wno-undef" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-D_XOPEN_SOURCE=600" "-D_POSIX_C_SOURCE=199506L" "-DNCURSES_WIDECHAR" -MD -MQ libcommon.fa.p/ui_sdl2.c.obj -MF "libcommon.fa.p/ui_sdl2.c.obj.d" -o libcommon.fa.p/ui_sdl2.c.obj "-c" ../qemu-5.2.0/ui/sdl2.c
../qemu-5.2.0/ui/sdl2.c: In function 'sdl_gui_fullscreen':
../qemu-5.2.0/ui/sdl2.c:867:26: error: 'modeset' undeclared (first use in this function); did you mean 'mode_t'?
  867 |         gui_fullscreen:((modeset)? 0:gui_fullscreen);
      |                          ^~~~~~~
      |                          mode_t
../qemu-5.2.0/ui/sdl2.c:867:26: note: each undeclared identifier is reported only once for each function it appears in
../qemu-5.2.0/ui/sdl2.c:869:1: warning: control reaches end of non-void function [-Wreturn-type]
  869 | }
      | ^
[1100/1691] Compiling C object libcommon.fa.p/ui_console.c.obj
[1101/1691] Compiling C object libcommon.fa.p/hw_audio_sb16.c.obj
[1102/1691] Compiling C object libcommon.fa.p/ui_keymaps.c.obj
[1103/1691] Compiling C object libcommon.fa.p/ui_input-barrier.c.obj
[1104/1691] Compiling C object libcommon.fa.p/hw_usb_hcd-xhci-sysbus.c.obj
ninja: build stopped: subcommand failed.
make: *** [Makefile:171: run-ninja] Error 1

Problem with compilation under Arch Linux (kernel 5.17.3)

Hey there :)
First of all - great job on keeping the legacy 3D software working with native running speed via this workaround :)
I have forked the repo into my account and I will try to contribute to it when I have free time. :)
However, I am failing to compile the qemu-6.2.0 currently.
This is the build log when it starts to fail, I'll provide the full build log in a minute and make it as verbose as possible to find the culprit.

[7078/9771] Compiling C object libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o FAILED: libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o cc -m64 -mcx16 -Ilibqemu-i386-linux-user.fa.p -I. -I../qemu-6.2.0 -Itarget/i386 -I../qemu-6.2.0/target/i386 -I../qemu-6.2.0/linux-user/host/x86_64 -Ilinux-user -I../qemu-6.2.0/linux-user -Ilinux-user/i386 -I../qemu-6.2.0/linux-user/i386 -I../qemu-6.2.0/capstone/include/capstone -Itrace -Iqapi -Iui -Iui/shader -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -fdiagnostics-color=auto -Wall -Winvalid-pch -std=gnu11 -O2 -g -isystem /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/linux-headers -isystem linux-headers -iquote . -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0 -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/disas/libvixl -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/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 -fPIE -isystem../qemu-6.2.0/linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="i386-linux-user-config-target.h"' '-DCONFIG_DEVICES="i386-linux-user-config-devices.h"' -MD -MQ libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o -MF libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o.d -o libqemu-i386-linux-user.fa.p/hw_3dfx_glide2x_impl.c.o -c ../qemu-6.2.0/hw/3dfx/glide2x_impl.c In file included from ../qemu-6.2.0/hw/3dfx/glide2x_impl.c:22: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/hw.h:5:2: error: #error Cannot include hw/hw.h from user emulation 5 | #error Cannot include hw/hw.h from user emulation | ^~~~~ [7079/9771] Compiling C object libqemu-i386-linux-user.fa.p/hw_mesa_extensions_table.c.o [7080/9771] Compiling C object libqemu-i386-linux-user.fa.p/target_i386_tcg_cc_helper.c.o [7081/9771] Compiling C object libqemu-i386-linux-user.fa.p/hw_3dfx_gllstbuf.c.o [7082/9771] Compiling C object libqemu-i386-linux-user.fa.p/hw_3dfx_glidewnd.c.o FAILED: libqemu-i386-linux-user.fa.p/hw_3dfx_glidewnd.c.o cc -m64 -mcx16 -Ilibqemu-i386-linux-user.fa.p -I. -I../qemu-6.2.0 -Itarget/i386 -I../qemu-6.2.0/target/i386 -I../qemu-6.2.0/linux-user/host/x86_64 -Ilinux-user -I../qemu-6.2.0/linux-user -Ilinux-user/i386 -I../qemu-6.2.0/linux-user/i386 -I../qemu-6.2.0/capstone/include/capstone -Itrace -Iqapi -Iui -Iui/shader -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -fdiagnostics-color=auto -Wall -Winvalid-pch -std=gnu11 -O2 -g -isystem /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/linux-headers -isystem linux-headers -iquote . -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0 -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/disas/libvixl -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/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 -fPIE -isystem../qemu-6.2.0/linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="i386-linux-user-config-target.h"' '-DCONFIG_DEVICES="i386-linux-user-config-devices.h"' -MD -MQ libqemu-i386-linux-user.fa.p/hw_3dfx_glidewnd.c.o -MF libqemu-i386-linux-user.fa.p/hw_3dfx_glidewnd.c.o.d -o libqemu-i386-linux-user.fa.p/hw_3dfx_glidewnd.c.o -c ../qemu-6.2.0/hw/3dfx/glidewnd.c In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/ui/console.h:4, from ../qemu-6.2.0/hw/3dfx/glidewnd.c:24: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/ui/qemu-pixman.h:12:10: fatal error: pixman.h: No such file or directory 12 | #include <pixman.h> | ^~~~~~~~~~ compilation terminated. [7083/9771] Compiling C object libqemu-i386-linux-user.fa.p/hw_mesa_mesagl_impl.c.o FAILED: libqemu-i386-linux-user.fa.p/hw_mesa_mesagl_impl.c.o cc -m64 -mcx16 -Ilibqemu-i386-linux-user.fa.p -I. -I../qemu-6.2.0 -Itarget/i386 -I../qemu-6.2.0/target/i386 -I../qemu-6.2.0/linux-user/host/x86_64 -Ilinux-user -I../qemu-6.2.0/linux-user -Ilinux-user/i386 -I../qemu-6.2.0/linux-user/i386 -I../qemu-6.2.0/capstone/include/capstone -Itrace -Iqapi -Iui -Iui/shader -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -fdiagnostics-color=auto -Wall -Winvalid-pch -std=gnu11 -O2 -g -isystem /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/linux-headers -isystem linux-headers -iquote . -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0 -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/disas/libvixl -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/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 -fPIE -isystem../qemu-6.2.0/linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="i386-linux-user-config-target.h"' '-DCONFIG_DEVICES="i386-linux-user-config-devices.h"' -MD -MQ libqemu-i386-linux-user.fa.p/hw_mesa_mesagl_impl.c.o -MF libqemu-i386-linux-user.fa.p/hw_mesa_mesagl_impl.c.o.d -o libqemu-i386-linux-user.fa.p/hw_mesa_mesagl_impl.c.o -c ../qemu-6.2.0/hw/mesa/mesagl_impl.c In file included from ../qemu-6.2.0/hw/mesa/mesagl_impl.c:22: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/hw.h:5:2: error: #error Cannot include hw/hw.h from user emulation 5 | #error Cannot include hw/hw.h from user emulation | ^~~~~ [7084/9771] Compiling C object libqemu-i386-linux-user.fa.p/target_i386_cpu.c.o [7085/9771] Compiling C object libqemu-i386-linux-user.fa.p/hw_3dfx_glidept_mm.c.o FAILED: libqemu-i386-linux-user.fa.p/hw_3dfx_glidept_mm.c.o cc -m64 -mcx16 -Ilibqemu-i386-linux-user.fa.p -I. -I../qemu-6.2.0 -Itarget/i386 -I../qemu-6.2.0/target/i386 -I../qemu-6.2.0/linux-user/host/x86_64 -Ilinux-user -I../qemu-6.2.0/linux-user -Ilinux-user/i386 -I../qemu-6.2.0/linux-user/i386 -I../qemu-6.2.0/capstone/include/capstone -Itrace -Iqapi -Iui -Iui/shader -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -fdiagnostics-color=auto -Wall -Winvalid-pch -std=gnu11 -O2 -g -isystem /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/linux-headers -isystem linux-headers -iquote . -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0 -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/disas/libvixl -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/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 -fPIE -isystem../qemu-6.2.0/linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="i386-linux-user-config-target.h"' '-DCONFIG_DEVICES="i386-linux-user-config-devices.h"' -MD -MQ libqemu-i386-linux-user.fa.p/hw_3dfx_glidept_mm.c.o -MF libqemu-i386-linux-user.fa.p/hw_3dfx_glidept_mm.c.o.d -o libqemu-i386-linux-user.fa.p/hw_3dfx_glidept_mm.c.o -c ../qemu-6.2.0/hw/3dfx/glidept_mm.c In file included from ../qemu-6.2.0/hw/3dfx/glidept_mm.c:24: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/hw.h:5:2: error: #error Cannot include hw/hw.h from user emulation 5 | #error Cannot include hw/hw.h from user emulation | ^~~~~ In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:7, from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/pc.h:7, from ../qemu-6.2.0/hw/3dfx/glidept_mm.c:25: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/sysemu/hostmem.h:72:18: error: field ‘mr’ has incomplete type 72 | MemoryRegion mr; | ^~ In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/pc.h:7, from ../qemu-6.2.0/hw/3dfx/glidept_mm.c:25: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:253:5: error: unknown type name ‘ram_addr_t’ 253 | ram_addr_t default_ram_size; | ^~~~~~~~~~ /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:282:5: error: expected specifier-qualifier-list before ‘ram_addr_t’ 282 | ram_addr_t (*fixup_ram_size)(ram_addr_t size); | ^~~~~~~~~~ /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:293:18: error: field ‘mr’ has incomplete type 293 | MemoryRegion mr; | ^~ /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:345:5: error: unknown type name ‘ram_addr_t’ 345 | ram_addr_t ram_size; | ^~~~~~~~~~ /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:346:5: error: unknown type name ‘ram_addr_t’ 346 | ram_addr_t maxram_size; | ^~~~~~~~~~ In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/pc.h:10, from ../qemu-6.2.0/hw/3dfx/glidept_mm.c:25: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/x86.h:60:5: error: unknown type name ‘ram_addr_t’ 60 | ram_addr_t below_4g_mem_size, above_4g_mem_size; | ^~~~~~~~~~ In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/pc.h:15, from ../qemu-6.2.0/hw/3dfx/glidept_mm.c:25: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/sgx-epc.h:52:18: error: field ‘mr’ has incomplete type 52 | MemoryRegion mr; | ^~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:55:18: error: field ‘iomem’ has incomplete type 55 | MemoryRegion iomem; | ^~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:76:18: error: field ‘iomem’ has incomplete type 76 | MemoryRegion iomem; | ^~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:78:18: error: field ‘fifo_ram’ has incomplete type 78 | MemoryRegion fifo_ram; | ^~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:84:18: error: field ‘glfb_ram’ has incomplete type 84 | MemoryRegion glfb_ram; | ^~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1085:14: error: unknown type name ‘MemoryRegionOps’ 1085 | static const MemoryRegionOps glideLfb_ops = { | ^~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1086:5: error: field name not in record or union initializer 1086 | .read = glideLfb_read, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1086:5: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1086:19: warning: initialization of ‘int’ from ‘uint64_t (*)(void *, hwaddr, unsigned int)’ {aka ‘long unsigned int (*)(void *, long unsigned int, unsigned int)’} makes integer from pointer without a cast [-Wint-conversion] 1086 | .read = glideLfb_read, | ^~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1086:19: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1086:19: error: initializer element is not computable at load time ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1086:19: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1087:5: error: field name not in record or union initializer 1087 | .write = glideLfb_write, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1087:5: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1087:19: warning: excess elements in scalar initializer 1087 | .write = glideLfb_write, | ^~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1087:19: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1088:5: error: field name not in record or union initializer 1088 | .valid = { | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1088:5: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1088:5: warning: braces around scalar initializer ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1088:5: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1089:9: error: field name not in record or union initializer 1089 | .min_access_size = 2, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1089:9: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1090:9: error: field name not in record or union initializer 1090 | .max_access_size = 8, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1090:9: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1090:28: warning: excess elements in scalar initializer 1090 | .max_access_size = 8, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1090:28: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1088:14: warning: excess elements in scalar initializer 1088 | .valid = { | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1088:14: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1092:5: error: field name not in record or union initializer 1092 | .impl = { | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1092:5: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1092:5: warning: braces around scalar initializer ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1092:5: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1093:9: error: field name not in record or union initializer 1093 | .min_access_size = 2, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1093:9: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1094:9: error: field name not in record or union initializer 1094 | .max_access_size = 8, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1094:9: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1094:28: warning: excess elements in scalar initializer 1094 | .max_access_size = 8, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1094:28: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1092:13: warning: excess elements in scalar initializer 1092 | .impl = { | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1092:13: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1096:5: error: field name not in record or union initializer 1096 | .endianness = DEVICE_NATIVE_ENDIAN, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1096:5: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1096:19: error: ‘DEVICE_NATIVE_ENDIAN’ undeclared here (not in a function) 1096 | .endianness = DEVICE_NATIVE_ENDIAN, | ^~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1096:19: warning: excess elements in scalar initializer ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1096:19: note: (near initialization for ‘glideLfb_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c: In function ‘glidelfb_init’: ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1104:5: warning: implicit declaration of function ‘memory_region_init_io’ [-Wimplicit-function-declaration] 1104 | memory_region_init_io(&s->iomem, obj, &glideLfb_ops, s, TYPE_GLIDELFB, GRLFB_SIZE); | ^~~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1104:5: warning: nested extern declaration of ‘memory_region_init_io’ [-Wnested-externs] ../qemu-6.2.0/hw/3dfx/glidept_mm.c: At top level: ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1108:14: error: unknown type name ‘MemoryRegionOps’ 1108 | static const MemoryRegionOps glidept_ops = { | ^~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1109:5: error: field name not in record or union initializer 1109 | .read = glidept_read, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1109:5: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1109:19: warning: initialization of ‘int’ from ‘uint64_t (*)(void *, hwaddr, unsigned int)’ {aka ‘long unsigned int (*)(void *, long unsigned int, unsigned int)’} makes integer from pointer without a cast [-Wint-conversion] 1109 | .read = glidept_read, | ^~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1109:19: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1109:19: error: initializer element is not computable at load time ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1109:19: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1110:5: error: field name not in record or union initializer 1110 | .write = glidept_write, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1110:5: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1110:19: warning: excess elements in scalar initializer 1110 | .write = glidept_write, | ^~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1110:19: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1111:5: error: field name not in record or union initializer 1111 | .valid = { | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1111:5: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1111:5: warning: braces around scalar initializer ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1111:5: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1112:9: error: field name not in record or union initializer 1112 | .min_access_size = 4, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1112:9: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1113:9: error: field name not in record or union initializer 1113 | .max_access_size = 4, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1113:9: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1113:28: warning: excess elements in scalar initializer 1113 | .max_access_size = 4, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1113:28: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1111:14: warning: excess elements in scalar initializer 1111 | .valid = { | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1111:14: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1115:5: error: field name not in record or union initializer 1115 | .endianness = DEVICE_NATIVE_ENDIAN, | ^ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1115:5: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1115:19: warning: excess elements in scalar initializer 1115 | .endianness = DEVICE_NATIVE_ENDIAN, | ^~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1115:19: note: (near initialization for ‘glidept_ops’) ../qemu-6.2.0/hw/3dfx/glidept_mm.c: In function ‘glidept_init’: ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1132:28: warning: implicit declaration of function ‘get_system_memory’ [-Wimplicit-function-declaration] 1132 | MemoryRegion *sysmem = get_system_memory(); | ^~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1132:28: warning: nested extern declaration of ‘get_system_memory’ [-Wnested-externs] ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1132:28: warning: initialization of ‘MemoryRegion *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion] ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1134:5: warning: implicit declaration of function ‘memory_region_init_ram’ [-Wimplicit-function-declaration] 1134 | memory_region_init_ram(&s->glfb_ram, NULL, "grlfbshm", SHLFB_SIZE, &error_fatal); | ^~~~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1134:5: warning: nested extern declaration of ‘memory_region_init_ram’ [-Wnested-externs] ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1136:19: warning: implicit declaration of function ‘memory_region_get_ram_ptr’ [-Wimplicit-function-declaration] 1136 | s->glfb_ptr = memory_region_get_ram_ptr(&s->glfb_ram); | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1136:19: warning: nested extern declaration of ‘memory_region_get_ram_ptr’ [-Wnested-externs] ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1138:5: warning: implicit declaration of function ‘memory_region_add_subregion’ [-Wimplicit-function-declaration] 1138 | memory_region_add_subregion(sysmem, (GLIDE_LFB_BASE + GRLFB_SIZE), &s->glfb_ram); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/3dfx/glidept_mm.c:1138:5: warning: nested extern declaration of ‘memory_region_add_subregion’ [-Wnested-externs] [7086/9771] Compiling C object libqemu-i386-linux-user.fa.p/hw_mesa_mesapt_mm.c.o FAILED: libqemu-i386-linux-user.fa.p/hw_mesa_mesapt_mm.c.o cc -m64 -mcx16 -Ilibqemu-i386-linux-user.fa.p -I. -I../qemu-6.2.0 -Itarget/i386 -I../qemu-6.2.0/target/i386 -I../qemu-6.2.0/linux-user/host/x86_64 -Ilinux-user -I../qemu-6.2.0/linux-user -Ilinux-user/i386 -I../qemu-6.2.0/linux-user/i386 -I../qemu-6.2.0/capstone/include/capstone -Itrace -Iqapi -Iui -Iui/shader -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/sysprof-4 -fdiagnostics-color=auto -Wall -Winvalid-pch -std=gnu11 -O2 -g -isystem /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/linux-headers -isystem linux-headers -iquote . -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0 -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/disas/libvixl -iquote /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/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 -fPIE -isystem../qemu-6.2.0/linux-headers -isystemlinux-headers -DNEED_CPU_H '-DCONFIG_TARGET="i386-linux-user-config-target.h"' '-DCONFIG_DEVICES="i386-linux-user-config-devices.h"' -MD -MQ libqemu-i386-linux-user.fa.p/hw_mesa_mesapt_mm.c.o -MF libqemu-i386-linux-user.fa.p/hw_mesa_mesapt_mm.c.o.d -o libqemu-i386-linux-user.fa.p/hw_mesa_mesapt_mm.c.o -c ../qemu-6.2.0/hw/mesa/mesapt_mm.c In file included from ../qemu-6.2.0/hw/mesa/mesapt_mm.c:24: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/hw.h:5:2: error: #error Cannot include hw/hw.h from user emulation 5 | #error Cannot include hw/hw.h from user emulation | ^~~~~ In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:7, from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/pc.h:7, from ../qemu-6.2.0/hw/mesa/mesapt_mm.c:25: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/sysemu/hostmem.h:72:18: error: field ‘mr’ has incomplete type 72 | MemoryRegion mr; | ^~ In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/pc.h:7, from ../qemu-6.2.0/hw/mesa/mesapt_mm.c:25: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:253:5: error: unknown type name ‘ram_addr_t’ 253 | ram_addr_t default_ram_size; | ^~~~~~~~~~ /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:282:5: error: expected specifier-qualifier-list before ‘ram_addr_t’ 282 | ram_addr_t (*fixup_ram_size)(ram_addr_t size); | ^~~~~~~~~~ /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:293:18: error: field ‘mr’ has incomplete type 293 | MemoryRegion mr; | ^~ /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:345:5: error: unknown type name ‘ram_addr_t’ 345 | ram_addr_t ram_size; | ^~~~~~~~~~ /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/boards.h:346:5: error: unknown type name ‘ram_addr_t’ 346 | ram_addr_t maxram_size; | ^~~~~~~~~~ In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/pc.h:10, from ../qemu-6.2.0/hw/mesa/mesapt_mm.c:25: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/x86.h:60:5: error: unknown type name ‘ram_addr_t’ 60 | ram_addr_t below_4g_mem_size, above_4g_mem_size; | ^~~~~~~~~~ In file included from /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/pc.h:15, from ../qemu-6.2.0/hw/mesa/mesapt_mm.c:25: /home/aleksandar/qemu-3dfx/qemu-3dfx/qemu-6.2.0/include/hw/i386/sgx-epc.h:52:18: error: field ‘mr’ has incomplete type 52 | MemoryRegion mr; | ^~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:50:18: error: field ‘iomem’ has incomplete type 50 | MemoryRegion iomem; | ^~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:52:18: error: field ‘fifo_ram’ has incomplete type 52 | MemoryRegion fifo_ram; | ^~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:57:18: error: field ‘fbtm_ram’ has incomplete type 57 | MemoryRegion fbtm_ram; | ^~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2305:14: error: unknown type name ‘MemoryRegionOps’ 2305 | static const MemoryRegionOps mesapt_ops = { | ^~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2306:5: error: field name not in record or union initializer 2306 | .read = mesapt_read, | ^ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2306:5: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2306:13: warning: initialization of ‘int’ from ‘uint64_t (*)(void *, hwaddr, unsigned int)’ {aka ‘long unsigned int (*)(void *, long unsigned int, unsigned int)’} makes integer from pointer without a cast [-Wint-conversion] 2306 | .read = mesapt_read, | ^~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2306:13: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2306:13: error: initializer element is not computable at load time ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2306:13: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2307:5: error: field name not in record or union initializer 2307 | .write = mesapt_write, | ^ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2307:5: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2307:14: warning: excess elements in scalar initializer 2307 | .write = mesapt_write, | ^~~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2307:14: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2308:5: error: field name not in record or union initializer 2308 | .valid = { | ^ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2308:5: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2308:5: warning: braces around scalar initializer ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2308:5: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2309:9: error: field name not in record or union initializer 2309 | .min_access_size = 4, | ^ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2309:9: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2310:9: error: field name not in record or union initializer 2310 | .max_access_size = 4, | ^ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2310:9: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2310:28: warning: excess elements in scalar initializer 2310 | .max_access_size = 4, | ^ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2310:28: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2308:14: warning: excess elements in scalar initializer 2308 | .valid = { | ^ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2308:14: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2312:5: error: field name not in record or union initializer 2312 | .endianness = DEVICE_NATIVE_ENDIAN, | ^ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2312:5: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2312:19: error: ‘DEVICE_NATIVE_ENDIAN’ undeclared here (not in a function) 2312 | .endianness = DEVICE_NATIVE_ENDIAN, | ^~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2312:19: warning: excess elements in scalar initializer ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2312:19: note: (near initialization for ‘mesapt_ops’) ../qemu-6.2.0/hw/mesa/mesapt_mm.c: In function ‘mesapt_init’: ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2324:28: warning: implicit declaration of function ‘get_system_memory’ [-Wimplicit-function-declaration] 2324 | MemoryRegion *sysmem = get_system_memory(); | ^~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2324:28: warning: nested extern declaration of ‘get_system_memory’ [-Wnested-externs] ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2324:28: warning: initialization of ‘MemoryRegion *’ from ‘int’ makes pointer from integer without a cast [-Wint-conversion] ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2326:5: warning: implicit declaration of function ‘memory_region_init_ram’ [-Wimplicit-function-declaration] 2326 | memory_region_init_ram(&s->fifo_ram, NULL, "mglshm", MGLSHM_SIZE, &error_fatal); | ^~~~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2326:5: warning: nested extern declaration of ‘memory_region_init_ram’ [-Wnested-externs] ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2328:19: warning: implicit declaration of function ‘memory_region_get_ram_ptr’ [-Wimplicit-function-declaration] 2328 | s->fifo_ptr = memory_region_get_ram_ptr(&s->fifo_ram); | ^~~~~~~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2328:19: warning: nested extern declaration of ‘memory_region_get_ram_ptr’ [-Wnested-externs] ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2330:5: warning: implicit declaration of function ‘memory_region_add_subregion’ [-Wimplicit-function-declaration] 2330 | memory_region_add_subregion(sysmem, MESA_FIFO_BASE, &s->fifo_ram); | ^~~~~~~~~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2330:5: warning: nested extern declaration of ‘memory_region_add_subregion’ [-Wnested-externs] ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2333:5: warning: implicit declaration of function ‘memory_region_init_io’ [-Wimplicit-function-declaration] 2333 | memory_region_init_io(&s->iomem, obj, &mesapt_ops, s, TYPE_MESAPT, PAGE_SIZE); | ^~~~~~~~~~~~~~~~~~~~~ ../qemu-6.2.0/hw/mesa/mesapt_mm.c:2333:5: warning: nested extern declaration of ‘memory_region_init_io’ [-Wnested-externs] [7087/9771] Compiling C object libqemu-i386-linux-user.fa.p/target_i386_tcg_seg_helper.c.o [7088/9771] Compiling C object libqemu-i386-linux-user.fa.p/target_i386_tcg_fpu_helper.c.o [7089/9771] Compiling C object libqemu-hppa-linux-user.fa.p/fpu_softfloat.c.o [7090/9771] Compiling C object libqemu-hexagon-linux-user.fa.p/target_hexagon_op_helper.c.o [7091/9771] Compiling C object libqemu-hppa-linux-user.fa.p/linux-user_syscall.c.o [7092/9771] Compiling C object libqemu-hexagon-linux-user.fa.p/target_hexagon_printinsn.c.o [7093/9771] Compiling C object libqemu-i386-linux-user.fa.p/target_i386_tcg_translate.c.o [7094/9771] Compiling C object libqemu-hexagon-linux-user.fa.p/target_hexagon_genptr.c.o [7095/9771] Compiling C object libqemu-hexagon-linux-user.fa.p/target_hexagon_decode.c.o ninja: build stopped: subcommand failed. make: *** [Makefile:162: run-ninja] Error 1 [aleksandar@nitro5-ryzen7 qemu-3dfx]$

gcc version 11.2.0
neofetch provided as a screenshot
Screenshot_20220419_132829

Am I missing something here?
I hope this will be fixed easily.
Thanks, Alex 😄

QEMU 6.2 + 3dfx patch, freeze or no mouse/kb after login win98

hi,

Just to signal after have installed all files compiled for the guest, just after login i can't move mouse or use keyboard on windows 10 x64 host.

For the while i found use "-M pc,accel=whpx,kernel-irqchip=off" instead of "-M pc,accel=whpx" stopped the problem, it seems to be a QEMU 6.2 problem. (EDIT: with "-M pc,accel=whpx,kernel-irqchip=off" and half-life, i got a crash i replaced by -accel whpx,kernel-irqchip=off" and it works)

It seems to be in relation with fxmmemap.vxd, if i remove it from "c:\windows\system" it's ok, i compiled it under msys2 as under linux .

It was a big blocking problem to test QEMU-3DFX. I ran Half life yesterday with an average 72fps, but sound is not very good with ac97 for the while with realtek drivers, i'm trying "Avance Logic AC'97-3.26" drivers.

ps: i don't know if i was the problem before but now i can't shutdown properly win98 -> black screen.

Failed to compile in arm64 device

Sorry for noob issue ,im facing error on compiling after applying mesa-glide patch for qemu-4.1.1

/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:142:23: error: initial
izer element is not constant
WGL_RED_BITS_ARB, pfd.cRedBits,
^~~
/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:142:23: note: (near in
itialization for 'iAttribs[17]')
/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:143:24: error: initial
izer element is not constant
WGL_RED_SHIFT_ARB, pfd.cRedShift,
^~~
/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:143:24: note: (near in
itialization for 'iAttribs[19]')
/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:144:25: error: initial
izer element is not constant
WGL_GREEN_BITS_ARB, pfd.cGreenBits,
^~~
/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:144:25: note: (near in
itialization for 'iAttribs[21]')
/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:145:26: error: initial
izer element is not constant
WGL_GREEN_SHIFT_ARB, pfd.cGreenShift,
^~~
/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:145:26: note: (near in
itialization for 'iAttribs[23]')
/home/ad/myqemu/qemu-3dfx/qemu-4.1.1/hw/mesa/mglcntx_linux.c:146:24: error: initial
izer element is not constant
WGL_BLUE_BITS_ARB, pfd.cBlueBits,

Ubuntu 18.04 via Linux deploy
Im doing this in android device , but got stuck on this last error
Thanks for help,

-fcf-protection is not compatible with this target

So. I'm trying to compile QEMU under Ubuntu 21.10. And I can't because I got this message:
cc1: error: ‘-fcf-protection’ is not compatible with this target
make[2]: *** [Makefile:50: linuxboot_dma.o] Fehler 1
make[1]: *** [Makefile:197: pc-bios/optionrom/all] Fehler 2

This problem appears only under Ubuntu 21.10. Under 20.04 compiling went flawlessly. Any suggestions (except change OS to 20.04)?

Add support for Grover, a new 3dfx Glide API implementation built on Gallium3D

Hi @kjliew,

It looks like Linux may soon be getting an officially supported "native" 3dfx Glide implementation, called "Grover".

This definitely looks like something that would be worth adding support for in your qemu-3dfx project. That way, no third party Glide wrapper would be needed any more, at least on Linux hosts. And since it leverages Gallium3D directly, it might be more efficient than something on top of OpenGL as well. Perhaps you can look into this?

See the news article about Grover on Phoronix.

Thanks. 🙂

Doesn't build on macOS host

Linking target qemu-system-x86_64-unsigned
FAILED: qemu-system-x86_64-unsigned
c++ -m64 -mcx16 -o qemu-system-x86_64-unsigned qemu-system-x86_64-unsigned.p/softmmu_main.c.o libcommon.fa.p/cpus-common.c.o libcommon.fa.p/page-vary-common.c.o libcommon.fa.p/disas_i386.c.o libcommon.fa.p/disas_capstone.c.o libcommon.fa.p/hw_core_cpu-common.c.o libcommon.fa.p/hw_core_machine-smp.c.o libcommon.fa.p/qom_qom-hmp-cmds.c.o libcommon.fa.p/ui_clipboard.c.o libcommon.fa.p/ui_console.c.o libcommon.fa.p/ui_cursor.c.o libcommon.fa.p/ui_input-keymap.c.o libcommon.fa.p/ui_input-legacy.c.o libcommon.fa.p/ui_input-barrier.c.o libcommon.fa.p/ui_input.c.o libcommon.fa.p/ui_kbd-state.c.o libcommon.fa.p/ui_keymaps.c.o libcommon.fa.p/ui_qemu-pixman.c.o libcommon.fa.p/ui_spice-module.c.o libcommon.fa.p/ui_vdagent.c.o libcommon.fa.p/ui_cocoa.m.o libcommon.fa.p/ui_vnc.c.o libcommon.fa.p/ui_vnc-enc-zlib.c.o libcommon.fa.p/ui_vnc-enc-hextile.c.o libcommon.fa.p/ui_vnc-enc-tight.c.o libcommon.fa.p/ui_vnc-palette.c.o libcommon.fa.p/ui_vnc-enc-zrle.c.o libcommon.fa.p/ui_vnc-auth-vencrypt.c.o libcommon.fa.p/ui_vnc-ws.c.o libcommon.fa.p/ui_vnc-jobs.c.o libcommon.fa.p/ui_vnc-clipboard.c.o libcommon.fa.p/ui_vnc-auth-sasl.c.o libcommon.fa.p/audio_audio.c.o libcommon.fa.p/audio_audio_legacy.c.o libcommon.fa.p/audio_mixeng.c.o libcommon.fa.p/audio_noaudio.c.o libcommon.fa.p/audio_wavaudio.c.o libcommon.fa.p/audio_wavcapture.c.o libcommon.fa.p/audio_coreaudio.c.o libcommon.fa.p/chardev_msmouse.c.o libcommon.fa.p/chardev_wctablet.c.o libcommon.fa.p/chardev_testdev.c.o libcommon.fa.p/dump_dump-hmp-cmds.c.o libcommon.fa.p/block_blkreplay.c.o libcommon.fa.p/block_qapi-sysemu.c.o libcommon.fa.p/block_monitor_block-hmp-cmds.c.o libcommon.fa.p/softmmu_bootdevice.c.o libcommon.fa.p/softmmu_dma-helpers.c.o libcommon.fa.p/softmmu_qdev-monitor.c.o libcommon.fa.p/softmmu_tpm.c.o libcommon.fa.p/softmmu_device_tree.c.o libcommon.fa.p/backends_cryptodev-builtin.c.o libcommon.fa.p/backends_cryptodev.c.o libcommon.fa.p/backends_hostmem-ram.c.o libcommon.fa.p/backends_hostmem.c.o libcommon.fa.p/backends_rng-builtin.c.o libcommon.fa.p/backends_rng-egd.c.o libcommon.fa.p/backends_rng.c.o libcommon.fa.p/backends_confidential-guest-support.c.o libcommon.fa.p/backends_rng-random.c.o libcommon.fa.p/backends_hostmem-file.c.o libcommon.fa.p/backends_cryptodev-vhost.c.o libcommon.fa.p/backends_dbus-vmstate.c.o libcommon.fa.p/backends_tpm_tpm_backend.c.o libcommon.fa.p/backends_tpm_tpm_util.c.o libcommon.fa.p/backends_tpm_tpm_emulator.c.o libcommon.fa.p/migration_page_cache.c.o libcommon.fa.p/migration_xbzrle.c.o libcommon.fa.p/migration_vmstate-types.c.o libcommon.fa.p/migration_vmstate.c.o libcommon.fa.p/migration_qemu-file-channel.c.o libcommon.fa.p/migration_qemu-file.c.o libcommon.fa.p/migration_yank_functions.c.o libcommon.fa.p/migration_block-dirty-bitmap.c.o libcommon.fa.p/migration_channel.c.o libcommon.fa.p/migration_colo-failover.c.o libcommon.fa.p/migration_colo.c.o libcommon.fa.p/migration_exec.c.o libcommon.fa.p/migration_fd.c.o libcommon.fa.p/migration_global_state.c.o libcommon.fa.p/migration_migration.c.o libcommon.fa.p/migration_multifd.c.o libcommon.fa.p/migration_multifd-zlib.c.o libcommon.fa.p/migration_postcopy-ram.c.o libcommon.fa.p/migration_savevm.c.o libcommon.fa.p/migration_socket.c.o libcommon.fa.p/migration_tls.c.o libcommon.fa.p/migration_block.c.o libcommon.fa.p/migration_multifd-zstd.c.o libcommon.fa.p/monitor_hmp-cmds.c.o libcommon.fa.p/monitor_hmp.c.o libcommon.fa.p/monitor_qmp-cmds.c.o libcommon.fa.p/net_announce.c.o libcommon.fa.p/net_checksum.c.o libcommon.fa.p/net_colo-compare.c.o libcommon.fa.p/net_colo.c.o libcommon.fa.p/net_dump.c.o libcommon.fa.p/net_eth.c.o libcommon.fa.p/net_filter-buffer.c.o libcommon.fa.p/net_filter-mirror.c.o libcommon.fa.p/net_filter-rewriter.c.o libcommon.fa.p/net_filter.c.o libcommon.fa.p/net_hub.c.o libcommon.fa.p/net_net.c.o libcommon.fa.p/net_queue.c.o libcommon.fa.p/net_socket.c.o libcommon.fa.p/net_util.c.o libcommon.fa.p/net_filter-replay.c.o libcommon.fa.p/net_slirp.c.o libcommon.fa.p/net_vde.c.o libcommon.fa.p/net_tap-bsd.c.o libcommon.fa.p/net_tap.c.o libcommon.fa.p/net_can_can_core.c.o libcommon.fa.p/net_can_can_host.c.o libcommon.fa.p/replay_replay.c.o libcommon.fa.p/replay_replay-internal.c.o libcommon.fa.p/replay_replay-events.c.o libcommon.fa.p/replay_replay-time.c.o libcommon.fa.p/replay_replay-input.c.o libcommon.fa.p/replay_replay-char.c.o libcommon.fa.p/replay_replay-snapshot.c.o libcommon.fa.p/replay_replay-net.c.o libcommon.fa.p/replay_replay-audio.c.o libcommon.fa.p/replay_replay-random.c.o libcommon.fa.p/replay_replay-debugging.c.o libcommon.fa.p/hw_acpi_acpi_interface.c.o libcommon.fa.p/hw_acpi_aml-build.c.o libcommon.fa.p/hw_acpi_bios-linker-loader.c.o libcommon.fa.p/hw_acpi_core.c.o libcommon.fa.p/hw_acpi_utils.c.o libcommon.fa.p/hw_acpi_cpu.c.o libcommon.fa.p/hw_acpi_cpu_hotplug.c.o libcommon.fa.p/hw_acpi_memory_hotplug.c.o libcommon.fa.p/hw_acpi_nvdimm.c.o libcommon.fa.p/hw_acpi_pci.c.o libcommon.fa.p/hw_acpi_vmgenid.c.o libcommon.fa.p/hw_acpi_generic_event_device.c.o libcommon.fa.p/hw_acpi_hmat.c.o libcommon.fa.p/hw_acpi_ghes-stub.c.o libcommon.fa.p/hw_acpi_piix4.c.o libcommon.fa.p/hw_acpi_pcihp.c.o libcommon.fa.p/hw_acpi_viot.c.o libcommon.fa.p/hw_acpi_ich9.c.o libcommon.fa.p/hw_acpi_tco.c.o libcommon.fa.p/hw_acpi_ipmi.c.o libcommon.fa.p/hw_acpi_tpm.c.o libcommon.fa.p/hw_audio_soundhw.c.o libcommon.fa.p/hw_audio_ac97.c.o libcommon.fa.p/hw_audio_fmopl.c.o libcommon.fa.p/hw_audio_adlib.c.o libcommon.fa.p/hw_audio_cs4231a.c.o libcommon.fa.p/hw_audio_es1370.c.o libcommon.fa.p/hw_audio_gus.c.o libcommon.fa.p/hw_audio_gusemu_hal.c.o libcommon.fa.p/hw_audio_gusemu_mixer.c.o libcommon.fa.p/hw_audio_intel-hda.c.o libcommon.fa.p/hw_audio_hda-codec.c.o libcommon.fa.p/hw_audio_pcspk.c.o libcommon.fa.p/hw_audio_sb16.c.o libcommon.fa.p/hw_block_block.c.o libcommon.fa.p/hw_block_cdrom.c.o libcommon.fa.p/hw_block_hd-geometry.c.o libcommon.fa.p/hw_block_fdc.c.o libcommon.fa.p/hw_block_fdc-isa.c.o libcommon.fa.p/hw_block_pflash_cfi01.c.o libcommon.fa.p/hw_char_ipoctal232.c.o libcommon.fa.p/hw_char_parallel-isa.c.o libcommon.fa.p/hw_char_debugcon.c.o libcommon.fa.p/hw_char_parallel.c.o libcommon.fa.p/hw_char_serial.c.o libcommon.fa.p/hw_char_serial-isa.c.o libcommon.fa.p/hw_char_serial-pci.c.o libcommon.fa.p/hw_char_serial-pci-multi.c.o libcommon.fa.p/hw_char_virtio-console.c.o libcommon.fa.p/hw_core_generic-loader.c.o libcommon.fa.p/hw_core_guest-loader.c.o libcommon.fa.p/hw_core_cpu-sysemu.c.o libcommon.fa.p/hw_core_fw-path-provider.c.o libcommon.fa.p/hw_core_gpio.c.o libcommon.fa.p/hw_core_loader.c.o libcommon.fa.p/hw_core_machine-hmp-cmds.c.o libcommon.fa.p/hw_core_machine.c.o libcommon.fa.p/hw_core_nmi.c.o libcommon.fa.p/hw_core_null-machine.c.o libcommon.fa.p/hw_core_qdev-fw.c.o libcommon.fa.p/hw_core_qdev-properties-system.c.o libcommon.fa.p/hw_core_sysbus.c.o libcommon.fa.p/hw_core_vm-change-state-handler.c.o libcommon.fa.p/hw_core_clock-vmstate.c.o libcommon.fa.p/hw_cpu_core.c.o libcommon.fa.p/hw_cpu_cluster.c.o libcommon.fa.p/hw_display_i2c-ddc.c.o libcommon.fa.p/hw_display_edid-generate.c.o libcommon.fa.p/hw_display_edid-region.c.o libcommon.fa.p/hw_display_ramfb.c.o libcommon.fa.p/hw_display_ramfb-standalone.c.o libcommon.fa.p/hw_display_cirrus_vga.c.o libcommon.fa.p/hw_display_cirrus_vga_isa.c.o libcommon.fa.p/hw_display_vga-pci.c.o libcommon.fa.p/hw_display_vga-isa.c.o libcommon.fa.p/hw_display_vmware_vga.c.o libcommon.fa.p/hw_display_bochs-display.c.o libcommon.fa.p/hw_display_ati.c.o libcommon.fa.p/hw_display_ati_2d.c.o libcommon.fa.p/hw_display_ati_dbg.c.o libcommon.fa.p/hw_dma_i8257.c.o libcommon.fa.p/hw_i2c_core.c.o libcommon.fa.p/hw_i2c_smbus_slave.c.o libcommon.fa.p/hw_i2c_smbus_master.c.o libcommon.fa.p/hw_i2c_pm_smbus.c.o libcommon.fa.p/hw_i2c_smbus_ich9.c.o libcommon.fa.p/hw_i2c_bitbang_i2c.c.o libcommon.fa.p/hw_i2c_smbus_eeprom.c.o libcommon.fa.p/hw_ide_ahci.c.o libcommon.fa.p/hw_ide_ich.c.o libcommon.fa.p/hw_ide_core.c.o libcommon.fa.p/hw_ide_atapi.c.o libcommon.fa.p/hw_ide_isa.c.o libcommon.fa.p/hw_ide_ioport.c.o libcommon.fa.p/hw_ide_pci.c.o libcommon.fa.p/hw_ide_piix.c.o libcommon.fa.p/hw_ide_qdev.c.o libcommon.fa.p/hw_input_hid.c.o libcommon.fa.p/hw_input_pckbd.c.o libcommon.fa.p/hw_input_ps2.c.o libcommon.fa.p/hw_input_virtio-input.c.o libcommon.fa.p/hw_input_virtio-input-hid.c.o libcommon.fa.p/hw_intc_intc.c.o libcommon.fa.p/hw_intc_i8259_common.c.o libcommon.fa.p/hw_intc_i8259.c.o libcommon.fa.p/hw_intc_ioapic_common.c.o libcommon.fa.p/hw_ipack_ipack.c.o libcommon.fa.p/hw_ipack_tpci200.c.o libcommon.fa.p/hw_ipmi_ipmi.c.o libcommon.fa.p/hw_ipmi_ipmi_kcs.c.o libcommon.fa.p/hw_ipmi_ipmi_bt.c.o libcommon.fa.p/hw_ipmi_ipmi_bmc_sim.c.o libcommon.fa.p/hw_ipmi_ipmi_bmc_extern.c.o libcommon.fa.p/hw_ipmi_isa_ipmi_kcs.c.o libcommon.fa.p/hw_ipmi_pci_ipmi_kcs.c.o libcommon.fa.p/hw_ipmi_isa_ipmi_bt.c.o libcommon.fa.p/hw_ipmi_pci_ipmi_bt.c.o libcommon.fa.p/hw_ipmi_smbus_ipmi.c.o libcommon.fa.p/hw_isa_apm.c.o libcommon.fa.p/hw_isa_isa-bus.c.o libcommon.fa.p/hw_isa_piix3.c.o libcommon.fa.p/hw_mem_memory-device.c.o libcommon.fa.p/hw_mem_pc-dimm.c.o libcommon.fa.p/hw_mem_nvdimm.c.o libcommon.fa.p/hw_misc_applesmc.c.o libcommon.fa.p/hw_misc_edu.c.o libcommon.fa.p/hw_misc_vmcoreinfo.c.o libcommon.fa.p/hw_misc_debugexit.c.o libcommon.fa.p/hw_misc_pc-testdev.c.o libcommon.fa.p/hw_misc_pci-testdev.c.o libcommon.fa.p/hw_misc_sga.c.o libcommon.fa.p/hw_misc_pvpanic.c.o libcommon.fa.p/hw_misc_pvpanic-isa.c.o libcommon.fa.p/hw_misc_pvpanic-pci.c.o libcommon.fa.p/hw_net_ne2000.c.o libcommon.fa.p/hw_net_ne2000-pci.c.o libcommon.fa.p/hw_net_eepro100.c.o libcommon.fa.p/hw_net_pcnet-pci.c.o libcommon.fa.p/hw_net_pcnet.c.o libcommon.fa.p/hw_net_e1000.c.o libcommon.fa.p/hw_net_e1000x_common.c.o libcommon.fa.p/hw_net_net_tx_pkt.c.o libcommon.fa.p/hw_net_net_rx_pkt.c.o libcommon.fa.p/hw_net_e1000e.c.o libcommon.fa.p/hw_net_e1000e_core.c.o libcommon.fa.p/hw_net_rtl8139.c.o libcommon.fa.p/hw_net_tulip.c.o libcommon.fa.p/hw_net_vmxnet3.c.o libcommon.fa.p/hw_net_ne2000-isa.c.o libcommon.fa.p/hw_net_vhost_net-stub.c.o libcommon.fa.p/hw_net_rocker_rocker.c.o libcommon.fa.p/hw_net_rocker_rocker_desc.c.o libcommon.fa.p/hw_net_rocker_rocker_fp.c.o libcommon.fa.p/hw_net_rocker_rocker_of_dpa.c.o libcommon.fa.p/hw_net_rocker_rocker_world.c.o libcommon.fa.p/hw_net_can_can_sja1000.c.o libcommon.fa.p/hw_net_can_can_kvaser_pci.c.o libcommon.fa.p/hw_net_can_can_pcm3680_pci.c.o libcommon.fa.p/hw_net_can_can_mioe3680_pci.c.o libcommon.fa.p/hw_net_can_ctucan_core.c.o libcommon.fa.p/hw_net_can_ctucan_pci.c.o libcommon.fa.p/hw_nvme_ctrl.c.o libcommon.fa.p/hw_nvme_dif.c.o libcommon.fa.p/hw_nvme_ns.c.o libcommon.fa.p/hw_nvme_subsys.c.o libcommon.fa.p/hw_nvram_fw_cfg.c.o libcommon.fa.p/hw_nvram_eeprom93xx.c.o libcommon.fa.p/hw_pci_pcie_port.c.o libcommon.fa.p/hw_pci_pcie_host.c.o libcommon.fa.p/hw_pci_msi.c.o libcommon.fa.p/hw_pci_msix.c.o libcommon.fa.p/hw_pci_pci.c.o libcommon.fa.p/hw_pci_pci_bridge.c.o libcommon.fa.p/hw_pci_pci_host.c.o libcommon.fa.p/hw_pci_shpc.c.o libcommon.fa.p/hw_pci_slotid_cap.c.o libcommon.fa.p/hw_pci_pcie.c.o libcommon.fa.p/hw_pci_pcie_aer.c.o libcommon.fa.p/hw_pci-bridge_pci_bridge_dev.c.o libcommon.fa.p/hw_pci-bridge_i82801b11.c.o libcommon.fa.p/hw_pci-bridge_ioh3420.c.o libcommon.fa.p/hw_pci-bridge_pcie_root_port.c.o libcommon.fa.p/hw_pci-bridge_gen_pcie_root_port.c.o libcommon.fa.p/hw_pci-bridge_pcie_pci_bridge.c.o libcommon.fa.p/hw_pci-bridge_pci_expander_bridge.c.o libcommon.fa.p/hw_pci-bridge_xio3130_upstream.c.o libcommon.fa.p/hw_pci-bridge_xio3130_downstream.c.o libcommon.fa.p/hw_pci-host_pam.c.o libcommon.fa.p/hw_pci-host_gpex.c.o libcommon.fa.p/hw_pci-host_gpex-acpi.c.o libcommon.fa.p/hw_pci-host_q35.c.o libcommon.fa.p/hw_pci-host_i440fx.c.o libcommon.fa.p/hw_scsi_emulation.c.o libcommon.fa.p/hw_scsi_scsi-bus.c.o libcommon.fa.p/hw_scsi_scsi-disk.c.o libcommon.fa.p/hw_scsi_scsi-generic.c.o libcommon.fa.p/hw_scsi_esp.c.o libcommon.fa.p/hw_scsi_esp-pci.c.o libcommon.fa.p/hw_scsi_lsi53c895a.c.o libcommon.fa.p/hw_scsi_megasas.c.o libcommon.fa.p/hw_scsi_mptsas.c.o libcommon.fa.p/hw_scsi_mptconfig.c.o libcommon.fa.p/hw_scsi_mptendian.c.o libcommon.fa.p/hw_scsi_vmw_pvscsi.c.o libcommon.fa.p/hw_sd_sd.c.o libcommon.fa.p/hw_sd_core.c.o libcommon.fa.p/hw_sd_sdmmc-internal.c.o libcommon.fa.p/hw_sd_sdhci.c.o libcommon.fa.p/hw_sd_sdhci-pci.c.o libcommon.fa.p/hw_smbios_smbios.c.o libcommon.fa.p/hw_smbios_smbios_type_38.c.o libcommon.fa.p/hw_timer_hpet.c.o libcommon.fa.p/hw_timer_i8254_common.c.o libcommon.fa.p/hw_timer_i8254.c.o libcommon.fa.p/hw_tpm_tpm_tis_common.c.o libcommon.fa.p/hw_tpm_tpm_tis_isa.c.o libcommon.fa.p/hw_tpm_tpm_crb.c.o libcommon.fa.p/hw_usb_bus.c.o libcommon.fa.p/hw_usb_combined-packet.c.o libcommon.fa.p/hw_usb_core.c.o libcommon.fa.p/hw_usb_desc.c.o libcommon.fa.p/hw_usb_desc-msos.c.o libcommon.fa.p/hw_usb_libhw.c.o libcommon.fa.p/hw_usb_pcap.c.o libcommon.fa.p/hw_usb_hcd-uhci.c.o libcommon.fa.p/hw_usb_hcd-ohci.c.o libcommon.fa.p/hw_usb_hcd-ohci-pci.c.o libcommon.fa.p/hw_usb_hcd-ehci.c.o libcommon.fa.p/hw_usb_hcd-ehci-pci.c.o libcommon.fa.p/hw_usb_hcd-xhci.c.o libcommon.fa.p/hw_usb_hcd-xhci-pci.c.o libcommon.fa.p/hw_usb_hcd-xhci-sysbus.c.o libcommon.fa.p/hw_usb_hcd-xhci-nec.c.o libcommon.fa.p/hw_usb_imx-usb-phy.c.o libcommon.fa.p/hw_usb_dev-hub.c.o libcommon.fa.p/hw_usb_dev-hid.c.o libcommon.fa.p/hw_usb_dev-wacom.c.o libcommon.fa.p/hw_usb_dev-storage.c.o libcommon.fa.p/hw_usb_dev-storage-bot.c.o libcommon.fa.p/hw_usb_dev-storage-classic.c.o libcommon.fa.p/hw_usb_dev-uas.c.o libcommon.fa.p/hw_usb_dev-audio.c.o libcommon.fa.p/hw_usb_dev-serial.c.o libcommon.fa.p/hw_usb_dev-network.c.o libcommon.fa.p/hw_usb_dev-mtp.c.o libcommon.fa.p/hw_usb_dev-smartcard-reader.c.o libcommon.fa.p/hw_usb_u2f.c.o libcommon.fa.p/hw_virtio_virtio-bus.c.o libcommon.fa.p/hw_virtio_virtio-pci.c.o libcommon.fa.p/hw_virtio_virtio-mmio.c.o libcommon.fa.p/hw_virtio_vhost-stub.c.o libcommon.fa.p/hw_watchdog_watchdog.c.o libcommon.fa.p/hw_watchdog_wdt_i6300esb.c.o libcommon.fa.p/hw_watchdog_wdt_ib700.c.o libcommon.fa.p/accel_accel-softmmu.c.o libcommon.fa.p/ebpf_ebpf_rss-stub.c.o libcommon.fa.p/ui_curses.c.o libcommon.fa.p/hw_display_virtio-gpu-base.c.o libcommon.fa.p/hw_display_virtio-gpu.c.o libcommon.fa.p/hw_display_virtio-gpu-udmabuf-stubs.c.o libcommon.fa.p/hw_display_virtio-gpu-pci.c.o libcommon.fa.p/hw_display_virtio-vga.c.o libcommon.fa.p/hw_usb_redirect.c.o libcommon.fa.p/hw_usb_quirks.c.o libcommon.fa.p/hw_usb_host-libusb.c.o libqemu-x86_64-softmmu.fa.p/target_i386_arch_dump.c.o libqemu-x86_64-softmmu.fa.p/target_i386_arch_memory_mapping.c.o libqemu-x86_64-softmmu.fa.p/target_i386_machine.c.o libqemu-x86_64-softmmu.fa.p/target_i386_monitor.c.o libqemu-x86_64-softmmu.fa.p/target_i386_cpu-sysemu.c.o libqemu-x86_64-softmmu.fa.p/target_i386_sev-sysemu-stub.c.o libqemu-x86_64-softmmu.fa.p/target_i386_kvm_hyperv-stub.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hax_hax-all.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hax_hax-mem.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hax_hax-accel-ops.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hax_hax-posix.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_hvf.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86_cpuid.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86_decode.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86_descr.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86_emu.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86_flags.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86_mmu.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86_task.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_x86hvf.c.o libqemu-x86_64-softmmu.fa.p/target_i386_hvf_hvf-cpu.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_sysemu_tcg-cpu.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_sysemu_smm_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_sysemu_excp_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_sysemu_bpt_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_sysemu_misc_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_sysemu_fpu_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_sysemu_svm_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_sysemu_seg_helper.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_fw_cfg.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_kvmvapic.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_e820_memory_layout.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_multiboot.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_x86.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_x86-iommu.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_amd_iommu.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_pc_piix.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_microvm.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-microvm.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_microvm-dt.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_pc_q35.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_vmmouse.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_vmport.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_intel_iommu.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_sgx-stub.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-common.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_generic_event_device_x86.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_pc.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_pc_sysfw.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_acpi-build.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_port92.c.o libqemu-x86_64-softmmu.fa.p/hw_i386_pc_sysfw_ovmf-stubs.c.o libqemu-x86_64-softmmu.fa.p/target_i386_cpu.c.o libqemu-x86_64-softmmu.fa.p/target_i386_gdbstub.c.o libqemu-x86_64-softmmu.fa.p/target_i386_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_xsave_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_cpu-dump.c.o libqemu-x86_64-softmmu.fa.p/target_i386_host-cpu.c.o libqemu-x86_64-softmmu.fa.p/target_i386_kvm_kvm-stub.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_bpt_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_cc_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_excp_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_fpu_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_int_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_mem_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_misc_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_mpx_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_seg_helper.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_tcg-cpu.c.o libqemu-x86_64-softmmu.fa.p/target_i386_tcg_translate.c.o libqemu-x86_64-softmmu.fa.p/hw_3dfx_glide2x_impl.c.o libqemu-x86_64-softmmu.fa.p/hw_3dfx_glidept_mm.c.o libqemu-x86_64-softmmu.fa.p/hw_3dfx_glidewnd.c.o libqemu-x86_64-softmmu.fa.p/hw_3dfx_gllstbuf.c.o libqemu-x86_64-softmmu.fa.p/hw_mesa_extensions_table.c.o libqemu-x86_64-softmmu.fa.p/hw_mesa_mesagl_impl.c.o libqemu-x86_64-softmmu.fa.p/hw_mesa_mesapt_mm.c.o libqemu-x86_64-softmmu.fa.p/hw_mesa_mglcntx_linux.c.o libqemu-x86_64-softmmu.fa.p/hw_mesa_mglcntx_mingw.c.o libqemu-x86_64-softmmu.fa.p/hw_mesa_mglmapbo.c.o libqemu-x86_64-softmmu.fa.p/hw_mesa_mglvarry.c.o libqemu-x86_64-softmmu.fa.p/hw_mesa_szgldata.c.o libqemu-x86_64-softmmu.fa.p/trace_control-target.c.o libqemu-x86_64-softmmu.fa.p/dump_dump.c.o libqemu-x86_64-softmmu.fa.p/dump_win_dump.c.o libqemu-x86_64-softmmu.fa.p/softmmu_arch_init.c.o libqemu-x86_64-softmmu.fa.p/softmmu_balloon.c.o libqemu-x86_64-softmmu.fa.p/softmmu_cpus.c.o libqemu-x86_64-softmmu.fa.p/softmmu_cpu-throttle.c.o libqemu-x86_64-softmmu.fa.p/softmmu_datadir.c.o libqemu-x86_64-softmmu.fa.p/softmmu_globals.c.o libqemu-x86_64-softmmu.fa.p/softmmu_physmem.c.o libqemu-x86_64-softmmu.fa.p/softmmu_ioport.c.o libqemu-x86_64-softmmu.fa.p/softmmu_rtc.c.o libqemu-x86_64-softmmu.fa.p/softmmu_runstate.c.o libqemu-x86_64-softmmu.fa.p/softmmu_memory.c.o libqemu-x86_64-softmmu.fa.p/softmmu_memory_mapping.c.o libqemu-x86_64-softmmu.fa.p/softmmu_qtest.c.o libqemu-x86_64-softmmu.fa.p/softmmu_vl.c.o libqemu-x86_64-softmmu.fa.p/softmmu_cpu-timers.c.o libqemu-x86_64-softmmu.fa.p/softmmu_runstate-action.c.o libqemu-x86_64-softmmu.fa.p/softmmu_icount.c.o libqemu-x86_64-softmmu.fa.p/cpu.c.o libqemu-x86_64-softmmu.fa.p/disas.c.o libqemu-x86_64-softmmu.fa.p/gdbstub.c.o libqemu-x86_64-softmmu.fa.p/page-vary.c.o libqemu-x86_64-softmmu.fa.p/migration_dirtyrate.c.o libqemu-x86_64-softmmu.fa.p/migration_ram.c.o libqemu-x86_64-softmmu.fa.p/migration_target.c.o libqemu-x86_64-softmmu.fa.p/monitor_misc.c.o libqemu-x86_64-softmmu.fa.p/hw_block_virtio-blk.c.o libqemu-x86_64-softmmu.fa.p/hw_block_dataplane_virtio-blk.c.o libqemu-x86_64-softmmu.fa.p/hw_char_virtio-serial-bus.c.o libqemu-x86_64-softmmu.fa.p/hw_core_machine-qmp-cmds.c.o libqemu-x86_64-softmmu.fa.p/hw_core_numa.c.o libqemu-x86_64-softmmu.fa.p/hw_display_vga.c.o libqemu-x86_64-softmmu.fa.p/hw_intc_apic.c.o libqemu-x86_64-softmmu.fa.p/hw_intc_apic_common.c.o libqemu-x86_64-softmmu.fa.p/hw_intc_ioapic.c.o libqemu-x86_64-softmmu.fa.p/hw_isa_lpc_ich9.c.o libqemu-x86_64-softmmu.fa.p/hw_net_virtio-net.c.o libqemu-x86_64-softmmu.fa.p/hw_rtc_mc146818rtc.c.o libqemu-x86_64-softmmu.fa.p/hw_scsi_virtio-scsi.c.o libqemu-x86_64-softmmu.fa.p/hw_scsi_virtio-scsi-dataplane.c.o libqemu-x86_64-softmmu.fa.p/hw_tpm_tpm_ppi.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-balloon.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-crypto.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-crypto-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-pmem.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-rng.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-iommu.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-input-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-rng-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-balloon-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-scsi-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-blk-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-net-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-serial-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-pmem-pci.c.o libqemu-x86_64-softmmu.fa.p/hw_virtio_virtio-iommu-pci.c.o libqemu-x86_64-softmmu.fa.p/tcg_optimize.c.o libqemu-x86_64-softmmu.fa.p/tcg_region.c.o libqemu-x86_64-softmmu.fa.p/tcg_tcg.c.o libqemu-x86_64-softmmu.fa.p/tcg_tcg-common.c.o libqemu-x86_64-softmmu.fa.p/tcg_tcg-op.c.o libqemu-x86_64-softmmu.fa.p/tcg_tcg-op-gvec.c.o libqemu-x86_64-softmmu.fa.p/tcg_tcg-op-vec.c.o libqemu-x86_64-softmmu.fa.p/fpu_softfloat.c.o libqemu-x86_64-softmmu.fa.p/accel_accel-common.c.o libqemu-x86_64-softmmu.fa.p/accel_hvf_hvf-all.c.o libqemu-x86_64-softmmu.fa.p/accel_hvf_hvf-accel-ops.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_tcg-all.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_cpu-exec-common.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_cpu-exec.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_tcg-runtime-gvec.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_tcg-runtime.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_translate-all.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_translator.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_plugin-gen.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_cputlb.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_hmp.c.o libqemu-x86_64-softmmu.fa.p/accel_stubs_xen-stub.c.o libqemu-x86_64-softmmu.fa.p/accel_stubs_kvm-stub.c.o libqemu-x86_64-softmmu.fa.p/accel_dummy-cpus.c.o libqemu-x86_64-softmmu.fa.p/plugins_loader.c.o libqemu-x86_64-softmmu.fa.p/plugins_core.c.o libqemu-x86_64-softmmu.fa.p/plugins_api.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_tcg-accel-ops.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_tcg-accel-ops-mttcg.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_tcg-accel-ops-icount.c.o libqemu-x86_64-softmmu.fa.p/accel_tcg_tcg-accel-ops-rr.c.o libqemu-x86_64-softmmu.fa.p/accel_qtest_qtest.c.o libqemu-x86_64-softmmu.fa.p/meson-generated_..x86_64-softmmu-gdbstub-xml.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-types-machine-target.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-visit-machine-target.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-events-machine-target.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-commands-machine-target.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-types-misc-target.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-visit-misc-target.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-events-misc-target.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-commands-misc-target.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-introspect.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-types.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-visit.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-commands.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-init-commands.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-events.c.o libqemu-x86_64-softmmu.fa.p/meson-generated..qapi_qapi-emit-events.c.o libqemu-x86_64-softmmu.fa.p/meson-generated.._trace_generated-helpers.c.o -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.0.0 -L/opt/X11/lib -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -Wl,-force_load libhwcore.fa -Wl,-force_load libqom.fa -Wl,-force_load libio.fa -Wl,-force_load libcrypto.fa -Wl,-force_load libauthz.fa -Wl,-force_load libblockdev.fa -Wl,-force_load libblock.fa -Wl,-force_load libchardev.fa -Wl,-force_load libqmp.fa -fstack-protector-strong -Wl,-rpath,/usr/local/Cellar/pixman/0.40.0/lib -Wl,-rpath,/usr/local/Cellar/libpng/1.6.37/lib -Wl,-rpath,/usr/local/Cellar/jpeg/9e/lib -Wl,-rpath,/usr/local/Cellar/gnutls/3.7.4/lib -Wl,-rpath,/usr/local/Cellar/zstd/1.5.2/lib -Wl,-rpath,/usr/local/Cellar/libslirp/4.6.1/lib -Wl,-rpath,/usr/local/Cellar/glib/2.72.0/lib -Wl,-rpath,/usr/local/opt/gettext/lib -Wl,-rpath,/usr/local/Cellar/usbredir/0.12.0/lib -Wl,-rpath,/usr/local/Cellar/libusb/1.0.25/lib -Wl,-rpath,/usr/local/Cellar/libiscsi/1.19.0/lib libcapstone.a libqemuutil.a libfdt.a libmigration.fa libhwcore.fa libqom.fa libio.fa libcrypto.fa libauthz.fa libblockdev.fa libblock.fa libchardev.fa libqmp.fa -lX11 -lXxf86vm -lGL -Wl,-framework,OpenGL @block.syms @qemu.syms -framework Hypervisor /usr/local/Cellar/pixman/0.40.0/lib/libpixman-1.dylib -lsnappy -llzo2 -Wl,-exported_symbols_list,qemu-plugins-ld64.symbols -framework Cocoa -lz /usr/local/Cellar/libpng/1.6.37/lib/libpng16.dylib -L/usr/local/Cellar/libpng/1.6.37/lib -lz /usr/local/Cellar/jpeg/9e/lib/libjpeg.dylib /usr/local/Cellar/gnutls/3.7.4/lib/libgnutls.dylib -lsasl2 -framework CoreAudio -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl /usr/local/Cellar/zstd/1.5.2/lib/libzstd.dylib /usr/local/Cellar/libslirp/4.6.1/lib/libslirp.dylib /usr/local/Cellar/glib/2.72.0/lib/libglib-2.0.dylib /usr/local/opt/gettext/lib/libintl.dylib -lvdeplug -lncurses -liconv -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgmodule-2.0 -lglib-2.0 -lintl /usr/local/Cellar/usbredir/0.12.0/lib/libusbredirparser.dylib /usr/local/Cellar/libusb/1.0.25/lib/libusb-1.0.dylib @block.syms -lutil -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lm -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgmodule-2.0 -lglib-2.0 -lintl -lpam -lz -lxml2 -framework CoreFoundation -framework IOKit /usr/local/Cellar/libiscsi/1.19.0/lib/libiscsi.dylib -lcurl -L/usr/local/Cellar/libssh/0.9.6/lib -lssh -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgmodule-2.0 -lglib-2.0 -lintl -lbz2 -lc++
Undefined symbols for architecture x86_64:
"_glide_gui_fullscreen", referenced from:
_stat_window in hw_3dfx_glidewnd.c.o
_init_window in hw_3dfx_glidewnd.c.o
_profile_stat in hw_3dfx_glidewnd.c.o
"_glide_prepare_window", referenced from:
_init_window in hw_3dfx_glidewnd.c.o
"_glide_release_window", referenced from:
_fini_window in hw_3dfx_glidewnd.c.o
"_glide_renderer_stat", referenced from:
_processArgs in hw_3dfx_glidept_mm.c.o
_processFRet in hw_3dfx_glidept_mm.c.o
"_glide_window_stat", referenced from:
_stat_window in hw_3dfx_glidewnd.c.o
"_mesa_gui_fullscreen", referenced from:
_MesaDisplayModeset in hw_mesa_mglcntx_linux.c.o
_profile_stat in hw_mesa_mglcntx_mingw.c.o
"_mesa_prepare_window", referenced from:
_MGLPresetPixelFormat in hw_mesa_mglcntx_linux.c.o
"_mesa_release_window", referenced from:
_MGLWndRelease in hw_mesa_mglcntx_linux.c.o
"_mesa_renderer_stat", referenced from:
_MGLDeleteContext in hw_mesa_mglcntx_linux.c.o
_MGLActivateHandler in hw_mesa_mglcntx_linux.c.o
_MGLMakeCurrent in hw_mesa_mglcntx_linux.c.o
MGLSwapBuffers in hw_mesa_mglcntx_linux.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[2411/2618] Compiling C object libcommon.fa.p/hw_misc_imx_ccm.c.o
[2412/2618] Compiling C object libcommon.fa.p/hw_misc_imx_rngc.c.o
[2413/2618] Compiling C object libcommon.fa.p/hw_misc_imx31_ccm.c.o
[2414/2618] Linking target qemu-system-i386-unsigned
FAILED: qemu-system-i386-unsigned
c++ -m64 -mcx16 -o qemu-system-i386-unsigned qemu-system-i386-unsigned.p/softmmu_main.c.o libcommon.fa.p/cpus-common.c.o libcommon.fa.p/page-vary-common.c.o libcommon.fa.p/disas_i386.c.o libcommon.fa.p/disas_capstone.c.o libcommon.fa.p/hw_core_cpu-common.c.o libcommon.fa.p/hw_core_machine-smp.c.o libcommon.fa.p/qom_qom-hmp-cmds.c.o libcommon.fa.p/ui_clipboard.c.o libcommon.fa.p/ui_console.c.o libcommon.fa.p/ui_cursor.c.o libcommon.fa.p/ui_input-keymap.c.o libcommon.fa.p/ui_input-legacy.c.o libcommon.fa.p/ui_input-barrier.c.o libcommon.fa.p/ui_input.c.o libcommon.fa.p/ui_kbd-state.c.o libcommon.fa.p/ui_keymaps.c.o libcommon.fa.p/ui_qemu-pixman.c.o libcommon.fa.p/ui_spice-module.c.o libcommon.fa.p/ui_vdagent.c.o libcommon.fa.p/ui_cocoa.m.o libcommon.fa.p/ui_vnc.c.o libcommon.fa.p/ui_vnc-enc-zlib.c.o libcommon.fa.p/ui_vnc-enc-hextile.c.o libcommon.fa.p/ui_vnc-enc-tight.c.o libcommon.fa.p/ui_vnc-palette.c.o libcommon.fa.p/ui_vnc-enc-zrle.c.o libcommon.fa.p/ui_vnc-auth-vencrypt.c.o libcommon.fa.p/ui_vnc-ws.c.o libcommon.fa.p/ui_vnc-jobs.c.o libcommon.fa.p/ui_vnc-clipboard.c.o libcommon.fa.p/ui_vnc-auth-sasl.c.o libcommon.fa.p/audio_audio.c.o libcommon.fa.p/audio_audio_legacy.c.o libcommon.fa.p/audio_mixeng.c.o libcommon.fa.p/audio_noaudio.c.o libcommon.fa.p/audio_wavaudio.c.o libcommon.fa.p/audio_wavcapture.c.o libcommon.fa.p/audio_coreaudio.c.o libcommon.fa.p/chardev_msmouse.c.o libcommon.fa.p/chardev_wctablet.c.o libcommon.fa.p/chardev_testdev.c.o libcommon.fa.p/dump_dump-hmp-cmds.c.o libcommon.fa.p/block_blkreplay.c.o libcommon.fa.p/block_qapi-sysemu.c.o libcommon.fa.p/block_monitor_block-hmp-cmds.c.o libcommon.fa.p/softmmu_bootdevice.c.o libcommon.fa.p/softmmu_dma-helpers.c.o libcommon.fa.p/softmmu_qdev-monitor.c.o libcommon.fa.p/softmmu_tpm.c.o libcommon.fa.p/softmmu_device_tree.c.o libcommon.fa.p/backends_cryptodev-builtin.c.o libcommon.fa.p/backends_cryptodev.c.o libcommon.fa.p/backends_hostmem-ram.c.o libcommon.fa.p/backends_hostmem.c.o libcommon.fa.p/backends_rng-builtin.c.o libcommon.fa.p/backends_rng-egd.c.o libcommon.fa.p/backends_rng.c.o libcommon.fa.p/backends_confidential-guest-support.c.o libcommon.fa.p/backends_rng-random.c.o libcommon.fa.p/backends_hostmem-file.c.o libcommon.fa.p/backends_cryptodev-vhost.c.o libcommon.fa.p/backends_dbus-vmstate.c.o libcommon.fa.p/backends_tpm_tpm_backend.c.o libcommon.fa.p/backends_tpm_tpm_util.c.o libcommon.fa.p/backends_tpm_tpm_emulator.c.o libcommon.fa.p/migration_page_cache.c.o libcommon.fa.p/migration_xbzrle.c.o libcommon.fa.p/migration_vmstate-types.c.o libcommon.fa.p/migration_vmstate.c.o libcommon.fa.p/migration_qemu-file-channel.c.o libcommon.fa.p/migration_qemu-file.c.o libcommon.fa.p/migration_yank_functions.c.o libcommon.fa.p/migration_block-dirty-bitmap.c.o libcommon.fa.p/migration_channel.c.o libcommon.fa.p/migration_colo-failover.c.o libcommon.fa.p/migration_colo.c.o libcommon.fa.p/migration_exec.c.o libcommon.fa.p/migration_fd.c.o libcommon.fa.p/migration_global_state.c.o libcommon.fa.p/migration_migration.c.o libcommon.fa.p/migration_multifd.c.o libcommon.fa.p/migration_multifd-zlib.c.o libcommon.fa.p/migration_postcopy-ram.c.o libcommon.fa.p/migration_savevm.c.o libcommon.fa.p/migration_socket.c.o libcommon.fa.p/migration_tls.c.o libcommon.fa.p/migration_block.c.o libcommon.fa.p/migration_multifd-zstd.c.o libcommon.fa.p/monitor_hmp-cmds.c.o libcommon.fa.p/monitor_hmp.c.o libcommon.fa.p/monitor_qmp-cmds.c.o libcommon.fa.p/net_announce.c.o libcommon.fa.p/net_checksum.c.o libcommon.fa.p/net_colo-compare.c.o libcommon.fa.p/net_colo.c.o libcommon.fa.p/net_dump.c.o libcommon.fa.p/net_eth.c.o libcommon.fa.p/net_filter-buffer.c.o libcommon.fa.p/net_filter-mirror.c.o libcommon.fa.p/net_filter-rewriter.c.o libcommon.fa.p/net_filter.c.o libcommon.fa.p/net_hub.c.o libcommon.fa.p/net_net.c.o libcommon.fa.p/net_queue.c.o libcommon.fa.p/net_socket.c.o libcommon.fa.p/net_util.c.o libcommon.fa.p/net_filter-replay.c.o libcommon.fa.p/net_slirp.c.o libcommon.fa.p/net_vde.c.o libcommon.fa.p/net_tap-bsd.c.o libcommon.fa.p/net_tap.c.o libcommon.fa.p/net_can_can_core.c.o libcommon.fa.p/net_can_can_host.c.o libcommon.fa.p/replay_replay.c.o libcommon.fa.p/replay_replay-internal.c.o libcommon.fa.p/replay_replay-events.c.o libcommon.fa.p/replay_replay-time.c.o libcommon.fa.p/replay_replay-input.c.o libcommon.fa.p/replay_replay-char.c.o libcommon.fa.p/replay_replay-snapshot.c.o libcommon.fa.p/replay_replay-net.c.o libcommon.fa.p/replay_replay-audio.c.o libcommon.fa.p/replay_replay-random.c.o libcommon.fa.p/replay_replay-debugging.c.o libcommon.fa.p/hw_acpi_acpi_interface.c.o libcommon.fa.p/hw_acpi_aml-build.c.o libcommon.fa.p/hw_acpi_bios-linker-loader.c.o libcommon.fa.p/hw_acpi_core.c.o libcommon.fa.p/hw_acpi_utils.c.o libcommon.fa.p/hw_acpi_cpu.c.o libcommon.fa.p/hw_acpi_cpu_hotplug.c.o libcommon.fa.p/hw_acpi_memory_hotplug.c.o libcommon.fa.p/hw_acpi_nvdimm.c.o libcommon.fa.p/hw_acpi_pci.c.o libcommon.fa.p/hw_acpi_vmgenid.c.o libcommon.fa.p/hw_acpi_generic_event_device.c.o libcommon.fa.p/hw_acpi_hmat.c.o libcommon.fa.p/hw_acpi_ghes-stub.c.o libcommon.fa.p/hw_acpi_piix4.c.o libcommon.fa.p/hw_acpi_pcihp.c.o libcommon.fa.p/hw_acpi_viot.c.o libcommon.fa.p/hw_acpi_ich9.c.o libcommon.fa.p/hw_acpi_tco.c.o libcommon.fa.p/hw_acpi_ipmi.c.o libcommon.fa.p/hw_acpi_tpm.c.o libcommon.fa.p/hw_audio_soundhw.c.o libcommon.fa.p/hw_audio_ac97.c.o libcommon.fa.p/hw_audio_fmopl.c.o libcommon.fa.p/hw_audio_adlib.c.o libcommon.fa.p/hw_audio_cs4231a.c.o libcommon.fa.p/hw_audio_es1370.c.o libcommon.fa.p/hw_audio_gus.c.o libcommon.fa.p/hw_audio_gusemu_hal.c.o libcommon.fa.p/hw_audio_gusemu_mixer.c.o libcommon.fa.p/hw_audio_intel-hda.c.o libcommon.fa.p/hw_audio_hda-codec.c.o libcommon.fa.p/hw_audio_pcspk.c.o libcommon.fa.p/hw_audio_sb16.c.o libcommon.fa.p/hw_block_block.c.o libcommon.fa.p/hw_block_cdrom.c.o libcommon.fa.p/hw_block_hd-geometry.c.o libcommon.fa.p/hw_block_fdc.c.o libcommon.fa.p/hw_block_fdc-isa.c.o libcommon.fa.p/hw_block_pflash_cfi01.c.o libcommon.fa.p/hw_char_ipoctal232.c.o libcommon.fa.p/hw_char_parallel-isa.c.o libcommon.fa.p/hw_char_debugcon.c.o libcommon.fa.p/hw_char_parallel.c.o libcommon.fa.p/hw_char_serial.c.o libcommon.fa.p/hw_char_serial-isa.c.o libcommon.fa.p/hw_char_serial-pci.c.o libcommon.fa.p/hw_char_serial-pci-multi.c.o libcommon.fa.p/hw_char_virtio-console.c.o libcommon.fa.p/hw_core_generic-loader.c.o libcommon.fa.p/hw_core_guest-loader.c.o libcommon.fa.p/hw_core_cpu-sysemu.c.o libcommon.fa.p/hw_core_fw-path-provider.c.o libcommon.fa.p/hw_core_gpio.c.o libcommon.fa.p/hw_core_loader.c.o libcommon.fa.p/hw_core_machine-hmp-cmds.c.o libcommon.fa.p/hw_core_machine.c.o libcommon.fa.p/hw_core_nmi.c.o libcommon.fa.p/hw_core_null-machine.c.o libcommon.fa.p/hw_core_qdev-fw.c.o libcommon.fa.p/hw_core_qdev-properties-system.c.o libcommon.fa.p/hw_core_sysbus.c.o libcommon.fa.p/hw_core_vm-change-state-handler.c.o libcommon.fa.p/hw_core_clock-vmstate.c.o libcommon.fa.p/hw_cpu_core.c.o libcommon.fa.p/hw_cpu_cluster.c.o libcommon.fa.p/hw_display_i2c-ddc.c.o libcommon.fa.p/hw_display_edid-generate.c.o libcommon.fa.p/hw_display_edid-region.c.o libcommon.fa.p/hw_display_ramfb.c.o libcommon.fa.p/hw_display_ramfb-standalone.c.o libcommon.fa.p/hw_display_cirrus_vga.c.o libcommon.fa.p/hw_display_cirrus_vga_isa.c.o libcommon.fa.p/hw_display_vga-pci.c.o libcommon.fa.p/hw_display_vga-isa.c.o libcommon.fa.p/hw_display_vmware_vga.c.o libcommon.fa.p/hw_display_bochs-display.c.o libcommon.fa.p/hw_display_ati.c.o libcommon.fa.p/hw_display_ati_2d.c.o libcommon.fa.p/hw_display_ati_dbg.c.o libcommon.fa.p/hw_dma_i8257.c.o libcommon.fa.p/hw_i2c_core.c.o libcommon.fa.p/hw_i2c_smbus_slave.c.o libcommon.fa.p/hw_i2c_smbus_master.c.o libcommon.fa.p/hw_i2c_pm_smbus.c.o libcommon.fa.p/hw_i2c_smbus_ich9.c.o libcommon.fa.p/hw_i2c_bitbang_i2c.c.o libcommon.fa.p/hw_i2c_smbus_eeprom.c.o libcommon.fa.p/hw_ide_ahci.c.o libcommon.fa.p/hw_ide_ich.c.o libcommon.fa.p/hw_ide_core.c.o libcommon.fa.p/hw_ide_atapi.c.o libcommon.fa.p/hw_ide_isa.c.o libcommon.fa.p/hw_ide_ioport.c.o libcommon.fa.p/hw_ide_pci.c.o libcommon.fa.p/hw_ide_piix.c.o libcommon.fa.p/hw_ide_qdev.c.o libcommon.fa.p/hw_input_hid.c.o libcommon.fa.p/hw_input_pckbd.c.o libcommon.fa.p/hw_input_ps2.c.o libcommon.fa.p/hw_input_virtio-input.c.o libcommon.fa.p/hw_input_virtio-input-hid.c.o libcommon.fa.p/hw_intc_intc.c.o libcommon.fa.p/hw_intc_i8259_common.c.o libcommon.fa.p/hw_intc_i8259.c.o libcommon.fa.p/hw_intc_ioapic_common.c.o libcommon.fa.p/hw_ipack_ipack.c.o libcommon.fa.p/hw_ipack_tpci200.c.o libcommon.fa.p/hw_ipmi_ipmi.c.o libcommon.fa.p/hw_ipmi_ipmi_kcs.c.o libcommon.fa.p/hw_ipmi_ipmi_bt.c.o libcommon.fa.p/hw_ipmi_ipmi_bmc_sim.c.o libcommon.fa.p/hw_ipmi_ipmi_bmc_extern.c.o libcommon.fa.p/hw_ipmi_isa_ipmi_kcs.c.o libcommon.fa.p/hw_ipmi_pci_ipmi_kcs.c.o libcommon.fa.p/hw_ipmi_isa_ipmi_bt.c.o libcommon.fa.p/hw_ipmi_pci_ipmi_bt.c.o libcommon.fa.p/hw_ipmi_smbus_ipmi.c.o libcommon.fa.p/hw_isa_apm.c.o libcommon.fa.p/hw_isa_isa-bus.c.o libcommon.fa.p/hw_isa_piix3.c.o libcommon.fa.p/hw_mem_memory-device.c.o libcommon.fa.p/hw_mem_pc-dimm.c.o libcommon.fa.p/hw_mem_nvdimm.c.o libcommon.fa.p/hw_misc_applesmc.c.o libcommon.fa.p/hw_misc_edu.c.o libcommon.fa.p/hw_misc_vmcoreinfo.c.o libcommon.fa.p/hw_misc_debugexit.c.o libcommon.fa.p/hw_misc_pc-testdev.c.o libcommon.fa.p/hw_misc_pci-testdev.c.o libcommon.fa.p/hw_misc_sga.c.o libcommon.fa.p/hw_misc_pvpanic.c.o libcommon.fa.p/hw_misc_pvpanic-isa.c.o libcommon.fa.p/hw_misc_pvpanic-pci.c.o libcommon.fa.p/hw_net_ne2000.c.o libcommon.fa.p/hw_net_ne2000-pci.c.o libcommon.fa.p/hw_net_eepro100.c.o libcommon.fa.p/hw_net_pcnet-pci.c.o libcommon.fa.p/hw_net_pcnet.c.o libcommon.fa.p/hw_net_e1000.c.o libcommon.fa.p/hw_net_e1000x_common.c.o libcommon.fa.p/hw_net_net_tx_pkt.c.o libcommon.fa.p/hw_net_net_rx_pkt.c.o libcommon.fa.p/hw_net_e1000e.c.o libcommon.fa.p/hw_net_e1000e_core.c.o libcommon.fa.p/hw_net_rtl8139.c.o libcommon.fa.p/hw_net_tulip.c.o libcommon.fa.p/hw_net_vmxnet3.c.o libcommon.fa.p/hw_net_ne2000-isa.c.o libcommon.fa.p/hw_net_vhost_net-stub.c.o libcommon.fa.p/hw_net_rocker_rocker.c.o libcommon.fa.p/hw_net_rocker_rocker_desc.c.o libcommon.fa.p/hw_net_rocker_rocker_fp.c.o libcommon.fa.p/hw_net_rocker_rocker_of_dpa.c.o libcommon.fa.p/hw_net_rocker_rocker_world.c.o libcommon.fa.p/hw_net_can_can_sja1000.c.o libcommon.fa.p/hw_net_can_can_kvaser_pci.c.o libcommon.fa.p/hw_net_can_can_pcm3680_pci.c.o libcommon.fa.p/hw_net_can_can_mioe3680_pci.c.o libcommon.fa.p/hw_net_can_ctucan_core.c.o libcommon.fa.p/hw_net_can_ctucan_pci.c.o libcommon.fa.p/hw_nvme_ctrl.c.o libcommon.fa.p/hw_nvme_dif.c.o libcommon.fa.p/hw_nvme_ns.c.o libcommon.fa.p/hw_nvme_subsys.c.o libcommon.fa.p/hw_nvram_fw_cfg.c.o libcommon.fa.p/hw_nvram_eeprom93xx.c.o libcommon.fa.p/hw_pci_pcie_port.c.o libcommon.fa.p/hw_pci_pcie_host.c.o libcommon.fa.p/hw_pci_msi.c.o libcommon.fa.p/hw_pci_msix.c.o libcommon.fa.p/hw_pci_pci.c.o libcommon.fa.p/hw_pci_pci_bridge.c.o libcommon.fa.p/hw_pci_pci_host.c.o libcommon.fa.p/hw_pci_shpc.c.o libcommon.fa.p/hw_pci_slotid_cap.c.o libcommon.fa.p/hw_pci_pcie.c.o libcommon.fa.p/hw_pci_pcie_aer.c.o libcommon.fa.p/hw_pci-bridge_pci_bridge_dev.c.o libcommon.fa.p/hw_pci-bridge_i82801b11.c.o libcommon.fa.p/hw_pci-bridge_ioh3420.c.o libcommon.fa.p/hw_pci-bridge_pcie_root_port.c.o libcommon.fa.p/hw_pci-bridge_gen_pcie_root_port.c.o libcommon.fa.p/hw_pci-bridge_pcie_pci_bridge.c.o libcommon.fa.p/hw_pci-bridge_pci_expander_bridge.c.o libcommon.fa.p/hw_pci-bridge_xio3130_upstream.c.o libcommon.fa.p/hw_pci-bridge_xio3130_downstream.c.o libcommon.fa.p/hw_pci-host_pam.c.o libcommon.fa.p/hw_pci-host_gpex.c.o libcommon.fa.p/hw_pci-host_gpex-acpi.c.o libcommon.fa.p/hw_pci-host_q35.c.o libcommon.fa.p/hw_pci-host_i440fx.c.o libcommon.fa.p/hw_scsi_emulation.c.o libcommon.fa.p/hw_scsi_scsi-bus.c.o libcommon.fa.p/hw_scsi_scsi-disk.c.o libcommon.fa.p/hw_scsi_scsi-generic.c.o libcommon.fa.p/hw_scsi_esp.c.o libcommon.fa.p/hw_scsi_esp-pci.c.o libcommon.fa.p/hw_scsi_lsi53c895a.c.o libcommon.fa.p/hw_scsi_megasas.c.o libcommon.fa.p/hw_scsi_mptsas.c.o libcommon.fa.p/hw_scsi_mptconfig.c.o libcommon.fa.p/hw_scsi_mptendian.c.o libcommon.fa.p/hw_scsi_vmw_pvscsi.c.o libcommon.fa.p/hw_sd_sd.c.o libcommon.fa.p/hw_sd_core.c.o libcommon.fa.p/hw_sd_sdmmc-internal.c.o libcommon.fa.p/hw_sd_sdhci.c.o libcommon.fa.p/hw_sd_sdhci-pci.c.o libcommon.fa.p/hw_smbios_smbios.c.o libcommon.fa.p/hw_smbios_smbios_type_38.c.o libcommon.fa.p/hw_timer_hpet.c.o libcommon.fa.p/hw_timer_i8254_common.c.o libcommon.fa.p/hw_timer_i8254.c.o libcommon.fa.p/hw_tpm_tpm_tis_common.c.o libcommon.fa.p/hw_tpm_tpm_tis_isa.c.o libcommon.fa.p/hw_tpm_tpm_crb.c.o libcommon.fa.p/hw_usb_bus.c.o libcommon.fa.p/hw_usb_combined-packet.c.o libcommon.fa.p/hw_usb_core.c.o libcommon.fa.p/hw_usb_desc.c.o libcommon.fa.p/hw_usb_desc-msos.c.o libcommon.fa.p/hw_usb_libhw.c.o libcommon.fa.p/hw_usb_pcap.c.o libcommon.fa.p/hw_usb_hcd-uhci.c.o libcommon.fa.p/hw_usb_hcd-ohci.c.o libcommon.fa.p/hw_usb_hcd-ohci-pci.c.o libcommon.fa.p/hw_usb_hcd-ehci.c.o libcommon.fa.p/hw_usb_hcd-ehci-pci.c.o libcommon.fa.p/hw_usb_hcd-xhci.c.o libcommon.fa.p/hw_usb_hcd-xhci-pci.c.o libcommon.fa.p/hw_usb_hcd-xhci-sysbus.c.o libcommon.fa.p/hw_usb_hcd-xhci-nec.c.o libcommon.fa.p/hw_usb_imx-usb-phy.c.o libcommon.fa.p/hw_usb_dev-hub.c.o libcommon.fa.p/hw_usb_dev-hid.c.o libcommon.fa.p/hw_usb_dev-wacom.c.o libcommon.fa.p/hw_usb_dev-storage.c.o libcommon.fa.p/hw_usb_dev-storage-bot.c.o libcommon.fa.p/hw_usb_dev-storage-classic.c.o libcommon.fa.p/hw_usb_dev-uas.c.o libcommon.fa.p/hw_usb_dev-audio.c.o libcommon.fa.p/hw_usb_dev-serial.c.o libcommon.fa.p/hw_usb_dev-network.c.o libcommon.fa.p/hw_usb_dev-mtp.c.o libcommon.fa.p/hw_usb_dev-smartcard-reader.c.o libcommon.fa.p/hw_usb_u2f.c.o libcommon.fa.p/hw_virtio_virtio-bus.c.o libcommon.fa.p/hw_virtio_virtio-pci.c.o libcommon.fa.p/hw_virtio_virtio-mmio.c.o libcommon.fa.p/hw_virtio_vhost-stub.c.o libcommon.fa.p/hw_watchdog_watchdog.c.o libcommon.fa.p/hw_watchdog_wdt_i6300esb.c.o libcommon.fa.p/hw_watchdog_wdt_ib700.c.o libcommon.fa.p/accel_accel-softmmu.c.o libcommon.fa.p/ebpf_ebpf_rss-stub.c.o libcommon.fa.p/ui_curses.c.o libcommon.fa.p/hw_display_virtio-gpu-base.c.o libcommon.fa.p/hw_display_virtio-gpu.c.o libcommon.fa.p/hw_display_virtio-gpu-udmabuf-stubs.c.o libcommon.fa.p/hw_display_virtio-gpu-pci.c.o libcommon.fa.p/hw_display_virtio-vga.c.o libcommon.fa.p/hw_usb_redirect.c.o libcommon.fa.p/hw_usb_quirks.c.o libcommon.fa.p/hw_usb_host-libusb.c.o libqemu-i386-softmmu.fa.p/target_i386_arch_dump.c.o libqemu-i386-softmmu.fa.p/target_i386_arch_memory_mapping.c.o libqemu-i386-softmmu.fa.p/target_i386_machine.c.o libqemu-i386-softmmu.fa.p/target_i386_monitor.c.o libqemu-i386-softmmu.fa.p/target_i386_cpu-sysemu.c.o libqemu-i386-softmmu.fa.p/target_i386_sev-sysemu-stub.c.o libqemu-i386-softmmu.fa.p/target_i386_kvm_hyperv-stub.c.o libqemu-i386-softmmu.fa.p/target_i386_hax_hax-all.c.o libqemu-i386-softmmu.fa.p/target_i386_hax_hax-mem.c.o libqemu-i386-softmmu.fa.p/target_i386_hax_hax-accel-ops.c.o libqemu-i386-softmmu.fa.p/target_i386_hax_hax-posix.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_sysemu_tcg-cpu.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_sysemu_smm_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_sysemu_excp_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_sysemu_bpt_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_sysemu_misc_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_sysemu_fpu_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_sysemu_svm_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_sysemu_seg_helper.c.o libqemu-i386-softmmu.fa.p/hw_i386_fw_cfg.c.o libqemu-i386-softmmu.fa.p/hw_i386_kvmvapic.c.o libqemu-i386-softmmu.fa.p/hw_i386_e820_memory_layout.c.o libqemu-i386-softmmu.fa.p/hw_i386_multiboot.c.o libqemu-i386-softmmu.fa.p/hw_i386_x86.c.o libqemu-i386-softmmu.fa.p/hw_i386_x86-iommu.c.o libqemu-i386-softmmu.fa.p/hw_i386_amd_iommu.c.o libqemu-i386-softmmu.fa.p/hw_i386_pc_piix.c.o libqemu-i386-softmmu.fa.p/hw_i386_microvm.c.o libqemu-i386-softmmu.fa.p/hw_i386_acpi-microvm.c.o libqemu-i386-softmmu.fa.p/hw_i386_microvm-dt.c.o libqemu-i386-softmmu.fa.p/hw_i386_pc_q35.c.o libqemu-i386-softmmu.fa.p/hw_i386_vmmouse.c.o libqemu-i386-softmmu.fa.p/hw_i386_vmport.c.o libqemu-i386-softmmu.fa.p/hw_i386_intel_iommu.c.o libqemu-i386-softmmu.fa.p/hw_i386_sgx-stub.c.o libqemu-i386-softmmu.fa.p/hw_i386_acpi-common.c.o libqemu-i386-softmmu.fa.p/hw_i386_generic_event_device_x86.c.o libqemu-i386-softmmu.fa.p/hw_i386_pc.c.o libqemu-i386-softmmu.fa.p/hw_i386_pc_sysfw.c.o libqemu-i386-softmmu.fa.p/hw_i386_acpi-build.c.o libqemu-i386-softmmu.fa.p/hw_i386_port92.c.o libqemu-i386-softmmu.fa.p/hw_i386_pc_sysfw_ovmf-stubs.c.o libqemu-i386-softmmu.fa.p/target_i386_cpu.c.o libqemu-i386-softmmu.fa.p/target_i386_gdbstub.c.o libqemu-i386-softmmu.fa.p/target_i386_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_xsave_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_cpu-dump.c.o libqemu-i386-softmmu.fa.p/target_i386_kvm_kvm-stub.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_bpt_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_cc_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_excp_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_fpu_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_int_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_mem_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_misc_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_mpx_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_seg_helper.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_tcg-cpu.c.o libqemu-i386-softmmu.fa.p/target_i386_tcg_translate.c.o libqemu-i386-softmmu.fa.p/hw_3dfx_glide2x_impl.c.o libqemu-i386-softmmu.fa.p/hw_3dfx_glidept_mm.c.o libqemu-i386-softmmu.fa.p/hw_3dfx_glidewnd.c.o libqemu-i386-softmmu.fa.p/hw_3dfx_gllstbuf.c.o libqemu-i386-softmmu.fa.p/hw_mesa_extensions_table.c.o libqemu-i386-softmmu.fa.p/hw_mesa_mesagl_impl.c.o libqemu-i386-softmmu.fa.p/hw_mesa_mesapt_mm.c.o libqemu-i386-softmmu.fa.p/hw_mesa_mglcntx_linux.c.o libqemu-i386-softmmu.fa.p/hw_mesa_mglcntx_mingw.c.o libqemu-i386-softmmu.fa.p/hw_mesa_mglmapbo.c.o libqemu-i386-softmmu.fa.p/hw_mesa_mglvarry.c.o libqemu-i386-softmmu.fa.p/hw_mesa_szgldata.c.o libqemu-i386-softmmu.fa.p/trace_control-target.c.o libqemu-i386-softmmu.fa.p/dump_dump.c.o libqemu-i386-softmmu.fa.p/softmmu_arch_init.c.o libqemu-i386-softmmu.fa.p/softmmu_balloon.c.o libqemu-i386-softmmu.fa.p/softmmu_cpus.c.o libqemu-i386-softmmu.fa.p/softmmu_cpu-throttle.c.o libqemu-i386-softmmu.fa.p/softmmu_datadir.c.o libqemu-i386-softmmu.fa.p/softmmu_globals.c.o libqemu-i386-softmmu.fa.p/softmmu_physmem.c.o libqemu-i386-softmmu.fa.p/softmmu_ioport.c.o libqemu-i386-softmmu.fa.p/softmmu_rtc.c.o libqemu-i386-softmmu.fa.p/softmmu_runstate.c.o libqemu-i386-softmmu.fa.p/softmmu_memory.c.o libqemu-i386-softmmu.fa.p/softmmu_memory_mapping.c.o libqemu-i386-softmmu.fa.p/softmmu_qtest.c.o libqemu-i386-softmmu.fa.p/softmmu_vl.c.o libqemu-i386-softmmu.fa.p/softmmu_cpu-timers.c.o libqemu-i386-softmmu.fa.p/softmmu_runstate-action.c.o libqemu-i386-softmmu.fa.p/softmmu_icount.c.o libqemu-i386-softmmu.fa.p/cpu.c.o libqemu-i386-softmmu.fa.p/disas.c.o libqemu-i386-softmmu.fa.p/gdbstub.c.o libqemu-i386-softmmu.fa.p/page-vary.c.o libqemu-i386-softmmu.fa.p/migration_dirtyrate.c.o libqemu-i386-softmmu.fa.p/migration_ram.c.o libqemu-i386-softmmu.fa.p/migration_target.c.o libqemu-i386-softmmu.fa.p/monitor_misc.c.o libqemu-i386-softmmu.fa.p/hw_block_virtio-blk.c.o libqemu-i386-softmmu.fa.p/hw_block_dataplane_virtio-blk.c.o libqemu-i386-softmmu.fa.p/hw_char_virtio-serial-bus.c.o libqemu-i386-softmmu.fa.p/hw_core_machine-qmp-cmds.c.o libqemu-i386-softmmu.fa.p/hw_core_numa.c.o libqemu-i386-softmmu.fa.p/hw_display_vga.c.o libqemu-i386-softmmu.fa.p/hw_intc_apic.c.o libqemu-i386-softmmu.fa.p/hw_intc_apic_common.c.o libqemu-i386-softmmu.fa.p/hw_intc_ioapic.c.o libqemu-i386-softmmu.fa.p/hw_isa_lpc_ich9.c.o libqemu-i386-softmmu.fa.p/hw_net_virtio-net.c.o libqemu-i386-softmmu.fa.p/hw_rtc_mc146818rtc.c.o libqemu-i386-softmmu.fa.p/hw_scsi_virtio-scsi.c.o libqemu-i386-softmmu.fa.p/hw_scsi_virtio-scsi-dataplane.c.o libqemu-i386-softmmu.fa.p/hw_tpm_tpm_ppi.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-balloon.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-crypto.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-crypto-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-pmem.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-rng.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-iommu.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-input-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-rng-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-balloon-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-scsi-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-blk-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-net-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-serial-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-pmem-pci.c.o libqemu-i386-softmmu.fa.p/hw_virtio_virtio-iommu-pci.c.o libqemu-i386-softmmu.fa.p/tcg_optimize.c.o libqemu-i386-softmmu.fa.p/tcg_region.c.o libqemu-i386-softmmu.fa.p/tcg_tcg.c.o libqemu-i386-softmmu.fa.p/tcg_tcg-common.c.o libqemu-i386-softmmu.fa.p/tcg_tcg-op.c.o libqemu-i386-softmmu.fa.p/tcg_tcg-op-gvec.c.o libqemu-i386-softmmu.fa.p/tcg_tcg-op-vec.c.o libqemu-i386-softmmu.fa.p/fpu_softfloat.c.o libqemu-i386-softmmu.fa.p/accel_accel-common.c.o libqemu-i386-softmmu.fa.p/accel_tcg_tcg-all.c.o libqemu-i386-softmmu.fa.p/accel_tcg_cpu-exec-common.c.o libqemu-i386-softmmu.fa.p/accel_tcg_cpu-exec.c.o libqemu-i386-softmmu.fa.p/accel_tcg_tcg-runtime-gvec.c.o libqemu-i386-softmmu.fa.p/accel_tcg_tcg-runtime.c.o libqemu-i386-softmmu.fa.p/accel_tcg_translate-all.c.o libqemu-i386-softmmu.fa.p/accel_tcg_translator.c.o libqemu-i386-softmmu.fa.p/accel_tcg_plugin-gen.c.o libqemu-i386-softmmu.fa.p/accel_tcg_cputlb.c.o libqemu-i386-softmmu.fa.p/accel_tcg_hmp.c.o libqemu-i386-softmmu.fa.p/accel_stubs_xen-stub.c.o libqemu-i386-softmmu.fa.p/accel_stubs_kvm-stub.c.o libqemu-i386-softmmu.fa.p/accel_dummy-cpus.c.o libqemu-i386-softmmu.fa.p/plugins_loader.c.o libqemu-i386-softmmu.fa.p/plugins_core.c.o libqemu-i386-softmmu.fa.p/plugins_api.c.o libqemu-i386-softmmu.fa.p/accel_tcg_tcg-accel-ops.c.o libqemu-i386-softmmu.fa.p/accel_tcg_tcg-accel-ops-mttcg.c.o libqemu-i386-softmmu.fa.p/accel_tcg_tcg-accel-ops-icount.c.o libqemu-i386-softmmu.fa.p/accel_tcg_tcg-accel-ops-rr.c.o libqemu-i386-softmmu.fa.p/accel_qtest_qtest.c.o libqemu-i386-softmmu.fa.p/meson-generated
..i386-softmmu-gdbstub-xml.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-types-machine-target.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-visit-machine-target.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-events-machine-target.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-commands-machine-target.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-types-misc-target.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-visit-misc-target.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-events-misc-target.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-commands-misc-target.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-introspect.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-types.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-visit.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-commands.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-init-commands.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-events.c.o libqemu-i386-softmmu.fa.p/meson-generated..qapi_qapi-emit-events.c.o libqemu-i386-softmmu.fa.p/meson-generated.._trace_generated-helpers.c.o -L/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/clang/13.0.0 -L/opt/X11/lib -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -Wl,-force_load libhwcore.fa -Wl,-force_load libqom.fa -Wl,-force_load libio.fa -Wl,-force_load libcrypto.fa -Wl,-force_load libauthz.fa -Wl,-force_load libblockdev.fa -Wl,-force_load libblock.fa -Wl,-force_load libchardev.fa -Wl,-force_load libqmp.fa -fstack-protector-strong -Wl,-rpath,/usr/local/Cellar/pixman/0.40.0/lib -Wl,-rpath,/usr/local/Cellar/libpng/1.6.37/lib -Wl,-rpath,/usr/local/Cellar/jpeg/9e/lib -Wl,-rpath,/usr/local/Cellar/gnutls/3.7.4/lib -Wl,-rpath,/usr/local/Cellar/zstd/1.5.2/lib -Wl,-rpath,/usr/local/Cellar/libslirp/4.6.1/lib -Wl,-rpath,/usr/local/Cellar/glib/2.72.0/lib -Wl,-rpath,/usr/local/opt/gettext/lib -Wl,-rpath,/usr/local/Cellar/usbredir/0.12.0/lib -Wl,-rpath,/usr/local/Cellar/libusb/1.0.25/lib -Wl,-rpath,/usr/local/Cellar/libiscsi/1.19.0/lib libcapstone.a libqemuutil.a libfdt.a libmigration.fa libhwcore.fa libqom.fa libio.fa libcrypto.fa libauthz.fa libblockdev.fa libblock.fa libchardev.fa libqmp.fa -lX11 -lXxf86vm -lGL -Wl,-framework,OpenGL @block.syms @qemu.syms /usr/local/Cellar/pixman/0.40.0/lib/libpixman-1.dylib -lsnappy -llzo2 -Wl,-exported_symbols_list,qemu-plugins-ld64.symbols -framework Cocoa -lz /usr/local/Cellar/libpng/1.6.37/lib/libpng16.dylib -L/usr/local/Cellar/libpng/1.6.37/lib -lz /usr/local/Cellar/jpeg/9e/lib/libjpeg.dylib /usr/local/Cellar/gnutls/3.7.4/lib/libgnutls.dylib -lsasl2 -framework CoreAudio -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl /usr/local/Cellar/zstd/1.5.2/lib/libzstd.dylib /usr/local/Cellar/libslirp/4.6.1/lib/libslirp.dylib /usr/local/Cellar/glib/2.72.0/lib/libglib-2.0.dylib /usr/local/opt/gettext/lib/libintl.dylib -lvdeplug -lncurses -liconv -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgmodule-2.0 -lglib-2.0 -lintl /usr/local/Cellar/usbredir/0.12.0/lib/libusbredirparser.dylib /usr/local/Cellar/libusb/1.0.25/lib/libusb-1.0.dylib @block.syms -lutil -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgio-2.0 -lgobject-2.0 -lglib-2.0 -lintl -lm -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgmodule-2.0 -lglib-2.0 -lintl -lpam -lz -lxml2 -framework CoreFoundation -framework IOKit /usr/local/Cellar/libiscsi/1.19.0/lib/libiscsi.dylib -lcurl -L/usr/local/Cellar/libssh/0.9.6/lib -lssh -L/usr/local/Cellar/glib/2.72.0/lib -L/usr/local/opt/gettext/lib -lgmodule-2.0 -lglib-2.0 -lintl -lbz2 -lc++
Undefined symbols for architecture x86_64:
"_glide_gui_fullscreen", referenced from:
_stat_window in hw_3dfx_glidewnd.c.o
_init_window in hw_3dfx_glidewnd.c.o
_profile_stat in hw_3dfx_glidewnd.c.o
"_glide_prepare_window", referenced from:
_init_window in hw_3dfx_glidewnd.c.o
"_glide_release_window", referenced from:
_fini_window in hw_3dfx_glidewnd.c.o
"_glide_renderer_stat", referenced from:
_processArgs in hw_3dfx_glidept_mm.c.o
_processFRet in hw_3dfx_glidept_mm.c.o
"_glide_window_stat", referenced from:
_stat_window in hw_3dfx_glidewnd.c.o
"_mesa_gui_fullscreen", referenced from:
_MesaDisplayModeset in hw_mesa_mglcntx_linux.c.o
_profile_stat in hw_mesa_mglcntx_mingw.c.o
"_mesa_prepare_window", referenced from:
_MGLPresetPixelFormat in hw_mesa_mglcntx_linux.c.o
"_mesa_release_window", referenced from:
_MGLWndRelease in hw_mesa_mglcntx_linux.c.o
"_mesa_renderer_stat", referenced from:
_MGLDeleteContext in hw_mesa_mglcntx_linux.c.o
_MGLActivateHandler in hw_mesa_mglcntx_linux.c.o
_MGLMakeCurrent in hw_mesa_mglcntx_linux.c.o
_MGLSwapBuffers in hw_mesa_mglcntx_linux.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
[2415/2618] Linking target qemu-system-sparc64-unsigned
[2416/2618] Linking target qemu-system-mips64-unsigned
[2417/2618] Linking target qemu-system-m68k-unsigned
[2418/2618] Linking target qemu-system-mips64el-unsigned
[2419/2618] Linking target qemu-system-alpha-unsigned
[2420/2618] Compiling C object libqemu-aarch64-softmmu.fa.p/hw_arm_npcm7xx_boards.c.o
[2421/2618] Linking target qemu-system-xtensaeb-unsigned
[2422/2618] Linking target qemu-system-xtensa-unsigned
[2423/2618] Linking target qemu-system-microblaze-unsigned
[2424/2618] Compiling C object libqemu-aarch64-softmmu.fa.p/hw_arm_npcm7xx.c.o
[2425/2618] Compiling C object libqemu-aarch64-softmmu.fa.p/hw_arm_nseries.c.o
[2426/2618] Linking target qemu-system-riscv64-unsigned
[2427/2618] Compiling C object libqemu-mipsel-softmmu.fa.p/target_mips_tcg_translate.c.o
ninja: build stopped: subcommand failed.
make: *** [run-ninja] Error 1

QEMU build error at linking stage: "glidewnd.c:86: undefined reference to `kvm_update_guest_pa_range'"

OS: Fedora 34

I followed the build steps listed in the README. The build goes along fine until there's a linking error:

[2061/8354] Linking target qemu-system-aarch64
FAILED: qemu-system-aarch64 
c++ @qemu-system-aarch64.rsp
/usr/bin/ld: libcommon.fa.p/hw_3dfx_glidewnd.c.o: in function `glide_mapbufo':
/home/hugo/Documents/Git/kjliew/qemu-3dfx/build/../qemu-5.2.0/hw/3dfx/glidewnd.c:86: undefined reference to `kvm_update_guest_pa_range'
/usr/bin/ld: libcommon.fa.p/hw_mesa_mglcntx_linux.c.o: in function `MGLUpdateGuestBufo':
/home/hugo/Documents/Git/kjliew/qemu-3dfx/build/../qemu-5.2.0/hw/mesa/mglcntx_linux.c:50: undefined reference to `kvm_update_guest_pa_range'
collect2: error: ld returned 1 exit status

By the way, is it necessary to enable the AArch64 QEMU build on an x86_64 system? Shouldn't the build instructions disable it to make building faster?

Meson log
❯ ../qemu-5.2.0/configure && make
cross containers  podman

NOTE: guest cross-compilers enabled: cc cc
The Meson build system
Version: 0.58.1
Source dir: /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0
Build dir: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build
Build type: native build
Project name: qemu
Project version: 5.2.0
C compiler for the host machine: cc (gcc 11.1.1 "cc (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)")
C linker for the host machine: cc ld.bfd 2.35.1-41
Host machine cpu family: x86_64
Host machine cpu: x86_64
Program sh found: YES (/usr/bin/sh)
Program python3 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
C++ compiler for the host machine: c++ (gcc 11.1.1 "c++ (GCC) 11.1.1 20210531 (Red Hat 11.1.1-3)")
C++ linker for the host machine: c++ ld.bfd 2.35.1-41
Program cgcc found: NO
Library m found: YES
Library util found: YES
Run-time dependency appleframeworks found: NO (tried framework)
Found pkg-config: /usr/bin/pkg-config (1.7.3)
Run-time dependency pixman-1 found: YES 0.40.0
Library aio found: YES
Run-time dependency zlib found: YES 1.2.11
Run-time dependency xkbcommon found: YES 1.3.0
Library rt found: YES
Run-time dependency libudev found: YES 248
Library mpathpersist found: NO
Run-time dependency ncursesw found: YES 6.2.20200222
Run-time dependency sdl2 found: YES 2.0.14
Run-time dependency sdl2_image found: YES 2.0.5
Run-time dependency libpng found: YES 1.6.37
Run-time dependency libjpeg found: YES 4.0.0
Has header "sasl/sasl.h" : NO 
Run-time dependency u2f-emu found: NO (tried pkgconfig)
Run-time dependency libkeyutils found: YES 1.6.1
Checking for function "gettid" : YES 
Has header "sys/ioccom.h" : NO 
Program scripts/minikconf.py found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9 /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/scripts/minikconf.py)
Configuring aarch64-softmmu-config-target.h using configuration
Configuring aarch64-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/aarch64-softmmu-config-devices.mak.d
Configuring aarch64-softmmu-config-devices.h using configuration
Configuring alpha-softmmu-config-target.h using configuration
Configuring alpha-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/alpha-softmmu-config-devices.mak.d
Configuring alpha-softmmu-config-devices.h using configuration
Configuring arm-softmmu-config-target.h using configuration
Configuring arm-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/arm-softmmu-config-devices.mak.d
Configuring arm-softmmu-config-devices.h using configuration
Configuring avr-softmmu-config-target.h using configuration
Configuring avr-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/avr-softmmu-config-devices.mak.d
Configuring avr-softmmu-config-devices.h using configuration
Configuring cris-softmmu-config-target.h using configuration
Configuring cris-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/cris-softmmu-config-devices.mak.d
Configuring cris-softmmu-config-devices.h using configuration
Configuring hppa-softmmu-config-target.h using configuration
Configuring hppa-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/hppa-softmmu-config-devices.mak.d
Configuring hppa-softmmu-config-devices.h using configuration
Configuring i386-softmmu-config-target.h using configuration
Configuring i386-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/i386-softmmu-config-devices.mak.d
Configuring i386-softmmu-config-devices.h using configuration
Configuring m68k-softmmu-config-target.h using configuration
Configuring m68k-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/m68k-softmmu-config-devices.mak.d
Configuring m68k-softmmu-config-devices.h using configuration
Configuring microblazeel-softmmu-config-target.h using configuration
Configuring microblazeel-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/microblazeel-softmmu-config-devices.mak.d
Configuring microblazeel-softmmu-config-devices.h using configuration
Configuring microblaze-softmmu-config-target.h using configuration
Configuring microblaze-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/microblaze-softmmu-config-devices.mak.d
Configuring microblaze-softmmu-config-devices.h using configuration
Configuring mips64el-softmmu-config-target.h using configuration
Configuring mips64el-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/mips64el-softmmu-config-devices.mak.d
Configuring mips64el-softmmu-config-devices.h using configuration
Configuring mips64-softmmu-config-target.h using configuration
Configuring mips64-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/mips64-softmmu-config-devices.mak.d
Configuring mips64-softmmu-config-devices.h using configuration
Configuring mipsel-softmmu-config-target.h using configuration
Configuring mipsel-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/mipsel-softmmu-config-devices.mak.d
Configuring mipsel-softmmu-config-devices.h using configuration
Configuring mips-softmmu-config-target.h using configuration
Configuring mips-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/mips-softmmu-config-devices.mak.d
Configuring mips-softmmu-config-devices.h using configuration
Configuring moxie-softmmu-config-target.h using configuration
Configuring moxie-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/moxie-softmmu-config-devices.mak.d
Configuring moxie-softmmu-config-devices.h using configuration
Configuring nios2-softmmu-config-target.h using configuration
Configuring nios2-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/nios2-softmmu-config-devices.mak.d
Configuring nios2-softmmu-config-devices.h using configuration
Configuring or1k-softmmu-config-target.h using configuration
Configuring or1k-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/or1k-softmmu-config-devices.mak.d
Configuring or1k-softmmu-config-devices.h using configuration
Configuring ppc64-softmmu-config-target.h using configuration
Configuring ppc64-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/ppc64-softmmu-config-devices.mak.d
Configuring ppc64-softmmu-config-devices.h using configuration
Configuring ppc-softmmu-config-target.h using configuration
Configuring ppc-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/ppc-softmmu-config-devices.mak.d
Configuring ppc-softmmu-config-devices.h using configuration
Configuring riscv32-softmmu-config-target.h using configuration
Configuring riscv32-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/riscv32-softmmu-config-devices.mak.d
Configuring riscv32-softmmu-config-devices.h using configuration
Configuring riscv64-softmmu-config-target.h using configuration
Configuring riscv64-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/riscv64-softmmu-config-devices.mak.d
Configuring riscv64-softmmu-config-devices.h using configuration
Configuring rx-softmmu-config-target.h using configuration
Configuring rx-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/rx-softmmu-config-devices.mak.d
Configuring rx-softmmu-config-devices.h using configuration
Configuring s390x-softmmu-config-target.h using configuration
Configuring s390x-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/s390x-softmmu-config-devices.mak.d
Configuring s390x-softmmu-config-devices.h using configuration
Configuring sh4eb-softmmu-config-target.h using configuration
Configuring sh4eb-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/sh4eb-softmmu-config-devices.mak.d
Configuring sh4eb-softmmu-config-devices.h using configuration
Configuring sh4-softmmu-config-target.h using configuration
Configuring sh4-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/sh4-softmmu-config-devices.mak.d
Configuring sh4-softmmu-config-devices.h using configuration
Configuring sparc64-softmmu-config-target.h using configuration
Configuring sparc64-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/sparc64-softmmu-config-devices.mak.d
Configuring sparc64-softmmu-config-devices.h using configuration
Configuring sparc-softmmu-config-target.h using configuration
Configuring sparc-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/sparc-softmmu-config-devices.mak.d
Configuring sparc-softmmu-config-devices.h using configuration
Configuring tricore-softmmu-config-target.h using configuration
Configuring tricore-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/tricore-softmmu-config-devices.mak.d
Configuring tricore-softmmu-config-devices.h using configuration
Configuring x86_64-softmmu-config-target.h using configuration
Configuring x86_64-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/x86_64-softmmu-config-devices.mak.d
Configuring x86_64-softmmu-config-devices.h using configuration
Configuring xtensaeb-softmmu-config-target.h using configuration
Configuring xtensaeb-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/xtensaeb-softmmu-config-devices.mak.d
Configuring xtensaeb-softmmu-config-devices.h using configuration
Configuring xtensa-softmmu-config-target.h using configuration
Configuring xtensa-softmmu-config-devices.mak with command
Reading depfile: /home/hugo/Documents/Git/kjliew/qemu-3dfx/build/meson-private/xtensa-softmmu-config-devices.mak.d
Configuring xtensa-softmmu-config-devices.h using configuration
Configuring aarch64_be-linux-user-config-target.h using configuration
Configuring aarch64-linux-user-config-target.h using configuration
Configuring alpha-linux-user-config-target.h using configuration
Configuring armeb-linux-user-config-target.h using configuration
Configuring arm-linux-user-config-target.h using configuration
Configuring cris-linux-user-config-target.h using configuration
Configuring hppa-linux-user-config-target.h using configuration
Configuring i386-linux-user-config-target.h using configuration
Configuring m68k-linux-user-config-target.h using configuration
Configuring microblazeel-linux-user-config-target.h using configuration
Configuring microblaze-linux-user-config-target.h using configuration
Configuring mips64el-linux-user-config-target.h using configuration
Configuring mips64-linux-user-config-target.h using configuration
Configuring mipsel-linux-user-config-target.h using configuration
Configuring mips-linux-user-config-target.h using configuration
Configuring mipsn32el-linux-user-config-target.h using configuration
Configuring mipsn32-linux-user-config-target.h using configuration
Configuring nios2-linux-user-config-target.h using configuration
Configuring or1k-linux-user-config-target.h using configuration
Configuring ppc64le-linux-user-config-target.h using configuration
Configuring ppc64-linux-user-config-target.h using configuration
Configuring ppc-linux-user-config-target.h using configuration
Configuring riscv32-linux-user-config-target.h using configuration
Configuring riscv64-linux-user-config-target.h using configuration
Configuring s390x-linux-user-config-target.h using configuration
Configuring sh4eb-linux-user-config-target.h using configuration
Configuring sh4-linux-user-config-target.h using configuration
Configuring sparc32plus-linux-user-config-target.h using configuration
Configuring sparc64-linux-user-config-target.h using configuration
Configuring sparc-linux-user-config-target.h using configuration
Configuring x86_64-linux-user-config-target.h using configuration
Configuring xtensaeb-linux-user-config-target.h using configuration
Configuring xtensa-linux-user-config-target.h using configuration
Run-time dependency capstone found: YES 4.0.2
Run-time dependency slirp found: NO (tried pkgconfig)
Configuring libslirp-version.h using configuration
Library fdt found: NO
Configuring config-host.h using configuration
Program scripts/hxtool found: YES (/home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/scripts/hxtool)
Program scripts/shaderinclude.pl found: YES (/usr/bin/env perl /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/scripts/shaderinclude.pl)
Program scripts/qapi-gen.py found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9 /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/scripts/qapi-gen.py)
Program scripts/qemu-version.sh found: YES (/home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/scripts/qemu-version.sh)
Program cat found: YES (/usr/bin/cat)
Run-time dependency threads found: YES
Program keycodemapdb/tools/keymap-gen found: YES (/home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/ui/keycodemapdb/tools/keymap-gen)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program scripts/decodetree.py found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9 /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/scripts/decodetree.py)
Program ../scripts/modules/module_block.py found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9 /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/block/../scripts/modules/module_block.py)
Program ../scripts/block-coroutine-wrapper.py found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9 /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/block/../scripts/block-coroutine-wrapper.py)
Program nm found: YES
Program scripts/undefsym.py found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9 /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/scripts/undefsym.py)
Program scripts/feature_to_c.sh found: YES (/bin/sh /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/scripts/feature_to_c.sh)
Program bzip2 found: YES (/usr/bin/bzip2)
Configuring 50-edk2-i386-secure.json using configuration
Configuring 50-edk2-x86_64-secure.json using configuration
Configuring 60-edk2-aarch64.json using configuration
Configuring 60-edk2-arm.json using configuration
Configuring 60-edk2-i386.json using configuration
Configuring 60-edk2-x86_64.json using configuration
Program qemu-keymap found: YES (/usr/bin/qemu-keymap)
Program sphinx-build found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/sphinx-build)
Configuring index.html using configuration
Program python3 found: YES (/home/hugo/.pyenv/versions/3.9.0/bin/python3.9)
Program diff found: YES (/usr/bin/diff)
Program perl found: YES (/usr/bin/perl)
Program perl found: YES (/usr/bin/perl)
Program dbus-daemon found: YES (/usr/bin/dbus-daemon)
Program /usr/bin/gdbus-codegen found: YES (/usr/bin/gdbus-codegen)
Program initrd-stress.sh found: YES (/home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0/tests/migration/initrd-stress.sh)
Build targets in project: 608

qemu 5.2.0

    Install prefix               : /usr/local
    BIOS directory               : share/qemu
    firmware path                : /usr/local/share/qemu-firmware
    binary directory             : bin
    library directory            : lib
    module directory             : lib/qemu
    libexec directory            : libexec
    include directory            : include
    config directory             : /usr/local/etc
    local state directory        : /usr/local/var
    Manual directory             : share/man
    Doc directory                : /usr/local/share/doc
    Build directory              : /home/hugo/Documents/Git/kjliew/qemu-3dfx/build
    Source path                  : /home/hugo/Documents/Git/kjliew/qemu-3dfx/qemu-5.2.0
    GIT binary                   : git
    GIT submodules               : 
    C compiler                   : cc
    Host C compiler              : cc
    C++ compiler                 : c++
    ARFLAGS                      : rv
    CFLAGS                       : -O2 -g
    CXXFLAGS                     : -O2 -g
    QEMU_CFLAGS                  : -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=2 -m64 -mcx16 -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 -Wno-missing-include-dirs -Wno-shift-negative-value -Wno-psabi -fstack-protector-strong
    QEMU_LDFLAGS                 : -Wl,--warn-common -Wl,-z,relro -Wl,-z,now -m64  -fstack-protector-strong
    make                         : make
    python                       : /home/hugo/.pyenv/versions/3.9.0/bin/python3.9 (version: 3.9)
    sphinx-build                 : YES
    genisoimage                  : /usr/bin/genisoimage
    slirp support                : internal
    smbd                         : "/usr/sbin/smbd"
    module support               : NO
    host CPU                     : x86_64
    host endianness              : little
    target list                  : aarch64-softmmu alpha-softmmu arm-softmmu avr-softmmu cris-softmmu hppa-softmmu i386-softmmu m68k-softmmu microblazeel-softmmu microblaze-softmmu mips64el-softmmu mips64-softmmu mipsel-softmmu mips-softmmu moxie-softmmu nios2-softmmu or1k-softmmu ppc64-softmmu ppc-softmmu riscv32-softmmu riscv64-softmmu rx-softmmu s390x-softmmu sh4eb-softmmu sh4-softmmu sparc64-softmmu sparc-softmmu tricore-softmmu x86_64-softmmu xtensaeb-softmmu xtensa-softmmu aarch64_be-linux-user aarch64-linux-user alpha-linux-user armeb-linux-user arm-linux-user cris-linux-user hppa-linux-user i386-linux-user m68k-linux-user microblazeel-linux-user microblaze-linux-user mips64el-linux-user mips64-linux-user mipsel-linux-user mips-linux-user mipsn32el-linux-user mipsn32-linux-user nios2-linux-user or1k-linux-user ppc64le-linux-user ppc64-linux-user ppc-linux-user riscv32-linux-user riscv64-linux-user s390x-linux-user sh4eb-linux-user sh4-linux-user sparc32plus-linux-user sparc64-linux-user sparc-linux-user x86_64-linux-user xtensaeb-linux-user xtensa-linux-user
    gprof enabled                : NO
    sparse enabled               : NO
    strip binaries               : YES
    profiler                     : NO
    static build                 : NO
    SDL support                  : YES
    SDL image support            : YES
    GTK support                  : YES
    GTK GL support               : NO
    pixman                       : YES
    VTE support                  : NO
    TLS priority                 : "NORMAL"
    GNUTLS support               : YES
    libgcrypt                    : NO
    nettle                       : YES
      XTS                        : YES
    libtasn1                     : YES
    PAM                          : NO
    iconv support                : YES
    curses support               : YES
    virgl support                : NO
    curl support                 : YES
    mingw32 support              : NO
    Audio drivers                : pa oss
    Block whitelist (rw)         : 
    Block whitelist (ro)         : 
    VirtFS support               : NO
    build virtiofs daemon        : NO
    Multipath support            : NO
    VNC support                  : YES
    VNC SASL support             : NO
    VNC JPEG support             : YES
    VNC PNG support              : YES
    xen support                  : NO
    brlapi support               : NO
    Documentation                : YES
    PIE                          : YES
    vde support                  : NO
    netmap support               : NO
    Linux AIO support            : YES
    Linux io_uring support       : NO
    ATTR/XATTR support           : YES
    Install blobs                : YES
    KVM support                  : YES
    HAX support                  : NO
    HVF support                  : NO
    WHPX support                 : NO
    TCG support                  : YES
    TCG debug enabled            : NO
    TCG interpreter              : NO
    malloc trim support          : YES
    RDMA support                 : NO
    PVRDMA support               : NO
    fdt support                  : internal
    membarrier                   : NO
    preadv support               : YES
    fdatasync                    : YES
    madvise                      : YES
    posix_madvise                : YES
    posix_memalign               : YES
    libcap-ng support            : NO
    vhost-kernel support         : YES
    vhost-net support            : YES
    vhost-crypto support         : YES
    vhost-scsi support           : YES
    vhost-vsock support          : YES
    vhost-user support           : YES
    vhost-user-blk server support: YES
    vhost-user-fs support        : YES
    vhost-vdpa support           : YES
    Trace backends               : log
    spice support                : NO
    rbd support                  : NO
    xfsctl support               : NO
    smartcard support            : NO
    U2F support                  : NO
    libusb                       : NO
    usb net redir                : NO
    OpenGL support               : NO
    OpenGL dmabufs               : NO
    libiscsi support             : NO
    libnfs support               : NO
    build guest agent            : YES
    seccomp support              : NO
    coroutine backend            : ucontext
    coroutine pool               : YES
    debug stack usage            : NO
    mutex debugging              : NO
    crypto afalg                 : NO
    GlusterFS support            : NO
    gcov                         : NO
    TPM support                  : YES
    libssh support               : NO
    QOM debugging                : YES
    Live block migration         : YES
    lzo support                  : NO
    snappy support               : NO
    bzip2 support                : YES
    lzfse support                : NO
    zstd support                 : YES
    NUMA host support            : NO
    libxml2                      : YES
    memory allocator             : system
    avx2 optimization            : YES
    avx512f optimization         : NO
    replication support          : YES
    bochs support                : YES
    cloop support                : YES
    dmg support                  : YES
    qcow v1 support              : YES
    vdi support                  : YES
    vvfat support                : YES
    qed support                  : YES
    parallels support            : YES
    sheepdog support             : NO
    capstone                     : system
    libpmem support              : NO
    libdaxctl support            : NO
    libudev                      : YES
    default devices              : YES
    plugin support               : NO
    fuzzing support              : NO
    gdb                          : /usr/bin/gdb
    thread sanitizer             : NO
    rng-none                     : NO
    Linux keyring                : YES

Found ninja-1.10.2 at /usr/bin/ninja
...
[build starts here]

How TO Fix

$ ../qemu-6.2.0/configure && make

ERROR: Unrecognized host OS (uname -s reports 'MINGW64_NT-10.0-22000')

MSYS2 can't compile on windows 10

I use MSYS2's mingw64 to compile QEMU-3dfx on windows 10 x64 20H2 but I get those error messages.

[1916/5103] Linking target qemu-system-aarch64.exe
FAILED: qemu-system-aarch64.exe
"c++" @qemu-system-aarch64.exe.rsp
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libcommon.fa.p/hw_mesa_mglcntx_mingw.c.obj: in function `MGLUpdateGuestBufo':
C:\qemu-3dfx\build/../qemu-5.2.0/hw/mesa/mglcntx_mingw.c:185: undefined reference to `whpx_enabled'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\qemu-3dfx\build/../qemu-5.2.0/hw/mesa/mglcntx_mingw.c:188: undefined reference to `whpx_update_guest_pa_range'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libcommon.fa.p/hw_3dfx_glidewnd.c.obj: in function `glide_mapbufo':
C:\qemu-3dfx\build/../qemu-5.2.0/hw/3dfx/glidewnd.c:100: undefined reference to `whpx_enabled'
C:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/10.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: C:\qemu-3dfx\build/../qemu-5.2.0/hw/3dfx/glidewnd.c:103: undefined reference to `whpx_update_guest_pa_range'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make: *** [Makefile:171: run-ninja] Error 1

failing to compile with undefined reference to symbol 'XFlush'

Hi buddy!
I had a weird issue compiling it on Linux with gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0

it fail to link with

/usr/bin/ld: libcommon.fa.p/hw_mesa_mglcntx_linux.c.o: undefined reference to symbol 'XFlush'
/usr/bin/ld: /lib/x86_64-linux-gnu/libX11.so.6: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make: *** [Makefile:171: run-ninja] Error 1

I tried with make "LDFLAGS=-lX11" but didnt work neither (maybe I had to recompile everything again with that flag?

best regards

add chmod +x to sign_commit in the instructions

First, amazing project. Maybe I was too ambitious to get it working on ARM without kvm, but this project seems really cool for modern low power x86 hardware to make real retro desktop experience and also,retro pc gaming. I will make a youtube video tutorial when I get this working

salva@ROCK-Pi-X:~/myqemu/qemu-3dfx/qemu-5.2.0$ ../scripts/sign_commit
bash: ../scripts/sign_commit: Permission denied

add sudo chmod +x ../scripts/sign_commit on the tutorial

also, it would be cool if you add the files required (those libs) to get the hw acceleration on the repo so we dont have to jump over the forums to get them :)

mmm.. I didnt tried already the hw acceleration... the sound works terrible even with kvm.. I will try to recompile it with another drivers different from pulse...
on another note, would be cool if you could include gallium9 (somehow) down the road, taking in count some drivers are moving to gallium, like the intel ones with Iris.

Strange linker error compiling for aarch64 on M1 host

Hello, I'm working on compiling this project and I've made it fairly far in the process, however I've hit an issue at the final linking stage:

[2402/2402] Linking target qemu-system-aarch64
FAILED: qemu-system-aarch64 
<truncated>
Undefined symbols for architecture x86_64:
  "_print_insn_i386", referenced from:
      _disas in disas.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
make: *** [run-ninja] Error 1

I don't understand why it's complaining about x86 symbols when it's clearly trying to link for aarch64. Could this be an issue with my homebrew environment or something?

Here's the complete error output, in case it's relevant. Thanks.

I'm on an M1 MacBook Pro, running Monterey 12.0, XCode 13.1.

[2400/2402] Compiling C object libcommon.fa.p/replay_replay-events.c.o
[2401/2402] Compiling C object libcommon.fa.p/hw_misc_edu.c.o
[2402/2402] Linking target qemu-system-aarch64
FAILED: qemu-system-aarch64 
c++  -o qemu-system-aarch64 qemu-system-aarch64.p/softmmu_main.c.o libcommon.fa.p/hw_usb_u2f.c.o libcommon.fa.p/ui_input.c.o libcommon.fa.p/net_filter-replay.c.o libcommon.fa.p/hw_core_or-irq.c.o libcommon.fa.p/hw_scsi_esp.c.o libcommon.fa.p/net_dump.c.o libcommon.fa.p/ui_spice-module.c.o libcommon.fa.p/backends_tpm_tpm_util.c.o libcommon.fa.p/hw_timer_omap_synctimer.c.o libcommon.fa.p/hw_usb_host-stub.c.o libcommon.fa.p/hw_watchdog_sbsa_gwdt.c.o libcommon.fa.p/hw_net_e1000e.c.o libcommon.fa.p/hw_usb_hcd-xhci-pci.c.o libcommon.fa.p/hw_misc_vmcoreinfo.c.o libcommon.fa.p/backends_rng-builtin.c.o libcommon.fa.p/hw_core_sysbus.c.o libcommon.fa.p/hw_i2c_bitbang_i2c.c.o libcommon.fa.p/hw_net_lan9118.c.o libcommon.fa.p/hw_mem_pc-dimm.c.o libcommon.fa.p/hw_misc_max111x.c.o libcommon.fa.p/ui_kbd-state.c.o libcommon.fa.p/net_filter.c.o libcommon.fa.p/hw_misc_arm11scu.c.o libcommon.fa.p/hw_i2c_core.c.o libcommon.fa.p/hw_input_tsc210x.c.o libcommon.fa.p/hw_core_vm-change-state-handler.c.o libcommon.fa.p/hw_gpio_npcm7xx_gpio.c.o libcommon.fa.p/hw_misc_zynq_slcr.c.o libcommon.fa.p/hw_rtc_twl92230.c.o libcommon.fa.p/hw_pcmcia_pxa2xx.c.o libcommon.fa.p/cpus-common.c.o libcommon.fa.p/hw_acpi_acpi-x86-stub.c.o libcommon.fa.p/hw_display_virtio-gpu-pci.c.o libcommon.fa.p/qom_qom-hmp-cmds.c.o libcommon.fa.p/hw_ssi_xilinx_spi.c.o libcommon.fa.p/migration_global_state.c.o libcommon.fa.p/net_queue.c.o libcommon.fa.p/hw_misc_imx7_ccm.c.o libcommon.fa.p/hw_display_pxa2xx_lcd.c.o libcommon.fa.p/backends_hostmem.c.o libcommon.fa.p/block_blkreplay.c.o libcommon.fa.p/hw_rtc_xlnx-zynqmp-rtc.c.o libcommon.fa.p/hw_acpi_generic_event_device.c.o libcommon.fa.p/hw_misc_msf2-sysreg.c.o libcommon.fa.p/hw_ide_atapi.c.o libcommon.fa.p/hw_audio_soundhw.c.o libcommon.fa.p/hw_block_pflash_cfi01.c.o libcommon.fa.p/hw_misc_mps2-scc.c.o libcommon.fa.p/hw_pci_pcie_port.c.o libcommon.fa.p/migration_qemu-file.c.o libcommon.fa.p/replay_replay-internal.c.o libcommon.fa.p/hw_acpi_memory_hotplug.c.o libcommon.fa.p/hw_usb_dev-hid.c.o libcommon.fa.p/backends_cryptodev.c.o libcommon.fa.p/softmmu_dma-helpers.c.o libcommon.fa.p/hw_dma_xlnx-zdma.c.o libcommon.fa.p/hw_pci-host_versatile.c.o libcommon.fa.p/hw_net_tulip.c.o libcommon.fa.p/hw_display_ati_2d.c.o libcommon.fa.p/softmmu_bootdevice.c.o libcommon.fa.p/migration_multifd.c.o libcommon.fa.p/dump_dump-hmp-cmds.c.o libcommon.fa.p/audio_wavcapture.c.o libcommon.fa.p/hw_usb_desc-msos.c.o libcommon.fa.p/hw_intc_pl190.c.o libcommon.fa.p/hw_char_digic-uart.c.o libcommon.fa.p/chardev_wctablet.c.o libcommon.fa.p/ui_qemu-pixman.c.o libcommon.fa.p/hw_intc_arm_gicv3_common.c.o libcommon.fa.p/hw_intc_intc.c.o libcommon.fa.p/hw_sd_pl181.c.o libcommon.fa.p/migration_vmstate-types.c.o libcommon.fa.p/hw_block_m25p80.c.o libcommon.fa.p/hw_rtc_ds1338.c.o libcommon.fa.p/hw_net_rocker_rocker.c.o libcommon.fa.p/hw_char_pl011.c.o libcommon.fa.p/hw_misc_led.c.o libcommon.fa.p/hw_misc_unimp.c.o libcommon.fa.p/hw_dma_xilinx_axidma.c.o libcommon.fa.p/hw_usb_hcd-ohci-pci.c.o libcommon.fa.p/ui_vnc.c.o libcommon.fa.p/hw_usb_hcd-xhci-nec.c.o libcommon.fa.p/hw_usb_hcd-ohci.c.o libcommon.fa.p/accel_accel.c.o libcommon.fa.p/hw_misc_armsse-cpuid.c.o libcommon.fa.p/hw_net_msf2-emac.c.o libcommon.fa.p/hw_timer_arm_timer.c.o libcommon.fa.p/hw_misc_mst_fpga.c.o libcommon.fa.p/hw_scsi_mptendian.c.o libcommon.fa.p/migration_tls.c.o libcommon.fa.p/hw_timer_a9gtimer.c.o libcommon.fa.p/hw_usb_hcd-ehci-pci.c.o libcommon.fa.p/hw_acpi_tpm.c.o libcommon.fa.p/replay_replay-net.c.o libcommon.fa.p/migration_colo.c.o libcommon.fa.p/hw_net_xgmac.c.o libcommon.fa.p/hw_misc_omap_gpmc.c.o libcommon.fa.p/hw_display_bochs-display.c.o libcommon.fa.p/hw_misc_imx6ul_ccm.c.o libcommon.fa.p/hw_sd_sd.c.o libcommon.fa.p/replay_replay-snapshot.c.o libcommon.fa.p/hw_misc_stm32f4xx_syscfg.c.o libcommon.fa.p/hw_ssi_omap_spi.c.o libcommon.fa.p/hw_timer_npcm7xx_timer.c.o libcommon.fa.p/hw_core_generic-loader.c.o libcommon.fa.p/hw_i2c_exynos4210_i2c.c.o libcommon.fa.p/hw_scsi_scsi-generic.c.o libcommon.fa.p/hw_gpio_zaurus.c.o libcommon.fa.p/net_colo-compare.c.o libcommon.fa.p/hw_misc_auxbus.c.o libcommon.fa.p/hw_pci_slotid_cap.c.o libcommon.fa.p/hw_i2c_omap_i2c.c.o libcommon.fa.p/replay_replay-input.c.o libcommon.fa.p/hw_acpi_acpi_interface.c.o libcommon.fa.p/hw_pcmcia_pcmcia.c.o libcommon.fa.p/hw_pci-bridge_ioh3420.c.o libcommon.fa.p/hw_sd_omap_mmc.c.o libcommon.fa.p/hw_misc_omap_clk.c.o libcommon.fa.p/hw_misc_allwinner-h3-sysctrl.c.o libcommon.fa.p/hw_gpio_omap_gpio.c.o libcommon.fa.p/hw_net_pcnet-pci.c.o libcommon.fa.p/hw_misc_exynos4210_rng.c.o libcommon.fa.p/hw_net_can_can_sja1000.c.o libcommon.fa.p/backends_hostmem-ram.c.o libcommon.fa.p/hw_watchdog_wdt_i6300esb.c.o libcommon.fa.p/hw_ide_microdrive.c.o libcommon.fa.p/hw_intc_arm_gic_common.c.o libcommon.fa.p/ui_vnc-auth-vencrypt.c.o libcommon.fa.p/migration_qemu-file-channel.c.o libcommon.fa.p/hw_pci_pcie.c.o libcommon.fa.p/hw_core_platform-bus.c.o libcommon.fa.p/hw_scsi_vmw_pvscsi.c.o libcommon.fa.p/migration_fd.c.o libcommon.fa.p/hw_virtio_virtio-pci.c.o libcommon.fa.p/hw_display_edid-generate.c.o libcommon.fa.p/hw_usb_hcd-ehci.c.o libcommon.fa.p/hw_char_exynos4210_uart.c.o libcommon.fa.p/hw_sd_sdmmc-internal.c.o libcommon.fa.p/hw_net_vhost_net-stub.c.o libcommon.fa.p/hw_pci-bridge_i82801b11.c.o libcommon.fa.p/replay_replay-audio.c.o libcommon.fa.p/hw_net_can_can_mioe3680_pci.c.o libcommon.fa.p/hw_core_register.c.o libcommon.fa.p/hw_sd_ssi-sd.c.o libcommon.fa.p/backends_rng.c.o libcommon.fa.p/net_colo.c.o libcommon.fa.p/hw_scsi_scsi-disk.c.o libcommon.fa.p/monitor_hmp.c.o libcommon.fa.p/hw_misc_npcm7xx_gcr.c.o libcommon.fa.p/hw_timer_cadence_ttc.c.o libcommon.fa.p/block_monitor_block-hmp-cmds.c.o libcommon.fa.p/hw_misc_imx31_ccm.c.o libcommon.fa.p/hw_scsi_mptsas.c.o libcommon.fa.p/hw_scsi_scsi-bus.c.o libcommon.fa.p/net_tap-bsd.c.o libcommon.fa.p/hw_block_pflash_cfi02.c.o libcommon.fa.p/hw_cpu_core.c.o libcommon.fa.p/hw_nvram_eeprom93xx.c.o libcommon.fa.p/hw_pci_msi.c.o libcommon.fa.p/hw_rtc_allwinner-rtc.c.o libcommon.fa.p/hw_intc_arm_gicv2m.c.o libcommon.fa.p/hw_net_ne2000.c.o libcommon.fa.p/disas_libvixl_vixl_a64_instructions-a64.cc.o libcommon.fa.p/hw_usb_dev-wacom.c.o libcommon.fa.p/hw_net_imx_fec.c.o libcommon.fa.p/replay_replay-char.c.o libcommon.fa.p/hw_timer_xilinx_timer.c.o libcommon.fa.p/hw_pci-bridge_pcie_root_port.c.o libcommon.fa.p/hw_misc_arm_l2x0.c.o libcommon.fa.p/hw_display_vmware_vga.c.o libcommon.fa.p/hw_display_edid-region.c.o libcommon.fa.p/hw_misc_bcm2835_mbox.c.o libcommon.fa.p/hw_net_e1000.c.o libcommon.fa.p/hw_pci_pci_bridge.c.o libcommon.fa.p/hw_pci-host_gpex.c.o libcommon.fa.p/ui_vnc-enc-tight.c.o libcommon.fa.p/hw_smbios_smbios_type_38-stub.c.o libcommon.fa.p/hw_usb_dev-audio.c.o libcommon.fa.p/hw_net_ftgmac100.c.o libcommon.fa.p/hw_misc_allwinner-h3-ccu.c.o libcommon.fa.p/hw_input_ps2.c.o libcommon.fa.p/hw_gpio_imx_gpio.c.o libcommon.fa.p/hw_pci-bridge_pcie_pci_bridge.c.o libcommon.fa.p/hw_timer_exynos4210_pwm.c.o libcommon.fa.p/hw_display_framebuffer.c.o libcommon.fa.p/net_filter-rewriter.c.o libcommon.fa.p/hw_misc_omap_tap.c.o libcommon.fa.p/hw_audio_es1370.c.o libcommon.fa.p/chardev_testdev.c.o libcommon.fa.p/hw_core_qdev-properties-system.c.o libcommon.fa.p/hw_timer_allwinner-a10-pit.c.o libcommon.fa.p/hw_block_nvme.c.o libcommon.fa.p/hw_pci-bridge_xio3130_downstream.c.o libcommon.fa.p/hw_misc_pca9552.c.o libcommon.fa.p/migration_migration.c.o libcommon.fa.p/hw_gpio_nrf51_gpio.c.o libcommon.fa.p/hw_misc_imx_ccm.c.o libcommon.fa.p/hw_pci_shpc.c.o libcommon.fa.p/hw_misc_cbus.c.o libcommon.fa.p/net_tap.c.o libcommon.fa.p/audio_coreaudio.c.o libcommon.fa.p/audio_audio_legacy.c.o libcommon.fa.p/hw_dma_xlnx-zynq-devcfg.c.o libcommon.fa.p/net_net.c.o libcommon.fa.p/disas_libvixl_vixl_compiler-intrinsics.cc.o libcommon.fa.p/hw_misc_bcm2835_property.c.o libcommon.fa.p/hw_misc_allwinner-h3-dramc.c.o libcommon.fa.p/hw_char_cadence_uart.c.o libcommon.fa.p/hw_pci_pci_host.c.o libcommon.fa.p/hw_usb_hcd-ehci-sysbus.c.o libcommon.fa.p/replay_replay-random.c.o libcommon.fa.p/hw_misc_exynos4210_clk.c.o libcommon.fa.p/migration_block.c.o libcommon.fa.p/hw_net_vmxnet3.c.o libcommon.fa.p/hw_intc_imx_avic.c.o libcommon.fa.p/migration_qjson.c.o libcommon.fa.p/net_filter-buffer.c.o libcommon.fa.p/hw_audio_lm4549.c.o libcommon.fa.p/hw_usb_dev-smartcard-reader.c.o libcommon.fa.p/softmmu_qdev-monitor.c.o libcommon.fa.p/hw_dma_omap_dma.c.o libcommon.fa.p/hw_input_pxa2xx_keypad.c.o libcommon.fa.p/hw_sd_aspeed_sdhci.c.o libcommon.fa.p/ui_cocoa.m.o libcommon.fa.p/hw_rtc_pl031.c.o libcommon.fa.p/hw_input_pl050.c.o libcommon.fa.p/hw_timer_exynos4210_mct.c.o libcommon.fa.p/backends_tpm_tpm_emulator.c.o libcommon.fa.p/migration_multifd-zlib.c.o libcommon.fa.p/hw_pci-bridge_pci_bridge_dev.c.o libcommon.fa.p/hw_i2c_smbus_slave.c.o libcommon.fa.p/hw_net_rocker_rocker_fp.c.o libcommon.fa.p/hw_net_e1000e_core.c.o libcommon.fa.p/hw_intc_realview_gic.c.o libcommon.fa.p/hw_misc_arm_integrator_debug.c.o libcommon.fa.p/chardev_msmouse.c.o libcommon.fa.p/hw_intc_arm_gic.c.o libcommon.fa.p/hw_ipack_tpci200.c.o libcommon.fa.p/hw_virtio_vhost-stub.c.o libcommon.fa.p/hw_sd_core.c.o libcommon.fa.p/hw_misc_imx7_snvs.c.o libcommon.fa.p/net_filter-mirror.c.o libcommon.fa.p/hw_timer_imx_epit.c.o libcommon.fa.p/hw_timer_imx_gpt.c.o libcommon.fa.p/hw_block_block.c.o libcommon.fa.p/hw_char_virtio-console.c.o libcommon.fa.p/hw_cpu_cluster.c.o libcommon.fa.p/hw_usb_bus.c.o libcommon.fa.p/ui_vnc-enc-hextile.c.o libcommon.fa.p/hw_ssi_npcm7xx_fiu.c.o libcommon.fa.p/hw_adc_stm32f2xx_adc.c.o libcommon.fa.p/hw_intc_xlnx-zynqmp-ipi.c.o libcommon.fa.p/hw_usb_hcd-dwc2.c.o libcommon.fa.p/hw_ssi_ssi.c.o libcommon.fa.p/hw_display_sii9022.c.o libcommon.fa.p/backends_rng-random.c.o libcommon.fa.p/hw_mem_npcm7xx_mc.c.o libcommon.fa.p/hw_pci-bridge_gen_pcie_root_port.c.o libcommon.fa.p/hw_char_xilinx_uartlite.c.o libcommon.fa.p/hw_misc_omap_sdrc.c.o libcommon.fa.p/softmmu_device_tree.c.o libcommon.fa.p/hw_ssi_pl022.c.o libcommon.fa.p/net_can_can_host.c.o libcommon.fa.p/hw_misc_stm32f4xx_exti.c.o libcommon.fa.p/hw_audio_pl041.c.o libcommon.fa.p/migration_socket.c.o libcommon.fa.p/hw_i2c_versatile_i2c.c.o libcommon.fa.p/hw_display_blizzard.c.o libcommon.fa.p/audio_audio.c.o libcommon.fa.p/hw_misc_bcm2835_mphi.c.o libcommon.fa.p/replay_replay-events.c.o libcommon.fa.p/hw_misc_edu.c.o libcommon.fa.p/hw_net_net_rx_pkt.c.o libcommon.fa.p/hw_usb_hcd-musb.c.o libcommon.fa.p/hw_misc_bcm2835_cprman.c.o libcommon.fa.p/hw_display_exynos4210_fimd.c.o libcommon.fa.p/hw_timer_aspeed_timer.c.o libcommon.fa.p/hw_misc_pci-testdev.c.o libcommon.fa.p/hw_net_e1000x_common.c.o libcommon.fa.p/hw_timer_pxa2xx_timer.c.o libcommon.fa.p/hw_misc_omap_l4.c.o libcommon.fa.p/hw_char_omap_uart.c.o libcommon.fa.p/hw_net_can_ctucan_pci.c.o libcommon.fa.p/hw_scsi_lsi53c895a.c.o libcommon.fa.p/hw_net_allwinner-sun8i-emac.c.o libcommon.fa.p/hw_net_stellaris_enet.c.o libcommon.fa.p/hw_sd_allwinner-sdhost.c.o libcommon.fa.p/net_eth.c.o libcommon.fa.p/hw_i2c_smbus_eeprom.c.o libcommon.fa.p/hw_usb_hcd-xhci.c.o libcommon.fa.p/migration_block-dirty-bitmap.c.o libcommon.fa.p/hw_input_tsc2005.c.o libcommon.fa.p/migration_xbzrle.c.o libcommon.fa.p/hw_i2c_aspeed_i2c.c.o libcommon.fa.p/hw_misc_aspeed_sdmc.c.o libcommon.fa.p/hw_timer_nrf51_timer.c.o libcommon.fa.p/hw_misc_tz-msc.c.o libcommon.fa.p/hw_ssi_aspeed_smc.c.o libcommon.fa.p/hw_misc_aspeed_scu.c.o libcommon.fa.p/hw_input_virtio-input.c.o libcommon.fa.p/hw_intc_arm_gicv3_dist.c.o libcommon.fa.p/hw_misc_bcm2835_thermal.c.o libcommon.fa.p/hw_timer_digic-timer.c.o libcommon.fa.p/hw_block_cdrom.c.o libcommon.fa.p/hw_sd_sdhci-pci.c.o libcommon.fa.p/hw_usb_hcd-uhci.c.o libcommon.fa.p/hw_display_virtio-gpu.c.o libcommon.fa.p/net_socket.c.o libcommon.fa.p/migration_vmstate.c.o libcommon.fa.p/hw_misc_imx25_ccm.c.o libcommon.fa.p/hw_net_rocker_rocker_of_dpa.c.o libcommon.fa.p/hw_ide_qdev.c.o libcommon.fa.p/hw_dma_xlnx_dpdma.c.o libcommon.fa.p/hw_ssi_stm32f2xx_spi.c.o libcommon.fa.p/hw_audio_marvell_88w8618.c.o libcommon.fa.p/net_slirp.c.o libcommon.fa.p/hw_acpi_utils.c.o libcommon.fa.p/ui_vnc-palette.c.o libcommon.fa.p/hw_audio_intel-hda.c.o libcommon.fa.p/hw_pci-host_designware.c.o libcommon.fa.p/hw_intc_arm_gicv3_redist.c.o libcommon.fa.p/hw_net_can_can_kvaser_pci.c.o libcommon.fa.p/hw_usb_libhw.c.o libcommon.fa.p/hw_input_virtio-input-hid.c.o libcommon.fa.p/net_checksum.c.o libcommon.fa.p/hw_watchdog_wdt_imx2.c.o libcommon.fa.p/hw_display_pl110.c.o libcommon.fa.p/audio_wavaudio.c.o libcommon.fa.p/hw_block_nvme-ns.c.o libcommon.fa.p/ui_cursor.c.o libcommon.fa.p/hw_usb_core.c.o libcommon.fa.p/hw_display_ads7846.c.o libcommon.fa.p/hw_net_can_can_pcm3680_pci.c.o libcommon.fa.p/hw_char_ipoctal232.c.o libcommon.fa.p/hw_dma_pxa2xx_dma.c.o libcommon.fa.p/hw_misc_armsse-mhu.c.o libcommon.fa.p/hw_gpio_gpio_key.c.o libcommon.fa.p/hw_tpm_tpm_tis_common.c.o libcommon.fa.p/hw_display_ssd0303.c.o libcommon.fa.p/hw_char_bcm2835_aux.c.o libcommon.fa.p/hw_i2c_imx_i2c.c.o libcommon.fa.p/hw_usb_dev-serial.c.o libcommon.fa.p/hw_ide_core.c.o libcommon.fa.p/hw_usb_dev-uas.c.o libcommon.fa.p/ui_console.c.o libcommon.fa.p/hw_char_serial-pci.c.o libcommon.fa.p/hw_mem_nvdimm.c.o libcommon.fa.p/hw_nvram_npcm7xx_otp.c.o libcommon.fa.p/hw_net_net_tx_pkt.c.o libcommon.fa.p/hw_display_virtio-gpu-base.c.o libcommon.fa.p/hw_char_stm32f2xx_usart.c.o libcommon.fa.p/hw_core_machine.c.o libcommon.fa.p/replay_replay-debugging.c.o libcommon.fa.p/hw_gpio_pl061.c.o libcommon.fa.p/hw_misc_bcm2835_rng.c.o libcommon.fa.p/hw_pci-bridge_xio3130_upstream.c.o libcommon.fa.p/hw_smbios_smbios.c.o libcommon.fa.p/block_qapi-sysemu.c.o libcommon.fa.p/hw_misc_tmp421.c.o libcommon.fa.p/audio_mixeng.c.o libcommon.fa.p/monitor_hmp-cmds.c.o libcommon.fa.p/hw_dma_pl080.c.o libcommon.fa.p/hw_intc_imx_gpcv2.c.o libcommon.fa.p/hw_misc_iotkit-secctl.c.o libcommon.fa.p/net_hub.c.o libcommon.fa.p/hw_usb_chipidea.c.o libcommon.fa.p/hw_core_clock-vmstate.c.o libcommon.fa.p/hw_net_rocker_rocker_desc.c.o libcommon.fa.p/hw_sd_sdhci.c.o libcommon.fa.p/hw_ide_ahci.c.o libcommon.fa.p/backends_rng-egd.c.o libcommon.fa.p/hw_usb_imx-usb-phy.c.o libcommon.fa.p/hw_display_ramfb.c.o libcommon.fa.p/hw_scsi_megasas.c.o libcommon.fa.p/hw_misc_npcm7xx_clk.c.o libcommon.fa.p/hw_net_rocker_rocker_world.c.o libcommon.fa.p/hw_virtio_virtio-mmio.c.o libcommon.fa.p/hw_tpm_tpm_tis_sysbus.c.o libcommon.fa.p/hw_display_ramfb-standalone.c.o libcommon.fa.p/hw_char_cmsdk-apb-uart.c.o libcommon.fa.p/hw_usb_tusb6010.c.o libcommon.fa.p/hw_watchdog_wdt_aspeed.c.o libcommon.fa.p/ui_keymaps.c.o libcommon.fa.p/backends_tpm_tpm_backend.c.o libcommon.fa.p/hw_core_cpu.c.o libcommon.fa.p/hw_timer_arm_mptimer.c.o libcommon.fa.p/audio_noaudio.c.o libcommon.fa.p/hw_ipack_ipack.c.o libcommon.fa.p/hw_timer_mss-timer.c.o libcommon.fa.p/disas_capstone.c.o libcommon.fa.p/hw_dma_soc_dma.c.o libcommon.fa.p/hw_misc_imx_rngc.c.o libcommon.fa.p/hw_acpi_nvdimm.c.o libcommon.fa.p/hw_block_nand.c.o libcommon.fa.p/hw_acpi_pci.c.o libcommon.fa.p/hw_pci-host_gpex-acpi.c.o libcommon.fa.p/hw_display_dpcd.c.o libcommon.fa.p/hw_display_vga-pci.c.o libcommon.fa.p/hw_usb_combined-packet.c.o libcommon.fa.p/hw_mem_memory-device.c.o libcommon.fa.p/hw_rtc_exynos4210_rtc.c.o libcommon.fa.p/hw_misc_tz-mpc.c.o libcommon.fa.p/hw_audio_wm8750.c.o libcommon.fa.p/hw_misc_nrf51_rng.c.o libcommon.fa.p/hw_pci_pcie_host.c.o libcommon.fa.p/hw_acpi_aml-build.c.o libcommon.fa.p/hw_display_ati_dbg.c.o libcommon.fa.p/hw_misc_exynos4210_pmu.c.o libcommon.fa.p/hw_ide_ich.c.o libcommon.fa.p/hw_misc_allwinner-sid.c.o libcommon.fa.p/hw_display_tc6393xb.c.o libcommon.fa.p/migration_colo-failover.c.o libcommon.fa.p/hw_audio_hda-codec.c.o libcommon.fa.p/ui_vnc-enc-zrle.c.o libcommon.fa.p/hw_gpio_bcm2835_gpio.c.o libcommon.fa.p/replay_replay.c.o libcommon.fa.p/hw_scsi_emulation.c.o libcommon.fa.p/monitor_qmp-cmds.c.o libcommon.fa.p/ui_vnc-enc-zlib.c.o libcommon.fa.p/hw_misc_tz-ppc.c.o libcommon.fa.p/migration_exec.c.o libcommon.fa.p/hw_intc_arm_gicv3.c.o libcommon.fa.p/hw_misc_npcm7xx_rng.c.o libcommon.fa.p/hw_block_ecc.c.o libcommon.fa.p/disas_libvixl_vixl_a64_decoder-a64.cc.o libcommon.fa.p/disas_arm-a64.cc.o libcommon.fa.p/hw_intc_arm_gicv3_its_common.c.o libcommon.fa.p/hw_misc_imx7_gpr.c.o libcommon.fa.p/hw_usb_desc.c.o libcommon.fa.p/hw_dma_pl330.c.o libcommon.fa.p/hw_sd_pxa2xx_mmci.c.o libcommon.fa.p/hw_display_ssd0323.c.o libcommon.fa.p/hw_misc_iotkit-sysinfo.c.o libcommon.fa.p/hw_acpi_ipmi-stub.c.o libcommon.fa.p/hw_rtc_aspeed_rtc.c.o libcommon.fa.p/hw_acpi_ghes.c.o libcommon.fa.p/hw_char_imx_serial.c.o libcommon.fa.p/hw_misc_arm_sysctl.c.o libcommon.fa.p/migration_savevm.c.o libcommon.fa.p/hw_timer_omap_gptimer.c.o libcommon.fa.p/backends_cryptodev-vhost.c.o libcommon.fa.p/hw_net_allwinner_emac.c.o libcommon.fa.p/net_announce.c.o libcommon.fa.p/hw_char_serial.c.o libcommon.fa.p/hw_timer_cmsdk-apb-dualtimer.c.o libcommon.fa.p/hw_misc_zynq-xadc.c.o libcommon.fa.p/hw_core_null-machine.c.o libcommon.fa.p/backends_cryptodev-builtin.c.o libcommon.fa.p/hw_display_xlnx_dp.c.o libcommon.fa.p/hw_net_cadence_gem.c.o libcommon.fa.p/hw_block_hd-geometry.c.o libcommon.fa.p/ui_vnc-ws.c.o libcommon.fa.p/disas_libvixl_vixl_a64_disasm-a64.cc.o libcommon.fa.p/hw_watchdog_cmsdk-apb-watchdog.c.o libcommon.fa.p/migration_page_cache.c.o libcommon.fa.p/hw_sd_bcm2835_sdhost.c.o libcommon.fa.p/net_can_can_core.c.o libcommon.fa.p/hw_net_rtl8139.c.o libcommon.fa.p/hw_scsi_mptconfig.c.o libcommon.fa.p/hw_usb_dev-network.c.o libcommon.fa.p/disas_libvixl_vixl_utils.cc.o libcommon.fa.p/hw_core_qdev-fw.c.o libcommon.fa.p/hw_char_nrf51_uart.c.o libcommon.fa.p/hw_core_split-irq.c.o libcommon.fa.p/softmmu_tpm.c.o libcommon.fa.p/hw_input_stellaris_input.c.o libcommon.fa.p/hw_acpi_bios-linker-loader.c.o libcommon.fa.p/hw_misc_imx6_ccm.c.o libcommon.fa.p/hw_usb_dev-mtp.c.o libcommon.fa.p/hw_timer_cmsdk-apb-timer.c.o libcommon.fa.p/hw_net_can_ctucan_core.c.o libcommon.fa.p/hw_net_smc91c111.c.o libcommon.fa.p/hw_core_stream.c.o libcommon.fa.p/hw_core_loader.c.o libcommon.fa.p/hw_nvram_nrf51_nvm.c.o libcommon.fa.p/hw_nvram_fw_cfg.c.o libcommon.fa.p/hw_usb_dev-hub.c.o libcommon.fa.p/hw_gpio_max7310.c.o libcommon.fa.p/ui_input-barrier.c.o libcommon.fa.p/hw_timer_stm32f2xx_timer.c.o libcommon.fa.p/hw_misc_tmp105.c.o libcommon.fa.p/hw_ide_ahci-allwinner.c.o libcommon.fa.p/hw_misc_aspeed_xdma.c.o libcommon.fa.p/ui_vnc-jobs.c.o libcommon.fa.p/hw_core_machine-hmp-cmds.c.o libcommon.fa.p/chardev_chardev-sysemu.c.o libcommon.fa.p/migration_postcopy-ram.c.o libcommon.fa.p/hw_ssi_xilinx_spips.c.o libcommon.fa.p/net_util.c.o libcommon.fa.p/hw_misc_mps2-fpgaio.c.o libcommon.fa.p/hw_misc_a9scu.c.o libcommon.fa.p/hw_gpio_aspeed_gpio.c.o libcommon.fa.p/hw_net_xilinx_axienet.c.o libcommon.fa.p/hw_input_lm832x.c.o libcommon.fa.p/hw_pci_msix.c.o libcommon.fa.p/replay_replay-time.c.o libcommon.fa.p/hw_block_onenand.c.o libcommon.fa.p/hw_watchdog_watchdog.c.o libcommon.fa.p/hw_dma_bcm2835_dma.c.o libcommon.fa.p/hw_i2c_microbit_i2c.c.o libcommon.fa.p/hw_acpi_acpi-stub.c.o libcommon.fa.p/hw_display_omap_dss.c.o libcommon.fa.p/hw_virtio_virtio-bus.c.o libcommon.fa.p/hw_scsi_esp-pci.c.o libcommon.fa.p/hw_usb_dev-storage.c.o libcommon.fa.p/hw_input_hid.c.o libcommon.fa.p/backends_hostmem-file.c.o libcommon.fa.p/hw_i2c_smbus_master.c.o libcommon.fa.p/hw_pci_pci.c.o libcommon.fa.p/hw_display_ati.c.o libcommon.fa.p/hw_pci_pcie_aer.c.o libcommon.fa.p/hw_net_pcnet.c.o libcommon.fa.p/hw_intc_xilinx_intc.c.o libcommon.fa.p/ui_input-legacy.c.o libcommon.fa.p/migration_channel.c.o libcommon.fa.p/ui_input-keymap.c.o libcommon.fa.p/hw_display_cirrus_vga.c.o libcommon.fa.p/hw_audio_ac97.c.o libcommon.fa.p/hw_net_ne2000-pci.c.o libcommon.fa.p/hw_char_serial-pci-multi.c.o libcommon.fa.p/hw_core_ptimer.c.o libcommon.fa.p/hw_net_eepro100.c.o libcommon.fa.p/hw_timer_armv7m_systick.c.o libcommon.fa.p/hw_ssi_mss-spi.c.o libcommon.fa.p/hw_misc_stm32f2xx_syscfg.c.o libcommon.fa.p/hw_ssi_imx_spi.c.o libcommon.fa.p/hw_display_i2c-ddc.c.o libcommon.fa.p/hw_timer_bcm2835_systmr.c.o libcommon.fa.p/hw_display_bcm2835_fb.c.o libcommon.fa.p/disas_arm.c.o libcommon.fa.p/hw_core_nmi.c.o libqemu-aarch64-softmmu.fa.p/target_arm_monitor.c.o libqemu-aarch64-softmmu.fa.p/target_arm_arm-powerctl.c.o libqemu-aarch64-softmmu.fa.p/target_arm_psci.c.o libqemu-aarch64-softmmu.fa.p/target_arm_machine.c.o libqemu-aarch64-softmmu.fa.p/target_arm_arch_dump.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_mcimx7d-sabre.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_mainstone.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_virt.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_fsl-imx25.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_mps2-tz.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_strongarm.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_armv7m.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_xlnx-zcu102.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_pxa2xx_gpio.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_bcm2836.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_kzm.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_palm.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_npcm7xx.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_highbank.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_fsl-imx6ul.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_aspeed_ast2600.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_msf2-soc.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_collie.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_xlnx-versal-virt.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_virt-acpi-build.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_smmuv3.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_digic.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_cubieboard.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_digic_boards.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_sbsa-ref.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_realview.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_musca.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_raspi.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_vexpress.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_armsse.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_xilinx_zynq.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_smmu-common.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_musicpal.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_pxa2xx_pic.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_exynos4_boards.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_omap_sx1.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_sabrelite.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_exynos4210.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_fsl-imx6.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_stellaris.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_stm32f205_soc.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_aspeed.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_msf2-som.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_nseries.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_boot.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_omap1.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_gumstix.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_netduinoplus2.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_versatilepb.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_sysbus-fdt.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_integratorcp.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_omap2.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_allwinner-a10.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_tosa.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_bcm2835_peripherals.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_npcm7xx_boards.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_allwinner-h3.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_stm32f405_soc.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_xlnx-versal.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_xlnx-zynqmp.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_spitz.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_imx25_pdk.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_aspeed_soc.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_nrf51_soc.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_netduino2.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_fsl-imx31.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_orangepi.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_mps2.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_mcimx6ul-evk.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_z2.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_pxa2xx.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_microbit.c.o libqemu-aarch64-softmmu.fa.p/hw_arm_fsl-imx7.c.o libqemu-aarch64-softmmu.fa.p/target_arm_vec_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_neon_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_cpu64.c.o libqemu-aarch64-softmmu.fa.p/target_arm_arm-semi.c.o libqemu-aarch64-softmmu.fa.p/target_arm_translate-sve.c.o libqemu-aarch64-softmmu.fa.p/target_arm_gdbstub.c.o libqemu-aarch64-softmmu.fa.p/target_arm_translate.c.o libqemu-aarch64-softmmu.fa.p/target_arm_cpu_tcg.c.o libqemu-aarch64-softmmu.fa.p/target_arm_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_crypto_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_gdbstub64.c.o libqemu-aarch64-softmmu.fa.p/target_arm_pauth_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_mte_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_kvm-stub.c.o libqemu-aarch64-softmmu.fa.p/target_arm_op_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_cpu.c.o libqemu-aarch64-softmmu.fa.p/target_arm_m_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_helper-a64.c.o libqemu-aarch64-softmmu.fa.p/target_arm_translate-a64.c.o libqemu-aarch64-softmmu.fa.p/target_arm_debug_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_sve_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_iwmmxt_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_tlb_helper.c.o libqemu-aarch64-softmmu.fa.p/target_arm_vfp_helper.c.o libqemu-aarch64-softmmu.fa.p/hw_misc_allwinner-cpucfg.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_omap_intc.c.o libqemu-aarch64-softmmu.fa.p/hw_cpu_realview_mpcore.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_allwinner-a10-pic.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-iommu.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_cputlb.c.o libqemu-aarch64-softmmu.fa.p/hw_cpu_a15mpcore.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_armv7m_nvic.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_exynos4210_combiner.c.o libqemu-aarch64-softmmu.fa.p/tcg_tcg-op-gvec.c.o libqemu-aarch64-softmmu.fa.p/hw_scsi_virtio-scsi-dataplane.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_cpu-exec-common.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_tcg-all.c.o libqemu-aarch64-softmmu.fa.p/tcg_tcg-op-vec.c.o libqemu-aarch64-softmmu.fa.p/hw_cpu_a9mpcore.c.o libqemu-aarch64-softmmu.fa.p/softmmu_cpu-throttle.c.o libqemu-aarch64-softmmu.fa.p/hw_net_virtio-net.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-balloon.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-blk-pci.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-crypto.c.o libqemu-aarch64-softmmu.fa.p/softmmu_memory.c.o libqemu-aarch64-softmmu.fa.p/tcg_tcg-op.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_bcm2835_ic.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-input-pci.c.o libqemu-aarch64-softmmu.fa.p/softmmu_balloon.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_tcg-cpus.c.o libqemu-aarch64-softmmu.fa.p/disas.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_translate-all.c.o libqemu-aarch64-softmmu.fa.p/hw_block_virtio-blk.c.o libqemu-aarch64-softmmu.fa.p/softmmu_ioport.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-balloon-pci.c.o libqemu-aarch64-softmmu.fa.p/accel_stubs_kvm-stub.c.o libqemu-aarch64-softmmu.fa.p/hw_core_machine-qmp-cmds.c.o libqemu-aarch64-softmmu.fa.p/hw_misc_iotkit-sysctl.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-serial-pci.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-rng-pci.c.o libqemu-aarch64-softmmu.fa.p/dump_dump.c.o libqemu-aarch64-softmmu.fa.p/exec-vary.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_tcg-runtime.c.o libqemu-aarch64-softmmu.fa.p/trace_control-target.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_arm_gicv3_cpuif.c.o libqemu-aarch64-softmmu.fa.p/cpu.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-rng.c.o libqemu-aarch64-softmmu.fa.p/fpu_softfloat.c.o libqemu-aarch64-softmmu.fa.p/hw_tpm_tpm_ppi.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_cpu-exec.c.o libqemu-aarch64-softmmu.fa.p/softmmu_icount.c.o libqemu-aarch64-softmmu.fa.p/hw_display_omap_lcdc.c.o libqemu-aarch64-softmmu.fa.p/tcg_tcg-common.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_tcg-runtime-gvec.c.o libqemu-aarch64-softmmu.fa.p/softmmu_arch_init.c.o libqemu-aarch64-softmmu.fa.p/migration_dirtyrate.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_aspeed_vic.c.o libqemu-aarch64-softmmu.fa.p/accel_qtest_qtest.c.o libqemu-aarch64-softmmu.fa.p/softmmu_cpus.c.o libqemu-aarch64-softmmu.fa.p/softmmu_cpu-timers.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-iommu-pci.c.o libqemu-aarch64-softmmu.fa.p/accel_tcg_translator.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-net-pci.c.o libqemu-aarch64-softmmu.fa.p/hw_char_virtio-serial-bus.c.o libqemu-aarch64-softmmu.fa.p/hw_misc_imx6_src.c.o libqemu-aarch64-softmmu.fa.p/hw_semihosting_config.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_bcm2836_control.c.o libqemu-aarch64-softmmu.fa.p/hw_scsi_virtio-scsi.c.o libqemu-aarch64-softmmu.fa.p/hw_semihosting_console.c.o libqemu-aarch64-softmmu.fa.p/tcg_tcg.c.o libqemu-aarch64-softmmu.fa.p/migration_ram.c.o libqemu-aarch64-softmmu.fa.p/hw_misc_sbsa_ec.c.o libqemu-aarch64-softmmu.fa.p/softmmu_physmem.c.o libqemu-aarch64-softmmu.fa.p/hw_display_vga.c.o libqemu-aarch64-softmmu.fa.p/accel_dummy-cpus.c.o libqemu-aarch64-softmmu.fa.p/hw_cpu_arm11mpcore.c.o libqemu-aarch64-softmmu.fa.p/tcg_optimize.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-scsi-pci.c.o libqemu-aarch64-softmmu.fa.p/gdbstub.c.o libqemu-aarch64-softmmu.fa.p/accel_stubs_xen-stub.c.o libqemu-aarch64-softmmu.fa.p/hw_block_dataplane_virtio-blk.c.o libqemu-aarch64-softmmu.fa.p/hw_virtio_virtio-crypto-pci.c.o libqemu-aarch64-softmmu.fa.p/softmmu_memory_mapping.c.o libqemu-aarch64-softmmu.fa.p/softmmu_qtest.c.o libqemu-aarch64-softmmu.fa.p/hw_intc_exynos4210_gic.c.o libqemu-aarch64-softmmu.fa.p/monitor_misc.c.o libqemu-aarch64-softmmu.fa.p/softmmu_vl.c.o libqemu-aarch64-softmmu.fa.p/hw_core_numa.c.o libqemu-aarch64-softmmu.fa.p/accel_stubs_hax-stub.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._aarch64-softmmu-gdbstub-xml.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-types-misc-target.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-visit-misc-target.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-events-misc-target.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._trace_generated-helpers.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-commands-misc-target.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-introspect.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-types.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-commands-machine-target.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-visit.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-commands.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-init-commands.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-events.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-types-machine-target.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-emit-events.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-visit-machine-target.c.o libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-events-machine-target.c.o -L/opt/X11/lib -Wl,-dead_strip_dylibs -Wl,-headerpad_max_install_names -Wl,-undefined,error -Wl,-force_load libqom.fa -Wl,-force_load libauthz.fa -Wl,-force_load libchardev.fa -Wl,-force_load libqmp.fa -Wl,-force_load libio.fa -Wl,-force_load libcrypto.fa -Wl,-force_load libhwcore.fa -Wl,-force_load libblockdev.fa -Wl,-force_load libblock.fa -framework CoreFoundation -framework IOKit -fstack-protector-strong libfdt.a libcapstone.a libqemuutil.a libmigration.fa libslirp.a libqom.fa libauthz.fa libchardev.fa libqmp.fa libio.fa libcrypto.fa libhwcore.fa libblockdev.fa libblock.fa -lX11 -lXxf86vm -lGL -Wl,-framework,OpenGL @block.syms @qemu.syms -lz -L/usr/local/Cellar/pixman/0.36.0/lib -lpixman-1 -framework Cocoa @block.syms -L/usr/local/Cellar/jpeg/9d/lib -ljpeg -L/usr/local/Cellar/libpng/1.6.37/lib -lpng16 -lz -framework CoreAudio -L/usr/local/Cellar/gnutls/3.6.16_1/lib -lgnutls -lutil -lm -Wl,-framework -Wl,CoreFoundation -L/usr/local/Cellar/glib/2.58.2/lib -L/usr/local/opt/gettext/lib -lgthread-2.0 -lglib-2.0 -lintl -lpam -L/usr/local/Cellar/nettle/3.7.3/lib -lnettle -L/usr/local/Cellar/gnutls/3.6.16_1/lib -lgnutls -lcurl -lbz2 -framework IOKit -Wl,-framework -Wl,CoreFoundation -L/usr/local/Cellar/glib/2.58.2/lib -L/usr/local/opt/gettext/lib -lgthread-2.0 -lglib-2.0 -lintl -lz -lxml2 -framework CoreFoundation -lc++
Undefined symbols for architecture x86_64:
  "_print_insn_i386", referenced from:
      _disas in disas.c.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
ninja: build stopped: subcommand failed.
make: *** [run-ninja] Error 1

CTD after Unreal start

Well I'm trying to launch first Unreal under Ubuntu 20.04 host and Win 98SE guest.
after start I see a black screen, and then CTD.
In Terminal I see:
GLIDE_DLL=/usr/local/lib glidept: DLL loaded - glide2x.dll trace: _grGlideGetVersion@4 called glidept: grGlideGetVersion Glide 2.45 - OpenGLide 0.09rc9 trace: _grSstQueryBoards@4 called trace: _grGlideInit@0 called glidept: a1ed1ca-22:36:12 Mar 20 2022 build WRAPFX32 wr2x_trace: _grErrorSetCallback@4 wr2x_trace: _grSstQueryHardware@4 wr2x_trace: _grTexMaxAddress@4 wr2x_trace: _grTexMinAddress@4 wr2x_trace: _grSstSelect@4 glidept: grSstWinOpen called, fmt 1 org 0 buf 3 aux 1 gLfb 0xcd0c3000 wr2x_trace: _grSstWinOpen@28 glidept: LFB mode is Shared Memory (fast), One-copy FBConfig id 0x0a5 visual 0x021 swapNone X Error of failed request: BadWindow (invalid Window parameter) Major opcode of failed request: 12 (X_ConfigureWindow) Resource id in failed request: 0x1aef4180 Serial number of failed request: 33 Current serial number in output stream: 37
It's interesting, under Windows I have no problem with this, game starts without problems. I'm stuck.

Build errors

I following your instructions, installed the basic dependencies for building qemu with virgl support for Windows 11 host. Then I built yoour patched version of virglrenderer and installed it. Then I tried to apply the patch "0001-Virgil3D-with-SDL2-OpenGL.patch" from virgl3d directory and then

Note :-
Host :- Windows 11 Build 2200
Shell :- MSYS2 MinGW64

../qemu-6.2.0/configure --enable-sdl --enable-opengl --enable-virglrenderer && make -j12```



The build gives :-

```[1777/5529] Compiling C object libcommon.fa.p/ui_gtk.c.obj
FAILED: libcommon.fa.p/ui_gtk.c.obj
"cc" "-m64" "-mcx16" "-Ilibcommon.fa.p" "-I../qemu-6.2.0/common-user/host/x86_64" "-I../qemu-6.2.0/capstone/include/capstone" "-I../qemu-6.2.0/dtc/libfdt" "-I../qemu-6.2.0/slirp" "-I../qemu-6.2.0/slirp/src" "-IC:/msys64/mingw64/include/pixman-1" "-IC:/msys64/mingw64/include" "-IC:/msys64/mingw64/include/libpng16" "-IC:/msys64/mingw64/include/SDL2" "-IC:/msys64/mingw64/include/glib-2.0" "-IC:/msys64/mingw64/lib/glib-2.0/include" "-IC:/msys64/mingw64/include/ncursesw" "-IC:/msys64/mingw64/include/gtk-3.0" "-IC:/msys64/mingw64/include/pango-1.0" "-IC:/msys64/mingw64/include/harfbuzz" "-IC:/msys64/mingw64/include/freetype2" "-IC:/msys64/mingw64/include/fribidi" "-IC:/msys64/mingw64/include/cairo" "-IC:/msys64/mingw64/include/lzo" "-IC:/msys64/mingw64/include/gdk-pixbuf-2.0" "-IC:/msys64/mingw64/include/atk-1.0" "-IC:/msys64/mingw64/include/virgl" "-fdiagnostics-color=auto" "-Wall" "-Winvalid-pch" "-Werror" "-std=gnu11" "-O2" "-g" "-iquote" "." "-iquote" "C:/Users/alifi/Downloads/qemu-3dfx/qemu-6.2.0" "-iquote" "C:/Users/alifi/Downloads/qemu-3dfx/qemu-6.2.0/include" "-iquote" "C:/Users/alifi/Downloads/qemu-3dfx/qemu-6.2.0/disas/libvixl" "-iquote" "C:/Users/alifi/Downloads/qemu-3dfx/qemu-6.2.0/tcg/i386" "-pthread" "-mms-bitfields" "-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" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-mms-bitfields" "-D_XOPEN_SOURCE=600" "-D_POSIX_C_SOURCE=199506L" "-DNCURSES_WIDECHAR=1" "-mms-bitfields" "-Dmain=SDL_main" "-Wno-undef" -MD -MQ libcommon.fa.p/ui_gtk.c.obj -MF "libcommon.fa.p/ui_gtk.c.obj.d" -o libcommon.fa.p/ui_gtk.c.obj "-c" ../qemu-6.2.0/ui/gtk.c
../qemu-6.2.0/ui/gtk.c: In function 'gd_tab_window_close':
../qemu-6.2.0/ui/gtk.c:1302:9: error: implicit declaration of function 'eglDestroySurface' [-Werror=implicit-function-declaration]
 1302 |         eglDestroySurface(qemu_egl_display, vc->gfx.esurface);
      |         ^~~~~~~~~~~~~~~~~
../qemu-6.2.0/ui/gtk.c:1302:9: error: nested extern declaration of 'eglDestroySurface' [-Werror=nested-externs]
../qemu-6.2.0/ui/gtk.c:1303:26: error: assignment to 'EGLSurface' {aka 'int'} from 'void *' makes integer from pointer without a cast [-Werror=int-conversion]
 1303 |         vc->gfx.esurface = NULL;
      |                          ^
../qemu-6.2.0/ui/gtk.c:1306:9: error: implicit declaration of function 'eglDestroyContext'; did you mean 'ImmDestroyContext'? [-Werror=implicit-function-declaration]
 1306 |         eglDestroyContext(qemu_egl_display, vc->gfx.ectx);
      |         ^~~~~~~~~~~~~~~~~
      |         ImmDestroyContext
../qemu-6.2.0/ui/gtk.c:1306:9: error: nested extern declaration of 'eglDestroyContext' [-Werror=nested-externs]
../qemu-6.2.0/ui/gtk.c:1307:22: error: assignment to 'EGLContext' {aka 'int'} from 'void *' makes integer from pointer without a cast [-Werror=int-conversion]
 1307 |         vc->gfx.ectx = NULL;
      |                      ^
../qemu-6.2.0/ui/gtk.c: In function 'gd_menu_untabify':
../qemu-6.2.0/ui/gtk.c:1342:30: error: assignment to 'EGLSurface' {aka 'int'} from 'void *' makes integer from pointer without a cast [-Werror=int-conversion]
 1342 |             vc->gfx.esurface = NULL;
      |                              ^
../qemu-6.2.0/ui/gtk.c:1346:26: error: assignment to 'EGLContext' {aka 'int'} from 'void *' makes integer from pointer without a cast [-Werror=int-conversion]
 1346 |             vc->gfx.ectx = NULL;
      |                          ^
../qemu-6.2.0/ui/gtk.c: In function 'gl_area_realize':
../qemu-6.2.0/ui/gtk.c:2061:24: error: implicit declaration of function 'eglGetCurrentDisplay'; did you mean 'wglGetCurrentDC'? [-Werror=implicit-function-declaration]
 2061 |     qemu_egl_display = eglGetCurrentDisplay();
      |                        ^~~~~~~~~~~~~~~~~~~~
      |                        wglGetCurrentDC
../qemu-6.2.0/ui/gtk.c:2061:24: error: nested extern declaration of 'eglGetCurrentDisplay' [-Werror=nested-externs]
../qemu-6.2.0/ui/gtk.c:2061:22: error: assignment to 'EGLDisplay *' {aka 'int *'} from 'int' makes pointer from integer without a cast [-Werror=int-conversion]
 2061 |     qemu_egl_display = eglGetCurrentDisplay();
      |                      ^
cc1.exe: all warnings being treated as errors
[1778/5529] Compiling C object libqemu-aarch64-softmmu.fa.p/meson-generated_.._aarch64-softmmu-gdbstub-xml.c.obj
[1779/5529] Compiling C object libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-types-machine-target.c.obj
[1780/5529] Compiling C object libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-events-machine-target.c.obj
[1781/5529] Compiling C object libcommon.fa.p/hw_display_virtio-gpu-pci-gl.c.obj
[1782/5529] Compiling C object libcommon.fa.p/hw_display_virtio-gpu-pci.c.obj
[1783/5529] Compiling C object libcommon.fa.p/hw_s390x_virtio-ccw-gpu.c.obj
[1784/5529] Compiling C object libcommon.fa.p/hw_display_virtio-vga-gl.c.obj
[1785/5529] Compiling C object libcommon.fa.p/ui_curses.c.obj
[1786/5529] Compiling C object libcommon.fa.p/hw_display_virtio-vga.c.obj
[1787/5529] Compiling C object libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-visit-machine-target.c.obj
[1788/5529] Compiling C object libqemu-aarch64-softmmu.fa.p/meson-generated_.._qapi_qapi-commands-misc-target.c.obj
ninja: build stopped: subcommand failed.
make: *** [Makefile:163: run-ninja] Error 1```


Can you please have a look? Thanks

DgVoodoo files location

I'm looking for an instruction where I should put DGVoodoo files under host W10. I downloaded 2.78 version and I see four directories: MS, Doc, CPl and 3dfx. MS, Cpl and 3dfx directories contains subdirectories arm64, x64 and x86. So where I should put these files and which files, if I want to launch a game which requires glide, and which requires D3D?

Error Starting Program

After going through the wiki and enabling KVM I get the following error

The SHELL32.DLL file is
linked to missing export SHLWAPI.DLL:tFileAttributesA.

Does this indicated I screwed up the startup script bit?

Well I should mention I tried the sigmatel_c-major.exe drivers in the Dell Latitude D600 9x Drivers V2 someone shared on the vogons forums, but I couldn't get it to work. So I installed some realtek drivers from vogonsdrivers instead. I also didn't bother to install ethernet drivers because I don't intend to use them.

WHPX issue

Ok. I can't go further. Compiled QEMU, installed Win98SE. after start I see this:

D:\msys64\home\Admin\qemu\qemu-3dfx\build\qemu-system-i386: WHPX: Failed to emulate MMIO access with EmulatorReturnStatus: 2
D:\msys64\home\Admin\qemu\qemu-3dfx\build\qemu-system-i386: WHPX: Failed to exec a virtual processor

And exiting. What's going on? I have Intel i5 10400F, Windows 10 HP
Windows Hypervisor Plattform is enabled, Intel Virtualization Technology in BIOS too.
I tried with kernel-irqchip=off, but it didn't help. Without WHPX start without problems.

Error: Cannot include hw/hw.h from user emulation

when doing the Building QEMU - make step:
myqemu/qemu-3dfx/qemu-6.2.0/include/hw/hw.h:5:2: error: #error Cannot include hw/hw.h from user emulation 5 | #error Cannot include hw/hw.h from user emulation
myqemu/qemu-3dfx/qemu-6.2.0/include/ui/qemu-pixman.h:12:10: fatal error: pixman.h: No such file or directory 12 | #include <pixman.h>

Distro: Ubuntu 20.04.4 LTS on Windows 10 x86_64

How to run older openGL games in win9x?

I'm trying to run quake 2 demo with opengl, but it fails on SetPixelFormat, qemu log is

mesapt: DLL loaded
glcntx: ChoosePixelFormat() fmt 0x0c
glcntx: PixFmt 0x0c nAux 4 nSamples 0 0
glcntx: SetPixelFormat() fmt 0x0c ret 0
glcntx: ChoosePixelFormat() fmt 0x0c
glcntx: PixFmt 0x0c nAux 4 nSamples 0 0
glcntx: SetPixelFormat() fmt 0x0c ret 0
mesapt: DLL unloaded

Games support temporarily unavailable through VOGONS forums

I had been banned from forums participation out of expressing my unbiased view over "a very sensitive project". Below is the post that got me banned, recalled entirely out of memory.

How about another lesson on "What GPLv2 really means"? At least, I am seeking permission before posting.

I think the project community unequivocal silence about the author's "strange" interpretation of GPLv2 had caused the downfall of the project. Everyone just loved freebie and it ain't anyone's business to engage in conflicts. The community silent condoning of the author's act caused the project to bleed talented developers. The project then became "stressful" and "depressed". (because of what?!) As the evil virtualization/pass-through evangelism marched into the domain of OpenGL/Direct3D Win98 games, the project collapsed out of a sudden "knee-jerk" reaction and together the forums went down with it.

Anyway, not all hope is lost as the author's official GitHub repo has yet to be archived. (Or perhaps, a celebrity-styled inspired hand-over ceremony is underway ... ) Perhaps after some period of cool-down and deep thoughts, the author will make a comeback to the project.

error creating symlinks/files don't exist

Hello,

I'm attempting to follow the documentation in your git but when I make it to the step that calls for "tar xf qemu-6.2.0.tar.xz"
The following is printed in the terminal...

tar: qemu-6.2.0/roms/u-boot/tools/binman/binman: Cannot create symlink to ‘main.py’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/tools/patman/patman: Cannot create symlink to ‘main.py’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/tools/dtoc/dtoc: Cannot create symlink to ‘main.py’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/tools/microcode-tool: Cannot create symlink to ‘microcode-tool.py’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/include/ctype.h: Cannot create symlink to ‘linux/ctype.h’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-emmc1: Cannot create symlink to ‘zynqmp-zcu102-rev1.0’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-m-a2197-03-revA: Cannot create symlink to ‘zynqmp-a2197-revA’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-m-a2197-01-revA: Cannot create symlink to ‘zynqmp-a2197-revA’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-zcu104-revC: Cannot create symlink to ‘zynqmp-zcu104-revA’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-p-a2197-00-revA: Cannot create symlink to ‘zynqmp-a2197-revA’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-qspi: Cannot create symlink to ‘zynqmp-zcu102-rev1.0’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/avnet-ultra96-rev1: Cannot create symlink to ‘zynqmp-zcu100-revC’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini: Cannot create symlink to ‘zynqmp-zcu102-rev1.0’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-mini-emmc0: Cannot create symlink to ‘zynqmp-zcu100-revC’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynqmp/zynqmp-g-a2197-00-revA: Cannot create symlink to ‘zynqmp-a2197-revA’: No such file or directory
tar: qemu-6.2.0/roms/u-boot/board/xilinx/zynq/zynq-cse-nand: Cannot create symlink to ‘zynq-zc770-xm011’: No such file or directory
tar: qemu-6.2.0/roms/skiboot/opal-ci/build-fedora-rawhide.sh: Cannot create symlink to ‘build-fedora33.sh’: No such file or directory
tar: qemu-6.2.0/roms/skiboot/opal-ci/build-debian-unstable.sh: Cannot create symlink to ‘build-ubuntu-latest.sh’: No such file or directory
tar: qemu-6.2.0/roms/edk2/EmulatorPkg/Unix/Host/X11IncludeHack: Cannot create symlink to ‘/opt/X11/include’: No such file or directory
tar: Exiting with failure status due to previous errors


I'm on Windows 10 in a MSYS2 environment executing on MinGW x64...

Honestly I'm not even sure if this feedback is significant, but it is the only feedback I am given that denotes an error aside from when I attempt to compile using the make file that fails as well. I'm assuming this is at least part of the reason for that failure.


Also when running the make command I get the following...

$ ../qemu-6.2.0/configure && make
ln: failed to create symbolic link 'aarch64-softmmu/qemu-system-aarch64': No such file or directory
ln: failed to create symbolic link 'alpha-softmmu/qemu-system-alpha': No such file or directory
ln: failed to create symbolic link 'arm-softmmu/qemu-system-arm': No such file or directory
ln: failed to create symbolic link 'avr-softmmu/qemu-system-avr': No such file or directory
ln: failed to create symbolic link 'cris-softmmu/qemu-system-cris': No such file or directory
ln: failed to create symbolic link 'hppa-softmmu/qemu-system-hppa': No such file or directory
ln: failed to create symbolic link 'i386-softmmu/qemu-system-i386': No such file or directory
ln: failed to create symbolic link 'm68k-softmmu/qemu-system-m68k': No such file or directory
ln: failed to create symbolic link 'microblaze-softmmu/qemu-system-microblaze': No such file or directory
ln: failed to create symbolic link 'microblazeel-softmmu/qemu-system-microblazeel': No such file or directory
ln: failed to create symbolic link 'mips-softmmu/qemu-system-mips': No such file or directory
ln: failed to create symbolic link 'mips64-softmmu/qemu-system-mips64': No such file or directory
ln: failed to create symbolic link 'mips64el-softmmu/qemu-system-mips64el': No such file or directory
ln: failed to create symbolic link 'mipsel-softmmu/qemu-system-mipsel': No such file or directory
ln: failed to create symbolic link 'nios2-softmmu/qemu-system-nios2': No such file or directory
ln: failed to create symbolic link 'or1k-softmmu/qemu-system-or1k': No such file or directory
ln: failed to create symbolic link 'ppc-softmmu/qemu-system-ppc': No such file or directory
ln: failed to create symbolic link 'ppc64-softmmu/qemu-system-ppc64': No such file or directory
ln: failed to create symbolic link 'riscv32-softmmu/qemu-system-riscv32': No such file or directory
ln: failed to create symbolic link 'riscv64-softmmu/qemu-system-riscv64': No such file or directory
ln: failed to create symbolic link 'rx-softmmu/qemu-system-rx': No such file or directory
ln: failed to create symbolic link 's390x-softmmu/qemu-system-s390x': No such file or directory
ln: failed to create symbolic link 'sh4-softmmu/qemu-system-sh4': No such file or directory
ln: failed to create symbolic link 'sh4eb-softmmu/qemu-system-sh4eb': No such file or directory
ln: failed to create symbolic link 'sparc-softmmu/qemu-system-sparc': No such file or directory
ln: failed to create symbolic link 'sparc64-softmmu/qemu-system-sparc64': No such file or directory
ln: failed to create symbolic link 'tricore-softmmu/qemu-system-tricore': No such file or directory
ln: failed to create symbolic link 'x86_64-softmmu/qemu-system-x86_64': No such file or directory
ln: failed to create symbolic link 'xtensa-softmmu/qemu-system-xtensa': No such file or directory
ln: failed to create symbolic link 'xtensaeb-softmmu/qemu-system-xtensaeb': No such file or directory

ERROR: sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T.

During the configure stage I get this.

~/myqemu/qemu-3dfx/build $ ../qemu-6.2.0/configure 

ERROR: sizeof(size_t) doesn't match GLIB_SIZEOF_SIZE_T.
       You probably need to set PKG_CONFIG_LIBDIR
       to point to the right pkg-config files for your
       build target

Distro: Gentoo amd64
Crossdevs: i686, i386, arm

Can't compile wrappers on MSYS2 / Windows 10

Followed the instructions in the readme and got the result below. I'm using the same installation I used to compile the main qemu binaries, which is to say a fresh MSYS2 installation with base-devel and mingw-w64-x86_64-{toolchain,binutils,gcc,pixman,SDL2,glib2,meson}, plus mingw-w64-i686-toolchain. I strongly suspect the problem might be due to missing pexports, since that's listed as a build dependency. Except that pexports is apparently not part of MSYS2 so I don't know how to solve that problem. I'm more than happy to cross-build on linux or setup another mingw environment, if someone can guide me through their process.

edit: I figured I should make this separate from the other build issue, since it doesn't relate to the core binaries, but feel free to correct me. :)

Result of make && make clean:
make && make clean CC fxhook.o fxlib9x.o fxlibnt.o ../../fxlib/fxhook.c: In function 'HookParseRange': ../../fxlib/fxhook.c:104:30: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 104 | if (addr && (0x4550U == *(uint32_t *)addr)) { | ^ ../../fxlib/fxhook.c:106:25: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 106 | if (!memcmp((void *)(addr + i), idata, sizeof(idata))) { | ^ ../../fxlib/fxhook.c:107:26: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 107 | addr += ((uint32_t *)(addr + i))[3]; | ^ ../../fxlib/fxhook.c:108:24: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 108 | *iat = (uint32_t *)addr; | ^ ../../fxlib/fxhook.c:114:25: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 114 | if (addr == (uint32_t)(*iat)) | ^ ../../fxlib/fxhook.c:116:25: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 116 | if (!memcmp((void *)(addr + i), rdata, sizeof(rdata))) { | ^ ../../fxlib/fxhook.c:117:26: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 117 | addr += ((uint32_t *)(addr + i))[3]; | ^ ../../fxlib/fxhook.c:118:24: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 118 | *iat = (uint32_t *)addr; | ^ ../../fxlib/fxhook.c: In function 'HookPatchTimer': ../../fxlib/fxhook.c:133:18: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 133 | if ((addr == (uint32_t)patch) && | ^ ../../fxlib/fxhook.c:135:24: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 135 | DWORD hkTime = (DWORD)GetProcAddress(GetModuleHandle("winmm.dll"), "timeGetTime"), | ^ ../../fxlib/fxhook.c:137:15: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 137 | (DWORD)GetProcAddress(GetModuleHandle("kernel32.dll"), "QueryPerformanceCounter"):0; | ^ ../../fxlib/fxhook.c:143:28: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 143 | patch[i] = (uint32_t)&TimeHookProc; | ^ ../../fxlib/fxhook.c:148:28: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 148 | patch[i] = (uint32_t)&elapsedTickProc; | ^ ../../fxlib/fxhook.c: In function 'HookTimeGetTime': ../../fxlib/fxhook.c:166:28: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 166 | uint16_t *callOp = (uint16_t *)(caddr - 0x06); | ^ ../../fxlib/fxhook.c:168:21: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 168 | addr = *(uint32_t *)(caddr - 0x04); | ^ ../../fxlib/fxhook.c:170:21: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 170 | patch = (uint32_t *)addr; | ^ ../../fxlib/fxhook.c:175:12: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 175 | addr = (uint32_t)GetModuleHandle(mod); \ | ^ ../../fxlib/fxhook.c:183:5: note: in expansion of macro 'TICK_HOOK' 183 | TICK_HOOK(0); | ^~~~~~~~~ ../../fxlib/fxhook.c:177:25: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 177 | if (0x4550U == *(uint32_t *)addr) break; \ | ^ ../../fxlib/fxhook.c:183:5: note: in expansion of macro 'TICK_HOOK' 183 | TICK_HOOK(0); | ^~~~~~~~~ ../../fxlib/fxhook.c:180:34: error: cast to pointer from integer of different size [-Werror=int-to-pointer-cast] 180 | addr = (addr && (0x4550U == *(uint32_t *)addr))? addr:0; \ | ^ ../../fxlib/fxhook.c:183:5: note: in expansion of macro 'TICK_HOOK' 183 | TICK_HOOK(0); | ^~~~~~~~~ ../../fxlib/fxhook.c:182:51: error: cast from pointer to integer of different size [-Werror=pointer-to-int-cast] 182 | HookPatchTimer(addr, patch, si.dwPageSize - (((uint32_t)patch) & (si.dwPageSize - 1))); | ^ ../../fxlib/fxhook.c:183:5: note: in expansion of macro 'TICK_HOOK' 183 | TICK_HOOK(0); | ^~~~~~~~~ cc1.exe: all warnings being treated as errors make: *** [Makefile:63: fxlib] Error 1

Compile for macOS Monterey with X11 does not run at all

I've followed the same instructions I used for Intel macOS Big Sur (except the part about modifying a line in openglide, because Intel). Yet on macOS Monterey nothing happens.

However, when I try to run a VM, any Windows VM, Xquartz loads but there are no windows present, no VM is running. No errors are shown. Nothing happens. Any idea?

I think that the code compiled correctly, because when I run without X11, it runs normally but without glide passthrough.

I just compiled on Windows10 Host

I'm not sure it's windows 10 host compatible, i looked at your video i think you did some with windows10 host.

I compiled with instructions with msys2 (i don't have habit to use such a compiler, i use visual studio, eclipse and some others IDE), i encouter some problems but with pacman -S most of them were resolved. At the end somebody helped me because i was stuck at "ERROR: Unrecognized host OS (uname -s reports 'MINGW64_NT-10.0-19044')".

I never compiled a QEMU before in addition, he gave me this page: https://wiki.qemu.org/Hosts/W32#Native_builds_with_MSYS2
I made:

  • pacman -Syu (was ok)
  • pacman -Su (was ok)
  • pacman -S base-devel mingw-w64-x86_64-toolchain git python ninja
  • pacman -S mingw-w64-x86_64-glib2 mingw64/mingw-w64-x86_64-gtk3 mingw64/mingw-w64-x86_64-SDL2 python-setuptools (i installed all, just in case).

It compiled but when i ran qemu-system-x86_x64 it asked me for libzstd.dll... Was a bit boring because of all the automatic generated pages that don't answer really to the problem, but at the end i found the github project.

I added dll at the root of the qemu-3dfx project, this time it was ok but...
2022-03-22_10h57_08

for the x64 dll, i have this message
2022-03-22_10h59_39

I probably missed something but i don't what...

I just currently compile the qemu base to see in compareason... I would to see if it works on w10 to make a tutorial in my language. I promote to using QEMU with ShaderGlass for win9x games, some people would to play also with a 3dfx (i'm not sure to wanting to do it, i just played on P.O.D there is few weeks and it's totally outdated, sadly... even if i have really good souvenirs with my pal in lan parties, it's not a game i will play again).

Sorry for my English-writing and my screenshots, as you can see i'm French.

OpenGlide is never launched on a Linux host

I did some testing on Linux Mint 20, here are some observations.
My test case here was test30.exe in a DOS guest (robertmo's boot.7z image from the vogons thread).
The GPU is GTX660, with nvidia proprietary drivers if that matters.

So, when I first launched the guest I found out this:
Commit daa40ac (Oct 22, 2020) added an if clause that seems to stop OpenGlide from ever launching.
(glidept_mm.c line 928 or so, function glidept_write(), case 0xfbc)

I tried removing the code and the execution got then a bit further (OpenGlide.ini and log were created etc.).
It segfaults and has FIFO problems though, so maybe that is what the removed code was trying to avoid...
I got it to run better eventually, by doing some other minor tweaks and recompiling the guest wrapper GLIDE2x.OVL (OpenWatcom v2, had to do some slight alterations to Makefile to get it to compile).

CTD after install new OpenGlide libraries

I compiled newest OpelnGlide libraries (without --disableand wrappers, installed it and now after I launch Unreal or even test04.exe, i have instant CTD. And I got a message:

glidept: DLL loaded - glide2x.dll trace: _grGlideGetVersion@4 called glidept: grGlideGetVersion Glide 2.45 - OpenGLide 0.09rc9 trace: _grSstQueryBoards@4 called trace: _grGlideInit@0 called glidept: d74c897-13:18:01 May 12 2022 build WRAPFX32 wr2x_trace: _grErrorSetCallback@4 wr2x_trace: _grSstQueryHardware@4 wr2x_trace: _grSstSelect@4 glidept: grSstWinOpen called, fmt 1 org 0 buf 3 aux 1 gLfb 0xcd2c7000 wr2x_trace: _grSstWinOpen@28 ./qemustart.sh: Zeile 10: 74394 Speicherzugriffsfehler (Speicherabzug geschrieben) LD_LIBRARY_PATH=$GLIDE_DLL $QEMU -L /home/nemezis/Emulatory -rtc base=localtime -no-hpet -display sdl -no-reboot -drive file=/media/nemezis/WORK/Emulatory/win98.qcow2 -drive file=/media/nemezis/WORK/Emulatory/win982.qcow2 -device VGA -M pc,accel=kvm -device ac97 -netdev user,id=net0 -device rtl8139,netdev=net0 -drive if=floppy,file=/home/nemezis/Emulatory/Win98SE.img,format=raw,index=0,media=disk -cdrom /dev/sr1 -usb -device usb-host,hostbus=1,hostaddr=13 -usb -device usb-host,hostbus=1,hostaddr=10 $@

"Speicherzugrifffehler" = "memory access error". I'm stuck as always.
Ubuntu 20.04

Now I compiled prevoius version of OpenGlide - and it works flawlessly. So the problem is with newest version…

wglSetPixelFormatWINE -- Missing (launching DirectX 8.1 game demo via WineD3D fails)

Hi,

I tested some old game demos that have a very low probability of ever working in Wine "as is" (because of SF protection).
There were a couple of DX8.1 ones that failed to launch (using WineD3D wrapper in the guest).
In the qemu console, I see this error message:
mesapt: query_ext: wglSetPixelFormatWINE -- Missing

I don't know if this is something that is simply currently unimplemented, or maybe dependent on WineD3D version?
The demos in question:
GT Legends
Xpand Rally September demo
Please note that they might also need d3d9.dll, even though they are supposed to be for DX8.1.
Also, GT Legends does work in VirtualBox I think.

LM20 host, WinXP guest, using opengl32.dll and newest WineD3D from https://fdossena.com/?p=wined3d/index.frag
My qemu-3dfx and stubs are quite recent (3b968d4) and built against qemu-5.2.0.

Segmentation fault

I have compiled qemu with enable sdl ,enable opengl
Also compiled openglide with disable sdl
But when i execute :
qemu-system-i386 -display sdl,gl=on
And
qemu-system-i386 -display sdl,gl=es
Both gives segmentation fault
device : arm64 android
Running ubuntu via sparkle app

Guest wrappers are not SMP safe

This is usually not a problem for Win9x/ME VM. On Windows 10 (OS build 19041.868) QEMU WHPX is not able to boot Win2K/XP SMP kernel. TCG (even with MTTCG) is probably too slow to be useful for games anyway.

When this is fixed, it would largely favor Linux KVM.

The current achievable 30 FPS playability with QEMU KVM/WHPX is for games around year 2005-ish with average CPU/GPU. Anyway, SMP capable would benefit other aspects of VM responsiveness without improvement in game performance.

Building QEMU under Windows 10 problem

Well. I'm trying to compile QEMU under Windows 10. I downloaded source, patched, did everything what is described in attached instruction, but I got such message:

[1329/1588] Linking target qemu-system-i386.exe
FAILED: qemu-system-i386.exe
"c++" "-m64" "-mcx16" @qemu-system-i386.exe.rsp
D:/msys64/mingw64/bin/../lib/gcc/x86_64-w64-mingw32/11.2.0/../../../../x86_64-w64-mingw32/bin/ld.exe: libqemu-i386-softmmu.fa.p/softmmu_vl.c.obj: in function feature': D:\source\build/../softmmu/vl.c:826: undefined reference to ALIGNED'
collect2.exe: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make[1]: *** [Makefile:162: run-ninja] Error 1
make[1]: Leaving directory '/d/source/build'
make: *** [GNUmakefile:11: all] Error 2
I have any clue, what's going on…

qemu_compilation_guide_2 (1).txt

USB passthrough

Hm. I know, QEMu is targeted for Linux, but I'm curious. Is any way to passthrough USB devices into guest system on windows 10 host? Especially joystick and pendrive.

rsync error on Win10

Hi all, I'm new to qemu-3dfx and I'm currently learning.

I'm getting this error when trying to compile on my Windows 10 1909 host using msys2 mingw64:

C:/msys64/usr/bin/rsync.exe: error while loading shared libraries: cygxxhash-0.dll: cannot open shared object file: No such file or directory

This seems it can't find cygxxhash-0.dll in the shared folder. How can I fix that? Do I need to install anything? Thanks :)

sign_commit can't find vl.c

Looks like the += notation used in the sign_commit script is not understood by the default /bin/sh in Linux.
It gives an error message and if compilation is attempted, it will eventually fail at vl.c with "undefined reference to `ALIGNED'".

I replaced line 10 with:
SRC=$SRC" "$(find -maxdepth 2 -name vl.c)

that seems to work (only tested on Linux).

TCG and more vga adapters support?

Ran into issues where my Windows XP became slower when using whpx & haxm, and got blackscreen when using vbemp NT at both VBE 3.0 and VBE 2.0 modes. I wish 3dfx passthrough would support TCG and more display adapters like VMWare SVGA II, and Cirrus

Edit: Accidentally closed it.

Overall speed is faster when using X11 on M1

Just compiled the latest code on M1 MacBook Air (16GB, 8 core CPU / 8 core GPU) and with SDL 2.0.16 to try out the version without X11/Xquartz. Theoretically, it was supposed to be faster.

Tests with both Windows 98 SE and Windows XP SP3 running the same games (FIFA 98, FIFA 99, NFS 2 SE) were carried and showed that there is a massive speed drop. These installs are the same I am currently using with the X11 version (and installed new wrappers compiled and built for these tests as well).

FIFA 9x is nearly a slow motion game. NFS 2 SE apparently did not suffer a lot, but lost around 6-5 fps in speed comparison to X11 version. FIFA 9x lost a lot more - I recall having nearly 90 fps in X11 while now it's floating around 50-60 fps. Players are moving around the field in near slow motion, though.

And ah, there is a lag on keyboard/mouse input on both systems where I have to long press/click or click/press several times for my command to be recognized.

I think that I'll be reverting to the old X11 version for the time being. If these game are running better on your side, I might be lacking some documentation on configuring my side for better performance. Is it possible that it's a problem related to the newer SDL2 version? Or shouldn't I be using -display sdl anymore?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.