This improves the idiom used in strdup.m4. It should have no effect on any platform, since all platforms which lack strdup are UNIX platforms, i.e. have a POSIX compliant malloc.
2010-04-05 Bruno Haible <br...@clisp.org> strdup: Improve idiom. * m4/strdup.m4 (gl_FUNC_STRDUP): Invoke gl_PREREQ_STRDUP only when AC_LIBOBJ is used. (gl_FUNC_STRDUP_POSIX): When strdup is missing and malloc is not POSIX compliant, don't set REPLACE_STRDUP to 1. Invoke gl_PREREQ_STRDUP only when AC_LIBOBJ is used. *** m4/strdup.m4.orig Mon Apr 5 12:45:19 2010 --- m4/strdup.m4 Mon Apr 5 12:33:15 2010 *************** *** 1,4 **** ! # strdup.m4 serial 11 dnl Copyright (C) 2002-2010 Free Software Foundation, Inc. --- 1,4 ---- ! # strdup.m4 serial 12 dnl Copyright (C) 2002-2010 Free Software Foundation, Inc. *************** *** 9,37 **** AC_DEFUN([gl_FUNC_STRDUP], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ! AC_REPLACE_FUNCS([strdup]) AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi - gl_PREREQ_STRDUP ]) AC_DEFUN([gl_FUNC_STRDUP_POSIX], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) ! if test $gl_cv_func_malloc_posix != yes; then ! REPLACE_STRDUP=1 ! AC_LIBOBJ([strdup]) else ! AC_REPLACE_FUNCS([strdup]) fi AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi - gl_PREREQ_STRDUP ]) # Prerequisites of lib/strdup.c. --- 9,44 ---- AC_DEFUN([gl_FUNC_STRDUP], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) ! AC_CHECK_FUNCS_ONCE([strdup]) ! if test $ac_cv_func_strdup != yes; then ! AC_LIBOBJ([strdup]) ! gl_PREREQ_STRDUP ! fi AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi ]) AC_DEFUN([gl_FUNC_STRDUP_POSIX], [ AC_REQUIRE([gl_HEADER_STRING_H_DEFAULTS]) AC_REQUIRE([gl_CHECK_MALLOC_POSIX]) ! AC_CHECK_FUNCS_ONCE([strdup]) ! if test $ac_cv_func_strdup = yes; then ! if test $gl_cv_func_malloc_posix != yes; then ! REPLACE_STRDUP=1 ! AC_LIBOBJ([strdup]) ! gl_PREREQ_STRDUP ! fi else ! AC_LIBOBJ([strdup]) ! gl_PREREQ_STRDUP fi AC_CHECK_DECLS_ONCE([strdup]) if test $ac_cv_have_decl_strdup = no; then HAVE_DECL_STRDUP=0 fi ]) # Prerequisites of lib/strdup.c.