DiumingWen
(Diuming)
September 12, 2022, 12:08am
1
glib older version(configure, make, and make install) can easy to build fat library using CFLAGS="-arch x86_64 -arch arm64"
on macOS Apple M1.
GLib 2.73.3
Currently! glib transfer to Meson build system
that I try to build fat library always failed. even build only for x86_64(macOS Intel x86_64) on macOS Apple M1.
How Do i build fat library(x86_64 and arm64) on macOS Apple M1?
How Do i build x86_64(macOS Intel x86_64) library on macOS Apple M1?
Could you give me some a advice?
thanks
meson x86_64-build --cross-file x86_64-build-Apple_M1.txt
x86_64-build-Apple_M1.txt
-------------------------
[host_machine]
system = 'darwin'
cpu_family = 'x86_64'
cpu = 'x86_64'
endian = 'little'
[binaries]
c = 'clang'
objc = 'clang'
cpp = 'clang++'
ar = 'ar'
ld = 'ld'
strip = 'strip'
lipo = 'lipo'
ranlib = 'ranlib'
[built-in options]
prefix = '/some_place/x86_64-glib'
c_args = ['-arch', 'x86_64']
#c_link_args = []
default_library = 'static'
buildtype = 'release'
lb90
September 13, 2022, 2:21pm
2
Hi! In order to build a fat binary, first of all we need proper support on the Meson side. That issue (I believe you opened it) is relevant: [Question]How do I build universal library(x86_64 and arm64) for macOS M1? · Issue #10780 · mesonbuild/meson · GitHub .
Can you post here the errors you encounter when cross compiling for x86_64?
lb90
September 13, 2022, 2:33pm
3
Actually, the problem seems to be in the binaries section of your cross file. By invoking plain clang
you compile for the native architecture of your OS, in this case ARM64.
I believe you should set the -target switch as documented in Cross-compilation using Clang — Clang 20.0.0git documentation
Example:
[binaries]
c = 'clang -target=x86_64-apple-darwin'
This is documented in Cross compiling made easy, using Clang and LLVM · mcilloni's blog . See also the examples in meson/cross at master · mesonbuild/meson · GitHub
Otherwise you may compile GLib2 under Rosetta 2, see Can I compile OpenCV source in x86_64 on Apple M1 Chip? | by Raymond Lo | Dec, 2020 | Medium | Towards Data Science and macos - How to run the Homebrew installer under Rosetta 2 on M1 Macbook - Stack Overflow
@lb90 thank your for reply.
Rosetta installed.
Take a look the results, please.
meson buile --native-file x86_64.txt
The Meson build system
Version: 0.63.2
Source dir: /some_place/Downloads/glib-2.73.3
Build dir: /some_place/Downloads/glib-2.73.3/buile
Build type: native build
Project name: glib
Project version: 2.73.3
meson.build:1:0: ERROR: Unknown compiler(s): [['clang -target=x86_64-apple-darwin']]
The following exception(s) were encountered:
Running `'clang -target=x86_64-apple-darwin' --version` gave "[Errno 2] No such file or directory: 'clang -target=x86_64-apple-darwin'"
lb90
September 14, 2022, 10:29am
5
If you use Rosetta 2, try not to pass any native file.
Just invoking meson ../build
should work
system
(system)
Closed
October 14, 2022, 10:30am
6
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.