[llvm-dev] Help Building LLVM for Android

Justin Giannone via llvm-dev llvm-dev at lists.llvm.org
Thu Jun 13 14:13:18 PDT 2019


Hey Guys,

Still struggling with this.  Wondering if anyone has any recommendations?

The command I'm using to generate the Ninja Build Files and execute the
build are :

> AndroidSdkDir="$LOCALAPPDATA/Android/Sdk"
> AndroidCmakeExe="$AndroidSdkDir/cmake/3.10.2.4988404/bin/cmake.exe"
> AndroidNinjaExe="$AndroidSdkDir/cmake/3.10.2.4988404/bin/ninja.exe"
> NdkBundle="$AndroidSdkDir/ndk-bundle/"
> ToolchainFile="$NdkBundle/build/cmake/android.toolchain.cmake"
> ArchTargets="armeabi-v7a"
>
> $AndroidCmakeExe \
> -DBUILD_SHARED_LIBS=1 \
> -DLLVM_BUILD_LLVM_DYLIB=1 \
> -DLLVM_BUILD_TOOLS=0 \
> -DLLVM_BUILD_UTILS=0 \
> -DLLVM_INCLUDE_BENCHMARKS=0 \
> -DLLVM_INCLUDE_DOCS=0 \
> -DLLVM_INCLUDE_EXAMPLES=0 \
> -DLLVM_INCLUDE_GO_TESTS=0 \
> -DLLVM_INCLUDE_RUNTIMES=1 \
> -DLLVM_INCLUDE_TESTS=0 \
> -DLLVM_INCLUDE_TOOLS=0 \
> -DLLVM_INCLUDE_UTILS=0 \
> \
> -DLLVM_DEFAULT_TARGET_TRIPLE=armv7a-linux-androideabi \
> -DLLVM_TARGET_ARCH=ARM \
> -DLLVM_TARGETS_TO_BUILD=ARM \
> \
> -DPYTHON_EXECUTABLE="$NdkBundle/prebuilt/windows-x86_64/bin/python2.7.exe"
> \
> -DANDROID_NDK="$NdkBundle" \
> -DANDROID_ABI="$archTarget" \
> \
> -DCMAKE_INSTALL_PREFIX=../../build-android/armeabi-v7a \
> -DCMAKE_CROSSCOMPILING=True \
> -DCMAKE_SYSTEM_NAME=Android \
> -DANDROID_PLATFORM=android-21 \
> -DCMAKE_SYSTEM_VERSION=21 \
> -DCMAKE_ANDROID_NDK="$NdkBundle" \
> -DCMAKE_TOOLCHAIN_FILE="$ToolchainFile" \
> -DCMAKE_MAKE_PROGRAM="$AndroidNinjaExe" \
> -G "Ninja" \
> ../../llvm-8.0.0.src
>
> $AndroidCmakeExe --build .
>

And the full error output from the build is :

