diff options
Diffstat (limited to 'java/jdk16/files/patch-j2se-bin-java_md.c')
-rw-r--r-- | java/jdk16/files/patch-j2se-bin-java_md.c | 62 |
1 files changed, 0 insertions, 62 deletions
diff --git a/java/jdk16/files/patch-j2se-bin-java_md.c b/java/jdk16/files/patch-j2se-bin-java_md.c deleted file mode 100644 index f8305b53ae46..000000000000 --- a/java/jdk16/files/patch-j2se-bin-java_md.c +++ /dev/null @@ -1,62 +0,0 @@ -$FreeBSD$ - ---- ../../j2se/src/solaris/bin/java_md.c 15 Feb 2005 02:06:26 -0000 1.6 -+++ ../../j2se/src/solaris/bin/java_md.c 20 Apr 2005 12:08:02 -0000 -@@ -906,8 +904,7 @@ - if (execname != NULL) /* Already determined */ - return (execname); - --/* XXXBSD: is it right for us ?*/ --#if defined(__sun) || defined(__FreeBSD__) -+#if defined(__sun) - { - Dl_info dlinfo; - if (dladdr((void*)&SetExecname, &dlinfo)) { -@@ -928,12 +925,47 @@ - exec_path = strdup(buf); - } - } -+#elif defined(__FreeBSD__) -+ /* Try /proc/curproc/file if exec_path hasn't been found */ -+ -+ if (exec_path == NULL) { -+ const char* self = "/proc/curproc/file"; -+ char buf[PATH_MAX+1]; -+ int len = readlink(self, buf, PATH_MAX); -+ if (len >= 0) { -+ buf[len] = '\0'; /* readlink doesn't nul terminate */ -+ exec_path = strdup(buf); -+ } -+ } -+ -+ /* -+ * Try the dladdr(3) method FreeBSD if exec_path hasn't been found. -+ * Requires a recent version of FreeBSD. -+ */ -+ -+ /* -+ if (exec_path == NULL) { -+ Dl_info dlinfo; -+ if (dladdr((void*)&SetExecname, &dlinfo)) { -+ char *resolved = (char*)MemAlloc(PATH_MAX+1); -+ if (resolved != NULL) { -+ exec_path = realpath(dlinfo.dli_fname, resolved); -+ if (exec_path == NULL) { -+ free(resolved); -+ } -+ } -+ } -+ } -+ */ -+ - #else /* !__sun && !__linux */ - { - /* Not implemented */ - } - #endif - -+ /* Fall back to examining argv[0] and our path */ -+ - if (exec_path == NULL) { - exec_path = FindExecName(argv[0]); - } |