Re: DBD::Informix

Jonathan Leffler <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.dbi.general
Message-ID <CAH+RLGHj++6jpaSe7vzpi5XTtrm5YR6Uwv5rkTR+3d1hnsti=w@mail.gmail.com>
On Sun, Jun 30, 2013 at 2:38 AM, Dr. Helmut Zeilinger <[email protected]> wrote:

>  I have Problems to build DBD::Informix (DBD-Informix-2013.0521).
>
> The output of "bug_report ('B')" is attached..
>

I'm sorry you've run into problems.  Thank you for using the bug reporting
tools provided.

The problem lines in the output are (split to avoid grossly overlong lines
— but mail clients may do more damage to them):

INFORMIXC='/usr/bin/perl5.16.3 esqlld' ESQLLD='x86_64-pc-linux-gnu-gcc

-shared -march=core2 -mtune=generic -O2 -pipe -Wl,-O1 -Wl,--as-needed'
esql  -shared -march=core2 -mtune=generic -O2 -pipe -Wl,-O1 -Wl,--as-needed
Informix.o dbdimp.o dbdattr.o sqltoken.o sqltype.o ixblob.o odbctype.o
kludge.o link.o esqlcver.o esqlc_v6.o  -o
blib/arch/auto/DBD/Informix/Informix.so 	\
     	\

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.4/../../../../lib64/crt1.o: In
function `_start':
(.text+0x20): undefined reference to `main'
Informix.o: In function `XS_DBD__Informix__dr_driver_init':
Informix.c:(.text+0x1e): undefined reference to `PL_thr_key'


followed by many, many more similar undefined references.  The reference to
`main` is interesting; it tells me that things have gone horribly wrong,
but in a fairly tightly-constrained area of the code, namely the linking of
the shared library.

Further debugging information is going to be necessary; I recommend keeping
it off the DBI Users mailing list.

Please run the build phase (no need to redo the configuration phase; no
need to remove the object files) with these environment variables set:

DBD_INFORMIX_DEBUG_ESQLLD=1 \
DBD_INFORMIX_DEBUG_ESQLCC=1 \
make 2>&1 | tee dbdix.log

This should give information about what is going on inside the esqlld and
esqlcc scripts.  Send the output file dbdix.log to [email protected],
please.


At this stage, my best guess is that the Makefile.PL has clobbered some
important flag so that the shared object build thinks it is trying to build
a program and not a shared library.  However, this may well involve
tinkering inside Makefile.PL in the medium term, which is not a pleasant
thought — it is ugly code!  And some of the 15 year old hacks may well have
outlived their usefulness, and the ways used to tweak ExtUtils::MakeMaker
settings may be ... sub-optimal, shall we say.

Do you still have the source for DBI around?  If so, I may end up asking
you to build that and send (some of) the output from that, simply to
provide a comparison between 'working' (DBI) and 'not working'
(DBD::Informix) shared library build command lines.

-- 
Jonathan Leffler <[email protected]>  #include <disclaimer.h>
Guardian of DBD::Informix - v2013.0521 - http://dbi.perl.org
"Blessed are we who can laugh at ourselves, for we shall never cease to be
amused."
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.