Re: [PATCHES] Patch for PostgreSQL 7.0.3 to compile on Tru64 UNIX v5.0A with Compaq C T6.4-212 (dtk) - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: [PATCHES] Patch for PostgreSQL 7.0.3 to compile on Tru64 UNIX v5.0A with Compaq C T6.4-212 (dtk) |
Date | |
Msg-id | 200104160522.BAA07685@candle.pha.pa.us Whole thread Raw |
List | pgsql-hackers |
No, those don't do it. We need an actual NaN value. These are just flags, I think. > There are two things I found from fp_class.h, FP_SNAN (a signaling NaN), > and FP_QNAN (a quiet NaN). Don't know which you want: > alphapc.ourservers.net> grep FP_SNAN /usr/include/* > /usr/include/fp_class.h:#define FP_SNAN 0 > alphapc.ourservers.net> grep FP_QNAN /usr/include/* > /usr/include/fp_class.h:#define FP_QNAN 1 > > >> There is an isnan() function on v5.0a. > >> I'll be sending you the manpage. > > > >The problem is that we have to assign NAN to variables sometimes. That > >is why were were doing 0.0/0.0, to generate an NAN that could be used > >later in the code. > > > >I understand your compiler is saying it can't compute that at compile > >time. Maybe a computation that is preformed to set the value somehow. > > > >> > >> > > >> >OK, looks like we have a Tru64 problem with 7.1 too. Can you tell us > >> >how to get a NAN value. Zero is not it. I see the following mentions > >> >of NAN in the code. Does NAN exist in one of your /usr/include files? > >> > > >> > > >> > > >> >include/port/qnx4.h:18:#ifndef NAN > >> >include/port/qnx4.h:24:#define NAN (*(const double *) __nan) > >> >include/port/qnx4.h:25:#endif /* NAN */ > >> >include/port/solaris.h:43:#ifndef NAN > >> >include/port/solaris.h:51:#define NAN \ > >> >include/port/solaris.h:58:#define NAN (0.0/0.0) > >> >include/port/solaris.h:62:#endif /* not NAN */ > >> >include/utils/timestamp.h:64:#ifdef NAN > >> >include/utils/timestamp.h:65:#define DT_INVALID (NAN) > >> >include/utils/timestamp.h:80:#ifdef NAN > >> >include/utils/timestamp.h:104:#ifdef NAN > >> >backend/port/qnx4/isnan.c:22: return !memcmp(&dsrc, &NAN, sizeof(double)); > >> >backend/utils/adt/float.c:106:#ifndef NAN > >> >backend/utils/adt/float.c:107:#define NAN (0.0/0.0) > >> >backend/utils/adt/float.c:251: val = NAN; > >> >backend/utils/adt/numeric.c:45:#ifndef NAN > >> >backend/utils/adt/numeric.c:46:#define NAN (0.0/0.0) > >> >backend/utils/adt/numeric.c:1718: PG_RETURN_FLOAT8(NAN); > >> >backend/utils/adt/numeric.c:1763: PG_RETURN_FLOAT4((float4) NAN); > >> >backend/utils/adt/numeric.c:2269: var->sign = NUMERIC_POS; /* anything but NAN... */ > >> > > >> > > >> > > >> >> It _doesn't_ compile on Tru64: > >> >> gmake -C adt SUBSYS.o > >> >> gmake[4]: Entering directory `/usr/users/dcarmich/postgresql-7.1/src/ > >> >> backend/utils/adt' > >> >> cc -std -O4 -Olimit 2000 -I../../../../src/include -c -o float.o float.c > >> >> cc: Error: float.c, line 251: In this statement, the libraries on this > >> >> platform do not yet support compile-time evaluation of the constant > >> >> expression "0.0/0.0". (constfoldns) > >> >> val = NAN; > >> >> ------------------------------^ > >> >> gmake[4]: *** [float.o] Error 1 > >> >> gmake[4]: Leaving directory `/usr/users/dcarmich/postgresql-7.1/src/backend > >> >> /utils/adt' > >> >> gmake[3]: *** [adt-recursive] Error 2 > >> >> gmake[3]: Leaving directory `/usr/users/dcarmich/postgresql-7.1/src/backend > >> >> /utils' > >> >> gmake[2]: *** [utils-recursive] Error 2 > >> >> gmake[2]: Leaving directory `/usr/users/dcarmich/postgresql-7.1/src/ > >> >> backend' > >> >> gmake[1]: *** [all] Error 2 > >> >> gmake[1]: Leaving directory `/usr/users/dcarmich/postgresql-7.1/src' > >> >> gmake: *** [all] Error 2 > >> >> > >> >> (Sorry about the quoting, don't know how to remove it in VMS EDT.) > >> >> > >> >> > > >> >> >Please try 7.1. It should work fine. > >> >> > > >> >> >> ============================================================================ > >> >> >> POSTGRESQL BUG REPORT TEMPLATE > >> >> >> ============================================================================ > >> >> >> > >> >> >> > >> >> >> Your name : Douglas Carmichael > >> >> >> Your email address : dcarmich@ourservers.net > >> >> >> > >> >> >> > >> >> >> System Configuration > >> >> >> --------------------- > >> >> >> Architecture (example: Intel Pentium) : DEC/Compaq Alpha > >> >> >> > >> >> >> Operating System (example: Linux 2.0.26 ELF) : Compaq Tru64 UNIX v5.0A rev 1094 > >> >> >> > >> >> >> PostgreSQL version (example: PostgreSQL-7.0): PostgreSQL-7.0.3 > >> >> >> > >> >> >> Compiler used (example: gcc 2.8.0) : Compaq C T6.4-212 (dtk) > >> >> >> > >> >> >> > >> >> >> Please enter a FULL description of your problem: > >> >> >> ------------------------------------------------ > >> >> >> > >> >> >> I have patches to src/backend/utils/adt/float.c and > >> >> >> src/backend/utils/adt/numeric.c to get PostgreSQL 7.0.3 to compile on Tru64 > >> >> >> v5.0A with Compaq C T6.4-212 (dtk). > >> >> >> > >> >> >> Please describe a way to repeat the problem. Please try to provide a > >> >> >> concise reproducible example, if at all possible: > >> >> >> ---------------------------------------------------------------------- > >> >> >> > >> >> >> > >> >> >> N/A > >> >> >> > >> >> >> > >> >> >> If you know how this problem might be fixed, list the solution below: > >> >> >> --------------------------------------------------------------------- > >> >> >> > >> >> >> > >> >> >> diff -cr postgresql-7.0.3_old/src/backend/utils/adt/float.c postgresql-7.0.3/src/backend/utils/adt/float.c > >> >> >> *** postgresql-7.0.3_old/src/backend/utils/adt/float.c Wed Apr 12 12:15:49 2000 > >> >> >> --- postgresql-7.0.3/src/backend/utils/adt/float.c Fri Apr 13 22:13:10 2001 > >> >> >> *************** > >> >> >> *** 68,74 **** > >> >> >> #include "utils/builtins.h" > >> >> >> > >> >> >> #ifndef NAN > >> >> >> ! #define NAN (0.0/0.0) > >> >> >> #endif > >> >> >> > >> >> >> #ifndef SHRT_MAX > >> >> >> --- 68,74 ---- > >> >> >> #include "utils/builtins.h" > >> >> >> > >> >> >> #ifndef NAN > >> >> >> ! #define NAN 0 > >> >> >> #endif > >> >> >> > >> >> >> #ifndef SHRT_MAX > >> >> >> diff -cr postgresql-7.0.3_old/src/backend/utils/adt/numeric.c postgresql-7.0.3/src/backend/utils/adt/numeric.c > >> >> >> *** postgresql-7.0.3_old/src/backend/utils/adt/numeric.c Wed Apr 12 12:15:50 2000 > >> >> >> --- postgresql-7.0.3/src/backend/utils/adt/numeric.c Fri Apr 13 22:15:55 2001 > >> >> >> *************** > >> >> >> *** 41,47 **** > >> >> >> #endif > >> >> >> > >> >> >> #ifndef NAN > >> >> >> ! #define NAN (0.0/0.0) > >> >> >> #endif > >> >> >> > >> >> >> > >> >> >> --- 41,47 ---- > >> >> >> #endif > >> >> >> > >> >> >> #ifndef NAN > >> >> >> ! #define NAN 0 > >> >> >> #endif > >> >> >> > >> >> >> ---------------------------(end of broadcast)--------------------------- > >> >> >> TIP 2: you can get off all lists at once with the unregister command > >> >> >> (send "unregister YourEmailAddressHere" to majordomo@postgresql.org) > >> >> >> > >> >> > > >> >> > > >> >> >-- > >> >> >Bruce Momjian | http://candle.pha.pa.us > >> >> >pgman@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 > >> >> > >> > > >> > > >> >-- > >> >Bruce Momjian | http://candle.pha.pa.us > >> >pgman@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 > >> > > > > > >-- > >Bruce Momjian | http://candle.pha.pa.us > >pgman@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 > -- Bruce Momjian | http://candle.pha.pa.us pgman@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: