The short story is that I want to make static libraries of Open SSL so that
I can make Python modules (_ssl) that link against Open SSL statically,
thereby reducing the amount of run time dependencies we have.  But when I
link these libraries in statically, I get relocation errors form the linker
due to some of the code not being PIC.

I don't know if the development is the appropriate forum for this, but I
think it might since it has to do with how Open SSL builds on Solaris.

Here is my set up: gcc 4.7.4 with GNU assembler and Solaris linker (gcc was
configured with --with-gnu-as, but not with --with-gnu-ld).  I ran

./config --prefix=/home/tjk/openssl no-shared -fPIC

The configured build is for 32 bit Sparc Solaris running on a sparcv9
processor.

The C code compiles into PIC objects just fine, but the GNU assembler does
not produce PIC code for sparccpuid.S.  I worked around this by first
preprocessing the file using gcc:

gcc -I... -D... -E sparcpuid.S > sparcpuid.s

and then assembled it using

as -V -Qy -s -xarch=v8plusa -K PIC -xcode=pic32 sparcpuid.s

(I first ran gcc -v to see what gcc was going to pass to the assembler,
then took that output and modified it so that the right options would be
used for the Solaris assembler).  I found that the crucial option is
-xcode=pic32.

I do not really ant to do this as I plan on scripting builds of Open SSL
and this requires manual intervention.  Do you know of a way to get the GNU
assemble to produce PIC code?

Thanks,

Tom

Reply via email to