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

Reply via email to