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: JPifer at jefco dot com
Subject: Compiling 2.14
Date: Aug 2 2002 6:47PM

      I'm having difficulties compiling 2.14 (and 2.14_50) on Solaris 2.7.
Here is one of my attempts:

<######SNIP#######>
bash-2.02# gzip -cd sybperl-2.14.tar.gz | tar -xf -
bash-2.02# cd sybperl-2.14
bash-2.02# perl Makefile.PL
Sybase OpenClient 12.0 found.
The sybperl modules need access to a Sybase server to run the tests.
To clear an entry please enter 'undef'
Sybase server to use (default: undef):
User ID to log in to Sybase (default: sa):
Password (default: undef):
Checking if your kit is complete...
Looks good
Sybase OpenClient 12.0 found.
Checking if your kit is complete...
Looks good
Writing Makefile for Sybase::BCP
Sybase OpenClient 12.0 found.
Checking if your kit is complete...
Looks good
Writing Makefile for Sybase::BLK
Sybase OpenClient 12.0 found.
Running in threaded mode - looking for _r libraries...
Found -lct_r for -lct
Found -lcs_r for -lcs
Found -ltcl_r for -ltcl
Found -lcomn_r for -lcomn
Found -lintl_r for -lintl
Found -lblk_r for -lblk
Writing Makefile for Sybase::CTlib
Sybase OpenClient 12.0 found.
Writing Makefile for Sybase::DBlib
Sybase OpenClient 12.0 found.
Writing Makefile for Sybase::Sybperl
Writing Makefile for Sybase
bash-2.02# make
mkdir blib
mkdir blib/lib
mkdir blib/arch
mkdir blib/arch/auto
mkdir blib/arch/auto/Sybase
mkdir blib/lib/auto
mkdir blib/lib/auto/Sybase
cp config.pl blib/lib/config.pl
cp lib/sql.pl blib/lib/sql.pl
cp lib/sybperl.pl blib/lib/sybperl.pl
cp lib/sybutil.pl blib/lib/sybutil.pl
cp lib/ctutil.pl blib/lib/ctutil.pl
mkdir ../blib/lib/Sybase
mkdir ../blib/arch/auto/Sybase/BCP
mkdir ../blib/lib/auto/Sybase/BCP
mkdir ../blib/man3
cp BCP.pm ../blib/lib/Sybase/BCP.pm
Manifying ../blib/man3/Sybase::BCP.3
mkdir ../blib/arch/auto/Sybase/BLK
mkdir ../blib/lib/auto/Sybase/BLK
cp BLK.pm ../blib/lib/Sybase/BLK.pm
Manifying ../blib/man3/Sybase::BLK.3
mkdir ../blib/arch/auto/Sybase/CTlib
mkdir ../blib/lib/auto/Sybase/CTlib
cp CTlib.pm ../blib/lib/Sybase/CTlib.pm
AutoSplitting ../blib/lib/Sybase/CTlib.pm (../blib/lib/auto/Sybase/CTlib)
cp CTlib.pod ../blib/lib/Sybase/CTlib.pod
/usr/bin/perl -I/opt/FSFperl/lib/5.00503/sun4-solaris-thread
-I/opt/FSFperl/lib/5.00503 /opt/FSFperl/lib/5.00503/ExtUtils/xsubpp
-prototypes -typemap /opt/FSFperl/lib/5.00503/ExtUtils/typemap CTlib.xs
>xstmp.c && mv xstmp.c CTlib.c
cc -c -I/opt/sybase/OCS-12_0/include -D_REENTRANT -O     -DVERSION=\"2.14\"
-DXS_VERSION=\"2.14\" -KPIC
-I/opt/FSFperl/lib/5.00503/sun4-solaris-thread/CORE -DCTLIBVS=100
-DSYBPLVER='"2.14"' -DDO_TIE CTlib.c
"CTlib.xs", line 538: undefined symbol: thr
"CTlib.xs", line 538: left operand of "->" must be pointer to struct/union
cc: acomp failed for CTlib.c
*** Error code 2
make: Fatal error: Command failed for target `CTlib.o'
Current working directory /tmp/sybperl-2.14/CTlib
*** Error code 1
make: Fatal error: Command failed for target `subdirs'


      2.14 happily compiles on my Slackware dev box and I have no problems
there.  2.13 was installed by the same team I have installing 2.14 (I don't
have their past methods) and it works fine.  I've even gotten it to compile
on the same Solaris 7 box with a different version of perl.  Here's the
Perl -V for the failing compile:

<######SNIP#######>
Summary of my perl5 (5.0 patchlevel 5 subversion 3) configuration:
  Platform:
    osname=solaris, osvers=2.6, archname=sun4-solaris-thread
    uname='sunos flexmsg2p 5.6 generic_105181-05 sun4u sparc
