I've been going talking with the SGI technical support about some of the
errors I got when compiling Postgres 7.1.1 on SGI IRIX 6.5.12 with the
MIPSPro 7.3 C compiler. I've already mentioned that somehow the compiler
can't see the correct definition for strdup (I believe she thought that
it was due to the POSIX declaration). There's also a problem with it not
seeing the structure timeval defined. timeval is in
/usr/include/sys/time.h and is declared in the following way:

#if _XOPEN4UX || defined(_BSD_TYPES) || defined(_BSD_COMPAT)
/*
 * Structure returned by gettimeofday(2) system call,
 * and used in other calls.
 * Note this is also defined in sys/resource.h
 */
#ifndef _TIMEVAL_T
#define _TIMEVAL_T
struct timeval {
#if _MIPS_SZLONG == 64
 __int32_t :32;
#endif
 time_t tv_sec;  /* seconds */
 long tv_usec; /* and microseconds */
};

So SGI is assuming that you're declaring BSD types or compatibility.
However, the tech support person said that with the compiler's POSIX
declaration, this is conflicting. Basically, she says that POSIX implies
generalized portability across many platforms, but BSD implies a
specific type of platform. So that's where she thinks SGI is having the
trouble-- two conflicting type declarations.

Is this correct?
-Tony





Fri, 18 May 2001 10:41:56 -0700
"G. Anthony Reina" <reina@nsi.edu>
IRIX 6.5.12: POSIX & BSD