diff --git a/ChangeLog.d/posix-define.txt b/ChangeLog.d/posix-define.txt new file mode 100644 index 0000000000..98cf2d0122 --- /dev/null +++ b/ChangeLog.d/posix-define.txt @@ -0,0 +1,6 @@ +Bugfix + * In library/net_sockets.c, _POSIX_C_SOURCE and _XOPEN_SOURCE are + defined to specific values. If the code is used in a context + where these are already defined, this can result in a compilation + error. Instead, assume that if they are defined, the values will + be adequate to build Mbed TLS. diff --git a/library/net_sockets.c b/library/net_sockets.c index 671115f15f..3874783750 100644 --- a/library/net_sockets.c +++ b/library/net_sockets.c @@ -47,11 +47,15 @@ /* Enable definition of getaddrinfo() even when compiling with -std=c99. Must * be set before config.h, which pulls in glibc's features.h indirectly. * Harmless on other platforms. */ +#ifndef _POSIX_C_SOURCE #define _POSIX_C_SOURCE 200112L +#endif #if defined(__NetBSD__) +#ifndef _XOPEN_SOURCE #define _XOPEN_SOURCE 600 /* sockaddr_storage */ #endif +#endif #if !defined(MBEDTLS_CONFIG_FILE) #include "mbedtls/config.h"