From 507648ad114c2ae0cd6d181063e1ac07e8106718 Mon Sep 17 00:00:00 2001 From: Jia Tan Date: Mon, 2 Jan 2023 22:33:48 +0800 Subject: [PATCH] Build: Only define HAVE_PROGRAM_INVOCATION_NAME if it is set to 1. HAVE_DECL_PROGRAM_INVOCATION_NAME is renamed to HAVE_PROGRAM_INVOCATION_NAME. Previously, HAVE_DECL_PROGRAM_INVOCATION_NAME was always set when building with autotools. CMake would only set this when it was 1, and the dos/config.h did not define it. The new macro definition is consistent across build systems. --- cmake/tuklib_progname.cmake | 5 ++--- m4/tuklib_progname.m4 | 5 ++++- src/common/tuklib_progname.c | 2 +- src/common/tuklib_progname.h | 2 +- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/cmake/tuklib_progname.cmake b/cmake/tuklib_progname.cmake index 0fa1d3d7..d4ab0066 100644 --- a/cmake/tuklib_progname.cmake +++ b/cmake/tuklib_progname.cmake @@ -13,7 +13,6 @@ include(CheckSymbolExists) function(tuklib_progname TARGET_OR_ALL) # NOTE: This glibc extension requires _GNU_SOURCE. check_symbol_exists(program_invocation_name errno.h - HAVE_DECL_PROGRAM_INVOCATION_NAME) - tuklib_add_definition_if("${TARGET_OR_ALL}" - HAVE_DECL_PROGRAM_INVOCATION_NAME) + HAVE_PROGRAM_INVOCATION_NAME) + tuklib_add_definition_if("${TARGET_OR_ALL}" HAVE_PROGRAM_INVOCATION_NAME) endfunction() diff --git a/m4/tuklib_progname.m4 b/m4/tuklib_progname.m4 index f3e158bd..2133e327 100644 --- a/m4/tuklib_progname.m4 +++ b/m4/tuklib_progname.m4 @@ -21,5 +21,8 @@ AC_DEFUN_ONCE([TUKLIB_PROGNAME], [ AC_REQUIRE([TUKLIB_COMMON]) -AC_CHECK_DECLS([program_invocation_name], [], [], [#include ]) +AC_CHECK_DECL([program_invocation_name], [AC_DEFINE( + [HAVE_PROGRAM_INVOCATION_NAME], [1], + [Define to 1 if PROGRAM_INVOCATION_NAME is declared in ])], + [], [#include ]) ])dnl diff --git a/src/common/tuklib_progname.c b/src/common/tuklib_progname.c index 7cb7e203..e2ef4e55 100644 --- a/src/common/tuklib_progname.c +++ b/src/common/tuklib_progname.c @@ -14,7 +14,7 @@ #include -#if !HAVE_DECL_PROGRAM_INVOCATION_NAME +#ifndef HAVE_PROGRAM_INVOCATION_NAME char *progname = NULL; #endif diff --git a/src/common/tuklib_progname.h b/src/common/tuklib_progname.h index 791b1251..bb80f25e 100644 --- a/src/common/tuklib_progname.h +++ b/src/common/tuklib_progname.h @@ -18,7 +18,7 @@ TUKLIB_DECLS_BEGIN -#if HAVE_DECL_PROGRAM_INVOCATION_NAME +#ifdef HAVE_PROGRAM_INVOCATION_NAME # define progname program_invocation_name #else # define progname TUKLIB_SYMBOL(tuklib_progname)