From: Zbigniew Jędrzejewski-Szmek Date: Tue, 16 Jul 2013 03:04:52 +0000 (-0400) Subject: build-sys: discover the path to kexec during build time X-Git-Tag: v206~89 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=7801356442578ff6e1c65844eb9e65c819af4660 build-sys: discover the path to kexec during build time https://bugs.freedesktop.org/show_bug.cgi?id=55248 --- diff --git a/Makefile.am b/Makefile.am index 9105274c0..44cfd3ea1 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 6f5fee5fc..94afe51d7 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 10a52bd11..4709746de 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 c93059102..74114ee0a 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;