Running make check-all on android after cross-compiling to it.

Jeffrey Brusseau bobajeff82 at gmail.com
Sun Sep 21 09:11:29 PDT 2014


It looks like the tests are somehow making clang write to /tmp even though
$TEMP and $TMPDIR are set to
/data/data/com.spartacusrex.spartacuside/files/tmp.
I've checked python's shell and android's system/bin/sh shell and they
reflect the same values. I've also tested clang by itself (on a simple
helloword.c) and it seems to use the correct directory for temp files.

Can anyone help me figure out what's going on?

On Wed, Sep 17, 2014 at 2:30 PM, Jeffrey Brusseau <bobajeff82 at gmail.com>
wrote:

> I'm trying to run the llvm build tests on android after cross-compiling
> with the NDK toolchain on top of my ubuntu-based system. I've run into some
> issues.
>
> First since python is required I needed to install the Python 2.7 fork of
> Py4A (because Python3 doesn't seem to play nice with llvm's python
> scripts). I also needed to install the unittest module as this distribution
> of python doesn't come with it for some reason. I just copied the
> lib/python2.7/unitest folder from my NDK toolchain over to
> /sdcard/com.android.python27/extras/python/. Plus I needed to set the
> environment variables in Terminal IDE's ~/.bashrc so I added:
>
>     source /data/data/com.spartacusrex.spartacuside/files/python27.sh
>
> In ~/python27.sh I have:
>     export PYTHONHOME=/data/data/com.android.python27/files/python
>     export
> PYTHONPATH=/sdcard/com.android.python27/extras/python:/data/data/com.android.python27/files/python/lib/python2.7/lib-dynload:/data/data/com.android.python27/files/python/lib/python2.7
>     export PATH=$PYTHONHOME/bin:$PATH
>     export
> LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/data/com.android.python27/files/python/lib:/data/data/com.android.python27/files/python/lib/python2.7/lib-dynload
>
> I also needed to change the LLVM_SRC_ROOT,  LLVM_OBJ_ROOT and PYTHON
> variables in the llvm/Makefile.config to point to my $HOME directory in
> Terminal IDE (the terminal emulator I'm running the tests in):
>
>     LLVM_SRC_ROOT   := $(call realpath,
> /data/data/com.spartacusrex.spartacuside/files/llvm)
>     LLVM_OBJ_ROOT   := $(call realpath,
> /data/data/com.spartacusrex.spartacuside/files/build)
>     PYTHON     := /data/data/com.android.python27/files/python/bin/python
>
> In addition I needed to change the path to sh in
> llvm/autoconf/mkinstalldirs to the correct location in android.
>
>     #! /system/bin/sh
>
> So that got it to run. But I still ran into a bunch of errors like:
> shell-init: error retrieving current directory: getcwd: cannot access
> parent directories: Permission denied
> error: Could not create file: /tmp/******
>
> The full output of make check all is in the file I attached.
>
> I think I can get it to work if I'm able to make it use a different tmp
> directory as the /tmp/ directory is nonexistent on Android because every
> app is supposed to have it's own tmp directory. Can anyone show me how to
> change the tmp directory llvm uses for these tests?
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20140921/36a34dfb/attachment.html>


More information about the llvm-commits mailing list