Thanks Tom.  I figured it was an OpenSSL problem; I've compiled Apache too 
often to expect an error there!  The OpenSSL documentation is somewhat 
sparse!  I completely missed the "shared" parameter in the configuration.

[as an aside on the OpenSSL documentation, for multi-threading, if the O/S 
supports it, then multi-threading is enabled by default; see the "Note on 
multi-threading" section.  The next paragraph is "Note on shared libraries" 
and it says: "the OpenSSL Configure script knows what is needed to
 build shared libraries for libcrypto and libssl.  On these systems,
 the shared libraries are currently not created by default, but giving
 the option "shared" will get them created. "    

I guess I stopped reading too soon!

Regards, and thanks,

John
==============================================
On Thursday 13 December 2012 12:35:45 Tom Evans wrote:
> On Mon, Dec 10, 2012 at 1:18 AM, John Iliffe <john.ili...@iliffe.ca> wrote:
> > I am trying to install Apache 2.4.3 on a new Red Hat Linux 6.3 machine
> > running on X86_64 hardware.
> > 
> > I installed OpenSSL version 1.0.1c and it seemed to install correctly.
> > basically, it was a default install except for the executable location
> > information.
> > 
> > ----------------------------------------------------------------------
> > ------- ./configure --prefix=/usr/openssl-1.0.1c
> > make
> > make install
> > ----------------------------------------------------------------------
> > ------ I ran a few tests from the command line and the results look
> > OK.
> > 
> > When I try to compile Apache using the following configuration, I get
> > a compile error against the OpenSSL libraries:
> > 
> > ----------------------------------------------------------------------
> > -------------------- ./configure --prefix=/usr/apache-2.4.3
> > --with-ssl=/usr/openssl-1.0.1c --with- zlib
> > --with-pcre=/usr/pcre-8.32
> > ----------------------------------------------------------------------
> > --------------------
> > 
> > Note that the path to OpenSSL is required in the --with-ssl parameter
> > because I don't want to link to the included RedHat OpenSSL version
> > due to PCI requirements.  (too old)
> > 
> > This runs for a while and then I get the following fatal error:
> > 
> > ----------------------------------------------------------------------
> > --------------------- /usr/bin/ld:
> > /usr/openssl-1.0.1c/lib/libssl.a(s3_srvr.o): relocation R_X86_64_32
> > against `.rodata' can not be used when making a shared object;
> > recompile with -fPIC
> > /usr/openssl-1.0.1c/lib/libssl.a: could not read symbols: Bad value
> > collect2: ld returned 1 exit status
> 
> The error is that the OpenSSL library you have built has not been
> built with PIC. Rebuild it with PIC so that it can be linked to a
> dynamically loaded module (mod_ssl.so).
> 
> The reason OpenSSL was not built with PIC is that you did not compile
> shared libraries for OpenSSL - you only created static libraries.
> OpenSSL compiles with PIC iff you enable shared libraries.
> 
> So, rebuild OpenSSL, this time passing '--enable-shared' to the
> configure script (or whatever the appropriate flag is).
> 
> Cheers
> 
> Tom
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
> For additional commands, e-mail: users-h...@httpd.apache.org

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
For additional commands, e-mail: users-h...@httpd.apache.org

Reply via email to