From 7801356442578ff6e1c65844eb9e65c819af4660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Mon, 15 Jul 2013 23:04:52 -0400 Subject: [PATCH] build-sys: discover the path to kexec during build time https://bugs.freedesktop.org/show_bug.cgi?id=55248 --- Makefile.am | 1 + configure.ac | 2 ++ src/core/shutdown.c | 2 +- src/login/logind-action.c | 2 +- 4 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile.am b/Makefile.am index 9105274c0da..44cfd3ea1cf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -165,6 +165,7 @@ AM_CPPFLAGS = \ -DUDEVLIBEXECDIR=\"$(udevlibexecdir)\" \ -DPOLKIT_AGENT_BINARY_PATH=\"$(bindir)/pkttyagent\" \ -DQUOTACHECK=\"$(QUOTACHECK)\" \ + -DKEXEC=\"$(KEXEC)\" \ -I $(top_srcdir)/src \ -I $(top_srcdir)/src/shared \ -I $(top_srcdir)/src/login \ diff --git a/configure.ac b/configure.ac index 6f5fee5fcfe..94afe51d74b 100644 --- a/configure.ac +++ b/configure.ac @@ -76,6 +76,8 @@ AC_PATH_PROG([KILL], [kill], [/usr/bin/kill]) AC_PATH_PROG([KMOD], [kmod], [/usr/bin/kmod]) +AC_PATH_PROG([KEXEC], [kexec], [/usr/sbin/kexec]) + # gtkdocize greps for '^GTK_DOC_CHECK', so it needs to be on its own line m4_ifdef([GTK_DOC_CHECK], [ GTK_DOC_CHECK([1.18],[--flavour no-tmpl])], diff --git a/src/core/shutdown.c b/src/core/shutdown.c index 10a52bd1175..4709746de40 100644 --- a/src/core/shutdown.c +++ b/src/core/shutdown.c @@ -318,7 +318,7 @@ int main(int argc, char *argv[]) { log_warning("kexec failed. Falling back to normal reboot."); } else { /* Child */ - const char *args[3] = { "/sbin/kexec", "-e", NULL }; + const char *args[3] = { KEXEC, "-e", NULL }; execv(args[0], (char * const *) args); return EXIT_FAILURE; } diff --git a/src/login/logind-action.c b/src/login/logind-action.c index c930591023f..74114ee0a12 100644 --- a/src/login/logind-action.c +++ b/src/login/logind-action.c @@ -81,7 +81,7 @@ int manager_handle_action( else if (handle == HANDLE_HYBRID_SLEEP) supported = can_sleep("hybrid-sleep") > 0; else if (handle == HANDLE_KEXEC) - supported = access("/sbin/kexec", X_OK) >= 0; + supported = access(KEXEC, X_OK) >= 0; else supported = true;