Hello All,

I am building and packaging the following on one machine (the "build"
machine) and attempting to install and use on other machines ("target"
machines) some of which have different processors.

* OpenSSL 0.9.8l
* Apache 2.2.14
* Tomcat Connectors 1.2.28

The problem, as far as I can tell, is that the build machine has more
CPU capabilities than the target machine resulting in binaries that
are not executable on the target machine.  I have attempted to use
configure and compiler flags to disable use of the offending
instructions without luck.

Ultimately I get this error:

$ ./apachectl start httpd: Syntax error on line 58 of
/usr/local/apache-2.2.14/conf/httpd.conf: Cannot load
/usr/local/apache2/modules/mod_ssl.so into server: ld.so.1: httpd:
fatal: /usr/local/openssl/lib/libssl.so.0.9.8: hardware capability
unsupported: 0x1000 [ SSE2 ]

Here is my complete build process with links to the full output
generated by each command.

**The Build Machine**

  $ echo $PATH
  /usr/bin:/usr/ccs/bin:/usr/sfw/bin:/opt/sfw/bin:/usr/sbin

  $ isainfo -v
  32-bit i386 applications
          pause sse2 sse fxsr mmx cmov sep cx8 tsc fpu

  $ uname -a
  SunOS bsiausstgdb02 5.10 Generic_120012-14 i86pc i386 i86pc

**The Target Machine**

  $ isainfo -v
  32-bit i386 applications
          sse fxsr mmx cmov sep cx8 tsc fpu

  $ uname -a
  SunOS bsiausdevweb01 5.10 Generic_120012-14 i86pc i386 i86pc

**Compile OpenSSL 0.9.8l**

  $ CC=/usr/bin/cc
  $ export CC

  $ CFLAGS="-xarch=sse"
  $ export CFLAGS

  $ ./Configure \
  solaris-x86-cc \
  shared \
  no-asm \
  no-sse2 \
  -xarch=sse \
  --openssldir=/usr/local/openssl-0.9.8l

view full output:
http://sites.google.com/site/gchris/home/a/openssl-configure.txt


  $ make && make test

view full output
http://sites.google.com/site/gchris/home/a/openssl-make-and-test.txt

  $ sudo make install

view full output:
http://sites.google.com/site/gchris/home/a/openssl-make-install.txt

**Compile Apache 2.2.14**

  $ CC=/usr/bin/cc
  $ export CC

  $ CFLAGS="-xarch=sse"
  $ export CFLAGS

  $ ./configure \
  --prefix=/usr/local/apache-2.2.14 \
  --with-mpm=prefork \
  --enable-so \
  --enable-unique-id=shared \
  --enable-rewrite=shared \
  --enable-spelling=shared \
  --enable-info=shared \
  --enable-headers=shared \
  --enable-deflate=shared \
  --enable-expires=shared \
  --enable-unique-id=shared \
  --enable-speling=shared \
  --enable-ssl=shared \
  --with-ssl=/usr/local/openssl

full output:
http://sites.google.com/site/gchris/home/a/apache-configure.txt

  $ make

full output:
http://sites.google.com/site/gchris/home/a/apache-make.txt

  $ sudo make install

full output:
http://sites.google.com/site/gchris/home/a/apache-make-install.txt

**Compile Tomcat Connectors 1.2.28**

  $ CC=/usr/bin/cc
  $ export CC

  $ CFLAGS="-xarch=sse"
  $ export CFLAGS

  $ cd native
  $ ./configure \
  --with-apxs=/usr/local/apache2/bin/apxs

full output:
http://sites.google.com/site/gchris/home/a/tomcat-connector-configure.txt

  $ make

full output:
http://sites.google.com/site/gchris/home/a/tomcat-connector-make.txt

  $ sudo make install

full output:
http://sites.google.com/site/gchris/home/a/tomcat-connector-make-install.txt

**Testing**

At this point everything will work on the build machine.  Once I
package these files and install them on the target machine, I get this
error when Apache is started with mod_ssl enabled.

$ ./apachectl start
httpd: Syntax error on line 58 of
/usr/local/apache-2.2.14/conf/httpd.conf: Cannot load
/usr/local/apache2/modules/mod_ssl.so into server: ld.so.1: httpd:
fatal: /usr/local/openssl/lib/libssl.so.0.9.8: hardware capability
unsupported: 0x1000  [ SSE2 ]

-Chris

Reply via email to