GentlePeople:
I am trying to build gdk-pixbuf-2.40.0 out of the box. The directions require the use of meson and ninja, my first experience with both!
I am on a Fedora 30 X86 Host, and I want to cross compile to i686 for Windows. I am using the cross tools provided by the Fedora distribution /usr/i686-w64-mingw32. The i686-w64-mingw32 cross compiler dose work on Hello.c, independant of meson's opinion shown below.
The Error Messages, Cross File, and Error Log File are presented below:
Q1) Why dose meson say "Is cross compiler: False."?
Q2) Why dose the sanity check fail?
Q3) Please show me the correct Cross File for Cross Compiling to i686 Windows and X86 Windows. I am suffering from google whiplash from internet searching issue and multiple opinions.
Q4) Why meson why not configure make?
; ; The Project ;
F30-VM% pwd /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0
meson _build . --cross-file ./i686_Cross_File --prefix /usr/i686-w64-mingw32/sys-root/mingw --libdir /usr/i686-w64-mingw32/sys-root/mingw/lib --bindir /usr/i686-w64-mingw32/sys-root/mingw/bin --includedir /usr/i686-w64-mingw32/sys-root/mingw/include
The Meson build system Version: 0.52.0 Source dir: /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0 Build dir: /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build Build type: cross build Project name: gdk-pixbuf Project version: 2.40.0 C compiler for the build machine: cc (gcc 9.3.1 "cc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)") C linker for the build machine: GNU ld.bfd 2.31.1-37 000b:fixme:winediag:__wine_start_process Wine Staging 5.0 is a testing version containing experimental patches. 000b:fixme:winediag:__wine_start_process Please mention your exact version when filing bug reports on winehq.org. 002b:err:module:__wine_process_init L"Z:\home\tdineen\gdk-pixbuf-2\gdk-pixbuf-2.40.0\_build\meson-private\sanitycheckc_cross.exe" not supported on this system
meson.build:1:0: ERROR: Executables created by c compiler /usr/bin/i686-w64-mingw32-gcc are not runnable.
A full log can be found at /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-logs/meson-log.txt F30-VM%
; ; Cross File ; more i686_Cross_File [host_machine] system = 'windows' cpu_family = 'x86' cpu = 'i686' endian = 'little'
[properties] c_args = [] c_link_args = []
[binaries] c = '/usr/bin/i686-w64-mingw32-gcc' cpp = '/usr/bin/i686-w64-mingw32-g++' ar = '/usr/bin/i686-w64-mingw32-ar' strip = '/usr/bin/i686-w64-mingw32-strip' pkgconfig = '/usr/bin/i686-w64-mingw32-pkg-config' windres = '/usr/bin/i686-w64-mingw32-windres' exe_wrapper = 'wine'
; ; Error Log: ;
vi /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-logs/meson-log.txt
Build started at 2020-04-28T13:16:40.677565 Main binary: /usr/bin/python3 Build Options: -Dprefix=/usr/i686-w64-mingw32/sys-root/mingw -Dbindir=/usr/i686-w64-mingw32/sys-root/mingw/bin -Dincludedir=/usr/i686-w64-mingw32/sys-root/mingw/include -Dlibdir=/usr/i686-w64-mingw32/sys-root/mingw/lib '--cross-file ./i686_Cross_File' Python system: Linux The Meson build system Version: 0.52.0 Source dir: /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0 Build dir: /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build Build type: cross build Project name: gdk-pixbuf Project version: 2.40.0 No CFLAGS in the environment, not changing global flags. No LDFLAGS in the environment, not changing global flags. No CPPFLAGS in the environment, not changing global flags. Sanity testing C compiler: cc Is cross compiler: False. Sanity check compiler command line: cc /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc.c -o /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc.exe -pipe -D_FILE_OFFSET_BITS=64 Sanity check compile stdout:
----- Sanity check compile stderr:
----- Running test binary command: /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc.exe C compiler for the build machine: cc (gcc 9.3.1 "cc (GCC) 9.3.1 20200408 (Red Hat 9.3.1-2)") C linker for the build machine: GNU ld.bfd 2.31.1-37 Sanity testing C compiler: /usr/bin/i686-w64-mingw32-gcc Is cross compiler: True. Sanity check compiler command line: /usr/bin/i686-w64-mingw32-gcc /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc.c -o /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc_cross.exe -pipe Sanity check compile stdout:
----- Sanity check compile stderr:
----- Running test binary command: /usr/bin/wine /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc_cross.exe
meson.build:1:0: ERROR: Executables created by c compiler /usr/bin/i686-w64-mingw32-gcc are not runnable. 38,1 Bot
----- Sanity check compile stderr:
----- Running test binary command: /usr/bin/wine /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc_cross.exe
meson.build:1:0: ERROR: Executables created by c compiler /usr/bin/i686-w64-mingw32-gcc are not runnable. 38,1 Bot
On 4/28/20 2:31 PM, Thomas Dineen wrote:
I am on a Fedora 30 X86 Host, and I want to cross compile to i686 for Windows. I am using the cross tools provided by the Fedora distribution /usr/i686-w64-mingw32. The i686-w64-mingw32 cross compiler dose work on Hello.c, independant of meson's opinion shown below.
L"Z:\home\tdineen\gdk-pixbuf-2\gdk-pixbuf-2.40.0\_build\meson-private\sanitycheckc_cross.exe" not supported on this system
Does this file still exist? Can you take a look at it to see what it is and why it doesn't run? First run "file sanitycheckc_cross.exe" for a quick check.
Sanity testing C compiler: cc Is cross compiler: False. Sanity check compiler command line: cc /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc.c -o /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc.exe
-pipe -D_FILE_OFFSET_BITS=64
Running test binary command: /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc.exe
It appears to test the system compiler first which works.
Sanity testing C compiler: /usr/bin/i686-w64-mingw32-gcc Is cross compiler: True. Sanity check compiler command line: /usr/bin/i686-w64-mingw32-gcc /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc.c -o /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc_cross.exe
-pipe
Running test binary command: /usr/bin/wine /home/tdineen/gdk-pixbuf-2/gdk-pixbuf-2.40.0/_build/meson-private/sanitycheckc_cross.exe
meson.build:1:0: ERROR: Executables created by c compiler /usr/bin/i686-w64-mingw32-gcc are not runnable.
Then it tests the mingw setup which fails. If the executable doesn't still exist, see if you can create it again using this command line.