]> sourceware.org Git - newlib-cygwin.git/commit
dll_list: Track main executable and cygwin1.dll.
authorMichael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
Wed, 7 Dec 2016 10:58:26 +0000 (11:58 +0100)
committerCorinna Vinschen <corinna@vinschen.de>
Thu, 7 Feb 2019 14:58:02 +0000 (15:58 +0100)
commitdac0b6826bef8c637866c60d15ffd8461b361f50
tree1b0df7632bda4d049eccfa48ab2d5dae36729ac9
parent2678c4efe1195ffb49d92a899c10d4c9fa168eb0
dll_list: Track main executable and cygwin1.dll.

Even for the main executable and cygwin1.dll store the file name as full
NT path.  Create the child process using the main executable's file name
converted from the full NT path stored before.

* dll_init.cc (dll_list::alloc): Search for DLL_SELF type entry
with module name like for DLL_LINK, use full NT path to search
for DLL_LOAD type only.  For DLL_SELF type do not indicate
having a destructor to be called.
(dll_list::find): Ignore DLL_SELF type entries.
(dll_list::init): Ditto.  Call track_self method.
(dll_list::track_self): New.
(dll_list::load_after_fork): Call track_self method.
* dll_init.h (enum dll_type): Add DLL_SELF, for the main
executable and cygwin1.dll.
(struct dll_list): Declare private method track_self.  Declare
member variable main_executable.
* fork.cc (frok::parent): Use ntname from dlls.main_executable
to create child process, converted to short path using
dll_list::buffered_shortname.
winsup/cygwin/dll_init.cc
winsup/cygwin/dll_init.h
winsup/cygwin/fork.cc
This page took 0.028675 seconds and 5 git commands to generate.