* cygwin.sc: Revert to previous NO_COPY behavior.
* winsup.h: Ditto. * sigproc.cc: Ditto. * autoload.cc: Ditto.
This commit is contained in:
		| @@ -1,3 +1,10 @@ | ||||
| Fri Aug 31 13:58:51 2001  Christopher Faylor <cgf@cygnus.com> | ||||
|  | ||||
| 	* cygwin.sc: Revert to previous NO_COPY behavior. | ||||
| 	* winsup.h: Ditto. | ||||
| 	* sigproc.cc: Ditto. | ||||
| 	* autoload.cc: Ditto. | ||||
|  | ||||
| Fri Aug 31 00:56:26 2001  Christopher Faylor <cgf@cygnus.com> | ||||
|  | ||||
| 	* cygwin.sc: New file -- linker script for building cygwin DLL. | ||||
| @@ -27,8 +34,6 @@ Fri Aug 31 00:56:26 2001  Christopher Faylor <cgf@cygnus.com> | ||||
| 	(subproc_init): Initialize proc_loop_wait here, rather than via | ||||
| 	initialization. | ||||
|  | ||||
|  | ||||
|  | ||||
| Thu Aug 30 10:19:00 2001  Christopher Faylor <cgf@cygnus.com> | ||||
|  | ||||
| 	* select.cc (select_read): Add setting read_ready flag. | ||||
| @@ -244,12 +249,12 @@ Tue Aug  7 16:24:00 2001  Corinna Vinschen <corinna@vinschen.de> | ||||
|  | ||||
| Tue Aug  7 10:54:00 2001  Corinna Vinschen <corinna@vinschen.de> | ||||
|  | ||||
|         * grp.cc (class grp_check): New class. Make `group_state' | ||||
|         a member of class grp_check. | ||||
|         (read_etc_group): Free former allocated memory on reread. | ||||
|         * passwd.cc (class pwd_check): New class Make `passwd_state' | ||||
|         a member of class pwd_check. | ||||
|         (read_etc_passwd): Free former allocated memory on reread. | ||||
| 	* grp.cc (class grp_check): New class. Make `group_state' | ||||
| 	a member of class grp_check. | ||||
| 	(read_etc_group): Free former allocated memory on reread. | ||||
| 	* passwd.cc (class pwd_check): New class Make `passwd_state' | ||||
| 	a member of class pwd_check. | ||||
| 	(read_etc_passwd): Free former allocated memory on reread. | ||||
|  | ||||
| Tue Aug  7 01:13:58 2001  Christopher Faylor <cgf@cygnus.com> | ||||
|  | ||||
|   | ||||
| @@ -236,7 +236,7 @@ std_dll_init () | ||||
|  | ||||
| /* Initialization function for winsock stuff. */ | ||||
| static long long wsock_init () __asm__ ("wsock_init") __attribute__ ((unused, regparm(1))); | ||||
| bool NO_COPY wsock_started; | ||||
| bool NO_COPY wsock_started = 0; | ||||
| static long long | ||||
| wsock_init () | ||||
| { | ||||
|   | ||||
| @@ -32,7 +32,7 @@ SECTIONS | ||||
|     *(.data2) | ||||
|     *(SORT(.data$*)) | ||||
|     __data_end__ = . ; | ||||
|     *(COMMON) | ||||
|     *(.data_cygwin_nocopy) | ||||
|   } | ||||
|   .rdata BLOCK(__section_alignment__) : | ||||
|   { | ||||
| @@ -48,6 +48,7 @@ SECTIONS | ||||
|   { | ||||
|     __bss_start__ = . ; | ||||
|     *(.bss) | ||||
|     *(COMMON) | ||||
|     __bss_end__ = . ; | ||||
|   } | ||||
|   .edata BLOCK(__section_alignment__) : | ||||
|   | ||||
| @@ -74,46 +74,46 @@ HANDLE NO_COPY signal_arrived;		// Event signaled when a signal has | ||||
|  | ||||
| #define Static static NO_COPY | ||||
|  | ||||
| Static DWORD proc_loop_wait;		// Wait for subprocesses to exit | ||||
| Static DWORD sig_loop_wait;		// Wait for signals to arrive | ||||
| Static DWORD proc_loop_wait = 1000;	// Wait for subprocesses to exit | ||||
| Static DWORD sig_loop_wait = INFINITE;	// Wait for signals to arrive | ||||
|  | ||||
| Static HANDLE sigcatch_nonmain;		// The semaphore signaled when | ||||
| Static HANDLE sigcatch_nonmain = NULL;	// The semaphore signaled when | ||||
| 					//  signals are available for | ||||
| 					//  processing from non-main thread | ||||
| Static HANDLE sigcatch_main;		// Signalled when main thread sends a | ||||
| Static HANDLE sigcatch_main = NULL;	// Signalled when main thread sends a | ||||
| 					//  signal | ||||
| Static HANDLE sigcatch_nosync;		// Signal wait_sig to scan sigtodo | ||||
| Static HANDLE sigcatch_nosync = NULL;	// Signal wait_sig to scan sigtodo | ||||
| 					//  but not to bother with any | ||||
| 					//  synchronization | ||||
| Static HANDLE sigcomplete_main;		// Event signaled when a signal has | ||||
| Static HANDLE sigcomplete_main = NULL;	// Event signaled when a signal has | ||||
| 					//  finished processing for the main | ||||
| 					//  thread | ||||
| Static HANDLE sigcomplete_nonmain;	// Semaphore raised for non-main | ||||
| Static HANDLE sigcomplete_nonmain = NULL;// Semaphore raised for non-main | ||||
| 					//  threads when a signal has finished | ||||
| 					//  processing | ||||
| Static HANDLE hwait_sig;		// Handle of wait_sig thread | ||||
| Static HANDLE hwait_subproc;		// Handle of sig_subproc thread | ||||
| Static HANDLE hwait_sig = NULL;		// Handle of wait_sig thread | ||||
| Static HANDLE hwait_subproc = NULL;	// Handle of sig_subproc thread | ||||
|  | ||||
| Static HANDLE wait_sig_inited;		// Control synchronization of | ||||
| Static HANDLE wait_sig_inited = NULL;	// Control synchronization of | ||||
| 					//  message queue startup | ||||
|  | ||||
| /* Used by WaitForMultipleObjects.  These are handles to child processes. | ||||
|  */ | ||||
| Static HANDLE events[PSIZE + 1];	// All my children's handles++ | ||||
| Static HANDLE events[PSIZE + 1] = {0};	// All my children's handles++ | ||||
| #define hchildren (events + 1)		// Where the children handles begin | ||||
| Static pinfo pchildren[PSIZE];		// All my children info | ||||
| Static pinfo zombies[16384];		// All my deceased children info | ||||
| Static int nchildren = 0;		// Number of active children | ||||
| Static int nzombies = 0;		// Number of deceased children | ||||
|  | ||||
| Static waitq waitq_head;		// Start of queue for wait'ing threads | ||||
| Static waitq waitq_head = {0, 0, 0, 0, 0, 0, 0};// Start of queue for wait'ing threads | ||||
| Static waitq waitq_main;		// Storage for main thread | ||||
|  | ||||
| muto NO_COPY *sync_proc_subproc;	// Control access to subproc stuff | ||||
| muto NO_COPY *sync_proc_subproc = NULL;	// Control access to subproc stuff | ||||
|  | ||||
| DWORD NO_COPY sigtid;			// ID of the signal thread | ||||
| DWORD NO_COPY sigtid = 0;		// ID of the signal thread | ||||
|  | ||||
| int NO_COPY pending_signals;		// TRUE if signals pending | ||||
| int NO_COPY pending_signals = 0;	// TRUE if signals pending | ||||
|  | ||||
| /* Functions | ||||
|  */ | ||||
| @@ -543,7 +543,6 @@ sig_dispatch_pending (int justwake) | ||||
| void __stdcall | ||||
| sigproc_init () | ||||
| { | ||||
|   sig_loop_wait = INFINITE; | ||||
|   wait_sig_inited = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL); | ||||
|   ProtectHandle (wait_sig_inited); | ||||
|  | ||||
| @@ -815,7 +814,6 @@ subproc_init (void) | ||||
|   if (hwait_subproc) | ||||
|     return; | ||||
|  | ||||
|   proc_loop_wait = 1000; | ||||
|   /* A "wakeup" handle which can be toggled to make wait_subproc reexamine | ||||
|    * the hchildren array. | ||||
|    */ | ||||
|   | ||||
| @@ -24,7 +24,7 @@ details. */ | ||||
| # define memset __builtin_memset | ||||
| #endif | ||||
|  | ||||
| #define NO_COPY __attribute__((section("COMMON"))) | ||||
| #define NO_COPY __attribute__((section(".data_cygwin_nocopy"))) | ||||
|  | ||||
| #ifdef __cplusplus | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user