sunw,ultra-5_10 '
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=define useperlio=undef d_sfio=undef
  Compiler:
    cc='cc', optimize='-O', gccversion=
    cppflags='-D_REENTRANT'
    ccflags ='-D_REENTRANT'
    stdchar='unsigned char', d_stdstdio=define, usevfork=false
    intsize=4, longsize=4, ptrsize=4, doublesize=8
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =''
    libpth=/lib /usr/lib /usr/ccs/lib
    libs=-lsocket -lnsl -ldl -lm -lposix4 -lpthread -lc -lcrypt
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-KPIC', lddlflags='-G'


Characteristics of this binary (from libperl):
  Built under solaris
  Compiled at Apr 12 1999 08:33:25
  @INC:
    /opt/FSFperl/lib/5.00503/sun4-solaris-thread
    /opt/FSFperl/lib/5.00503
    /opt/FSFperl/lib/site_perl/5.005/sun4-solaris-thread
    /opt/FSFperl/lib/site_perl/5.005
    .


And here is the Perl -V for the successful compile:

<######SNIP#######>
Summary of my perl5 (revision 5.0 version 6 subversion 1) configuration:
  Platform:
    osname=solaris, osvers=2.7, archname=sun4-solaris
    uname='sunos jefomsdev 5.7 generic_106541-14 sun4u sparc sunw,ultra-250 '
    config_args=''
    hint=recommended, useposix=true, d_sigaction=define
    usethreads=undef use5005threads=undef useithreads=undef usemultiplicity=undef
    useperlio=undef d_sfio=undef uselargefiles=define usesocks=undef
    use64bitint=undef use64bitall=undef uselongdouble=undef
  Compiler:
    cc='cc', ccflags ='-I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64',
    optimize='-O',
    cppflags='-I/usr/local/include'
    ccversion='Sun WorkShop 6 update 2 C 5.3 2001/05/15', gccversion='', gccosandvers=''
    intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=4321
    d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=16
    ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
    alignbytes=8, usemymalloc=y, prototype=define
  Linker and Libraries:
    ld='cc', ldflags =' -L/opt/SUNWspro/WS6U2/lib -L/usr/local/lib '
    libpth=/opt/SUNWspro/WS6U2/lib /usr/lib /usr/ccs/lib /usr/local/lib
    libs=-lsocket -lnsl -ldl -lm -lc -lpthread
    perllibs=-lsocket -lnsl -ldl -lm -lc
    libc=/lib/libc.so, so=so, useshrplib=false, libperl=libperl.a
  Dynamic Linking:
    dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags=' '
    cccdlflags='-KPIC', lddlflags='-G -L/opt/SUNWspro/WS6U2/lib -L/usr/local/lib'


Characteristics of this binary (from libperl):
  Compile-time options: USE_LARGE_FILES
  Built under solaris
  Compiled at Oct  9 2001 12:52:36
  @INC:
    /apps/perl.561/lib/5.6.1/sun4-solaris
    /apps/perl.561/lib/5.6.1
    /apps/perl.561/lib/site_perl/5.6.1/sun4-solaris
    /apps/perl.561/lib/site_perl/5.6.1
    /apps/perl.561/lib/site_perl
    .


      I would like to find a minimally invasive way to get 2.14 to compile
properly as I have found the new BLK_* routines extremely useful (thanks
Michael!) and incredibly fast.  But I don't want to upgrade many Solaris
machines without identifying what the problem is exactly.
      I've tried quite a few other permutations using my somewhat limited
user access on Solaris machines, and it seems to be narrowing down to the
fact that the latter version of Perl was compiled without threading support
in any fashion and I would rather not go without threads.  (In fact, I'm
hoping to start testing with 5.8's ithreads soon)

      Any help is appreciated!!

      Thanks,
      Jayson Pifer

---------------------------------------------------------------



--------------------------------------------------------------
Jefferies archives and reviews outgoing and incoming e-mail.  Such may be 
produced at the request of regulators. Sender accepts no liability for 
any errors or omissions arising as a result of  transmission. Use by other than 
intended recipients is prohibited. This is neither an offer nor a 
solicitation of an offer to buy or sell securities. Opinions or estimates 
constitute our best judgment at this time and are subject to change without 
notice. Information upon which this material is based was obtained from 
sources believed to be reliable but has not been verified. Additional 
information is available upon request. Jefferies its affiliates and 
respective directors officers and employees may buy or sell 
securities mentioned as agent or principal. This is for use by 
professional or institutional investors only. No investments or 
services mentioned or described are available to "private 
customers" as defined by the SFA or to anyone in Canada not a "Designated 
Institution".