OpenJDK 1.7 for OS/X packages

Henri Gomez henri.gomez at
Tue Nov 30 23:39:11 UTC 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 discuss mailing list