From: Zbigniew Jędrzejewski-Szmek Date: Tue, 8 Jul 2025 10:09:31 +0000 (+0200) Subject: Merge shared/exec-directory-util.? into basic/unit-def.? X-Git-Tag: v258-rc1~136^2~3 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c1794666162e653e010acbb0963191de1d293608;p=thirdparty%2Fsystemd.git Merge shared/exec-directory-util.? into basic/unit-def.? Suggested in https://github.com/systemd/systemd/pull/35892#discussion_r2180322856. This is a tiny amount of code and does not warrant having a separate file and spawning a separate instance of the compiler during the build. Note: it took me a while to confirm that the contents of that table and function don't end up in libsystemd.so. The issue is that they _are_ present in it, unless LTO is used. We actually use link_whole[libbasic_static] for libsystemd, so we end up with all that code there. LTO is needed to clean that up. --- diff --git a/src/basic/unit-def.c b/src/basic/unit-def.c index f98cfd4ae18..04b096cd197 100644 --- a/src/basic/unit-def.c +++ b/src/basic/unit-def.c @@ -361,6 +361,17 @@ static const char* const job_mode_table[_JOB_MODE_MAX] = { DEFINE_STRING_TABLE_LOOKUP(job_mode, JobMode); +/* This table maps ExecDirectoryType to the setting it is configured with in the unit */ +static const char* const exec_directory_type_table[_EXEC_DIRECTORY_TYPE_MAX] = { + [EXEC_DIRECTORY_RUNTIME] = "RuntimeDirectory", + [EXEC_DIRECTORY_STATE] = "StateDirectory", + [EXEC_DIRECTORY_CACHE] = "CacheDirectory", + [EXEC_DIRECTORY_LOGS] = "LogsDirectory", + [EXEC_DIRECTORY_CONFIGURATION] = "ConfigurationDirectory", +}; + +DEFINE_STRING_TABLE_LOOKUP(exec_directory_type, ExecDirectoryType); + Glyph unit_active_state_to_glyph(UnitActiveState state) { static const Glyph map[_UNIT_ACTIVE_STATE_MAX] = { [UNIT_ACTIVE] = GLYPH_BLACK_CIRCLE, diff --git a/src/basic/unit-def.h b/src/basic/unit-def.h index 7664f2881ac..e0b1c6730d8 100644 --- a/src/basic/unit-def.h +++ b/src/basic/unit-def.h @@ -296,6 +296,16 @@ typedef enum JobMode { _JOB_MODE_INVALID = -EINVAL, } JobMode; +typedef enum ExecDirectoryType { + EXEC_DIRECTORY_RUNTIME, + EXEC_DIRECTORY_STATE, + EXEC_DIRECTORY_CACHE, + EXEC_DIRECTORY_LOGS, + EXEC_DIRECTORY_CONFIGURATION, + _EXEC_DIRECTORY_TYPE_MAX, + _EXEC_DIRECTORY_TYPE_INVALID = -EINVAL, +} ExecDirectoryType; + char* unit_dbus_path_from_name(const char *name); int unit_name_from_dbus_path(const char *path, char **name); @@ -361,4 +371,7 @@ NotifyAccess notify_access_from_string(const char *s) _pure_; const char* job_mode_to_string(JobMode t) _const_; JobMode job_mode_from_string(const char *s) _pure_; +const char* exec_directory_type_to_string(ExecDirectoryType i) _const_; +ExecDirectoryType exec_directory_type_from_string(const char *s) _pure_; + Glyph unit_active_state_to_glyph(UnitActiveState state); diff --git a/src/core/execute.h b/src/core/execute.h index e0f3ba51e06..da1600a0440 100644 --- a/src/core/execute.h +++ b/src/core/execute.h @@ -7,7 +7,6 @@ #include "cgroup-util.h" #include "core-forward.h" #include "cpu-set-util.h" -#include "exec-directory-util.h" #include "exec-util.h" #include "list.h" #include "log-context.h" diff --git a/src/shared/exec-directory-util.c b/src/shared/exec-directory-util.c deleted file mode 100644 index d9effa25026..00000000000 --- a/src/shared/exec-directory-util.c +++ /dev/null @@ -1,15 +0,0 @@ -/* SPDX-License-Identifier: LGPL-2.1-or-later */ - -#include "exec-directory-util.h" -#include "string-table.h" - -/* This table maps ExecDirectoryType to the setting it is configured with in the unit */ -static const char* const exec_directory_type_table[_EXEC_DIRECTORY_TYPE_MAX] = { - [EXEC_DIRECTORY_RUNTIME] = "RuntimeDirectory", - [EXEC_DIRECTORY_STATE] = "StateDirectory", - [EXEC_DIRECTORY_CACHE] = "CacheDirectory", - [EXEC_DIRECTORY_LOGS] = "LogsDirectory", - [EXEC_DIRECTORY_CONFIGURATION] = "ConfigurationDirectory", -}; - -DEFINE_STRING_TABLE_LOOKUP(exec_directory_type, ExecDirectoryType); diff --git a/src/shared/exec-directory-util.h b/src/shared/exec-directory-util.h deleted file mode 100644 index 0006c73abf3..00000000000 --- a/src/shared/exec-directory-util.h +++ /dev/null @@ -1,19 +0,0 @@ -/* SPDX-License-Identifier: LGPL-2.1-or-later */ -#pragma once - -#include - -#include "macro-fundamental.h" - -typedef enum ExecDirectoryType { - EXEC_DIRECTORY_RUNTIME, - EXEC_DIRECTORY_STATE, - EXEC_DIRECTORY_CACHE, - EXEC_DIRECTORY_LOGS, - EXEC_DIRECTORY_CONFIGURATION, - _EXEC_DIRECTORY_TYPE_MAX, - _EXEC_DIRECTORY_TYPE_INVALID = -EINVAL, -} ExecDirectoryType; - -const char* exec_directory_type_to_string(ExecDirectoryType i) _const_; -ExecDirectoryType exec_directory_type_from_string(const char *s) _pure_; diff --git a/src/shared/meson.build b/src/shared/meson.build index afbf7f8033e..78e435de350 100644 --- a/src/shared/meson.build +++ b/src/shared/meson.build @@ -69,7 +69,6 @@ shared_sources = files( 'elf-util.c', 'enable-mempool.c', 'ethtool-util.c', - 'exec-directory-util.c', 'exec-util.c', 'exit-status.c', 'extension-util.c', diff --git a/src/systemctl/systemctl-show.c b/src/systemctl/systemctl-show.c index e75e7ac1c17..1db9bf2beae 100644 --- a/src/systemctl/systemctl-show.c +++ b/src/systemctl/systemctl-show.c @@ -15,7 +15,6 @@ #include "cgroup-show.h" #include "cpu-set-util.h" #include "errno-util.h" -#include "exec-directory-util.h" #include "exec-util.h" #include "exit-status.h" #include "extract-word.h"