Subject: Re: Simplify redefinition of 'abort'.

From: Eli Zaretskii <[email-masked]>
Date: Fri, 31 Aug 2012 17:29:02 +0300

> Date: Fri, 31 Aug 2012 05:53:14 -0700
> From: Paul Eggert <[email-masked]>
> CC: [email-masked], [email-masked]
> 
> Due to the change, POSIX platforms define a function
> emacs_abort rather than replacing the system 'abort'.

But this is not equivalent to the old code: with your changes, only
those calls to 'abort' that originate within Emacs sources will wind
up at 'emacs_abort'.  E.g., if a function from one of the libraries
linked into Emacs, like the image libraries, calls 'abort', that will
bypass our function.  Why is it a good idea to lose this
functionality?

And if we do want to lose this, why not simply replace all the calls
to 'abort' with calls to 'emacs_abort'?  Isn't that cleaner?

> To keep in sync with that, the MS-Windows part of the patch
> renames w32_abort to emacs_abort.

I don't see this part in your patches.  Where is it?  Without this, I
cannot see how this will possibly work.

> Also, this redefinition of 'abort' provides another
> reason why conf_post.h must include <stdlib.h>, which makes
> its comment about 'environ' confusing.  To help remove this
> confusion I modified nt/inc/unistd.h to include <stdlib.h>;

Please don't do that.  A standard header should not include another
standard header; I don't want our private emulations violate this
rule, to avoid conflicts.  Surely, there are better and more
straight-forward ways of dealing with outdated comments.