On Tue, 30 Oct 2001, Richard Levitte - VMS Whacker wrote:

> macro>  Ah, OK.  In that case it should be clearly marked in the Makefile and
> macro> bogus symlinks should not get installed.  I'll prepare another patch and
> macro> send it once I have it.
> 
> Have you read INSTALL?  All of it?

 Of course -- not a single word regarding SONAMEs.

> macro>  Well, you may use libtool for 1.0 as you promise in the FAQ and get rid
> 
> I'm sorry, exactly where do we promise that?

"MISC.5. Why aren't tools like 'autoconf' and 'libtool' used?

   autoconf will probably be used in future OpenSSL versions. If it was
   less Unix-centric, it might have been used much earlier."

It's not stated libtool will be used there explicitly, but given the
question, one might assume it will, like I did.  If that's not true, the
statement needs a rewording, e.g. "libtool won't be used because...".

 OK -- here is a new patch.  It should make the versioning setup more
consistent.  I added clarifying comments to crypto/opensslv.h, as that's
the place the decision is taken after the changes.  I hope you'll find the
new solution less confusing like I do.  The patch is big because of the
s/\\\$(SHLIB_MAJOR)\.\\\$(SHLIB_MINOR)/$(SHLIB_VERSION_NUMBER)/
translation, but it otherwise introduces a few changes, actually.

 I tested it on an i386/Linux system that I have handy both as is and
with SHLIB_VERSION_MAJOR and SHLIB_VERSION_MINOR set to "0" and ".9.6", 
respectively.  It appears to work fine both ways, i.e. both SONAMEs and
symlinks are set as one mwould expect.  

  Maciej

-- 
+  Maciej W. Rozycki, Technical University of Gdansk, Poland   +
+--------------------------------------------------------------+
+        e-mail: [EMAIL PROTECTED], PGP key available        +

openssl-0.9.6b-shlib_ver.patch
diff -up --recursive --new-file openssl-0.9.6b.macro/Configure openssl-0.9.6b/Configure
--- openssl-0.9.6b.macro/Configure      Mon Jul  9 14:08:37 2001
+++ openssl-0.9.6b/Configure    Tue Oct 30 16:40:12 2001
@@ -132,35 +132,35 @@ my %table=(
 # surrounds it with #APP #NO_APP comment pair which (at least Solaris
 # 7_x86) /usr/ccs/bin/as fails to assemble with "Illegal mnemonic"
 # error message.
-"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN 
-DNO_INLINE_ASM::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:${x86_sol_asm}:dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-x86-gcc","gcc:-O3 -fomit-frame-pointer -m486 -Wall -DL_ENDIAN 
+-DNO_INLINE_ASM::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG ${x86_gcc_des} 
+${x86_gcc_opts}:${x86_sol_asm}:dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 
 #### Solaris x86 with Sun C setups
-"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR 
RC4_CHUNK DES_PTR DES_UNROLL 
BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-x86-cc","cc:-fast -O -Xa::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR 
+RC4_CHUNK DES_PTR DES_UNROLL 
+BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 
 #### SPARC Solaris with GNU C setups
-"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
BF_PTR::::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
BF_PTR:asm/sparcv8.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv9-gcc","gcc:-mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK 
DES_UNROLL 
BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparcv7-gcc","gcc:-O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
+-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
+BF_PTR::::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"solaris-sparcv8-gcc","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
+-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
+BF_PTR:asm/sparcv8.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"solaris-sparcv9-gcc","gcc:-mcpu=ultrasparc -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
+-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK 
+DES_UNROLL 
+BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 # gcc pre-2.8 doesn't understand -mcpu=ultrasparc, so fall down to -mv8
 # but keep the assembler modules.
-"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK 
DES_UNROLL 
BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparcv9-gcc27","gcc:-mv8 -O3 -fomit-frame-pointer -Wall -DB_ENDIAN 
+-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK 
+DES_UNROLL 
+BF_PTR:asm/sparcv8plus-gcc27.o:::asm/md5-sparcv8plus-gcc27.o::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 ####
-"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
-DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl 
-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
BF_PTR:asm/sparcv8.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
-DCRYPTO_MDEBUG_ALL -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket 
-lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-solaris-sparcv8-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
+-DCRYPTO_MDEBUG_ALL -O -g -mv8 -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl 
+-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
+BF_PTR:asm/sparcv8.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"debug-solaris-sparcv9-gcc","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
+-DCRYPTO_MDEBUG_ALL -O -g -mcpu=ultrasparc -Wall -DB_ENDIAN::-D_REENTRANT:-lsocket 
+-lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL 
+BF_PTR:asm/sparcv8plus.o:::::::::dlfcn:gnu-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 
 #### SPARC Solaris with Sun C setups
 # DO NOT use /xO[34] on sparc with SC3.0.  It is broken, and will not pass the tests
-"solaris-sparc-sc3","cc:-fast -O -Xa -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl 
-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL 
BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"solaris-sparc-sc3","cc:-fast -O -Xa -DB_ENDIAN::-D_REENTRANT:-lsocket -lnsl 
+-ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR DES_UNROLL 
+BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 # SC4.0 doesn't pass 'make test', upgrade to SC5.0 or SC4.2.
 # SC4.2 is ok, better than gcc even on bn as long as you tell it -xarch=v8
 # SC5.0 note: Compiler common patch 107357-01 or later is required!
-"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN 
-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR 
DES_RISC1 DES_UNROLL 
BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN 
-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR 
DES_RISC1 DES_UNROLL 
BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa 
-DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR 
RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL 
BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa 
-DB_ENDIAN -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR 
RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL 
BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR):/usr/ccs/bin/ar
 rs",
