OpenJDK 1.7 for OS/X packages

Henri Gomez henri.gomez at gmail.com
Tue Nov 30 15:39:11 PST 2010


Hi guys

Good news, Alexander Strange, from Apple, proposed a patch on java-dev list :

---

The problem is that java_md.c's SetExecname() is not implemented for
BSD/Darwin in bsd-port. It falls back to using argv[0], but this is a
very fragile way to find the path to your own binary, and in
particular doesn't work with /usr/bin/java. The Solaris version of
that function should work fine, so just add "|| defined(__APPLE__)" to
the "#if defined(__sun)" to enable it.

Note that the actual launcher source used is in jdk/src/solaris/bin/java_md.c.

---

--- jdk/src/solaris/bin/java_md.c	2010-11-21 00:48:24.000000000 +0100
+++ jdk/src/solaris/bin/java_md.c	2010-12-01 00:13:49.000000000 +0100
@@ -692,7 +692,7 @@
 SetExecname(char **argv)
 {
     char* exec_path = NULL;
-#if defined(__solaris__)
+#if defined(__solaris__) || defined(__APPLE__)
     {
         Dl_info dlinfo;
         int (*fptr)();


I tested and it seems to fix the java started issue.

Updating my build process right now



More information about the bsd-port-dev mailing list