VOGONS


First post, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've upgraded the MinGW tools to their latest revisions, but now when trying to compile the SDL2 2.0.5 package (with the instructions for myself and others I've left at https://bitbucket.org/superfury/unipcemu/src/ … 2.txt?at=master ) it compiles without problems.

When I try to run it using 32-bit MinGW(64-bit doesn't have this problem) it now keeps complaining about a missing libgcc_s_dw2-1.dll, which is linked for it's
__divdi3
__udivdi3
__umoddi3

functions as far as I can see using Dependency Walker?

Last edited by superfury on 2016-11-29, 13:02. Edited 1 time in total.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 1 of 3, by superfury

User metadata
Rank l33t++
Rank
l33t++

Is it possible to revert the GCC version used when installing MinGW on Windows to the older 4.X version? If so, how?

Edit: I've reinstalled the '32-bit MinGW'(Actually MinGW-w64, after which I configure and compile/install SDL2 in 32-bit mode) compiler by removing the installation folder and copying the contents of i686-6.2.0-release-win32-dwarf-rt_v5-rev1.7z into the folder, performing a manual installation(the automatic installer refuses to work).

Edit: Just tried recompiling SDL2 under MinGW-w64, using the 32-bit compiler. It also creates the dependancy on LIBGCC_S_DW2-1.DLL. Is there any way to remove this dependancy in the 32-bit SDL2.dll?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 2 of 3, by superfury

User metadata
Rank l33t++
Rank
l33t++

I've just tried recompiling the SDL2 2.0.3(The one previously used with my application) under the given MinGW 32-bit version. It fails compiling the D3D renderer with lots of errors in those files. It seems that my MinGW-w64 in 32-bit mode is simply broken? So now I have no way anymore to reliably compile my applications for 32-bit Windows(64-bit Windows can be compiled without problems), due to the broken 32-bit SDL compilation and requirements.

Since the SDL2 2.0.3 fails compiling as well, does this mean the entire MinGW 32-bit compiler is utterly broken? After reinstalling I can no longer compile UniPCemu in 32-bit mode, due to problems with the required DLL files, while the originally-used SDL2 2.0.3 source code refuses to compile.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io

Reply 3 of 3, by superfury

User metadata
Rank l33t++
Rank
l33t++

I just tried recompiling SDL2-2.0.5 on MinGW-w64 as a 32-bit DLL.

./configure --prefix=/mingw

Next, I edited Makefile to statically link the libraries required.

CFLAGS  = -g -O3 -DUSING_GENERATED_CONFIG_H -enable-core-inline -static-libgcc -static-libstdc++

Then I ran:
make
make install
Finally I opened the generated SDL2.DLL with Dependency Walker:

libgcc still included in sdl2 dll linkage.jpg
Filename
libgcc still included in sdl2 dll linkage.jpg
File size
185.03 KiB
Views
266 views
File comment
dll should be statically linked?
File license
Fair use/fair dealing exception

Anyone can see what's going wrong here?`

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io