Building WINE with WOW64 through Poudriere, becoming desperate

Hey everybody
Before anyone accuses me of a grave sin, I'd already checked out other forum discussions and r/FreeBSD reddit posts, none of them really seem to fit the bill, though I could be missing something.

I'm managing a FreeBSD repository for my wife and myself with Poudriere, and there's nothing I would love more than to have WINE with their new WOW64 thing, so I can rock my magnificent 15.0-RELEASE installation and be able to run some Windows binaries without a multilib setup (which I also understand is even depreceated in FreeBSD 15.0 and onward).

The problem is that no matter what sort of flirtation I attempt with my make.conf, I can't seem to build anything other than an exclusively 64 bit setup. It sort of seems that WOW64 has somehow been activated, in that wine seems to be able to launch 32bit binaries, but they all immediately fail and crash on account of missing libraries in .wine/drive_c/windows/syswow64 (which is completely empty, by the way, while its system32 counterpart is populated well, and I've tried symlinking one to the other - didn't work).

Experimenting with some AI slop, I got Goo-gle to generate the following for my make.conf:
.if ${.CURDIR:M*/emulators/wine-devel}
# 1. KILL GCC FOR GOOD
# Dis stop dat 'gcc14' garbage you see in image c1cb25d7
WITHOUT_GCC= yes
CC= /usr/local/bin/clang19
CXX= /usr/local/bin/clang++19

# 2. FORCE BOTH ARCHITECTURES
# We tell Wine exactly where de cross-compiler is for de 32-bit side
CONFIGURE_ENV+= CROSSCC="/usr/local/bin/clang19 -target i386-pc-windows"
# We also gotta tell it about de 64-bit side specifically so it don't guess
CONFIGURE_ENV+= CROSSCC64="/usr/local/bin/clang19 -target x86_64-pc-windows"

# 3. FIX DE PATH
# Sometimes de jail don't find llvm- tools, we point it directly
CONFIGURE_ENV+= CROSS_PROG_PREFIX="/usr/local/bin/llvm-"

# 4. DE HOLY TRINITY OF FLAGS
CONFIGURE_ARGS+= --enable-archs=i386,x86_64 --with-mingw --disable-tests
.endif
Which, of course, has not really done anything for me. The x64 Windows binaries I've tested worked well, by the way.

Now, for the question. Is this possible in any way at all using Poudriere? Or is my only option to manually downloads source codes for WINE, MINGW and GCC and spend 2 days concocting it by myself.
My ideal is to automate everything with my dear beloved Poudriere, and I'm unironically prepared to pay anyone who could help me get this working (or if you prefer, donate to the FreeBSD and WINE project a sum of your choosing, idk, I'm desperate is the point).
 
The new wow64 mode is not enabled in wine/wine-devel ports.
I realise, what I'm trying to do is to break the predefined norm and enable it anyways, that's what this thread's about.
The question is, is there any way to easily circumvent this limit using only Poudriere and make.conf variations, or is there no other way besides doing everything from scratch.
 
