PEPPLER.ORG
Michael Peppler
Sybase Consulting
Menu
Home
Sybase on Linux
Install Guide for Sybase on Linux
General Sybase Resources
General Perl Resources
Freeware
Sybperl
Sybase::Simple
DBD::Sybase
BCP Tool
Bug Tracker
Mailing List Archive
Downloads Directory
FAQs
Sybase on Linux FAQ
Sybperl FAQ
Personal
Michael Peppler's resume

sybperl-l Archive

Up    Prev    Next    

From: abe dot crabtree at citicorp dot com
Subject: Re: Sybperl installation problem
Date: Dec 19 2001 9:21AM

Michael is exactly right.

chatr shows that your sybase extension dynamically links to libm.2, while perl 
is linking to earlier libraries.  Thinking back, it is libc (C runtime) that 
defines _DINFINITY, and libm (maths) that reads it - BUT, only v2 of libc does 
this, so libc.1 and libm.2 are incompatible.

It's no good trying to link your perl extension to libc.2, because the dynamic 
libraries are loaded explicitly during runtime by dynloader, using an HP-UX 
system call to load it (forget its name,) and this will not work for libraries 
containing data with thread-local storage, which libc has.  Therefore you 
absolutely must have your sybase library link libm, but get its libc from the 
main perl executable, so they have to be compatible, so you have to rebuild 
perl!

Maybe you get the chatr warning because your version of perl has old libraries. 
 It doesn't matter though: you have to rebuild anyway, and you should be okay 
thereafter - your version of HP-UX should have all up to date tools, and when 
you chatr your new perl executable, you should get something like:

./perl:                                                                       
         shared executable                                                    
         shared library dynamic path search:                                  
             SHLIB_PATH     disabled  second                                  
             embedded path  disabled  first  Not Defined                      
         shared library list:                                                 
             dynamic   /usr/lib/libnsl.1                                      
             dynamic   /usr/lib/libnm.sl                                      
             dynamic   /usr/lib/libdld.2                                      
             dynamic   /usr/lib/libm.2                                        
             dynamic   /usr/lib/libc.2                                        
             dynamic   /usr/lib/libsec.2                                      
         shared library binding:                                              
             deferred                                                         
         global hash table disabled                                           
         plabel caching disabled                                              
         global hash array size:1103                                          
         global hash array nbuckets:3                                         
         shared vtable support disabled                                       
         static branch prediction disabled                                    
         executable from stack: D (default)                                   
         kernel assisted branch prediction enabled                            
         lazy swap allocation disabled                                        
         text segment locking disabled                                        
         data segment locking disabled                                        
         third quadrant private data space disabled                           
         fourth quadrant private data space disabled                          
         data page size: D (default)                                          
         instruction page size: D (default)                                   

I didn't have any particular trouble building perl 5.6.1 (latest version,) so I 
hope you'll be okay.

Any further problems let me know & I'll try & help (I'm in England, hence the 
time differences and slow answer.)

Regards,

Abe 



-----Original Message-----
From: mpeppler [mailto:mpeppler@peppler.org]
Sent: 18 December 2001 19:40
To: SYBPERL-L
Cc: mpeppler; mpeppler; sybperl-l
Subject: Re: Sybperl installation problem


I'm not really up-to-date on HP-UX (as in - I've never used it!) but
it seems that the warning when running the chatr command on the perl
binary might indicate that there's something wrong with it.

Maybe you could try rebuilding the perl binary?

Michael

