[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

gcc in potato



I am not sure where to complain about this...it probably isn't Debian's
problem, it is probably the new gcc.  The newest gcc in potato:

gcc version 2.95.2 19990906 (prerelease)

Seems to be pretty damn buggy.  There is a great store of code I have that
compiled under the last one I used:

gcc version egcs-2.91.66 Debian GNU/Linux (egcs-1.1.2 release)

That won't compile under the new one.  For instance, this assembly
function won't compile under 2.95.2, but is fine under 2.91.66:

/*  Read the pentium Time Stamp Counter register  */
unsigned long long read_TSC()
{
    static union {
        unsigned long dw[2];
        unsigned long long counter;
    } tc;

    __asm__ __volatile__ (
        ".byte 0x0f, 0x31\n"
        :"d=" (tc.dw[1]), "a=" (tc.dw[0]):
        :"%eax", "%edx"
    );

    return tc.counter;
}

And I get this error:

arch.c: In function `read_TSC':
arch.c:30: warning: output constraint `=' for operand 0 is not at the
beginning
arch.c:30: warning: output constraint `=' for operand 1 is not at the
beginning
arch.c:30: Invalid `asm' statement:
arch.c:30: fixed or forbidden register 0 (ax) was spilled for class AREG.
make: *** [arch.o] Error 1

Should I just give up and use the gcc272 package?


Reply to: