OSDN Git Service

Throughout, remove "include <errno.h>" from files which already include
authorcgf <cgf>
Mon, 16 Jun 2003 03:24:09 +0000 (03:24 +0000)
committercgf <cgf>
Mon, 16 Jun 2003 03:24:09 +0000 (03:24 +0000)
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.

83 files changed:
winsup/cygserver/client.cc
winsup/cygserver/cygserver.cc
winsup/cygserver/process.cc
winsup/cygserver/transport_pipes.cc
winsup/cygwin/ChangeLog
winsup/cygwin/cygerrno.h
winsup/cygwin/cygheap.cc
winsup/cygwin/cygserver.cc
winsup/cygwin/cygserver_client.cc
winsup/cygwin/cygserver_process.cc
winsup/cygwin/cygserver_transport_pipes.cc
winsup/cygwin/cygthread.cc
winsup/cygwin/cygwin.din
winsup/cygwin/dcrt0.cc
winsup/cygwin/debug.cc
winsup/cygwin/dir.cc
winsup/cygwin/dll_init.cc
winsup/cygwin/dtable.cc
winsup/cygwin/environ.cc
winsup/cygwin/errno.cc
winsup/cygwin/exceptions.cc
winsup/cygwin/exec.cc
winsup/cygwin/external.cc
winsup/cygwin/fcntl.cc
winsup/cygwin/fhandler.cc
winsup/cygwin/fhandler_clipboard.cc
winsup/cygwin/fhandler_console.cc
winsup/cygwin/fhandler_disk_file.cc
winsup/cygwin/fhandler_dsp.cc
winsup/cygwin/fhandler_floppy.cc
winsup/cygwin/fhandler_mem.cc
winsup/cygwin/fhandler_proc.cc
winsup/cygwin/fhandler_process.cc
winsup/cygwin/fhandler_random.cc
winsup/cygwin/fhandler_raw.cc
winsup/cygwin/fhandler_registry.cc
winsup/cygwin/fhandler_serial.cc
winsup/cygwin/fhandler_socket.cc
winsup/cygwin/fhandler_tape.cc
winsup/cygwin/fhandler_termios.cc
winsup/cygwin/fhandler_tty.cc
winsup/cygwin/fhandler_virtual.cc
winsup/cygwin/fhandler_windows.cc
winsup/cygwin/fork.cc
winsup/cygwin/grp.cc
winsup/cygwin/heap.cc
winsup/cygwin/include/cygwin/config.h
winsup/cygwin/include/cygwin/version.h
winsup/cygwin/ioctl.cc
winsup/cygwin/malloc_wrapper.cc
winsup/cygwin/mmap.cc
winsup/cygwin/msg.cc
winsup/cygwin/net.cc
winsup/cygwin/passwd.cc
winsup/cygwin/path.cc
winsup/cygwin/pinfo.cc
winsup/cygwin/pipe.cc
winsup/cygwin/poll.cc
winsup/cygwin/resource.cc
winsup/cygwin/scandir.cc
winsup/cygwin/sched.cc
winsup/cygwin/sec_acl.cc
winsup/cygwin/sec_helper.cc
winsup/cygwin/security.cc
winsup/cygwin/select.cc
winsup/cygwin/sem.cc
winsup/cygwin/shared.cc
winsup/cygwin/shm.cc
winsup/cygwin/signal.cc
winsup/cygwin/sigproc.cc
winsup/cygwin/spawn.cc
winsup/cygwin/strace.cc
winsup/cygwin/syscalls.cc
winsup/cygwin/sysconf.cc
winsup/cygwin/syslog.cc
winsup/cygwin/termios.cc
winsup/cygwin/thread.cc
winsup/cygwin/thread.h
winsup/cygwin/times.cc
winsup/cygwin/tty.cc
winsup/cygwin/uinfo.cc
winsup/cygwin/wait.cc
winsup/cygwin/window.cc

index 138c9dd..f668318 100644 (file)
@@ -18,7 +18,6 @@ details. */
 #endif
 
 #include <assert.h>
