Thread: Postgres 8.2.5 compilation problem on OpenSolaris/Solaris

Postgres 8.2.5 compilation problem on OpenSolaris/Solaris

From
"Dot Yet"
Date:
Hi everyone,

I am trying to get the postgresql 8.2.5 version working on my opensolaris nv 73 server.

The configuration information is as follows:

SunOS db03nge0 5.11 snv_73 i86pc i386 i86pc
$ isainfo -v
64-bit amd64 applications
        ahf sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc
        cx8 tsc fpu
32-bit i386 applications
        ahf sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx cmov amd_sysc
        cx8 tsc fpu
GNU Make 3.81 - compiled from source
OpenSSL 0.9.8d 28 Sep 2006 - compiled from source
readline-5.2 - library compiled from source
Sun Studio compiler: Sun C 5.9 SunOS_i386 2007/05/03
postgresql-8.2.5 source tar.gz

I have compiled the openssl, readline and gnumake in 64 bit mode. The options which I used while compiling them were
"-m64 -KPIC -xmodel=medium"


The options which I am using to configure the makefile are:

./configure --prefix=/usr/local --with-perl --with-openssl --with-libraries=/usr/local/lib --with-includes=/usr/local/include --libdir=/usr/local/lib --includedir=/usr/local/include --enable-integer-datetimes CFLAGS="-m64 -KPIC -xmodel=medium"

The configure process does not report any errors. The make process also works fine. I do see the following message:

All of PostgreSQL successfully made. Ready to install.

Now, when I try to run "make check", I get the following "Segmentation Fault" error.

mkdir ./testtablespace
./pg_regress --temp-install=./tmp_check --top-builddir=../../.. --temp-port=55432 --schedule=./parallel_schedule --multibyte=SQL_ASCII --load-language=plpgsql
============== creating temporary installation        ==============
============== initializing database system           ==============

pg_regress: initdb failed
Examine ./log/initdb.log for the reason.
Command was: "/export/home/tualha/d1/postgresql-8.2.5/src/test/regress/./tmp_check/install//usr/local/bin/initdb" -D "/export/home/tualha/d1/postgresql- 8.2.5/src/test/regress/./tmp_check/data" -L "/export/home/tualha/d1/postgresql-8.2.5/src/test/regress/./tmp_check/install//usr/local/share/postgresql" --noclean > "./log/initdb.log" 2>&1
make[2]: *** [check] Error 2
make[2]: Leaving directory `/export/home/tualha/d1/postgresql-8.2.5/src/test/regress'
make[1]: *** [check] Error 2
make[1]: Leaving directory `/export/home/tualha/d1/postgresql- 8.2.5/src/test'
make: *** [check] Error 2
$ cat src/test/regress/log/initdb.log
Running in noclean mode.  Mistakes will not be cleaned up.
The files belonging to this database system will be owned by user "tualha".
This user must also own the server process.

The database cluster will be initialized with locale C.

creating directory /export/home/tualha/d1/postgresql-8.2.5/src/test/regress/./tmp_check/data ... ok
creating subdirectories ... ok
selecting default max_connections ... Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
10
selecting default shared_buffers/max_fsm_pages ... Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
Segmentation Fault - core dumped
400kB/20000
creating configuration files ... ok
creating template1 database in /export/home/tualha/d1/postgresql-8.2.5/src/test/regress/./tmp_check/data/base/1 ... Segmentation Fault - core dumped
child process exited with exit code 139
initdb: data directory "/export/home/tualha/d1/postgresql-8.2.5/src/test/regress/./tmp_check/data" not removed at user's request
$

I wonder if anyone can give any suggestions to deal with it. BTW, I have also tried to compile it on Solaris 10 u3, but it still fails at the same point.

Any help would be much appreciated.

Regards,
Dotyet

Re: Postgres 8.2.5 compilation problem on OpenSolaris/Solaris

From
Erik Jones
Date:
On Oct 11, 2007, at 2:30 PM, Dot Yet wrote:

