Re: Postgres 8.2.5 compilation problem on OpenSolaris/Solaris

From: "Dot Yet" <dot(dot)yet(at)gmail(dot)com>
To: "Erik Jones" <erik(at)myemma(dot)com>
Cc: "General PostgreSQL List" <pgsql-general(at)postgresql(dot)org>
Subject: Re: Postgres 8.2.5 compilation problem on OpenSolaris/Solaris
Date: 2007-10-11 20:17:49
Message-ID: 93bc4af40710111317r5247e4e5kdfa1fae9aa1da51@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

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(at)myemma(dot)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(r)
> erik(at)myemma(dot)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
>
>
>

In response to

Browse pgsql-general by date

  From Date Subject
Next Message Alan Hodgson 2007-10-11 20:42:54 Re: RES: 8.2.4 selects make applications wait indefinitely
Previous Message Carlos H. Reimer 2007-10-11 20:11:13 RES: 8.2.4 selects make applications wait indefinitely