Bug report on Solaris 8/x86

Started by Mark Roundover 21 years ago2 messagesbugs
Jump to latest
#1Mark Round
mark@markround.com

Hi,

I am trying to compile Postgres-8.0.0beta1 on Solaris 8/x86, using Sun's
C compiler, and get the following error which told me to contact you :-

"../../../../src/include/storage/s_lock.h", line 654: #error: PostgreSQL
does not have native spinlock support on this platform. To continue the
compilation, rerun configure using --disable-spinlocks. However,
performance will be poor. Please report this to pgsql-bugs@postgresql.org.

My system is as follows :-

bash-2.03$ uname -a
SunOS daedal 5.8 Generic_117351-03 i86pc i386 i86pc

bash-2.03$ cc -V
cc: Sun C 5.5 Patch 112761-09 2004/06/08
usage: cc [ options] files. Use 'cc -flags' for details

environment variables used :
LD_OPTIONS="-R/opt/csw/lib -L/opt/csw/lib"
CC="cc -fast -xarch=386 -I/opt/csw/include"

./configure --prefix=/opt/csw/postgres --with-pam --with-openssl
--enable-multibyte --with-CXX --with-includes=/opt/csw/include/openssl

Any suggestions ?

Thanks in advance,

-Mark
mark@markround.com

#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Mark Round (#1)
Re: Bug report on Solaris 8/x86

Mark Round <mark@markround.com> writes:

I am trying to compile Postgres-8.0.0beta1 on Solaris 8/x86, using Sun's
C compiler, and get the following error which told me to contact you :-

"../../../../src/include/storage/s_lock.h", line 654: #error: PostgreSQL
does not have native spinlock support on this platform. To continue the
compilation, rerun configure using --disable-spinlocks. However,
performance will be poor. Please report this to pgsql-bugs@postgresql.org.

Hmm. There does not seem to be any support for non-gcc Solaris/86 in
src/include/storage/s_lock.h. I am not sure why not, since we do have
a src/backend/port/tas/solaris_i386.s file, which should work as an
external implementation of TAS(). Perhaps it got lost in the recent
reorganization of the spinlock code. Can you test a suitable addition?
It probably doesn't need to be any more complicated than the entry
for old SunOS:

#if defined(sun3)
#define HAS_TEST_AND_SET

typedef unsigned char slock_t;
#endif

but I'm unsure what's an appropriate #if to recognize Solaris/x86.

regards, tom lane