Chi Huang writes:
 > 
 > Hi Michael,
 > 
 > Thanks for the prompt reply. I followed your recommendation, but I don't
 > know too much about this linking stuff. I am enclosing the output of
 > chatr. Hope you can make some sense out of it, and a way to fix it.
 > Thanks again.
 > 
 > Regards,
 > 
 > Chi Huang
 > 
 > ----------------BEGIN------------------------------
 > 
 > $ chatr blib/arch/auto/Sybase/DBlib/DBlib.sl
 > blib/arch/auto/Sybase/DBlib/DBlib.sl: 
 >          shared library 
 >          shared library dynamic path search:
 >              SHLIB_PATH     disabled  second 
 >              embedded path  disabled  first  Not Defined
 >          shared library list:
 >              dynamic   /home/sybase1200/OCS-12_0/lib/libinsck.sl
 >              dynamic   /home/sybase1200/OCS-12_0/lib/libsybdb.sl
 >              dynamic   /usr/lib/libm.2
 >          shared vtable support disabled
 >          static branch prediction disabled
 >          executable from stack: D (default)
 >          kernel assisted branch prediction enabled
 >          lazy swap allocation disabled
 >          text segment locking disabled
 >          data segment locking disabled
 >          third quadrant private data space disabled
 >          fourth quadrant private data space disabled
 >          data page size: D (default)
 >          instruction page size: D (default)
 > 
 > $ chatr /usr/local/bin/perl                 
 > chatr(warning): dl_header_ext.size != sizeof(dl_header_ext). Please update 
your version of the linker. 
 > /usr/local/bin/perl: 
 >          shared executable 
 >          shared library dynamic path search:
 >              SHLIB_PATH     enabled   first  
 >              embedded path  enabled   second 
/opt/perl5.6.0/lib/5.6.0/PA-RISCportable/CORE
 >          shared library list:
 >              dynamic   /usr/local/src/perl-5.6.0/libperl.sl
 >              dynamic   /usr/lib/libnsl_s.1
 >              dynamic   /usr/lib/libdbm.1
 >              dynamic   /usr/lib/libdld.1
 >              dynamic   /usr/lib/libc.1
 >              dynamic   /usr/lib/libsec.1
 >          shared library binding:
 >              deferred 
 >          global hash table disabled
 >          plabel caching disabled
 >          global hash array size:1103
 >          global hash array nbuckets:3
 >          shared vtable support disabled
 >          static branch prediction disabled
 >          executable from stack: D (default)
 >          kernel assisted branch prediction enabled
 >          lazy swap allocation disabled
 >          text segment locking disabled
 >          data segment locking disabled
 >          third quadrant private data space disabled
 >          fourth quadrant private data space disabled
 >          data page size: D (default)
 >          instruction page size: D (default)
 > -------------------END-----------------------------------
 > 
 > > Chi Huang writes:
 > >  > 
 > >  > Hi Michael,
 > >  > 
 > >  > I am trying to install sybperl-2.14 on the following system:
 > >  > 
 > >  > SYBASE: ASE 12.0 
 > >  > OS: HP-UX 11.0
 > >  > Perl version: perl 5.6.0.
 > >  > 
 > >  > I got the "perl Makefile.PL" and "make" to work, but "make test" failed.
 > >  > I am enclosing the message from make and make test. Hope you can help
 > >  > me to fix this.
 > > 
 > >  >  qw(&runtests $verbose); $verbose=0; runtests @ARGV;' t/*.t
 > >  > t/bcp.............../usr/lib/dld.sl: Unresolved symbol: _DINFINITY 
(data)  
 > > from
 > >  >  /home/sybase1200/OCS-12_0/lib/libsybdb.sl
 > >  > Can't load '../blib/arch/auto/Sybase/DBlib/DBlib.sl' for module 
Sybase::DBl
 > > ib: 
 > > 
 > > I seem to remember someone else having a similar problem recently, and
 > > that the problem was that the version of perl that was running was not
 > > linked with the same version of libm (or something like that).
 > > 
 > > Try a chatr on your perl binary, and a chatr on DBlib.sl and see if
 > > they want to load the same libm.
 > > 
 > > Michael
 > > -- 
 > > Michael Peppler - Data Migrations Inc. - http://www.mbay.net/~mpeppler
 > > mpeppler@peppler.org - mpeppler@mbay.net
 > > International Sybase User Group - http://www.isug.com

-- 
Michael Peppler - Data Migrations Inc. - http://www.mbay.net/~mpeppler
mpeppler@peppler.org - mpeppler@mbay.net
International Sybase User Group - http://www.isug.com