[PATCH] i386: Fix GCC running out of registers for bits/string.h
Maciej W. Rozycki
macro@linux-mips.org
Tue Jun 14 18:02:00 GMT 2005
On Tue, 14 Jun 2005, Denis Vlasenko wrote:
> Please see updated testcase. Unfortunately I can't make it fail,
> but one peculiarity is already noted. See comments.
Have you tried plugging your code into sysdeps/i386/bits/string.h and
rebuilding glibc using the configuration options I have used? And note
that's a user-visible header, ultimately installed as <bits/string.h>, so
it's not enough to make it good enough for glibc itself.
> > The problem is %ebx is fixed for PIC, so this is a no-no, I'm afraid.
>
> Huh I didn't khow that. Fixed.
Well, I mentioned it explicitly in the original report.
> How do you like this style?
OK, but I'll stick with mine for my code. ;-)
> with "r" (__reject) constraint:
> no -fPIC: REJECT = edx
> -fPIC: does not compile (not enough free regs)
> with "g" (__reject):
> no -fPIC: REJECT = stack slot! (instead of using a reg like "r" case)
> -fPIC: REJECT = stack slot
> REG is ebx or ebp, depending on PICness.
But %ebp is fixed for the frame pointer due to alloca()! It can't be
used here. Are you sure it is?
Maciej
More information about the Libc-alpha
mailing list