-#include <errno.h>
 #include <stdio.h>
 #include <unistd.h>
 
index 0c07403..137730f 100644 (file)
@@ -16,7 +16,6 @@ details. */
 
 #include <assert.h>
 #include <ctype.h>
-#include <errno.h>
 #include <getopt.h>
 #include <signal.h>
 #include <stdio.h>
index 7118bbc..2cc7be1 100644 (file)
@@ -15,7 +15,6 @@ details. */
 #include <sys/types.h>
 
 #include <assert.h>
-#include <errno.h>
 #include <stdlib.h>
 
 #include "cygerrno.h"
index 495d804..6d80def 100644 (file)
@@ -20,7 +20,6 @@ details. */
 #include <sys/types.h>
 
 #include <assert.h>
-#include <errno.h>
 #include <netdb.h>
 #include <pthread.h>
 #include <unistd.h>
index 94c5b06..441da04 100644 (file)
@@ -1,3 +1,27 @@
+2003-06-15  Christopher Faylor  <cgf@redhat.com>
+
+       Throughout, remove "include <errno.h>" from files which already include
+       cygerrno.h.
+
+2003-06-15  Thomas Pfaff  <tpfaff@gmx.net>
+
+       * 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.
+
 2003-06-12  Thomas Pfaff  <tpfaff@gmx.net>
 
        * thread.cc (pthread_attr_init): Revert change from 2003-06-11
index 0c1513f..fb00f3f 100644 (file)
@@ -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
index 1b4096a..aa213cc 100644 (file)
@@ -10,7 +10,6 @@
 
 #include "winsup.h"
 #include <string.h>
-#include <errno.h>
 #include <assert.h>
 #include <stdlib.h>
 #include "security.h"
index 0c07403..137730f 100755 (executable)
@@ -16,7 +16,6 @@ details. */
 
 #include <assert.h>
 #include <ctype.h>
-#include <errno.h>
 #include <getopt.h>
 #include <signal.h>
 #include <stdio.h>
index 138c9dd..f668318 100755 (executable)
@@ -18,7 +18,6 @@ details. */
 #endif
 
 #include <assert.h>
-#include <errno.h>
 #include <stdio.h>
 #include <unistd.h>
 
index 7118bbc..2cc7be1 100755 (executable)
@@ -15,7 +15,6 @@ details. */
 #include <sys/types.h>
 
 #include <assert.h>
-#include <errno.h>
 #include <stdlib.h>
 
 #include "cygerrno.h"
index 495d804..6d80def 100755 (executable)
@@ -20,7 +20,6 @@ details. */
 #include <sys/types.h>
 
 #include <assert.h>
-#include <errno.h>
 #include <netdb.h>
 #include <pthread.h>
 #include <unistd.h>
index 2d45f29..c4c871c 100644 (file)
@@ -9,7 +9,6 @@ details. */
 #include "winsup.h"
 #include <windows.h>
 #include <stdlib.h>
-#include <errno.h>
 #include "exceptions.h"
 #include "security.h"
 #include "cygthread.h"
index 4deddb8..336d469 100644 (file)
@@ -26,6 +26,7 @@ __eprintf
 __errno
 __fpclassifyd
 __fpclassifyf
+__getreent
 __infinity
 __main
 __signbitd
index a11b342..34141c5 100644 (file)
@@ -17,7 +17,6 @@ details. */
 #include <limits.h>
 #include <wingdi.h>
 #include <winuser.h>
-#include <errno.h>
 #include "sigproc.h"
 #include "pinfo.h"
 #include "cygerrno.h"
index 3513a67..9628784 100644 (file)
@@ -15,7 +15,6 @@ details. */
 #include "security.h"
 #include "cygerrno.h"
 #ifdef DEBUGGING
-#include <errno.h>
 #include "fhandler.h"
 #include "path.h"
 #include "dtable.h"
