diff options
author | Oxore <oxore@protonmail.com> | 2023-03-07 16:05:46 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2023-03-07 17:58:42 +0300 |
commit | 5f7d4d6e9f47d328e7c4ef71030bdc9e34892798 (patch) | |
tree | 1f4dbecf6b27e268c0590404399c5d5fd91965d0 /third_party/newlib/stdlib/abort.c | |
parent | e4a9be2a4f68781d318770296a50f4823c419805 (diff) |
Get rid of libc, take just parts of it
Diffstat (limited to 'third_party/newlib/stdlib/abort.c')
-rw-r--r-- | third_party/newlib/stdlib/abort.c | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/third_party/newlib/stdlib/abort.c b/third_party/newlib/stdlib/abort.c new file mode 100644 index 0000000..c3c8adb --- /dev/null +++ b/third_party/newlib/stdlib/abort.c @@ -0,0 +1,61 @@ +/* NetWare can not use this implementation of abort. It provides its + own version of abort in clib.nlm. If we can not use clib.nlm, then + we must write abort in sys/netware. */ + +#ifdef ABORT_PROVIDED + +int _dummy_abort = 1; + +#else + +/* +FUNCTION +<<abort>>---abnormal termination of a program + +INDEX + abort + +SYNOPSIS + #include <stdlib.h> + void abort(void); + +DESCRIPTION +Use <<abort>> to signal that your program has detected a condition it +cannot deal with. Normally, <<abort>> ends your program's execution. + +Before terminating your program, <<abort>> raises the exception <<SIGABRT>> +(using `<<raise(SIGABRT)>>'). If you have used <<signal>> to register +an exception handler for this condition, that handler has the +opportunity to retain control, thereby avoiding program termination. + +In this implementation, <<abort>> does not perform any stream- or +file-related cleanup (the host environment may do so; if not, you can +arrange for your program to do its own cleanup with a <<SIGABRT>> +exception handler). + +RETURNS +<<abort>> does not return to its caller. + +PORTABILITY +ANSI C requires <<abort>>. + +Supporting OS subroutines required: <<_exit>> and optionally, <<write>>. +*/ + +#include <stdlib.h> +#include <unistd.h> + +void +abort (void) +{ +#ifdef ABORT_MESSAGE + write (2, "Abort called\n", sizeof ("Abort called\n")-1); +#endif + + while (1) + { + _exit (1); + } +} + +#endif |