[uClibc 0001874]: Problem with i386 syscall gcc-constraints
bugs at busybox.net
bugs at busybox.net
Sat Jan 5 05:55:38 UTC 2008
The following issue has been CLOSED
======================================================================
http://busybox.net/bugs/view.php?id=1874
======================================================================
Reported By: michael_d
Assigned To: uClibc
======================================================================
Project: uClibc
Issue ID: 1874
Category: Architecture Specific
Reproducibility: always
Severity: minor
Priority: normal
Status: closed
Resolution: fixed
Fixed in Version:
======================================================================
Date Submitted: 01-04-2008 06:39 PST
Last Modified: 01-04-2008 21:55 PST
======================================================================
Summary: Problem with i386 syscall gcc-constraints
Description:
On an i386 platform with no rt_sigsuspend syscall (ie: Linux 2.0),
compilation will halt on libc/sysdeps/linux/common/sigsuspend.os with a
cryptic error message:
"Error: non-constant expression in ".if" statement"
I've investigated and found that the cause is that a literal '0' is being
passed into a block of complex assembler macrology that is only prepared
to deal with register names - '%eax', etc.
In turn, that seems to be because of a typo in the GCC register
constraints. The constraints for 2 and 3-argument syscalls includes a "C"
constraint. To gcc, "C" means an SSE floating point constant -- an
unlikely element in a syscall. I suspect the author meant to type "S"
(%esi).
I've attached a patch that changes those "C"s into "S"s, permitting
compilation.
======================================================================
----------------------------------------------------------------------
vapier - 01-04-08 21:55
----------------------------------------------------------------------
thanks, i've applied the patch to svn trunk
Issue History
Date Modified Username Field Change
======================================================================
01-04-08 06:39 michael_d New Issue
01-04-08 06:39 michael_d Status new => assigned
01-04-08 06:39 michael_d Assigned To => uClibc
01-04-08 06:39 michael_d File Added: uClibc-0.9.29-syscall.diff
01-04-08 21:55 vapier Note Added: 0003374
01-04-08 21:55 vapier Status assigned => closed
01-04-08 21:55 vapier Resolution open => fixed
======================================================================
More information about the uClibc-cvs
mailing list