2012-12-12 Daniel Colascione <dancol@dancol.org>

* unexcw.c (fixup_executable): use posix_fallocate to ensure that
	the dumped Emacs is not a sparse file, greatly improving Cygwin
	"make bootstrap" performance.
This commit is contained in:
Daniel Colascione 2012-12-11 19:26:52 -08:00
parent 69e1c203e9
commit cc98b68426
2 changed files with 19 additions and 0 deletions

View file

@ -1,3 +1,9 @@
2012-12-12 Daniel Colascione <dancol@dancol.org>
* unexcw.c (fixup_executable): use posix_fallocate to ensure that
the dumped Emacs is not a sparse file, greatly improving Cygwin
"make bootstrap" performance.
2012-12-11 Michael Albinus <michael.albinus@gmx.de>
* inotify.c (inotify_callback): Generate an Emacs event for every

View file

@ -183,6 +183,19 @@ fixup_executable (int fd)
exe_header->file_optional_header.FileAlignment *
exe_header->file_optional_header.FileAlignment;
/* Make sure the generated bootstrap binary isn't
* sparse. NT doesn't use a file cache for sparse
* executables, so if we bootstrap Emacs using a sparse
* bootstrap-emacs.exe, bootstrap takes about twenty
* times longer than it would otherwise. */
ret = posix_fallocate (fd,
( exe_header->section_header[i].s_scnptr +
exe_header->section_header[i].s_size ),
1);
assert (ret != -1);
ret =
lseek (fd,
(long) (exe_header->section_header[i].s_scnptr +