After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 790753 - Update to Android NDK r16
Update to Android NDK r16
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: cerbero
unspecified
Other Linux
: Normal normal
: 1.13.90
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2017-11-23 08:30 UTC by Sebastian Dröge (slomo)
Modified: 2018-03-02 08:36 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
plugins: don't force 64-bit file seek functions (4.33 KB, patch)
2018-02-21 04:28 UTC, Matthew Waters (ystreet00)
committed Details | Review

Description Sebastian Dröge (slomo) 2017-11-23 08:30:21 UTC
This version also dropped support for Android 2.3 and IIRC the minimum version is 4.0. So we can update some things in cerbero related to that too.

Should probably be done in combination with https://bugzilla.gnome.org/show_bug.cgi?id=759737
Comment 1 Matthew Waters (ystreet00) 2017-11-29 05:19:29 UTC
android-ndk-r16 is now out!
Comment 2 Matthew Waters (ystreet00) 2018-02-21 04:25:58 UTC
I have a branch available from https://github.com/ystreet/cerbero/commits/ndk16 that updates to NDK r16.

The NDK has moved to unified headers which means updating sysroot/isysroot/isystem flags to follow the new directory layout.  It also means that some functions weren't actually available until much later API versions than we were compiling against and some things autotools doesn't quite detect properly like mmap() usage with gcc in lower API versions.

The only really contentious issue is the broken c++ compilation with gcc in the NDK where I couldn't find a set of CXXFLAGS that would allow gcc to find it's own crtbegin_so.o and crtend_so.o so there is a workaround in place for all the c++ modules to fix this.

libav still fails to link into a GStreamer app but that existed before this branch.  NDK bug is at https://github.com/android-ndk/ndk/issues/337

This doesn't move to clang yet although that is going to be a requirement soon.
Comment 3 Matthew Waters (ystreet00) 2018-02-21 04:28:24 UTC
Created attachment 368687 [details] [review]
plugins: don't force 64-bit file seek functions

The unified headers take care of choosing the correct function based on _FILE_OFFSET_BITS and the architecture chosen.
Comment 4 Olivier Crête 2018-02-22 22:54:31 UTC
In the libiconv patch, you left some commented out patches.

Not very happy with the C++ hack, but I guess we can live with it until someone figures out how to fix it.

Should at least merge all of the version updates even if you want to wait for the clang patches to actually change NDK versions
Comment 5 Matthew Waters (ystreet00) 2018-03-02 08:35:57 UTC
commit 5a5a548b0918390d0c8cf9dfc3d61e19eb829073
Author: Matthew Waters <matthew@centricular.com>
Date:   Tue Feb 13 22:20:18 2018 +1100

    plugins: Don't force 64-bit file/seek functions variants on android
    
    Most functions are automatically chosen from the _FILE_OFFSET_BITS
    define, the remaining one (fstat) is only available on API >= 21 so
    check for that