https://sourceware.org/bugzilla/show_bug.cgi?id=28867
--- Comment #6 from Eric Pouech <eric.pouech at orange dot fr> --- command line for linking: Note1: winegcc is Wine's gcc wrapper for generating the compilation/build operations. Here it's use is for linking a DLL, we need to generate some PE fields (like export table...). Using -v -v to winegcc will pass -v to other tools) Note2: trace below regenerated today by replacing the container.cross.o file with the fail.o (and which still generates the problem; same output as before) (hoping that options didn't change in between) [eric:~/work/wine-format/build32 dlls-user32-tests-win.c-enable]$ /home/eric/work/wine-format/build64/tools/winegcc/winegcc -v -v -o dlls/dxdiagn/dxdiagn.dll --wine-objdir . --winebuild \ /home/eric/work/wine-format/build64/tools/winebuild/winebuild -b i686-w64-mingw32 \ --lib-suffix=.cross.a -Wl,--wine-builtin -shared \ /home/eric/work/wine-format/dlls/dxdiagn/dxdiagn.spec -mno-cygwin dlls/dxdiagn/container.cross.o \ dlls/dxdiagn/dxdiag_main.cross.o dlls/dxdiagn/provider.cross.o dlls/dxdiagn/dxdiagn.res \ dlls/dxdiagn/dxdiagn_r.res libs/strmiids/libstrmiids.cross.a libs/dxguid/libdxguid.cross.a \ libs/uuid/libuuid.cross.a dlls/d3d9/libd3d9.cross.a dlls/ddraw/libddraw.cross.a \ dlls/dsound/libdsound.cross.a dlls/version/libversion.cross.a dlls/ole32/libole32.cross.a \ dlls/oleaut32/liboleaut32.cross.a dlls/user32/libuser32.cross.a dlls/advapi32/libadvapi32.cross.a \ dlls/winecrt0/libwinecrt0.cross.a dlls/ucrtbase/libucrtbase.cross.a \ dlls/kernel32/libkernel32.cross.a dlls/ntdll/libntdll.cross.a /home/eric/work/wine-format/build64/tools/winebuild/winebuild -v --target i686-w64-mingw32 -mno-cygwin -fno-asynchronous-unwind-tables --cc-cmd=/usr/bin/i686-w64-mingw32-gcc --dll -o dxdiagn.dll-62327dc4.spec.o -E /home/eric/work/wine-format/dlls/dxdiagn/dxdiagn.spec -L./dlls -rdlls/dxdiagn/dxdiagn.res -rdlls/dxdiagn/dxdiagn_r.res -- dlls/dxdiagn/container.cross.o dlls/dxdiagn/dxdiag_main.cross.o dlls/dxdiagn/provider.cross.o libs/strmiids/libstrmiids.cross.a libs/dxguid/libdxguid.cross.a libs/uuid/libuuid.cross.a dlls/d3d9/libd3d9.cross.a dlls/ddraw/libddraw.cross.a dlls/dsound/libdsound.cross.a dlls/version/libversion.cross.a dlls/ole32/libole32.cross.a dlls/oleaut32/liboleaut32.cross.a dlls/user32/libuser32.cross.a dlls/advapi32/libadvapi32.cross.a dlls/winecrt0/libwinecrt0.cross.a dlls/ucrtbase/libucrtbase.cross.a dlls/kernel32/libkernel32.cross.a dlls/ntdll/libntdll.cross.a /usr/bin/i686-w64-mingw32-gcc -xassembler -c -o dxdiagn.dll-62327dc4.spec.o dxdiagn.dll-62327dc4.spec-62327dc5.s Creating file try_link-c464fb88.c /usr/bin/i686-w64-mingw32-gcc -o try_link-2697794c.out -Wl,--file-alignment,0x1000 try_link-c464fb88.c Using built-in specs. COLLECT_GCC=/usr/bin/i686-w64-mingw32-gcc COLLECT_LTO_WRAPPER=/usr/libexec/gcc/i686-w64-mingw32/11.2.1/lto-wrapper Target: i686-w64-mingw32 Configured with: ../configure --prefix=/usr --bindir=/usr/bin --includedir=/usr/include --mandir=/usr/share/man --infodir=/usr/share/info --datadir=/usr/share --build=x86_64-redhat-linux-gnu --host=x86_64-redhat-linux-gnu --with-gnu-as --with-gnu-ld --verbose --without-newlib --disable-multilib --disable-plugin --with-system-zlib --disable-nls --without-included-gettext --disable-win32-registry --enable-languages=c,c++,objc,obj-c++,fortran --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-threads=posix --with-isl --enable-libgomp --target=i686-w64-mingw32 --with-sysroot=/usr/i686-w64-mingw32/sys-root --with-gxx-include-dir=/usr/i686-w64-mingw32/sys-root/mingw/include/c++ --disable-sjlj-exceptions --with-dwarf2 Thread model: posix Supported LTO compression algorithms: zlib gcc version 11.2.1 20210728 (Fedora MinGW 11.2.1-3.fc35) (GCC) COMPILER_PATH=/usr/libexec/gcc/i686-w64-mingw32/11.2.1/:/usr/libexec/gcc/i686-w64-mingw32/11.2.1/:/usr/libexec/gcc/i686-w64-mingw32/:/usr/lib/gcc/i686-w64-mingw32/11.2.1/:/usr/lib/gcc/i686-w64-mingw32/:/usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/bin/ LIBRARY_PATH=/usr/lib/gcc/i686-w64-mingw32/11.2.1/:/usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/lib/../lib/:/usr/i686-w64-mingw32/sys-root/mingw/lib/../lib/:/usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/lib/:/usr/i686-w64-mingw32/sys-root/mingw/lib/ COLLECT_GCC_OPTIONS='-v' '-shared' '-nodefaultlibs' '-nostartfiles' '-o' 'dlls/dxdiagn/dxdiagn.dll' '-L./dlls' '-mtune=generic' '-march=pentiumpro' '-dumpdir' 'dlls/dxdiagn/dxdiagn.dll.' /usr/libexec/gcc/i686-w64-mingw32/11.2.1/collect2 -plugin /usr/libexec/gcc/i686-w64-mingw32/11.2.1/liblto_plugin.so -plugin-opt=/usr/libexec/gcc/i686-w64-mingw32/11.2.1/lto-wrapper -plugin-opt=-fresolution=/tmp/cclbDUZD.res --sysroot=/usr/i686-w64-mingw32/sys-root -m i386pe --shared -Bdynamic -e _DllMainCRTStartup@12 --enable-auto-image-base -o dlls/dxdiagn/dxdiagn.dll -L./dlls -L/usr/lib/gcc/i686-w64-mingw32/11.2.1 -L/usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/lib/../lib -L/usr/i686-w64-mingw32/sys-root/mingw/lib/../lib -L/usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/lib -L/usr/i686-w64-mingw32/sys-root/mingw/lib --file-alignment 0x1000 --kill-at --nxcompat --entry _DllMainCRTStartup@12 dxdiagn.dll-62327dc4.spec.o dlls/dxdiagn/container.cross.o dlls/dxdiagn/dxdiag_main.cross.o dlls/dxdiagn/provider.cross.o libs/strmiids/libstrmiids.cross.a libs/dxguid/libdxguid.cross.a libs/uuid/libuuid.cross.a dlls/d3d9/libd3d9.cross.a dlls/ddraw/libddraw.cross.a dlls/dsound/libdsound.cross.a dlls/version/libversion.cross.a dlls/ole32/libole32.cross.a dlls/oleaut32/liboleaut32.cross.a dlls/user32/libuser32.cross.a dlls/advapi32/libadvapi32.cross.a dlls/winecrt0/libwinecrt0.cross.a dlls/ucrtbase/libucrtbase.cross.a dlls/kernel32/libkernel32.cross.a dlls/ntdll/libntdll.cross.a /usr/lib/gcc/i686-w64-mingw32/11.2.1/libgcc.a /usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/bin/ld: warning: dlls/dxdiagn/container.cross.o: local symbol `�' has no section /usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/bin/ld: dlls/dxdiagn/provider.cross.o: in function `dsound_enum@16': /home/eric/work/wine-format/dlls/dxdiagn/provider.c:1245: multiple definition of `dsound_enum@16'; /usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/bin/ld: dlls/dxdiagn/container.cross.o: unrecognized storage class 0 for *UND* symbol `�' /usr/lib/gcc/i686-w64-mingw32/11.2.1/../../../../i686-w64-mingw32/bin/ld: dlls/dxdiagn/container.cross.o: could not read symbols: file in wrong format collect2: error: ld returned 1 exit status winegcc: /usr/bin/i686-w64-mingw32-gcc failed /usr/bin/i686-w64-mingw32-gcc -Wl,--file-alignment,0x1000 -v -shared -Wl,--kill-at -nodefaultlibs -nostartfiles -Wl,--nxcompat -print-libgcc-file-name /usr/bin/i686-w64-mingw32-gcc -Wl,--file-alignment,0x1000 -v -shared -Wl,--kill-at -nodefaultlibs -nostartfiles -Wl,--nxcompat -o dlls/dxdiagn/dxdiagn.dll -L./dlls -Wl,--entry,_DllMainCRTStartup@12 dxdiagn.dll-62327dc4.spec.o dlls/dxdiagn/container.cross.o dlls/dxdiagn/dxdiag_main.cross.o dlls/dxdiagn/provider.cross.o libs/strmiids/libstrmiids.cross.a libs/dxguid/libdxguid.cross.a libs/uuid/libuuid.cross.a dlls/d3d9/libd3d9.cross.a dlls/ddraw/libddraw.cross.a dlls/dsound/libdsound.cross.a dlls/version/libversion.cross.a dlls/ole32/libole32.cross.a dlls/oleaut32/liboleaut32.cross.a dlls/user32/libuser32.cross.a dlls/advapi32/libadvapi32.cross.a dlls/winecrt0/libwinecrt0.cross.a dlls/ucrtbase/libucrtbase.cross.a dlls/kernel32/libkernel32.cross.a dlls/ntdll/libntdll.cross.a /usr/lib/gcc/i686-w64-mingw32/11.2.1/libgcc.a for your last point (binutils 2.38), unfortunately I didn't take a snapshot of the dev tree. So I tried to recompile (from the saved .s file) but couldn't trigger the error. I checked that mingw-gcc and binutils are still the same. I'll retry tomorrow with a better approach for checking out the right code. A+ -- You are receiving this mail because: You are on the CC list for the bug.