Thread: PROBLEM on SOLARIS

PROBLEM on SOLARIS

From
Chris Bitmead
Date:
Current cvs compiled on Solaris gives the following error...

In file included from ../../include/tcop/tcopprot.h:22,                from pg_proc.c:26:
/usr/include/setjmp.h:70: conflicting types for `jmp_buf'
/usr/include/setjmp.h:53: previous declaration of `jmp_buf'
gmake[3]: *** [pg_proc.o] Error 1


The problem comes from src/include/config.h which defines...

#ifndef HAVE_SIGSETJMP
# define sigjmp_buf jmp_buf
# define sigsetjmp(x,y) setjmp(x)
# define siglongjmp longjmp
#endif

which redefines jmp_buf in conflict with solaris. Solaris appears to
have sigsetjmp, but I don't know the cause of the problem beyond that.


Re: PROBLEM on SOLARIS

From
Tom Lane
Date:
Chris Bitmead <chrisb@nimrod.itg.telstra.com.au> writes:
> Current cvs compiled on Solaris gives the following error...
> In file included from ../../include/tcop/tcopprot.h:22,
>                  from pg_proc.c:26:
> /usr/include/setjmp.h:70: conflicting types for `jmp_buf'
> /usr/include/setjmp.h:53: previous declaration of `jmp_buf'
> gmake[3]: *** [pg_proc.o] Error 1

Hmm, I didn't think anything much had changed in that area.
What was the last version you compiled successfully on that box?
        regards, tom lane


Re: PROBLEM on SOLARIS

From
Chris Bitmead
Date:
Tom Lane wrote:
> 
> Chris Bitmead <chrisb@nimrod.itg.telstra.com.au> writes:
> > Current cvs compiled on Solaris gives the following error...
> > In file included from ../../include/tcop/tcopprot.h:22,
> >                  from pg_proc.c:26:
> > /usr/include/setjmp.h:70: conflicting types for `jmp_buf'
> > /usr/include/setjmp.h:53: previous declaration of `jmp_buf'
> > gmake[3]: *** [pg_proc.o] Error 1
> 
> Hmm, I didn't think anything much had changed in that area.
> What was the last version you compiled successfully on that box?

7.02 seems to compile cleanly. There are a number of other problems in
cvs for solaris after I hacked through that one too. Whoever works on
Solaris should probably take a look.


Re: PROBLEM on SOLARIS

From
Tom Lane
Date:
Chris Bitmead <chrisb@nimrod.itg.telstra.com.au> writes:
> Tom Lane wrote:
>> Chris Bitmead <chrisb@nimrod.itg.telstra.com.au> writes:
>>>> Current cvs compiled on Solaris gives the following error...

>> Hmm, I didn't think anything much had changed in that area.
>> What was the last version you compiled successfully on that box?

> 7.02 seems to compile cleanly. There are a number of other problems in
> cvs for solaris after I hacked through that one too.

In that case I'll take the liberty of blaming Peter's recent work on
the configure and make stuff ...

However, knowing that configure is failing on your box isn't much
of a step towards fixing it.  Can you look at the differences between
what configure emits for you now and what it produced in the 7.02
release?  include/config.h is the most likely place to check, though
it's possible some other file holds the key.
        regards, tom lane


Re: PROBLEM on SOLARIS

From
Chris Bitmead
Date:
Attached are the differences for include/config.h on Solaris between
7.02 and the latest snapshot....


