Running make check-all on android after cross-compiling to it.
Jonathan Roelofs
jonathan at codesourcery.com
Thu Sep 25 09:20:03 PDT 2014
Are the tests using mktemp/mkstemp?
Jon
On 9/25/14 10:11 AM, Jeffrey Brusseau wrote:
> Scratch the part where is quoted command used to test the error. I exported
> TMPDIR not TMP and It was the bash script I ran afterwards not the make command.
> So it was:
>
> export TMPDIR=/FOO
>
> ./run.bash
>
>
> On Thu, Sep 25, 2014 at 11:06 AM, Jeffrey Brusseau <bobajeff82 at gmail.com
> <mailto:bobajeff82 at gmail.com>> wrote:
>
> Ran another test this time I ran the first test manually in bash via a
> script I made:
>
> This is the run.bash file:
>
> /data/data/com.spartacusrex.spartacuside/files/build/Release+Asserts/bin/clang
> -cc1 -internal-isystem
> /data/data/com.spartacusrex.spartacuside/files/build/Release+Asserts/bin/../lib/clang/3.6.0/include
> -objcmt-migrate-designated-init -objcmt-migrate-readwrite-property
> -objcmt-migrate-instancetype -x objective-c
> /data/data/com.spartacusrex.spartacuside/files/llvm/tools/clang/test/ARCMT/designated-init-in-header/file1.m.in
> <http://file1.m.in> -triple x86_64-apple-darwin11 -fobjc-arc -migrate -o
> /data/data/com.spartacusrex.spartacuside/files/build/tools/clang/test/ARCMT/designated-init-in-header/Output/designated-init-in-header.m.tmp1.remap
> /data/data/com.spartacusrex.spartacuside/files/build/Release+Asserts/bin/clang
> -cc1 -internal-isystem
> /data/data/com.spartacusrex.spartacuside/files/build/Release+Asserts/bin/../lib/clang/3.6.0/include
> -objcmt-migrate-designated-init -objcmt-migrate-readwrite-property
> -objcmt-migrate-instancetype -x objective-c
> /data/data/com.spartacusrex.spartacuside/files/llvm/tools/clang/test/ARCMT/designated-init-in-header/file2.m.in
> <http://file2.m.in> -triple x86_64-apple-darwin11 -fobjc-arc -migrate -o
> /data/data/com.spartacusrex.spartacuside/files/build/tools/clang/test/ARCMT/designated-init-in-header/Output/designated-init-in-header.m.tmp2.remap
> /data/data/com.spartacusrex.spartacuside/files/build/Release+Asserts/bin/c-arcmt-test
> /data/data/com.spartacusrex.spartacuside/files/build/tools/clang/test/ARCMT/designated-init-in-header/Output/designated-init-in-header.m.tmp1.remap
> /data/data/com.spartacusrex.spartacuside/files/build/tools/clang/test/ARCMT/designated-init-in-header/Output/designated-init-in-header.m.tmp2.remap
> |
> /data/data/com.spartacusrex.spartacuside/files/build/Release+Asserts/bin/arcmt-test
> -verify-transformed-files
> /data/data/com.spartacusrex.spartacuside/files/llvm/tools/clang/test/ARCMT/designated-init-in-header/header1.h.result
> /data/data/com.spartacusrex.spartacuside/files/llvm/tools/clang/test/ARCMT/designated-init-in-header/file2.m.in.result
>
>
> It ran perfectly after exporting the LD_LIBRARY_PATH to libclang:
>
> export
> LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/data/data/com.spartacusrex.spartacuside/files/build/Release+Asserts
>
>
> So then I tried to recreate the error by changing the $TMPDIR environment
> variable and lo and behold it's the exact error you get from the same test.
>
> export TMP=/FOO
>
> make ENABLE_OPTIMIZED=1 check-all
>
>
> output
>
> Error by clang_getRemappingsFromFileList
>
> Could not create file: /FOO/heaader1.h-30ac2..h
> Could not create file: /FOO/file2.m.in-2c5017.in
> <http://file2.m.in-2c5017.in>
> error: no files to verify from stdin
>
>
>
> So it appears that however clang is actually being run in the test it's not
> using the correct environment or the variable is being overruled by
> something in the test.
>
>
> On Sun, Sep 21, 2014 at 11:11 AM, Jeffrey Brusseau <bobajeff82 at gmail.com
> <mailto:bobajeff82 at gmail.com>> wrote:
>
> 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
> <mailto: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?
>
>
>
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>
--
Jon Roelofs
jonathan at codesourcery.com
CodeSourcery / Mentor Embedded
More information about the llvm-commits
mailing list