From a194861e540c2e278c716022f4ca4103710d1d8f Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 13 Apr 2023 21:25:59 +0200 Subject: [PATCH] getprogname: Avoid using HAVE_* macros in *.in.h files. * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize HAVE_DECL_PROGRAM_INVOCATION_NAME. * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Require gl_STDLIB_H_DEFAULTS and gl_USE_SYSTEM_EXTENSIONS. Set HAVE_DECL_PROGRAM_INVOCATION_NAME. * modules/stdlib (Makefile.am): Substitute HAVE_DECL_PROGRAM_INVOCATION_NAME. * lib/stdlib.in.h (getprogname): Test HAVE_DECL_PROGRAM_INVOCATION_NAME as an Autoconf variable. --- ChangeLog | 12 ++++++++++++ lib/stdlib.in.h | 4 ++-- m4/getprogname.m4 | 8 +++++++- m4/stdlib_h.m4 | 3 ++- modules/stdlib | 1 + 5 files changed, 24 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 87de925f86..5e1fab0cfc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,15 @@ +2023-04-13 Bruno Haible + + getprogname: Avoid using HAVE_* macros in *.in.h files. + * m4/stdlib_h.m4 (gl_STDLIB_H_DEFAULTS): Initialize + HAVE_DECL_PROGRAM_INVOCATION_NAME. + * m4/getprogname.m4 (gl_FUNC_GETPROGNAME): Require gl_STDLIB_H_DEFAULTS + and gl_USE_SYSTEM_EXTENSIONS. Set HAVE_DECL_PROGRAM_INVOCATION_NAME. + * modules/stdlib (Makefile.am): Substitute + HAVE_DECL_PROGRAM_INVOCATION_NAME. + * lib/stdlib.in.h (getprogname): Test HAVE_DECL_PROGRAM_INVOCATION_NAME + as an Autoconf variable. + 2023-04-13 Bruno Haible selinux-h: Avoid using HAVE_* macros in *.in.h files. diff --git a/lib/stdlib.in.h b/lib/stdlib.in.h index da827a5c7b..2b3307d39e 100644 --- a/lib/stdlib.in.h +++ b/lib/stdlib.in.h @@ -465,7 +465,7 @@ _GL_WARN_ON_USE (getloadavg, "getloadavg is not portable - " # undef getprogname # define getprogname rpl_getprogname # endif -# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME +# if @HAVE_DECL_PROGRAM_INVOCATION_NAME@ _GL_FUNCDECL_RPL (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE); # else _GL_FUNCDECL_RPL (getprogname, const char *, (void)); @@ -473,7 +473,7 @@ _GL_FUNCDECL_RPL (getprogname, const char *, (void)); _GL_CXXALIAS_RPL (getprogname, const char *, (void)); # else # if !@HAVE_GETPROGNAME@ -# ifdef HAVE_DECL_PROGRAM_INVOCATION_NAME +# if @HAVE_DECL_PROGRAM_INVOCATION_NAME@ _GL_FUNCDECL_SYS (getprogname, const char *, (void) _GL_ATTRIBUTE_PURE); # else _GL_FUNCDECL_SYS (getprogname, const char *, (void)); diff --git a/m4/getprogname.m4 b/m4/getprogname.m4 index b8636e143a..2b741f5083 100644 --- a/m4/getprogname.m4 +++ b/m4/getprogname.m4 @@ -5,10 +5,12 @@ # gives unlimited permission to copy and/or distribute it, # with or without modifications, as long as this notice is preserved. -# serial 7 +# serial 8 AC_DEFUN([gl_FUNC_GETPROGNAME], [ + AC_REQUIRE([gl_STDLIB_H_DEFAULTS]) + AC_REQUIRE([gl_USE_SYSTEM_EXTENSIONS]) gl_CHECK_FUNCS_ANDROID([getprogname], [[#include ]]) if test $ac_cv_func_getprogname = no; then HAVE_GETPROGNAME=0 @@ -16,6 +18,10 @@ AC_DEFUN([gl_FUNC_GETPROGNAME], future*) REPLACE_GETPROGNAME=1 ;; esac fi + AC_CHECK_DECLS([program_invocation_name], + [], + [HAVE_DECL_PROGRAM_INVOCATION_NAME=0], + [[#include ]]) ]) AC_DEFUN([gl_PREREQ_GETPROGNAME], diff --git a/m4/stdlib_h.m4 b/m4/stdlib_h.m4 index cef133e051..3274ea4948 100644 --- a/m4/stdlib_h.m4 +++ b/m4/stdlib_h.m4 @@ -1,4 +1,4 @@ -# stdlib_h.m4 serial 73 +# stdlib_h.m4 serial 74 dnl Copyright (C) 2007-2023 Free Software Foundation, Inc. dnl This file is free software; the Free Software Foundation dnl gives unlimited permission to copy and/or distribute it, @@ -175,6 +175,7 @@ AC_DEFUN([gl_STDLIB_H_DEFAULTS], HAVE_DECL_FCVT=1; AC_SUBST([HAVE_DECL_FCVT]) HAVE_DECL_GCVT=1; AC_SUBST([HAVE_DECL_GCVT]) HAVE_DECL_GETLOADAVG=1; AC_SUBST([HAVE_DECL_GETLOADAVG]) + HAVE_DECL_PROGRAM_INVOCATION_NAME=1; AC_SUBST([HAVE_DECL_PROGRAM_INVOCATION_NAME]) HAVE_GETPROGNAME=1; AC_SUBST([HAVE_GETPROGNAME]) HAVE_GETSUBOPT=1; AC_SUBST([HAVE_GETSUBOPT]) HAVE_GRANTPT=1; AC_SUBST([HAVE_GRANTPT]) diff --git a/modules/stdlib b/modules/stdlib index b357d385e0..89f5a0ad2f 100644 --- a/modules/stdlib +++ b/modules/stdlib @@ -95,6 +95,7 @@ stdlib.h: stdlib.in.h $(top_builddir)/config.status $(CXXDEFS_H) \ -e 's|@''HAVE_DECL_FCVT''@|$(HAVE_DECL_FCVT)|g' \ -e 's|@''HAVE_DECL_GCVT''@|$(HAVE_DECL_GCVT)|g' \ -e 's|@''HAVE_DECL_GETLOADAVG''@|$(HAVE_DECL_GETLOADAVG)|g' \ + -e 's|@''HAVE_DECL_PROGRAM_INVOCATION_NAME''@|$(HAVE_DECL_PROGRAM_INVOCATION_NAME)|g' \ -e 's|@''HAVE_GETPROGNAME''@|$(HAVE_GETPROGNAME)|g' \ -e 's|@''HAVE_GETSUBOPT''@|$(HAVE_GETSUBOPT)|g' \ -e 's|@''HAVE_GRANTPT''@|$(HAVE_GRANTPT)|g' \ -- 2.39.5