+2025-12-12 Paul Eggert <eggert@cs.ucla.edu>
+
+ extern-inline: #define AAA_INLINE pre-<config.h>
+ In *.c files using the "#define AAA_INLINE _GL_EXTERN_INLINE" idiom,
+ put the idiom before including <config.h>. This is suggested in
+ the Gnulib documentation, and avoids problems when an application
+ like Emacs rashly defines a config.h file that includes a *.h file
+ that uses the documented "#ifndef AAA_INLINE / # define AAA_INLINE
+ _GL_INLINE / #endif" idiom.
+
2025-12-11 Bruno Haible <bruno@clisp.org>
relocatable-prog{,-wrapper}: Fix autoconf error (regr. 2025-12-09).
Written by Paul Eggert, Andreas Grünbacher, and Bruno Haible. */
+#define ACL_INTERNAL_INLINE _GL_EXTERN_INLINE
#include <config.h>
/* Specification. */
-#define ACL_INTERNAL_INLINE _GL_EXTERN_INLINE
#include "acl-internal.h"
#include "acl.h"
/* Written by Paul Eggert. */
-#include <config.h>
-
#define ALIGNALLOC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "alignalloc.h"
#include <limits.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_ARPA_INET_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <arpa/inet.h>
*
*/
+#define BASE32_INLINE _GL_EXTERN_INLINE
#include <config.h>
/* Get prototype. */
-#define BASE32_INLINE _GL_EXTERN_INLINE
#include "base32.h"
/* Get imalloc. */
*
*/
+#define BASE64_INLINE _GL_EXTERN_INLINE
#include <config.h>
/* Get prototype. */
-#define BASE64_INLINE _GL_EXTERN_INLINE
#include "base64.h"
/* Get imalloc. */
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define BINARY_IO_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "binary-io.h"
#if defined __DJGPP__ || defined __EMX__
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define BITROTATE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "bitrotate.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_BYTESWAP_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <byteswap.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define C_CTYPE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "c-ctype.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define CHMODAT_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "openat.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define CHOWNAT_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "openat.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define COUNT_LEADING_ZEROS_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "count-leading-zeros.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define COUNT_ONE_BITS_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "count-one-bits.h"
#if 1500 <= _MSC_VER && (defined _M_IX86 || defined _M_X64)
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define COUNT_TRAILING_ZEROS_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "count-trailing-zeros.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define EEALLOC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "eealloc.h"
#define _GL_ENDIAN_INLINE _GL_EXTERN_INLINE
#include <config.h>
-
#include <endian.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_EXECINFO_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "execinfo.h"
/* Written by Paul Eggert. */
-#include <config.h>
-
#define GETHRXTIME_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gethrxtime.h"
#if ! (HAVE_ARITHMETIC_HRTIME_T && HAVE_DECL_GETHRTIME)
/* Written by Bruno Haible and Martin Lambers. */
+#define _GL_GETPAGESIZE_INLINE _GL_EXTERN_INLINE
#include <config.h>
/* Specification. */
-#define _GL_GETPAGESIZE_INLINE _GL_EXTERN_INLINE
#include <unistd.h>
/* This implementation is only for native Windows systems. */
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_LIST_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_list.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_MAP_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_map.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_OMAP_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_omap.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_OSET_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_oset.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_SET_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_set.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_XLIST_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_xlist.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_XMAP_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_xmap.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_XOMAP_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_xomap.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_XOSET_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_xoset.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_XSET_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_xset.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_XSUBLIST_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "gl_xsublist.h"
/* Written by Yoann Vandoorselaere <yoann@prelude-ids.org>, 2008,
and Bruno Haible <bruno@clisp.org>, 2008. */
-#include <config.h>
-
#define _GLTHREAD_COND_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "glthread/cond.h"
/* ========================================================================= */
/* Written by Marc Nieper-Wißkirchen <marc@nieper-wisskirchen.de>, 2021. */
-#include <config.h>
#define _GL_HAMT_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "hamt.h"
#include <flexmember.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define IALLOC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "ialloc.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_ISSYMLINK_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "issymlink.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_ISSYMLINKAT_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "issymlinkat.h"
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBCHAR_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <limits.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBFILE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "mbfile.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBITER_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "mbiter.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBITERF_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "mbiterf.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBUITER_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "mbuiter.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define MBUITERF_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "mbuiterf.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
#define MCEL_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "mcel.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define PIPE_FILTER_AUX_INLINE _GL_EXTERN_INLINE
-
+#include <config.h>
#include "pipe-filter.h"
#include <errno.h>
Written by David Bartley. */
-#include <config.h>
-
#define PRIV_SET_INLINE _GL_EXTERN_INLINE
-
+#include <config.h>
#include "priv-set.h"
#if HAVE_GETPPRIV && HAVE_PRIV_H
/* Ensure that we call the system's realloc() below. */
#define _GL_USE_STDLIB_ALLOC 1
-#include <config.h>
#define _GL_REALLOC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdlib.h>
#include <errno.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define SAFE_ALLOC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "safe-alloc.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
#define SAME_INODE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "same-inode.h"
/* Written by Paul Eggert. */
-#include <config.h>
-
#define SAVEWD_INLINE _GL_EXTERN_INLINE
-
+#include <config.h>
#include "savewd.h"
#include <errno.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define SE_CONTEXT_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <selinux/context.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define SE_LABEL_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <selinux/label.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define SE_SELINUX_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <selinux/selinux.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define SIG_HANDLER_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "sig-handler.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STAT_TIME_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "stat-time.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define STATAT_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "openat.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_BIT_CEIL_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_BIT_FLOOR_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_BIT_WIDTH_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_COUNT_ONES_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
#if 1500 <= _MSC_VER && (defined _M_IX86 || defined _M_X64)
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_COUNT_ZEROS_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_FIRST_LEADING_ONE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_FIRST_LEADING_ZERO_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_FIRST_TRAILING_ONE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_FIRST_TRAILING_ZERO_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_HAS_SINGLE_BIT_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_LEADING_ONES_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_LEADING_ZEROS_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_TRAILING_ONES_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STDC_TRAILING_ZEROS_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <stdbit.h>
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_STRING_DESC_QUOTEARG_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "string-desc-quotearg.h"
/* Written by Bruno Haible <bruno@clisp.org>, 2023. */
-#include <config.h>
-
#define GL_STRING_DESC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
/* Specification and inline definitions. */
#include "string-desc.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_STRING_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include <string.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_TIMESPEC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "timespec.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define _GL_U64_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "u64.h"
+
typedef int dummy;
/* derived from a function in touch.c */
+#define _GL_UTIMENS_INLINE _GL_EXTERN_INLINE
#include <config.h>
/* Specification. */
-#define _GL_UTIMENS_INLINE _GL_EXTERN_INLINE
#include "utimens.h"
#include <errno.h>
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define XBINARY_IO_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "xbinary-io.h"
#include <errno.h>
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define XALLOC_INLINE _GL_EXTERN_INLINE
-
+#include <config.h>
#include "xalloc.h"
#include "ialloc.h"
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define XSIZE_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "xsize.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define GL_XSTRING_DESC_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "xstring-desc.h"
#include "ialloc.h"
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>. */
-#include <config.h>
-
#define XTIME_INLINE _GL_EXTERN_INLINE
+#include <config.h>
#include "xtime.h"