* autoload.cc (WSADuplicateSocketW): Define.
(WSASocketW): Define.
* dtable.cc (dtable::release): Call dec_need_fixup_before if necessary.
(dtable::fixup_before_fork): New function.
(dtable::fixup_before_exec): New function.
* dtable.h (class dtable): Add member cnt_need_fixup_before. Add
declarations for above new functions.
(dtable::dec_need_fixup_before): New inline method.
(dtable::inc_need_fixup_before): New inline method.
(dtable::need_fixup_before): New inline method.
* fhandler.h (fhandler_base::fixup_before_fork_exec): New virtual
method.
(fhandler_base::need_fixup_before): New virtual method.
(class fhandler_socket): Add member prot_info_ptr.
(fhandler_socket::init_fixup_before): Declare.
(fhandler_socket::need_fixup_before): New inline method.
(fhandler_socket::fixup_before_fork_exec): Declare.
(fhandler_socket::fixup_after_exec): Declare.
* fhandler_socket.cc (fhandler_socket::fhandler_socket): Initialize
prot_info_ptr to NULL.
(fhandler_socket::~fhandler_socket): Free prot_info_ptr conditionally.
(fhandler_socket::init_fixup_before): New method.
(fhandler_socket::fixup_before_fork_exec): Ditto.
(fhandler_socket::fixup_after_fork): Use WSASocketW to duplicate
socket if necessary.
(fhandler_socket::fixup_after_exec): New method.
(fhandler_socket::dup): Use fixup_before_fork_exec/fixup_after_fork
to duplicate socket if necessary.
* fork.cc (frok::parent): Start child suspended if some fhandler
needs fixup before fork. If so, call dtable::fixup_before_fork after
CreateProcess and resume child.
* net.cc (fdsock): Try to find out if socket needs fixup before and
initialize socket accordingly. Add HUGE comment to explain what happens
and why.
* spawn.cc (spawn_guts): Start child suspended if some fhandler needs
fixup before exec. If so, call dtable::fixup_before_exec after
CreateProcess.
of ppl and cloog. Fix in-tree configury of libelf, skip tests.
Fix portability of test of C++ as bootstrap language. Add
ppl/src/ppl-config.o to the bootstrap compare exclusion list.
* configure: Rebuild.
* Makefile.def: Drop host and target settings from gmp, mpfr, ppl,
and cloog. Fix in-tree ppl configuration. Introduce libelf
in-tree building.
* Makefile.tpl (POSTSTAGE1_CXX_EXPORT): New.
(POSTSTAGE1_HOST_EXPORTS): Use it.
(STAGE[+id+]_CXXFLAGS): New.
(BASE_FLAGS_TO_PASS): Pass it down.
(configure-stage[+id+]-[+prefix+][+module+]): Use it. Add
extra_exports.
(all-stage[+id+]-[+prefix+][+module+]): Likewise.
(configure-[+prefix+][+module+], all-[+prefix+][+module+]): Add
extra_exports.
* Makefile.in: Rebuild.
* configure.ac (FLAGS_FOR_TARGET): Add -L and -isystem
paths for *-w64-mingw* and x86_64-*mingw*.
* configure: Regenerated.
* configure.ac: Disable target-winsup & co for
x86_64-*-mingw* and *-w64-mingw* targets.
* configure: Regenerated.
* configure.ac (CLooG test): Use = with test.
* configure: Regenerate.
* configure.ac: Do not set LIBS for ppl/cloog checks. Disable
cloog if the ppl version check failed. Move flags saving
before setting in libelf check.
* configure: Regenerate.
* configure.ac: Adjust the ppl and cloog configure to work as
documented. Disable cloog if ppl was disabled. Omit the version
checks if they were disabled.
* configure: Re-generate.
get_object_attr.
* fhandler_mailslot.cc (fhandler_mailslot::get_object_attr): Implement.
(fhandler_mailslot::open): Replace calls to path_conv::get_object_attr
with calls to fhandler_mailslot::get_object_attr.
(main): Don't reuse local variables confusingly. Don't print any file
information if acl() fails. Improve error message. Always print a
trailing empty line. Set return code to 2 if accessing some file fails.
SubstituteName for volume string to recognize volume mount points.
Reuse subst when calling sys_wcstombs.
* syscalls.cc (rename): Set errno to EBUSY when trying to rename
volume mount points. Explain why.
(ro_u_sys): Ditto.
* syscalls.cc (nt_path_has_suffix): Replace with ...
(nt_path_has_executable_suffix): New function checking for explicit
executable suffixes.
(rename): Call nt_path_has_executable_suffix instead of
nt_path_has_suffix. Check oldpath for nt_path_has_executable_suffix
as well to set old_explicit_suffix.
Check cygwin_internal for returning 0 rather than for != 0.
(transport_layer_pipes::accept): Add debug output.
(transport_layer_pipes::connect): Ditto.
(load_cygwin): Fetch cygwin DLL path and store in cygwin_dll_path.
* strace.cc: Full ditto.
* path.cc (read_mounts): First use the path stored in cygwin_dll_path,
if available. Then fall back to fetching own path. Add comment.
Drop printing warnings since they look funny in strace output.
* mount.cc (mount_info::from_fstab): Remove extern declaration of
transform_chars.
* path.cc (tfx_chars): Move to strfuncs.cc.
(transform_chars): Ditto.
* strfunc.cc (tfx_chars): Moved here from path.cc.
(transform_chars): Ditto.
(sys_cp_wcstombs): Make UNICODE private use area conversion roundtrip
save for all characters.
(sys_cp_mbstowcs): Ditto, by removing special case for UTF-8 sequences
representing U+f0XX UNICODE chars. Fix typo in comment.