[Toybox] Fun with the android NDK.

Rob Landley rob at landley.net
Thu Sep 6 08:43:23 PDT 2018


On 09/03/2018 11:54 AM, Rob Landley wrote:
>> __android_log_write is in the NDK.
> 
> I'll upgrade the version and try it again.

Ok, installed android-ndk-r18-beta2 with

  build/tools/make_standalone_toolchain.py --arch=x86_64 --api 28 \
    --stl=libc++ --install-dir=$(readlink -f ~/android/x86_64)

then

  LDFLAGS=--static CROSS_COMPILE=~/android/x86_64/bin/llvm- \
    make distclean defconfig

and

 LDFLAGS=--static CROSS_COMPILE=~/android/x86_64/bin/llvm- make

Getconfig still died because

./generated/getconf.h:5:1: error: use of undeclared identifier '_CS_PATH'
_CS_PATH,_CS_V7_ENV
^
./generated/getconf.h:5:10: error: use of undeclared identifier '_CS_V7_ENV'
_CS_PATH,_CS_V7_ENV
         ^
toys/posix/getconf.c:139:9: error: implicit declaration of function 'confstr' is
      invalid in C99 [-Werror,-Wimplicit-function-declaration]
        confstr(confstr_vals[j], toybuf, sizeof(toybuf));

Ok, switch that off and rebuild (I should add a compile-time probe for confstr),
and...

generated/obj/log.o:log.c:function log_main: error: undefined reference to
'__android_log_write'

Your statement that this was in the NDK does not appear to be the case yet. Ok,
switch off CONFIG_LOG and:

lvm-strip: Unknown command line argument '-o'.  Try:
'/home/landley/android/x86_64/bin/llvm-strip -help'
llvm-strip: Did you mean '-O'?

The prefixed llvm-strip doesn't know the "-o" option specifying output file.
Hmmm... well, it isn't in posix-2008, I suppose they have a point. I can cp and
then strip?

$ ls -l toybox
-r-xr-xr-x 1 landley landley 4213840 Sep  5 14:47 toybox
$ ~/android/x86_64/bin/llvm-strip toybox
$ ls -l toybox
-rwxrwxr-x 1 landley landley 4215248 Sep  5 14:50 toybox

Oh bravo, stripping it made it 2k _bigger_. How the...

$ strip toybox
$ ls -l toybox
-rwxrwxr-x 1 landley landley 930944 Sep  5 14:52 toybox

The host one knows how to strip it. And defconfig-ish build is still 930k. With
glibc it's:

$ ls -l toybox
-r-xr-xr-x 1 landley landley 1435128 Sep  5 14:59 toybox

And with musl-libc it's:

$ ls -l toybox
-r-xr-xr-x 1 landley landley 567240 Sep  5 15:02 toybox

So that's sane I suppose...

Rob



More information about the Toybox mailing list