diff --git a/configure.ac b/configure.ac index 11fde900f..3fd519ecd 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 - ]], - [[ - 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 a6af822b5..4b2c8f2ca 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)