mingw64 cross compile: libslirp from subproject fails to link, undefined reference to WinMain
[1/2856] Linking target subprojects/slirp/libslirp-0.dll
FAILED: subprojects/slirp/libslirp-0.dll
x86_64-w64-mingw32-gcc -m64 -mcx16 -o subprojects/slirp/libslirp-0.dll subprojects/slirp/libslirp-0.dll.p/src_arp_table.c.obj subprojects/slirp/libslirp-0.dll.p/src_bootp.c.obj subprojects/slirp/libslirp-0.dll.p/src_cksum.c.obj subprojects/slirp/libslirp-0.dll.p/src_dhcpv6.c.obj subprojects/slirp/libslirp-0.dll.p/src_dnssearch.c.obj subprojects/slirp/libslirp-0.dll.p/src_if.c.obj subprojects/slirp/libslirp-0.dll.p/src_ip6_icmp.c.obj subprojects/slirp/libslirp-0.dll.p/src_ip6_input.c.obj subprojects/slirp/libslirp-0.dll.p/src_ip6_output.c.obj subprojects/slirp/libslirp-0.dll.p/src_ip_icmp.c.obj subprojects/slirp/libslirp-0.dll.p/src_ip_input.c.obj subprojects/slirp/libslirp-0.dll.p/src_ip_output.c.obj subprojects/slirp/libslirp-0.dll.p/src_mbuf.c.obj subprojects/slirp/libslirp-0.dll.p/src_misc.c.obj subprojects/slirp/libslirp-0.dll.p/src_ncsi.c.obj subprojects/slirp/libslirp-0.dll.p/src_ndp_table.c.obj subprojects/slirp/libslirp-0.dll.p/src_sbuf.c.obj subprojects/slirp/libslirp-0.dll.p/src_slirp.c.obj subprojects/slirp/libslirp-0.dll.p/src_socket.c.obj subprojects/slirp/libslirp-0.dll.p/src_state.c.obj subprojects/slirp/libslirp-0.dll.p/src_stream.c.obj subprojects/slirp/libslirp-0.dll.p/src_tcp_input.c.obj subprojects/slirp/libslirp-0.dll.p/src_tcp_output.c.obj subprojects/slirp/libslirp-0.dll.p/src_tcp_subr.c.obj subprojects/slirp/libslirp-0.dll.p/src_tcp_timer.c.obj subprojects/slirp/libslirp-0.dll.p/src_tftp.c.obj subprojects/slirp/libslirp-0.dll.p/src_udp.c.obj subprojects/slirp/libslirp-0.dll.p/src_udp6.c.obj subprojects/slirp/libslirp-0.dll.p/src_util.c.obj subprojects/slirp/libslirp-0.dll.p/src_version.c.obj subprojects/slirp/libslirp-0.dll.p/src_vmstate.c.obj -Wl,--allow-shlib-undefined -shared -Wl,--start-group -Wl,--out-implib=subprojects/slirp/libslirp.dll.a -no-pie -fstack-protector-strong -Wl,--no-seh -Wl,--nxcompat -Wl,--dynamicbase -Wl,--high-entropy-va -Wl,--warn-common -Wl,--version-script,/usr/src/qemu/subprojects/slirp/src/libslirp.map /usr/x86_64-w64-mingw32/sys-root/mingw/lib/libglib-2.0.dll.a /usr/x86_64-w64-mingw32/sys-root/mingw/lib/libintl.dll.a -lws2_32 -liphlpapi -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -Wl,--end-group
/usr/lib/gcc/x86_64-w64-mingw32/12.2.1/../../../../x86_64-w64-mingw32/bin/ld: /usr/x86_64-w64-mingw32/sys-root/mingw/lib/../lib/libmingw32.a(lib64_libmingw32_a-crt0_c.o):(.text.startup+0x2e): undefined reference to `WinMain'
collect2: error: ld returned 1 exit status
ninja: build stopped: subcommand failed.
make[1]: *** [Makefile:165: run-ninja] Error 1
make[1]: Leaving directory '/usr/src/qemu/build'
make: *** [GNUmakefile:11: install] Error 2
Trying to build from aa222a8e, using libslirp as a subproject.
./configure --python=/usr/bin/python3 --cross-prefix=x86_64-w64-mingw32- --disable-docs --enable-whpx --enable-slirp --target-list=aarch64-softmmu,arm-softmmu,i386-softmmu,x86_64-softmmu --bindir=/qemu
Edited by Adam Baxter