> [186/1329] Creating export file for LLVMHello
> FAILED: lib/Transforms/Hello/LLVMHello.exports
> cmd.exe /C "cd /D
> C:\JStash\Projects\llvm\llvm_android_project\armeabi-v7a\lib\Transforms\Hello
> && echo "LLVM_8 {" > LLVMHello.exports && ( grep -q [[:alnum:]]
> C:/JStash/Projects/llvm/llvm-8.0.0.src/lib/Transforms/Hello/Hello.exports
> && echo "  global:" >> LLVMHello.exports || : ) && sed -e s/$/;/ -e "s/^/
>  /" <
> C:/JStash/Projects/llvm/llvm-8.0.0.src/lib/Transforms/Hello/Hello.exports
> >> LLVMHello.exports && echo "  local: *;" >> LLVMHello.exports && echo };
> >> LLVMHello.exports"
> ':' is not recognized as an internal or external command,
> operable program or batch file.
> [195/1329] Configuring NATIVE LLVM...
> FAILED: NATIVE/CMakeCache.txt
> cmd.exe /C "cd /D
> C:\JStash\Projects\llvm\llvm_android_project\armeabi-v7a\NATIVE &&
> C:\Users\jgiannone\AppData\Local\Android\Sdk\cmake\3.10.2.4988404\bin\cmake.exe
> -G Ninja
> -DCMAKE_MAKE_PROGRAM="C:\Users\jgiannone\AppData\Local/Android/Sdk/cmake/3.10.2.4988404/bin/ninja.exe"
> -DCMAKE_C_COMPILER=C:/Users/jgiannone/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe
> -DCMAKE_CXX_COMPILER=C:/Users/jgiannone/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang++.exe
> C:/JStash/Projects/llvm/llvm-8.0.0.src
> -DLLVM_TARGET_IS_CROSSCOMPILE_HOST=TRUE -DLLVM_TARGETS_TO_BUILD="ARM"
> -DLLVM_EXPERIMENTAL_TARGETS_TO_BUILD=""
> -DLLVM_DEFAULT_TARGET_TRIPLE="armv7a-linux-androideabi"
> -DLLVM_TARGET_ARCH="ARM" -DLLVM_TEMPORARILY_ALLOW_OLD_TOOLCHAIN="OFF"
> -DCMAKE_BUILD_TYPE=Release"
> -- The C compiler identification is Clang 8.0.7
> -- The CXX compiler identification is Clang 8.0.7
> -- The ASM compiler identification is Clang
> -- Found assembler:
> C:/Users/jgiannone/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe
> -- Check for working C compiler:
> C:/Users/jgiannone/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe
> -- Check for working C compiler:
> C:/Users/jgiannone/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe
> -- broken
> CMake Error at
> C:/Users/jgiannone/AppData/Local/Android/Sdk/cmake/3.10.2.4988404/share/cmake-3.10/Modules/CMakeTestCCompiler.cmake:52
> (message):
>   The C compiler
>
>
> "C:/Users/jgiannone/AppData/Local/Android/Sdk/ndk-bundle/toolchains/llvm/prebuilt/windows-x86_64/bin/clang.exe"
>
>   is not able to compile a simple test program.
>
>   It fails with the following output:
>
>     Change Dir:
> C:/JStash/Projects/llvm/llvm_android_project/armeabi-v7a/NATIVE/CMakeFiles/CMakeTmp
>
>     Run Build
> Command:"C:\Users\jgiannone\AppData\Local/Android/Sdk/cmake/3.10.2.4988404/bin/ninja.exe"
> "cmTC_43bcf"
>     [1/2] Building C object CMakeFiles/cmTC_43bcf.dir/testCCompiler.c.obj
>     [2/2] Linking C executable cmTC_43bcf.exe
>     FAILED: cmTC_43bcf.exe
>     cmd.exe /C "cd . &&
> C:\Users\jgiannone\AppData\Local\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe
>    CMakeFiles/cmTC_43bcf.dir/testCCompiler.c.obj  -o cmTC_43bcf.exe
> -Wl,--out-implib,libcmTC_43bcf.dll.a
> -Wl,--major-image-version,0,--minor-image-version,0  -lkernel32 -luser32
> -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32
> -ladvapi32 && cd ."
>     clang: error: unable to execute command: program not executable
>     clang: error: linker command failed with exit code 1 (use -v to see
> invocation)
>     ninja: build stopped: subcommand failed.
>
>
>
>
>   CMake will not be able to correctly generate this project.
> Call Stack (most recent call first):
>   CMakeLists.txt:39 (project)
>
>
> -- Configuring incomplete, errors occurred!
> See also
> "C:/JStash/Projects/llvm/llvm_android_project/armeabi-v7a/NATIVE/CMakeFiles/CMakeOutput.log".
> See also
> "C:/JStash/Projects/llvm/llvm_android_project/armeabi-v7a/NATIVE/CMakeFiles/CMakeError.log".
> ninja: build stopped: subcommand failed.
>

I'm kinda stumped as to what's going on...

On Sat, Jun 8, 2019 at 11:59 AM Justin Giannone <jman.giannone at gmail.com>
wrote:

> Hey Guys,
>
> I'm working on a project in Android related to System-level Audio DSP
> Effects for Tuning Android Audio.  I want to leverage Faust (
> https://faust.grame.fr/) to allow users to program their own filters.
> Faust provides a libfaust implementation which includes a JIT Compiler
> which leverages LLVM and seems to be the best path for me to use.
> Unfortunately I'm having problems cross-compiling LLVM for Android on my
> Windows Dev machine.  Wondering if anyone has any advice for me?
>
> I've been trying to use the android-ndk cmake & toolchains to build LLVM
> so that I can cross-compile Faust against the Android LLVM build.  I've
> managed to get Android's cmake to generate an Android Gradle Ninja project,
> but when I try to build it I get lots of errors that seem to indicate that
> the Ninja project is invalid, such as the following errors :
>
> FAILED: cmTC_4a28c.exe
>>
>>   cmd.exe /C "cd .  &&
>>
>> C:\Users\jgiannone\AppData\Local\Android\Sdk\ndk-bundle\toolchains\llvm\prebuilt\windows-x86_64\bin\clang.exe
>>   CMakeFiles/cmTC_4a28c.dir/testCCompiler.c.obj -o cmTC_4a28c.exe
>>   -Wl,--out-implib,libcmTC_4a28c.dll.a
>>   -Wl,--major-image-version,0,--minor-image-version,0 -lkernel32 -luser32
>>   -lgdi32 -lwinspool -lshell32 -lole32 -loleaut32 -luuid -lcomdlg32
>>   -ladvapi32 && cd ."
>>
>>   clang: error: unable to execute command: program not executable
>>
>>   clang: error: linker command failed with exit code 1 (use -v to see
>>   invocation)
>>
>>   ninja: build stopped: subcommand failed.
>>
>
> Thanks!
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190613/e3281e4a/attachment.html>


More information about the llvm-dev mailing list