Re: [HACKERS] snapshot and FreeBSD-2.2.7 not building - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: [HACKERS] snapshot and FreeBSD-2.2.7 not building
Date
Msg-id 199901030241.VAA28735@candle.pha.pa.us
Whole thread Raw
In response to snapshot and FreeBSD-2.2.7 not building  (Hal Snyder <hal@enteract.com>)
Responses Re: [HACKERS] snapshot and FreeBSD-2.2.7 not building  (Bruce Momjian <maillist@candle.pha.pa.us>)
List pgsql-hackers
> The blizzard hitting the Chicago area makes today ideal for hacking -
> as long as the power stays on! A thousand pardons if this is a known
> problem - I'm just getting started with the current CVS set.
> 
> I grabbed postgresql.snapshot.tar.gz for 8 am, Jan 2 and am trying to
> build it on my FreeBSD-2.2.7 system in order to test some things for
> the web site. This seems to be the only source kit available from
> hub's anonymous FTP archive, BTW.
> 
> Here's what happens:
> 
> ...
> gmake[2]: Entering directory `/pgsql-src/pgsql/src/backend/utils'
> for i in adt cache error fmgr hash init misc mmgr sort time; do gmake -C $i SUBSYS.o; done
> gmake[3]: Entering directory `/pgsql-src/pgsql/src/backend/utils/adt'
> gcc -I../../../include -I../../../backend   -O2 -m486 -pipe  -Wall -Wmissing-prototypes -I../..   -c numeric.c -o
numeric.o
> numeric.c: In function `numeric_float8':
> numeric.c:1729: incompatible types in assignment
> numeric.c: In function `numeric_float4':
> numeric.c:1783: incompatible types in assignment
> gmake[3]: *** [numeric.o] Error 1
> gmake[3]: Leaving directory `/pgsql-src/pgsql/src/backend/utils/adt'
> ...
> gmake[2]: *** No rule to make target `adt/SUBSYS.o', needed by `SUBSYS.o'.  Stop.
> gmake[2]: Leaving directory `/pgsql-src/pgsql/src/backend/utils'
> gmake[1]: *** [utils.dir] Error 2
> gmake[1]: Leaving directory `/pgsql-src/pgsql/src/backend'
> gmake: *** [all] Error 2
> 
> I think the compiler is right in claiming incompatible types. In rev
> 1.3 of backend/utils/adt/numeric.c, line 1783 says
> 
>     *result = num;
> 
> but "result" is a float32 (=*float), while "num" is Numeric (pointer
> to a custom PostgreSQL NumericData struct). What is intended here?

OK, I have applied a patch to the cvs tree.  My old code was clearly
wrong, now that I study it.

I am now generating NAN by:
double x;
return (x-x)/(x-x);

This seems to be the way my libm math library does it.  The gcc2 -O4
compile does not seem to optimize it away, so looks like it will work. 
My guess is that the compiler can not optimize floating-point
computations.

Still waiting for Jan to give me his comments on my fixes, but it is
holiday time.

--  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,
Pennsylvania19026
 


pgsql-hackers by date:

Previous
From: Hal Snyder
Date:
Subject: snapshot and FreeBSD-2.2.7 not building
Next
From: Bruce Momjian
Date:
Subject: Re: [HACKERS] snapshot and FreeBSD-2.2.7 not building