6f1e3d5
From 71af399a49085b805028f1faadda16b503ce46a0 Mon Sep 17 00:00:00 2001
6f1e3d5
From: Peter Jones <pjones@redhat.com>
6f1e3d5
Date: Wed, 26 Feb 2014 21:49:12 -0500
6f1e3d5
Subject: [PATCH 168/198] Make "exit" take a return code.
6f1e3d5
6f1e3d5
This adds "exit" with a return code.  With this patch, any "exit"
6f1e3d5
command /may/ include a return code, and on platforms that support
6f1e3d5
returning with an exit status, we will do so.  By default we return the
6f1e3d5
same exit status we did before this patch.
6f1e3d5
6f1e3d5
Signed-off-by: Peter Jones <pjones@redhat.com>
6f1e3d5
---
6f1e3d5
 grub-core/kern/emu/main.c | 6 ++++++
6f1e3d5
 grub-core/kern/misc.c     | 9 +++++++++
6f1e3d5
 2 files changed, 15 insertions(+)
6f1e3d5
6f1e3d5
diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c
6f1e3d5
index 55ea5a11c..7e47ec812 100644
6f1e3d5
--- a/grub-core/kern/emu/main.c
6f1e3d5
+++ b/grub-core/kern/emu/main.c
6f1e3d5
@@ -72,6 +72,12 @@ grub_exit (int retval __attribute__((unused)))
6f1e3d5
   grub_reboot ();
6f1e3d5
 }
6f1e3d5
 
6f1e3d5
+void
6f1e3d5
+grub_exit (int retval __attribute__((unused)))
6f1e3d5
+{
6f1e3d5
+  grub_reboot ();
6f1e3d5
+}
6f1e3d5
+
6f1e3d5
 void
6f1e3d5
 grub_machine_init (void)
6f1e3d5
 {
6f1e3d5
diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c
6f1e3d5
index 5ce89a40c..04371ac49 100644
6f1e3d5
--- a/grub-core/kern/misc.c
6f1e3d5
+++ b/grub-core/kern/misc.c
6f1e3d5
@@ -1120,6 +1120,15 @@ grub_abort (void)
6f1e3d5
   grub_exit (1);
6f1e3d5
 }
6f1e3d5
 
6f1e3d5
+#if defined (__clang__) && !defined (GRUB_UTIL)
6f1e3d5
+/* clang emits references to abort().  */
6f1e3d5
+void __attribute__ ((noreturn))
6f1e3d5
+abort (void)
6f1e3d5
+{
6f1e3d5
+  grub_abort ();
6f1e3d5
+}
6f1e3d5
+#endif
6f1e3d5
+
6f1e3d5
 void
6f1e3d5
 grub_fatal (const char *fmt, ...)
6f1e3d5
 {
6f1e3d5
-- 
6f1e3d5
2.14.3
6f1e3d5