Error: bad instruction `sync' while corss compiling uboot source with tsec.c driver
I am trying to compile tsec.c file with the uboot source. I have done that before but with powerpc toolchain. Right now I am trying to use ARM toolchain which comes with android "froyo". Without tsec.c included, uboot compiles fine but when I include this driver, I get following error :-
//toolchain/arm-marvell-linux-gnueabi/bin/arm-marvell-linux-gnueabi-gcc -g -Os -fno-strict-aliasing -fno-common -ffixed-r8 -msoft-float -D_KERNEL_ -DTEXT_BASE=0x0F00000 -I/uboot_sapphire/include -fno-builtin -ffreestanding -nostdinc -isystem /home/Build/Android_Froyo/vendor/marvell/generic/toolchain/arm-marvell-linux-gnueabi/bin/../lib/gcc/arm-marvell-linux-gnueabi/4.2.0/include -pipe -DCONFIG_ARM -D_ARM_ -march=armv5te -mabi=apcs-gnu -Wall -Wstrict-prototypes -fno-stack-protector -c -o drivers/net/tsec.o drivers/net/tsec.c
{standard input}: Assembler messages:
{standard input}:31: Error: bad instruction `sync'
{standard input}:73: Error: bad instruction `sync'
{standard input}:79: Error: bad instruction `sync'
{standard input}:402: Error: ba开发者_StackOverflow中文版d instruction `sync'
{standard input}:2278: Error: bad instruction `sync'
{standard input}:2286: Error: bad instruction `sync'
{standard input}:2293: Error: bad instruction `sync'
Can someone help me understanding this error. I tried googling but it dint helped me much.
I have no idea where you got your tsec.c from so I can't see the source. My best guess is that it has some architecture specific (MIPS) inline assembly.
You'll probably find asm("sync") somewhere in the code.
The error occurs because `sync' is not an arm instruction, so the assembler cannot recognise and assemble it.
To fix the error you will have to port the driver to ARM, which will probably not be a trivial task.
精彩评论