View Full Version : install PHP...relocation R_X86_64_32... recompile with -fPIC...
vktechnology
13th May 2006, 07:22
Description:
------------
Install PHP,,has eror after type make
Reproduce code:
---------------
./configure --prefix=/usr/local/php-5.1.4
--with-apxs2=/usr/local/apache2/bin/apxs --enable-ftp
--with-mysql-dir=/usr/local/mysql-standard-5.0.21-linux-i686
--with-png-dir=/usr/local/libpng-
1.2.8-config --with-zlib-dir=/usr/local/zlib-1.2.2 --with-gd
--disable-libxml --disable-dom --
disable-simplexml --disable-xml --disable-pear --disable-xmlreader
--disable-xmlwriter
Actual result:
--------------
**********
after type make
have this error
*************
/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: *** [libphp5.la] Error 1
falko
13th May 2006, 13:24
Seems to be a problem with zlib. Maybe you should try to install the newest zlib (1.2.3) by hand and try again.
vktechnology
13th May 2006, 14:39
Zlib is ok no problem...
<php>
[root@palungjit zlib-1.2.3]# ./configure
Checking for gcc...
Building static library libz.a version 1.2.3 with gcc.
Checking for unistd.h... Yes.
Checking whether to use vs[n]printf() or s[n]printf()... using vs[n]printf()
Checking for vsnprintf() in stdio.h... Yes.
Checking for return value of vsnprintf()... Yes.
Checking for errno.h... Yes.
Checking for mmap support... Yes.
[root@palungjit zlib-1.2.3]# make
gcc -O3 -DUSE_MMAP -c -o example.o example.c
gcc -O3 -DUSE_MMAP -c -o adler32.o adler32.c
gcc -O3 -DUSE_MMAP -c -o compress.o compress.c
gcc -O3 -DUSE_MMAP -c -o crc32.o crc32.c
gcc -O3 -DUSE_MMAP -c -o gzio.o gzio.c
gcc -O3 -DUSE_MMAP -c -o uncompr.o uncompr.c
gcc -O3 -DUSE_MMAP -c -o deflate.o deflate.c
gcc -O3 -DUSE_MMAP -c -o trees.o trees.c
gcc -O3 -DUSE_MMAP -c -o zutil.o zutil.c
gcc -O3 -DUSE_MMAP -c -o inflate.o inflate.c
gcc -O3 -DUSE_MMAP -c -o infback.o infback.c
gcc -O3 -DUSE_MMAP -c -o inftrees.o inftrees.c
gcc -O3 -DUSE_MMAP -c -o inffast.o inffast.c
ar rc libz.a adler32.o compress.o crc32.o gzio.o uncompr.o deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
gcc -O3 -DUSE_MMAP -o example example.o -L. libz.a
gcc -O3 -DUSE_MMAP -c -o minigzip.o minigzip.c
gcc -O3 -DUSE_MMAP -o minigzip minigzip.o -L. libz.a
[root@palungjit zlib-1.2.3]# make install
cp zlib.h zconf.h /usr/local/include
chmod 644 /usr/local/include/zlib.h /usr/local/include/zconf.h
cp libz.a /usr/local/lib
cd /usr/local/lib; chmod 755 libz.a
cd /usr/local/lib; if test -f libz.so.1.2.3; then \
rm -f libz.so libz.so.1; \
ln -s libz.so.1.2.3 libz.so; \
ln -s libz.so.1.2.3 libz.so.1; \
(ldconfig || true) >/dev/null 2>&1; \
fi
cp zlib.3 /usr/local/share/man/man3
chmod 644 /usr/local/share/man/man3/zlib.3
</php>
vktechnology
13th May 2006, 14:41
I use Fedora & Linux,
Intel 64 bit, 3.2 Ghz x 2
4GB Ram.
it is something with X64_X86...
but donlt know how to fix..
vktechnology
13th May 2006, 17:20
falko you are right...
thank you
it is something with configure in Zlib
***************
This problem is solved
this is not PHP problem
it something to do with Zlib
----------------------------
I add this in to Make file in Zlib
CFLAGS=-fPIC
and save it
and configure Zlib again
by use this command
./configure --libdir=/usr/lib64
...........
it work now
vktechnology
14th May 2006, 17:50
Because in PHP Makefile doesn't complatible with 64 Bits processor
64 Bits processor use "/usr/lib64"
instead of "/usr/local/lib"
***********************************
I found solution to fix this peoblem
now my problem is solved
***********************************
What i did is
after configure and open Makefile to edit Makefile
look example my configure
./configure --libdir=/usr/lib64 --prefix=/usr/local/php-5.1.4 --with-apxs2=/usr/local/apache2/bin/apxs --enable-ftp --with-mysql-dir=/usr/local/mysql --with-libxml-dir=/usr/local/libxml2-2.6.24 --with-png-dir=/usr/local/libpng-1.2.8-config --with-zlib-dir=/usr/local/zlib-1.2.3/ --with-gd --with-jpeg-dir=/usr/local/lib64/ --with-freetype-dir=/usr/local/freetype-2.2.1
open Makefile
find for
"/usr/local/lib"
and replace with "/usr/lib64"
*********
here this is code after replace
4 lines
EXTRA_LDFLAGS = -avoid-version -module -L/usr/lib64 -L/usr/local/zlib-1.2.3//lib
EXTRA_LDFLAGS_PROGRAM = -L/usr/lib64 -L/usr/local/zlib-1.2.3//lib
NATIVE_RPATHS = -Wl,-rpath,/usr/lib64 -Wl,-rpath,/usr/local/zlib-1.2.3//lib
PHP_LDFLAGS = -L/usr/lib64 -L/usr/local/zlib-1.2.3//lib
PHP_RPATHS = -R /usr/lib64 -R /usr/local/zlib-1.2.3//lib
********
type make
make install
..done...
vktechnology
15th May 2006, 17:03
--with-mysql-dir=/usr/local/mysql
instead of
--with-mysql=/usr/local/mysql
********************************
cannot fix,
after install will cannot connect to my sql by using PHP
you will see this error
"Fatal error: Call to undefined function mysql_connect() "
and looking in info.php
cannot see mysql too...
vBulletin® v3.8.7, Copyright ©2000-2012, vBulletin Solutions, Inc.