diff --git a/src/core/meson.build b/src/core/meson.build index e703cc3728..391dc45a6b 100644 --- a/src/core/meson.build +++ b/src/core/meson.build @@ -170,11 +170,14 @@ systemd_sources = files( 'apparmor-setup.c', 'ima-setup.c', 'ipe-setup.c', - 'selinux-setup.c', 'smack-setup.c', 'efi-random.c', ) +if conf.get('HAVE_SELINUX') == 1 + systemd_sources += files('selinux-setup.c') +endif + systemd_executor_sources = files( 'executor.c', 'exec-invoke.c', diff --git a/src/core/selinux-setup.c b/src/core/selinux-setup.c index 6f78346036..17905de2c7 100644 --- a/src/core/selinux-setup.c +++ b/src/core/selinux-setup.c @@ -13,11 +13,10 @@ #include "time-util.h" int mac_selinux_setup(bool *loaded_policy) { - assert(loaded_policy); - -#if HAVE_SELINUX int r; + assert(loaded_policy); + r = dlopen_libselinux(); if (r < 0) { log_debug_errno(r, "No SELinux library available, skipping setup."); @@ -92,7 +91,6 @@ int mac_selinux_setup(bool *loaded_policy) { } else log_debug("Unable to load SELinux policy. Ignoring."); } -#endif return 0; } diff --git a/src/core/selinux-setup.h b/src/core/selinux-setup.h index 3dad97bbf6..dd961b0370 100644 --- a/src/core/selinux-setup.h +++ b/src/core/selinux-setup.h @@ -3,4 +3,10 @@ #include "core-forward.h" +#if HAVE_SELINUX int mac_selinux_setup(bool *loaded_policy); +#else +static inline int mac_selinux_setup(bool *loaded_policy) { + return 0; +} +#endif