Go to file
Viktor Dukhovni 822b5e2645 Make possible variant SONAMEs and symbol versions
This small change in the Unix template and shared library build
scripts enables building "variant" shared libraries.  A "variant"
shared library has a non-default SONAME, and non default symbol
versions.  This makes it possible to build (say) an OpenSSL 1.1.0
library that can coexist without conflict in the same process address
space as the system's default OpenSSL library which may be OpenSSL
1.0.2.

Such "variant" shared libraries make it possible to link applications
against a custom OpenSSL library installed in /opt/openssl/1.1 or
similar location, and not risk conflict with an indirectly loaded
OpenSSL runtime that is required by some other dependency.

Variant shared libraries have been fully tested under Linux, and
build successfully on MacOS/X producing variant DYLD names.  MacOS/X
Darwin has no symbol versioning, but has a non-flat library namespace.
Variant libraries may therefore support multiple OpenSSL libraries
in the same address space also with MacOS/X, despite lack of symbol
versions, but this has not been verified.

Variant shared libraries are optional and off by default.

Reviewed-by: Richard Levitte <levitte@openssl.org>
2017-11-30 18:33:58 -05:00
.github Remind people to have 'Fixes #XXXX' in the commit message 2017-04-02 21:51:47 +02:00
apps Use ChaCha only if prioritized by clnt 2017-11-30 07:13:08 +10:00
boringssl@2070f8ad91 Update ossl_config.json for later BoringSSL commit 2017-03-14 12:12:13 +00:00
Configurations Make possible variant SONAMEs and symbol versions 2017-11-30 18:33:58 -05:00
crypto A missing semicolon prevents compilation with ENGINE_REF_COUNT_DEBUG enabled. 2017-11-29 08:55:44 +10:00
demos Add "friendly name" extractor 2017-11-30 14:53:46 -05:00
doc Use ChaCha only if prioritized by clnt 2017-11-30 07:13:08 +10:00
engines Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
external/perl
fuzz SM3: restructure to EVP internal and update doc to right location 2017-11-06 07:21:15 +08:00
include Use ChaCha only if prioritized by clnt 2017-11-30 07:13:08 +10:00
krb5@b9ad6c4950 [extended tests] Enable krb5 tests in Travis 2017-04-18 19:10:25 +02:00
ms Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
os-dep
pyca-cryptography@c1f8e46033 Update pyca-cryptography to latest commit 2017-08-11 11:16:44 +10:00
ssl Add sk_new_reserve support 2017-11-30 07:13:09 +10:00
test Use ChaCha only if prioritized by clnt 2017-11-30 07:13:08 +10:00
tools Add -h and -help for c_rehash script and app 2016-09-14 08:59:48 -04:00
util Make possible variant SONAMEs and symbol versions 2017-11-30 18:33:58 -05:00
VMS Simplify the handling of shared library version numbers 2017-07-26 22:53:03 +02:00
.gitattributes crypto/pkcs12: facilitate accessing data with non-interoperable password. 2016-08-22 13:52:59 +02:00
.gitignore Reduce the things we ignore in test/ 2017-10-09 17:58:50 +02:00
.gitmodules [extended tests] Enable krb5 tests in Travis 2017-04-18 19:10:25 +02:00
.travis-apt-pin.preferences Fix travis clang-3.9 builds 2017-06-23 17:57:02 +01:00
.travis-create-release.sh
.travis.yml Travis: if "make update" created a diff, please show it 2017-11-03 09:26:44 +01:00
ACKNOWLEDGEMENTS
appveyor.yml Remove notification settings from appveyor.yml 2017-05-17 12:36:28 +02:00
AUTHORS
build.info Simplify the handling of shared library version numbers 2017-07-26 22:53:03 +02:00
CHANGES Support multi-prime RSA (RFC 8017) 2017-11-21 14:38:42 +08:00
config SM3: Add SM3 hash function 2017-11-06 07:21:11 +08:00
config.com VMS: no ENDIF on one line IF statements, in config.com 2016-08-17 10:48:43 +02:00
Configure Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
CONTRIBUTING Update the location of the pod files 2016-11-18 07:28:03 -05:00
e_os.h e_os.h: add prandom and hwrng to the list of random devices on s390x. 2017-10-22 22:56:18 +02:00
FAQ
INSTALL SM3: restructure to EVP internal and update doc to right location 2017-11-06 07:21:15 +08:00
LICENSE Update year, wording tweak 2017-02-28 10:13:32 -05:00
Makefile.shared Makefile.shared: Make link_shlib.linux-shared less verbose again 2017-07-24 11:57:44 +02:00
NEWS Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
NOTES.DJGPP
NOTES.PERL Tweaks to NOTES.PERL 2016-06-03 17:10:16 +01:00
NOTES.UNIX Add NOTES.UNIX, with a description on how to deal with runpaths 2017-03-02 07:33:27 +01:00
NOTES.VMS More typo fixes 2017-03-29 07:14:29 +02:00
NOTES.WIN Various doc fixes. 2017-07-26 23:09:40 -04:00
README Many spelling fixes/typo's corrected. 2017-11-11 19:03:10 -05:00
README.ECC
README.ENGINE Remove bsd_cryptodev engine 2017-06-19 09:31:45 -04:00
README.FIPS

 OpenSSL 1.1.1-dev

 Copyright (c) 1998-2016 The OpenSSL Project
 Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
 All rights reserved.

 DESCRIPTION
 -----------

 The OpenSSL Project is a collaborative effort to develop a robust,
 commercial-grade, fully featured, and Open Source toolkit implementing the
 Transport Layer Security (TLS) protocols (including SSLv3) as well as a
 full-strength general purpose cryptographic library.

 OpenSSL is descended from the SSLeay library developed by Eric A. Young
 and Tim J. Hudson.  The OpenSSL toolkit is licensed under a dual-license (the
 OpenSSL license plus the SSLeay license), which means that you are free to
 get and use it for commercial and non-commercial purposes as long as you
 fulfill the conditions of both licenses.

 OVERVIEW
 --------

 The OpenSSL toolkit includes:

 libssl (with platform specific naming):
     Provides the client and server-side implementations for SSLv3 and TLS.

 libcrypto (with platform specific naming):
     Provides general cryptographic and X.509 support needed by SSL/TLS but
     not logically part of it.

 openssl:
     A command line tool that can be used for:
        Creation of key parameters
        Creation of X.509 certificates, CSRs and CRLs
        Calculation of message digests
        Encryption and decryption
        SSL/TLS client and server tests
        Handling of S/MIME signed or encrypted mail
        And more...

 INSTALLATION
 ------------

 See the appropriate file:
        INSTALL         Linux, Unix, Windows, OpenVMS, ...
        NOTES.*         INSTALL addendums for different platforms

 SUPPORT
 -------

 See the OpenSSL website www.openssl.org for details on how to obtain
 commercial technical support. Free community support is available through the
 openssl-users email list (see
 https://www.openssl.org/community/mailinglists.html for further details).

 If you have any problems with OpenSSL then please take the following steps
 first:

    - Download the latest version from the repository
      to see if the problem has already been addressed
    - Configure with no-asm
    - Remove compiler optimization flags

 If you wish to report a bug then please include the following information
 and create an issue on GitHub:

    - OpenSSL version: output of 'openssl version -a'
    - Any "Configure" options that you selected during compilation of the
      library if applicable (see INSTALL)
    - OS Name, Version, Hardware platform
    - Compiler Details (name, version)
    - Application Details (name, version)
    - Problem Description (steps that will reproduce the problem, if known)
    - Stack Traceback (if the application dumps core)

 Just because something doesn't work the way you expect does not mean it
 is necessarily a bug in OpenSSL. Use the openssl-users email list for this type
 of query.

 HOW TO CONTRIBUTE TO OpenSSL
 ----------------------------

 See CONTRIBUTING

 LEGALITIES
 ----------

 A number of nations restrict the use or export of cryptography. If you
 are potentially subject to such restrictions you should seek competent
 professional legal advice before attempting to develop or distribute
 cryptographic code.