I've now finally found time to play a little with some of the ./configure parameters. For my findings, keep in mind that I'm testing this on a 64-bit openSUSE Tumbleweed machine (snapshot 20241129) with Wine from their Git at commit e28b587cd329a13795390597da97d4af7bbae3e3. Below I'll list configure command lines, the directory structure they're building and whether I was able to compile my Wine DLL as a 32-bit ELF and 64-bit ELF. Command line #0 is my original command line I've used initially before reporting this bug. (Note that I've built Wine with --prefix=<PREFIX> as an additional parameter to configure not listed here, where <PREFIX> is a path in my home directory.) Throughout my testing, I've tried to compile my Wine DLL using either of these commands: <PREFIX>/bin/winegcc -m32 --winebuild <PREFIX>/bin/winebuild -shared -o myproject.dll myproject_main.c myproject.spec <PREFIX>/bin/winegcc --winebuild <PREFIX>/bin/winebuild -shared -o myproject.dll myproject_main.c myproject.spec (0) ./configure --enable-archs=i386,x86_64 --enable-win64 Dirs: lib64/wine/i386-windows, lib64/wine/x86_64-unix, lib64/wine/x86_64-windows Builds 32-bit ELF: yes Builds 64-bit ELF: yes (1) ./configure --enable-archs=i386 Dirs: lib64/wine/i386-windows, lib64/wine/x86_64-unix Builds 32-bit ELF: yes Builds 64-bit ELF: yes (2) ./configure --build=i586-suse-linux --host=i586-suse-linux --enable-archs=i386 Dirs: lib/wine/i386-unix, lib/wine/i386-windows Builds 32-bit ELF: no Builds 34-bit ELF: yes (3) ./configure --build=i586-suse-linux --host=i586-suse-linux Dirs: lib/wine/i386-unix, lib/wine/i386-windows Builds 32-bit ELF: no Builds 64-bit ELF: yes (4) ./configure --build=i586-suse-linux --host=i586-suse-linux --enable-archs=i386,x86_64 Dirs: lib/wine/i386-unix, lib/wine/i386-windows, lib/wine/x86_64-windows Builds 32-bit ELF: no Builds 64-bit ELF: yes (5) ./configure --build=i586-suse-linux --host=i586-suse-linux --enable-archs=i386,x86_64 --enable-win64 Dirs: lib/wine/i386-unix, lib/wine/i386-windows, lib/wine/x86_64-windows Builds 32-bit ELF: no Builds 64-bit ELF: yes In environments produced by 2-5, compilation of my Wine DLL as a 32-bit ELF via the winegcc and winebuild produced by these builds failed with the same error message all the time: /usr/bin/ld: relocatable linking with relocations from format elf64-x86-64 (<PREFIX>/bin/../lib/wine/i386-unix/libwinecrt0.a(stub.o)) to format elf32-i386 (tmp674ef937/myproject-00000001.spec-00000001.o) is not supported winebuild: /usr/bin/ld failed with status 1 winegcc: <PREFIX>/bin/winebuild failed I find it very peculiar that the files produced as "x86_64-unix" support linking with 32-bit ELF DLLs but that the shared objects and archives explicitly labelled "i386-unix" do not (in fact, these shared objects are identified by file as "ELF 64-bit LSB shared object, x86-64", though I guess this is to be expected?). All in all, this experiment only showed that adding "--build=i586-suse-linux --host=i586-suse-linux" breaks things when compiling wine. Now I'm wondering if this actually is a bug with Wine's compilation process (Makefiles?) instead of openSUSE's but I'm afraid that any further diagnosis really is beyond me.