WoW64 - how it precisely compiles and works

Questions about Wine on Linux
Locked
dawidmyk
Newbie
Newbie
Posts: 2
Joined: Sat Oct 10, 2020 5:40 am

WoW64 - how it precisely compiles and works

Post by dawidmyk »

I've been trying to configure and build wine in different ways, having instructions from this page before my eyes and now I have such a doubt: how is it that I configure 32 bit version pointing to the 64 bit version but later the 64 bit one can use 32 bit features. It seems it should be the opposite way. Maybe the 32 bit compilation adds something to the 64 bit build directory? So you cannot install the 64 bit version before building the 32 bit version. Or maybe wine64 launches wine(32) as a program and therefore the latter cannot be installed in a non-standard location?

I have such configuration:
/home/davide/projects/sources/wine5-rc1-64/ →64 bit source location
/home/davide/projects/sources/wine5-rc1-64/build-64 →64 bit build location
/home/davide/projects/sources/wine5-rc1-64/build-64/prefix →64 bit install location

/home/davide/projects/sources/wine5-rc1-32/ →32 bit source location
/home/davide/projects/sources/wine5-rc1-32/build-32 →32 bit build location
/home/davide/projects/sources/wine5-rc1-32/build-32/prefix →32 bit install location

I prefer to not install compiled stuff in locations like /usr/local or ~/.local not to meddle with distro-packaged things. Separate source directories are because I had to alter configure.ac to point to (also compiled) SDL2 and FAudio dependencies, separetely 32 bit and 64 ones. And my question is whether such configuration will work and if not - why, due to WoW64 issue, not the dependencies.
dawidmyk
Newbie
Newbie
Posts: 2
Joined: Sat Oct 10, 2020 5:40 am

Re: WoW64 - how it precisely compiles and works

Post by dawidmyk »

I tried it out myself and partially found the answer. The install directories should be common, that is one directory. 32-bit branch build process adds two symlinks to .../build-64/loader directory: wine and wine-preloader, which point to executables in 32-bit branch. I haven't checked changes in existing files.

But 'make install' doesn't create corresponding symlinks in 64-bit install directory. It seems that: without them, WoW64 doesn't work at all, with them it works better, with common install directory it works still better (there are 32-bit .so libraries) but sometimes fails. That's why it's better to launch 32-bit windows executables with wine(32).
Locked