fclose (NULL);
__fcloseall ();
abort (void){  struct sigaction act;  sigset_t sigs;  /* First acquire the lock.  */  __libc_lock_lock (lock);  /* Now it's for sure we are alone.  But recursive calls are possible.  */  /* Unlock SIGABRT.  */  if (stage == 0)    {      ++stage;      if (__sigemptyset (&sigs) == 0 &&	  __sigaddset (&sigs, SIGABRT) == 0)	__sigprocmask (SIG_UNBLOCK, &sigs, (sigset_t *) NULL);    }  /* Flush all streams.  We cannot close them now because the user     might have registered a handler for SIGABRT.  */  if (stage == 1)    {      ++stage;      fflush (NULL);    }  /* Send signal which possibly calls a user handler.  */  if (stage == 2)    {      ++stage;      raise (SIGABRT);    }  /* There was a handler installed.  Now remove it.  */  if (stage == 3)    {      ++stage;      memset (&act, '\0', sizeof (struct sigaction));      act.sa_handler = SIG_DFL;      __sigfillset (&act.sa_mask);      act.sa_flags = 0;      __sigaction (SIGABRT, &act, NULL);    }  /* Now close the streams which also flushes the output the user     defined handler might has produced.  */  if (stage == 4)    {      ++stage;      fclose (NULL);    }  /* Try again.  */  if (stage == 5)    {      ++stage;      raise (SIGABRT);    }  /* Now try to abort using the system specific command.  */  if (stage == 6)    {      ++stage;      ABORT_INSTRUCTION;    }  /* If we can't signal ourselves and the abort instruction failed, exit.  */  if (stage == 7)    {      ++stage;      _exit (127);    }  /* If even this fails try to use the provided instruction to crash     or otherwise make sure we never return.  */  while (1)    /* Try for ever and ever.  */    ABORT_INSTRUCTION;}