aboutsummaryrefslogtreecommitdiff
path: root/newlib/libc
diff options
context:
space:
mode:
authorMichael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>2016-12-07 11:58:26 +0100
committerCorinna Vinschen <corinna@vinschen.de>2019-02-03 11:00:39 +0100
commit98c13a155593491b45640165fb2d8a27eb0a6b22 (patch)
tree0eaf23e62bcf22604fe60bd7eb476c4218e01cbb /newlib/libc
parent2174880aaec78b080e0907908d191f64aece8d1c (diff)
downloadnewlib-98c13a155593491b45640165fb2d8a27eb0a6b22.zip
newlib-98c13a155593491b45640165fb2d8a27eb0a6b22.tar.gz
newlib-98c13a155593491b45640165fb2d8a27eb0a6b22.tar.bz2
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.
Diffstat (limited to 'newlib/libc')
0 files changed, 0 insertions, 0 deletions