diff options
Diffstat (limited to 'libjava/posix.cc')
-rw-r--r-- | libjava/posix.cc | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libjava/posix.cc b/libjava/posix.cc index ebff1c9..2f80833 100644 --- a/libjava/posix.cc +++ b/libjava/posix.cc @@ -25,6 +25,26 @@ details. */ extern "C" unsigned long long _clock (void); #endif +// platform-specific executable name +extern const char **_Jv_argv; + +#if defined(HAVE_PROC_SELF_EXE) +static char exec_name[20]; + // initialized in _Jv_platform_initialize() +#endif + +const char *_Jv_ThisExecutable (void) +{ +#if defined(DISABLE_MAIN_ARGS) + return "[Embedded App]"; +#elif defined(HAVE_PROC_SELF_EXE) + return exec_name; + // initialized in _Jv_platform_initialize() +#else + return _Jv_argv[0]; +#endif +} + // gettimeofday implementation. jlong _Jv_platform_gettimeofday () @@ -62,6 +82,11 @@ _Jv_platform_initialize (void) #else signal (SIGPIPE, SIG_IGN); #endif + +#if defined (HAVE_PROC_SELF_EXE) + // Compute our executable name + sprintf (exec_name, "/proc/%d/exe", getpid ()); +#endif } // Set platform-specific System properties. |