66 lines
2.3 KiB
Diff
66 lines
2.3 KiB
Diff
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 <netinet/in.h>
|
|
- ]],
|
|
- [[
|
|
- 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 <netinet/in.h>
|
|
+ ]],
|
|
+ [[
|
|
+ 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], [
|
|
# <wspiapi.h> 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 <netinet/in.h>
|
|
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)
|