You are linking against the static compress library which is intended for
static linking not inclusion into a dynamic object. I would not rebuild
libz.a with fPIC. You should be linking against libz.so which I'd guess you
haven't got. Check you've got a libz.so and then make sure DBD::mysql picks it
up. mysql_config on my machine for instance produces:

bash-2.05$ mysql_config 
Usage: /usr/mysql/bin/mysql_config [OPTIONS]
Options:
        --cflags         [-I/usr/mysql/include/mysql]
        --include        [-I/usr/mysql/include/mysql]
        --libs           [-L/usr/mysql/lib/mysql -lmysqlclient -lz -lcrypt
-lnsl -lm]
        --libs_r         [-L/usr/mysql/lib/mysql -lmysqlclient_r -lz -lpthread
-lcrypt -lnsl -lm -lpthread]
        --socket         [/tmp/mysql.sock]
        --port           [3306]
        --version        [5.0.15]
        --libmysqld-libs [-L/usr/mysql/lib/mysql -lmysqld -lz -lpthread -lcrypt
-lnsl -lm -lpthread -lrt]

NOTE the -lz

and I have 

/usr/lib/libz.a
/usr/lib/libz.so
/usr/lib/libz.so.1
/usr/lib/libz.so.1.2.3

so it finds the dynamic library /usr/lib/libz.so.

Martin
--
Martin J. Evans
Easysoft Ltd, UK
http://www.easysoft.com
 
