Compilation of syscall.c fails on ARM device

Rob Landley rob at landley.net
Sun Sep 6 04:15:37 UTC 2009


On Tuesday 18 August 2009 17:42:36 Khem Raj wrote:
> > This is the error I'm getting:
> >
> > libc/sysdeps/linux/common/syscall.c: In function 'syscall':
> > libc/sysdeps/linux/common/syscall.c:11: warning: asm operand 1
> > probably doesn't match constraints
> > libc/sysdeps/linux/common/syscall.c:11: error: impossible constraint in
> > 'asm' make: *** [libc/sysdeps/linux/common/syscall.os] Error 1

Yeah, I hit this too, but I was trying to track down the problem that broke 
_all_ architectures before worrying about problems that break just one.

> > Any idea what is causing the compile error?

According to the bisect I did, git b1913a8760599 is causing it.  If you revert 
that, it builds again.

> > If you need any more information regarding this issue, please let me
> > know.
>
> you seem to be using Old ABI. In this case it is broken because in old
> ABI syscall number was passed in as a constant argument to SWI
> syscall function now passes the constant in a register which does not
> work and spits the error what you see.

I.E. a regression.

> This should work ok for EABI case because there the syscall number is
> passed in R0.

> If we need to revive OABI then we might have to find a way to make it
> work, right now mostly people use EABI and there it should work ok.
>
> Is it possible for you to switch to EABI ?

I have a Tin Can Tools Nail/Hammer board based on the Samsung S3C2410A, which 
is an arm920T (v4l) processor.  As far as I know, uClibc has never supported 
armv4 EABI.  Those chips are still being manufactured because they're cheap 
and low power...

Rob
-- 
Latency is more important than throughput. It's that simple. - Linus Torvalds


More information about the uClibc mailing list