GNOME Bugzilla – Bug 790753
Update to Android NDK r16
Last modified: 2018-03-02 08:36:14 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
android-ndk-r16 is now out!
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.
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.
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
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