+"solaris-sparcv7-cc","cc:-xO5 -xstrconst -xdepend -Xa -DB_ENDIAN 
+-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR 
+DES_RISC1 DES_UNROLL 
+BF_PTR::::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"solaris-sparcv8-cc","cc:-xarch=v8 -xO5 -xstrconst -xdepend -Xa -DB_ENDIAN 
+-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR 
+DES_RISC1 DES_UNROLL 
+BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"solaris-sparcv9-cc","cc:-xtarget=ultra -xarch=v8plus -xO5 -xstrconst -xdepend -Xa 
+-DB_ENDIAN -DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG 
+RC4_CHAR RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL 
+BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"solaris64-sparcv9-cc","cc:-xtarget=ultra -xarch=v9 -xO5 -xstrconst -xdepend -Xa 
+-DB_ENDIAN -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:SIXTY_FOUR_BIT_LONG 
+RC4_CHAR RC4_CHUNK DES_INT DES_PTR DES_RISC1 DES_UNROLL 
+BF_PTR::::asm/md5-sparcv9.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_VERSION_NUMBER):/usr/ccs/bin/ar
+ rs",
 ####
-"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
-DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN 
-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR 
DES_RISC1 DES_UNROLL 
BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
-DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN 
-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR 
RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL 
BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"debug-solaris-sparcv8-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
+-DCRYPTO_MDEBUG_ALL -xarch=v8 -g -O -xstrconst -Xa -DB_ENDIAN 
+-DBN_DIV2W::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR RC4_CHUNK DES_PTR 
+DES_RISC1 DES_UNROLL 
+BF_PTR:asm/sparcv8.o:::::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"debug-solaris-sparcv9-cc","cc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
+-DCRYPTO_MDEBUG_ALL -xtarget=ultra -xarch=v8plus -g -O -xstrconst -Xa -DB_ENDIAN 
+-DBN_DIV2W -DULTRASPARC::-D_REENTRANT:-lsocket -lnsl -ldl:BN_LLONG RC4_CHAR 
+RC4_CHUNK_LL DES_PTR DES_RISC1 DES_UNROLL 
+BF_PTR:asm/sparcv8plus.o:::asm/md5-sparcv8plus.o::::::dlfcn:solaris-shared:-KPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 
 #### SPARC Linux setups
 "linux-sparcv7","gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer 
