aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorManuel Pégourié-Gonnard <manuel.pegourie-gonnard@arm.com>2020-08-18 09:13:30 +0200
committerGitHub <noreply@github.com>2020-08-18 09:13:30 +0200
commitb9c64e453808274850fa7d0f50e4bbcd723ede0b (patch)
treec3a71fd63c77864edffce20f41dbb699a7fd598f
parent5bfa623e9b08223fef9060b885de7e2e0ffac287 (diff)
parent19735b69b847aea0b5b3a6d959584b983d76f34a (diff)
downloadmbed-tls-b9c64e453808274850fa7d0f50e4bbcd723ede0b.tar.gz
Merge pull request #3558 from gufe44/net-sockets-fixes-2.16
[Backport 2.16] NetBSD 9.0 build fixes
-rw-r--r--ChangeLog.d/fix-build-netbsd.txt5
-rw-r--r--library/net_sockets.c9
-rw-r--r--programs/ssl/ssl_mail_client.c4
3 files changed, 16 insertions, 2 deletions
diff --git a/ChangeLog.d/fix-build-netbsd.txt b/ChangeLog.d/fix-build-netbsd.txt
new file mode 100644
index 000000000..000614e37
--- /dev/null
+++ b/ChangeLog.d/fix-build-netbsd.txt
@@ -0,0 +1,5 @@
+Bugfix
+ * Fix building library/net_sockets.c and the ssl_mail_client program on
+ NetBSD. NetBSD conditionals were added for the backport to avoid the risk
+ of breaking a platform. Original fix contributed by Nia Alarie in #3422.
+ Adapted for long-term support branch 2.16 in #3558.
diff --git a/library/net_sockets.c b/library/net_sockets.c
index 9489576aa..303e5e8eb 100644
--- a/library/net_sockets.c
+++ b/library/net_sockets.c
@@ -51,6 +51,10 @@
* Harmless on other platforms. */
#define _POSIX_C_SOURCE 200112L
+#if defined(__NetBSD__)
+#define _XOPEN_SOURCE 600 /* sockaddr_storage */
+#endif
+
#if !defined(MBEDTLS_CONFIG_FILE)
#include "mbedtls/config.h"
#else
@@ -345,8 +349,9 @@ int mbedtls_net_accept( mbedtls_net_context *bind_ctx,
struct sockaddr_storage client_addr;
-#if defined(__socklen_t_defined) || defined(_SOCKLEN_T) || \
- defined(_SOCKLEN_T_DECLARED) || defined(__DEFINED_socklen_t)
+#if defined(__socklen_t_defined) || defined(_SOCKLEN_T) || \
+ defined(_SOCKLEN_T_DECLARED) || defined(__DEFINED_socklen_t) || \
+ ( defined(__NetBSD__) && defined(socklen_t) )
socklen_t n = (socklen_t) sizeof( client_addr );
socklen_t type_len = (socklen_t) sizeof( type );
#else
diff --git a/programs/ssl/ssl_mail_client.c b/programs/ssl/ssl_mail_client.c
index 97d5d8ae3..b519491c7 100644
--- a/programs/ssl/ssl_mail_client.c
+++ b/programs/ssl/ssl_mail_client.c
@@ -51,6 +51,10 @@
* Harmless on other platforms. */
#define _POSIX_C_SOURCE 200112L
+#if defined(__NetBSD__)
+#define _XOPEN_SOURCE 600
+#endif
+
#if !defined(MBEDTLS_CONFIG_FILE)
#include "mbedtls/config.h"
#else