I'm having a similar but a bit different problem:
I'm testing an AT91SAM9G45-EKES board.
On my x86_64 machine i've compiled the gnu toolchain for cross compiling, and seems to work fine, because i've created working kernel modules, running fine in the board.
Now i'm trying to compile a simple program for reading data from a device, which basically uses fopen/fread/fclose functions.
Code:
make read-device
/home/mamonetti/proyectos/atmelArm9/gnutoolchain/gnu-arm-installer/install/bin/arm-elf-gcc -mcpu=arm926ej-s -mfloat-abi=soft -o readDevice readDevice.o
/home/mamonetti/proyectos/atmelArm9/gnutoolchain/gnu-arm-installer/install/lib/gcc/arm-elf/4.3.2/arm-elf/bin/ld: ERROR: readDevice.o uses VFP instructions, whereas readDevice does not
/home/mamonetti/proyectos/atmelArm9/gnutoolchain/gnu-arm-installer/install/lib/gcc/arm-elf/4.3.2/arm-elf/bin/ld: failed to merge target specific data of file readDevice.o
collect2: ld devolvió el estado de salida 1
make: *** [read-device] Error 1
There is some problem related to fpu, which is really strange, considering i'm forcing it to use the soft one for both compiling and linking. If i try with -mfpu=fpa it compiles, but i get an "Illegal instruction" at runtime.
Any idea?
Regards