diff --git a/glib-ipmreqsource.patch b/glib-ipmreqsource.patch index 9e2f905..6bd876b 100644 --- a/glib-ipmreqsource.patch +++ b/glib-ipmreqsource.patch @@ -1,11 +1,65 @@ ---- glib-2.57.2/configure.ac 2018-07-31 20:31:07.000000000 +0200 -+++ glib-2.57.2/configure.ac 2018-08-02 19:09:02.569368144 +0200 -@@ -925,7 +925,7 @@ - AC_MSG_CHECKING([if ip_mreq_source.imr_interface has s_addr member]) - AC_COMPILE_IFELSE([AC_LANG_PROGRAM( - [[ +diff --git a/configure.ac b/configure.ac +index 11fde900f8f688e1ca5a04eed37a7ee399f61d6d..3fd519ecddca654db5a8b781005c0fe56cc5a746 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -922,20 +922,22 @@ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( + AC_MSG_RESULT(no) + ]) + +-AC_MSG_CHECKING([if ip_mreq_source.imr_interface has s_addr member]) +-AC_COMPILE_IFELSE([AC_LANG_PROGRAM( +- [[ - #include -+ #include - ]], - [[ - struct ip_mreq_source mc_req_src; +- ]], +- [[ +- struct ip_mreq_source mc_req_src; +- mc_req_src.imr_interface.s_addr = 0; +- ]])], [ +- AC_MSG_RESULT(yes) +- ], [ +- AC_MSG_RESULT(no) +- AC_DEFINE(BROKEN_IP_MREQ_SOURCE_STRUCT, 1, [struct ip_mreq_source definition is broken on Android NDK <= r16]) +-]) ++# See https://bugzilla.gnome.org/show_bug.cgi?id=740791 ++AS_IF([test $glib_native_android = yes], [ ++ AC_MSG_CHECKING([if ip_mreq_source.imr_interface has s_addr member]) ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM( ++ [[ ++ #include ++ ]], ++ [[ ++ struct ip_mreq_source mc_req_src; ++ mc_req_src.imr_interface.s_addr = 0; ++ ]])], [ ++ AC_MSG_RESULT(yes) ++ ], [ ++ AC_MSG_RESULT(no) ++ AC_DEFINE(BROKEN_IP_MREQ_SOURCE_STRUCT, 1, [struct ip_mreq_source definition is broken on Android NDK <= r16]) ++ ])]) + + AS_IF([test $glib_native_win32 = yes], [ + # in the Windows SDK and in mingw-w64 has wrappers for +diff --git a/gio/meson.build b/gio/meson.build +index a6af822b58f1d5b14bc59cb55e4ed2a8d8402b8b..4b2c8f2caf9679dc186d97690f795b0793317da5 100644 +--- a/gio/meson.build ++++ b/gio/meson.build +@@ -152,6 +152,11 @@ if host_system != 'windows' + glib_conf.set('HAVE_SIOCGIFADDR', '/**/') + endif + ++endif ++ ++if host_system.contains('android') ++ # struct ip_mreq_source definition is broken on Android NDK <= r16 ++ # See https://bugzilla.gnome.org/show_bug.cgi?id=740791 + if not cc.compiles('''#include + int main(int argc, char ** argv) { + struct ip_mreq_source mc_req_src; +@@ -161,7 +166,6 @@ if host_system != 'windows' + name : 'ip_mreq_source.imr_interface has s_addr member') + glib_conf.set('BROKEN_IP_MREQ_SOURCE_STRUCT', 1) + endif +- + endif + + gnetworking_h_conf.set('WSPIAPI_INCLUDE', gnetworking_h_wspiapi_include) diff --git a/mingw-glib2.spec b/mingw-glib2.spec index 8710c32..0dae08c 100644 --- a/mingw-glib2.spec +++ b/mingw-glib2.spec @@ -60,6 +60,9 @@ Patch6: glib-formaterror.patch # https://gitlab.gnome.org/GNOME/glib/issues/1472 Patch7: glib-ipmreqsource.patch +# meson cross build +# https://gitlab.gnome.org/GNOME/glib/commit/3145d88f4b961df1e971e7068da0bacbbd60299a + %description MinGW Windows Glib2 library.