kjliew / qemu-3dfx

MESA GL/3Dfx Glide pass-through for QEMU
GNU General Public License v2.0
390 stars 51 forks source link

Building qemu-3dfx #110

Closed abwgamer closed 9 months ago

abwgamer commented 9 months ago

Following the build instructions on Windows 10 , fresh msys2 install doesn't have everything included, needed to "pacman -S" install rsync & patch, might want to mention in the build steps, took a little to figure/realize msys2 was using pacman to do installs.

Proceed from there, get to "tar xf qemu-7.2.0.tar.xz", has complaints of:

tar: qemu-7.2.0/roms/u-boot/tools/binman/binman: Cannot create symlink to ‘main.py’: No such file or directory tar: qemu-7.2.0/roms/u-boot/tools/patman/patman: Cannot create symlink to ‘main.py’: No such file or directory tar: qemu-7.2.0/roms/u-boot/tools/dtoc/dtoc: Cannot create symlink to ‘main.py’: No such file or directory tar: qemu-7.2.0/roms/u-boot/tools/microcode-tool: Cannot create symlink to ‘microcode-tool.py’: No such file or directory tar: qemu-7.2.0/roms/u-boot/include/ctype.h: Cannot create symlink to ‘linux/ctype.h’: No such file or directory tar: qemu-7.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-7.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-7.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-7.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-7.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-7.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-7.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-7.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-7.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-7.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-7.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-7.2.0/roms/skiboot/opal-ci/build-fedora-rawhide.sh: Cannot create symlink to ‘build-fedora33.sh’: No such file or directory tar: qemu-7.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-7.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 assume we don't need these to build for x86 qemu.

Continue following the steps until the last step of Building QEMU: "../qemu-7.2.0/configure && make"

exits on:

[5133/5883] Compiling C object libqemu-tricore-softmmu.fa.p/disas.c.obj FAILED: libqemu-tricore-softmmu.fa.p/disas.c.obj "cc" "-m64" "-mcx16" "-Ilibqemu-tricore-softmmu.fa.p" "-I." "-I../qemu-7.2.0" "-Itarget/tricore" "-I../qemu-7.2.0/target/tricore" "-Iqapi" "-Itrace" "-Iui" "-Iui/shader" "-ID:/msys64/mingw64/include/pixman-1" "-ID:/msys64/mingw64/include/capstone" "-ID:/msys64/mingw64/include/spice-server" "-ID:/msys64/mingw64/include/spice-1" "-ID:/msys64/mingw64/include/nspr" "-ID:/msys64/mingw64/include/glib-2.0" "-ID:/msys64/mingw64/lib/glib-2.0/include" "-ID:/msys64/mingw64/include/cacard" "-ID:/msys64/mingw64/include/nss3" "-fdiagnostics-color=auto" "-Wall" "-Winvalid-pch" "-std=gnu11" "-O2" "-g" "-iquote" "." "-iquote" "D:/msys64/home/Administrator/myqemu/qemu-3dfx/qemu-7.2.0" "-iquote" "D:/msys64/home/Administrator/myqemu/qemu-3dfx/qemu-7.2.0/include" "-iquote" "D:/msys64/home/Administrator/myqemu/qemu-3dfx/qemu-7.2.0/tcg/i386" "-U_FORTIFY_SOURCE" "-D_FORTIFY_SOURCE=2" "-fno-pie" "-no-pie" "-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" "-DNEED_CPU_H" "-DCONFIG_TARGET=\"tricore-softmmu-config-target.h\"" "-DCONFIG_DEVICES=\"tricore-softmmu-config-devices.h\"" -MD -MQ libqemu-tricore-softmmu.fa.p/disas.c.obj -MF "libqemu-tricore-softmmu.fa.p/disas.c.obj.d" -o libqemu-tricore-softmmu.fa.p/disas.c.obj "-c" ../qemu-7.2.0/disas.c In file included from D:/msys64/mingw64/include/capstone/capstone.h:327, from D:/msys64/home/Administrator/myqemu/qemu-3dfx/qemu-7.2.0/include/disas/capstone.h:6, from ../qemu-7.2.0/disas.c:8: D:/msys64/mingw64/include/capstone/tricore.h:561:3: error: 'tricore_feature' redeclared as different kind of symbol 561 | } tricore_feature; | ^~~~~~~ In file included from D:/msys64/home/Administrator/myqemu/qemu-3dfx/qemu-7.2.0/include/disas/disas.h:7, from ../qemu-7.2.0/disas.c:7: ../qemu-7.2.0/target/tricore/cpu.h:272:19: note: previous definition of 'tricore_feature' with type 'int(CPUTriCoreState , int)' {aka 'int(struct CPUArchState , int)'} 272 | static inline int tricore_feature(CPUTriCoreState *env, int feature) | ^~~~~~~ ninja: build stopped: subcommand failed. make: *** [Makefile:165: run-ninja] Error 1

That's where the qemu build attempt ends.

Next trying the wrapper build guide, first fails with missing xxd, note again starting from a fresh msys2 install. pacman -S xxd is no joy, a search for msys2 xxd found a thread saying vim includes xxd, do a pacman -S vim, this gets it past the missing xxd complaint, running conf_wrapper on 3dfx & mesa wrappers results in:

bash ../../../scripts/conf_wrapper

checking for make... /usr/bin/make checking for sed... /usr/bin/sed checking for xxd... /usr/bin/xxd checking for gendef... /mingw64/bin/gendef checking for shasum... /usr/bin/core_perl/shasum checking for git... /usr/bin/git Error: Unsupported cross build Invalid MSYSTEM=MINGW64

Thus the trail ends for the wrapper build.

Hope these issues can be resolved, love to try out qemu-3dfx.

kjliew commented 9 months ago

A small donation to support the project & Game Preservation will have the QEMU prebuilt binaries delivered for you for your platform of choice. See details at https://github.com/kjliew/qemu-3dfx#donation. You're free to make inquiry on the supported platform of choice prior to making a donation.