changeset 13261:279d5dca8f6a

strnlen: Fix a C++ test error on MacOS X and Solaris.
author Bruno Haible <bruno@clisp.org>
date Sun, 25 Apr 2010 12:27:21 +0200
parents 45dad26de835
children b5ce1a0a3d6e
files ChangeLog m4/strnlen.m4
diffstat 2 files changed, 17 insertions(+), 9 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2010-04-25  Bruno Haible  <bruno@clisp.org>
+
+	strnlen: Fix a C++ test error on MacOS X and Solaris.
+	* m4/strnlen.m4 (gl_FUNC_STRNLEN): Don't set REPLACE_STRNLEN to 1 if
+	the function is not declared.
+	Reported by Jarno Rajahalme <jarno.rajahalme@nsn.com> and
+	Simon Josefsson.
+
 2010-04-24  Bruno Haible  <bruno@clisp.org>
 
 	Avoid a gcc warning.
--- a/m4/strnlen.m4
+++ b/m4/strnlen.m4
@@ -1,4 +1,4 @@
-# strnlen.m4 serial 11
+# strnlen.m4 serial 12
 dnl Copyright (C) 2002-2003, 2005-2007, 2009-2010 Free Software Foundation,
 dnl Inc.
 dnl This file is free software; the Free Software Foundation
@@ -15,15 +15,15 @@
   AC_CHECK_DECLS_ONCE([strnlen])
   if test $ac_cv_have_decl_strnlen = no; then
     HAVE_DECL_STRNLEN=0
+  else
+    AC_FUNC_STRNLEN
+    dnl Note: AC_FUNC_STRNLEN does AC_LIBOBJ([strnlen]).
+    if test $ac_cv_func_strnlen_working = no; then
+      REPLACE_STRNLEN=1
+    fi
   fi
-
-  AC_FUNC_STRNLEN
-  if test $ac_cv_func_strnlen_working = no; then
-    REPLACE_STRNLEN=1
-    # This is necessary because automake-1.6.1 doesn't understand
-    # that the above use of AC_FUNC_STRNLEN means we may have to use
-    # lib/strnlen.c.
-    #AC_LIBOBJ([strnlen])
+  if test $HAVE_DECL_STRNLEN = 0 || test $REPLACE_STRNLEN = 1; then
+    AC_LIBOBJ([strnlen])
     gl_PREREQ_STRNLEN
   fi
 ])