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