/** * \file mbedtls_platform_requirements.h * * \brief Declare macros that tell system headers what we expect of them. * * This file must be included before any system header, and so in particular * before build_info.h (which includes the user config, which may include * system headers). */ /* * Copyright The Mbed TLS Contributors * SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later */ #ifndef MBEDTLS_MBEDTLS_PLATFORM_REQUIREMENTS_H #define MBEDTLS_MBEDTLS_PLATFORM_REQUIREMENTS_H #if !defined(_POSIX_C_SOURCE) /* For standards-compliant access to * getaddrinfo(), * ... */ #define _POSIX_C_SOURCE 200112L #endif #if !defined(_XOPEN_SOURCE) /* For standards-compliant access to * sockaddr_storage, * ... */ #define _XOPEN_SOURCE 600 #endif /* On Mingw-w64, force the use of a C99-compliant printf() and friends. * This is necessary on older versions of Mingw and/or Windows runtimes * where snprintf does not always zero-terminate the buffer, and does * not support formats such as "%zu" for size_t and "%lld" for long long. * * Defining __USE_MINGW_ANSI_STDIO=0 may work and provide a small code size * and performance benefit for some combinations of older Mingw and Windows * versions. Do this at your own risk and make sure that least * test_suite_debug passes. */ #if !defined(__USE_MINGW_ANSI_STDIO) #define __USE_MINGW_ANSI_STDIO 1 #endif /* Tell MSVC that we're ok with using classic C functions even * when an `_s` variant exist. For most functions, the improvements * of the `_s` variants are of limited usefulness and not worth * the portability headaches. */ #if defined(_MSC_VER) && !defined(_CRT_SECURE_NO_DEPRECATE) #define _CRT_SECURE_NO_DEPRECATE 1 #endif #endif /* MBEDTLS_MBEDTLS_PLATFORM_REQUIREMENTS_H */