David,
BINGO!! That did the trick. Looking at your instructions I understand the nifty
little trick you pulled. By moving the shared libraries out of the lib/mysql
directory, Mysql-modules was forced to link using the static libraries thereby
skipping all the dynamic loading problems.
Very cool.
Thanks for your responses, David and Jochen. Ya saved my skin!! :)
Mark Nickel
PS. I'm wasting a bit of bandwidth and posting this message to the whole mail
list. I couldn't find these instructions using the search engine provided by the
MARC people's at
MARC: Mailing list ARChives at PCC
I think these instructions are excellent, thanks again!
David Wendt wrote:
> Mark,
>
> Here is a process I used to get the modules compiled on HP-UX 10.20. Thanks to
> both Monty and Jochen.
>
> Hope it helps.
>
> David Wendt
> IT Engineer
> Hewlett Packard Company
> Colorado Springs, CO
>
> Download the following hp-ux compiled tools
>
> gcc
> binutils
> make
> sed patch
>
> Set your $PATH to use gcc, binutils, and make.
>
> Compile Perl with the gcc compiler, (5.005_02 was used).
>
> Compile MySQL with the gcc compiler:
> CC=gcc CXX=gcc CFLAGS=-fpic ./configure --prefix=/opt/mysql
> --localstatedir=/var/opt/mysql/data --with-low-memory
>
> Compile and install the DBI modules.
>
> Start the DB
>
> Move the following files/links that are under the MySQL directory
> out of the lib/mysql directory.
>
> libmysqlclient.sl -> libmysqlclient.sl.6.0
> libmysqlclient.sl.6 -> libmysqlclient.sl.6.0
> libmysqlclient.sl.6.0
>
> Compile, test and install the Msql-Mysql modules. (gcc was used)
>
> Stop the DB.
>
> Move the lib files back in place.
>
> Restart the DB.
>
> Verify.
>
> > Jochen,
> >
> > Thanks very much for replying. I dug through the README as you included in
> your
> > response. (Honest, I grepped on the README for the _udivd13 error I was
> getting :) )
> >
> > Anyway, I tried rebuilding perl from scratch, per option a) under the KNOWN
> PROBLEMS and
> > specifically told perl to use the 'ld' command that comes under the 2.8.1 gcc
> binary
> > release as well as option -fPIC under gcc. Perl built just fine and all the
> tests
> > passed without any problems.
> >
> > Here is what I got when running the 'make' under Mysql-modules:
> > (A snippet from the 'make')
> >
> >
> LD_RUN_PATH="/opt/mysql/lib/mysql:/lib/pa1.1:/opt/gcc/lib/gcc-lib/hppa1.1-hp-hpu
> > x10.20/2.8.1" /opt/gcc/lib/gcc-lib/hppa1.1-hp-hpux10.20/2.8.1/ld -o
> ../blib/arch
> > /auto/DBD/mysql/mysql.sl -b -L/usr/local/lib dbdimp.o mysql.o
> -L/opt/mysql/lib/
> > mysql -L/opt/mysql/lib/mysql -lmysqlclient -lm
> -L/opt/gcc/lib/gcc-lib/hppa1.1
> > -hp-hpux10.20/2.8.1 -lgcc
> >
> > This built mysql.sl without any errors to the screen. I noticed that I was
> using the ld
> > from gcc package. I thought I was home free.
> >
> > But, alas, I still received the error:
> > t/20createdrop....../usr/lib/dld.sl: Unresolved symbol: __udivdi3 (code) from
> /
> > usr/local/lib/libmysqlclient.sl.6
> > install_driver(mysql) failed: Can't load
> '../blib/arch/auto/DBD/mysql/mysql.sl'
> > for module DBD::mysql: Unresolved external at
> /opt/perl5/lib/5.00502/PA-RISC1.1/
> > DynaLoader.pm line 168.
> >
> > at (eval 1) line 2
> >
> > at t/20createdrop.t line 47
> > dubious
> > Test returned status 215 (wstat 55040, 0xd700)
> > DIED. FAILED tests 1-5
> > Failed 5/5 tests, 0.00% okay
> >
> >
> >
> > As I mentioned before, I've recompiled perl and have verified that it is
> pulling the
> > shared library functions for HPUX and have not received any errors from the
> 'make
> > test'. I guess my next step is to try and rebuild mysql. The only doubt in
> my mind
> > about the integrity of the mysql build is that I'm not sure if I used the
> linker, 'ld'
> > that came with gcc or the linker that is part of HPUX......
> >
> > The absolute worst case would probably be that I'd have to link the
> Mysql-modules
> > directly into the perl executable, but I'm not 100% sure how to do that.
> >
> > Thanks again, Jochen, for your response. I look forward to any more
> suggestions. I'm
> > trying to show that Mysql and Perl are a viable option for our business...
> >
> > Thanks in advance!
> >
> > Mark Nickel
> >
> >
> > Jochen Wiedmann wrote:
> >
> > >
> > >
> > > KNOWN PROBLEMS
> > > 1.) If the MySQL binaries are compiled with gcc or
> > > egcs (as the precompiled binaries are), but your
> > > Perl is using another compiler, it is likely that
> > > you receive an error message like the following
> > > when running "make test":
> > >
> > > t/00base............install_driver(mysql) failed: Can't
> > > load
> > > '../blib/arch/auto/DBD/mysql/mysql.so' for module
> > > DBD::mysql:
> > > ../blib/arch/auto/DBD/mysql/mysql.so: undefined symbol:
> > > _umoddi3
> > > at
> > > /usr/local/perl-5.005/lib/5.005/i586-linux-thread/DynaLoader.pm
> > > line 168.
> > >
> > > This means, that your linker doesn't include
> > > libgcc.a. You have the following options:
> > >
> > > a) Either recompile Perl or Mysql, it
> > > doesn't matter which. The important
> > > thing is that you use the same
> > > compiler for both. This is definitely
> > > the recommended solution in the long
> > > term.
> > >
> > > b) A simple workaround is to include
> > > libgcc.a manually. Do a "make clean"
> > > and "make" and in the output wait for
> > > a line like
> > >
> > > LD_RUN_PATH="/usr/lib/mysql:/lib" egcs -o
> > > ../blib/arch/auto/DBD/mysql/mysql.so -shared
> > > -L/usr/local/lib
> > > dbdimp.o mysql.o -L/usr/lib/mysql
> > > -L/usr/lib/mysql
> > > -lmysqlclient -lm
> > >
> > > Repeat the same line in the shell by
> > > adding
> > >
> > >
> > > -L/usr/lib/gcc-lib/i386-redhat-linux/gcc-2.7.2.3 -lgcc
> > >
> > > where the directory is the location of
> > > libgcc.a. The best choice for locating
> > > this file is executing
> > >
> > > gcc --print-libgcc-file
> > >
> > > or
> > >
> > > gcc -v
> > >
> > > --
> > > Jochen Wiedmann joe@stripped
> > > A mathematician is an engine for converting coffee +49 7123 14887
> > > into theorems. (Hi, Lukas! :-)
> > >
> > > ---------------------------------------------------------------------
> > > Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
> > > posting. To request this thread, e-mail
> msql-mysql-modules-thread114@stripped
> > >
> > > To unsubscribe, send a message to the address shown in the
> > > List-Unsubscribe header of this message. If you cannot see it,
> > > e-mail msql-mysql-modules-unsubscribe@stripped instead.
> >
> >
> > ---------------------------------------------------------------------
> > Please check "http://www.mysql.com/Manual_chapter/manual_toc.html" before
> > posting. To request this thread, e-mail
> msql-mysql-modules-thread117@stripped
> >
> > To unsubscribe, send a message to the address shown in the
> > List-Unsubscribe header of this message. If you cannot see it,
> > e-mail msql-mysql-modules-unsubscribe@stripped instead.
> >
> >