-Wall::-D_REENTRANT::BN_LLONG RC4_CHAR RC4_CHUNK DES_UNROLL BF_PTR::",
@@ -273,7 +273,7 @@ my %table=(
 "alpha-gcc","gcc:-O3::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_UNROLL 
DES_RISC1:${alpha_asm}:dlfcn:tru64-shared::.so",
 "alpha-cc", "cc:-std1 -tune host -O4 
-readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG 
RC4_CHUNK:${alpha_asm}:dlfcn:tru64-shared::.so",
 "alpha164-cc", "cc:-std1 -tune host -fast 
-readonly_strings::(unknown)::SIXTY_FOUR_BIT_LONG 
RC4_CHUNK:${alpha_asm}:dlfcn:tru64-shared::.so",
-"FreeBSD-alpha","gcc:-DTERMIOS -O 
-fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR 
DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"FreeBSD-alpha","gcc:-DTERMIOS -O 
+-fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR 
+DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 
 #### Alpha Linux with GNU C and Compaq C setups
 # Special notes:
@@ -288,8 +288,8 @@ my %table=(
 #
 #                                      <[EMAIL PROTECTED]>
 #
-"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG 
RC4_CHUNK DES_RISC1 
DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN 
-DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 
DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-alpha-gcc","gcc:-O3 -DL_ENDIAN -DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG 
+RC4_CHUNK DES_RISC1 
+DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"linux-alpha+bwx-gcc","gcc:-O3 -DL_ENDIAN 
+-DTERMIO::-D_REENTRANT:-ldl:SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_RISC1 
+DES_UNROLL:${alpha_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 "linux-alpha-ccc","ccc:-fast -readonly_strings -DL_ENDIAN 
-DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHUNK DES_INT DES_PTR DES_RISC1 
DES_UNROLL:${alpha_asm}",
 "linux-alpha+bwx-ccc","ccc:-fast -readonly_strings -DL_ENDIAN 
-DTERMIO::-D_REENTRANT::SIXTY_FOUR_BIT_LONG RC4_CHAR RC4_CHUNK DES_INT DES_PTR 
DES_RISC1 DES_UNROLL:${alpha_asm}",
 
@@ -298,7 +298,7 @@ my %table=(
 
 # The intel boxes :-), It would be worth seeing if bsdi-gcc can use the
 # bn86-elf.o file file since it is hand tweaked assembler.
-"linux-elf",   "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 
-Wall::-D_REENTRANT:-ldl:BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-elf",   "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 
+-Wall::-D_REENTRANT:-ldl:BN_LLONG ${x86_gcc_des} 
+${x86_gcc_opts}:${x86_elf_asm}:dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 "debug-linux-elf","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
-DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT:-lefence 
-ldl:BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 "debug-linux-elf-noefence","gcc:-DBN_DEBUG -DREF_CHECK -DCONF_DEBUG -DBN_CTX_DEBUG 
-DCRYPTO_MDEBUG -DL_ENDIAN -DTERMIO -g -m486 -Wall::-D_REENTRANT:-ldl:BN_LLONG 
${x86_gcc_des} ${x86_gcc_opts}:${x86_elf_asm}:dlfcn",
 "linux-aout",  "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer -m486 
-Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
@@ -307,13 +307,13 @@ my %table=(
 "linux-m68k",   "gcc:-DB_ENDIAN -DTERMIO -O2 -fomit-frame-pointer 
-Wall::-D_REENTRANT::BN_LLONG::",
 "linux-s390",  "gcc:-DB_ENDIAN -DTERMIO -O3 -fomit-frame-pointer 
-Wall::-D_REENTRANT::BN_LLONG::",
 "linux-ia64",   "gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer 
-Wall::(unknown)::SIXTY_FOUR_BIT_LONG::",
-"NetBSD-sparc",        "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall 
-DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX 
DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"NetBSD-m68",  "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall 
-DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX 
DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"NetBSD-x86",  "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 
-Wall::(unknown)::BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"FreeBSD-elf",  "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 
-Wall::(unknown)::BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"NetBSD-sparc",        "gcc:-DTERMIOS -O3 -fomit-frame-pointer -mv8 -Wall 
+-DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX 
+DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"NetBSD-m68",  "gcc:-DTERMIOS -O3 -fomit-frame-pointer -Wall 
+-DB_ENDIAN::(unknown)::BN_LLONG MD2_CHAR RC4_INDEX 
+DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"NetBSD-x86",  "gcc:-DTERMIOS -O3 -fomit-frame-pointer -m486 
+-Wall::(unknown)::BN_LLONG ${x86_gcc_des} 
+${x86_gcc_opts}::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"FreeBSD-elf",  "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 
+-Wall::(unknown)::BN_LLONG ${x86_gcc_des} 
+${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 "FreeBSD",      "gcc:-DTERMIOS -DL_ENDIAN -fomit-frame-pointer -O3 -m486 
-Wall::(unknown)::BN_LLONG ${x86_gcc_des} ${x86_gcc_opts}:${x86_out_asm}",
 "bsdi-gcc",     "gcc:-O3 -ffast-math -DL_ENDIAN -DPERL5 -m486::(unknown)::RSA_LLONG 
${x86_gcc_des} ${x86_gcc_opts}:${x86_bsdi_asm}",
-"bsdi-elf-gcc",     "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 
-Wall::(unknown):-ldl:BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"bsdi-elf-gcc",     "gcc:-DPERL5 -DL_ENDIAN -fomit-frame-pointer -O3 -m486 
+-Wall::(unknown):-ldl:BN_LLONG ${x86_gcc_des} 
+${x86_gcc_opts}:${x86_elf_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 "nextstep",    "cc:-O -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:::",
 "nextstep3.3", "cc:-O3 -Wall:<libc.h>:(unknown)::BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:::",
 # NCR MP-RAS UNIX ver 02.03.01
@@ -323,7 +323,7 @@ my %table=(
 "qnx4",        "cc:-DL_ENDIAN -DTERMIO::(unknown)::${x86_gcc_des} ${x86_gcc_opts}:",
 
 # Linux on ARM
-"linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer 
-Wall::-D_REENTRANT::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"linux-elf-arm","gcc:-DL_ENDIAN -DTERMIO -O3 -fomit-frame-pointer 
+-Wall::-D_REENTRANT::BN_LLONG::::::::::dlfcn:linux-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 
 # UnixWare 2.0x fails destest with -O
 "unixware-2.0","cc:-DFILIO_H::-Kthread:-lsocket -lnsl -lx:${x86_gcc_des} 
${x86_gcc_opts}:::",
@@ -419,10 +419,10 @@ my %table=(
 ##"ultrix","cc:-O2 -DNOPROTO -DNOCONST -DL_ENDIAN::(unknown)::::::",
 
 # Some OpenBSD from Bob Beck <[EMAIL PROTECTED]>
-"OpenBSD-alpha","gcc:-DTERMIOS -O3 
-fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR 
DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer 
-m486::(unknown)::BN_LLONG ${x86_gcc_des} 
${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD",      "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR 
RC4_INDEX 
DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
-"OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR 
DES_UNROLL DES_RISC2 DES_PTR 
BF_PTR:::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_MAJOR).\$(SHLIB_MINOR)",
+"OpenBSD-alpha","gcc:-DTERMIOS -O3 
+-fomit-frame-pointer::(unknown)::SIXTY_FOUR_BIT_LONG DES_INT DES_PTR 
+DES_RISC2::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"OpenBSD-x86",  "gcc:-DL_ENDIAN -DTERMIOS -O3 -fomit-frame-pointer 
+-m486::(unknown)::BN_LLONG ${x86_gcc_des} 
+${x86_gcc_opts}:${x86_out_asm}:dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"OpenBSD",      "gcc:-DTERMIOS -O3 -fomit-frame-pointer::(unknown)::BN_LLONG RC2_CHAR 
+RC4_INDEX 
+DES_UNROLL::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
+"OpenBSD-mips","gcc:-O2 -DL_ENDIAN::(unknown):BN_LLONG MD2_CHAR RC4_INDEX RC4_CHAR 
+DES_UNROLL DES_RISC2 DES_PTR 
+BF_PTR:::::::::::dlfcn:bsd-gcc-shared:-fPIC:.so.\$(SHLIB_VERSION_NUMBER)",
 
 ##### MacOS X (a.k.a. Rhapsody) setup
 "rhapsody-ppc-cc","cc:-O3 -DB_ENDIAN::(unknown)::BN_LLONG RC4_CHAR RC4_CHUNK 
DES_UNROLL BF_PTR:::",
@@ -785,20 +785,23 @@ if ($rmd160_obj =~ /\.o$/)
 my $version = "unknown";
 my $major = "unknown";
 my $minor = "unknown";
-my $shlib_version_number = "unknown";
+my $shlib_version_major = "unknown";
+my $shlib_version_minor = "unknown";
 my $shlib_version_history = "unknown";
-my $shlib_major = "unknown";
-my $shlib_minor = "unknown";
+my $shlib_version_number = "";
+my $shared_libs_link_exts = "";
 
 open(IN,'<crypto/opensslv.h') || die "unable to read opensslv.h:$!\n";
 while (<IN>)
        {
        $version=$1 if /OPENSSL.VERSION.TEXT.*OpenSSL (\S+) /;
-       $shlib_version_number=$1 if /SHLIB_VERSION_NUMBER *"([^"]+)"/;
+       $shlib_version_major=$1 if /SHLIB_VERSION_MAJOR *"([^"]+)"/;
+       $shlib_version_minor=$1 if /SHLIB_VERSION_MINOR *"([^"]*)"/;
        $shlib_version_history=$1 if /SHLIB_VERSION_HISTORY *"([^"]*)"/;
        }
 close(IN);
 if ($shlib_version_history ne "") { $shlib_version_history .= ":"; }
+$shlib_version_number=$shlib_version_major.$shlib_version_minor;
 
 if ($version =~ /(^[0-9]*)\.([0-9\.]*)/)
        {
@@ -806,10 +809,10 @@ if ($version =~ /(^[0-9]*)\.([0-9\.]*)/)
        $minor=$2;
        }
 
-if ($shlib_version_number =~ /(^[0-9]*)\.([0-9\.]*)/)
+if ($shared_extension ne "" && $shared_extension !~ /^\.s[ol]$/)
        {
-       $shlib_major=$1;
-       $shlib_minor=$2;
+       $shared_libs_link_exts=".so";
+       $shared_libs_link_exts=".so.\$(SHLIB_VERSION_MAJOR) ".$shared_libs_link_exts 
+if $shlib_version_minor ne "";
        }
 
 open(IN,'<Makefile.org') || die "unable to read Makefile.org:$!\n";
@@ -832,8 +835,7 @@ while (<IN>)
        s/^MINOR=.*/MINOR=$minor/;
        s/^SHLIB_VERSION_NUMBER=.*/SHLIB_VERSION_NUMBER=$shlib_version_number/;
        s/^SHLIB_VERSION_HISTORY=.*/SHLIB_VERSION_HISTORY=$shlib_version_history/;
-       s/^SHLIB_MAJOR=.*/SHLIB_MAJOR=$shlib_major/;
-       s/^SHLIB_MINOR=.*/SHLIB_MINOR=$shlib_minor/;
+       s/^SHLIB_VERSION_MAJOR=.*/SHLIB_VERSION_MAJOR=$shlib_version_major/;
        s/^SHLIB_EXT=.*/SHLIB_EXT=$shared_extension/;
        s/^INSTALLTOP=.*$/INSTALLTOP=$prefix/;
        s/^OPENSSLDIR=.*$/OPENSSLDIR=$openssldir/;
@@ -861,7 +863,7 @@ while (<IN>)
        s/^SHLIB_TARGET=.*/SHLIB_TARGET=$shared_target/;
        s/^SHLIB_MARK=.*/SHLIB_MARK=$shared_mark/;
        s/^SHARED_LIBS=.*/SHARED_LIBS=\$(SHARED_CRYPTO) \$(SHARED_SSL)/ if 
(!$no_shared);
-       s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=.so.\$(SHLIB_MAJOR) .so/ if 
($shared_extension ne "" && $shared_extension !~ /^\.s[ol]$/);
+       s/^SHARED_LIBS_LINK_EXTS=.*/SHARED_LIBS_LINK_EXTS=$shared_libs_link_exts/;
        print OUT $_."\n";
        }
 close(IN);
