develooper Front page | perl.perl5.porters | Postings from December 2004

[perl #33157] perl 5.8.6 build chokes with db 4.3.21

Thread Previous
Jeff Earickson
December 22, 2004 14:33
[perl #33157] perl 5.8.6 build chokes with db 4.3.21
Message ID:
# New Ticket Created by  Jeff Earickson 
# Please include the string:  [perl #33157]
# in the subject line of all future correspondence about this issue. 
# <URL: >


Perl 5.8.6 build fails with Sleepycat db-4.3.21 on Solaris 9 systems. 
I am using Sun's StudioOne (version 8) compiler for both DB and Perl.
Perl 5.8.6 builds with no problems using db-4.2.52.

How Sleepycat db-4.3.21 is configured and installed:

tar xzvf db-4.3.21.tar.gz
cd db-4.3.21/build_unix
../dist/configure --prefix=/opt/BerkeleyDB.4.3 >& dbconfig.out (attached)
gmake install
then a symlink for /opt/BerkleyDB -> /opt/BerkleyDB.4.3 is created, because
the library loader info via "crle" is defined as:

crle -c /var/ld/ld.config -l /usr/lib:/opt/openssl/lib:/opt/BerkeleyDB/lib:/usr/local/lib

The Build (and failure) of perl 5.8.6:

./Configure  -Ui_gdbm -Dprefix=/opt/perl5 \
-Dlocincpth="/opt/openssl/include /opt/BerkeleyDB/include /usr/local/include" \
-Dloclibpth="/opt/openssl/lib /opt/BerkeleyDB/lib /usr/local/lib" \
-Dcf_email="" -Dperladmin="" \
-Drunnm=false -Dldlibpthname=none -Duseshrplib=true -Dinstallusrbinperl -ders

This results in:

You specified no cc but you seem to have the Workshop compiler
(/opt/SUNWspro/bin/cc) installed, using that.
If you want something else, specify that in the command line,
e.g. Configure -Dcc=gcc

Operating system name? [solaris] 
Operating system version? [2.9] 
Build Perl for SOCKS? [n] 
Use the PerlIO abstraction layer? [y] 
Build a threading Perl? [n] 
Build Perl for multiplicity? [n] 
Use which C compiler? [/opt/SUNWspro/bin/cc] 
Checking for GNU cc in disguise and/or its version number...
Now, how can we feed standard input to your C preprocessor...
Directories to use for library searches?
[/usr/lib /usr/ccs/lib /opt/SUNWspro/prod/lib /opt/openssl/lib /opt/BerkeleyDB/lib /usr/local/lib] 
What is the file extension used for shared libraries? [so] 
Try to use long doubles if available? [n] 
Checking for optional libraries...
What libraries to use? [-lsocket -lnsl -ldb -ldl -lm -lc] 
What optimizer/debugger flag should be used? [-O] 
Any additional cc flags?
[-I/opt/openssl/include -I/opt/BerkeleyDB/include -I/usr/local/include] 
Let me guess what the preprocessor flags are...
Any additional ld flags (NOT including libraries)?
[ -L/usr/lib -L/usr/ccs/lib -L/opt/SUNWspro/prod/lib -L/opt/openssl/lib -L/opt/BerkeleyDB/lib -L/usr/local/lib] 
Checking your choice of C compiler and flags for coherency...
I've tried to compile and run the following simple program:

#include <stdio.h>
int main() { printf("Ok\n"); return(0); }

I used the command:

         /opt/SUNWspro/bin/cc -o try -O -I/opt/openssl/include -I/opt/BerkeleyDB/include -I/usr/local/include -L/usr/lib -L/usr/ccs/lib -L/opt/SUNWspro/prod/lib -L/opt/openssl/lib -L/opt/BerkeleyDB/lib -L/usr/local/lib try.c -lsocket -lnsl -ldb -ldl -lm -lc

and I got the following output:

Undefined                       first referenced
  symbol                             in file
fdatasync                           /opt/BerkeleyDB/lib/
ld: fatal: Symbol referencing errors. No output written to try
I can't compile the test program.
You have a BIG problem.  Shall I abort Configure [y] 
Ok.  Stopping Configure.

Boom!  This is either a bug in Sleepycat DB or a change in it interface
which perl 5.8.6 does not handle correctly.

Jeff A. Earickson, Ph.D 
Senior UNIX Sysadmin, Email Guru,
Colby Communications Sports Photographer
Colby College, 4214 Mayflower Hill,
Waterville ME, 04901-8842
phone: 207-859-4214 **NEW** (fax = 3076)
Thread Previous Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About