2012年10月10日 星期三

Cross compile LnQ: Building LnQ to ARM executatble in x86 platform

Pre-requests:

  • llvm-gcc-arm:
    • ../configure --prefix=/home/tk/research/llvm-qemu/tool/llvm-gcc-4.2-2.9-arm --program-prefix=llvm- --enable-llvm=/home/tk/research/llvm-qemu/llvm/install/llvm-2.9-official --target=arm-none-linux-gnueabi --with-sysroot=/home/tk/research/llvm-qemu/tool/arm-2012.03/arm-none-linux-gnueabi/libc --enable-languages=c,c++
    • Make sure that /home/tk/research/llvm-qemu/tool/arm-2012.03/bin in PATH
    • DO USE official LLVM 2.9, NOT LnQ's LLVM 2.9.
  • llvm-2.9 x86 version, LnQ's version
    • host and target set to i686-pc-linux-gnu
  • llvm-2.9 ARM version, LnQ's version
    • host and target set to arm-none-linux-gnueabi
  • ARM toolchain
    • download from 
Environment setting:
  • LLVM_ARM=llvm-2.9-arm/bin
  • LLVM=llvm-2.9/bin
  • LLVM_GCC=llvm-gcc-4.2-2.9-arm/bin
  • 在 PATH 設定成 LLVM_ARM 先,LLVM,再 LLVM_GCC,
    • LLVM_ARM 中的 llvm-link 跟 opt 要先設成非執行檔。
    • 理由:我們需要用 $LLVM_ARM/llvm-config 來設定 LD_FLAGS,但我們也需要 $LLVM/llvm-link 跟 $LLVM/opt 這兩個檔。所以這兩個都要在 PATH 上。
LnQ configure:
  • 加入 --cross-prefix='arm-linux-gnueabi-' --cpu=armv7l 
  • configure --target-list=i386-linux-user --prefix=$INSTALL --enable-lnq --disable-strip --cross-prefix='arm-linux-gnueabi-' --cpu=armv7l

沒有留言:

張貼留言