[I'm not subscribed to openssl-dev, please cc me on any replies]
All-
OpenSSL's platform "knowledge" continues to improve, such that shared
libraries were built by 0.9.6d when I configured it on
hppa1.1-hp-hpux10.20.
There's a very minor problem in the install process, though. OpenSSL
wants to install shared libraries mode 644 on all UNIX platforms, but
HP-UX 9.x (I don't have 9.x anymore, but I remember the behavior) and 10.x
require that shared libraries be executable. I don't have 11.x so I don't
know what the behavior is there, but since 11.x is ELF-based rather than
SOM-based, I would guess it's *not* required there. Someone with access
to 11.x should confirm that, though.
In addition, for reasons that I've forgotten, it's actually a performance
hit for all applications using the library if the library is writeable
by anyone (even root). That may not be true for more recent HP-UX
versions, but for at least some of them, the loader apparently does some
additional (likely unnecessary) work if it detects the shared library is
writeable.
For those two reasons, shared libraries on HP-UX through at least 10.x
should be installed mode 555. The patch below my sig accomplishes that,
though there may very well be a better way of going about it. I've tested
it on a couple platforms (HP-UX, IRIX, Tru64 UNIX), but I haven't tested
it on platforms that don't build shared libraries at all (I don't think I
have any of those, though perhaps AIX 4.x would be one).
Also, one question. I've noted that on most of the platforms OpenSSL's
build process tends to do shared library versioning in a manner that is
very Linux and Solaris-like, even if that isn't the manner that the vendor
uses for that platform. For example, OpenSSL generates shared libraries
on HP-UX that look like:
libcrypto.sl@ -> libcrypto.sl.0
libcrypto.sl.0@ -> libcrypto.sl.0.9.6
libcrypto.sl.0.9.6*
Even though HP-UX shared libraries are versioned without any library
suffix at all:
-r-xr-xr-x 1 bin bin 1863680 Nov 10 1999 libc.1*
lrwxr-xr-x 1 root sys 15 Jun 10 1996 libc.sl@ -> /usr/lib/libc.1
lrwxr-xr-t 1 root sys 16 Jun 10 1996 libc_r.sl@ ->
/usr/lib/libc.sl
-r-xr-xr-x 1 bin bin 1093632 Feb 21 1999 libcl.1*
lrwxr-xr-x 1 root sys 16 Jun 10 1996 libcl.sl@ -> /usr/lib/libcl.1
-r-xr-xr-x 1 bin bin 520192 May 30 1996 libcma.1*
lrwxr-xr-x 1 root sys 8 Jun 10 1996 libcma.sl@ -> libcma.1
-r-xr-xr-x 1 bin bin 339968 Feb 20 1998 libcur_colr.1*
lrwxr-xr-x 1 root sys 22 Jun 10 1996 libcur_colr.sl@ ->
/usr/lib/libcur_colr.1
lrwxr-xr-x 1 root sys 20 Nov 6 1999 libcurses.0@ ->
/usr/lib/libcurses.1
-r-xr-xr-x 1 bin bin 196608 Jun 12 1997 libcurses.1*
lrwxr-xr-x 1 root sys 21 Jun 10 1996 libcurses.sl@ ->
/usr/lib/libxcurses.1
Similarly, on IRIX, the OSF-style internal library versioning (very similar
to the vendor library versioning on Tru64 UNIX) isn't used, and the build
procedure just uses the Solaris/Linux style SONAME versioning.
This leads me to ask why OpenSSL's build procedure does it this way,
rather than doing shared library versioning in a manner that more closely
resembles how the vendor libraries are versioned for a particular
platform.
Thanks!
Tim
--
Tim Mooney [EMAIL PROTECTED]
Information Technology Services (701) 231-1076 (Voice)
Room 242-J6, IACC Building (701) 231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164
diff -ur openssl-0.9.6d.orig/Makefile.org openssl-0.9.6d/Makefile.org
--- openssl-0.9.6d.orig/Makefile.org Thu May 9 18:05:53 2002
+++ openssl-0.9.6d/Makefile.org Thu Jun 27 15:34:02 2002
@@ -655,8 +655,13 @@
if [ -f "$$i" -o -f "$$i.a" ]; then \
( echo installing $$i; \
if [ "$(PLATFORM)" != "Cygwin" ]; then \
- cp $$i $(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
- chmod 644
$(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
+ if [ X"$(SHLIB_TARGET)" = X"hpux-shared" ];
+then \
+ cp $$i
+$(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
+ chmod 555
+$(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
+ else \
+ cp $$i
+$(INSTALL_PREFIX)$(INSTALLTOP)/lib; \
+ chmod 644
+$(INSTALL_PREFIX)$(INSTALLTOP)/lib/$$i; \
+ fi; \
else \
c=`echo $$i | sed 's/^lib/cyg/'`; \
cp $$c $(INSTALL_PREFIX)$(INSTALLTOP)/bin/$$c;
\
______________________________________________________________________
OpenSSL Project http://www.openssl.org
Development Mailing List [EMAIL PROTECTED]
Automated List Manager [EMAIL PROTECTED]