Skip to content

Commit

Permalink
Merge pull request #4074 from ffontaine/master
Browse files Browse the repository at this point in the history
src/compat.hpp: fix build with libbsd and strlcpy
  • Loading branch information
bluca committed Nov 2, 2020
2 parents 97b5f85 + 8cb5708 commit b2a0842
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 18 deletions.
4 changes: 1 addition & 3 deletions CMakeLists.txt
Expand Up @@ -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
Expand Down
26 changes: 12 additions & 14 deletions configure.ac
Expand Up @@ -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])
Expand Down
4 changes: 3 additions & 1 deletion src/compat.hpp
Expand Up @@ -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_)
{
Expand All @@ -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_)
{
Expand Down

0 comments on commit b2a0842

Please sign in to comment.