Revert changes done to 'make apidoc' target

This partially reverts 1989caf71c (only the changes to Makefile and
CMakeLists, the addition to scripts/config.pl is kept).

Modifying config.h in the apidoc target creates a race condition with

    make -j4 all apidoc

where some parts of the library, tests or programs could be built with the
wrong config.h, resulting in all kinds of (semi-random) errors. Recent
versions of CMake mitigate this by adding a .NOTPARALLEL target to the
generated Makefile, but people would still get errors with older CMake
versions that are still in use (eg in RHEL 5), and with plain make.

An additional issue is that, by failing to use cp -p, the apidoc target was
updating the timestamp on config.h, which seems to cause further build issues.

Let's get back to the previous, safe, situation. The improved apidoc building
will be resurrected in a script in the next commit.

fixes #390
fixes #391
This commit is contained in:
Manuel Pégourié-Gonnard 2016-01-12 13:59:39 +00:00 committed by Gilles Peskine
parent 71d5c58a1f
commit 85c379d6d1
3 changed files with 5 additions and 17 deletions

View File

@ -130,20 +130,9 @@ if(ENABLE_PROGRAMS)
add_subdirectory(programs) add_subdirectory(programs)
endif() endif()
# targets for doxygen only work on Unix ADD_CUSTOM_TARGET(apidoc
if(UNIX) COMMAND doxygen doxygen/mbedtls.doxyfile
ADD_CUSTOM_TARGET(apidoc WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
COMMAND mkdir -p apidoc
COMMAND cp include/mbedtls/config.h include/mbedtls/config.h.bak
COMMAND scripts/config.pl realfull
COMMAND doxygen doxygen/mbedtls.doxyfile
COMMAND mv include/mbedtls/config.h.bak include/mbedtls/config.h
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
ADD_CUSTOM_TARGET(apidoc_clean
COMMAND rm -rf apidoc
WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
endif(UNIX)
if(ENABLE_TESTING) if(ENABLE_TESTING)
enable_testing() enable_testing()

View File

@ -24,6 +24,8 @@ Bugfix
(found by Catena cyber using oss-fuzz) (found by Catena cyber using oss-fuzz)
* Fix memory leak and free without initialization in pk_encrypt * Fix memory leak and free without initialization in pk_encrypt
and pk_decrypt example programs. Reported by Brace Stout. Fixes #1128. and pk_decrypt example programs. Reported by Brace Stout. Fixes #1128.
* Fix potential build failures related to the 'apidoc' target, introduced
in the previous patch release. Found by Robert Scheck. #390 #391
= mbed TLS 2.1.14 branch released 2018-07-25 = mbed TLS 2.1.14 branch released 2018-07-25

View File

@ -87,10 +87,7 @@ lcov:
apidoc: apidoc:
mkdir -p apidoc mkdir -p apidoc
cp include/mbedtls/config.h include/mbedtls/config.h.bak
scripts/config.pl realfull
doxygen doxygen/mbedtls.doxyfile doxygen doxygen/mbedtls.doxyfile
mv include/mbedtls/config.h.bak include/mbedtls/config.h
apidoc_clean: apidoc_clean:
rm -rf apidoc rm -rf apidoc