Final HP-UX specific touches to "cope with run-time linker on multi-ABI
authorAndy Polyakov <appro@openssl.org>
Thu, 3 Feb 2005 11:09:20 +0000 (11:09 +0000)
committerAndy Polyakov <appro@openssl.org>
Thu, 3 Feb 2005 11:09:20 +0000 (11:09 +0000)
platforms."

Configure
Makefile.org
TABLE

index e89e4327913e30b707780d7fe9fff34839303888..1bd5498e1f404a60a85380de1af4880bbe881f65 100755 (executable)
--- a/Configure
+++ b/Configure
@@ -270,10 +270,10 @@ my %table=(
 "hpux64-parisc2-gcc","gcc:-O3 -DB_ENDIAN -DMD32_XARRAY::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX RC4_CHAR DES_UNROLL DES_RISC1 DES_INT:asm/pa-risc2W.o:::::::::dlfcn:hpux64-shared:-fpic::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
 # IA-64 targets
-"hpux-ia64-cc","cc:-Ae +DD32 +O3 +Olit=all -z -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:asm/ia64-cpp.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:hpux-shared:+Z::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux-ia64-cc","cc:-Ae +DD32 +O3 +Olit=all -z -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:asm/ia64-cpp.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:hpux-shared:+Z::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 # Frank Geurts <frank.geurts@nl.abnamro.com> has patiently assisted with
 # with debugging of the following config.
-"hpux64-ia64-cc","cc:-Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:asm/ia64-cpp.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:hpux64-shared:+Z::.sl.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"hpux64-ia64-cc","cc:-Ae +DD64 +O3 +Olit=all -z -DB_ENDIAN::-D_REENTRANT::-ldl:SIXTY_FOUR_BIT_LONG MD2_CHAR RC4_INDEX DES_UNROLL DES_RISC1 DES_INT:asm/ia64-cpp.o::::asm/sha1-ia64.o::asm/rc4-ia64.o:::dlfcn:hpux64-shared:+Z::.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
 
 # More attempts at unified 10.X and 11.X targets for HP C compiler.
 #
index 3b72486d04e8d6af75f4c6457c4a3a20477e1130..afe3d43d1c264549e69bb7e4644247a1b3d4f8b8 100644 (file)
@@ -505,13 +505,18 @@ do_hpux-shared:
        if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
                libs="$(LIBKRB5) $$libs"; \
        fi; \
+       if expr $(PLATFORM) : '.*ia64' > /dev/null; then \
+               shlib=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
+       else \
+               shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
+       fi; \
+       [ -f $$shlib ] && rm -f $$shlib; \
        ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
                +vnocompatwarnings \
                -b -z +s \
-               -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
-               +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
+               -o $$shlib +h $$shlib \
                -Fl lib$$i.a -ldld -lc ) || exit 1; \
-       chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
+       chmod a=rx $$shlib; \
        done
 
 # This assumes that GNU utilities are *not* used
@@ -528,12 +533,17 @@ do_hpux64-shared:
        if [ "${SHLIBDIRS}" = "ssl" -a -n "$(LIBKRB5)" ]; then \
                libs="$(LIBKRB5) $$libs"; \
        fi; \
+       if expr $(PLATFORM) : '.*ia64' > /dev/null; then \
+               shlib=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
+       else \
+               shlib=lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
+       fi; \
+       [ -f $$shlib ] && rm -f $$shlib; \
        ( set -x; /usr/ccs/bin/ld ${SHARED_LDFLAGS} \
                -b -z \
-               -o lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
-               +h lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR} \
+               -o $$shlib +h $$shlib \
                +forceload lib$$i.a -ldl -lc ) || exit 1; \
-       chmod a=rx lib$$i.sl.${SHLIB_MAJOR}.${SHLIB_MINOR}; \
+       chmod a=rx $$shlib; \
        done
 
 # The following method is said to work on all platforms.  Tests will
diff --git a/TABLE b/TABLE
index 29c47c5c3bf4e369df3b4c774363f1512829f9cd..cdc154a53ea8332973136c4c4a2703b8d2926724 100644 (file)
--- a/TABLE
+++ b/TABLE
@@ -2346,7 +2346,7 @@ $dso_scheme   = dlfcn
 $shared_target= hpux-shared
 $shared_cflag = +Z
 $shared_ldflag = 
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 $ranlib       = 
 $arflags      = 
 
@@ -2621,7 +2621,7 @@ $dso_scheme   = dlfcn
 $shared_target= hpux64-shared
 $shared_cflag = +Z
 $shared_ldflag = 
-$shared_extension = .sl.$(SHLIB_MAJOR).$(SHLIB_MINOR)
+$shared_extension = .so.$(SHLIB_MAJOR).$(SHLIB_MINOR)
 $ranlib       = 
 $arflags      =