diff --git a/newlib/ChangeLog b/newlib/ChangeLog index de6226c91..ea7e76f45 100644 --- a/newlib/ChangeLog +++ b/newlib/ChangeLog @@ -1,3 +1,8 @@ +2010-12-26 Christopher Faylor + + * libc/include/sys/errno.h (program_invocation_name): Declare. + (program_invocation_short_name): Ditto. + 2010-12-16 Jeff Johnston * NEWS: Update with 1.19.0 info. diff --git a/newlib/libc/include/sys/errno.h b/newlib/libc/include/sys/errno.h index ac45fbc53..c93b250c3 100644 --- a/newlib/libc/include/sys/errno.h +++ b/newlib/libc/include/sys/errno.h @@ -22,6 +22,8 @@ extern __IMPORT int _sys_nerr; #ifdef __CYGWIN__ extern __IMPORT const char * const sys_errlist[]; extern __IMPORT int sys_nerr; +extern __IMPORT char *program_invocation_name; +extern __IMPORT char *program_invocation_short_name; #endif #define __errno_r(ptr) ((ptr)->_errno) diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 823d7d2f5..dd1feef15 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,11 @@ +2010-12-26 Christopher Faylor + + * cygwin.din: Export program_invocation_name and program_invocation_short_name. + * dcrt0.cc: Set program_invocation*name to correct values, based on + argv[0]. + * globals.cc (program_invocation_name): Define. + (program_invocation_short_name): Ditto. + 2010-12-16 Corinna Vinschen * security.cc (alloc_sd): Really fix erroneous inheritence entry diff --git a/winsup/cygwin/cygwin.din b/winsup/cygwin/cygwin.din index 4de550fcc..3ebba1c67 100644 --- a/winsup/cygwin/cygwin.din +++ b/winsup/cygwin/cygwin.din @@ -1161,6 +1161,8 @@ powf NOSIGFE _powf = powf NOSIGFE pread SIGFE printf SIGFE +program_invocation_name DATA +program_invocation_short_name DATA _printf = printf SIGFE pselect SIGFE pthread_atfork SIGFE diff --git a/winsup/cygwin/dcrt0.cc b/winsup/cygwin/dcrt0.cc index 4aca47495..4c2a66936 100644 --- a/winsup/cygwin/dcrt0.cc +++ b/winsup/cygwin/dcrt0.cc @@ -915,6 +915,8 @@ dll_crt0_1 (void *) ++__progname; else __progname = __argv[0]; + program_invocation_name = __argv[0]; + program_invocation_short_name = __progname; if (__progname) { char *cp = strchr (__progname, '\0') - 4; diff --git a/winsup/cygwin/globals.cc b/winsup/cygwin/globals.cc index 801ae742d..f04c8e3ea 100644 --- a/winsup/cygwin/globals.cc +++ b/winsup/cygwin/globals.cc @@ -138,6 +138,8 @@ extern "C" char ***main_environ = &__cygwin_environ; /* __progname used in getopt error message */ char *__progname; + char *program_invocation_name; + char *program_invocation_short_name; static MTinterface _mtinterf; struct per_process __cygwin_user_data = {/* initial_sp */ 0, /* magic_biscuit */ 0,