* NOTES.WIN (any supported Windows)
* NOTES.DJGPP (DOS platform with DJGPP)
* NOTES.ANDROID (obviously Android [NDK])
+ * NOTES.VALGRIND (testing with Valgrind)
Notational conventions in this document
---------------------------------------
Typically OpenSSL will automatically load a system config
file which configures default ssl options.
+ enable-buildtest-c++
+ While testing, generate C++ buildtest files that
+ simply check that the public OpenSSL header files
+ are usable standalone with C++.
+
+ Enabling this option demands extra care. For any
+ compiler flag given directly as configuration
+ option, you must ensure that it's valid for both
+ the C and the C++ compiler. If not, the C++ build
+ test will most likely break. As an alternative,
+ you can use the language specific variables, CFLAGS
+ and CXXFLAGS.
+
no-capieng
Don't build the CAPI engine. This option will be forced if
on a platform that does not support CAPI.
+ no-cmp
+ Don't build support for CMP features
+
no-cms
Don't build support for CMS features
on BSD implementations, in which case it can be disabled with
no-devcryptoeng.
- no-dso
- Don't build support for loading Dynamic Shared Objects.
-
no-dynamic-engine
Don't build the dynamically loaded engines. This only has an
effect in a "shared" build
Don't compile in filename and line number information (e.g.
for errors and memory allocation).
+ no-fips
+ Don't compile the FIPS module
+
enable-fuzz-libfuzzer, enable-fuzz-afl
Build with support for fuzzing using either libfuzzer or AFL.
These are developer options only. They may not work on all
available if the GOST algorithms are also available through
loading an externally supplied engine.
- no-hw-padlock
- Don't build the padlock engine.
+ no-legacy
+ Don't build the legacy provider. Disabling this also disables
+ the legacy algorithms: MD2 (already disabled by default).
no-makedepend
Don't generate dependencies.
+ no-module
+ Don't build any dynamically loadable engines. This also
+ implies 'no-dynamic-engine'.
+
no-multiblock
Don't build support for writing multiple records in one
go in libssl (Note: this is a different capability to the
no-ocsp
Don't build support for OCSP.
+ no-padlockeng
+ no-hw-padlock
+ Don't build the padlock engine.
+ ('no-hw-padlock' is deprecated and should not be used)
+
no-pic
Don't build with support for Position Independent Code.
require additional system-dependent options! See "Note on
multi-threading" below.
+ enable-trace
+ Build with support for the integrated tracing api. See manual pages
+ OSSL_trace_set_channel(3) and OSSL_trace_enabled(3) for details.
+
no-ts
Don't build Time Stamping Authority support.
Enable additional unit test APIs. This should not typically
be used in production deployments.
+ no-uplink
+ Don't build support for UPLINK interface.
+
enable-weak-ssl-ciphers
Build support for SSL/TLS ciphers that are considered "weak"
(e.g. RC4 based ciphersuites).
CC=gcc CROSS_COMPILE=x86_64-w64-mingw32- \
./config -DCOOKIE
+ If CC is set, it is advisable to also set CXX to ensure
+ both C and C++ compilers are in the same "family". This
+ becomes relevant with 'enable-external-tests' and
+ 'enable-buildtest-c++'.
+
reconf
reconfigure
Reconfigure from earlier data. This fetches the previous
* COMPILING existing applications
- OpenSSL 1.1.0 hides a number of structures that were previously
- open. This includes all internal libssl structures and a number
- of EVP types. Accessor functions have been added to allow
- controlled access to the structures' data.
+ Starting with version 1.1.0, OpenSSL hides a number of structures
+ that were previously open. This includes all internal libssl
+ structures and a number of EVP types. Accessor functions have
+ been added to allow controlled access to the structures' data.
This means that some software needs to be rewritten to adapt to
the new ways of doing things. This often amounts to allocating
depend
Rebuild the dependencies in the Makefiles. This is a legacy
- option that no longer needs to be used in OpenSSL 1.1.0.
+ option that no longer needs to be used since OpenSSL 1.1.0.
install
Install all OpenSSL components.
$ make TESTS='[89]? -90'
+To stochastically verify that the algorithm that produces uniformly distributed
+random numbers is operating correctly (with a false positive rate of 0.01%):
+
+ $ ./util/shlib_wrap.sh test/bntest -stochastic
+
Note on multi-threading
-----------------------