* Andrew Ohnstad (andrew.ohnstad / gmail.com) wrote:

> Solaris 10 x86 on a 64-bit Xenon server...  Can anyone guess where this
> is going?

It's *Xeon*.  Every time you say Xenon an Intel marketing team member
kills himself.  Hm.. carry on.

> gcc -shared -fPIC -L/usr/local/lib -R/usr/local/lib -R/usr/lib
> -L/usr/lib -R/usr/openwin/lib -L/usr/openwin/lib -L/usr/local/ssl/lib
> -R/usr/local/ssl/lib -L/usr/local/BerkeleyDB.4.2/lib
> -R/usr/local/BerkeleyDB.4.2/lib -L/usr/X11R6/lib -R/usr/X11R6/lib
> -L'/usr/local/lib' -Wl,-R'/usr/local/lib' -o mysql.so mysql.o  -m64 -O2
> -mtune=k8 -static-libgcc -L/usr/local/mysql/lib -lmysqlclient -lz
> -lposix4 -lresolv -lgen -lsocket -lnsl -lm  -ldl -lcrypt -lm   -lc
> ld: fatal: file /usr/lib/libcrypt.so: wrong ELF class: ELFCLASS32
> ld: fatal: File processing errors. No output written to mysql.so
> collect2: ld returned 1 exit status
> *** Error code 1
> make: Fatal error: Command failed for target `mysql.so'

> Of course make is barfing on my 32 bit libcrypt...
> 
> root@hostname:~# file  /usr/lib/libcrypt.so
> /usr/lib/libcrypt.so:   ELF 32-bit LSB dynamic lib 80386 Version 1,
> dynamically linked, not stripped, no debugging information available

This looks like a Solaris bug:

  http://bugs.opensolaris.org/view_bug.do?bug_id=6531439

If the workaround described there doesn't work you might try getting the
mysql extension tarball and messing about with extconf (maybe
--with-mysql-lib=/usr/lib/amd64?  ugh) and/or the Makefile.

You might also try strace/dtrace to see where the linker's looking for
the library first, in case that workaround is incomplete.

-- 
Thomas 'Freaky' Hurst
    http://hur.st/