Re: Compile/Link Error for Postgres 8.1.0 on Solaris 8 - Mailing list pgsql-novice

From Alan Stange
Subject Re: Compile/Link Error for Postgres 8.1.0 on Solaris 8
Date
Msg-id 43987A2B.7020007@rentec.com
Whole thread Raw
In response to Compile/Link Error for Postgres 8.1.0 on Solaris 8  ("Bhide, Rajan" <rbhide@starentnetworks.com>)
Responses Re: Compile/Link Error for Postgres 8.1.0 on Solaris 8
List pgsql-novice
Bhide, Rajan wrote:
> I tried to compile Postgres 8.1.0 from the source tar file with
> following options:
>
> ./configure --without-readline --enable-thread-safety CFLAGS=-xO4
> -D_REENTRANT -xipo -mt -lpthread
> CC=/export/home/uxapps/workshop/SUNWspro/bin/cc
>
> I am getting following error:
>
> gmake -C ../../src/timezone all
> gmake[3]: Entering directory
> `/home/rbhide/utilities/postgres-8.1/postgresql-8.1.0/src/timezone'
> /usr/ccs/bin/ld -r -o SUBSYS.o localtime.o strftime.o pgtz.o
> gmake -C ../../src/port all
> gmake[4]: Entering directory
> `/home/rbhide/utilities/postgres-8.1/postgresql-8.1.0/src/port'
> gmake[4]: Nothing to be done for `all'.
> gmake[4]: Leaving directory
> `/home/rbhide/utilities/postgres-8.1/postgresql-8.1.0/src/port'
> gmake[3]: Leaving directory
> `/home/rbhide/utilities/postgres-8.1/postgresql-8.1.0/src/timezone'
> /export/home/uxapps/workshop/SUNWspro/bin/cc -Xa -xO4 -D_REENTRANT
> -xipo -mt -lpthread  -L../../src/port  -Wl,-R/usr/local/pgsql/lib
> access/SUBSYS.o bootstrap/SUBSYS.o catalog/SUBSYS.o parser/SUBSYS.o
> commands/SUBSYS.o executor/SUBSYS.o lib/SUBSYS.o libpq/SUBSYS.o
> main/SUBSYS.o nodes/SUBSYS.o optimizer/SUBSYS.o port/SUBSYS.o
> postmaster/SUBSYS.o regex/SUBSYS.o rewrite/SUBSYS.o storage/SUBSYS.o
> tcop/SUBSYS.o utils/SUBSYS.o ../../src/timezone/SUBSYS.o
> ../../src/port/libpgport_srv.a    -lz -lrt -lresolv -lgen -lsocket
> -lnsl -ldl -lm  -o postgres
> *Undefined   first referenced
>  symbol         in file
> __ipo_error_recompile_file(4_1)     ../../src/timezone/SUBSYS.o
> ld: fatal: Symbol referencing errors. No output written to postgres
> *
> gmake[2]: *** [postgres] Error 1
> gmake[2]: Leaving directory
> `/home/rbhide/utilities/postgres-8.1/postgresql-8.1.0/src/backend'
> gmake[1]: *** [all] Error 2
> gmake[1]: Leaving directory
> `/home/rbhide/utilities/postgres-8.1/postgresql-8.1.0/src'
> gmake: *** [all] Error 2
>
> Could someone help on this?

Solaris 8?

Given that you've enabled -xipo, and the error is related to ipo, I'd
suggest dropping that option for now.   What version of the Sun
compilers are you using here?

You might want to consider using gcc for compiler though.   In a bit of
testing with the Studio 10 compilers against a recent gcc release, we
found that the gcc built postgres performed better (on our test
workload).  This was mostly because the function MemoryContextSwitchTo
is inlined with gcc and not with the Sun compilers.  I suppose you could
also try -xinline=%auto,MemoryContextSwitchTo, but then you need
-xcrossfile, which conflicts with -xipo....which leads me back to using gcc.

-- Alan

pgsql-novice by date:

Previous
From: "Bhide, Rajan"
Date:
Subject: Compile/Link Error for Postgres 8.1.0 on Solaris 8
Next
From: Tom Lane
Date:
Subject: Re: Compile/Link Error for Postgres 8.1.0 on Solaris 8