about summary refs log tree commit diff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/posix/libc_fatal.c10
-rw-r--r--sysdeps/unix/sysv/linux/libc_fatal.c9
2 files changed, 10 insertions, 9 deletions
diff --git a/sysdeps/posix/libc_fatal.c b/sysdeps/posix/libc_fatal.c
index fac8cbd051..a5c5a2d1f7 100644
--- a/sysdeps/posix/libc_fatal.c
+++ b/sysdeps/posix/libc_fatal.c
@@ -131,9 +131,9 @@ __libc_message (int do_abort, const char *fmt, ...)
 
   va_end (ap_copy);
 
-  if (do_abort()
-      /* Kill the application.  */
-      abort ();
+  if (do_abort)
+    /* Kill the application.  */
+    abort ();
 }
 
 
@@ -141,6 +141,8 @@ void
 __libc_fatal (message)
      const char *message;
 {
-  __libc_message (1, "%s", message);
+  /* The loop is added only to keep gcc happy.  */
+  while (1)
+    __libc_message (1, "%s", message);
 }
 libc_hidden_def (__libc_fatal)
diff --git a/sysdeps/unix/sysv/linux/libc_fatal.c b/sysdeps/unix/sysv/linux/libc_fatal.c
index c0482d96f3..a79cfbabb9 100644
--- a/sysdeps/unix/sysv/linux/libc_fatal.c
+++ b/sysdeps/unix/sysv/linux/libc_fatal.c
@@ -20,16 +20,13 @@
 #include <fcntl.h>
 #include <paths.h>
 #include <stdarg.h>
+#include <stdbool.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 #include <sysdep.h>
 #include <unistd.h>
 #include <sys/syslog.h>
-#ifndef ABORT_INSTRUCTION
-/* No such instruction is available.  */
-# define ABORT_INSTRUCTION
-#endif
 
 /* Abort with an error message.  */
 #include <not-cancel.h>
@@ -153,6 +150,8 @@ void
 __libc_fatal (message)
      const char *message;
 {
-  __libc_message (1, "%s", message);
+  /* The loop is added only to keep gcc happy.  */
+  while (1)
+    __libc_message (1, "%s", message);
 }
 libc_hidden_def (__libc_fatal)