Hi
I am trying to cross compile llvm-gcc front for ARM target
Followed below steps
#…/llvm-gcc-4.2-2.9.source/configure --program-prefix=llvm- --enable-llvm=/home/yuvraj/llvm/llvm-2.9 --enable-languages=c,c++ --target=arm-none-linux-gnueabi
make
I am getting some kind of linker errors
/opt/arm-2010.09/bin/arm-none-linux-gnueabi-ld: cannot find crtn.o: No such file or directory
@ final stage.
I copied crtn.o to current working directory. But getting same issue
How do i resolve this issue?
Thanks
Yuvi R
Hi Yuvi,
crt{i,n,begin,end,0,1}.o are runtime objects that are OS-dependent. Are you compiling for baremetal or arm-linux?
If baremetal, you’d need to put your core startup code in crt1.o, and create stub objects for the rest so the linker doesn’t complain (touch test.c; clang –march=armv7 –c –o test.o test.c; cp test.o crt{i,n,begin,end}.o).
Cheers,
James
Here is how I do it on x86-64 machine running Ubuntu-11.04:
- install flex and bison
- download arm-2011.03 from www.codesourcery.com and add to path (setenv PATH ${PATH}:/home/dskhudia/projects/arm-2011.03/bin)
- mkdir llvm-gcc-obj; cd llvm-gcc-obj
- …/llvm-gcc-4.2-2.9.source/configure --target=arm-none-linux-gnueabi --program-prefix=llvm- --enable-llvm=/home/dskhudia/projects/llvm-2.9/obj-arm --prefix=/home/dskhudia/projects/llvm-install-arm --with-sysroot=/home/dskhudia/projects/arm-2011.03/arm-none-linux-gnueabi/libc --with-gnu-ld=/home/dskhudia/projects/arm-2011.03/bin/arm-none-linux-gnueabi-ld --with-gnu-as=/home/dskhudia/projects/arm-2011.03/bin/arm-none-linux-gnueabi-as --with-gnu-ar=/home/dskhudia/projects/arm-2011.03/bin/arm-none-linux-gnueabi-ar --disable-bootstrap -disable-optimized --disable-multilib --enable-checking --disable-shared --enable-languages=c,c++
Hope that helps.
Daya
Thanks for your reply
I got error
/bin/sh: build/genmodes: not found
I am trying to resolve it
Thanks
Yuvi R