diff -up --recursive --new-file openssl-0.9.6b.macro/Makefile.org 
openssl-0.9.6b/Makefile.org
--- openssl-0.9.6b.macro/Makefile.org   Mon Jul  9 14:08:41 2001
+++ openssl-0.9.6b/Makefile.org Tue Oct 30 16:13:10 2001
@@ -7,8 +7,7 @@ MAJOR=
 MINOR=
 SHLIB_VERSION_NUMBER=
 SHLIB_VERSION_HISTORY=
-SHLIB_MAJOR=
-SHLIB_MINOR=
+SHLIB_VERSION_MAJOR=
 SHLIB_EXT=
 PLATFORM=dist
 OPTIONS=
@@ -255,8 +254,8 @@ do_bsd-gcc-shared: do_gnu-shared
 do_linux-shared: do_gnu-shared
 do_gnu-shared:
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
-       ( set -x; ${CC}  -shared -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
-               -Wl,-S,-soname=lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
+       ( set -x; ${CC}  -shared -o lib$$i.so.${SHLIB_VERSION_NUMBER} \
+               -Wl,-S,-soname=lib$$i.so.${SHLIB_VERSION_MAJOR} \
                -Wl,--whole-archive lib$$i.a \
                -Wl,--no-whole-archive $$libs ${EX_LIBS} -lc ) || exit 1; \
        libs="$$libs -l$$i"; \
@@ -266,7 +265,7 @@ do_gnu-shared:
 do_tru64-shared:
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
        ( set -x; ${CC}  -shared -no_archive -o lib$$i.so \
-               -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_NUMBER}" \
+               -set_version "${SHLIB_VERSION_HISTORY}${SHLIB_VERSION_MAJOR}" \
                -all lib$$i.a -none $$libs ${EX_LIBS} -lc ) || exit 1; \
        libs="$$libs -l$$i"; \
        done
@@ -275,8 +274,8 @@ do_tru64-shared:
 do_solaris-shared:
        libs='-L. ${SHLIBDEPS}'; for i in ${SHLIBDIRS}; do \
        ( PATH=/usr/ccs/bin:$$PATH ; export PATH; \
-         set -x; ${CC}  -G -o lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
-               -h lib$$i.so.${SHLIB_MAJOR}.${SHLIB_MINOR} \
+         set -x; ${CC}  -G -o lib$$i.so.${SHLIB_VERSION_NUMBER} \
+               -h lib$$i.so.${SHLIB_VERSION_MAJOR} \
                -z allextract lib$$i.a $$libs ${EX_LIBS} -lc ) || exit 1; \
        libs="$$libs -l$$i"; \
        done
diff -up --recursive --new-file openssl-0.9.6b.macro/crypto/opensslv.h 
openssl-0.9.6b/crypto/opensslv.h
--- openssl-0.9.6b.macro/crypto/opensslv.h      Mon Jul  9 14:09:13 2001
+++ openssl-0.9.6b/crypto/opensslv.h    Tue Oct 30 16:40:47 2001
@@ -71,15 +71,23 @@
  * So, here's the way it works here: first of all, the library version
  * number doesn't need at all to match the overall OpenSSL version.
  * However, it's nice and more understandable if it actually does.
- * The current library version is stored in the macro SHLIB_VERSION_NUMBER,
- * which is just a piece of text in the format "M.m.e" (Major, minor, edit).
+ * The current library version is stored in the macros SHLIB_VERSION_MAJOR,
+ * and SHLIB_VERSION_MINOR which, when concatenated, are just a piece of
+ * text in the format "M.m.e" (Major, minor, edit).  The SHLIB_VERSION_MAJOR
+ * macro is used to set the internal version of the library that is used
+ * by the linker and the dynamic loader to determine binary compatibility.
  * For the sake of True64 and any other OS that behaves in similar ways,
  * we need to keep a history of version numbers, which is done in the
  * macro SHLIB_VERSION_HISTORY.  The numbers are separated by colons and
  * should only keep the versions that are binary compatible with the current.
+ *
+ * Note that for versions 0.x.y of libraries their internal version is
+ * intentionally set to the full library version as compatibility between
+ * different revisions is not guaranteed.
  */
 #define SHLIB_VERSION_HISTORY ""
-#define SHLIB_VERSION_NUMBER "0.9.6"
+#define SHLIB_VERSION_MAJOR "0.9.6"
+#define SHLIB_VERSION_MINOR ""
 
 
 #endif /* HEADER_OPENSSLV_H */

______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       [EMAIL PROTECTED]
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to