Error compiling glibc-2.3.1 with gcc-20030310 snapshot.
Philip Blundell
philb@gnu.org
Mon Mar 24 13:25:00 GMT 2003
On Mon, 2003-03-24 at 11:35, Tamás Gergely wrote:
> (1) Is that something wrong in glibc, or gcc is too strict reporting an
> error here?
> Assuming that gcc is correct:
> (2) Can this conflict be corrected by rewriting the INLINE_SYSCALL macro,
> (or some other macros that are used by INLINE_SYSCALL)?
> (3) Would You mind giving me some tips on how to try to avoid this conflict?
It's a bug in glibc. "a1" should not be in the clobber list, since it's
also mentioned as an output operand.
p.
2003-03-24 Philip Blundell <philb@gnu.org>
* sysdeps/unix/sysv/linux/arm/sysdep.h (INTERNAL_SYSCALL):
Remove a1 from clobber list.
Index: sysdeps/unix/sysv/linux/arm/sysdep.h
===================================================================
RCS file: /cvs/glibc/libc/sysdeps/unix/sysv/linux/arm/sysdep.h,v
retrieving revision 1.22
diff -u -r1.22 sysdep.h
--- sysdeps/unix/sysv/linux/arm/sysdep.h 23 Mar 2003 19:42:22 -0000 1.22
+++ sysdeps/unix/sysv/linux/arm/sysdep.h 24 Mar 2003 13:23:16 -0000
@@ -174,7 +174,7 @@
asm volatile ("swi %1 @ syscall " #name \
: "=r" (_a1) \
: "i" (SYS_ify(name)) ASM_ARGS_##nr \
- : "a1", "memory"); \
+ : "memory"); \
_sys_result = _a1; \
} \
(int) _sys_result; })
More information about the Libc-alpha
mailing list