Cross build error "undefined reference to `_g_binary_test1_resource_data'" when building tests for Windows on openSUSE Leap
I tried to cross build glib for Windows on openSUSE Leap with
$ sudo zypper ar http://download.opensuse.org/repositories/windows:/mingw:/win32/openSUSE_Leap_15.2/windows:mingw:win32.repo
$ sudo zypper install mingw32-cross-gcc-c++ meson ninja
$ mkdir ~/src
$ cd ~/src
$ git clone https://gitlab.gnome.org/GNOME/glib.git
$ mkdir glib-mingw32-build
$ cd glib-mingw32-build
$ meson ../glib --cross-file ../meson-cross-file-i686-w64-mingw32.txt
$ ninja
and got
FAILED: gio/tests/resources.exe
/usr/bin/i686-w64-mingw32-gcc -o gio/tests/resources.exe gio/tests/test_resources2.o gio/tests/resources.exe.p/meson-generated_.._test_resources.c.obj gio/tests/resources.exe.p/meson-generated_.._test_resources2.c.obj gio/tests/resources.exe.p/meson-generated_.._digit_test_resources.c.obj gio/tests/resources.exe.p/meson-generated_.._test_resources_binary.c.obj gio/tests/resources.exe.p/resources.c.obj -Wl,--allow-shlib-undefined -Wl,--start-group glib/libglib-2.0.dll.a gmodule/libgmodule-2.0.dll.a gobject/libgobject-2.0.dll.a gio/libgio-2.0.dll.a -lintl -liphlpapi -lws2_32 -lsecur32 -Wl,--subsystem,console -lkernel32 -luser32 -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32 -ladvapi32 -Wl,--end-group
/usr/lib64/gcc/i686-w64-mingw32/9.2.0/../../../../i686-w64-mingw32/bin/ld: gio/tests/resources.exe.p/meson-generated_.._test_resources_binary.c.obj:test_resources_binary.c:(.data+0x0): undefined reference to `_g_binary_test1_resource_data'
collect2: error: ld returned 1 exit status
[14/96] Compiling C object fuzzing/fuzz_variant_text.exe.p/fuzz_variant_text.c.obj
ninja: build stopped: subcommand failed.
glib-meson-mingw32-configure.log glib-meson-mingw32-build.log meson-cross-file-i686-w64-mingw32.txt
Depends on #2573 (closed)
Edited by Philip Withnall