diff options
-rw-r--r-- | Makefile.am | 18 | ||||
-rw-r--r-- | configure.ac | 10 | ||||
-rw-r--r-- | src/core/manager.c | 2 | ||||
-rw-r--r-- | src/core/mount-setup.c | 2 | ||||
-rw-r--r-- | src/shared/efivars.c | 4 |
5 files changed, 32 insertions, 4 deletions
diff --git a/Makefile.am b/Makefile.am index d73b78ce31..65294a56a9 100644 --- a/Makefile.am +++ b/Makefile.am @@ -295,8 +295,7 @@ rootlibexec_PROGRAMS = \ systemgenerator_PROGRAMS = \ systemd-getty-generator \ systemd-fstab-generator \ - systemd-system-update-generator \ - systemd-efi-boot-generator + systemd-system-update-generator dist_bin_SCRIPTS = \ src/analyze/systemd-analyze @@ -1002,8 +1001,7 @@ noinst_PROGRAMS += \ test-cgroup \ test-install \ test-watchdog \ - test-log \ - test-efivars + test-log noinst_tests += \ test-job-type \ @@ -1071,11 +1069,16 @@ test_hostname_SOURCES = \ test_hostname_LDADD = \ libsystemd-core.la +if ENABLE_EFI +noinst_PROGRAMS += \ + test-efivars + test_efivars_SOURCES = \ src/test/test-efivars.c test_efivars_LDADD = \ libsystemd-shared.la +endif test_unit_name_SOURCES = \ src/test/test-unit-name.c @@ -1410,12 +1413,17 @@ systemd_system_update_generator_LDADD = \ libsystemd-shared.la # ------------------------------------------------------------------------------ +if ENABLE_EFI +systemgenerator_PROGRAMS += \ + systemd-efi-boot-generator + systemd_efi_boot_generator_SOURCES = \ src/efi-boot-generator/efi-boot-generator.c systemd_efi_boot_generator_LDADD = \ libsystemd-label.la \ libsystemd-shared.la +endif # ------------------------------------------------------------------------------ systemd_rc_local_generator_SOURCES = \ @@ -3079,6 +3087,7 @@ EXTRA_DIST += \ units/systemd-timedated.service.in # ------------------------------------------------------------------------------ +if ENABLE_EFI bootctl_SOURCES = \ src/boot/boot.h \ src/boot/boot-loader.h \ @@ -3093,6 +3102,7 @@ bootctl_LDADD = \ bin_PROGRAMS += \ bootctl +endif # ------------------------------------------------------------------------------ if HAVE_MYHOSTNAME diff --git a/configure.ac b/configure.ac index 228f6969ff..834b12314c 100644 --- a/configure.ac +++ b/configure.ac @@ -636,6 +636,15 @@ fi AM_CONDITIONAL(ENABLE_POLKIT, [test "x$have_polkit" = "xyes"]) # ------------------------------------------------------------------------------ +have_efi=no +AC_ARG_ENABLE(efi, AS_HELP_STRING([--disable-efi], [disable EFI support])) +if test "x$enable_efi" != "xno"; then + AC_DEFINE(ENABLE_EFI, 1, [Define if EFI support is to be enabled]) + have_efi=yes +fi +AM_CONDITIONAL(ENABLE_EFI, [test "x$have_efi" = "xyes"]) + +# ------------------------------------------------------------------------------ AC_ARG_WITH(rc-local-script-path-start, AS_HELP_STRING([--with-rc-local-script-path-start=PATH], [Path to /etc/rc.local]), @@ -882,6 +891,7 @@ AC_MSG_RESULT([ localed: ${have_localed} coredump: ${have_coredump} polkit: ${have_polkit} + efi: ${have_efi} kmod: ${have_kmod} blkid: ${have_blkid} nss-myhostname: ${have_myhostname} diff --git a/src/core/manager.c b/src/core/manager.c index bd49892cd4..28f169daab 100644 --- a/src/core/manager.c +++ b/src/core/manager.c @@ -309,7 +309,9 @@ int manager_new(SystemdRunningAs running_as, Manager **_m) { dual_timestamp_get(&m->userspace_timestamp); dual_timestamp_from_monotonic(&m->kernel_timestamp, 0); +#ifdef ENABLE_EFI efi_get_boot_timestamps(&m->userspace_timestamp, &m->firmware_timestamp, &m->loader_timestamp); +#endif m->running_as = running_as; m->name_data_slot = m->conn_data_slot = m->subscribed_data_slot = -1; diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c index 2cd0b60ba7..e7e2736615 100644 --- a/src/core/mount-setup.c +++ b/src/core/mount-setup.c @@ -77,8 +77,10 @@ static const MountPoint mount_table[] = { NULL, MNT_FATAL|MNT_IN_CONTAINER }, { "securityfs", "/sys/kernel/security", "securityfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, NULL, MNT_NONE }, +#ifdef ENABLE_EFI { "efivarfs", "/sys/firmware/efi/efivars", "efivarfs", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, is_efi_boot, MNT_NONE }, +#endif { "tmpfs", "/dev/shm", "tmpfs", "mode=1777", MS_NOSUID|MS_NODEV|MS_STRICTATIME, NULL, MNT_FATAL|MNT_IN_CONTAINER }, { "devpts", "/dev/pts", "devpts", "mode=620,gid=" STRINGIFY(TTY_GID), MS_NOSUID|MS_NOEXEC, diff --git a/src/shared/efivars.c b/src/shared/efivars.c index 840e4e0c35..8494f37729 100644 --- a/src/shared/efivars.c +++ b/src/shared/efivars.c @@ -28,6 +28,8 @@ #include "utf8.h" #include "efivars.h" +#ifdef ENABLE_EFI + bool is_efi_boot(void) { return access("/sys/firmware/efi", F_OK) >= 0; } @@ -469,3 +471,5 @@ int efi_get_loader_device_part_uuid(sd_id128_t *u) { return 0; } + +#endif |