never got wine working. It wants lib32 not lib64
Well, here's the thing. Nowadays (I think since WINE 9.0) they've implemented this thing called WOW64, where you can build the whole WINE package on pure 64 bit systems, and use one variable (wine/wine64) and one set of libraries (your regular system's 64 bit libraries), with no need for multilib. The only requirement to building it is something to do with MinGW. On all my Gentoo machines I have WINE with this thing enabled and it's incredible, does everything from running office suites to gaming.

But now I've left Gentoo for FreeBSD and I'm slowly migrating all my machines. Obviously there's no MinGW port on FreeBSD, so I wanted to ask if anybody's already using WOW64 WINE on FreeBSD, and if there's any way to automate building that sort of thing with Poudriere (or is my only option to do it all by myself).
 
However, this should work, right?

Well, I prefer to use vanilla Wine (or Wine Staging, if it were available) to Valve's Proton, and I try to keep my box clean of Linux binaries mostly.

Is there anyone here who's actually had a setup similar to what I'm looking for?
 
That works fine.
I can run Steam but cant run my game well , it launches but then force quit because it is missing lib32? I dont know if I am following the documentation well but it does seem to be rather confusing since it does not support the native 32-bit wine integration as well, with this new wow64 support and freebsd 15 being deprecated in those libraries.
 
I can run Steam but cant run my game well , it launches but then force quit because it is missing lib32? I dont know if I am following the documentation well but it does seem to be rather confusing since it does not support the native 32-bit wine integration as well, with this new wow64 support and freebsd 15 being deprecated in those libraries.
Did you put PROTON_USE_WOW64=1 in the command for your games ?
 
Did you put PROTON_USE_WOW64=1 in the command for your games ?
Yes, it still force closes exactly when loading at 51%, given that it is a Unity game, I am installing L4D2 now to test it as well. but I am getting logs like this :
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\wintypes.dll"
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\windows.gaming.input.dll"
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\dinput8.dll"
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\bthprops.cpl"
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\bluetoothapis.dll"
 
Yes, it still force closes exactly when loading at 51%, given that it is a Unity game, I am installing L4D2 now to test it as well. but I am getting logs like this :
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\wintypes.dll"
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\windows.gaming.input.dll"
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\dinput8.dll"
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\bthprops.cpl"
0210:warn:module:LdrGetProcedureAddress "CreateFileWW" (ordinal 0) not found in L"C:\\windows\\system32\\bluetoothapis.dll"
I got L4D2 running under wine-proton, although with no sound despite my KDE having it , cant play online on servers it says connection blocked, but no need for PROTON_USE_WOW64=1. Single player is working

Regarding sound I am getting this at the logs
Code:
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7f300000-0x7f3b0000, unix_prot 0x3.

01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x754a0000-0x75550000, unix_prot 0x3.
01f4:fixme:file:NtLockFile I/O completion on lock not implemented yet
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0xfbfa0000-0xfbff0000, unix_prot 0x3.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7f600000-0x7f650000, unix_prot 0x3.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7f360000-0x7f3b0000, unix_prot 0x3.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x75500000-0x75550000, unix_prot 0x3.
0050:fixme:nsi:ipv6_forward_enumerate_all not implemented
01ec:fixme:winsock:addrinfo_err_from_unix unhandled error 1
01f8:fixme:winsock:WSALookupServiceBeginW (129FF734 0xff0 129FF77C) Stub!
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0xfbde0000-0xfbff0000, unix_prot 0x3.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7f1a0000-0x7f3b0000, unix_prot 0x3.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x75340000-0x75550000, unix_prot 0x3.
01b8:warn:module:find_builtin_dll cannot find builtin library for L"\\??\\z:\\home\\bsd\\.steam\\steam\\steamapps\\common\\left 4 dead 2\\bin\\vaudio_speex.dll"
01b8:err:virtual:map_fixed_area out of memory for 0x73cf0000-0x73d1d000
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0xfbfc0000-0xfbfed000, unix_prot 0x7.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7f620000-0x7f64d000, unix_prot 0x7.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7f380000-0x7f3ad000, unix_prot 0x7.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x75520000-0x7554d000, unix_prot 0x7.
01b8:warn:module:LdrGetProcedureAddress "BuiltDebug" (ordinal 0) not found in L"z:\\home\\bsd\\.steam\\steam\\steamapps\\common\\left 4 dead 2\\bin\\vaudio_speex.dll"
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0xfbfa0000-0xfbff0000, unix_prot 0x3.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7f600000-0x7f650000, unix_prot 0x3.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x7f360000-0x7f3b0000, unix_prot 0x3.
01b8:err:virtual:try_map_free_area mmap() error Cannot allocate memory, range 0x75500000-0x75550000, unix_prot 0x3.
 
Back
Top