OSDN Git Service

1999-09-11 Donn Terry <donn@interix.com>
authorian <ian>
Sat, 11 Sep 1999 21:51:55 +0000 (21:51 +0000)
committerian <ian>
Sat, 11 Sep 1999 21:51:55 +0000 (21:51 +0000)
* libbfd-in.h (_bfd_abort): Declare.
(abort): Define.
* bfd.c (_bfd_abort): New function.
* libbfd.h: Rebuild.

bfd/ChangeLog
bfd/bfd.c
bfd/libbfd-in.h
bfd/libbfd.h

index 4895d5f..c9aa5e1 100644 (file)
@@ -7,6 +7,11 @@
 
 1999-09-11  Donn Terry  <donn@interix.com>
 
+       * libbfd-in.h (_bfd_abort): Declare.
+       (abort): Define.
+       * bfd.c (_bfd_abort): New function.
+       * libbfd.h: Rebuild.
+
        * coffcode.h (coff_set_alignment_hook): Delete POWERPC_LE_PE
        special handling.
 
index c6809d7..e04172f 100644 (file)
--- a/bfd/bfd.c
+++ b/bfd/bfd.c
@@ -679,6 +679,30 @@ bfd_assert (file, line)
   (*_bfd_error_handler) (_("bfd assertion fail %s:%d"), file, line);
 }
 
+/* A more or less friendly abort message.  In libbfd.h abort is
+   defined to call this function.  */
+
+#ifndef EXIT_FAILURE
+#define EXIT_FAILURE 1
+#endif
+
+void
+_bfd_abort (file, line, fn)
+     const char *file;
+     int line;
+     const char *fn;
+{
+  if (fn != NULL)
+    (*_bfd_error_handler)
+      (_("BFD internal error, aborting at %s line %d in %s\n"),
+       file, line, fn);
+  else
+    (*_bfd_error_handler)
+      (_("BFD internal error, aborting at %s line %d\n"),
+       file, line);
+  (*_bfd_error_handler) (_("Please report this bug.\n"));
+  xexit (EXIT_FAILURE);
+}
 
 /*
 FUNCTION
index f2ac823..79a176d 100644 (file)
@@ -503,6 +503,17 @@ void       bfd_assert PARAMS ((const char*,int));
 #define BFD_FAIL() \
 { bfd_assert(__FILE__,__LINE__); }
 
+extern void _bfd_abort PARAMS ((const char *, int, const char *))
+     ATTRIBUTE_NORETURN;
+
+/* if gcc, we can give a function name, too */
+#if !defined (__GNUC__) || __GNUC_MINOR__ <= 5
+#define __PRETTY_FUNCTION__  ((char *) NULL)
+#endif
+
+#undef abort
+#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
+
 FILE * bfd_cache_lookup_worker PARAMS ((bfd *));
 
 extern bfd *bfd_last_cache;
index 9a252ee..4918d26 100644 (file)
@@ -503,6 +503,17 @@ void       bfd_assert PARAMS ((const char*,int));
 #define BFD_FAIL() \
 { bfd_assert(__FILE__,__LINE__); }
 
+extern void _bfd_abort PARAMS ((const char *, int, const char *))
+     ATTRIBUTE_NORETURN;
+
+/* if gcc, we can give a function name, too */
+#if !defined (__GNUC__) || __GNUC_MINOR__ <= 5
+#define __PRETTY_FUNCTION__  ((char *) NULL)
+#endif
+
+#undef abort
+#define abort() _bfd_abort (__FILE__, __LINE__, __PRETTY_FUNCTION__)
+
 FILE * bfd_cache_lookup_worker PARAMS ((bfd *));
 
 extern bfd *bfd_last_cache;