Merge remote-tracking branch 'public/pr/1454' into development
This commit is contained in:
commit
7d728bd70e
6 changed files with 154 additions and 1 deletions
|
@ -1,5 +1,9 @@
|
||||||
cmake_minimum_required(VERSION 2.6)
|
cmake_minimum_required(VERSION 2.6)
|
||||||
|
if(TEST_CPP)
|
||||||
|
project("mbed TLS" C CXX)
|
||||||
|
else()
|
||||||
project("mbed TLS" C)
|
project("mbed TLS" C)
|
||||||
|
endif()
|
||||||
|
|
||||||
option(USE_PKCS11_HELPER_LIBRARY "Build mbed TLS with the pkcs11-helper library." OFF)
|
option(USE_PKCS11_HELPER_LIBRARY "Build mbed TLS with the pkcs11-helper library." OFF)
|
||||||
option(ENABLE_ZLIB_SUPPORT "Build mbed TLS with zlib library." OFF)
|
option(ENABLE_ZLIB_SUPPORT "Build mbed TLS with zlib library." OFF)
|
||||||
|
|
1
programs/.gitignore
vendored
1
programs/.gitignore
vendored
|
@ -45,6 +45,7 @@ ssl/mini_client
|
||||||
test/benchmark
|
test/benchmark
|
||||||
test/ecp-bench
|
test/ecp-bench
|
||||||
test/selftest
|
test/selftest
|
||||||
|
test/cpp_dummy_build
|
||||||
test/ssl_cert_test
|
test/ssl_cert_test
|
||||||
test/udp_proxy
|
test/udp_proxy
|
||||||
test/zeroize
|
test/zeroize
|
||||||
|
|
|
@ -4,9 +4,11 @@
|
||||||
|
|
||||||
CFLAGS ?= -O2
|
CFLAGS ?= -O2
|
||||||
WARNING_CFLAGS ?= -Wall -W -Wdeclaration-after-statement
|
WARNING_CFLAGS ?= -Wall -W -Wdeclaration-after-statement
|
||||||
|
WARNING_CXXFLAGS ?= -Wall -W
|
||||||
LDFLAGS ?=
|
LDFLAGS ?=
|
||||||
|
|
||||||
LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64
|
LOCAL_CFLAGS = $(WARNING_CFLAGS) -I../include -D_FILE_OFFSET_BITS=64
|
||||||
|
LOCAL_CXXFLAGS = $(WARNING_CXXFLAGS) -I../include -D_FILE_OFFSET_BITS=64
|
||||||
LOCAL_LDFLAGS = -L../library \
|
LOCAL_LDFLAGS = -L../library \
|
||||||
-lmbedtls$(SHARED_SUFFIX) \
|
-lmbedtls$(SHARED_SUFFIX) \
|
||||||
-lmbedx509$(SHARED_SUFFIX) \
|
-lmbedx509$(SHARED_SUFFIX) \
|
||||||
|
@ -77,6 +79,10 @@ ifdef PTHREAD
|
||||||
APPS += ssl/ssl_pthread_server$(EXEXT)
|
APPS += ssl/ssl_pthread_server$(EXEXT)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
ifdef TEST_CPP
|
||||||
|
APPS += test/cpp_dummy_build$(EXEXT)
|
||||||
|
endif
|
||||||
|
|
||||||
.SILENT:
|
.SILENT:
|
||||||
|
|
||||||
.PHONY: all clean list
|
.PHONY: all clean list
|
||||||
|
@ -242,6 +248,10 @@ test/benchmark$(EXEXT): test/benchmark.c $(DEP)
|
||||||
echo " CC test/benchmark.c"
|
echo " CC test/benchmark.c"
|
||||||
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
|
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/benchmark.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
|
||||||
|
test/cpp_dummy_build$(EXEXT): test/cpp_dummy_build.cpp $(DEP)
|
||||||
|
echo " CXX test/cpp_dummy_build.cpp"
|
||||||
|
$(CXX) $(LOCAL_CXXFLAGS) $(CXXFLAGS) test/cpp_dummy_build.cpp $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
|
||||||
test/selftest$(EXEXT): test/selftest.c $(DEP)
|
test/selftest$(EXEXT): test/selftest.c $(DEP)
|
||||||
echo " CC test/selftest.c"
|
echo " CC test/selftest.c"
|
||||||
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
|
$(CC) $(LOCAL_CFLAGS) $(CFLAGS) test/selftest.c $(LOCAL_LDFLAGS) $(LDFLAGS) -o $@
|
||||||
|
|
|
@ -16,6 +16,11 @@ target_link_libraries(selftest ${libs})
|
||||||
add_executable(benchmark benchmark.c)
|
add_executable(benchmark benchmark.c)
|
||||||
target_link_libraries(benchmark ${libs})
|
target_link_libraries(benchmark ${libs})
|
||||||
|
|
||||||
|
if(TEST_CPP)
|
||||||
|
add_executable(cpp_dummy_build cpp_dummy_build.cpp)
|
||||||
|
target_link_libraries(cpp_dummy_build ${libs})
|
||||||
|
endif()
|
||||||
|
|
||||||
add_executable(ssl_cert_test ssl_cert_test.c)
|
add_executable(ssl_cert_test ssl_cert_test.c)
|
||||||
target_link_libraries(ssl_cert_test ${libs})
|
target_link_libraries(ssl_cert_test ${libs})
|
||||||
|
|
||||||
|
|
118
programs/test/cpp_dummy_build.cpp
Normal file
118
programs/test/cpp_dummy_build.cpp
Normal file
|
@ -0,0 +1,118 @@
|
||||||
|
/*
|
||||||
|
* This program is a dummy C++ program to ensure Mbed TLS library header files
|
||||||
|
* can be included and built with a C++ compiler.
|
||||||
|
*
|
||||||
|
* Copyright (C) 2018, ARM Limited, All Rights Reserved
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||||
|
* not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||||
|
* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*
|
||||||
|
* This file is part of mbed TLS (https://tls.mbed.org)
|
||||||
|
*/
|
||||||
|
|
||||||
|
#if !defined(MBEDTLS_CONFIG_FILE)
|
||||||
|
#include "mbedtls/config.h"
|
||||||
|
#else
|
||||||
|
#include MBEDTLS_CONFIG_FILE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#include "mbedtls/aes.h"
|
||||||
|
#include "mbedtls/aesni.h"
|
||||||
|
#include "mbedtls/arc4.h"
|
||||||
|
#include "mbedtls/aria.h"
|
||||||
|
#include "mbedtls/asn1.h"
|
||||||
|
#include "mbedtls/asn1write.h"
|
||||||
|
#include "mbedtls/base64.h"
|
||||||
|
#include "mbedtls/bignum.h"
|
||||||
|
#include "mbedtls/blowfish.h"
|
||||||
|
#include "mbedtls/bn_mul.h"
|
||||||
|
#include "mbedtls/camellia.h"
|
||||||
|
#include "mbedtls/ccm.h"
|
||||||
|
#include "mbedtls/certs.h"
|
||||||
|
#include "mbedtls/chacha20.h"
|
||||||
|
#include "mbedtls/chachapoly.h"
|
||||||
|
#include "mbedtls/check_config.h"
|
||||||
|
#include "mbedtls/cipher.h"
|
||||||
|
#include "mbedtls/cipher_internal.h"
|
||||||
|
#include "mbedtls/cmac.h"
|
||||||
|
#include "mbedtls/compat-1.3.h"
|
||||||
|
#include "mbedtls/ctr_drbg.h"
|
||||||
|
#include "mbedtls/debug.h"
|
||||||
|
#include "mbedtls/des.h"
|
||||||
|
#include "mbedtls/dhm.h"
|
||||||
|
#include "mbedtls/ecdh.h"
|
||||||
|
#include "mbedtls/ecdsa.h"
|
||||||
|
#include "mbedtls/ecjpake.h"
|
||||||
|
#include "mbedtls/ecp.h"
|
||||||
|
#include "mbedtls/ecp_internal.h"
|
||||||
|
#include "mbedtls/entropy.h"
|
||||||
|
#include "mbedtls/entropy_poll.h"
|
||||||
|
#include "mbedtls/error.h"
|
||||||
|
#include "mbedtls/gcm.h"
|
||||||
|
#include "mbedtls/havege.h"
|
||||||
|
#include "mbedtls/hkdf.h"
|
||||||
|
#include "mbedtls/hmac_drbg.h"
|
||||||
|
#include "mbedtls/md.h"
|
||||||
|
#include "mbedtls/md2.h"
|
||||||
|
#include "mbedtls/md4.h"
|
||||||
|
#include "mbedtls/md5.h"
|
||||||
|
#include "mbedtls/md_internal.h"
|
||||||
|
#include "mbedtls/net.h"
|
||||||
|
#include "mbedtls/net_sockets.h"
|
||||||
|
#include "mbedtls/oid.h"
|
||||||
|
#include "mbedtls/padlock.h"
|
||||||
|
#include "mbedtls/pem.h"
|
||||||
|
#include "mbedtls/pk.h"
|
||||||
|
#include "mbedtls/pk_internal.h"
|
||||||
|
#include "mbedtls/pkcs11.h"
|
||||||
|
#include "mbedtls/pkcs12.h"
|
||||||
|
#include "mbedtls/pkcs5.h"
|
||||||
|
#include "mbedtls/platform_time.h"
|
||||||
|
#include "mbedtls/platform_util.h"
|
||||||
|
#include "mbedtls/poly1305.h"
|
||||||
|
#include "mbedtls/ripemd160.h"
|
||||||
|
#include "mbedtls/rsa.h"
|
||||||
|
#include "mbedtls/rsa_internal.h"
|
||||||
|
#include "mbedtls/sha1.h"
|
||||||
|
#include "mbedtls/sha256.h"
|
||||||
|
#include "mbedtls/sha512.h"
|
||||||
|
#include "mbedtls/ssl.h"
|
||||||
|
#include "mbedtls/ssl_cache.h"
|
||||||
|
#include "mbedtls/ssl_ciphersuites.h"
|
||||||
|
#include "mbedtls/ssl_cookie.h"
|
||||||
|
#include "mbedtls/ssl_internal.h"
|
||||||
|
#include "mbedtls/ssl_ticket.h"
|
||||||
|
#include "mbedtls/threading.h"
|
||||||
|
#include "mbedtls/timing.h"
|
||||||
|
#include "mbedtls/version.h"
|
||||||
|
#include "mbedtls/x509.h"
|
||||||
|
#include "mbedtls/x509_crl.h"
|
||||||
|
#include "mbedtls/x509_crt.h"
|
||||||
|
#include "mbedtls/x509_csr.h"
|
||||||
|
#include "mbedtls/xtea.h"
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_PLATFORM_C)
|
||||||
|
#include "mbedtls/platform.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(MBEDTLS_MEMORY_BUFFER_ALLOC_C)
|
||||||
|
#include "mbedtls/memory_buffer_alloc.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
mbedtls_platform_context *ctx = NULL;
|
||||||
|
mbedtls_platform_setup(ctx);
|
||||||
|
mbedtls_printf("CPP Build test\n");
|
||||||
|
mbedtls_platform_teardown(ctx);
|
||||||
|
}
|
|
@ -35,6 +35,7 @@
|
||||||
# * GNU Make
|
# * GNU Make
|
||||||
# * CMake
|
# * CMake
|
||||||
# * GCC and Clang (recent enough for using ASan with gcc and MemSan with clang, or valgrind)
|
# * GCC and Clang (recent enough for using ASan with gcc and MemSan with clang, or valgrind)
|
||||||
|
# * G++
|
||||||
# * arm-gcc and mingw-gcc
|
# * arm-gcc and mingw-gcc
|
||||||
# * ArmCC 5 and ArmCC 6, unless invoked with --no-armcc
|
# * ArmCC 5 and ArmCC 6, unless invoked with --no-armcc
|
||||||
# * Yotta build dependencies, unless invoked with --no-yotta
|
# * Yotta build dependencies, unless invoked with --no-yotta
|
||||||
|
@ -227,6 +228,14 @@ check_tools()
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_headers_in_cpp () {
|
||||||
|
ls include/mbedtls >headers.txt
|
||||||
|
<programs/test/cpp_dummy_build.cpp sed -n 's/"$//; s!^#include "mbedtls/!!p' |
|
||||||
|
sort |
|
||||||
|
diff headers.txt -
|
||||||
|
rm headers.txt
|
||||||
|
}
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
case "$1" in
|
case "$1" in
|
||||||
--armcc) RUN_ARMCC=1;;
|
--armcc) RUN_ARMCC=1;;
|
||||||
|
@ -606,6 +615,12 @@ msg "build: Unix make, -Os (gcc)" # ~ 30s
|
||||||
cleanup
|
cleanup
|
||||||
make CC=gcc CFLAGS='-Werror -Wall -Wextra -Os'
|
make CC=gcc CFLAGS='-Werror -Wall -Wextra -Os'
|
||||||
|
|
||||||
|
msg "test: verify header list in cpp_dummy_build.cpp"
|
||||||
|
record_status check_headers_in_cpp
|
||||||
|
|
||||||
|
msg "build: Unix make, incremental g++"
|
||||||
|
make TEST_CPP=1
|
||||||
|
|
||||||
# Full configuration build, without platform support, file IO and net sockets.
|
# Full configuration build, without platform support, file IO and net sockets.
|
||||||
# This should catch missing mbedtls_printf definitions, and by disabling file
|
# This should catch missing mbedtls_printf definitions, and by disabling file
|
||||||
# IO, it should catch missing '#include <stdio.h>'
|
# IO, it should catch missing '#include <stdio.h>'
|
||||||
|
|
Loading…
Reference in a new issue