@@ -222,6 +221,6 @@ int __stdcall
 __set_errno (const char *func, int ln, int val)
 {
   debug_printf ("%s:%d val %d", func, ln, val);
-  return _impure_ptr->_errno = val;
+  return errno = val;
 }
 #endif /*DEBUGGING*/
index 9c50bda..d5b8dc5 100644 (file)
@@ -12,7 +12,6 @@ details. */
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/stat.h>
-#include <errno.h>
 
 #define _COMPILING_NEWLIB
 #include <dirent.h>
index 15d50b2..c5932f4 100644 (file)
@@ -8,7 +8,6 @@ details. */
 
 #include "winsup.h"
 #include <stdlib.h>
-#include <errno.h>
 #include "cygerrno.h"
 #include "perprocess.h"
 #include "dll_init.h"
index 3b114a7..315505b 100644 (file)
@@ -11,7 +11,6 @@ details. */
 #define  __INSIDE_CYGWIN_NET__
 
 #include "winsup.h"
-#include <errno.h>
 #include <sys/socket.h>
 #include <stdlib.h>
 #include <stdio.h>
index e4bbabc..d476435 100644 (file)
@@ -8,7 +8,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <stdlib.h>
 #include <stddef.h>
 #include <ctype.h>
index 53aae6d..127eff9 100644 (file)
@@ -12,9 +12,7 @@ details. */
 #define sys_nerr FOOsys_nerr
 #define _sys_errlist FOO_sys_errlist
 #include "winsup.h"
-#define _REENT_ONLY
 #include <stdio.h>
-#include <errno.h>
 #include "cygerrno.h"
 #include "thread.h"
 #undef _sys_nerr
index a602041..3c8bf39 100644 (file)
@@ -10,7 +10,6 @@ details. */
 
 #include "winsup.h"
 #include <imagehlp.h>
-#include <errno.h>
 #include <stdlib.h>
 
 #include "exceptions.h"
index f0288dc..6c52533 100644 (file)
@@ -12,7 +12,6 @@ details. */
 #include "winsup.h"
 #include <unistd.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <process.h>
 #include "perprocess.h"
 #include "security.h"
index 3accc63..0bca0e5 100644 (file)
@@ -11,7 +11,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include "security.h"
 #include "fhandler.h"
 #include "sigproc.h"
index f67f43f..d7055f4 100644 (file)
@@ -10,7 +10,6 @@ details. */
 
 #include "winsup.h"
 #include <stdarg.h>
-#include <errno.h>
 #include <unistd.h>
 #include "security.h"
 #include "fhandler.h"
index 8142cfa..69fd48a 100644 (file)
@@ -9,7 +9,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/cygwin.h>
index 616adf4..23d97d8 100644 (file)
@@ -13,7 +13,6 @@ details. */
 #include "winsup.h"
 #include <stdio.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <unistd.h>
 #include <windows.h>
 #include <wingdi.h>
index 26fa64d..0d70152 100644 (file)
@@ -12,7 +12,6 @@ details. */
 #include <sys/termios.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <unistd.h>
 #include <wingdi.h>
 #include <winuser.h>
index c9570b8..48778f4 100644 (file)
@@ -9,7 +9,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/cygwin.h>
index 2ca44e3..cda7ebe 100644 (file)
@@ -12,7 +12,6 @@ details. */
 
 #include "winsup.h"
 #include <stdio.h>
-#include <errno.h>
 #include <windows.h>
 #include <sys/soundcard.h>
 #include <mmsystem.h>
index 83d41ea..be9798c 100644 (file)
@@ -11,7 +11,6 @@ details. */
 
 #include "winsup.h"
 #include <sys/termios.h>
-#include <errno.h>
 #include <unistd.h>
 #include <winioctl.h>
 #include <asm/socket.h>
index ea6fb43..c57ff49 100644 (file)
@@ -9,7 +9,6 @@
    details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <sys/mman.h>
 #include <ntdef.h>
