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