summaryrefslogtreecommitdiff
path: root/libjava/posix.cc
diff options
context:
space:
mode:
authoraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-10 19:45:30 +0000
committeraph <aph@138bc75d-0d04-0410-961f-82ee72b054a4>2003-03-10 19:45:30 +0000
commit45f8ab39289f042c9ceb7b9c9498678712d3b670 (patch)
treea4c3279fd9e6344dedbfac2337937e049b960715 /libjava/posix.cc
parent595487d9069b2ee3075f1805e3e920b19414f5d0 (diff)
downloadgcc-45f8ab39289f042c9ceb7b9c9498678712d3b670.tar.gz
2003-03-10 2003-02-27 Mohan Embar <gnustuff@thisiscool.com>
* include/jvm.h: removed declaration of _Jv_ThisExecutable() setter; made return value of getter const char* instead of char* * prims.cc: removed all references to _Jv_ThisExecutable(). These are in the platform-specific sections now. * posix.cc: define platform-specific _Jv_ThisExecutable(). Handle DISABLE_MAIN_ARGS and HAVE_PROC_SELF_EXE cases * win32.cc: define platform-specific _Jv_ThisExecutable() using GetModuleFilename() * java/lang/natRuntime.cc: set gnu.gcj.progname property to argv[0] instead of _Jv_ThisExecutable() 2003-03-10 Ranjit Mathew <rmathew@hotmail.com> * gnu/gcj/runtime/NameFinder.java (usingAddr2name): New flag that is set if we are using addr2name.awk instead of addr2line. (NameFinder): Set usingAddr2name if using addr2name.awk. (getExternalLabel): New native method to convert a method name to an external label. (lookup): Convert name given by addr2line to an external label before demangling. * gnu/gcj/runtime/natNameFinder.cc (LABEL_PREFIX): New string constant representing the prefix attached to method names to convert them to an external label. (gnu::gcj::runtime::NameFinder::getExternalLabel): Define using LABEL_PREFIX. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@64111 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/posix.cc')
-rw-r--r--libjava/posix.cc25
1 files changed, 25 insertions, 0 deletions
diff --git a/libjava/posix.cc b/libjava/posix.cc
index ebff1c9ec79..2f808334d7c 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.