* 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> | Fri Aug 31 00:56:26 2001  Christopher Faylor <cgf@cygnus.com> | ||||||
|  |  | ||||||
| 	* cygwin.sc: New file -- linker script for building cygwin DLL. | 	* 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 | 	(subproc_init): Initialize proc_loop_wait here, rather than via | ||||||
| 	initialization. | 	initialization. | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Thu Aug 30 10:19:00 2001  Christopher Faylor <cgf@cygnus.com> | Thu Aug 30 10:19:00 2001  Christopher Faylor <cgf@cygnus.com> | ||||||
|  |  | ||||||
| 	* select.cc (select_read): Add setting read_ready flag. | 	* select.cc (select_read): Add setting read_ready flag. | ||||||
|   | |||||||
| @@ -236,7 +236,7 @@ std_dll_init () | |||||||
|  |  | ||||||
| /* Initialization function for winsock stuff. */ | /* Initialization function for winsock stuff. */ | ||||||
| static long long wsock_init () __asm__ ("wsock_init") __attribute__ ((unused, regparm(1))); | 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 | static long long | ||||||
| wsock_init () | wsock_init () | ||||||
| { | { | ||||||
|   | |||||||
| @@ -32,7 +32,7 @@ SECTIONS | |||||||
|     *(.data2) |     *(.data2) | ||||||
|     *(SORT(.data$*)) |     *(SORT(.data$*)) | ||||||
|     __data_end__ = . ; |     __data_end__ = . ; | ||||||
|     *(COMMON) |     *(.data_cygwin_nocopy) | ||||||
|   } |   } | ||||||
|   .rdata BLOCK(__section_alignment__) : |   .rdata BLOCK(__section_alignment__) : | ||||||
|   { |   { | ||||||
| @@ -48,6 +48,7 @@ SECTIONS | |||||||
|   { |   { | ||||||
|     __bss_start__ = . ; |     __bss_start__ = . ; | ||||||
|     *(.bss) |     *(.bss) | ||||||
|  |     *(COMMON) | ||||||
|     __bss_end__ = . ; |     __bss_end__ = . ; | ||||||
|   } |   } | ||||||
|   .edata BLOCK(__section_alignment__) : |   .edata BLOCK(__section_alignment__) : | ||||||
|   | |||||||
| @@ -74,46 +74,46 @@ HANDLE NO_COPY signal_arrived;		// Event signaled when a signal has | |||||||
|  |  | ||||||
| #define Static static NO_COPY | #define Static static NO_COPY | ||||||
|  |  | ||||||
| Static DWORD proc_loop_wait;		// Wait for subprocesses to exit | Static DWORD proc_loop_wait = 1000;	// Wait for subprocesses to exit | ||||||
| Static DWORD sig_loop_wait;		// Wait for signals to arrive | 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 | 					//  signals are available for | ||||||
| 					//  processing from non-main thread | 					//  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 | 					//  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 | 					//  but not to bother with any | ||||||
| 					//  synchronization | 					//  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 | 					//  finished processing for the main | ||||||
| 					//  thread | 					//  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 | 					//  threads when a signal has finished | ||||||
| 					//  processing | 					//  processing | ||||||
| Static HANDLE hwait_sig;		// Handle of wait_sig thread | Static HANDLE hwait_sig = NULL;		// Handle of wait_sig thread | ||||||
| Static HANDLE hwait_subproc;		// Handle of sig_subproc 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 | 					//  message queue startup | ||||||
|  |  | ||||||
| /* Used by WaitForMultipleObjects.  These are handles to child processes. | /* 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 | #define hchildren (events + 1)		// Where the children handles begin | ||||||
| Static pinfo pchildren[PSIZE];		// All my children info | Static pinfo pchildren[PSIZE];		// All my children info | ||||||
| Static pinfo zombies[16384];		// All my deceased children info | Static pinfo zombies[16384];		// All my deceased children info | ||||||
| Static int nchildren = 0;		// Number of active children | Static int nchildren = 0;		// Number of active children | ||||||
| Static int nzombies = 0;		// Number of deceased 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 | 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 | /* Functions | ||||||
|  */ |  */ | ||||||
| @@ -543,7 +543,6 @@ sig_dispatch_pending (int justwake) | |||||||
| void __stdcall | void __stdcall | ||||||
| sigproc_init () | sigproc_init () | ||||||
| { | { | ||||||
|   sig_loop_wait = INFINITE; |  | ||||||
|   wait_sig_inited = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL); |   wait_sig_inited = CreateEvent (&sec_none_nih, TRUE, FALSE, NULL); | ||||||
|   ProtectHandle (wait_sig_inited); |   ProtectHandle (wait_sig_inited); | ||||||
|  |  | ||||||
| @@ -815,7 +814,6 @@ subproc_init (void) | |||||||
|   if (hwait_subproc) |   if (hwait_subproc) | ||||||
|     return; |     return; | ||||||
|  |  | ||||||
|   proc_loop_wait = 1000; |  | ||||||
|   /* A "wakeup" handle which can be toggled to make wait_subproc reexamine |   /* A "wakeup" handle which can be toggled to make wait_subproc reexamine | ||||||
|    * the hchildren array. |    * the hchildren array. | ||||||
|    */ |    */ | ||||||
|   | |||||||
| @@ -24,7 +24,7 @@ details. */ | |||||||
| # define memset __builtin_memset | # define memset __builtin_memset | ||||||
| #endif | #endif | ||||||
|  |  | ||||||
| #define NO_COPY __attribute__((section("COMMON"))) | #define NO_COPY __attribute__((section(".data_cygwin_nocopy"))) | ||||||
|  |  | ||||||
| #ifdef __cplusplus | #ifdef __cplusplus | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user