On Fri, 7 Dec 2001, Nagesh Ayyagari wrote:

> Steve,
> 
> Thanks for your response. I was tired with trying all the options. But after
> seeing y'r mail I am encouraged to try your suggestions. Please find the
> inline answers for your questions.

> ==> xlC VAC Version 5

Hmm.  I don't have a lot of experience with that compiler yet.  We are 
still mostly using xlC 3.6.6.  I have had reports of problems with VAC 
when building 64-bit Perl, but that was some time ago.

> >
> > 3. Is the module compiled as C++ code?  Is OCI using C++ linkage?
> 
> ===> No we are not using any C++ linkage. All the modules in shared library
> are coded in C.

Ah.  I should have asked: Were your OCI libs built with the same level of 
compiler and linker?

> > 4. Can you post the output of 'perl -V'?
> 
> ===>
> 
> $ perl5.6 -version
> 
> This is perl, v5.6.1 built for aix

(snip)

No, I needed to see 'perl -V' (uppercase V).

> > 5. Can you post the expanded commands issued during the module build for
> >    both compiling and linking?
> 
> ===> Compile time options and command
> cc -g -DDEBUG -DDEBUG1 -DAIX -c -I/usr/local/..... -I/usr/local...
>  -I/usr/local/..../zlib -I/usr/local/....xdelta -I/...../serv8171/rdbms/demo

(snip)

At first glance, that looks reasonable.

> Note : I have replaced some product specific directories with ...  These make
> files are generated by the MakeMaker utility (version  5.45) of Perl 5.6.1.
> The only change we had to do for AIX was to generate a Repos.exp file so that
> we can export the symbols.

                 ^^^^^^^^^^^^^^^^

Ok.  That doesn't sound right.  This should have been done for you by 
MakeMaker.  You're saying you had modify the Makefile and/or Makefile.PL?  
I have never had to do this with straight C code (C++ is another story 
altogether - let's not go there.)  The MakeMaker seems to get it right.

If this isn't working, then I'm a little suspect of the Perl binary build, 
as MakeMaker takes most of its smarts from Config.  If the build is not 
the same as mine, that could be the root of your problems.  I'm guessing 
you built that Perl yourself (to my knowledge, IBM is not shipping 5.6.1 
with the BOS install.)

> >
> > 6. Are you able to get a trivial XS function (e.g. 'Hello, World') to
> >    build and run in the AIX environment?

A reality check would be valuable.

> 
> ==> I have not tried compiling trivial XS function. However,  in Repos.so I
> could see that few functions like connect(), commit() & rollback() are
> working when called from "test.pl" program. However, when we call
> fetch_version() it dumps core. I have tried putting fprintf(stderr..)
> statements in Repos.c and could see that it fails after the line "dXSARGS;"
> gets executed.

So are you saying that some things _do_ work correctly?  I'm confused.  
What is 'fetch_version' trying to do that the others aren't?  Is it 
accessing something which was passed as an IV?

Steve


Reply via email to