1c1
< /* include/config.h.  Generated automatically by configure.  */
---
> /* src/include/config.h.  Generated automatically by configure.  */
12c12
<  * $Id: config.h.in,v 1.113 2000/05/12 13:58:25 scrappy Exp $
---
>  * $Id: config.h.in,v 1.119 2000/06/17 00:09:56 petere Exp $
17a18
> 
66,73d66
<  * As soon as the backend blocks on a lock, it waits this number of
seconds
<  * before checking for a deadlock.
<  * We don't check for deadlocks just before sleeping because a
deadlock is
<  * a rare event, and checking is an expensive operation.
<  */
< #define DEADLOCK_CHECK_TIMER 1
< 
< /*
117,126d109
< /* Genetic Query Optimization (GEQO):
<  * 
<  * The GEQO module in PostgreSQL is intended for the solution of the
<  * query optimization problem by means of a Genetic Algorithm (GA).
<  * It allows the handling of large JOIN queries through non-exhaustive
<  * search.
<  * For further information see README.GEQO
<utesch@aut.tu-freiberg.de>.
<  */
< #define GEQO
< 
161,165d143
< /*
<  * ELOG_TIMESTAMPS: adds a timestamp with the following format to elog
<  * messages:  yymmdd.hh:mm:ss.mmm [pid] message
<  */
< /* #define ELOG_TIMESTAMPS */
167,173c145
< /*
<  * USE_SYSLOG: use syslog for elog and error messages printed by
tprintf
<  * and eprintf. This must be activated with the syslog flag in
pg_options
<  * (syslog=0 for stdio, syslog=1 for stdio+syslog, syslog=2 for
syslog).
<  * For information see backend/utils/misc/trace.c (Massimo Dal Zotto).
<  */
< /* #define USE_SYSLOG */
---
> /* #undef ENABLE_SYSLOG */
186a159
> /* #define LOCK_DEBUG */
229c202,204
< #define DEF_PGPORT "5432" 
---
> #define DEF_PGPORT 5432
> /* ... and once more as a string constant instead */
> #define DEF_PGPORT_STR "5432"
250c225
< #define HAVE_CRYPT_H 1
---
> /* #undef HAVE_CRYPT_H */
298c273,282
< #define HAVE_VALUES_H 1
---
> /* #undef HAVE_VALUES_H */
> /* Set to 1 if you have <sys/exec.h> */
> #define HAVE_SYS_EXEC_H 1
> 
> /* Set to 1 if you have <sys/pstat.h> */
> /* #undef HAVE_SYS_PSTAT_H */
> 
> /* Set to 1 if you have <machine/vmparam.h> */
> #define HAVE_MACHINE_VMPARAM_H 1
307c291,297
< /* #undef HAVE_SETPROCTITLE */
---
> #define HAVE_SETPROCTITLE 1
> 
> /* Define if you have the pstat function. */
> /* #undef HAVE_PSTAT */
> 
> /* Define if the PS_STRINGS thing exists. */
> /* #undef HAVE_PS_STRINGS */
318a309,311
> /* are we building against a libodbcinst */
> /* #undef HAVE_SQLGETPRIVATEPROFILESTRING */
> 
326c319
< #define HAVE_LIBDL 1
---
> /* #undef HAVE_LIBDL */
333,334c326,327
< #define HAVE_GETTIMEOFDAY_2_ARGS 1
< #ifndef HAVE_GETTIMEOFDAY_2_ARGS
---
> /* #undef GETTIMEOFDAY_1ARG */
> #ifdef GETTIMEOFDAY_1ARG
357c350
< #define HAVE_FPCLASS 1
---
> /* #undef HAVE_FPCLASS */
363c356
< /* #undef HAVE_ISINF */
---
> #define HAVE_ISINF 1
375c368
< /* #undef HAVE_TM_ZONE */
---
> #define HAVE_TM_ZONE 1
382c375
< #define HAVE_INT_TIMEZONE 1
---
> /* #undef HAVE_INT_TIMEZONE */
388c381
< /* #undef HAVE_INET_ATON */
---
> #define HAVE_INET_ATON 1
401c394
< #define HAVE_FCVT 1
---
> /* #undef HAVE_FCVT */
407c400
< #define HAVE_FINITE 1
---
> /* #undef HAVE_FINITE */
413c406
< #define HAVE_SIGSETJMP 1
---
> /* #undef HAVE_SIGSETJMP */
497c490
< /* #undef HAVE_UNION_SEMUN */
---
> #define HAVE_UNION_SEMUN 
506c499
< #define HAVE_LONG_LONG_INT_64 1
---
> #define HAVE_LONG_LONG_INT_64 
519,521c512,514
< #define ALIGNOF_LONG_LONG_INT 8
< #define ALIGNOF_DOUBLE 8
< #define MAXIMUM_ALIGNOF 8
---
> #define ALIGNOF_LONG_LONG_INT 4
> #define ALIGNOF_DOUBLE 4
> #define MAXIMUM_ALIGNOF 4
523,524c516,517
< /* Define as the base type of the last arg to accept */
< #define SOCKET_SIZE_TYPE size_t
---
> /* Define as the type of the type of the 3rd argument to accept() */
> #define ACCEPT_TYPE_ARG3 socklen_t
527c520
< #define USE_POSIX_SIGNALS 1
---
> #define HAVE_POSIX_SIGNALS 
530c523
< #define HAVE_NAMESPACE_STD 1
---
> /* #undef HAVE_NAMESPACE_STD */
533c526,535
< #define HAVE_CXX_STRING_HEADER 1
---
> /* #undef HAVE_CXX_STRING_HEADER */
> 
> /* Define if you are building with Kerberos 4 support */
> /* #undef KRB4 */
> 
> /* Define if you are building with Kerberos 5 support */
> /* #undef KRB5 */
> 
> /* The name of the Postgres service principal in Kerberos */
> #define PG_KRB_SRVNAM "postgres"
534a537,538
> /* The location of the Kerberos server's keytab file */
> #define PG_KRB_SRVTAB "/etc/srvtab"


Re: PROBLEM on SOLARIS

From
Tom Lane
Date:
Chris Bitmead <chrisb@nimrod.itg.telstra.com.au> writes:
> Attached are the differences for include/config.h on Solaris between
> 7.02 and the latest snapshot....

> 12c12
> <  * $Id: config.h.in,v 1.113 2000/05/12 13:58:25 scrappy Exp $
> ---
> > * $Id: config.h.in,v 1.119 2000/06/17 00:09:56 petere Exp $
> [snippage]
> 413c406
> < #define HAVE_SIGSETJMP 1
> ---
> > /* #undef HAVE_SIGSETJMP */

OK, so in fact configure is currently failing to detect that it
should define HAVE_SIGSETJMP on your platform.

This is pretty odd, because AFAICS the test for sigsetjmp is
exactly the same as it was in 7.0.  I'm guessing that the failure
has to do with reordering of the configure tests, so that the
list of #define symbols active at the time of the sigsetjmp test
is different from what it was in 7.0.  But that's as far as I can
go on this evidence.  Anyone have a better idea?
        regards, tom lane