index f9b866d..286a8a2 100644 (file)
@@ -11,7 +11,6 @@ details. */
 #define _WIN32_WINNT 0x0501
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/cygwin.h>
index f8631b4..0d26d2c 100644 (file)
@@ -9,7 +9,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/cygwin.h>
index 5069316..e7c694f 100644 (file)
@@ -11,7 +11,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <limits.h>
 #include "cygerrno.h"
 #include "security.h"
index 45ce414..ebd8ef0 100644 (file)
@@ -10,7 +10,6 @@
 
 #include "winsup.h"
 #include <sys/termios.h>
-#include <errno.h>
 #include <unistd.h>
 
 #include <cygwin/rdevio.h>
index 7f2cc5f..85ea02f 100644 (file)
@@ -11,7 +11,6 @@ details. */
 /* FIXME: Access permissions are ignored at the moment.  */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/cygwin.h>
index 3c99b4a..3bc92ed 100644 (file)
@@ -9,7 +9,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include "cygerrno.h"
index 3dd8d67..18cc018 100644 (file)
@@ -13,7 +13,6 @@
 #define  __INSIDE_CYGWIN_NET__
 
 #include "winsup.h"
-#include <errno.h>
 #include <sys/socket.h>
 #include <sys/un.h>
 #include <sys/uio.h>
index c37aefc..d6aceff 100644 (file)
@@ -11,7 +11,6 @@ details. */
 
 #include "winsup.h"
 #include <sys/termios.h>
-#include <errno.h>
 #include <unistd.h>
 #include <sys/mtio.h>
 #include "cygerrno.h"
index f284811..49dbb33 100644 (file)
@@ -12,7 +12,6 @@ details. */
 #include <sys/termios.h>
 #include <stdlib.h>
 #include <unistd.h>
-#include <errno.h>
 #include <ctype.h>
 #include "cygerrno.h"
 #include "security.h"
index 6409090..cc60235 100644 (file)
@@ -14,7 +14,6 @@ details. */
 #include <stdio.h>
 #include <unistd.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <ctype.h>
 #include <limits.h>
 #include "cygerrno.h"
index a29e7e4..b5ecb54 100644 (file)
@@ -9,7 +9,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <stdlib.h>
 #include <sys/cygwin.h>
index 9d3e07e..b989288 100644 (file)
@@ -12,7 +12,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <wingdi.h>
 #include <winuser.h>
 #include "cygerrno.h"
index 2435d95..184e566 100644 (file)
@@ -13,7 +13,6 @@ details. */
 #include <unistd.h>
 #include <stdlib.h>
 #include <stdarg.h>
-#include <errno.h>
 #include "security.h"
 #include "fhandler.h"
 #include "path.h"
index 73a2b89..19b7fe9 100644 (file)
@@ -16,7 +16,6 @@ details. */
 #include <wininet.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <errno.h>
 #include "pinfo.h"
 #include "security.h"
 #include "fhandler.h"
index fb1e37c..8e0a04e 100644 (file)
@@ -9,7 +9,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include "cygerrno.h"
 #include "sigproc.h"
 #include "pinfo.h"
