platform.h: enable mempcpy for FreeBSD
authorDenys Vlasenko <vda.linux@googlemail.com>
Mon, 2 Feb 2015 02:51:47 +0000 (03:51 +0100)
committerDenys Vlasenko <vda.linux@googlemail.com>
Mon, 2 Feb 2015 02:51:47 +0000 (03:51 +0100)
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
include/platform.h

index 1168a34dc3a2d19302ea8fd8ec025da563257a2d..0b0fce1822b517791d2ac7792ba8d74bf7a6852a 100644 (file)
@@ -451,7 +451,8 @@ typedef unsigned smalluint;
 #endif
 
 #if defined(__FreeBSD__)
-//# undef HAVE_MEMPCPY - not yet confirmed
+/* users say mempcpy is not present in FreeBSD 9.x */
+# undef HAVE_MEMPCPY
 # undef HAVE_CLEARENV
 # undef HAVE_FDATASYNC
 # undef HAVE_MNTENT_H
@@ -517,6 +518,10 @@ extern char *stpcpy(char *p, const char *to_add) FAST_FUNC;
 
 #ifndef HAVE_MEMPCPY
 #include <string.h>
+/* In case we are wrong about !HAVE_MEMPCPY, and toolchain _does_ have
+ * mempcpy(), avoid colliding with it:
+ */
+#define mempcpy bb__mempcpy
 static ALWAYS_INLINE void *mempcpy(void *dest, const void *src, size_t len)
 {
        return memcpy(dest, src, len) + len;