summaryrefslogtreecommitdiff
path: root/source3/lib/replace
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2006-10-02 09:20:18 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:15:03 -0500
commita831353be45db24528fc65b2fdc7510cded62d57 (patch)
tree93d98b5084b3cd1b1db60ece5bc51f22dca97455 /source3/lib/replace
parent7ced2e983d29d769a9ad1055f244ecd1e3d08918 (diff)
downloadsamba-a831353be45db24528fc65b2fdc7510cded62d57.tar.gz
samba-a831353be45db24528fc65b2fdc7510cded62d57.tar.bz2
samba-a831353be45db24528fc65b2fdc7510cded62d57.zip
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)
Diffstat (limited to 'source3/lib/replace')
-rw-r--r--source3/lib/replace/libreplace_cc.m46
-rw-r--r--source3/lib/replace/replace.h6
2 files changed, 10 insertions, 2 deletions
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