[New-bugs-announce] [issue28538] _socket module cross-compilation error on android-24

Xavier de Gaye report at bugs.python.org
Wed Oct 26 05:38:53 EDT 2016


New submission from Xavier de Gaye:

On the latest Android API level (android-24), the if_nameindex function is now found by configure in Android libc.  But the if_nameindex function and structure are still not defined in the Android net/if.h header.

The compilation fails with:

clang --sysroot=/opt/android-ndk/platforms/android-24/arch-x86 -target i686-none-linux-androideabi -gcc-toolchain /opt/android-ndk/toolchains/x86-4.9/prebuilt/linux-x86_64 -Wno-unused-result -Wsign-compare -Wunreachable-code -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -Wno-unused-value -Wno-empty-body -Qunused-arguments -Wno-parentheses-equality -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -I. -IObjects -IInclude -IPython -I/home/xavier/src/android/pyona/build/python3.7-install-android-24-x86/org.bitbucket.pyona/include -I/opt/android-ndk/platforms/android-24/arch-x86/usr/include -I/path/to/android/cpython/Include -I/home/xavier/src/android/pyona/build/python3.7-android-24-x86 -c /path/to/android/cpython/Modules/socketmodule.c -o build/temp.linux-i686-3.7/path/to/android/cpython/Modules/socketmodule.o
/path/to/android/cpython/Modules/socketmodule.c:1034:29: warning: comparison of integers of different signs: 'socklen_t' (aka 'int') and 'size_t' (aka 'unsigned int') [-Wsign-compare]
        if (res->ai_addrlen < addr_ret_size)
            ~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~
/path/to/android/cpython/Modules/socketmodule.c:1125:25: warning: comparison of integers of different signs: 'socklen_t' (aka 'int') and 'size_t' (aka 'unsigned int') [-Wsign-compare]
    if (res->ai_addrlen < addr_ret_size)
        ~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~
/path/to/android/cpython/Modules/socketmodule.c:4925:15: warning: implicit declaration of function 'sethostname' is invalid in C99 [-Wimplicit-function-declaration]
        res = sethostname(buf.buf, buf.len);
              ^
/path/to/android/cpython/Modules/socketmodule.c:6242:10: warning: implicit declaration of function 'if_nameindex' is invalid in C99 [-Wimplicit-function-declaration]
    ni = if_nameindex();
         ^
/path/to/android/cpython/Modules/socketmodule.c:6242:8: warning: incompatible integer to pointer conversion assigning to 'struct if_nameindex *' from 'int' [-Wint-conversion]
    ni = if_nameindex();
       ^ ~~~~~~~~~~~~~~
/path/to/android/cpython/Modules/socketmodule.c:6250:9: warning: implicit declaration of function 'if_freenameindex' is invalid in C99 [-Wimplicit-function-declaration]
        if_freenameindex(ni);
        ^
/path/to/android/cpython/Modules/socketmodule.c:6254:19: error: subscript of pointer to incomplete type 'struct if_nameindex'
    for (i = 0; ni[i].if_index != 0 && i < INT_MAX; i++) {
                ~~^
/path/to/android/cpython/Modules/socketmodule.c:6240:12: note: forward declaration of 'struct if_nameindex'
    struct if_nameindex *ni;
           ^
/path/to/android/cpython/Modules/socketmodule.c:6256:19: error: subscript of pointer to incomplete type 'struct if_nameindex'
                ni[i].if_index, PyUnicode_DecodeFSDefault, ni[i].if_name);
                ~~^
/path/to/android/cpython/Modules/socketmodule.c:6240:12: note: forward declaration of 'struct if_nameindex'
    struct if_nameindex *ni;
           ^
/path/to/android/cpython/Modules/socketmodule.c:6256:62: error: subscript of pointer to incomplete type 'struct if_nameindex'
                ni[i].if_index, PyUnicode_DecodeFSDefault, ni[i].if_name);
                                                           ~~^
/path/to/android/cpython/Modules/socketmodule.c:6240:12: note: forward declaration of 'struct if_nameindex'
    struct if_nameindex *ni;
           ^
6 warnings and 3 errors generated.

----------
messages: 279495
nosy: xdegaye
priority: normal
severity: normal
stage: needs patch
status: open
title: _socket module cross-compilation error on android-24
type: compile error
versions: Python 3.6, Python 3.7

_______________________________________
Python tracker <report at bugs.python.org>
<http://bugs.python.org/issue28538>
_______________________________________


More information about the New-bugs-announce mailing list