* dcrt0.cc (do_global_dtors): Run DLL dtors.
(__main): Don't rely on atexit to run dtors. (do_exit): Specifically call do_global_dtors here. (cygwin_exit): Ditto. * dll_init.cc (dll_global_dtors): Make global. Only run dtors once. (dll_list::init): Just set flag that dtors should be run. Don't rely on atexit. * dll_init.h (dll_global_dtors): Declare. * exceptions.cc (sigrelse): Define. * path.h (is_fs_device): New method. (is_lnk_special): Ditto. * fhandler_disk_file.cc (fhandler_disk_file::link): Use "is_lnk_special" rather than "is_lnk_symlink". * syscalls.cc (rename): Ditto. * hookapi.cc (ld_preload): Use colon as a separator rather than space.
This commit is contained in:
@ -144,7 +144,9 @@ class path_conv
|
||||
int isfifo () const {return dev == FH_FIFO;}
|
||||
int isspecial () const {return dev.devn && dev.devn != FH_FS;}
|
||||
int is_auto_device () const {return isdevice () && !is_fs_special ();}
|
||||
int is_fs_device () const {return isdevice () && is_fs_special ();}
|
||||
int is_fs_special () const {return isspecial () && dev.isfs ();}
|
||||
int is_lnk_special () const {return is_fs_device () || isfifo () || is_lnk_symlink ();}
|
||||
int issocket () const {return dev.devn == FH_UNIX;}
|
||||
int iscygexec () const {return path_flags & PATH_CYGWIN_EXEC;}
|
||||
bool exists () const {return fileattr != INVALID_FILE_ATTRIBUTES;}
|
||||
|
Reference in New Issue
Block a user