We have developed and tested an optimization pass using LLVM, and have been able to build other software such as gzip while running our pass by passing "clang" and "-Xclang -load -Xclang <path to .so>" as configure options. Now we would like to try and build android while running our pass only on certain files. It seems that android has its own version of LLVM built into it, and we haven't been successful with the aforementioned parameters working in the android makefiles. Does anyone know what is necessary to get the android version of LLVM to run our pass?
Thanks,
Josh
_______________________________________________
LLVM Developers mailing list
LLV...@cs.uiuc.edu http://llvm.cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Tom,
Thanks for the reply.
I have tried the following options in Android.mk
LOCAL_CLANG := true
LOCAL_CFLAGS := -Xclang -load -Xclang /home/josh/llvm.tan/lib/LLVMHello.so (I'm using this pass just to see if it will run through)
The error I get when tying to compile is as follows:
target thumb C++: keystore <= system/security/keystore/keystore.cpp
target thumb C++: keystore <= system/security/keystore/keyblob_utils.cpp
error: unable to load plugin '/home/josh/llvm.tan/lib/LLVMHello.so': '/home/josh/llvm.tan/lib/LLVMHello.so: undefined symbol: _ZNK4llvm4Pass11getPassNameEv'
make: *** [out/target/product/nitrogen6x/obj/EXECUTABLES/keystore_intermediates/keystore.o] Error 1
make: *** Waiting for unfinished jobs....
error: unable to load plugin '/home/josh/llvm.tan/lib/LLVMHello.so': '/home/josh/llvm.tan/lib/LLVMHello.so: undefined symbol: _ZNK4llvm4Pass11getPassNameEv'
make: *** [out/target/product/nitrogen6x/obj/EXECUTABLES/keystore_intermediates/keyblob_utils.o] Error 1
I'm assuming this error message is related to some kind of linker problem, but I am not sure why, considering this pass does nothing more than print out function names to the terminal. If I run the compile with out the CFLAGS, it works fine.