Document build modes better

This commit is contained in:
Manuel Pégourié-Gonnard 2014-11-13 13:56:05 +01:00
parent 705b70f122
commit ca89d89a10

View file

@ -39,7 +39,7 @@ In order to build the source using CMake, just enter at the command line::
make
There are 5 different active build modes specified within the CMake buildsystem:
There are many different build modes available within the CMake buildsystem. Most of them are available for gcc and clang, though some are compiler-specific:
- Release.
This generates the default code without any unnecessary information in the binary files.
@ -49,8 +49,20 @@ There are 5 different active build modes specified within the CMake buildsystem:
This generates code coverage information in addition to debug information.
- ASan.
This instruments the code with AddressSanitizer to check for memory errors.
(This includes LeakSanitizer, with recent version of gcc and clang.)
(With recent version of clang, this mode also intruments the code with
UndefinedSanitizer to check for undefined behaviour.)
- ASanDbg.
Same as ASan but slower, with debug information and better stack traces.
- MemSan.
This intruments the code with MemorySanitizer to check for uninitialised
memory reads. Experimental, needs recent clang on Linux/x86_64.
- MemSanDbg.
Same as ASan but slower, with debug information, better stack traces and
origin tracking.
- Check.
This activates more compiler warnings and treats them as errors.
This activates the compiler warnings that depend on optimisation and treats
all warnings as errors.
Switching build modes in CMake is simple. For debug mode, enter at the command line:
@ -77,6 +89,13 @@ Tests
PolarSSL includes an elaborate test suite in *tests/* that initially requires Perl to generate the tests files (e.g. *test_suite_mpi.c*). These files are generates from a **function file** (e.g. *suites/test_suite_mpi.function*) and a **data file** (e.g. *suites/test_suite_mpi.data*). The **function file** contains the template for each test function. The **data file** contains the test cases, specified as parameters that should be pushed into a template function.
For machines with a Unix shell and OpenSSL (and optionnally GnuTLS) installed, additional test scripts are available:
- *tests/ssl-opt.sh* runs integration tests for various TLS options (renegotiation, resumption, etc.) and tests interoperability of these options with other implementations.
- *tests/compat.sh* tests interoperability of every ciphersuite with other implementations.
- *tests/scripts/test-ref-configs.pl* test builds in various reduced configurations.
- *tests/scripts/all.sh* runs a combination of the above tests with various build options (eg ASan).
Configurations
==============