> Hi everyone,
>
> I am trying to get the postgresql 8.2.5 version working on my
> opensolaris nv 73 server.
>
> The configuration information is as follows:
>
> SunOS db03nge0 5.11 snv_73 i86pc i386 i86pc
> $ isainfo -v
> 64-bit amd64 applications
>         ahf sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx
> cmov amd_sysc
>         cx8 tsc fpu
> 32-bit i386 applications
>         ahf sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx
> cmov amd_sysc
>         cx8 tsc fpu
> GNU Make 3.81 - compiled from source
> OpenSSL 0.9.8d 28 Sep 2006 - compiled from source
> readline-5.2 - library compiled from source
> Sun Studio compiler: Sun C 5.9 SunOS_i386 2007/05/03
> postgresql-8.2.5 source tar.gz
>
> I have compiled the openssl, readline and gnumake in 64 bit mode.
> The options which I used while compiling them were
> "-m64 -KPIC -xmodel=medium"
>
>
> The options which I am using to configure the makefile are:
>
> ./configure --prefix=/usr/local --with-perl --with-openssl --with-
> libraries=/usr/local/lib --with-includes=/usr/local/include --
> libdir=/usr/local/lib --includedir=/usr/local/include --enable-
> integer-datetimes CFLAGS="-m64 -KPIC -xmodel=medium"
>
> The configure process does not report any errors. The make process
> also works fine. I do see the following message:
>
> All of PostgreSQL successfully made. Ready to install.
>
> Now, when I try to run "make check", I get the following
> "Segmentation Fault" error.
>
> mkdir ./testtablespace
> ./pg_regress --temp-install=./tmp_check --top-builddir=../../.. --
> temp-port=55432 --schedule=./parallel_schedule --
> multibyte=SQL_ASCII --load-language=plpgsql
> ============== creating temporary installation        ==============
> ============== initializing database system           ==============
>
> pg_regress: initdb failed
> Examine ./log/initdb.log for the reason.
> Command was: "/export/home/tualha/d1/postgresql-8.2.5/src/test/
> regress/./tmp_check/install//usr/local/bin/initdb" -D "/export/home/
> tualha/d1/postgresql- 8.2.5/src/test/regress/./tmp_check/data" -L "/
> export/home/tualha/d1/postgresql-8.2.5/src/test/regress/./tmp_check/
> install//usr/local/share/postgresql" --noclean > "./log/initdb.log"
> 2>&1
> make[2]: *** [check] Error 2
> make[2]: Leaving directory `/export/home/tualha/d1/postgresql-8.2.5/
> src/test/regress'
> make[1]: *** [check] Error 2
> make[1]: Leaving directory `/export/home/tualha/d1/postgresql-
> 8.2.5/src/test'
> make: *** [check] Error 2
> $ cat src/test/regress/log/initdb.log
> Running in noclean mode.  Mistakes will not be cleaned up.
> The files belonging to this database system will be owned by user
> "tualha".
> This user must also own the server process.
>
> The database cluster will be initialized with locale C.
>
> creating directory /export/home/tualha/d1/postgresql-8.2.5/src/test/
> regress/./tmp_check/data ... ok
> creating subdirectories ... ok
> selecting default max_connections ... Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> 10
> selecting default shared_buffers/max_fsm_pages ... Segmentation
> Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> 400kB/20000
> creating configuration files ... ok
> creating template1 database in /export/home/tualha/d1/
> postgresql-8.2.5/src/test/regress/./tmp_check/data/base/1 ...
> Segmentation Fault - core dumped
> child process exited with exit code 139
> initdb: data directory "/export/home/tualha/d1/postgresql-8.2.5/src/
> test/regress/./tmp_check/data" not removed at user's request
> $
>
> I wonder if anyone can give any suggestions to deal with it. BTW, I
> have also tried to compile it on Solaris 10 u3, but it still fails
> at the same point.
>
> Any help would be much appreciated.

It looks like initdb is having problem allocating shared memory.  How
much memory do you have on the system?  Are there any user or group
project memory settings that may be causing this?  Those are stored
in /etc/project.  Also, you may want to give it a shot with gcc.

Also, what hardware architecture is this?  I've done a little
research on your compiler flags and seen that -KPIC and -Kpic flags
are obsolete on SPARC hardware and, if your on x86 hardware, it would
seem that they aren't doing what you think.  Here's what I found on
them:

-KPIC -- (x86) -KPIC is identical to -Kpic.
-Kpic -- (x86) Generate position-independent code for use in shared
libraries (small model). Permits references to, at most, 2**11 unique
external symbols.

So, with x86 architectures, -KPIC only works with the small model
whereas you've defined the medium model.  My bet is that you need to
do away with the -KPIC flag.

Erik Jones

Software Developer | Emma®
erik@myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)

Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com



Re: Postgres 8.2.5 compilation problem on OpenSolaris/Solaris

From
"Dot Yet"
Date:
Hi Erik,

Thanks for the response. Your're the man!!! :) removal of -KPIC fixed it.

This is Solaris x86 AMD64. The system has 2 gb of RAM. I have not configured any resource controls. I was thinking that the default should be fine  for the initial  installation/compilation.

I was unable to build with small model due to "relocation error: R_AMD64_32: " error. Based on some reference from sun.com, I found that I should be using -KPIC alongwith medium model. It turns out, they are contradictory to each other.

Anyways. Thanks for the help again....

Regards,
Dotyet

On 10/11/07, Erik Jones <erik@myemma.com > wrote:
On Oct 11, 2007, at 2:30 PM, Dot Yet wrote:

