aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCorinna Vinschen <corinna@vinschen.de>2007-12-14 11:32:40 +0000
committerCorinna Vinschen <corinna@vinschen.de>2007-12-14 11:32:40 +0000
commitcce64750b25abfc19e1a9e75d6c59d3844c56f23 (patch)
tree968cbddc8d4b95043b38e59a4bf7ca729567d61a
parent3d711a27bae5d6a4e0f7eacc6f8ba38abea38a6c (diff)
downloadnewlib-cce64750b25abfc19e1a9e75d6c59d3844c56f23.zip
newlib-cce64750b25abfc19e1a9e75d6c59d3844c56f23.tar.gz
newlib-cce64750b25abfc19e1a9e75d6c59d3844c56f23.tar.bz2
* dtable.cc (dtable::set_file_pointers_for_exec): Reenable. Fix
comment. * spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec only for non-Cygwin processes.
-rw-r--r--winsup/cygwin/ChangeLog7
-rw-r--r--winsup/cygwin/dtable.cc5
-rw-r--r--winsup/cygwin/spawn.cc3
3 files changed, 11 insertions, 4 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 375167f..f5db89d 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,10 @@
+2007-12-14 Corinna Vinschen <corinna@vinschen.de>
+
+ * dtable.cc (dtable::set_file_pointers_for_exec): Reenable. Fix
+ comment.
+ * spawn.cc (spawn_guts): Call cygheap->fdtab.set_file_pointers_for_exec
+ only for non-Cygwin processes.
+
2007-12-13 Craig MacGregor <cmacgreg@gmail.com>
Corinna Vinschen <corinna@vinschen.de>
diff --git a/winsup/cygwin/dtable.cc b/winsup/cygwin/dtable.cc
index fc9b3a7..5753846 100644
--- a/winsup/cygwin/dtable.cc
+++ b/winsup/cygwin/dtable.cc
@@ -672,8 +672,8 @@ dtable::fixup_before_exec (DWORD target_proc_id)
void
dtable::set_file_pointers_for_exec ()
{
-/* This is not POSIX-compliant. */
-#if 0
+/* This is not POSIX-compliant so the function is only called for
+ non-Cygwin processes. */
LONG off_high = 0;
lock ();
fhandler_base *fh;
@@ -681,7 +681,6 @@ dtable::set_file_pointers_for_exec ()
if ((fh = fds[i]) != NULL && fh->get_flags () & O_APPEND)
SetFilePointer (fh->get_handle (), 0, &off_high, FILE_END);
unlock ();
-#endif
}
void
diff --git a/winsup/cygwin/spawn.cc b/winsup/cygwin/spawn.cc
index 6e30b05..67e064f 100644
--- a/winsup/cygwin/spawn.cc
+++ b/winsup/cygwin/spawn.cc
@@ -465,7 +465,8 @@ spawn_guts (const char * prog_arg, const char *const *argv,
cygbench ("spawn-guts");
- cygheap->fdtab.set_file_pointers_for_exec ();
+ if (!real_path.iscygexec())
+ cygheap->fdtab.set_file_pointers_for_exec ();
moreinfo->envp = build_env (envp, envblock, moreinfo->envc, real_path.iscygexec ());
if (!moreinfo->envp || !envblock)