Include bsd/strings.h if it exists
authorWayne Davison <wayne@opencoder.net>
Sun, 19 Jun 2022 17:02:51 +0000 (10:02 -0700)
committerWayne Davison <wayne@opencoder.net>
Sun, 19 Jun 2022 17:11:28 +0000 (10:11 -0700)
Some systems apparently put strlcpy() into a separate bsd/strings.h file
without putting the function into a separate library. Thus, configure
finds that the function exists for linking but the build does not have
the declaration (which rsync only supplies if it is also supplying its
own version of the function).

configure.ac
rsync.h

index 37dbb18a34d807d5a08df08d97eebed9030f5c08..37241637f621f4f202be23b284899be805c3f3d8 100644 (file)
@@ -13,7 +13,8 @@ AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h \
     netdb.h malloc.h float.h limits.h iconv.h libcharset.h langinfo.h mcheck.h \
     sys/acl.h acl/libacl.h attr/xattr.h sys/xattr.h sys/extattr.h dl.h \
     popt.h popt/popt.h linux/falloc.h netinet/in_systm.h netgroup.h \
-    zlib.h xxhash.h openssl/md4.h openssl/md5.h zstd.h lz4.h sys/file.h)
+    zlib.h xxhash.h openssl/md4.h openssl/md5.h zstd.h lz4.h sys/file.h \
+    bsd/string.h)
 AC_CHECK_HEADERS([netinet/ip.h], [], [], [[#include <netinet/in.h>]])
 AC_HEADER_MAJOR_FIXED
 
diff --git a/rsync.h b/rsync.h
index e5aacd25fcd3317ab9cadc491c049fd6bbe4798c..1cc037c5142886dae75f632133b19813a6145fb9 100644 (file)
--- a/rsync.h
+++ b/rsync.h
@@ -338,6 +338,9 @@ enum delret {
 # endif
 # include <string.h>
 #endif
+#ifdef HAVE_BSD_STRING_H
+# include <bsd/string.h>
+#endif
 #ifdef HAVE_STRINGS_H
 # include <strings.h>
 #endif