Bug #16520 | solaris package does not include shared/relocatable libraries | ||
---|---|---|---|
Submitted: | 15 Jan 2006 20:05 | Modified: | 27 Apr 2007 3:55 |
Reporter: | james ozone | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Packaging | Severity: | S1 (Critical) |
Version: | 5.0.18 | OS: | Solaris (solaris 9/sparc64) |
Assigned to: | Kent Boortz | CPU Architecture: | Any |
[15 Jan 2006 20:05]
james ozone
[17 Jan 2006 13:49]
Valeriy Kravchuk
Thank you for a problem report. Verified just as described. It is a known issue, in the TODO list of our build team already. But, please, do not expect fast fix.
[19 Jan 2006 23:44]
Bill Adams
I would like to report the same issue. To deploy PHP 5.1.2 Apache 2 module on Solaris 9, I need to compile 32-bit shared libraries.
[6 Feb 2006 15:56]
[ name withheld ]
I have the same problem with Solaris 10, have you an idea when you could fix it (for a new version 4.1.17 or later) ? Thanks.
[9 Feb 2006 10:36]
[ name withheld ]
For information, the problem remains with Solaris 10/PHP 5.1.2 and the brand new MySQL 4.1.18...
[22 Feb 2006 9:03]
Michael O'Rourke
The problem is not shared vs. static libraries. It is the relocatable part. Taking a hint from the rpath.README in GNU's gettext (0.14.5; autoconf-lib-link/tests), which says: "* Solaris: the tests rpath-3bae rpath-3bbe rpath-3aaf rpath-3abf rpath-3baf rpath-3bbf fail, because code from static libraries not compiled with -fPIC cannot be integrated into shared libraries: linker error "Text relocation remains"." I tried this with mysql-5.0.18 and PHP-5.1.2. I used the following environment: export CC=/opt/sfw/gcc-3/bin/gcc export CXX=/opt/sfw/gcc-3/bin/g++ export CFLAGS="-O3 -mcpu=v8 -Wa,-xarch=v8plusa -I/opt/sfw/gcc-3/include -I /usr/sfw/include -I/opt/sfw/include -I/usr/local/include -I/usr/local/ssl/include" export CPPFLAGS="-O3 -mcpu=v8 -Wa,-xarch=v8plusa -I/opt/sfw/gcc-3/include -I/usr/sfw/include -I/opt/sfw/include -I/usr/local/include -I/usr/local/ssl/include" export CXXFLAGS="-O3 -mcpu=v8 -Wa,-xarch=v8plusa -felide-constructors -fno-exceptions -fno-rtti -I/opt/sfw/gcc-3/include -I/usr/sfw/include -I/opt/sfw/include -I/usr/local/include -I/usr/local/ssl/include" export LDFLAGS="-L/opt/sfw/gcc-3/lib -L/usr/sfw/lib -L/opt/sfw/lib -L/usr/local/ lib -L/usr/local/ssl/lib -R/opt/sfw/gcc-3/lib:/usr/sfw/lib:/opt/sfw/lib:/usr/local/lib:/usr/local/ssl/lib -lsocket -lnsl -lrt -lresolv -lcrypt -lssl -lcrypto" export LIBS="-R/opt/sfw/gcc-3/lib:/usr/sfw/lib:/opt/sfw/lib:/usr/local/lib:/usr/ local/ssl/lib -lsocket -lnsl -lrt -lresolv -lcrypt -lssl -lcrypto" ./configure --prefix=/usr/local/mysql \ --enable-thread-safe-client --enable-assembler \ --enable-shared=no --enable-static=yes \ --with-charset=utf8 --with-extra-charsets=all --with-mysqld-user=mysql \ --with-zlib-dir=/usr/local --without-debug --with-embedded-server \ --with-embedded-privilege-control --with-openssl=/usr/local/ssl \ --with-openssl-includes=/usr/local/ssl/include \ --with-openssl-libs=/usr/local/ssl/lib When I build MySQL with this environment and configure command, PHP-5.1.2 will not link its shared library with the regular error. When I explicitely add "-fPIC" to the CFLAGS, CPPFLAGS, CXXFLAGS and LDFLAGS variables and re-compile MySQL, it properly builds, passes all tests and installs and runs fine. PHP then compiles but fails its "crypt" test (as well as a few others, but I am working on those!). I am not sure why the configure script chooses not to use -fPIC on solaris. Perhaps there is some other problem down the line that will surface. What is the possibility of compiling the binary distributions for solaris with only static libraries, but using -fPIC? My current problem is with the crypt functions in MySQL and PHP. If I do not include "-lcrypt" in the LIBS variable, MySQL fails the "func_crypt" test; but when I do include it, PHP fails its crypt test (PHP compiled without MySQL passes the crypt test fine.). MySQL does not seem to pay any attention to the presence of libmcrypt for the use of its crypt functions either.
[22 Feb 2006 12:21]
Kent Boortz
On some platforms position independent binaries are running slower. Now for the client library performance is not critical, and we will most likely changing the builds to create position independent static client libraries.
[11 May 2006 13:50]
[ name withheld ]
Is there something new about this bug ? For the moment, I use PHP 5.0.5 (with MySQL 4.1.19 binaries for Solaris 9) and i can't upgrade PHP in 5.1 version... Should I recompile MySQL or wait for resolution of the bug ?
[19 May 2006 19:30]
Ionut AIVANESEI
Hi, I also have problems with solaris binaries (tar.gz SPARC 32 bit). When compiling PHP 5.x.x on Solaris 8/9/10 I have the folowing errors when running ild: -------------------------------------------------- ild: (error) __1cFmySTLHdestroy4Cpn0AEpair4CiCpF_pnFyaSSLHMessage____6FTA8_v_ is defined in files [...]/mysql/lib/libmysqlclient.a(yassl_imp.o) and [...]/mysql/lib/libmysqlclient.a(yassl_int.o) ild: (error) __1cFmySTLHdestroy4Cpn0AEpair4CiCpF_pnFyaSSLNHandShakeBase____6FTA8_v_ is defined in files [...]/mysql/lib/libmysqlclient.a(yassl_imp.o) and [...]/mysql/lib/libmysqlclient.a(yassl_int.o) ... ild: (error) __1cITaoCryptEHASH2T6M_v_ is defined in files [...]/mysql/lib/libmysqlclient.a(libtaocrypt_la-asn.o) and [...]/mysql/lib/libmysqlclient.a(libtaocrypt_la-ripemd.o) ild: (error) __1cITaoCryptMvirtual_base2k6Fpv_v_ is defined in files [...]/mysql/lib/libmysqlclient.a(libtaocrypt_la-asn.o) and [...]/mysql/lib/libmysqlclient.a(libtaocrypt_la-ripemd.o) ild: exiting because of errors in link -------------------------------------------------- I would like to try to build php with shared mysql libraries, but i dont find any so file in mysql/lib. Thanks, Ionutz
[24 Jul 2006 16:15]
Robert Thomas
You guys need to add "-mimpure-text -lrt" to the extra libraries line in the Makefile. EXTRA_LIBS = (bla bla bla)... -mimpure-text -lrt BTW you have to use a real editor like Emacs to edit the Makefile. VI can't deal with it. Before you flame me, try it and find out I'm right. At least every time I try to use VI on this file it can't handle it.
[28 Jul 2006 9:02]
[ name withheld ]
Thank you Robert, I've tried your solution (with VIM as Makefile editor...) but now I've this error : Undefined first referenced symbol in file libiconv_close ext/gd/libgd/.libs/gdkanji.o libiconv_open ext/gd/libgd/.libs/gdkanji.o libiconv ext/gd/libgd/.libs/gdkanji.o ld: fatal: Symbol referencing errors. No output written to sapi/cli/php collect2: ld returned 1 exit status Any solution ? Thanks.
[27 Sep 2006 22:01]
Randal Columb
I installed the MySQL 5.0.24a and MySQLdb 1.2.1_p2 packages on my Solaris 10 SPARC server. When I tried to use MySQLdb it complained that libmysqlclient_r.so.12 was missing. I searched the whole system for it and couldn't find it. I ended up copying it from an identical machine that I had installed MySQL 5.0.22 on. It works for me now, but it would be nice to have libmysqlclient_r.so.12 in the 5.0.24a package.
[27 Apr 2007 3:55]
Paul DuBois
Noted in 5.0.40 changelog. Binary distributions for Solaris and Mac OS X did not include shared libraries.
[9 Jan 2009 9:34]
Maurizio Broglia
I've still this problem....Has the bug been resolved or have I to install a previous version of php ? (ps: I'm using php 5.2.8, Solaris SPARC 10 and mysql Ver 12.22 Distrib 4.0.24, for sun-solaris2.10 (sparc)
[9 Jan 2009 17:24]
Valeriy Kravchuk
The bug was reported on 5.0.18 and fixed in 5.0.40 and newer versions. It will NOT be fixed in 4.0.x anyway, as even extended support for 4.0.x ended already (see http://www.mysql.com/about/legal/lifecycle/). Sorry.