Re: [PORTS] RedHat6.0 & Alpha - Mailing list pgsql-ports

From Uncle George
Subject Re: [PORTS] RedHat6.0 & Alpha
Date
Msg-id 378D2DBC.E078737A@voicenet.com
Whole thread Raw
In response to Re: [PORTS] RedHat6.0 & Alpha  (Bruce Momjian <maillist@candle.pha.pa.us>)
Responses Re: [PORTS] RedHat6.0 & Alpha
List pgsql-ports
Well, a reply, anyway

1) reltime & abstime values are stored in the DB as 4 byte values. The
definitions for abstime&reltime are also stored in the DB ( this from empiracle
debugging ) .  If you do not plan to embrace the  notion of #of seconds >
2^(32-1), and you dont want to alter the DB notion that storage is 4 bytes then

    typedef int32 Absolutetime;
    typedef int32 Relativetime;

    would appear to be most preferable & more stable (majic #'s work ) than

    typedef time_t    Absolutetime;
    typedef time_t    Relativetime;

    This is not a complete solution , as there are still some sign extension
problems as demonstratable by the regression tests.
    If you want to use 64bit Absolutetime & reltimes, then you should adjust (
or make more abstract ) the concept of abstime&reltime. BUT
THIS IS NOT A PORTING ISSUE! I would just like to get the abstime*reltime to
behave much like the 32bit folks.

2) Can u add HAS_LONG_LONG to $(CFLAGS)
    I dont have long long, but it turns on  some code ( somewhere ) that fixes
another problem.

3) -mieee informs the egcs compiler fot the alpha to inject 'trapb'
instructions at various places in a floating point computation. The trapb is a
pipeline stall forcing the processor to stop issueing instructions until all
current instructions in the pipeline have executed. This is done to capture a
possible 'fault' at a resomable time so you can backtrack to the instruction
that faulted  and take some corrective measure.  There are also rules for
backtracing, and repairing. The usage of -mieee inserted these trapb's all over
the place. The current egcs compiler appears to do a better job at it For
purely int operations, then a module need not be enhanced by the -mieee switch.

4) I'd give u some patches, but still getting the regression tests to work.
Where do I get 6.5.1, so I can work with that as a base

5) What is the floating point rounding set to ( up/down ). There seems to be an
extra digit of precision in ur i386, where the alpha port appears to round up (
and have 1 digit less :(  )

gat

Bruce Momjian wrote:

> > Porting:
> > 1)    Seems like -O0/-O1 works best for this machine. It appears u get
> > spin lock errors/timeouts if i optimize at -O3, and -O2
>
> Yes, the 6.5.1 code will use:
>
>         CFLAGS:-O -mieee  # optimization -O2 removed because of egcs problem
>
> >
> > 2) in nabstime.h, the typedefs AbsoluteTime & RelativeTime ( was that
> > Absolutetime & Relativetime ) should be kept at a fixed ( for all ports
> > ) size like int32. Adjusting it to what ever size time_t becomes leads
> > to problems with 'signed' words v. 'non-signed' extended longwords. For
> > instance the constant 0x80000001 is a negative 32bit integer, but as a
> > time_t it just a large positive number!.
>
> OK, the real problem is that we are using "magic" values to mark certain
> values, and this is not done portably.  Can you suggestion good values?
> Can you send over a patch?
>
> > 3) Having problems with sign extension also creates problems for '@ 3
> > seconds ago'::reltime.  see #2
>
> Same thing.  We should not be using hard-coded values.
>
> >
> > 4) You dont store reltime or abstime as 64bit's into the db. Are there
> > any plans to use 64bit  alpha/linux timevalues as reltime & abstime ?
> > maybe reltime64 & abstime64? whats the sql world doing with 'seconds
> > since 1970' if the year is > 2038 ( which is the 32bit signed overflow )
> > ?
>
> Not sure on this.
>
> > 5) having $(CC) -mieee  all over just isn't good, particular if no float
> > operations are done.  It slows down everthing. Is there a way to limit
> > this in the makefile?
> > gat
>
> What does that flag do, and where would it be needed or not needed?
>
> --
>   Bruce Momjian                        |  http://www.op.net/~candle
>   maillist@candle.pha.pa.us            |  (610) 853-3000
>   +  If your life is a hard drive,     |  830 Blythe Avenue
>   +  Christ can be your backup.        |  Drexel Hill, Pennsylvania 19026



pgsql-ports by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: [PORTS] RedHat6.0 & Alpha
Next
From: Bruce Momjian
Date:
Subject: Re: [PORTS] RedHat6.0 & Alpha