Prepackaged MinGW-w64 + Git RetroArch development environment


#41

The buildbot cross compiles from Linux so a copy of that toolchain wont help you. It also uses libretro-super to build everything and you should use it too.

Someone mentioned the msys2 repo was unreliable so Install the missing packages with ‘pacman -U’ from here and try again.


#42

That’s on Linux… :confused:

I tried with pacman -U, managed to install everything but get to the same result. I’ll look into the libretro-super repository to see if that can make sense to me.

Thanks for your help. :slight_smile:


#43

No, the buildbot compiles from windows, we don’t crosscompile windows builds yet


#44

Just follow this guide from start to end:

https://gist.github.com/heuripedes/b6da0fea68b648bdd2ae


#45

[QUOTE=Radius;28202]Just follow this guide from start to end:

https://gist.github.com/heuripedes/b6da0fea68b648bdd2ae[/QUOTE]

Thanks but that’s what I tried several times from scratch, and with make V=1 too. Updated my comment on the bottom of the page.

Strange that I get a bad retroarch.exe instead of a stop/error.


#46

Can you do a gcc -v

If its 5.2.0 then that might have something to do with it.


#47

You get a bad retroarch or maybe it doesn’t start with an error? I have an up-to-date msys2 and I had problems too, I had to run the ldd part twice to get all the libs

$ gcc -v Using built-in specs. COLLECT_GCC=E:\Working\Development\Tools\msys\mingw64\bin\gcc.exe COLLECT_LTO_WRAPPER=E:/Working/Development/Tools/msys/mingw64/bin/…/lib/gcc/x86_64-w64-mingw32/5.2.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: …/gcc-5.2.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --with-gxx-include-dir=/mingw64/include/c++/5.2.0 --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion=‘Rev3, Built by MSYS2 project’ --with-bugurl=http://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld Thread model: posix gcc version 5.2.0 (Rev3, Built by MSYS2 project)


#48

$ gcc -v Using built-in specs. COLLECT_GCC=F:\msys64\mingw64\bin\gcc.exe COLLECT_LTO_WRAPPER=F:/msys64/mingw64/bin/…/lib/gcc/x86_64-w64-mingw32/5.2.0/lto-wrapper.exe Target: x86_64-w64-mingw32 Configured with: …/gcc-5.2.0/configure --prefix=/mingw64 --with-local-prefix=/mingw64/local --build=x86_64-w64-mingw32 --host=x86_64-w64-mingw32 --target=x86_64-w64-mingw32 --with-native-system-header-dir=/mingw64/x86_64-w64-mingw32/include --libexecdir=/mingw64/lib --with-gxx-include-dir=/mingw64/include/c++/5.2.0 --enable-bootstrap --with-arch=x86-64 --with-tune=generic --enable-languages=c,lto,c++,objc,obj-c++,fortran,ada --enable-shared --enable-static --enable-libatomic --enable-threads=posix --enable-graphite --enable-fully-dynamic-string --enable-libstdcxx-time=yes --disable-libstdcxx-pch --disable-libstdcxx-debug --enable-version-specific-runtime-libs --disable-isl-version-check --enable-lto --enable-libgomp --disable-multilib --enable-checking=release --disable-rpath --disable-win32-registry --disable-nls --disable-werror --disable-symvers --with-libiconv --with-system-zlib --with-gmp=/mingw64 --with-mpfr=/mingw64 --with-mpc=/mingw64 --with-isl=/mingw64 --with-pkgversion=‘Rev3, Built by MSYS2 project’ --with-bugurl=http://sourceforge.net/projects/msys2 --with-gnu-as --with-gnu-ld Thread model: posix gcc version 5.2.0 (Rev3, Built by MSYS2 project)

Looks the same…?

Yes, I noticed too some packages didn’t load the 1st time and I relaunched them until completion.


#49

I’m reading about how bad it is to put stuff made with gcc 4.9 alongside gcc 5.2. That’s probably the issue here with nvidia toolkit and some other…

I’d like to test with everything for 4.9 if only I can understand how to do that without MSYS2 upgrading ninja style.


#50

if you updated all you need to do is to copy the deps again. Easiest way to try if it works or not is to run it from within the same environment were you built it (basically type ./retroarch in mingw64 shell)

Alternatively, try my redist (packaged from my system) https://dl.dropboxusercontent.com/u/149537/redist.zip


#51

Just figured out what you meant with the “ldd command”, yeah I’m noob with that stuff. :frowning: And you know what? If I get all the dll along my 10MB huge retroarch.exe it’s working perfectly!

Got all the previously missing stuff (libxml2/SDL2/python support), no more crash when taking screenshot and all that with gcc 5.2 and, I guess, every updated libraries. I don’t know why the exe is so big though.


#52

you need to run strip, I guess that would have to be added to the guide, strip retroarch.exe and that’s it :slight_smile:


#53

Oh great! back to 1.59MB :slight_smile:

I think there’s no problem outside the mingw-w64-x86_64-pkgconf and mingw-w64-x86_64-nvidia-cg-toolkit manual install with pacman -U then. Thanks for your help!


#54

Hi guys, this environment is still valid to compile retroarch?

I can compile the cores without problem, but retroarch fail to compile… i was thinking maybe is too old for new retroarch?

Thanks


#55

yeah, you’re better off using msys2 now.


#56

Use this instead https://gist.github.com/heuripedes/b6da0fea68b648bdd2ae


#57

Thanks, im setting msys2 right now, and the first i did is what do you say in the link

pacman --noconfirm -Sy

But i get this errors

$ pacman --noconfirm -Sy error: GPGME error: Invalid crypto engine error: GPGME error: Invalid crypto engine error: GPGME error: Invalid crypto engine :: Synchronizing package databases… mingw32 275.1 KiB 509K/s 00:01 [#####################] 100% mingw32.sig 96.0 B 0.00B/s 00:00 [#####################] 100% error: GPGME error: Invalid crypto engine error: failed to update mingw32 (invalid or corrupted database (PGP signature)) mingw64 274.7 KiB 886K/s 00:00 [#####################] 100% mingw64.sig 96.0 B 93.8K/s 00:00 [#####################] 100% error: GPGME error: Invalid crypto engine error: failed to update mingw64 (invalid or corrupted database (PGP signature)) msys 135.2 KiB 439K/s 00:00 [#####################] 100% msys.sig 96.0 B 0.00B/s 00:00 [#####################] 100% error: GPGME error: Invalid crypto engine error: failed to update msys (invalid or corrupted database (PGP signature)) error: failed to synchronize any databases error: failed to init transaction (invalid or corrupted database (PGP signature))

Someone that already setup msys2 to build retroarch had same errors?


#58

I just tested the tutorial posted by Radius and it works fine to build RetroArch on Windows (I tested both 32-bit and 64-bit version), but I installed only nvidia-cg-toolkit as there is another file called pkg-conf that is newer than pkgconf already installed. Also running MSYS2 shell did not work, I had to use mingw64_shell or else the compilers were not detected.

I want to add both OpenAL (to test the possibility of very low audio latency with hardware OpenAL, X-Fi) and Vulkan, but I am having a problem when compiling with Vulkan. I managed to add OpenAL and compile with just it, but for some reason when I try to configure the build with Vulkan I just get a message saying that it could not locate something…

I ran the commands “git submodule init” and “git submodule update” as shown on http://www.libretro.com/index.php/day-1-vulkan-support/ which completed with some errors before trying again, but I get the same error when configuring. Any ideas why? Maybe I am missing a Vulkan package that I need to install before?

Thanks :slight_smile:


#59

yeah cg toolkit is not available anymore and pkgconf has change name a few times already. For submodules try these: git submodule update --init --recursive

Regarding MSYS2 shell, that shell is not for compiling, just for maintenance, so you probably didn’t read the guide thoroughly


#60

[QUOTE=Radius;39662]yeah cg toolkit is not available anymore and pkgconf has change name a few times already. For submodules try these: git submodule update --init --recursive

Regarding MSYS2 shell, that shell is not for compiling, just for maintenance, so you probably didn’t read the guide thoroughly[/QUOTE]

Wow, I wonder how I missed it! I guess skimmed over it faster than I should have :stuck_out_tongue: haha

Anyway, “git submodule update --init --recursive” completed without any errors but I still can’t configure the build with Vulkan, any idea why? Thanks :slight_smile: