From 8cb5708829df9eacd58e1215ce7a1c135eb912b1 Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Mon, 2 Nov 2020 00:04:14 +0100
Subject: [PATCH] src/compat.hpp: fix build with libbsd and strlcpy

Don't include bsd/string.h if strlcpy is also defined in string.h to
avoid the following build failure on uclibc:

In file included from src/compat.hpp:41:0,
                 from src/ipc_address.cpp:31:
/tmp/instance-0/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/bsd/string.h:44:54: error: declaration of 'size_t strlcpy(char*, const char*, size_t)' has a different exception specifier
 size_t strlcpy(char *dst, const char *src, size_t siz);
                                                      ^
In file included from src/compat.hpp:34:0,
                 from src/ipc_address.cpp:31:
/tmp/instance-0/output-1/host/mips64el-buildroot-linux-uclibc/sysroot/usr/include/string.h:424:15: error: from previous declaration 'size_t strlcpy(char*, const char*, size_t) throw ()'
 extern size_t strlcpy(char *__restrict dst, const char *__restrict src,
               ^

Fixes:
 - http://autobuild.buildroot.org/results/51220b1b82774e8f6f6ed8593c58d2e3c31a1531

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
[Retrieved from:
https://github.com/zeromq/libzmq/commit/b2a0842063aaa464ca2d182f9d3fefc6493906d0]
---
 CMakeLists.txt |  4 +---
 configure.ac   | 26 ++++++++++++--------------
 src/compat.hpp |  4 +++-
 3 files changed, 16 insertions(+), 18 deletions(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 85747f626..74dd99ae0 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -250,9 +250,7 @@ if(NOT MSVC)
       set(ZMQ_HAVE_LIBBSD 1)
     endif()
   endif()
-  if(NOT WITH_LIBBSD OR NOT LIBBSD_FOUND)
-    check_cxx_symbol_exists(strlcpy string.h ZMQ_HAVE_STRLCPY)
-  endif()
+  check_cxx_symbol_exists(strlcpy string.h ZMQ_HAVE_STRLCPY)
 endif()
 
 # Select curve encryption library, defaults to tweetnacl To use libsodium instead, use --with-libsodium(must be
diff --git a/configure.ac b/configure.ac
index 58a78e75e..a7a1609af 100644
--- a/configure.ac
+++ b/configure.ac
@@ -812,20 +812,18 @@ if test "x$enable_libbsd" != "xno"; then
             fi
         ])
 fi
-if test "x$found_libbsd" != "xyes"; then
-    AC_MSG_CHECKING([whether strlcpy is available])
-    AC_COMPILE_IFELSE(
-        [AC_LANG_PROGRAM(
-            [[#include <string.h>]],
-            [[char buf [100]; size_t bar = strlcpy (buf, "foo", 100); (void)bar; return 0;]])
-        ],[
-            AC_MSG_RESULT([yes])
-            AC_DEFINE(ZMQ_HAVE_STRLCPY, [1],
-                [strlcpy is available])
-        ],[
-            AC_MSG_RESULT([no])
-    ])
-fi
+AC_MSG_CHECKING([whether strlcpy is available])
+AC_COMPILE_IFELSE(
+    [AC_LANG_PROGRAM(
+        [[#include <string.h>]],
+        [[char buf [100]; size_t bar = strlcpy (buf, "foo", 100); (void)bar; return 0;]])
+    ],[
+        AC_MSG_RESULT([yes])
+        AC_DEFINE(ZMQ_HAVE_STRLCPY, [1],
+            [strlcpy is available])
+    ],[
+        AC_MSG_RESULT([no])
+])
 
 # pthread_setname is non-posix, and there are at least 4 different implementations
 AC_MSG_CHECKING([whether signature of pthread_setname_np() has 1 argument])
diff --git a/src/compat.hpp b/src/compat.hpp
index 7c7a89275..47744b98e 100644
--- a/src/compat.hpp
+++ b/src/compat.hpp
@@ -37,9 +37,10 @@
 #define strcasecmp _stricmp
 #define strtok_r strtok_s
 #else
+#ifndef ZMQ_HAVE_STRLCPY
 #ifdef ZMQ_HAVE_LIBBSD
 #include <bsd/string.h>
-#elif !defined(ZMQ_HAVE_STRLCPY)
+#else
 static inline size_t
 strlcpy (char *dest_, const char *src_, const size_t dest_size_)
 {
@@ -50,6 +51,7 @@ strlcpy (char *dest_, const char *src_, const size_t dest_size_)
     return dest_size_ - remain;
 }
 #endif
+#endif
 template <size_t size>
 static inline int strcpy_s (char (&dest_)[size], const char *const src_)
 {
