mirror of
https://github.com/Mbed-TLS/mbedtls.git
synced 2025-10-27 12:15:33 +03:00
Merge pull request #10408 from ronald-cron-arm/historical-libmbedcryto
Restore historical libmbedcrypto.* libraries
This commit is contained in:
@@ -37,15 +37,20 @@ cmake_policy(SET CMP0011 NEW)
|
|||||||
# is deprecated and will be removed in future versions.
|
# is deprecated and will be removed in future versions.
|
||||||
cmake_policy(SET CMP0012 NEW)
|
cmake_policy(SET CMP0012 NEW)
|
||||||
|
|
||||||
|
set(MBEDTLS_VERSION 4.0.0)
|
||||||
|
set(MBEDTLS_CRYPTO_SOVERSION 17)
|
||||||
|
set(MBEDTLS_X509_SOVERSION 8)
|
||||||
|
set(MBEDTLS_TLS_SOVERSION 22)
|
||||||
|
|
||||||
if(TEST_CPP)
|
if(TEST_CPP)
|
||||||
project("Mbed TLS"
|
project("Mbed TLS"
|
||||||
LANGUAGES C CXX
|
LANGUAGES C CXX
|
||||||
VERSION 4.0.0
|
VERSION ${MBEDTLS_VERSION}
|
||||||
)
|
)
|
||||||
else()
|
else()
|
||||||
project("Mbed TLS"
|
project("Mbed TLS"
|
||||||
LANGUAGES C
|
LANGUAGES C
|
||||||
VERSION 4.0.0
|
VERSION ${MBEDTLS_VERSION}
|
||||||
)
|
)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
|||||||
@@ -107,13 +107,13 @@ if(GEN_FILES)
|
|||||||
${tls_error_headers}
|
${tls_error_headers}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(${MBEDTLS_TARGET_PREFIX}mbedx509_generated_files_target
|
add_custom_target(${MBEDTLS_TARGET_PREFIX}libmbedx509_generated_files_target
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/error.c
|
${CMAKE_CURRENT_BINARY_DIR}/error.c
|
||||||
${MBEDTLS_GENERATED_CONFIG_CHECKS_HEADERS}
|
${MBEDTLS_GENERATED_CONFIG_CHECKS_HEADERS}
|
||||||
)
|
)
|
||||||
|
|
||||||
add_custom_target(${MBEDTLS_TARGET_PREFIX}mbedtls_generated_files_target
|
add_custom_target(${MBEDTLS_TARGET_PREFIX}libmbedtls_generated_files_target
|
||||||
DEPENDS
|
DEPENDS
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.c
|
${CMAKE_CURRENT_BINARY_DIR}/ssl_debug_helpers_generated.c
|
||||||
${CMAKE_CURRENT_BINARY_DIR}/version_features.c
|
${CMAKE_CURRENT_BINARY_DIR}/version_features.c
|
||||||
@@ -205,9 +205,9 @@ if(USE_STATIC_MBEDTLS_LIBRARY)
|
|||||||
|
|
||||||
if(GEN_FILES)
|
if(GEN_FILES)
|
||||||
add_dependencies(${mbedx509_static_target}
|
add_dependencies(${mbedx509_static_target}
|
||||||
${MBEDTLS_TARGET_PREFIX}mbedx509_generated_files_target)
|
${MBEDTLS_TARGET_PREFIX}libmbedx509_generated_files_target)
|
||||||
add_dependencies(${mbedtls_static_target}
|
add_dependencies(${mbedtls_static_target}
|
||||||
${MBEDTLS_TARGET_PREFIX}mbedtls_generated_files_target)
|
${MBEDTLS_TARGET_PREFIX}libmbedtls_generated_files_target)
|
||||||
endif()
|
endif()
|
||||||
endif(USE_STATIC_MBEDTLS_LIBRARY)
|
endif(USE_STATIC_MBEDTLS_LIBRARY)
|
||||||
|
|
||||||
@@ -215,20 +215,20 @@ if(USE_SHARED_MBEDTLS_LIBRARY)
|
|||||||
add_library(${mbedx509_target} SHARED ${src_x509})
|
add_library(${mbedx509_target} SHARED ${src_x509})
|
||||||
set_base_compile_options(${mbedx509_target})
|
set_base_compile_options(${mbedx509_target})
|
||||||
target_compile_options(${mbedx509_target} PRIVATE ${LIBS_C_FLAGS})
|
target_compile_options(${mbedx509_target} PRIVATE ${LIBS_C_FLAGS})
|
||||||
set_target_properties(${mbedx509_target} PROPERTIES VERSION 4.0.0 SOVERSION 8)
|
set_target_properties(${mbedx509_target} PROPERTIES VERSION ${MBEDTLS_VERSION} SOVERSION ${MBEDTLS_X509_SOVERSION})
|
||||||
target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${tfpsacrypto_target})
|
target_link_libraries(${mbedx509_target} PUBLIC ${libs} ${tfpsacrypto_target})
|
||||||
|
|
||||||
add_library(${mbedtls_target} SHARED ${src_tls})
|
add_library(${mbedtls_target} SHARED ${src_tls})
|
||||||
set_base_compile_options(${mbedtls_target})
|
set_base_compile_options(${mbedtls_target})
|
||||||
target_compile_options(${mbedtls_target} PRIVATE ${LIBS_C_FLAGS})
|
target_compile_options(${mbedtls_target} PRIVATE ${LIBS_C_FLAGS})
|
||||||
set_target_properties(${mbedtls_target} PROPERTIES VERSION 4.0.0 SOVERSION 21)
|
set_target_properties(${mbedtls_target} PROPERTIES VERSION ${MBEDTLS_VERSION} SOVERSION ${MBEDTLS_TLS_SOVERSION})
|
||||||
target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
|
target_link_libraries(${mbedtls_target} PUBLIC ${libs} ${mbedx509_target})
|
||||||
|
|
||||||
if(GEN_FILES)
|
if(GEN_FILES)
|
||||||
add_dependencies(${mbedx509_target}
|
add_dependencies(${mbedx509_target}
|
||||||
${MBEDTLS_TARGET_PREFIX}mbedx509_generated_files_target)
|
${MBEDTLS_TARGET_PREFIX}libmbedx509_generated_files_target)
|
||||||
add_dependencies(${mbedtls_target}
|
add_dependencies(${mbedtls_target}
|
||||||
${MBEDTLS_TARGET_PREFIX}mbedtls_generated_files_target)
|
${MBEDTLS_TARGET_PREFIX}libmbedtls_generated_files_target)
|
||||||
endif()
|
endif()
|
||||||
endif(USE_SHARED_MBEDTLS_LIBRARY)
|
endif(USE_SHARED_MBEDTLS_LIBRARY)
|
||||||
|
|
||||||
@@ -268,22 +268,109 @@ foreach(target IN LISTS tf_psa_crypto_library_targets)
|
|||||||
get_target_property(target_type ${target} TYPE)
|
get_target_property(target_type ${target} TYPE)
|
||||||
if (target_type STREQUAL STATIC_LIBRARY)
|
if (target_type STREQUAL STATIC_LIBRARY)
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET ${mbedtls_target}
|
TARGET ${mbedtls_target} POST_BUILD
|
||||||
POST_BUILD
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
COMMAND ${CMAKE_COMMAND}
|
$<TARGET_FILE:${target}>
|
||||||
ARGS -E copy $<TARGET_FILE:${target}> ${CMAKE_BINARY_DIR}/library)
|
$<TARGET_FILE_NAME:${target}>
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
$<TARGET_FILE:${target}>
|
||||||
|
"libmbedcrypto.a"
|
||||||
|
)
|
||||||
|
install(FILES $<TARGET_FILE:${target}>
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RENAME "libmbedcrypto.a"
|
||||||
|
)
|
||||||
|
else()
|
||||||
|
# Copy the crypto shared library from tf-psa-crypto:
|
||||||
|
# - ".so.<VERSION>" on Unix
|
||||||
|
# - ".dylib" on macOS
|
||||||
|
# - ".dll" on Windows
|
||||||
|
# The full path to the file is given by $<TARGET_FILE:${target}>.
|
||||||
|
#
|
||||||
|
# On systems that use .so versioning, also create the symbolic links
|
||||||
|
# ".so.<SOVERSION>" and ".so", which correspond to
|
||||||
|
# $<TARGET_SONAME_FILE_NAME:${target}> and $<TARGET_LINKER_FILE_NAME:${target}>,
|
||||||
|
# respectively.
|
||||||
|
#
|
||||||
|
# On Windows, also copy the ".lib" file, whose full path is
|
||||||
|
# $<TARGET_LINKER_FILE:${target}>.
|
||||||
|
#
|
||||||
|
# Provide also the crypto libraries under their historical names:
|
||||||
|
# "libmbedcrypto.*"
|
||||||
|
add_custom_command(
|
||||||
|
TARGET ${mbedtls_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
$<TARGET_FILE:${target}>
|
||||||
|
$<TARGET_FILE_NAME:${target}>
|
||||||
|
)
|
||||||
|
if(APPLE)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET ${mbedtls_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
|
$<TARGET_FILE_NAME:${target}>
|
||||||
|
libmbedcrypto.dylib
|
||||||
|
)
|
||||||
|
install(FILES $<TARGET_FILE:${target}>
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RENAME "libmbedcrypto.dylib"
|
||||||
|
)
|
||||||
|
elseif(WIN32 AND NOT CYGWIN)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET ${mbedtls_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
$<TARGET_FILE:${target}>
|
||||||
|
libmbedcrypto.dll
|
||||||
|
)
|
||||||
|
add_custom_command(
|
||||||
|
TARGET ${mbedtls_target} POST_BUILD
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
$<TARGET_LINKER_FILE:${target}>
|
||||||
|
$<TARGET_LINKER_FILE_NAME:${target}>
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
|
$<TARGET_LINKER_FILE:${target}>
|
||||||
|
libmbedcrypto.lib
|
||||||
|
)
|
||||||
|
install(FILES $<TARGET_FILE:${target}>
|
||||||
|
DESTINATION ${CMAKE_INSTALL_BINDIR}
|
||||||
|
RENAME "libmbedcrypto.dll"
|
||||||
|
)
|
||||||
|
install(FILES $<TARGET_LINKER_FILE:${target}>
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RENAME "libmbedcrypto.lib"
|
||||||
|
)
|
||||||
else()
|
else()
|
||||||
add_custom_command(
|
add_custom_command(
|
||||||
TARGET ${mbedtls_target}
|
TARGET ${mbedtls_target} POST_BUILD
|
||||||
POST_BUILD
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
COMMAND ${CMAKE_COMMAND}
|
$<TARGET_FILE_NAME:${target}>
|
||||||
ARGS -E copy $<TARGET_FILE:${target}>
|
$<TARGET_SONAME_FILE_NAME:${target}>
|
||||||
${CMAKE_BINARY_DIR}/library/$<TARGET_FILE_NAME:${target}>)
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
add_custom_command(
|
$<TARGET_SONAME_FILE_NAME:${target}>
|
||||||
TARGET ${mbedtls_target}
|
$<TARGET_LINKER_FILE_NAME:${target}>
|
||||||
POST_BUILD
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
COMMAND ${CMAKE_COMMAND}
|
$<TARGET_FILE_NAME:${target}>
|
||||||
ARGS -E copy $<TARGET_LINKER_FILE:${target}>
|
libmbedcrypto.so.${MBEDTLS_VERSION}
|
||||||
${CMAKE_BINARY_DIR}/library/$<TARGET_LINKER_FILE_NAME:${target}>)
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
|
libmbedcrypto.so.${MBEDTLS_VERSION}
|
||||||
|
libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION}
|
||||||
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
|
libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION}
|
||||||
|
libmbedcrypto.so
|
||||||
|
)
|
||||||
|
install(FILES $<TARGET_FILE:${target}>
|
||||||
|
DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
RENAME "libmbedcrypto.so.${MBEDTLS_VERSION}"
|
||||||
|
)
|
||||||
|
install(CODE "
|
||||||
|
set(_libdir \"\${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBDIR}\")
|
||||||
|
|
||||||
|
execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink
|
||||||
|
\"libmbedcrypto.so.${MBEDTLS_VERSION}\"
|
||||||
|
\${_libdir}/libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION})
|
||||||
|
execute_process(COMMAND \"\${CMAKE_COMMAND}\" -E create_symlink
|
||||||
|
\"libmbedcrypto.so.${MBEDTLS_CRYPTO_SOVERSION}\"
|
||||||
|
\${_libdir}/libmbedcrypto.so)
|
||||||
|
")
|
||||||
|
endif()
|
||||||
endif()
|
endif()
|
||||||
endforeach(target)
|
endforeach(target)
|
||||||
|
|||||||
@@ -17,6 +17,7 @@ execute_process(
|
|||||||
"-DENABLE_TESTING=NO"
|
"-DENABLE_TESTING=NO"
|
||||||
# Turn on generated files explicitly in case this is a release
|
# Turn on generated files explicitly in case this is a release
|
||||||
"-DGEN_FILES=ON"
|
"-DGEN_FILES=ON"
|
||||||
|
"-DUSE_SHARED_MBEDTLS_LIBRARY=ON"
|
||||||
"-DCMAKE_INSTALL_PREFIX=${MbedTLS_INSTALL_DIR}")
|
"-DCMAKE_INSTALL_PREFIX=${MbedTLS_INSTALL_DIR}")
|
||||||
|
|
||||||
execute_process(
|
execute_process(
|
||||||
|
|||||||
@@ -84,13 +84,13 @@ int main(void)
|
|||||||
|
|
||||||
#if defined(MBEDTLS_MD_C)
|
#if defined(MBEDTLS_MD_C)
|
||||||
const char *crypto_so_filename = NULL;
|
const char *crypto_so_filename = NULL;
|
||||||
void *crypto_so = dlopen(MBEDCRYPTO_SO_FILENAME, RTLD_NOW);
|
void *crypto_so = dlopen(TFPSACRYPTO_SO_FILENAME, RTLD_NOW);
|
||||||
if (dlerror() == NULL) {
|
if (dlerror() == NULL) {
|
||||||
crypto_so_filename = MBEDCRYPTO_SO_FILENAME;
|
|
||||||
} else {
|
|
||||||
crypto_so = dlopen(TFPSACRYPTO_SO_FILENAME, RTLD_NOW);
|
|
||||||
CHECK_DLERROR("dlopen", TFPSACRYPTO_SO_FILENAME);
|
|
||||||
crypto_so_filename = TFPSACRYPTO_SO_FILENAME;
|
crypto_so_filename = TFPSACRYPTO_SO_FILENAME;
|
||||||
|
} else {
|
||||||
|
crypto_so = dlopen(MBEDCRYPTO_SO_FILENAME, RTLD_NOW);
|
||||||
|
CHECK_DLERROR("dlopen", MBEDCRYPTO_SO_FILENAME);
|
||||||
|
crypto_so_filename = MBEDCRYPTO_SO_FILENAME;
|
||||||
}
|
}
|
||||||
#pragma GCC diagnostic push
|
#pragma GCC diagnostic push
|
||||||
/* dlsym() returns an object pointer which is meant to be used as a
|
/* dlsym() returns an object pointer which is meant to be used as a
|
||||||
|
|||||||
@@ -70,18 +70,14 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
[ $VERBOSE ] && echo "Bumping VERSION in CMakeLists.txt"
|
[ $VERBOSE ] && echo "Bumping VERSION in CMakeLists.txt"
|
||||||
sed -e "s/ VERSION [0-9.]\{1,\}/ VERSION $VERSION/g" < CMakeLists.txt > tmp
|
sed -e "s/(MBEDTLS_VERSION [0-9.]\{1,\})/(MBEDTLS_VERSION $VERSION)/g" < CMakeLists.txt > tmp
|
||||||
mv tmp CMakeLists.txt
|
mv tmp CMakeLists.txt
|
||||||
|
|
||||||
[ $VERBOSE ] && echo "Bumping VERSION in library/CMakeLists.txt"
|
|
||||||
sed -e "s/ VERSION [0-9.]\{1,\}/ VERSION $VERSION/g" < library/CMakeLists.txt > tmp
|
|
||||||
mv tmp library/CMakeLists.txt
|
|
||||||
|
|
||||||
if [ "X" != "X$SO_CRYPTO" ];
|
if [ "X" != "X$SO_CRYPTO" ];
|
||||||
then
|
then
|
||||||
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedcrypto in library/CMakeLists.txt"
|
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedcrypto in CMakeLists.txt"
|
||||||
sed -e "/mbedcrypto/ s/ SOVERSION [0-9]\{1,\}/ SOVERSION $SO_CRYPTO/g" < library/CMakeLists.txt > tmp
|
sed -e "s/(MBEDTLS_CRYPTO_SOVERSION [0-9]\{1,\})/(MBEDTLS_CRYPTO_SOVERSION $SO_CRYPTO)/g" < CMakeLists.txt > tmp
|
||||||
mv tmp library/CMakeLists.txt
|
mv tmp CMakeLists.txt
|
||||||
|
|
||||||
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedcrypto in library/Makefile"
|
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedcrypto in library/Makefile"
|
||||||
sed -e "s/SOEXT_CRYPTO?=so.[0-9]\{1,\}/SOEXT_CRYPTO?=so.$SO_CRYPTO/g" < library/Makefile > tmp
|
sed -e "s/SOEXT_CRYPTO?=so.[0-9]\{1,\}/SOEXT_CRYPTO?=so.$SO_CRYPTO/g" < library/Makefile > tmp
|
||||||
@@ -90,9 +86,9 @@ fi
|
|||||||
|
|
||||||
if [ "X" != "X$SO_X509" ];
|
if [ "X" != "X$SO_X509" ];
|
||||||
then
|
then
|
||||||
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedx509 in library/CMakeLists.txt"
|
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedx509 in CMakeLists.txt"
|
||||||
sed -e "/mbedx509/ s/ SOVERSION [0-9]\{1,\}/ SOVERSION $SO_X509/g" < library/CMakeLists.txt > tmp
|
sed -e "s/(MBEDTLS_X509_SOVERSION [0-9]\{1,\})/(MBEDTLS_X509_SOVERSION $SO_X509)/g" < CMakeLists.txt > tmp
|
||||||
mv tmp library/CMakeLists.txt
|
mv tmp CMakeLists.txt
|
||||||
|
|
||||||
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedx509 in library/Makefile"
|
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedx509 in library/Makefile"
|
||||||
sed -e "s/SOEXT_X509?=so.[0-9]\{1,\}/SOEXT_X509?=so.$SO_X509/g" < library/Makefile > tmp
|
sed -e "s/SOEXT_X509?=so.[0-9]\{1,\}/SOEXT_X509?=so.$SO_X509/g" < library/Makefile > tmp
|
||||||
@@ -101,9 +97,9 @@ fi
|
|||||||
|
|
||||||
if [ "X" != "X$SO_TLS" ];
|
if [ "X" != "X$SO_TLS" ];
|
||||||
then
|
then
|
||||||
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedtls in library/CMakeLists.txt"
|
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedtls in CMakeLists.txt"
|
||||||
sed -e "/mbedtls/ s/ SOVERSION [0-9]\{1,\}/ SOVERSION $SO_TLS/g" < library/CMakeLists.txt > tmp
|
sed -e "s/(MBEDTLS_TLS_SOVERSION [0-9]\{1,\})/(MBEDTLS_TLS_SOVERSION $SO_TLS)/g" < CMakeLists.txt > tmp
|
||||||
mv tmp library/CMakeLists.txt
|
mv tmp CMakeLists.txt
|
||||||
|
|
||||||
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedtls in library/Makefile"
|
[ $VERBOSE ] && echo "Bumping SOVERSION for libmbedtls in library/Makefile"
|
||||||
sed -e "s/SOEXT_TLS?=so.[0-9]\{1,\}/SOEXT_TLS?=so.$SO_TLS/g" < library/Makefile > tmp
|
sed -e "s/SOEXT_TLS?=so.[0-9]\{1,\}/SOEXT_TLS?=so.$SO_TLS/g" < library/Makefile > tmp
|
||||||
|
|||||||
@@ -138,6 +138,16 @@ component_test_cmake_as_package_install () {
|
|||||||
cd programs/test/cmake_package_install
|
cd programs/test/cmake_package_install
|
||||||
cmake .
|
cmake .
|
||||||
make
|
make
|
||||||
|
|
||||||
|
if ! cmp -s "mbedtls/lib/libtfpsacrypto.a" "mbedtls/lib/libmbedcrypto.a"; then
|
||||||
|
echo "Error: Crypto static libraries are different or one of them is missing/unreadable." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
if ! cmp -s "mbedtls/lib/libtfpsacrypto.so" "mbedtls/lib/libmbedcrypto.so"; then
|
||||||
|
echo "Error: Crypto shared libraries are different or one of them is missing/unreadable." >&2
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
./cmake_package_install
|
./cmake_package_install
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user