changeset 13351:b27fbdda9454

939 SUNWdtrt needs to be willing to use 64bit java Reviewed by: Albert Lee <trisk@opensolaris.org> Reviewed by: Garrett D'Amore <garrett@nexenta.com> Approved by: Garrett D'Amore <garrett@nexenta.com>
author Richard Lowe <richlowe@richlowe.net>
date Thu, 21 Apr 2011 21:15:38 +0100
parents a4d1acb7a7f5
children f1cdd406b7eb
files usr/src/cmd/dtrace/test/cmd/jdtrace/jdtrace.c usr/src/pkg/manifests/system-dtrace-tests.mf
diffstat 2 files changed, 12 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/usr/src/cmd/dtrace/test/cmd/jdtrace/jdtrace.c	Tue Apr 19 13:31:18 2011 -0400
+++ b/usr/src/cmd/dtrace/test/cmd/jdtrace/jdtrace.c	Thu Apr 21 21:15:38 2011 +0100
@@ -22,25 +22,27 @@
 /*
  * Copyright 2007 Sun Microsystems, Inc.  All rights reserved.
  * Use is subject to license terms.
+ *
+ * Copyright 2011, Richard Lowe
  */
 
-#pragma ident	"%Z%%M%	%I%	%E% SMI"
-
 #include <alloca.h>
 #include <stdio.h>
 #include <unistd.h>
+#include <err.h>
 #include <sys/systeminfo.h>
 
 int
 main(int argc, char **argv)
 {
-	int i, ac, has64;
+	int i, ac;
 	char **av, **p;
+	char isaname[16];
 
 	ac = argc + 3;
 	av = p = alloca(sizeof (char *) * ac);
 
-	*p++ = "java";
+	*p++ = "/usr/java/bin/java";
 	*p++ = "-jar";
 	*p++ = "/opt/SUNWdtrt/lib/java/jdtrace.jar";
 
@@ -52,9 +54,9 @@
 	}
 	p[i] = NULL;
 
-	(void) execvp(av[0], av);
+	if (sysinfo(SI_ARCHITECTURE_64, isaname, sizeof (isaname)) != -1)
+		asprintf(av, "/usr/java/bin/%s/java", isaname);
 
-	perror("exec failed");
-
-	return (0);
+	(void) execv(av[0], av);
+	err(1, "exec failed");
 }
--- a/usr/src/pkg/manifests/system-dtrace-tests.mf	Tue Apr 19 13:31:18 2011 -0400
+++ b/usr/src/pkg/manifests/system-dtrace-tests.mf	Thu Apr 21 21:15:38 2011 +0100
@@ -1899,3 +1899,5 @@
     hotline="Contact the DTrace discussion forum" name="DTrace Test Suite"
 license cr_Sun license=cr_Sun
 license lic_CDDL license=lic_CDDL
+depend fmri=runtime/java type=require
+depend fmri=runtime/java/runtime64 type=require