index 77815a0..e3e09f0 100644 (file)
@@ -19,6 +19,7 @@ extern "C" {
 #endif
 #define _CYGWIN_CONFIG_H
 
+#define __DYNAMIC_REENT__
 #define __FILENAME_MAX__ (260 - 1 /* NUL */)
 #define _READ_WRITE_RETURN_TYPE _ssize_t
 #define __LARGE64_FILES 1
index 6caafea..13657a0 100644 (file)
@@ -207,12 +207,13 @@ details. */
            exported symbols like fopen64, which might confuse configure.
        86: Export ftok
        87: Export vsyslog
+       88: Export _getreent
      */
 
      /* Note that we forgot to bump the api for ualarm, strtoll, strtoull */
 
 #define CYGWIN_VERSION_API_MAJOR 0
-#define CYGWIN_VERSION_API_MINOR 87
+#define CYGWIN_VERSION_API_MINOR 88
 
      /* There is also a compatibity version number associated with the
        shared memory regions.  It is incremented when incompatible
index 9f219ec..0b11b28 100644 (file)
@@ -13,7 +13,6 @@ details. */
 
 #include "winsup.h"
 #include <sys/ioctl.h>
-#include <errno.h>
 #include "cygerrno.h"
 #include "security.h"
 #include "fhandler.h"
index 14db2fd..b2729fb 100644 (file)
@@ -18,7 +18,6 @@ details. */
 #include "fhandler.h"
 #include "path.h"
 #include "dtable.h"
-#include <errno.h>
 #include "cygerrno.h"
 #include "cygheap.h"
 #include "heap.h"
index e423156..1724680 100644 (file)
@@ -13,7 +13,6 @@ details. */
 #include <stdlib.h>
 #include <stddef.h>
 #include <sys/mman.h>
-#include <errno.h>
 #include "security.h"
 #include "fhandler.h"
 #include "path.h"
index c76fd8e..fecaa06 100644 (file)
@@ -15,7 +15,6 @@ details. */
 #include <sys/types.h>
 #include <cygwin/msg.h>
 
-#include <errno.h>
 
 #include "cygerrno.h"
 
index 7890c9b..c5a2a3e 100644 (file)
@@ -13,7 +13,6 @@ details. */
 #define  __INSIDE_CYGWIN_NET__
 
 #include "winsup.h"
-#include <errno.h>
 #include <ctype.h>
 #include <sys/socket.h>
 #include <sys/un.h>
index cdb73b0..2db275e 100644 (file)
@@ -12,7 +12,6 @@ details. */
 #include <stdlib.h>
 #include <pwd.h>
 #include <stdio.h>
-#include <errno.h>
 #include "cygerrno.h"
 #include "security.h"
 #include "fhandler.h"
index 3973a32..3f6c1e7 100644 (file)
@@ -53,7 +53,6 @@ details. */
 #include <sys/mount.h>
 #include <mntent.h>
 #include <unistd.h>
-#include <errno.h>
 #include <ctype.h>
 #include <winioctl.h>
 #include <wingdi.h>
index 74e14f3..6f1c3e9 100644 (file)
@@ -11,7 +11,6 @@ details. */
 #include "winsup.h"
 #include <stdlib.h>
 #include <time.h>
-#include <errno.h>
 #include <limits.h>
 #include "security.h"
 #include "fhandler.h"
index df8fbaf..45bb984 100644 (file)
@@ -12,7 +12,6 @@ details. */
 
 #include "winsup.h"
 #include <unistd.h>
-#include <errno.h>
 #include <sys/socket.h>
 #include "cygerrno.h"
 #include "security.h"
index 44d00b9..3c39f06 100644 (file)
@@ -15,7 +15,6 @@
 #include <sys/time.h>
 #include <sys/poll.h>
 #include <sys/socket.h>
-#include <errno.h>
 #include <stdlib.h>
 #define USE_SYS_TYPES_FD_SET
 #include <winsock2.h>
index 01e065b..e87702b 100644 (file)
@@ -13,7 +13,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <limits.h>
 #include "cygerrno.h"
index 52a36ea..a2f682a 100644 (file)
@@ -13,7 +13,6 @@
 #include "winsup.h"
 #include <dirent.h>
 #include <stdlib.h>
-#include <errno.h>
 #include "cygerrno.h"
 
 extern "C" int
index 99c7391..b29d7a4 100644 (file)
@@ -16,7 +16,6 @@
 
 #include "winsup.h"
 #include <limits.h>
-#include <errno.h>
 #include "cygerrno.h"
 #include <assert.h>
 #include <stdlib.h>
index c8f3266..fbc4989 100644 (file)
@@ -15,7 +15,6 @@ details. */
 #include <pwd.h>
 #include <unistd.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <limits.h>
 #include <sys/types.h>
 #include <sys/stat.h>
index c2e8c5e..c8c627a 100644 (file)
@@ -15,7 +15,6 @@ details. */
 #include <pwd.h>
 #include <unistd.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <limits.h>
 #include <sys/types.h>
 #include <sys/stat.h>
index 8bfb7d5..7bae8f4 100644 (file)
@@ -16,7 +16,6 @@ details. */
 #include <pwd.h>
 #include <unistd.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <limits.h>
 #include <sys/types.h>
 #include <sys/stat.h>
index 100d6f2..545cece 100644 (file)
@@ -20,7 +20,6 @@ details. */
 #define  __INSIDE_CYGWIN_NET__
 
 #include "winsup.h"
-#include <errno.h>
 #include <sys/socket.h>
 #include <stdlib.h>
 #include <sys/time.h>
index 63aba8e..97d91a3 100644 (file)
@@ -15,7 +15,6 @@ details. */
 #include <sys/types.h>
 #include <cygwin/sem.h>
 
-#include <errno.h>
 
 #include "cygerrno.h"
 
index 30c4582..8bcf2b7 100644 (file)
@@ -14,7 +14,6 @@ details. */
 #include <stdlib.h>
 #include <grp.h>
 #include <pwd.h>
-#include <errno.h>
 #include "pinfo.h"
 #include "security.h"
 #include "fhandler.h"
index 618cac1..fa0375d 100644 (file)
@@ -16,7 +16,6 @@ details. */
 #include <sys/types.h>
 
 #include <assert.h>
-#include <errno.h>
 #include <stdio.h>
 #include <unistd.h>
 
index 547a128..0530fcf 100644 (file)
@@ -12,7 +12,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <stdlib.h>
 #include "cygerrno.h"
 #include <sys/cygwin.h>
@@ -297,8 +296,8 @@ abort (void)
      be flushed.
      However this is the way FreeBSD does it, and it is much easier to
      do things this way, so... */
-  if (_reent_clib ()->__cleanup)
-    _reent_clib ()->__cleanup (_reent_clib ());
+  if (_REENT->__cleanup)
+    _REENT->__cleanup (_REENT);
 
   /* Ensure that SIGABRT can be caught regardless of blockage. */
   sigset_t sig_mask;
index 5d3b2e2..34492a9 100644 (file)
@@ -14,7 +14,6 @@ details. */
 #include <stdlib.h>
 #include <time.h>
 #include <sys/wait.h>
-#include <errno.h>
 #include <stdlib.h>
 #include <sys/cygwin.h>
 #include <assert.h>
index e7b04ad..eeee13c 100644 (file)
@@ -14,7 +14,6 @@ details. */
 #include <unistd.h>
 #include <process.h>
 #include <sys/wait.h>
-#include <errno.h>
 #include <limits.h>
 #include <wingdi.h>
 #include <winuser.h>
index 38cf259..f88cdf0 100644 (file)
@@ -14,7 +14,6 @@ details. */
 #include <wingdi.h>
 #include <winuser.h>
 #include <ctype.h>
-#include <errno.h>
 #include "pinfo.h"
 #include "perprocess.h"
 #include "cygwin_version.h"
index 8922f94..ad6a66f 100644 (file)
@@ -29,7 +29,6 @@ details. */
 #include <process.h>
 #include <utmp.h>
 #include <sys/uio.h>
-#include <errno.h>
 #include <limits.h>
 #include <unistd.h>
 #include <setjmp.h>
index cc5fc24..678d978 100644 (file)
@@ -10,7 +10,6 @@ details. */
 
 #include "winsup.h"
 #include <unistd.h>
-#include <errno.h>
 #include <time.h>
 #include <limits.h>
 #include <ntdef.h>
index b87ff66..a21a8cb 100644 (file)
@@ -14,7 +14,6 @@ details. */
 #include <syslog.h>
 #include <stdarg.h>
 #include <unistd.h>
-#include <errno.h>
 #include "security.h"
 #include "fhandler.h"
 #include "path.h"
index c7dd20d..60ef964 100644 (file)
@@ -12,7 +12,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <signal.h>
 #include <stdlib.h>
 #include "cygerrno.h"
index ac7d4b8..60e94e7 100644 (file)
@@ -45,16 +45,21 @@ details. */
 
 extern int threadsafe;
 
-struct _reent *
-_reent_clib ()
+extern "C" struct _reent *
+__getreent ()
 {
   struct __reent_t *_r =
     (struct __reent_t *) MT_INTERFACE->reent_key.get ();
 
-#ifdef _CYG_THREAD_FAILSAFE
   if (_r == 0)
-    system_printf ("local thread storage not inited");
+    {
+#ifdef _CYG_THREAD_FAILSAFE
+      system_printf ("local thread storage not inited");
 #endif
+      /* Return _impure_ptr as long as MTinterface is not initialized */
+      return _impure_ptr;
+    }
+
   return _r->_clib;
 }
 
@@ -64,10 +69,14 @@ _reent_winsup ()
   struct __reent_t *_r =
     (struct __reent_t *) MT_INTERFACE->reent_key.get ();
 
-#ifdef _CYG_THREAD_FAILSAFE
   if (_r == 0)
-    system_printf ("local thread storage not inited");
+    {
+#ifdef _CYG_THREAD_FAILSAFE
+      system_printf ("local thread storage not inited");
 #endif
+      return NULL;
+    }
+
   return _r->_winsup;
 }
 