> Hi everyone,
>
> I am trying to get the postgresql 8.2.5 version working on my
> opensolaris nv 73 server.
>
> The configuration information is as follows:
>
> SunOS db03nge0 5.11 snv_73 i86pc i386 i86pc
> $ isainfo -v
> 64-bit amd64 applications
>         ahf sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx
> cmov amd_sysc
>         cx8 tsc fpu
> 32-bit i386 applications
>         ahf sse3 sse2 sse fxsr amd_3dnowx amd_3dnow amd_mmx mmx
> cmov amd_sysc
>         cx8 tsc fpu
> GNU Make 3.81 - compiled from source
> OpenSSL 0.9.8d 28 Sep 2006 - compiled from source
> readline-5.2 - library compiled from source
> Sun Studio compiler: Sun C 5.9 SunOS_i386 2007/05/03
> postgresql-8.2.5 source tar.gz
>
> I have compiled the openssl, readline and gnumake in 64 bit mode.
> The options which I used while compiling them were
> "-m64 -KPIC -xmodel=medium"
>
>
> The options which I am using to configure the makefile are:
>
> ./configure --prefix=/usr/local --with-perl --with-openssl --with-
> libraries=/usr/local/lib --with-includes=/usr/local/include --
> libdir=/usr/local/lib --includedir=/usr/local/include --enable-
> integer-datetimes CFLAGS="-m64 -KPIC -xmodel=medium"
>
> The configure process does not report any errors. The make process
> also works fine. I do see the following message:
>
> All of PostgreSQL successfully made. Ready to install.
>
> Now, when I try to run "make check", I get the following
> "Segmentation Fault" error.
>
> mkdir ./testtablespace
> ./pg_regress --temp-install=./tmp_check --top-builddir=../../.. --
> temp-port=55432 --schedule=./parallel_schedule --
> multibyte=SQL_ASCII --load-language=plpgsql
> ============== creating temporary installation        ==============
> ============== initializing database system           ==============
>
> pg_regress: initdb failed
> Examine ./log/initdb.log for the reason.
> Command was: "/export/home/tualha/d1/postgresql-8.2.5/src/test/
> regress/./tmp_check/install//usr/local/bin/initdb" -D "/export/home/
> tualha/d1/postgresql- 8.2.5/src/test/regress/./tmp_check/data" -L "/
> export/home/tualha/d1/postgresql-8.2.5/src/test/regress/./tmp_check/
> install//usr/local/share/postgresql" --noclean > "./log/initdb.log"
> 2>&1
> make[2]: *** [check] Error 2
> make[2]: Leaving directory `/export/home/tualha/d1/postgresql-8.2.5/
> src/test/regress'
> make[1]: *** [check] Error 2
> make[1]: Leaving directory `/export/home/tualha/d1/postgresql-
> 8.2.5/src/test'
> make: *** [check] Error 2
> $ cat src/test/regress/log/initdb.log
> Running in noclean mode.  Mistakes will not be cleaned up.
> The files belonging to this database system will be owned by user
> "tualha".
> This user must also own the server process.
>
> The database cluster will be initialized with locale C.
>
> creating directory /export/home/tualha/d1/postgresql- 8.2.5/src/test/
> regress/./tmp_check/data ... ok
> creating subdirectories ... ok
> selecting default max_connections ... Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> 10
> selecting default shared_buffers/max_fsm_pages ... Segmentation
> Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> Segmentation Fault - core dumped
> 400kB/20000
> creating configuration files ... ok
> creating template1 database in /export/home/tualha/d1/
> postgresql-8.2.5/src/test/regress/./tmp_check/data/base/1 ...
> Segmentation Fault - core dumped
> child process exited with exit code 139
> initdb: data directory "/export/home/tualha/d1/postgresql-8.2.5/src/
> test/regress/./tmp_check/data" not removed at user's request
> $
>
> I wonder if anyone can give any suggestions to deal with it. BTW, I
> have also tried to compile it on Solaris 10 u3, but it still fails
> at the same point.
>
> Any help would be much appreciated.

It looks like initdb is having problem allocating shared memory.  How
much memory do you have on the system?  Are there any user or group
project memory settings that may be causing this?  Those are stored
in /etc/project.  Also, you may want to give it a shot with gcc.

Also, what hardware architecture is this?  I've done a little
research on your compiler flags and seen that -KPIC and -Kpic flags
are obsolete on SPARC hardware and, if your on x86 hardware, it would
seem that they aren't doing what you think.  Here's what I found on
them:

-KPIC -- (x86) -KPIC is identical to -Kpic.
-Kpic -- (x86) Generate position-independent code for use in shared
libraries (small model). Permits references to, at most, 2**11 unique
external symbols.

So, with x86 architectures, -KPIC only works with the small model
whereas you've defined the medium model.  My bet is that you need to
do away with the -KPIC flag.

Erik Jones

Software Developer | Emma®
erik@myemma.com
800.595.4401 or 615.292.5888
615.292.0777 (fax)

Emma helps organizations everywhere communicate & market in style.
Visit us online at http://www.myemma.com