シェアードライブラリにします。SPARCでは32bit版と64bit版を両方コンパ
イルしておきます。--prefixを指定することで、bin, lib, includeはその
配下になります。64bit版のバイナリとライブラリはsparcv9以下に移動して
おきましょう。好みで--openssl-dir=/etc/sslとするのもいいでしょう。
make test時にbcがうまく動かないという文句が出るので、あらかじめ
GNU bcをインストールしておきます。
OSの/dev/randomを使うようにするため、Solaris 8ではパッチ112438を 適用しておきます。
% ./Configure --prefix=/usr/local solaris64-sparcv9-cc shared
できあがったMakefileを修正します。
% vi Makefile @@ -339,7 +339,7 @@ --verbose -dynamiclib -o lib$$i${SHLIB_EXT} \ lib$$i.a $$libs -all_load -current_version ${SHLIB_MAJOR}.${SHLIB_MINOR} \ -compatibility_version ${SHLIB_MAJOR}.`echo ${SHLIB_MINOR} | cut -d. -f1` \ - -install_name ${INSTALLTOP}/lib/lib$$i${SHLIB_EXT} ) || exit 1; \ + -install_name ${INSTALLTOP}/lib/64/lib$$i${SHLIB_EXT} ) || exit 1; \ libs="-l`basename $$i${SHLIB_EXT} .dylib` $$libs"; \ echo "" ; \ done @@ -414,7 +414,7 @@ fi; \ ( set -x; $${FIPSLD:-${CC}} ${SHARED_LDFLAGS} \ -shared -msym -o lib$$i.so \ - -rpath ${INSTALLTOP}/lib \ + -rpath ${INSTALLTOP}/lib/64 \ -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \ -all lib$$i.a -none $$libs ${EX_LIBS} ) || exit 1; \ libs="-l$$i $$libs"; \ @@ -609,7 +609,7 @@ echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \ echo 'Version: '$(VERSION); \ echo 'Requires: '; \ - echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \ + echo 'Libs: -L$${libdir}/64 -R$${libdir}/64 -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \ echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc Makefile: Makefile.org @@ -785,9 +785,9 @@ install: all install_docs install_sw install_sw: - @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ - $(INSTALL_PREFIX)$(INSTALLTOP)/lib \ - $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \ + @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9 \ + $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64 \ + $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/pkgconfig \ $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ @@ -808,14 +808,14 @@ do \ if [ -f "$$i" ]; then \ ( echo installing $$i; \ - cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ + cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.new; \ if egrep 'define OPENSSL_FIPS' $(TOP)/include/openssl/opensslconf.h > /dev/null; then \ : ; \ else \ - $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ + $(RANLIB) $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.new; \ fi; \ - chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i ); \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i ); \ fi; \ done; @if [ -n "$(SHARED_LIBS)" ]; then \ @@ -825,22 +825,22 @@ if [ -f "$$i" -o -f "$$i.a" ]; then \ ( echo installing $$i; \ if [ "$(PLATFORM)" != "Cygwin" ]; then \ - cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ - chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ + cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.new; \ + chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i; \ else \ c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \ - cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ - chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \ - cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ - chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \ + cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$c.new; \ + chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$c.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$c; \ + cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.a.new; \ + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.a.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/$$i.a; \ fi ); \ fi; \ done; \ ( here="`pwd`"; \ - cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ + cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64; \ set $(MAKE); \ $$1 -f $$here/Makefile link-shared ); \ if [ "$(INSTALLTOP)" != "/usr" ]; then \ @@ -850,8 +850,8 @@ sed -e '1,/^$$/d' doc/openssl-shared.txt; \ fi; \ fi - cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig - chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig/openssl.pc + cp openssl.pc $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/pkgconfig + chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/64/pkgconfig/openssl.pc install_docs: @$(PERL) $(TOP)/util/mkdir-p.pl \
% vi apps/Makefile @@ -31,8 +31,8 @@ DLIBCRYPTO=../libcrypto.a DLIBSSL=../libssl.a -LIBCRYPTO=-L.. -lcrypto -LIBSSL=-L.. -lssl +LIBCRYPTO=-L.. -R/usr/local/lib/64 -lcrypto +LIBSSL=-L.. -R/usr/local/lib/64 -lssl PROGRAM= openssl @@ -99,10 +99,10 @@ @for i in $(EXE); \ do \ (echo installing $$i; \ - cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new \ - chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new \ - $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \ + cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$i.new; \ + chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$i.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$i.new \ + $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$i; \ ) done; @for i in $(SCRIPTS); \ do \
% vi fips-1.0/Makefile @@ -171,9 +171,9 @@ @for i in $(EXE) ; \ do \ echo "installing $$i"; \ - cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \ - chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \ + cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$i.new; \ + chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$i.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv9/$$i; \ done @cp -p -f fipscanister.o fipscanister.o.sha1 fip
% gmake % gmake test # gmake install
% ./Configure --prefix=/usr/local solaris-sparcv8-cc shared
できあがったMakefileを修正します。
% vi Makefile @@ -609,7 +609,7 @@ echo 'Description: Secure Sockets Layer and cryptography libraries and tools'; \ echo 'Version: '$(VERSION); \ echo 'Requires: '; \ - echo 'Libs: -L$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \ + echo 'Libs: -L$${libdir} -R$${libdir} -lssl -lcrypto $(LIBKRB5) $(EX_LIBS)'; \ echo 'Cflags: -I$${includedir} $(KRB5_INCLUDES)' ) > openssl.pc Makefile: Makefile.org @@ -785,9 +785,9 @@ install: all install_docs install_sw install_sw: - @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin \ $(INSTALL_PREFIX)$(INSTALLTOP)/lib \ $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \ + @$(PERL) $(TOP)/util/mkdir-p.pl $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus \ $(INSTALL_PREFIX)$(INSTALLTOP)/lib \ $(INSTALL_PREFIX)$(INSTALLTOP)/lib/pkgconfig \ $(INSTALL_PREFIX)$(INSTALLTOP)/include/openssl \ $(INSTALL_PREFIX)$(OPENSSLDIR)/misc \ $(INSTALL_PREFIX)$(OPENSSLDIR)/certs \ @@ -825,22 +825,22 @@ if [ -f "$$i" -o -f "$$i.a" ]; then \ ( echo installing $$i; \ if [ "$(PLATFORM)" != "Cygwin" ]; then \ cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ chmod 555 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new; \ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \ else \ c=`echo $$i | sed 's/^lib\(.*\)\.dll/cyg\1-$(SHLIB_VERSION_NUMBER).dll/'`; \ - cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ - chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new; \ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c; \ cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \ + cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$c.new; \ + chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$c.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$c.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$c; \ cp $$i.a $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ chmod 644 $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new; \ mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a.new $(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i.a; \ fi ); \ fi; \ done; \ ( here="`pwd`"; \ cd $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \ set $(MAKE); \ $$1 -f $$here/Makefile link-shared ); \ if [ "$(INSTALLTOP)" != "/usr" ]; then \
% vi apps/Makefile @@ -31,8 +31,8 @@ DLIBCRYPTO=../libcrypto.a DLIBSSL=../libssl.a -LIBCRYPTO=-L.. -lcrypto -LIBSSL=-L.. -lssl +LIBCRYPTO=-L.. -R/usr/local/lib -lcrypto +LIBSSL=-L.. -R/usr/local/lib -lssl PROGRAM= openssl @@ -99,10 +99,10 @@ @for i in $(EXE); \ do \ (echo installing $$i; \ - cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new \ - chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new \ - $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \ + cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$i.new; \ + chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$i.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$i.new \ + $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$i; \ ) done; @for i in $(SCRIPTS); \ do \
% vi fips-1.0/Makefile @@ -171,9 +171,9 @@ @for i in $(EXE) ; \ do \ echo "installing $$i"; \ - cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \ - chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new; \ - mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$i; \ + cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$i.new; \ + chmod 755 $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$i.new; \ + mv -f $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$i.new $(INSTALL_PREFIX)$(INSTALLTOP)/bin/sparcv8plus/$$i; \ done @cp -p -f fipscanister.o fipscanister.o.sha1 fip
% gmake % gmake test # gmake install