c789522
From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001
6f1e3d5
From: Peter Jones <pjones@redhat.com>
6f1e3d5
Date: Wed, 26 Feb 2014 21:49:12 -0500
c789522
Subject: [PATCH 167/229] 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
ec4acbb
index 55ea5a11ccd..7e47ec81263 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
ec4acbb
index 5ce89a40c68..04371ac49f2 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
-- 
ec4acbb
2.15.0
6f1e3d5