Re: Build failure: TIMEZONE_GLOBAL undeclared - Mailing list pgsql-bugs
From | Bruce Momjian |
---|---|
Subject | Re: Build failure: TIMEZONE_GLOBAL undeclared |
Date | |
Msg-id | 200409091418.i89EIQH05175@candle.pha.pa.us Whole thread Raw |
In response to | Re: Build failure: TIMEZONE_GLOBAL undeclared (Michael Fuhr <mike@fuhr.org>) |
Responses |
Re: Build failure: TIMEZONE_GLOBAL undeclared
|
List | pgsql-bugs |
OK, got it. Patch attached. That Win32 block was so big I didn't even see it. Thanks for the detective work. --------------------------------------------------------------------------- Michael Fuhr wrote: > On Thu, Sep 09, 2004 at 02:03:52AM -0400, Bruce Momjian wrote: > > Michael Fuhr wrote: > > > > > > gcc -O2 -fno-strict-aliasing -g -Wall -Wmissing-prototypes -Wmissing-declarations -DFRONTEND -I../../src/include -I/usr/local/ssl/include -c -o pgtz.o pgtz.c > > > pgtz.c: In function `get_timezone_offset': > > > pgtz.c:99: error: `TIMEZONE_GLOBAL' undeclared (first use in this function) > > > > Wow, that is confusing. How could TIMEZONE_GLOBAL not be defined? Is > > there some way port.h is not being included? If so I can't see it, and > > it compiles here fine, which is strange. > > It compiles fine on FreeBSD 4.10-STABLE with gcc 2.95.4. Running > the preprocessor on pgtz.c with "-E -dM" instead of "-c -o pgtz.o" > shows that on Solaris 9, HAVE_STRUCT_TM_TM_ZONE isn't defined and > HAVE_INT_TIMEZONE is, so the compiler hits the "return -TIMEZONE_GLOBAL" > line and fails: > > #if defined(HAVE_STRUCT_TM_TM_ZONE) > return tm->tm_gmtoff; > #elif defined(HAVE_INT_TIMEZONE) > return -TIMEZONE_GLOBAL; > #else > #error No way to determine TZ? Can this happen? > #endif > > On FreeBSD 4.10, HAVE_STRUCT_TM_TM_ZONE is defined, so the compiler > hits the "return tm->tm_gmtoff" line. Neither Solaris nor FreeBSD > has TIMEZONE_GLOBAL defined, presumably because port.h defines it > inside the "#ifdef WIN32" block beginning at line 169 (in port.h > version 1.60). > > -- > Michael Fuhr > http://www.fuhr.org/~mfuhr/ > > ---------------------------(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) 359-1001 + If your life is a hard drive, | 13 Roberts Road + Christ can be your backup. | Newtown Square, Pennsylvania 19073 Index: src/include/port.h =================================================================== RCS file: /cvsroot/pgsql-server/src/include/port.h,v retrieving revision 1.60 diff -c -c -r1.60 port.h *** src/include/port.h 9 Sep 2004 00:59:41 -0000 1.60 --- src/include/port.h 9 Sep 2004 14:16:32 -0000 *************** *** 150,155 **** --- 150,164 ---- extern int pclose_check(FILE *stream); + /* Global variable holding time zone information. */ + #ifndef __CYGWIN__ + #define TIMEZONE_GLOBAL timezone + #define TZNAME_GLOBAL tzname + #else + #define TIMEZONE_GLOBAL _timezone + #define TZNAME_GLOBAL _tzname + #endif + #if defined(WIN32) || defined(__CYGWIN__) /* * Win32 doesn't have reliable rename/unlink during concurrent access, *************** *** 180,194 **** #define pclose(a) _pclose(a) #endif - /* Global variable holding time zone information. */ - #ifndef __CYGWIN__ - #define TIMEZONE_GLOBAL timezone - #define TZNAME_GLOBAL tzname - #else - #define TIMEZONE_GLOBAL _timezone - #define TZNAME_GLOBAL _tzname - #endif - extern int copydir(char *fromdir, char *todir); /* Missing rand functions */ --- 189,194 ----
pgsql-bugs by date: