<feed xmlns='http://www.w3.org/2005/Atom'>
<title>gunmake/w32/subproc, branch 3.99.93</title>
<subtitle>GNU make with more features of SunOS make</subtitle>
<id>https://git.pashev.ru/gunmake/atom?h=3.99.93</id>
<link rel='self' href='https://git.pashev.ru/gunmake/atom?h=3.99.93'/>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/'/>
<updated>2013-05-17T05:47:42Z</updated>
<entry>
<title>Update copyright for changes in 2013.</title>
<updated>2013-05-17T05:47:42Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-05-17T05:46:11Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=5370238316ee4284fe058a9c298a5734d2686678'/>
<id>urn:sha1:5370238316ee4284fe058a9c298a5734d2686678</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Fix invocation of Windows batch files with whitespace in their names.</title>
<updated>2013-05-03T13:24:24Z</updated>
<author>
<name>Eli Zaretskii</name>
<email>eliz@gnu.org</email>
</author>
<published>2013-05-03T13:24:24Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=82793f85f5fbf1831dcb6a6595ca57c2242e4576'/>
<id>urn:sha1:82793f85f5fbf1831dcb6a6595ca57c2242e4576</id>
<content type='text'>
 w32/subproc/sub_proc.c: Include makeint.h.  Remove a private
 incompatible prototype of xmalloc.
 (batch_file_with_spaces): New function, detects Windows batch
 files whose names include whitespace characters.
 (process_begin): If exec_name is a batch file with whitespace
 characters in its name, pass NULL as the first argument to
 CreateProcess.  This avoids weird failures due to buggy quoting by
 CreateProcess.  For the details, see the discussion starting at
 http://lists.gnu.org/archive/html/make-w32/2013-04/msg00008.html.
</content>
</entry>
<entry>
<title>Support --output-sync on MS-Windows.</title>
<updated>2013-04-27T11:20:49Z</updated>
<author>
<name>Eli Zaretskii</name>
<email>eliz@gnu.org</email>
</author>
<published>2013-04-27T11:20:49Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=da7df54309eb759837a289ade900fe8e3d6ddc36'/>
<id>urn:sha1:da7df54309eb759837a289ade900fe8e3d6ddc36</id>
<content type='text'>
 w32/compat/posixfcn.c: New file, with emulations of Posix
 functions and Posix functionality for MS-Windows.
 w32/subproc/sub_proc.c: Include io.h.
 (process_noinherit): New function, forces a file descriptor to not
 be inherited by child processes.
 (process_easy): Accept two additional arguments, and use them to
 set up the standard output and standard error handles of the child
 process.
 w32/include/sub_proc.h (process_easy): Adjust prototype.
 (process_noinherit): Add prototype.

 read.c [WINDOWS32]: Include windows.h and sub_proc.h.
 makeint.h (LOCALEDIR) [WINDOWS32}: Define to NULL if not
 defined.  This is needed because the MS-Windows build doesn't have
 a canonical place for LOCALEDIR.
 (WIN32_LEAN_AND_MEAN) [WINDOWS32]: Define, to avoid getting from
 windows.h header too much stuff that could conflict with the code.
 main.c &lt;sync_mutex&gt;: New static variable.
 &lt;switches&gt;: Add support for "--sync-mutex" switch.
 (decode_output_sync_flags): Decode the --sync-mutex= switch.
 (prepare_mutex_handle_string) [WINDOWS32]: New function.
 (main): Add "output-sync" to .FEATURES.
 job.h (CLOSE_ON_EXEC) [WINDOWS32]: Define to call
 process_noinherit.
 (F_GETFD, F_SETLKW, F_WRLCK, F_UNLCK, struct flock) [WINDOWS32]:
 New macros.
 (RECORD_SYNC_MUTEX): New macro, a no-op for Posix platforms.
 (sync_handle_t): New typedef.
 job.c &lt;sync_handle&gt;: Change type to sync_handle_t.
 (FD_NOT_EMPTY): Seek to the file's end.  Suggested by Frank
 Heckenbach &lt;f.heckenbach@fh-soft.de&gt;.
 (pump_from_tmp_fd) [WINDOWS32]: Switch to_fd to binary mode for
 the duration of this function, and then change back before
 returning.
 (start_job_command) [WINDOWS32]: Support output_sync mode on
 MS-Windows.  Use a system-wide mutex instead of locking
 stdout/stderr.  Call process_easy with two additional arguments:
 child-&gt;outfd and child-&gt;errfd.
 (exec_command) [WINDOWS32]: Pass two additional arguments, both
 -1, to process_easy, to adjust for the changed function signature.
 function.c (windows32_openpipe) [WINDOWS32]: This function now
 returns an int, which is -1 if it fails and zero otherwise.  It
 also calls 'error' instead of 'fatal', to avoid exiting
 prematurely.
 (func_shell_base) [WINDOWS32]: Call perror_with_name if
 windows32_openpipe fails, now that it always returns.  This avoids
 a compiler warning that error_prefix is not used in the MS-Windows
 build.
 config.h.W32.template (OUTPUT_SYNC): Define.
 build_w32.bat: Add w32/compat/posixfcn.c to compilation and
 linking commands.

 From Frank Heckenbach &lt;f.heckenbach@fh-soft.de&gt;:
 job.c (sync_output): Don't discard the output if
 acquire_semaphore fails; instead, dump the output unsynchronized.
</content>
</entry>
<entry>
<title>Improve MS-Windows build scripts.</title>
<updated>2013-04-25T17:41:53Z</updated>
<author>
<name>Eli Zaretskii</name>
<email>eliz@gnu.org</email>
</author>
<published>2013-04-25T17:41:53Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=f3a4b4ce6f16830b0f2c42b14fe6f955d49eb274'/>
<id>urn:sha1:f3a4b4ce6f16830b0f2c42b14fe6f955d49eb274</id>
<content type='text'>
 build_w32.bat: Improve.  Remove 'setlocal', as it isn't
 supported on Windows 9X.  Add --help and usage instructions.
 Support both debug and optimized builds with GCC under --debug.
 If building out of Git repo, always produce config.h, and edit
 gmk-default.scm into gmk-default.h.
 w32/subproc/build.bat: Support debug and optimized builds with
 GCC.
</content>
</entry>
<entry>
<title>Rename the make.h file to makeint.h for internal use only.</title>
<updated>2013-01-20T16:33:20Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2013-01-20T16:01:01Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=a45f25ece30e4101ae77c90d2270d253ea9a82ec'/>
<id>urn:sha1:a45f25ece30e4101ae77c90d2270d253ea9a82ec</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Simplify copyrights using ranges of years.</title>
<updated>2012-03-05T14:10:39Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2012-03-05T14:10:39Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=adb50bd4c92424e7281156e118a687da1c8ebd7f'/>
<id>urn:sha1:adb50bd4c92424e7281156e118a687da1c8ebd7f</id>
<content type='text'>
The new GNU Maintainer's Manual allows the use of year ranges in certain
situations; take advantage of this simplification.
</content>
</entry>
<entry>
<title>Convert all "`'" quotes to "''" per new GNU Coding Standard guidelines.</title>
<updated>2012-03-04T00:24:20Z</updated>
<author>
<name>Paul Smith</name>
<email>psmith@gnu.org</email>
</author>
<published>2012-03-04T00:24:20Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=23c2b99e9d23e726ede9442728272616e66d416f'/>
<id>urn:sha1:23c2b99e9d23e726ede9442728272616e66d416f</id>
<content type='text'>
Fixes Savannah bug #34530.
</content>
</entry>
<entry>
<title>Ifdef away unused w32 functions.</title>
<updated>2012-02-03T12:16:57Z</updated>
<author>
<name>Eli Zaretskii</name>
<email>eliz@gnu.org</email>
</author>
<published>2012-02-03T12:16:57Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=c0751bd3fce253f09b4ebe2aed1c70bcbbc6ad20'/>
<id>urn:sha1:c0751bd3fce253f09b4ebe2aed1c70bcbbc6ad20</id>
<content type='text'>
 w32/subproc/sub_proc.c (proc_stdin_thread, proc_stdout_thread)
 (proc_stderr_thread, process_pipe_io): Ifdef away unused
 functions.
</content>
</entry>
<entry>
<title>Fix Savannah bug #34832 with unused TLS attributes.</title>
<updated>2012-02-03T12:15:56Z</updated>
<author>
<name>Eli Zaretskii</name>
<email>eliz@gnu.org</email>
</author>
<published>2012-02-03T12:15:56Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=1befa76448266208ee853f3e5b3a34a12807eaf4'/>
<id>urn:sha1:1befa76448266208ee853f3e5b3a34a12807eaf4</id>
<content type='text'>
 w32/subproc/w32err.c (map_windows32_error_to_string) [_MSC_VER]:
 Don't use TLS storage for szMessageBuffer.  Ifdef away special
 code for handling Winsock error codes.  Make the function return a
 `const char *'.  Suggested by Ozkan Sezer.  Fixes Savannah bug #34832.
</content>
</entry>
<entry>
<title>  Fix failures on MS-Windows when Make's standard handles are invalid.</title>
<updated>2012-01-28T16:50:21Z</updated>
<author>
<name>Eli Zaretskii</name>
<email>eliz@gnu.org</email>
</author>
<published>2012-01-28T16:50:21Z</published>
<link rel='alternate' type='text/html' href='https://git.pashev.ru/gunmake/commit/?id=eb4f9669716367912244182dd0eb788759f800ec'/>
<id>urn:sha1:eb4f9669716367912244182dd0eb788759f800ec</id>
<content type='text'>
  This can happen when Make is invoked from a GUI application.

  * w32/subproc/sub_proc.c (process_init_fd): Don't dereference
  pproc if it is a NULL pointer.
  (process_begin, process_cleanup): Don't try to close pipe handles
  whose value is INVALID_HANDLE_VALUE.
  (process_easy): Initialize hIn, hOut, and hErr to
  INVALID_HANDLE_VALUE.  If DuplicateHandle fails with
  ERROR_INVALID_HANDLE, duplicate a handle for the null device
  instead of STD_INPUT_HANDLE, STD_OUTPUT_HANDLE or
  STD_ERROR_HANDLE.  Don't try to close pipe handles whose value is
  INVALID_HANDLE_VALUE.

  * function.c (windows32_openpipe): Initialize hIn and hErr to
  INVALID_HANDLE_VALUE.  If DuplicateHandle fails with
  ERROR_INVALID_HANDLE, duplicate a handle for the null device
  instead of STD_INPUT_HANDLE or STD_ERROR_HANDLE.  Fix indentation.
  Don't try to close handles whose value is INVALID_HANDLE_VALUE.
</content>
</entry>
</feed>
