]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
Reapply "pid1: pull in libmount unconditionally"
authorLuca Boccassi <luca.boccassi@gmail.com>
Fri, 5 Dec 2025 11:54:27 +0000 (11:54 +0000)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 5 Dec 2025 16:36:43 +0000 (01:36 +0900)
It was actually intended to load libmount very early, as it is
needed by more than just mount units, such as umount_recursive(),
bind_remount_recursive(), get_sub_mounts(), etc.

Fixes https://github.com/systemd/systemd/issues/39994

This reverts commit 46b4b33c256b918652d5e0b1b5ec376b598111f6.

src/core/main.c
src/core/meson.build

index d7651d0df988a6cdeaa68895a0aa4107877a26ca..f4acdb02c6c24f2f9d9b94e2c964835eecea6794 100644 (file)
@@ -59,6 +59,7 @@
 #include "killall.h"
 #include "kmod-setup.h"
 #include "label-util.h"
+#include "libmount-util.h"
 #include "limits-util.h"
 #include "load-fragment.h"
 #include "log.h"
@@ -3310,6 +3311,12 @@ int main(int argc, char *argv[]) {
                 goto finish;
         }
 
+        r = dlopen_libmount();
+        if (r < 0) {
+                error_message = "Failed to load libmount.so";
+                goto finish;
+        }
+
         r = initialize_runtime(skip_setup,
                                first_boot,
                                &saved_rlimit_nofile,
index d626138d71dd3a7ca4c035412efdc890abbfc5f0..657574019c49a5920aab20601865ab8e677fa9d0 100644 (file)
@@ -201,6 +201,7 @@ executables += [
                 'dependencies' : [
                         libapparmor_cflags,
                         libkmod_cflags,
+                        libmount_cflags,
                         libseccomp_cflags,
                         libselinux_cflags,
                 ],