in reply to Re: DBD::Sybase make fails because of incompatible shared object(.so)
in thread DBD::Sybase - 'make' fails because of incompatible shared object(.so)

Good news :), I tried one more thing today, which is upgrading my perl from 5.8 to 5.14 and then i tried installing DBD::Sybase.

But along with that prior installing i did 2 things -

First - source /opt/sap/SYBASE.sh ## This make sure the required {ENV} variabl +es are set like $SYBASE etc Second, i read somewhere that DBD::Sybase require $PERL5LIB to be set +- export PERL5LIB=$SYBASE/$SYBASE_OCS/perl/sybaseperl_64r/lib/lib:$SYBAS +E/$SYBASE_OCS/perl/sybaseperl_64r/lib/arch:$SYBASE/$SYBASE_OCS/perl/s +ybaseperl_64r/lib

After doing the above export & source the installation was smooth, it picked automatically the 64 bit .so files, even the 'make test' passed which was not the case when i tried with perl 5.8

[root@idcbuildbox268 sybase_playground]# perl -MCPAN -e 'install DBD:: +Sybase' Going to read '/root/.cpan/Metadata' Database was generated on Mon, 28 Sep 2015 17:17:02 GMT Running install for module 'DBD::Sybase' Running make for M/ME/MEWP/DBD-Sybase-1.15.tar.gz Checksum for /root/.cpan/sources/authors/id/M/ME/MEWP/DBD-Sybase-1.15. +tar.gz ok CPAN.pm: Going to build M/ME/MEWP/DBD-Sybase-1.15.tar.gz Unknown Client Library version - assuming FreeTDS. By default DBD::Sybase 1.05 and later use the 'CHAINED' mode (where av +ailable) when 'AutoCommit' is turned off. Versions 1.04 and older instead manag +ed the transactions explicitly with a 'BEGIN TRAN' before the first DML statement. Using the 'CHAINED' mode is preferable as it is the way tha +t Sybase implements AutoCommit handling for both its ODBC and JDBC drive +rs. Use 'CHAINED' mode by default (Y/N) [Y]: Running in 64bit mode - looking for '64' libraries... Found -lsybct64 for -lsybct Found -lsybcs64 for -lsybcs Found -lsybtcl64 for -lsybtcl Found -lsybcomn64 for -lsybcomn Found -lsybintl64 for -lsybintl Found -lsybblk64 for -lsybblk BLK api available - found: sybblk64 The DBD::Sybase module need access to a Sybase server to run the tests +. To clear an entry please enter 'undef' Sybase server to use (default: SYBASE): IDCBUILDBOX268 User ID to log in to Sybase (default: sa): sa Password (default: undef): sybase123 Sybase database to use on IDCBUILDBOX268 (default: undef): ariba1 * Writing login information, including password, to file PWD. Checking if your kit is complete... Looks good Using DBI 1.634 (for perl 5.014000 on x86_64-linux) installed in /usr/ +local/lib/perl5/site_perl/5.14.0/x86_64-linux/auto/DBI/ Writing Makefile for DBD::Sybase Writing MYMETA.yml cp dbd-sybase.pod blib/lib/DBD/dbd-sybase.pod cp Sybase.pm blib/lib/DBD/Sybase.pm /usr/local/bin/perl -p -e "s/~DRIVER~/Sybase/g" /usr/local/lib/perl5/s +ite_perl/5.14.0/x86_64-linux/auto/DBI/Driver.xst > Sybase.xsi /usr/local/bin/perl /usr/local/lib/perl5/5.14.0/ExtUtils/xsubpp -type +map /usr/local/lib/perl5/5.14.0/ExtUtils/typemap Sybase.xs > Sybase. +xsc && mv Sybase.xsc Sybase.c cc -c -I/opt/sap/OCS-16_0/include -DSYB_LP64 -I/usr/local/lib/perl5/s +ite_perl/5.14.0/x86_64-linux/auto/DBI -fno-strict-aliasing -pipe -fst +ack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET +_BITS=64 -O2 -DVERSION=\"1.15\" -DXS_VERSION=\"1.15\" -fPIC "-I/usr +/local/lib/perl5/5.14.0/x86_64-linux/CORE" Sybase.c cc -c -I/opt/sap/OCS-16_0/include -DSYB_LP64 -I/usr/local/lib/perl5/s +ite_perl/5.14.0/x86_64-linux/auto/DBI -fno-strict-aliasing -pipe -fst +ack-protector -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET +_BITS=64 -O2 -DVERSION=\"1.15\" -DXS_VERSION=\"1.15\" -fPIC "-I/usr +/local/lib/perl5/5.14.0/x86_64-linux/CORE" dbdimp.c Running Mkbootstrap for DBD::Sybase () chmod 644 Sybase.bs rm -f blib/arch/auto/DBD/Sybase/Sybase.so LD_RUN_PATH="/opt/sap/OCS-16_0/lib" cc -L/opt/sap/OCS-16_0/lib -share +d -O2 -L/usr/local/lib -fstack-protector Sybase.o dbdimp.o -o blib/a +rch/auto/DBD/Sybase/Sybase.so \ -L/opt/sap/OCS-16_0/lib -lsybct64 -lsybcs64 -lsybtcl64 -lsybcom +n64 -lsybintl64 -lsybblk64 -ldl -lm \ chmod 755 blib/arch/auto/DBD/Sybase/Sybase.so cp Sybase.bs blib/arch/auto/DBD/Sybase/Sybase.bs chmod 644 blib/arch/auto/DBD/Sybase/Sybase.bs Manifying blib/man3/DBD::Sybase.3 MEWP/DBD-Sybase-1.15.tar.gz /usr/bin/make -- OK 'YAML' not installed, will not store persistent state Running make test ... ... ... ... Result: PASS MEWP/DBD-Sybase-1.15.tar.gz /usr/bin/make test -- OK Running make install Files found in blib/arch: installing files in blib/lib into architectu +re dependent library tree Installing /usr/local/lib/perl5/site_perl/5.14.0/x86_64-linux/auto/DBD +/Sybase/Sybase.so Installing /usr/local/lib/perl5/site_perl/5.14.0/x86_64-linux/auto/DBD +/Sybase/Sybase.bs Installing /usr/local/lib/perl5/site_perl/5.14.0/x86_64-linux/DBD/dbd- +sybase.pod Installing /usr/local/lib/perl5/site_perl/5.14.0/x86_64-linux/DBD/Syba +se.pm Installing /usr/local/share/man/man3/DBD::Sybase.3 Appending installation info to /usr/local/lib/perl5/5.14.0/x86_64-linu +x/perllocal.pod MEWP/DBD-Sybase-1.15.tar.gz /usr/bin/make install -- OK

Not sure whether this was because of Perl 5.14 upgrade or because of the PERL5LIB env variable or combination :)

Also, the linux machine on which i was trying is a VM provided to the developers, so it can be that perl was copied instead of compiling & installing. When i upgraded i compiled on the vm and installed, i guess that might also make a difference