-
Notifications
You must be signed in to change notification settings - Fork 561
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
[Glib] Upgrade builder to v2.68.1 #91
Conversation
Ok, I managed to build for all platforms excluding macOS and FreeBSD. On macOS, the problem is the native Objective-C compiler, meson stubbornly wants to check that it works and that it can run the generated executable. Actually, the program that it wants to compile is quite simple: #import<stdio.h>
int main() { return 0; } I tried fooling meson by defining I don't remember what was the problem with FreeBSD, I quickly gave up. |
Now macOS build is failing before getting to the sanity check for the native Objective-C compiler:
Which doesn't sound great. Relevant part of the log file:
What's interesting is that if I compile the file shown in the log with the command shown in the log, I get no error and the command returns 0 🤔 😕 |
Ok, I found the culprit, and this isn't nice. See also https://gitlab.gnome.org/GNOME/glib/issues/1868 The relevant lines are https://gitlab.gnome.org/GNOME/glib/blob/2.62.0/glib/gnulib/gl_cv_func_frexpl_works/meson.build#L121-L126 if not meson.is_cross_build() or meson.has_exe_wrapper()
# ...
else
if (host_system.startswith ('aix') or
host_system.startswith ('beos') or
host_system.startswith ('darwin') or
host_system.startswith ('irix'))
gl_cv_func_frexpl_works = false
gl_cv_func_frexpl_broken_beyond_repair = true
elif (host_system == 'windows')
gl_cv_func_frexpl_works = false
gl_cv_func_frexpl_broken_beyond_repair = false
else
gl_cv_func_frexpl_works = true
gl_cv_func_frexpl_broken_beyond_repair = false
endif
endif So, when the host system in a cross-compilation is Darwin (and a few others) it assumes (without actually compiling the code shown in the previous message) that frexpl is broken beyond repair, thus making it impossible to continue with the compilation. |
Glib 2.62 apparently is broken also for FreeBSD:
I don't think this version has been ported at all to FreeBSD yet |
7b9a292
to
9dd56ce
Compare
Quick note to self: for FreeBSD look at http://cvsweb.netbsd.org/bsdweb.cgi/pkgsrc/devel/glib2/patches/patch-meson.build?rev=1.2&content-type=text/x-cvsweb-markup, maybe there is something similar also in FreeBSD ports |
The macOS build is failing with
because this is the command line invocation (original and verbose):
The most relevant ingredients are
My understanding is that when you do Edit: ok, I suspect the culprit is https://github.com/JuliaPackaging/BinaryBuilderBase.jl/blob/1eab154d2ad8de0045cc69a181de1bd411cb0d35/src/Runner.jl#L411: our |
5e782ee
to
f0ef8cd
Compare
I can't believe this is finally working 😢 |
This requires a newer version of objcopy (binutils) in the builder environment to work