シェアードライブラリにします。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