-
-
Notifications
You must be signed in to change notification settings - Fork 1k
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
Remove mingw-std-threads from 3rd party deps and use native libs/headers instead #7283
Conversation
From what I know, this PR will break MinGW compilation as MinGW standard library lacks the threading features. |
I'll run the CI tho, just to check. |
I thought so. I'm converting this to draft instead of closing it for now. Edit: just saw that it's already in draft |
@Rossmaxx I created it as a draft precisely because the error is not in this repo, but in CI image itself. MinGW stdlib has pthreads for both Linux and Windows for about 10 years now, the CI image just needs to be configured to use it. I'm fixing the image in my fork as we speak, and I'm writing the necessary description of this problem in parallel as well. However, after fixing the CI image for MinGW, this will be actually the proper solution here. |
@messmerd is looking into the containers. They might be a fit for this review. |
@Rossmaxx @messmerd For Ubuntu, the package should be named the same, for Focal it's https://packages.ubuntu.com/focal/g++-mingw-w64-x86-64 I guess, but I'm not seeing the POSIX package for Focal (edit: |
Just a doubt, why are you doing the build.yml changes in the linux container instead of the mingw(32|64) containers (they are seperate containers) |
@Rossmaxx I'm just doing a tryout whether Focal has this lib at all, it doesn't really matter where I do it. I could as well download the image to my PC and get into container shell. I'm just doing this in parallel with other stuff so I'm doing what's most convenient for me. Those commits are tryouts and will be rolled back anyway. |
Ohh i see. I thought you mistook the linux and mingw containers. |
Rather than updating our MinGW image again, I think I'd like to try a proper solution, which would be using a plain GitHub build runner and getting our MinGW dependencies from vcpkg. If I can get that to work, that would end our reliance on Docker images and tobydox's PPA entirely while also providing us with up-to-date dependencies. |
@messmerd sounds like a great idea. The only thing that would be required as a prerequisite for dropping I'm finding&fixing all the problems with current build to be 24.04-compatible in my fork, but honestly most of the stuff is OK, only some updates due to new GCC bitching about stuff and some problems with ZynAddSubFx, GCC-vs-G++ if I see it correctly (wrong compiler gets called for some reason). |
@messmerd @Rossmaxx FYI, the 64-bit compilation on 24.04 with |
0be1822
to
4684d71
Compare
I've been experimenting with MinGW-w64 (with POSIX threads) + vcpkg on GitHub build runners here: It's been rough and I haven't been able to build all of the dependencies yet. On the GitHub build-runners though, it's been less successful and I'm not sure why yet. |
0fdc38f
to
97624c0
Compare
0058751
to
8ac5151
Compare
c220515
to
cd77a78
Compare
and use native libs/headers instead
5a04a6b
to
637d807
Compare
The only constraint here is the CI, and since CI passes, you have my approval. |
BTW, it would be a good idea to update the developer wiki too to reflect the changes. |
In my opinion, it's a prerequisite prior to merging. |
@tresf @Rossmaxx wiki updated. I understand this concerned the https://github.com/LMMS/lmms/wiki/Compiling & https://github.com/LMMS/lmms/wiki/Dependencies-Windows pages? BTW, I did some cleanup and restructuring there, and prepared for reintroduction of MSYS2 section (since it should work out-of-the-box after this PR is merged, at least it does at my box) |
@FyiurAmron Thank you very much! |
There's also an unresolved conversation between @FyiurAmron and @DomClark. The code has changed as a result but I would like @DomClark to mark the conversation as resolved prior to merging. |
@tresf didn't catch that.. hehe |
Also wanted to say thank you for this. Having to do the conditional |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't know it would be this easy to drop mingw-std-threads
. Nice!
related discussion in #7256
The 24.04 update has been separated from this PR to #7358 , since I found out it's possible to easily switch to POSIX on 20.04 (and earlier as well I think).