On 05/10/10 08:19, Chunmei Wu wrote:
Hi Martin, Reinhard and Jens,
Please do not top-post
Thanks for your advice. Following is related info you referred:
1> Are all the components in your chain (perl, driver manager, driver) all64
bit?
[Chunmei]: The unixODBC driver and the DB2 driver are 64bit. Seems that my perl
is 32bit from following info. Is this the reason for my error????
The chance for it is near 100%
Can you use either 32-bit lib for DB2 and unixODBC or rebuild your perl
using 64bit?
unixus...@dsliaa05 #> file perl
perl: executable (RISC System/6000) or object module
[...]
Characteristics of this binary (from libperl):
Compile-time options: USE_LARGE_FILES
Locally applied patches:
IndigoPerl Build 804
Built under aix
Compiled at Feb 9 2003 13:22:48
[...]
4> I think it could be helpful (if no one else has a better proposal) to start
fresh and record the entire make output in a file
[Chunmei]: I did it, but I didn't get any error when run 'make':
a) perl Makefile.PL
Warning: LD_LIBRARY_PATH doesn't include
/home/eng-sm/unixuser/claire/test/perl/unixodbc_install2.3.0_64/
[Chunmei]: the warning is strange. Even I set this environment to
include this directory, it still report such warning. Meanwhile, I think AIX
didn't use this environment but LIBPATH.
WARNING: NO_META is not a known parameter.
Please do not guess which information we need - please attache the entire
log as I told you. The warning is useful to add a patch to the Makefile.PL
to recognize LIBPATH on AIX, but nothing else
b) make
NO warning.
What -L paths? What RPATH are used. Are some previous RPATH are overwritten
by later options? What compiler/linker flags where used?
I think, all DBD's should include the links to
http://www.catb.org/~esr/faqs/smart-questions.html and
http://www.chiark.greenend.org.uk/~sgtatham/bugs.html ...
c) make test
The error 'can't load library...' occur.
5> Looks to me like libperl.a is missing from the requirements list of
ODBC.so. As long you don't have statically linked the perl runtime, this could be
an issue.
[Chunmei]: Following command is used to create ODBC.so:
LD_RUN_PATH="/home/eng-sm/unixuser/claire/test/perl/unixodbc_install2.3.0_64/lib"
ld -bhalt:4 -bM:SRE
-bI:/vobs/vob_src_3rdparty/src/3rdparty/perl2exe/aix/perl2exe/perl5.8/lib/5.8.0/aix/CORE/perl.exp
-bE:ODBC.exp -bnoentry -lC -lc ConvertUTF.o ODBC.o dbdimp.o unicode_helper.o -o
blib/arch/auto/DBD/ODBC/ODBC.so
-L/home/eng-sm/unixuser/claire/test/perl/unixodbc_install2.3.0_64/lib -lodbc
No error reports during the build and the ldd also is ok.
Probably.
6> Maybe it is only a question of dynamic loaded libraries not included in the
search path. If I remember well there is a LD_LIBRARY_PATH variable you can add
locations where to search libraries to be loaded when executing the program.
[Chunmei]: AIX uses LIBPATH instead of LD_LIBRARY_PATH to search libraries. The value of
$LIBPATH is
"/home/eng-sm/unixuser/claire/test/perl/unixodbc_install2.3.0_64//lib:/usr/lib:/lib:/opt/IBM/db2/V9.7/lib64"
in my environment.
Jens