Opened 3 years ago
Last modified 2 years ago
#64944 assigned defect
gobject-introspection @1.72.0 for +universal: An exe_wrapper is needed but was not found
Reported by: | barracuda156 | Owned by: | mascguy (Christopher Nielsen) |
---|---|---|---|
Priority: | Normal | Milestone: | |
Component: | ports | Version: | 2.7.2 |
Keywords: | powerpc, leopard, ppc64 | Cc: | kencu (Ken), cooljeanius (Eric Gallager) |
Port: | gobject-introspection |
Description (last modified by ryandesign (Ryan Carsten Schmidt))
This is a different issue from #64769
I finally have built dependencies as ppc+ppc64 (aside of python310 and its modules).
Thanks to Kencu's advice, I fixed meson
so that it can now build for ppc+ppc64.
So at first I added depends_skip_archcheck-append python310 py310-cython
to gobject-introspection
Portfile and tried to build it as +universal
. It failed with the following:
---> Configuring gobject-introspection Executing: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/gobject-introspection-1.72.0" && /opt/local/bin/meson --prefix=/opt/local -Ddoctool=enabled -Dpython=/opt/local/bin/python3.10 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/gobject-introspection-1.72.0 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/build The Meson build system Version: 0.59.1 Source dir: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/gobject-introspection-1.72.0 Build dir: /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/build Build type: native build Project name: gobject-introspection Project version: 1.72.0 meson.build:1:0: ERROR: Unable to detect linker for compiler "/usr/bin/gcc-4.2 -Wl,--version -pipe -Os -arch ppc -arch ppc64 -I/opt/local/include" stdout: stderr: A full log can be found at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/build/meson-logs/meson-log.txt Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/gobject-introspection-1.72.0" && /opt/local/bin/meson --prefix=/opt/local -Ddoctool=enabled -Dpython=/opt/local/bin/python3.10 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/gobject-introspection-1.72.0 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/build Exit code: 1 Error: Failed to configure gobject-introspection: consult /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/build/meson-logs/meson-log.txt Error: Failed to configure gobject-introspection: configure failure: command execution failed
Then I added muniversal 1.0
PortGroup and tried to build again. It still failed however:
Build targets in project: 37 Found ninja-1.10.2 at /opt/local/bin/ninja ERROR: An exe_wrapper is needed but was not found. Please define one in cross file and check the command and/or add it to PATH. A full log can be found at /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/build-ppc64/meson-logs/meson-log.txt Command failed: cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/gobject-introspection-1.72.0-ppc64" && /opt/local/bin/meson --prefix=/opt/local -Ddoctool=enabled -Dpython=/opt/local/bin/python3.10 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/gobject-introspection-1.72.0-ppc64 /opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_gnome_gobject-introspection/gobject-introspection/work/build-ppc64 --cross-file=ppc64-darwin Exit code: 1
ppc32
part had this:
Build targets in project: 37 Found ninja-1.10.2 at /opt/local/bin/ninja WARNING: Cross file does not specify strip binary, result will not be stripped. WARNING: Cross file does not specify strip binary, result will not be stripped.
Now, I made cross-files for ppc
and ppc64
by just copying from Kencu and replacing arch. For example, original in /opt/local/share/meson/cross
for i386-darwin
has:
[host_machine] system = 'darwin' cpu_family = 'x86' cpu = 'i386' endian = 'little' [binaries] pkgconfig = '/opt/local/bin/pkg-config' cmake = '/opt/local/bin/cmake'
Then my ppc64-darwin
:
[host_machine] system = 'darwin' cpu_family = 'ppc64' cpu = 'ppc64' endian = 'big' [binaries] pkgconfig = '/opt/local/bin/pkg-config' cmake = '/opt/local/bin/cmake'
There was nothing about strip binary there. What did I do wrong and how to fix this?
Attachments (2)
Change History (7)
Changed 3 years ago by barracuda156
comment:1 follow-up: 2 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)
Description: | modified (diff) |
---|
Changed 3 years ago by barracuda156
Attachment: | meson-log_ppc64_exe_wrapper.txt added |
---|
comment:2 Changed 3 years ago by barracuda156
comment:3 follow-up: 4 Changed 3 years ago by kencu (Ken)
You can ignore the strip thing, it is meaningless other than the uneventful warning. With appropriate testing on all systems, strip could be added to the list of binaries already in the cross files. It will not make anything work that doesn't work now, however.
I considered adding it, but there was some reason I didn't add it with the others two or three years back. I think I didn't want meson to have to rely on cctools as a dep.
Are you sure these are right?:
cpu_family = 'ppc64' cpu = 'ppc64'
they have to match what meson prints out when building ppc64 (and similar for ppc).
comment:4 Changed 3 years ago by barracuda156
Replying to kencu:
You can ignore the strip thing, it is meaningless other than the uneventful warning. With appropriate testing on all systems, strip could be added to the list of binaries already in the cross files. It will not make anything work that doesn't work now, however.
I considered adding it, but there was some reason I didn't add it with the others two or three years back. I think I didn't want meson to have to rely on cctools as a dep.
Are you sure these are right?:
cpu_family = 'ppc64' cpu = 'ppc64'they have to match what meson prints out when building ppc64 (and similar for ppc).
Looks like yes: https://mesonbuild.com/Reference-tables.html#cpu-families
comment:5 Changed 2 years ago by cooljeanius (Eric Gallager)
Cc: | cooljeanius added |
---|
Replying to ryandesign:
UPD.
strip
can be defined in cross-files, I have found that. There is a section for binaries. However the major failure withAn exe_wrapper is needed but was not found
remains unsolved.We rather try fixing how
meson
interacts withmuniversal
than its attempts to build universal binary on its own (if that could work in principle at all), right? From what I understand onlyapple-gcc-4.x
can handle-arch ppc -arch ppc64
at once, and it is pointless to limit ourselves to an ancient compiler case.