This is the mail archive of the
gcc-help@gcc.gnu.org
mailing list for the GCC project.
Re: problems while cross-compiling the glibc
- From: michel van der breggen <breggen at hotmail dot com>
- To: gcc-help at gcc dot gnu dot org
- Date: Thu, 6 Jan 2011 12:45:00 +0000 (UTC)
- Subject: Re: problems while cross-compiling the glibc
- References: <01ea01c2e3b8$aff26060$4fc809c0@weiminghu>
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