problems while cross-compiling the glibc
michel van der breggen
breggen@hotmail.com
Thu Jan 6 12:50:00 GMT 2011
Chen Ken <chenken <at> mprc.pku.edu.cn> writes:
>
> Hello, everyone:
>
> I am cross compiling the glibc for arm-linux on my x86 machine.
> I used the binutils-2.13.1, gcc-3.2.1, glibc-2.3.1, and I use the
> head files from linux-2.4.17. I copied from it the include/asm-arm
> to my ${prefix}/arm-linux/include/asm and the include/linux to
> ${prefix}/arm-linux/include/linux directory.
> When I compiled the glibc, the machine reported that
>
> ../sysdeps/unix/syscall.S: Assembler messages:
> ../sysdeps/unix/syscall.S:28: Error: cannot represent SWI relocation in this
> object file format
>
> I got to know from the internet that somebody had got the same error
> in the past. But his reason was that he use the asm-sparc64 as his asm.
> When he used the correct asm-arm directory, it was ok. But I do not know
> what is the matter with my compiling process. Please give me some advice
> if you can.
>
> Sincerely,
> Chen Ken
> Microprocessor Research & Development Center, Peking University
> Tel: +86(010)62765828 ext. 872
> chenken <at> mprc.pku.edu.cn
>
>
Hi Chen,
i presume it is a bit late, but for all other people that are googling for a
solutions. The problem is in the unistd.h in your include/asm directory. It
undefines a few contants including __NR_syscall which is called in this file.
SWI can only take constants, but since __NR_syscall is not defined it takes an
error or null. remove the undefs from the unistd.h and it should compile.
with regards,
Michel van der Breggen
More information about the Gcc-help
mailing list