@@ -212,6 +221,20 @@ MTinterface::fixup_after_fork (void)
 {
   pthread_key::fixup_after_fork ();
 
+#ifndef __SIGNALS_ARE_MULTITHREADED__
+  /* As long as the signal handling not multithreaded
+     switch reents storage back to _impure_ptr for the mainthread
+     to support fork from threads other than the mainthread */
+  struct _reent *reent_old = __getreent ();
+
+  if (reent_old && _impure_ptr != reent_old)
+    *_impure_ptr = *reent_old;
+  reents._clib = _impure_ptr;
+  reents._winsup = &winsup_reent;
+  winsup_reent._process_logmask = LOG_UPTO (LOG_DEBUG);
+  reent_key.set (&reents);
+#endif
+
   threadcount = 1;
   pthread::init_mainthread ();
 
index 55d9415..e89640e 100644 (file)
@@ -110,7 +110,6 @@ struct __reent_t
   struct _winsup_t *_winsup;
 };
 
-_reent *_reent_clib ();
 _winsup_t *_reent_winsup ();
 void SetResourceLock (int, int, const char *) __attribute__ ((regparm (3)));
 void ReleaseResourceLock (int, int, const char *)
index d56dbab..e2524b1 100644 (file)
@@ -15,7 +15,6 @@ details. */
 #include <utime.h>
 #include <stdio.h>
 #include <stdlib.h>
