This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/1211] New: Fix GCC running out of registers for bits/string.h
- From: "macro at linux-mips dot org" <sourceware-bugzilla at sources dot redhat dot com>
- To: glibc-bugs at sources dot redhat dot com
- Date: 19 Aug 2005 14:28:58 -0000
- Subject: [Bug libc/1211] New: Fix GCC running out of registers for bits/string.h
- Reply-to: sourceware-bugzilla at sources dot redhat dot com
This problem has originally been reported at:
"http://sourceware.org/ml/libc-alpha/2005-06/msg00026.html". The final
fix is available at:
"http://sourceware.org/ml/libc-alpha/2005-08/msg00029.html". I'm filing this
bug report so that the problem and the fix do not get lost and the issue is
eventually resolved.
When the "--enable-omitfp" "configure" option is used a couple of functions
in "sysdeps/i386/bits/string.h" request more registers than available for
inline assembly used within. This happens if alloca() makes the frame
pointer register unavailable. A special memory constraint used prevents
implicit use of memory alternatives. This results in an error: "can't find
a register in class 'GENERAL_REGS'". See GCC bug #22045 for a detailed
analysis. Here is a fix, tested with no regressions.
2005-08-19 Maciej W. Rozycki <macro@linux-mips.org>
* sysdeps/i386/bits/string.h (strcspn): Lower the register
pressure for the asm.
(strspn): Likewise.
(strpbrk): Likewise.
(strstr): Likewise.
* sysdeps/i386/bits/string.h: Remove the "register" keyword
throughout.
This applies both to HEAD and 2.3.
--
Summary: Fix GCC running out of registers for bits/string.h
Product: glibc
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: libc
AssignedTo: gotom at debian dot or dot jp
ReportedBy: macro at linux-mips dot org
CC: glibc-bugs at sources dot redhat dot com
GCC host triplet: i386-linux-gnu
http://sources.redhat.com/bugzilla/show_bug.cgi?id=1211
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.