-
Notifications
You must be signed in to change notification settings - Fork 209
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add mingw/msys support #19
Conversation
@mlabbe There is an instruction how to install msys2 and a download link: http://msys2.github.io/ This bootstraps a development environment: # updates (got it from doc)
pacman -Sy pacman
pacman -Syu
pacman -Su
# git + compilers collection
pacman -S git
pacman -S mingw-w64-x86_64-toolchain |
Msys2 corrupts itself running the second command in your instructions. I tried it on two different workstations. It errors out with: 3 [main] pacman (8536) C:\msys64\usr\bin\pacman.exe: *** fatal error - cygheap base mismatch detected - 0x180326400/0x18033A408. I do not have any cygwin dlls installed and cygwin is not in my search path. I rebooted, which had no effect. |
Any suggestions, Denis? I have some bandwidth today to try again. |
I haven't good ideas about it, but let's try to solve it. Could you describe your environment? Did you use it with virtual environment or native? Do you have another Cygwin version installed? Which values does your PATH variable contain? It looks like environment wasn't tuned. What kind of shell did you use? Did you work with It's strange why it needs |
If this error happens on running the second command from these instructions, then clearly the first one - which updated pacman binary - must have downloaded the binary in an incompatible version, presumably newer than your MSYS2 environment (note that the MSYS2 installer, while convenient, does not provide the newest core binaries). I suggest trying to bring your MSYS2 core up to date before upgrading pacman (thus immediately after installing MSYS2 and before using pacman to download anything). This is fairly simple:
If that succeeds, continue with Denis' instructions, skipping first three (updates). |
@deniskolodin @rafalcieslak I don't know what to tell you. In addition to the two Windows 10 machines, I just built a Windows 7 machine from scratch and ran your instructions, and got the same results. These are not VMs, they are physical machines that have no similarities other than a few packages installed on them. In either case, I pruned the path. @rafalcieslak Your
After this, msys2_shell.bat is fucking gone. I have tried this ten times now on three different computers. Are you telling me these instructions are working for you when you test them before sending them to me? Are you trying these out on a fresh install? Because I've put in hour trying to get msys2 to work using your instructions and all it does is corrupt my filesystem. |
Okay, I managed to get it installed. After @deniskolodin: Test your instructions before sending them to me on a fresh machine, as your previous instructions corrupted my filesystem. I am sure I could figure out something, but that's not good enough because I might go off the beaten path. And then I am not properly testing my own project. |
Curious thing: I can build it locally (even I don't need any @mlabbe I'll send you AppVeyor config, when it works. Have you tried to build it locally or with AppVeyor? I'll try to test it with other hardware too... @rafalcieslak Could you build it locally? Any errors? cd build/gmake_windows/
make |
@deniskolodin I'm only trying to build it locally. When I get that to work, I'm going to focus in on getting it to work with BuildBot. AppVeyor doesn't support Mac OS and so I can't use it for NFD. I have a Linux, Mac and Windows buildbot cloud for my company. |
I've made it right, friends! It was really fun thing. AppVeyor has an alternative
@mlabbe You are right about AppVeyor, it's windows build system only. To build for linux or mac we can add Travis config too. What about to merge |
I don't want to use two cloud build systems to "automatically" build something. There is nothing automatic about maintaining two build systems to cover 3 OSes. I will be using my BuildBot network for that. |
@deniskolodin After bootstrapping msys2, I get:
GCC works:
Pls advise |
In this case you should install toolchain:
I'm ready to help if it won't work. |
I already did that and it didn't do anything. |
Okay! I merged the change after testing locally. The change is now in devel on the mainline which will be merged to master shortly. Thanks for your help. |
@mlabbe It was merged! Thank you! It's a good start of this day ) About builds: Rust uses BuildBot to build releases and Travis to pass tests. It's useful, because with cloud build system you shouldn't maintain bots at all. Maintainers can check their PR's extremely easy, because build config is enough to use build system. https://buildbot.rust-lang.org/waterfall?refresh=15 I'm ready to add AppVeyor any time if you want. |
With NFD, all tests are passed when the executables are built without warnings in supported environments and architectures. There is no need to support another system for test harnesses. My company, Frogtoss Games, has its own cloud because the existing solutions are insufficient. We build projects for RPi, Android, Linux, Mac and Windows, using Clang, GCC and Visual Studio. We also do more static analysis than is offered by the build clouds. It is easy for me to extend our buildbot for this purpose. I have added you into the readme.md credits for the mingw fix. Michael Labbé
|
Thank you! |
This PR makes similar what #10 does, but with premakes and offered to
devel
branch.I've implemented MinGW/MSYS support. It builds:
I've checked all tests, It works!
P.S. I made changes with linux, but checked it with windows+msys.