Fix bug #12805 with compilation error in the cygw32 build.

src/makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
 src/w32fns.c Include unistd.h, to avoid compiler warnings on Cygwin.
 (emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
 file descriptor 2 for standard error.
This commit is contained in:
Eli Zaretskii 2012-11-05 18:30:45 +02:00
parent 4f3f021d65
commit c8e3a9c3db
3 changed files with 18 additions and 1 deletions

View file

@ -1,3 +1,11 @@
2012-11-05 Eli Zaretskii <eliz@gnu.org>
* makefile.w32-in ($(BLD)/w32fns.$(O)): Depend on $(NT_INC)/unistd.h.
* w32fns.c Include unistd.h, to avoid compiler warnings on Cygwin.
(emacs_abort) [CYGWIN]: Don't call _open_osfhandle; instead, use
file descriptor 2 for standard error.
2012-11-05 Chong Yidong <cyd@gnu.org>
* process.c (wait_reading_process_output): Revert previous change.

View file

@ -1564,6 +1564,7 @@ $(BLD)/w32fns.$(O) : \
$(SRC)/w32.h \
$(SRC)/w32common.h \
$(SRC)/w32heap.h \
$(NT_INC)/unistd.h \
$(BUFFER_H) \
$(CCL_H) \
$(CHARACTER_H) \

View file

@ -27,6 +27,7 @@ along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. */
#include <errno.h>
#include <math.h>
#include <fcntl.h>
#include <unistd.h>
#include "lisp.h"
#include "w32term.h"
@ -7749,12 +7750,19 @@ emacs_abort (void)
if (i)
{
#ifdef CYGWIN
int stderr_fd = 2;
#else
HANDLE errout = GetStdHandle (STD_ERROR_HANDLE);
int stderr_fd = -1, errfile_fd = -1;
int stderr_fd = -1;
#endif
int errfile_fd = -1;
int j;
#ifndef CYGWIN
if (errout && errout != INVALID_HANDLE_VALUE)
stderr_fd = _open_osfhandle ((intptr_t)errout, O_APPEND | O_BINARY);
#endif
if (stderr_fd >= 0)
write (stderr_fd, "\r\nBacktrace:\r\n", 14);
errfile_fd = _open ("emacs_backtrace.txt", O_RDWR | O_CREAT | O_BINARY, S_IREAD | S_IWRITE);