[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: strnlen on OSX & C++
From: |
Bruno Haible |
Subject: |
Re: strnlen on OSX & C++ |
Date: |
Sun, 25 Apr 2010 12:31:20 +0200 |
User-agent: |
KMail/1.9.9 |
Simon Josefsson wrote:
> > This is the same issue as with fchownat before, and this patch makes
> > the compile and run successful:
>
> Is the patch the right thing?
No, the proposed patch is not optimal: On platforms where the function simply
does not exist (such as MacOS X or Solaris), it causes gnulib's replacement to
be called 'rpl_strnlen'. Which is confusing when people debug. The idioms
set out in build-aux/c++defs.h suggest to call the function 'strnlen' then.
This fixes it:
2010-04-25 Bruno Haible <address@hidden>
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 <address@hidden> and
Simon Josefsson.
--- m4/strnlen.m4.orig Sun Apr 25 12:23:15 2010
+++ m4/strnlen.m4 Sun Apr 25 12:19:18 2010
@@ -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
])
- Re: gnulib bugs on OSX & C++, (continued)
Re: strnlen on OSX & C++, Bruno Haible, 2010/04/10
Re: gnulib bugs on OSX & C++, Bruno Haible, 2010/04/10
Re: gnulib bugs on OSX & C++, Bruno Haible, 2010/04/10