On 14-Aug-2006 Logg, Connie A. wrote:
> Machine info:
> 
> [EMAIL PROTECTED] utils]$ uname -a
> Linux snv1 2.6.9-34.0.2.ELsmp #1 SMP Fri Jun 30 10:32:04 EDT 2006 x86_64
> x86_64 x86_64 GNU/Linux
> [EMAIL PROTECTED] utils]$ perl -v
> This is perl, v5.8.8 built for x86_64-linux
> [EMAIL PROTECTED] utils]$ more /etc/redhat-release
> Red Hat Enterprise Linux WS release 4 (Nahant Update 4)
> 
> 
> --------------------------------------------------
> I am having a hard time installing DBD:mysql on 64 bit machine
> snv1.ultralight.org 
> 
> /usr/bin/perl MCPAN -e shell
> CPAN> install DBD::mysql
> 
> Dies with errors...so I decided to do it from the source, and it also
> complains....here is the output from the source install:
> 
> [EMAIL PROTECTED] DBD-mysql-3.0006]# /usr/bin/perl Makefile.PL I will use the
> following settings for compiling and testing:
> 
>   cflags        (mysql_config) = -I/usr/local/include/mysql
>   embedded      (mysql_config) =
>   libs          (mysql_config) = -L/usr/local/lib/mysql -lmysqlclient -lz
> -lcrypt -lnsl -lm
>   mysql_config  (guessed     ) = mysql_config
>   nocatchstderr (default     ) = 0
>   nofoundrows   (default     ) = 0
>   ssl           (guessed     ) = 0
>   testdb        (default     ) = test
>   testhost      (default     ) =
>   testpassword  (default     ) =
>   testsocket    (default     ) =
>   testuser      (default     ) =
> 
> To change these settings, see 'perl Makefile.PL --help' and 'perldoc
> INSTALL'.
> 
> Using DBI 1.52 (for perl 5.008008 on x86_64-linux) installed in
> /usr/lib/perl5/site_perl/5.8.8/x86_64-linux/auto/DBI/
> Writing Makefile for DBD::mysql
> [EMAIL PROTECTED] DBD-mysql-3.0006]#
> [EMAIL PROTECTED] DBD-mysql-3.0006]# make
> cc -c  -I/usr/lib/perl5/site_perl/5.8.8/x86_64-linux/auto/DBI
> -I/usr/local/include/mysql -DDBD_MYSQL_INSERT_ID_IS_GOO D -g 
> -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include
> -D_LARGEFILE_SOURCE -D_FILE_OFFSE
> T_BITS=64 -I/usr/include/gdbm -O2   -DVERSION=\"3.0006\"
> -DXS_VERSION=\"3.0006\" -fpic "-I/usr/lib/perl5/5.8.8/x86_64
> -linux/CORE"   dbdimp.c
> cc -c  -I/usr/lib/perl5/site_perl/5.8.8/x86_64-linux/auto/DBI
> -I/usr/local/include/mysql -DDBD_MYSQL_INSERT_ID_IS_GOO D -g 
> -fno-strict-aliasing -pipe -Wdeclaration-after-statement -I/usr/local/include
> -D_LARGEFILE_SOURCE -D_FILE_OFFSE
> T_BITS=64 -I/usr/include/gdbm -O2   -DVERSION=\"3.0006\"
> -DXS_VERSION=\"3.0006\" -fpic "-I/usr/lib/perl5/5.8.8/x86_64
> -linux/CORE"   mysql.c
> mysql.xs: In function `XS_DBD__mysql__GetInfo_dbd_mysql_get_info':
> mysql.xs:647: warning: ignoring return value of `Perl_newSViv', declared with
> attribute warn_unused_result
> mysql.xs:650: warning: ignoring return value of `Perl_newSViv', declared with
> attribute warn_unused_result
> mysql.xs:653: warning: ignoring return value of `Perl_newSVpv', declared with
> attribute warn_unused_result Running Mkbootstrap for DBD::mysql () chmod 644
> mysql.bs rm -f blib/arch/auto/DBD/mysql/mysql.so
> LD_RUN_PATH="/usr/local/lib/mysql" /usr/bin/perl myld cc  -shared
> -L/usr/local/lib dbdimp.o mysql.o  -o blib/arch/aut
> o/DBD/mysql/mysql.so    \
>    -L/usr/local/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm   \
> 
> /usr/bin/ld: /usr/local/lib/libz.a(compress.o): relocation R_X86_64_32
> against `a local symbol' can not be used when making a shared object;
> recompile with -fPIC
> /usr/local/lib/libz.a: could not read symbols: Bad value
> collect2: ld returned 1 exit status
> make: *** [blib/arch/auto/DBD/mysql/mysql.so] Error 1
> 
> I have tried using -fPIC, but I think I do not know how to tell it to use
> that correctly. I assume it is passed with --cflags on the 'perl Makefile.PL'
> line, but I can't get that to work.
> 
> Can someone tell me the syntax on the 'perl Makefile.PL' line, or, what the
> problem is and how can I get DBD::mysql to load?
> 
> By the way, perl Makefile.PL --help gives me..
> [EMAIL PROTECTED] DBD-mysql-3.0006]# perl -Makefile.PL --help
> 
> Usage: perl [switches] [--] [programfile] [arguments]
>   -0[octal]       specify record separator (\0, if no argument)
>   -a              autosplit mode with -n or -p (splits $_ into @F)
>   -C[number/list] enables the listed Unicode features
>   -c              check syntax only (runs BEGIN and CHECK blocks)
>   -d[:debugger]   run program under debugger
>   -D[number/list] set debugging flags (argument is a bit mask or alphabets)
>   -e program      one line of program (several -e's allowed, omit
> programfile)
>   -f              don't do $sitelib/sitecustomize.pl at startup
>   -F/pattern/     split() pattern for -a switch (//'s are optional)
>   -i[extension]   edit <> files in place (makes backup if extension supplied)
>   -Idirectory     specify @INC/#include directory (several -I's allowed)
>   -l[octal]       enable line ending processing, specifies line terminator
>   -[mM][-]module  execute "use/no module..." before executing program
>   -n              assume "while (<>) { ... }" loop around program
>   -p              assume loop like -n but print line also, like sed
>   -P              run program through C preprocessor before compilation
>   -s              enable rudimentary parsing for switches after programfile
>   -S              look for programfile using PATH environment variable
>   -t              enable tainting warnings
>   -T              enable tainting checks
>   -u              dump core after parsing program
>   -U              allow unsafe operations
>   -v              print version, subversion (includes VERY IMPORTANT perl
> info)
>   -V[:variable]   print configuration summary (or a single Config.pm
> variable)
>   -w              enable many useful warnings (RECOMMENDED)
>   -W              enable all warnings
>   -x[directory]   strip off text before #!perl line and perhaps cd to
> directory
>   -X              disable all warnings
> 
> 
> Thanks, Connie
> Connie Logg, Network Analyst
> Stanford Linear Accelerator Center
> ph: 650-926-2879 
> "Happiness is found along the way, not at the end of the road, and 'IF' is
> the middle word in life."

-- 
MySQL General Mailing List
For list archives: http://lists.mysql.com/mysql
To unsubscribe:    http://lists.mysql.com/[EMAIL PROTECTED]

Reply via email to