Throughout, remove "include <errno.h>" from files which already include
cygerrno.h. * include/cygwin/config.h (__DYNAMIC_REENT__): Define. * include/cygwin/version.h: Bump API minor version. * cygwin.din: Export __getreent * cygerrno.h: Include errno.h. Fix places where _impure_ptr is used directly to store the errno value. * debug.cc (__set_errno): Ditto. * errno.cc: Remove _RRENT_ONLY define to get errno.cc compiled. * signal.cc: Rename _reent_clib to _REENT throughout. * thread.h (reent_clib): Remove prototype. * thread.cc (reent_clib): Rename reent_clib to __getreent. Return _impure_ptr until MTinterface is initialized. (reent_winsup): Fix a possible SEGV when _r == NULL. Return NULL instead. * MTinterface::fixup_after_fork: Switch reent back to _impure_ptr to keep signal handling running when fork is called from a thread other than the mainthread.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/* cygerrno.h: main Cygwin header file.
|
||||
|
||||
Copyright 2000 Red Hat, Inc.
|
||||
Copyright 2000, 2001, 2002, 2003 Red Hat, Inc.
|
||||
|
||||
This file is part of Cygwin.
|
||||
|
||||
@@ -8,6 +8,8 @@ This software is a copyrighted work licensed under the terms of the
|
||||
Cygwin license. Please consult the file "CYGWIN_LICENSE" for
|
||||
details. */
|
||||
|
||||
#include <errno.h>
|
||||
|
||||
void __stdcall seterrno_from_win_error (const char *file, int line, DWORD code) __attribute__ ((regparm(3)));
|
||||
void __stdcall seterrno (const char *, int line) __attribute__ ((regparm(2)));
|
||||
int __stdcall geterrno_from_win_error (DWORD code, int deferrno) __attribute__ ((regparm(2)));
|
||||
@@ -16,12 +18,12 @@ int __stdcall geterrno_from_win_error (DWORD code, int deferrno) __attribute__ (
|
||||
#define __seterrno_from_win_error(val) seterrno_from_win_error (__FILE__, __LINE__, val)
|
||||
|
||||
#ifndef DEBUGGING
|
||||
#define set_errno(val) (_impure_ptr->_errno = (val))
|
||||
#define set_errno(val) (errno = (val))
|
||||
#else
|
||||
int __stdcall __set_errno (const char *ln, int ln, int val) __attribute ((regparm(3)));
|
||||
#define set_errno(val) __set_errno (__PRETTY_FUNCTION__, __LINE__, (val))
|
||||
#endif
|
||||
#define get_errno() (_impure_ptr->_errno)
|
||||
#define get_errno() (errno)
|
||||
extern "C" void __stdcall set_sig_errno (int e);
|
||||
|
||||
class save_errno
|
||||
|
Reference in New Issue
Block a user