Paul Eggert wrote: > diff --git a/modules/stringeq b/modules/stringeq > index fb620cf16d..bfc387db49 100644 > --- a/modules/stringeq > +++ b/modules/stringeq > @@ -9,6 +9,9 @@ bool > string-h > > configure.ac: > +AC_CHECK_DECLS_ONCE([memeq, streq]) > +test $ac_cv_have_decl_memeq = no || HAVE_DECL_MEMEQ=1 > +test $ac_cv_have_decl_streq = no || HAVE_DECL_STREQ=1 > gl_STRING_MODULE_INDICATOR([stringeq])
This is not reliable. If this configure.ac snippet happens to be executed before gl_STRING_H_DEFAULTS, the latter will overwrite the values of HAVE_DECL_MEMEQ, HAVE_DECL_STREQ, setting them both to 0. It's better to use the usual idioms; they don't have this problem: 2025-09-17 Bruno Haible <[email protected]> stringeq: Make use of Autoconf more reliable. * m4/stringeq.m4: New file. * modules/stringeq (Files): Add it. (configure.ac): Don't set HAVE_DECL_MEMEQ, HAVE_DECL_STREQ. Instead, invoke gl_FUNC_STREQ and gl_FUNC_MEMEQ.
From b9f485800d15c795eca7d4512e1c3c88a64d2efd Mon Sep 17 00:00:00 2001 From: Bruno Haible <[email protected]> Date: Wed, 17 Sep 2025 22:05:22 +0200 Subject: [PATCH] stringeq: Make use of Autoconf more reliable. * m4/stringeq.m4: New file. * modules/stringeq (Files): Add it. (configure.ac): Don't set HAVE_DECL_MEMEQ, HAVE_DECL_STREQ. Instead, invoke gl_FUNC_STREQ and gl_FUNC_MEMEQ. --- ChangeLog | 8 ++++++++ m4/stringeq.m4 | 25 +++++++++++++++++++++++++ modules/stringeq | 6 +++--- 3 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 m4/stringeq.m4 diff --git a/ChangeLog b/ChangeLog index beab05d811..3065529505 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2025-09-17 Bruno Haible <[email protected]> + + stringeq: Make use of Autoconf more reliable. + * m4/stringeq.m4: New file. + * modules/stringeq (Files): Add it. + (configure.ac): Don't set HAVE_DECL_MEMEQ, HAVE_DECL_STREQ. Instead, + invoke gl_FUNC_STREQ and gl_FUNC_MEMEQ. + 2025-09-17 P??draig Brady <[email protected]> cpu-supports: support checks on any architecture diff --git a/m4/stringeq.m4 b/m4/stringeq.m4 new file mode 100644 index 0000000000..de6d66c12d --- /dev/null +++ b/m4/stringeq.m4 @@ -0,0 +1,25 @@ +# stringeq.m4 +# serial 1 +dnl Copyright (C) 2025 Free Software Foundation, Inc. +dnl This file is free software; the Free Software Foundation +dnl gives unlimited permission to copy and/or distribute it, +dnl with or without modifications, as long as this notice is preserved. +dnl This file is offered as-is, without any warranty. + +AC_DEFUN([gl_FUNC_STREQ], +[ + AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([streq]) + if test $ac_cv_have_decl_streq != no; then + HAVE_DECL_STREQ=1 + fi +]) + +AC_DEFUN([gl_FUNC_MEMEQ], +[ + AC_REQUIRE([gl_STRING_H_DEFAULTS]) + AC_CHECK_DECLS_ONCE([memeq]) + if test $ac_cv_have_decl_memeq != no; then + HAVE_DECL_MEMEQ=1 + fi +]) diff --git a/modules/stringeq b/modules/stringeq index bfc387db49..5a21f82484 100644 --- a/modules/stringeq +++ b/modules/stringeq @@ -3,15 +3,15 @@ streq and memeq convenience functions for string equality Files: lib/string.c +m4/stringeq.m4 Depends-on: bool string-h configure.ac: -AC_CHECK_DECLS_ONCE([memeq, streq]) -test $ac_cv_have_decl_memeq = no || HAVE_DECL_MEMEQ=1 -test $ac_cv_have_decl_streq = no || HAVE_DECL_STREQ=1 +gl_FUNC_STREQ +gl_FUNC_MEMEQ gl_STRING_MODULE_INDICATOR([stringeq]) Makefile.am: -- 2.50.1
