Bug #14202 libmysqlclient.a for Solaris-sparc not compiled with -fPIC
Submitted: 21 Oct 2005 11:16 Modified: 9 Jun 2006 20:38
Reporter: Gary Ashford
Status: Closed
Category:Server: Packaging Severity:S1 (Critical)
Version:5.0.15, 5.0.13rc OS:Sun Solaris (Solaris sparc 32 bit)
Assigned to: Kent Boortz Target Version:

[21 Oct 2005 11:16] Gary Ashford
Description:
It is not possible to link an application against libmysqlclient.a on Solaris-sparc
32-bit, the linker fails to resolve symbols. Several hundred errors are reported followed
by;

ld: fatal: relocations remain against allocatable but non-writable sections

How to repeat:
Create a simple c plus plus application and attempt to link in libmysqlclient.a.

Suggested fix:
The lib needs to be compiled with the -fPIC option turned on. When I recompile the library
from source and tweek the makefile, the resulting library links successfully. It looks
like the configure script has an error which is preventing -fPIC going into the solaris
makefiles.
[7 Nov 2005 10:17] Valeriy Kravchuk
Thank you for a problem report. 

Yes, -fPIC flag is not included in the standard builds' options. One may check the logs on
production@mysql.com. I was not able to find the log for Solaris 8, but for Solaris 10 on
SPARC 32 bit it is surely not defined (see, for example,
/data0/mysqldev/my/archive/mysql-5.0.15/Logs/sol10-sparc-a-5.0-standard.config):

configure:43507: running /bin/bash './configure' --prefix=/usr/local/mysql 
'--prefix=/usr/local/mysql' '--localstatedir=/usr/local/mysql/data'
'--libexecdir=/usr/local/mysql/bin' '--with-comment=MySQL Community Edition - Standard
(GPL)' '--with-extra-charsets=complex' '--with-server-suffix=-standard'
'--enable-thread-safe-client' '--enable-local-infile' '--with-named-z-libs=no'
'--disable-shared'
 '--with-big-tables' '--with-readline' '--with-archive-storage-engine' '--with-innodb'
'CC=cc-5.0' 'CFLAGS=-xO3 -Xa -xstrconst -mt -D_FORTEC_ -xarch=v8 -xc99=none'
'CXXFLAGS=-xO3 -noex -mt -D_FORTEC_ -xarch=v8' 'CXX=CC' 'LDFLAGS=-xarch=v8'
CFLAGS='-O -DDBUG_OFF -xO3 -Xa -xstrconst -mt -D_FORTEC_ -xarch=v8 -xc99=none
-DHAVE_RWLOCK_T' CXXFLAGS='-O3 -DDBUG_OFF -xO3 -noex -mt -D_FORTEC_ -xarch=v8
-DHAVE_RWLOCK_T' --cache-file=/dev/null --srcdir=.

and so on...
[6 Jun 2006 14:34] Kent Boortz
All binaries are compiled position independent in
4.1.20 and 5.0.22, and will be in 5.1.11 beta.
[9 Jun 2006 20:38] Paul DuBois
Noted in 4.1.20, 5.0.22, 5.1.11 changelogs.