On Wed, Feb 14, 2018 at 3:36 PM, Rob Landley <r...@landley.net> wrote: > I grabbed the current ndk (-r16b), make_standalone_toolchain.py'd an --arch > x86_64 --api 26 toolchain, and then built defconfig toybox with it, and at > link > time it failed to find: > > '__android_log_write' > 'facilitynames' > 'getgrgid_r' > 'iconv' > 'iconv_open' > 'prioritynames' > 'sethostname' > 'stderr' > 'stdin' > 'stdout' > > I've mentioned stdin/stdout/stderr here before. sethostname() is a trivial > syscall wrapper, iconv() and iconv_open() I _know_ bionic has because I > complained about them being implemented in c++, android_log_write() is your > own > function (and the double underscore is confusing)... > > More to the point all of this _compiled_, meaning it's in the headers. And > then > it couldn't find it in the libraries. So there's a consistency issue > somewhere.
i suspect you said "--api 26" but then also tried to build a static binary? in which case you linked against an api 21 libc.a. as i said (somewhere) earlier today, NDK r17 (and later) will have a modern libc.a, but for NDK r16 you'll want to either (a) set --api 21 for static binaries or (b) build a dynamic binary for --api 26. longer term (https://android.googlesource.com/platform/ndk/+/master/docs/Roadmap.md) we want to make standalone toolchains obsolete by just teaching the clang driver everything it needs to know about Android, so hopefully before the end of the year it's just a matter of `CC=ndk-clang make defconfig`. > I can try to fix it up in lib/portability.c...? the __android_log_write thing might need a fix on your side: i suspect you're missing a -l for the NDK liblog? > Rob > _______________________________________________ > Toybox mailing list > Toybox@lists.landley.net > http://lists.landley.net/listinfo.cgi/toybox-landley.net _______________________________________________ Toybox mailing list Toybox@lists.landley.net http://lists.landley.net/listinfo.cgi/toybox-landley.net