From 18bc92cb83fdf0f0472432fb7c30914a9cd4df01 Mon Sep 17 00:00:00 2001 From: midipix Date: Sun, 15 Mar 2015 21:08:54 -0400 Subject: libiberty: remove source files that either duplicate functionality already present in all modern libc implementations, or are incompatible with modern development environments, or both. --- libiberty/xatexit.c | 99 ----------------------------------------------------- 1 file changed, 99 deletions(-) delete mode 100644 libiberty/xatexit.c (limited to 'libiberty/xatexit.c') diff --git a/libiberty/xatexit.c b/libiberty/xatexit.c deleted file mode 100644 index 6fdad9ed8..000000000 --- a/libiberty/xatexit.c +++ /dev/null @@ -1,99 +0,0 @@ -/* - * Copyright (c) 1990 Regents of the University of California. - * All rights reserved. - * - * %sccs.include.redist.c% - */ - - -/* - -@deftypefun int xatexit (void (*@var{fn}) (void)) - -Behaves as the standard @code{atexit} function, but with no limit on -the number of registered functions. Returns 0 on success, or @minus{}1 on -failure. If you use @code{xatexit} to register functions, you must use -@code{xexit} to terminate your program. - -@end deftypefun - -*/ - -/* Adapted from newlib/libc/stdlib/{,at}exit.[ch]. - If you use xatexit, you must call xexit instead of exit. */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif -#include "ansidecl.h" -#include "libiberty.h" - -#include - -#include - -#if VMS -#include -#include -#else -/* For systems with larger pointers than ints, this must be declared. */ -PTR malloc (size_t); -#endif - -static void xatexit_cleanup (void); - -/* Pointer to function run by xexit. */ -extern void (*_xexit_cleanup) (void); - -#define XATEXIT_SIZE 32 - -struct xatexit { - struct xatexit *next; /* next in list */ - int ind; /* next index in this table */ - void (*fns[XATEXIT_SIZE]) (void); /* the table itself */ -}; - -/* Allocate one struct statically to guarantee that we can register - at least a few handlers. */ -static struct xatexit xatexit_first; - -/* Points to head of LIFO stack. */ -static struct xatexit *xatexit_head = &xatexit_first; - -/* Register function FN to be run by xexit. - Return 0 if successful, -1 if not. */ - -int -xatexit (void (*fn) (void)) -{ - register struct xatexit *p; - - /* Tell xexit to call xatexit_cleanup. */ - if (!_xexit_cleanup) - _xexit_cleanup = xatexit_cleanup; - - p = xatexit_head; - if (p->ind >= XATEXIT_SIZE) - { - if ((p = (struct xatexit *) malloc (sizeof *p)) == NULL) - return -1; - p->ind = 0; - p->next = xatexit_head; - xatexit_head = p; - } - p->fns[p->ind++] = fn; - return 0; -} - -/* Call any cleanup functions. */ - -static void -xatexit_cleanup (void) -{ - register struct xatexit *p; - register int n; - - for (p = xatexit_head; p; p = p->next) - for (n = p->ind; --n >= 0;) - (*p->fns[n]) (); -} -- cgit v1.2.3