From a831353be45db24528fc65b2fdc7510cded62d57 Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Mon, 2 Oct 2006 09:20:18 +0000 Subject: r19030: merge missing stuff from samba4: - strnlen() and strndup() are broken on AIX - we need some extra CFLAGS on HPUX 11.11 metze (This used to be commit 61aa60c60ffddcbad433b26d7f3a836e4fcd8732) --- source3/lib/replace/libreplace_cc.m4 | 6 ++++++ source3/lib/replace/replace.h | 6 ++++-- 2 files changed, 10 insertions(+), 2 deletions(-) (limited to 'source3') diff --git a/source3/lib/replace/libreplace_cc.m4 b/source3/lib/replace/libreplace_cc.m4 index 352d115547..73ce01700e 100644 --- a/source3/lib/replace/libreplace_cc.m4 +++ b/source3/lib/replace/libreplace_cc.m4 @@ -60,8 +60,14 @@ case "$host_os" in *hpux*) # mmap on HPUX is completely broken... AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken]) + if test "`uname -r`" = "B.11.11"; then + AC_MSG_WARN([Enabling HPUX 11.11 header bug workaround]) + CFLAGS="$CFLAGS -D_LARGEFILE64_SUPPORT -D__LP64__ -DO_LARGEFILE=04000" + fi ;; *aix*) + AC_DEFINE(BROKEN_STRNDUP, 1, [Whether strndup is broken]) + AC_DEFINE(BROKEN_STRNLEN, 1, [Whether strnlen is broken]) if test "${GCC}" != "yes"; then ## for funky AIX compiler using strncpy() CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000" diff --git a/source3/lib/replace/replace.h b/source3/lib/replace/replace.h index c2a72751d9..8943c7d637 100644 --- a/source3/lib/replace/replace.h +++ b/source3/lib/replace/replace.h @@ -121,12 +121,14 @@ size_t rep_strlcpy(char *d, const char *s, size_t bufsize); size_t rep_strlcat(char *d, const char *s, size_t bufsize); #endif -#ifndef HAVE_STRNDUP +#if (defined(BROKEN_STRNDUP) || !defined(HAVE_STRNDUP)) +#undef HAVE_STRNDUP #define strndup rep_strndup char *rep_strndup(const char *s, size_t n); #endif -#ifndef HAVE_STRNLEN +#if (defined(BROKEN_STRNLEN) || !defined(HAVE_STRNLEN)) +#undef HAVE_STRNLEN #define strnlen rep_strnlen size_t rep_strnlen(const char *s, size_t n); #endif -- cgit