This is the mail archive of the
libc-hacker@sourceware.cygnus.com
mailing list for the glibc project.
Re: egcs-19981005 on i586-linux-gnu + glibc-2.0.96
- To: Horst von Brand <vonbrand@sleipnir.valparaiso.cl>
- Subject: Re: egcs-19981005 on i586-linux-gnu + glibc-2.0.96
- From: Zack Weinberg <zack@rabi.columbia.edu>
- Date: Wed, 07 Oct 1998 02:02:39 -0400
- cc: egcs@cygnus.com, libc-alpha@cygnus.com
On Tue, 06 Oct 1998 22:32:54 -0500, Horst von Brand wrote:
>The build of egcs crashes after the third stage, when building libiberty:
>
> /usr/src/build/build-egcs-19981005/gcc/xgcc -B/usr/src/build/build-egcs-1998
>1005/gcc/ -c -DHAVE_CONFIG_H -O2 -fomit-frame-pointer -march=pentium -I. -I../
>../../egcs-19981005/libiberty/../include -fpic ../../../egcs-19981005/libiber
>ty/floatformat.c -o pic/floatformat.o
>/usr/include/bits/mathinline.h: In function `floatformat_to_double':
>/usr/include/bits/mathinline.h:495: `asm' operand requires impossible reload
This is an improvement over previous snapshots, which would silently
generate incorrect code from mathinline.h.
The offending function is:
extern inline double ldexp (double x, int y)
{
register long double v;
asm volatile ("fscale" : "=t" (v) : "0" (x), "u" ((long double) y));
return v;
}
I bet it won't have any trouble compiling this snippet by itself, but will
puke when it's inlined. (Take out "extern inline" to try compiling it by
itself.)
libc people: Anyone know why there are volatile qualifiers on the
mathinline.h asms?
zw