This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
| Other format: | [Raw text] | |
Compiling current glibc with GCC 4.3 and binutils from CVS, we're seeing
the following error on x86 systems:
pthread_rwlock_trywrlock.c: Assembler messages:
pthread_rwlock_trywrlock.c:45: Error: bad register name `%dil'
The problem is that private a QImode memory is and 'g' does not work for
char, so we need to promote it.
Ok to commit the appended patch?
Andreas
2008-09-08 Richard Guenther <rguenther@suse.de>
* nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h (lll_lock,
lll_robust_lock, lll_cond_lock, lll_robust_cond_lock,
lll_timedlock, lll_robust_timedlock, lll_unlock,
lll_robust_unlock): Promote private to int.
--- nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h.orig 2008-09-08 13:31:23.000000000 +0200
+++ nptl/sysdeps/unix/sysv/linux/i386/lowlevellock.h 2008-09-08 13:36:57.000000000 +0200
@@ -323,7 +323,7 @@
"=m" (futex), "=&d" (ignore3) \
: "1" (1), "m" (futex), \
"i" (MULTIPLE_THREADS_OFFSET), "0" (0), \
- "g" (private) \
+ "g" ((int)(private)) \
: "memory"); \
} \
})
@@ -345,7 +345,7 @@
"18:" \
: "=a" (result), "=c" (ignore1), "=m" (futex), \
"=&d" (ignore2) \
- : "0" (0), "1" (id), "m" (futex), "g" (private) \
+ : "0" (0), "1" (id), "m" (futex), "g" ((int)(private)) \
: "memory"); \
result; })
@@ -370,7 +370,7 @@
"18:" \
: "=a" (ignore1), "=c" (ignore2), "=m" (futex), \
"=&d" (ignore3) \
- : "0" (0), "1" (2), "m" (futex), "g" (private) \
+ : "0" (0), "1" (2), "m" (futex), "g" ((int)(private))\
: "memory"); \
})
@@ -393,7 +393,7 @@
: "=a" (result), "=c" (ignore1), "=m" (futex), \
"=&d" (ignore2) \
: "0" (0), "1" (id | FUTEX_WAITERS), "m" (futex), \
- "g" (private) \
+ "g" ((int)(private)) \
: "memory"); \
result; })
@@ -416,7 +416,7 @@
: "=a" (result), "=c" (ignore1), "=&d" (ignore2), \
"=m" (futex), "=S" (ignore3) \
: "0" (0), "1" (1), "m" (futex), "m" (timeout), \
- "4" (private) \
+ "4" ((int)(private)) \
: "memory"); \
result; })
@@ -439,7 +439,7 @@
: "=a" (result), "=c" (ignore1), "=&d" (ignore2), \
"=m" (futex), "=S" (ignore3) \
: "0" (0), "1" (id), "m" (futex), "m" (timeout), \
- "4" (private) \
+ "4" ((int)(private)) \
: "memory"); \
result; })
@@ -489,7 +489,7 @@
"18:" \
: "=m" (futex), "=&a" (ignore), "=&c" (ignore2) \
: "i" (MULTIPLE_THREADS_OFFSET), "m" (futex), \
- "g" (private) \
+ "g" ((int)(private)) \
: "memory"); \
} \
})
@@ -511,7 +511,8 @@
LLL_STUB_UNWIND_INFO_4 \
"18:" \
: "=m" (futex), "=&a" (ignore), "=&c" (ignore2) \
- : "i" (FUTEX_WAITERS), "m" (futex), "g" (private) \
+ : "i" (FUTEX_WAITERS), "m" (futex), \
+ "g" ((int)(private)) \
: "memory"); \
})
--
Andreas Jaeger, Director Platform / openSUSE, aj@suse.de
SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg)
Maxfeldstr. 5, 90409 Nürnberg, Germany
GPG fingerprint = 93A3 365E CE47 B889 DF7F FED1 389A 563C C272 A126
Attachment:
pgp00000.pgp
Description: PGP signature
| Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
|---|---|---|
| Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |