-
Notifications
You must be signed in to change notification settings - Fork 78
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
MSYS2 build failures #76
Comments
Apologies for being a bit gruff trapped in a chain of building the tool to make the tool to do a thing right now. Putting together a non-git graphene 1.4.0 in MINGW-packages as penance. I note that this may be a regression since 1.4.0: the test was working with autofu.
|
We do the same checks in Meson that we did with Autotools, and we conditionally build things depending on the results; that part hasn't changed, and I can quickly verify that the build still works the same way on Linux. You should have a |
Still broken as of 80d553a, although at least meson is now available through MSYS2. |
Somebody with a Windows machine and MSYS2 will have to debug this, since I don't have a Windows machine with development tools on it. |
Would patches for a Tea-CI or Appveyor CI build be welcome? |
Yes, as long as they come with the implicit guarantee that somebody will look at Tea-CI/Appveyor, since I don't really have experience with those services. |
They'd operate as automated github checks, so you wouldn't have to check them each time. I don't have the time to devote to their ongoing maintenance; I have enough on my plate already. Really I'm only doing this to try and ensure that the next MyPaint release's GTK will be OK. Let's get the build working first. This is my first tussle with meson, and I don't know it at all, but it's clearly drawing the wrong conclusion about the presence of
|
Meson 0.36.0 does not fix this issue, sadly. |
This actually works fine for me with MSYS/MinGW (not MSYS2):
I will also note that the aligned malloc logic is broken: #83 so it's probably best to not build the benchmark at all on MinGW. |
Till this is figured out, I'd recommend wrapping the |
As recommended by @nirbheek, only search for a single aligned memory allocation function: ebassi#86 (comment) The cascade of tests means we can exclude the ones for which MSYS2's native mingw-w64 builtins and headers conspire to provide meson with a dud test. Although it is still not clear that meson is doing the right thing in this case (mesonbuild/meson#1083), we can work around the failed build in graphene by excluding certain POSIXy cases on Windows. Closes ebassi#76, leaving ebassi#88 unsolved.
Closes: ebassi#76 This commit makes the existing flat set of macro tests into a big if-else block, and selects only one aligned alloc function. If no such function is available, meson now terminates with an error and the build will fail. This is as recommended by @nirbheek, who suggests that meson should only search for a single aligned memory allocation function during configuration of graphene. Ref: ebassi#86 (comment) On MSYS2, a buggy mismatch between in the native mingw-w64 builtins and headers causes meson < 0.37.0 to report that the function exists because the underlying builtin exists. Cascading the tests like this works around breaking configuration on the MSYS2 platform for meson<0.37 by excluding certain POSIX-only cases on Windows. Ref: mesonbuild/meson#1083
Closes: ebassi#76 This commit makes the existing flat set of macro tests into a big if-else block, and selects only one aligned alloc function. If no such function is available, meson now terminates with an error and the build will fail. This is as recommended by @nirbheek, who suggests that meson should only search for a single aligned memory allocation function during configuration of graphene. Ref: ebassi#86 (comment) On MSYS2, a buggy mismatch between the native mingw-w64 builtins and the standard headers causes meson < 0.37.0 to report that the function exists because the underlying builtin exists. Cascading the tests like this works around breaking configuration on the MSYS2 platform for meson<0.37 by excluding certain POSIX-only cases on Windows. Ref: mesonbuild/meson#1083
Experienced behavior
Current master does not build on MSYS2 as documented.
Expected behavior
Ninja completes the build so I can make you a nice mingw-w64-graphene-git package to allow the new GTK3 dependencies to be built on Windows.
Steps to reproduce
These also form updated build instructions for MSYS2.
From an MSYS2 environment:
Build mingw-w64-meson withNow just install them:makepkg-mingw -sf
(packages are not yet available in the repository because @Alexpux has been busy)pacman -S mingw-w64-i686-meson mingw-w64-x86_64-meson
Install the resultant packages:pacman -U *.pkg.tar.xz
Install ninja from the repository:Now pulled in as a dependency.pacman -S mingw-w64-{x86_64,i686}-ninja
Install graphene's documented dependencies:
From a MINGW64 or a MINGW32 shell,
At which point it fails with the error above.
Operating system in use
Windows 7 Professional N (on Virtualbox on Debian)
SIMD implementation in use
Not a clue, I only care about getting graphene built sensibly so I can fix wacom stylus tilt in GTK master.
The text was updated successfully, but these errors were encountered: