From 8b5ce49591cf342dabc6fd3874411d1a2f16761e Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Wed, 21 May 2025 09:23:13 +0200 Subject: [PATCH] basic: Include time-util.h in constants.h constants.h defines a bunch of constants that use macros from time-util.h, so add the needed include. To avoid cyclic dependencies, we move the HAS_FEATURE_MEMORY_SANITIZER and HAS_FEATURE_ADDRESS_SANITIZER logic to macro.h and get rid of the constants.h include there. The rest of this commit is adding missing constants.h includes where needed due to it being removed from macro.h. --- src/basic/constants.h | 24 +----------------------- src/basic/macro.h | 25 ++++++++++++++++++++++++- src/core/ipe-setup.c | 1 + src/resolve/resolved-dns-delegate.c | 1 + src/systemctl/systemctl-daemon-reload.c | 1 + src/timedate/timedatectl.c | 1 + 6 files changed, 29 insertions(+), 24 deletions(-) diff --git a/src/basic/constants.h b/src/basic/constants.h index 93e6efbdca..7a09fbf878 100644 --- a/src/basic/constants.h +++ b/src/basic/constants.h @@ -1,29 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#if !defined(HAS_FEATURE_MEMORY_SANITIZER) -# if defined(__has_feature) -# if __has_feature(memory_sanitizer) -# define HAS_FEATURE_MEMORY_SANITIZER 1 -# endif -# endif -# if !defined(HAS_FEATURE_MEMORY_SANITIZER) -# define HAS_FEATURE_MEMORY_SANITIZER 0 -# endif -#endif - -#if !defined(HAS_FEATURE_ADDRESS_SANITIZER) -# ifdef __SANITIZE_ADDRESS__ -# define HAS_FEATURE_ADDRESS_SANITIZER 1 -# elif defined(__has_feature) -# if __has_feature(address_sanitizer) -# define HAS_FEATURE_ADDRESS_SANITIZER 1 -# endif -# endif -# if !defined(HAS_FEATURE_ADDRESS_SANITIZER) -# define HAS_FEATURE_ADDRESS_SANITIZER 0 -# endif -#endif +#include "time-util.h" #define DEFAULT_RESTART_USEC (100*USEC_PER_MSEC) diff --git a/src/basic/macro.h b/src/basic/macro.h index 9391fc5e88..03a05b1368 100644 --- a/src/basic/macro.h +++ b/src/basic/macro.h @@ -1,9 +1,32 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #pragma once -#include "constants.h" #include "macro-fundamental.h" +#if !defined(HAS_FEATURE_MEMORY_SANITIZER) +# if defined(__has_feature) +# if __has_feature(memory_sanitizer) +# define HAS_FEATURE_MEMORY_SANITIZER 1 +# endif +# endif +# if !defined(HAS_FEATURE_MEMORY_SANITIZER) +# define HAS_FEATURE_MEMORY_SANITIZER 0 +# endif +#endif + +#if !defined(HAS_FEATURE_ADDRESS_SANITIZER) +# ifdef __SANITIZE_ADDRESS__ +# define HAS_FEATURE_ADDRESS_SANITIZER 1 +# elif defined(__has_feature) +# if __has_feature(address_sanitizer) +# define HAS_FEATURE_ADDRESS_SANITIZER 1 +# endif +# endif +# if !defined(HAS_FEATURE_ADDRESS_SANITIZER) +# define HAS_FEATURE_ADDRESS_SANITIZER 0 +# endif +#endif + /* Note: on GCC "no_sanitize_address" is a function attribute only, on llvm it may also be applied to global * variables. We define a specific macro which knows this. Note that on GCC we don't need this decorator so much, since * our primary use case for this attribute is registration structures placed in named ELF sections which shall not be diff --git a/src/core/ipe-setup.c b/src/core/ipe-setup.c index 392c9187e5..7bf4f52d04 100644 --- a/src/core/ipe-setup.c +++ b/src/core/ipe-setup.c @@ -4,6 +4,7 @@ #include "alloc-util.h" #include "conf-files.h" +#include "constants.h" #include "copy.h" #include "fd-util.h" #include "fileio.h" diff --git a/src/resolve/resolved-dns-delegate.c b/src/resolve/resolved-dns-delegate.c index 6a094ce68e..969836c304 100644 --- a/src/resolve/resolved-dns-delegate.c +++ b/src/resolve/resolved-dns-delegate.c @@ -1,6 +1,7 @@ /* SPDX-License-Identifier: LGPL-2.1-or-later */ #include "conf-files.h" +#include "constants.h" #include "dns-domain.h" #include "in-addr-util.h" #include "path-util.h" diff --git a/src/systemctl/systemctl-daemon-reload.c b/src/systemctl/systemctl-daemon-reload.c index 03a06c077d..2e924b75b1 100644 --- a/src/systemctl/systemctl-daemon-reload.c +++ b/src/systemctl/systemctl-daemon-reload.c @@ -2,6 +2,7 @@ #include "bus-error.h" #include "bus-locator.h" +#include "constants.h" #include "systemctl.h" #include "systemctl-daemon-reload.h" #include "systemctl-util.h" diff --git a/src/timedate/timedatectl.c b/src/timedate/timedatectl.c index 78b4feaebe..d55b26188f 100644 --- a/src/timedate/timedatectl.c +++ b/src/timedate/timedatectl.c @@ -14,6 +14,7 @@ #include "bus-locator.h" #include "bus-map-properties.h" #include "bus-print-properties.h" +#include "constants.h" #include "env-util.h" #include "format-table.h" #include "in-addr-util.h"