-#include <errno.h>
 #include "cygerrno.h"
 #include "security.h"
 #include "fhandler.h"
index ef3252b..23e6f62 100644 (file)
@@ -9,7 +9,6 @@ Cygwin license.  Please consult the file "CYGWIN_LICENSE" for
 details. */
 
 #include "winsup.h"
-#include <errno.h>
 #include <unistd.h>
 #include <utmp.h>
 #include <wingdi.h>
index 7c76722..4e688a3 100644 (file)
@@ -17,7 +17,6 @@ details. */
 #include <limits.h>
 #include <stdlib.h>
 #include <lm.h>
-#include <errno.h>
 #include <sys/cygwin.h>
 #include "pinfo.h"
 #include "security.h"
index 3b6427a..fd78278 100644 (file)
@@ -11,7 +11,6 @@ details. */
 #include "winsup.h"
 #include <sys/wait.h>
 #include <stdlib.h>
-#include <errno.h>
 #include "cygerrno.h"
 #include "sigproc.h"
 #include "perthread.h"
index bdcb450..ea9ed6e 100644 (file)
@@ -13,7 +13,6 @@ details. */
 #include "winsup.h"
 #include <sys/time.h>
 #include <stdlib.h>
-#include <errno.h>
 #include <signal.h>
 #include <limits.h>
 #include <wingdi.h>