/hg/icedtea7: Remove use of 2.1 HotSpot for Zero, instead buildi...

andrew at icedtea.classpath.org andrew at icedtea.classpath.org
Mon Jan 14 17:11:02 PST 2013


changeset 08d655f1631e in /hg/icedtea7
details: http://icedtea.classpath.org/hg/icedtea7?cmd=changeset;node=08d655f1631e
author: Andrew John Hughes <gnu_andrew at member.fsf.org>
date: Tue Jan 15 01:10:49 2013 +0000

	Remove use of 2.1 HotSpot for Zero, instead building from IcedTea7 HEAD's HotSpot.

	2013-01-14  Andrew John Hughes  <gnu_andrew at member.fsf.org>

		* patches/hotspot/zero/7089790-bsd_port.patch,
		* patches/hotspot/zero/7098194-macosx_port.patch,
		* patches/hotspot/zero/7116189-setnativethreadname.patch,
		* patches/hotspot/zero/7175133-string_offset.patch,
		* patches/hotspot/zero/revert_arm_debug.patch:
		Remove patches for HotSpot from 2.1.
		* Makefile.am:
		(ICEDTEA_PATCHES): Add new patch to fix inclusion of
		libffi in Zero build.  Remove ALT_HSBUILD patches.
		* acinclude.m4:
		(IT_WITH_HOTSPOT_BUILD): Use the default HotSpot in
		all cases again.
		* hotspot.map: Remove zero.  Update default to bring
		in Zero build fix.
		* patches/zero_libffi.patch: Patch to fix use
		of LIBFFI_CFLAGS and LIBFFI_LIBS in the HotSpot build.


diffstat:

 ChangeLog                                              |     19 +
 Makefile.am                                            |     11 +-
 acinclude.m4                                           |      6 +-
 hotspot.map                                            |      4 +-
 patches/hotspot/zero/7089790-bsd_port.patch            |  28881 ---------------
 patches/hotspot/zero/7098194-macosx_port.patch         |  11389 -----
 patches/hotspot/zero/7116189-setnativethreadname.patch |     67 -
 patches/hotspot/zero/7175133-string_offset.patch       |     48 -
 patches/hotspot/zero/revert_arm_debug.patch            |     55 -
 patches/zero_libffi.patch                              |     37 +
 10 files changed, 59 insertions(+), 40458 deletions(-)

diffs (truncated from 40575 to 500 lines):

diff -r 0ec29918b804 -r 08d655f1631e ChangeLog
--- a/ChangeLog	Mon Jan 14 20:12:21 2013 +0000
+++ b/ChangeLog	Tue Jan 15 01:10:49 2013 +0000
@@ -1,3 +1,22 @@
+2013-01-14  Andrew John Hughes  <gnu_andrew at member.fsf.org>
+
+	* patches/hotspot/zero/7089790-bsd_port.patch,
+	* patches/hotspot/zero/7098194-macosx_port.patch,
+	* patches/hotspot/zero/7116189-setnativethreadname.patch,
+	* patches/hotspot/zero/7175133-string_offset.patch,
+	* patches/hotspot/zero/revert_arm_debug.patch:
+	Remove patches for HotSpot from 2.1.
+	* Makefile.am:
+	(ICEDTEA_PATCHES): Add new patch to fix inclusion of
+	libffi in Zero build.  Remove ALT_HSBUILD patches.
+	* acinclude.m4:
+	(IT_WITH_HOTSPOT_BUILD): Use the default HotSpot in
+	all cases again.
+	* hotspot.map: Remove zero.  Update default to bring
+	in Zero build fix.
+	* patches/zero_libffi.patch: Patch to fix use
+	of LIBFFI_CFLAGS and LIBFFI_LIBS in the HotSpot build.
+
 2013-01-14  Andrew John Hughes  <gnu_andrew at member.fsf.org>
 
 	* NEWS:
diff -r 0ec29918b804 -r 08d655f1631e Makefile.am
--- a/Makefile.am	Mon Jan 14 20:12:21 2013 +0000
+++ b/Makefile.am	Tue Jan 15 01:10:49 2013 +0000
@@ -240,19 +240,10 @@
 
 # Patch list
 
-ICEDTEA_PATCHES =
+ICEDTEA_PATCHES = patches/zero_libffi.patch
 
 # Conditional patches
 
-if WITH_ALT_HSBUILD
-ICEDTEA_PATCHES += \
-	patches/hotspot/$(HSBUILD)/7089790-bsd_port.patch \
-	patches/hotspot/$(HSBUILD)/7098194-macosx_port.patch \
-	patches/hotspot/$(HSBUILD)/7116189-setnativethreadname.patch \
-	patches/hotspot/$(HSBUILD)/6924259-string_offset.patch \
-	patches/hotspot/$(HSBUILD)/revert_arm_debug.patch
-endif
-
 if WITH_RHINO
 ICEDTEA_PATCHES += \
 	patches/rhino.patch
diff -r 0ec29918b804 -r 08d655f1631e acinclude.m4
--- a/acinclude.m4	Mon Jan 14 20:12:21 2013 +0000
+++ b/acinclude.m4	Tue Jan 15 01:10:49 2013 +0000
@@ -924,11 +924,7 @@
 AC_DEFUN([IT_WITH_HOTSPOT_BUILD],
 [
   AC_REQUIRE([IT_ENABLE_ZERO_BUILD])
-  if test "x${use_zero}" = "xyes"; then
-    DEFAULT_BUILD="zero"
-  else
-    DEFAULT_BUILD="default"
-  fi
+  DEFAULT_BUILD="default"
   AC_MSG_CHECKING([which HotSpot build to use])
   AC_ARG_WITH([hotspot-build],
 	      [AS_HELP_STRING(--with-hotspot-build=BUILD,the HotSpot build to use [[BUILD=default]])],
diff -r 0ec29918b804 -r 08d655f1631e hotspot.map
--- a/hotspot.map	Mon Jan 14 20:12:21 2013 +0000
+++ b/hotspot.map	Tue Jan 15 01:10:49 2013 +0000
@@ -1,3 +1,1 @@
-# version url changeset sha256sum
-default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot 0685d07e5b43 ec2a2dd1423c62860925b24989729d356b441f250adc1496b5bc857baf7a2a44
-zero http://icedtea.classpath.org/hg/release/icedtea7-forest-2.1/hotspot a456d0771ba0 09a64fca0beff0759ef1b461d63ed6a00e43032972781bb3a55e49d8b93f67d0
+default http://icedtea.classpath.org/hg/icedtea7-forest/hotspot a57f19258524 334a0eedef7b45c624885460a214bf697154e6611ef5d6874d506c258db27a5d
diff -r 0ec29918b804 -r 08d655f1631e patches/hotspot/zero/7089790-bsd_port.patch
--- a/patches/hotspot/zero/7089790-bsd_port.patch	Mon Jan 14 20:12:21 2013 +0000
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28881 +0,0 @@
-diff -Nru openjdk.orig/hotspot/agent/make/Makefile openjdk/hotspot/agent/make/Makefile
---- openjdk.orig/hotspot/agent/make/Makefile	2012-06-07 19:21:17.000000000 +0100
-+++ openjdk/hotspot/agent/make/Makefile	2012-07-25 15:09:16.172836100 +0100
-@@ -53,6 +53,9 @@
- sun.jvm.hotspot.compiler \
- sun.jvm.hotspot.debugger \
- sun.jvm.hotspot.debugger.amd64 \
-+sun.jvm.hotspot.debugger.bsd \
-+sun.jvm.hotspot.debugger.bsd.amd64 \
-+sun.jvm.hotspot.debugger.bsd.x86 \
- sun.jvm.hotspot.debugger.cdbg \
- sun.jvm.hotspot.debugger.cdbg.basic \
- sun.jvm.hotspot.debugger.cdbg.basic.amd64 \
-@@ -94,6 +97,9 @@
- sun.jvm.hotspot.prims \
- sun.jvm.hotspot.runtime \
- sun.jvm.hotspot.runtime.amd64 \
-+sun.jvm.hotspot.runtime.bsd \
-+sun.jvm.hotspot.runtime.bsd_amd64 \
-+sun.jvm.hotspot.runtime.bsd_x86 \
- sun.jvm.hotspot.runtime.ia64 \
- sun.jvm.hotspot.runtime.linux \
- sun.jvm.hotspot.runtime.linux_amd64 \
-@@ -144,6 +150,9 @@
- sun/jvm/hotspot/compiler/*.java \
- sun/jvm/hotspot/debugger/*.java \
- sun/jvm/hotspot/debugger/amd64/*.java \
-+sun/jvm/hotspot/debugger/bsd/*.java \
-+sun/jvm/hotspot/debugger/bsd/amd64/*.java \
-+sun/jvm/hotspot/debugger/bsd/x86/*.java \
- sun/jvm/hotspot/debugger/cdbg/*.java \
- sun/jvm/hotspot/debugger/cdbg/basic/*.java \
- sun/jvm/hotspot/debugger/cdbg/basic/amd64/*.java \
-@@ -180,6 +189,9 @@
- sun/jvm/hotspot/prims/*.java \
- sun/jvm/hotspot/runtime/*.java \
- sun/jvm/hotspot/runtime/amd64/*.java \
-+sun/jvm/hotspot/runtime/bsd/*.java \
-+sun/jvm/hotspot/runtime/bsd_amd64/*.java \
-+sun/jvm/hotspot/runtime/bsd_x86/*.java \
- sun/jvm/hotspot/runtime/ia64/*.java \
- sun/jvm/hotspot/runtime/linux/*.java \
- sun/jvm/hotspot/runtime/linux_amd64/*.java \
-diff -Nru openjdk.orig/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c openjdk/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c
---- openjdk.orig/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c	1970-01-01 01:00:00.000000000 +0100
-+++ openjdk/hotspot/agent/src/os/bsd/BsdDebuggerLocal.c	2012-07-25 15:09:16.172836100 +0100
-@@ -0,0 +1,413 @@
-+/*
-+ * Copyright (c) 2002, 2007, Oracle and/or its affiliates. All rights reserved.
-+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
-+ *
-+ * This code is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 only, as
-+ * published by the Free Software Foundation.
-+ *
-+ * This code is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-+ * version 2 for more details (a copy is included in the LICENSE file that
-+ * accompanied this code).
-+ *
-+ * You should have received a copy of the GNU General Public License version
-+ * 2 along with this work; if not, write to the Free Software Foundation,
-+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
-+ *
-+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
-+ * or visit www.oracle.com if you need additional information or have any
-+ * questions.
-+ *
-+ */
-+
-+#include <stdlib.h>
-+#include <jni.h>
-+#include "libproc.h"
-+
-+#if defined(x86_64) && !defined(amd64)
-+#define amd64 1
-+#endif
-+
-+#ifdef i386
-+#include "sun_jvm_hotspot_debugger_x86_X86ThreadContext.h"
-+#endif
-+
-+#ifdef amd64
-+#include "sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext.h"
-+#endif
-+
-+#if defined(sparc) || defined(sparcv9)
-+#include "sun_jvm_hotspot_debugger_sparc_SPARCThreadContext.h"
-+#endif
-+
-+static jfieldID p_ps_prochandle_ID = 0;
-+static jfieldID threadList_ID = 0;
-+static jfieldID loadObjectList_ID = 0;
-+
-+static jmethodID createClosestSymbol_ID = 0;
-+static jmethodID createLoadObject_ID = 0;
-+static jmethodID getThreadForThreadId_ID = 0;
-+static jmethodID listAdd_ID = 0;
-+
-+#define CHECK_EXCEPTION_(value) if ((*env)->ExceptionOccurred(env)) { return value; }
-+#define CHECK_EXCEPTION if ((*env)->ExceptionOccurred(env)) { return;}
-+#define THROW_NEW_DEBUGGER_EXCEPTION_(str, value) { throw_new_debugger_exception(env, str); return value; }
-+#define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;}
-+
-+static void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
-+  (*env)->ThrowNew(env, (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException"), errMsg);
-+}
-+
-+static struct ps_prochandle* get_proc_handle(JNIEnv* env, jobject this_obj) {
-+  jlong ptr = (*env)->GetLongField(env, this_obj, p_ps_prochandle_ID);
-+  return (struct ps_prochandle*)(intptr_t)ptr;
-+}
-+
-+/*
-+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
-+ * Method:    init0
-+ * Signature: ()V
-+ */
-+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_init0
-+  (JNIEnv *env, jclass cls) {
-+  jclass listClass;
-+
-+  if (init_libproc(getenv("LIBSAPROC_DEBUG") != NULL) != true) {
-+     THROW_NEW_DEBUGGER_EXCEPTION("can't initialize libproc");
-+  }
-+
-+  // fields we use
-+  p_ps_prochandle_ID = (*env)->GetFieldID(env, cls, "p_ps_prochandle", "J");
-+  CHECK_EXCEPTION;
-+  threadList_ID = (*env)->GetFieldID(env, cls, "threadList", "Ljava/util/List;");
-+  CHECK_EXCEPTION;
-+  loadObjectList_ID = (*env)->GetFieldID(env, cls, "loadObjectList", "Ljava/util/List;");
-+  CHECK_EXCEPTION;
-+
-+  // methods we use
-+  createClosestSymbol_ID = (*env)->GetMethodID(env, cls, "createClosestSymbol",
-+                    "(Ljava/lang/String;J)Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;");
-+  CHECK_EXCEPTION;
-+  createLoadObject_ID = (*env)->GetMethodID(env, cls, "createLoadObject",
-+                    "(Ljava/lang/String;JJ)Lsun/jvm/hotspot/debugger/cdbg/LoadObject;");
-+  CHECK_EXCEPTION;
-+  getThreadForThreadId_ID = (*env)->GetMethodID(env, cls, "getThreadForThreadId",
-+                                                     "(J)Lsun/jvm/hotspot/debugger/ThreadProxy;");
-+  CHECK_EXCEPTION;
-+  // java.util.List method we call
-+  listClass = (*env)->FindClass(env, "java/util/List");
-+  CHECK_EXCEPTION;
-+  listAdd_ID = (*env)->GetMethodID(env, listClass, "add", "(Ljava/lang/Object;)Z");
-+  CHECK_EXCEPTION;
-+}
-+
-+JNIEXPORT jint JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getAddressSize
-+  (JNIEnv *env, jclass cls)
-+{
-+#ifdef _LP64
-+ return 8;
-+#else
-+ return 4;
-+#endif
-+
-+}
-+
-+
-+static void fillThreadsAndLoadObjects(JNIEnv* env, jobject this_obj, struct ps_prochandle* ph) {
-+  int n = 0, i = 0;
-+
-+  // add threads
-+  n = get_num_threads(ph);
-+  for (i = 0; i < n; i++) {
-+    jobject thread;
-+    jobject threadList;
-+    lwpid_t lwpid;
-+
-+    lwpid = get_lwp_id(ph, i);
-+    thread = (*env)->CallObjectMethod(env, this_obj, getThreadForThreadId_ID,
-+                                      (jlong)lwpid);
-+    CHECK_EXCEPTION;
-+    threadList = (*env)->GetObjectField(env, this_obj, threadList_ID);
-+    CHECK_EXCEPTION;
-+    (*env)->CallBooleanMethod(env, threadList, listAdd_ID, thread);
-+    CHECK_EXCEPTION;
-+  }
-+
-+  // add load objects
-+  n = get_num_libs(ph);
-+  for (i = 0; i < n; i++) {
-+     uintptr_t base;
-+     const char* name;
-+     jobject loadObject;
-+     jobject loadObjectList;
-+
-+     base = get_lib_base(ph, i);
-+     name = get_lib_name(ph, i);
-+     loadObject = (*env)->CallObjectMethod(env, this_obj, createLoadObject_ID,
-+                                   (*env)->NewStringUTF(env, name), (jlong)0, (jlong)base);
-+     CHECK_EXCEPTION;
-+     loadObjectList = (*env)->GetObjectField(env, this_obj, loadObjectList_ID);
-+     CHECK_EXCEPTION;
-+     (*env)->CallBooleanMethod(env, loadObjectList, listAdd_ID, loadObject);
-+     CHECK_EXCEPTION;
-+  }
-+}
-+
-+/*
-+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
-+ * Method:    attach0
-+ * Signature: (I)V
-+ */
-+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__I
-+  (JNIEnv *env, jobject this_obj, jint jpid) {
-+
-+  struct ps_prochandle* ph;
-+  if ( (ph = Pgrab(jpid)) == NULL) {
-+    THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the process");
-+  }
-+  (*env)->SetLongField(env, this_obj, p_ps_prochandle_ID, (jlong)(intptr_t)ph);
-+  fillThreadsAndLoadObjects(env, this_obj, ph);
-+}
-+
-+/*
-+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
-+ * Method:    attach0
-+ * Signature: (Ljava/lang/String;Ljava/lang/String;)V
-+ */
-+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_attach0__Ljava_lang_String_2Ljava_lang_String_2
-+  (JNIEnv *env, jobject this_obj, jstring execName, jstring coreName) {
-+  const char *execName_cstr;
-+  const char *coreName_cstr;
-+  jboolean isCopy;
-+  struct ps_prochandle* ph;
-+
-+  execName_cstr = (*env)->GetStringUTFChars(env, execName, &isCopy);
-+  CHECK_EXCEPTION;
-+  coreName_cstr = (*env)->GetStringUTFChars(env, coreName, &isCopy);
-+  CHECK_EXCEPTION;
-+
-+  if ( (ph = Pgrab_core(execName_cstr, coreName_cstr)) == NULL) {
-+    (*env)->ReleaseStringUTFChars(env, execName, execName_cstr);
-+    (*env)->ReleaseStringUTFChars(env, coreName, coreName_cstr);
-+    THROW_NEW_DEBUGGER_EXCEPTION("Can't attach to the core file");
-+  }
-+  (*env)->SetLongField(env, this_obj, p_ps_prochandle_ID, (jlong)(intptr_t)ph);
-+  (*env)->ReleaseStringUTFChars(env, execName, execName_cstr);
-+  (*env)->ReleaseStringUTFChars(env, coreName, coreName_cstr);
-+  fillThreadsAndLoadObjects(env, this_obj, ph);
-+}
-+
-+/*
-+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
-+ * Method:    detach0
-+ * Signature: ()V
-+ */
-+JNIEXPORT void JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_detach0
-+  (JNIEnv *env, jobject this_obj) {
-+  struct ps_prochandle* ph = get_proc_handle(env, this_obj);
-+  if (ph != NULL) {
-+     Prelease(ph);
-+  }
-+}
-+
-+/*
-+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
-+ * Method:    lookupByName0
-+ * Signature: (Ljava/lang/String;Ljava/lang/String;)J
-+ */
-+JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByName0
-+  (JNIEnv *env, jobject this_obj, jstring objectName, jstring symbolName) {
-+  const char *objectName_cstr, *symbolName_cstr;
-+  jlong addr;
-+  jboolean isCopy;
-+  struct ps_prochandle* ph = get_proc_handle(env, this_obj);
-+
-+  objectName_cstr = NULL;
-+  if (objectName != NULL) {
-+    objectName_cstr = (*env)->GetStringUTFChars(env, objectName, &isCopy);
-+    CHECK_EXCEPTION_(0);
-+  }
-+  symbolName_cstr = (*env)->GetStringUTFChars(env, symbolName, &isCopy);
-+  CHECK_EXCEPTION_(0);
-+
-+  addr = (jlong) lookup_symbol(ph, objectName_cstr, symbolName_cstr);
-+
-+  if (objectName_cstr != NULL) {
-+    (*env)->ReleaseStringUTFChars(env, objectName, objectName_cstr);
-+  }
-+  (*env)->ReleaseStringUTFChars(env, symbolName, symbolName_cstr);
-+  return addr;
-+}
-+
-+/*
-+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
-+ * Method:    lookupByAddress0
-+ * Signature: (J)Lsun/jvm/hotspot/debugger/cdbg/ClosestSymbol;
-+ */
-+JNIEXPORT jobject JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_lookupByAddress0
-+  (JNIEnv *env, jobject this_obj, jlong addr) {
-+  uintptr_t offset;
-+  const char* sym = NULL;
-+
-+  struct ps_prochandle* ph = get_proc_handle(env, this_obj);
-+  sym = symbol_for_pc(ph, (uintptr_t) addr, &offset);
-+  if (sym == NULL) return 0;
-+  return (*env)->CallObjectMethod(env, this_obj, createClosestSymbol_ID,
-+                          (*env)->NewStringUTF(env, sym), (jlong)offset);
-+}
-+
-+/*
-+ * Class:     sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal
-+ * Method:    readBytesFromProcess0
-+ * Signature: (JJ)Lsun/jvm/hotspot/debugger/ReadResult;
-+ */
-+JNIEXPORT jbyteArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_readBytesFromProcess0
-+  (JNIEnv *env, jobject this_obj, jlong addr, jlong numBytes) {
-+
-+  jboolean isCopy;
-+  jbyteArray array;
-+  jbyte *bufPtr;
-+  ps_err_e err;
-+
-+  array = (*env)->NewByteArray(env, numBytes);
-+  CHECK_EXCEPTION_(0);
-+  bufPtr = (*env)->GetByteArrayElements(env, array, &isCopy);
-+  CHECK_EXCEPTION_(0);
-+
-+  err = ps_pread(get_proc_handle(env, this_obj), (psaddr_t) (uintptr_t)addr, bufPtr, numBytes);
-+  (*env)->ReleaseByteArrayElements(env, array, bufPtr, 0);
-+  return (err == PS_OK)? array : 0;
-+}
-+
-+JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_bsd_BsdDebuggerLocal_getThreadIntegerRegisterSet0
-+  (JNIEnv *env, jobject this_obj, jint lwp_id) {
-+
-+  struct reg gregs;
-+  jboolean isCopy;
-+  jlongArray array;
-+  jlong *regs;
-+
-+  struct ps_prochandle* ph = get_proc_handle(env, this_obj);
-+  if (get_lwp_regs(ph, lwp_id, &gregs) != true) {
-+     THROW_NEW_DEBUGGER_EXCEPTION_("get_thread_regs failed for a lwp", 0);
-+  }
-+
-+#undef NPRGREG
-+#ifdef i386
-+#define NPRGREG sun_jvm_hotspot_debugger_x86_X86ThreadContext_NPRGREG
-+#endif
-+#ifdef ia64
-+#define NPRGREG IA64_REG_COUNT
-+#endif
-+#ifdef amd64
-+#define NPRGREG sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_NPRGREG
-+#endif
-+#if defined(sparc) || defined(sparcv9)
-+#define NPRGREG sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_NPRGREG
-+#endif
-+
-+  array = (*env)->NewLongArray(env, NPRGREG);
-+  CHECK_EXCEPTION_(0);
-+  regs = (*env)->GetLongArrayElements(env, array, &isCopy);
-+
-+#undef REG_INDEX
-+
-+#ifdef i386
-+#define REG_INDEX(reg) sun_jvm_hotspot_debugger_x86_X86ThreadContext_##reg
-+
-+  regs[REG_INDEX(GS)]  = (uintptr_t) gregs.r_gs;
-+  regs[REG_INDEX(FS)]  = (uintptr_t) gregs.r_fs;
-+  regs[REG_INDEX(ES)]  = (uintptr_t) gregs.r_es;
-+  regs[REG_INDEX(DS)]  = (uintptr_t) gregs.r_ds;
-+  regs[REG_INDEX(EDI)] = (uintptr_t) gregs.r_edi;
-+  regs[REG_INDEX(ESI)] = (uintptr_t) gregs.r_esi;
-+  regs[REG_INDEX(FP)] = (uintptr_t) gregs.r_ebp;
-+  regs[REG_INDEX(SP)] = (uintptr_t) gregs.r_isp;
-+  regs[REG_INDEX(EBX)] = (uintptr_t) gregs.r_ebx;
-+  regs[REG_INDEX(EDX)] = (uintptr_t) gregs.r_edx;
-+  regs[REG_INDEX(ECX)] = (uintptr_t) gregs.r_ecx;
-+  regs[REG_INDEX(EAX)] = (uintptr_t) gregs.r_eax;
-+  regs[REG_INDEX(PC)] = (uintptr_t) gregs.r_eip;
-+  regs[REG_INDEX(CS)]  = (uintptr_t) gregs.r_cs;
-+  regs[REG_INDEX(SS)]  = (uintptr_t) gregs.r_ss;
-+
-+#endif /* i386 */
-+
-+#if ia64
-+  regs = (*env)->GetLongArrayElements(env, array, &isCopy);
-+  int i;
-+  for (i = 0; i < NPRGREG; i++ ) {
-+    regs[i] = 0xDEADDEAD;
-+  }
-+#endif /* ia64 */
-+
-+#ifdef amd64
-+#define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg
-+
-+  regs[REG_INDEX(R15)] = gregs.r_r15;
-+  regs[REG_INDEX(R14)] = gregs.r_r14;
-+  regs[REG_INDEX(R13)] = gregs.r_r13;
-+  regs[REG_INDEX(R12)] = gregs.r_r12;
-+  regs[REG_INDEX(RBP)] = gregs.r_rbp;
-+  regs[REG_INDEX(RBX)] = gregs.r_rbx;
-+  regs[REG_INDEX(R11)] = gregs.r_r11;
-+  regs[REG_INDEX(R10)] = gregs.r_r10;
-+  regs[REG_INDEX(R9)] = gregs.r_r9;
-+  regs[REG_INDEX(R8)] = gregs.r_r8;
-+  regs[REG_INDEX(RAX)] = gregs.r_rax;
-+  regs[REG_INDEX(RCX)] = gregs.r_rcx;
-+  regs[REG_INDEX(RDX)] = gregs.r_rdx;
-+  regs[REG_INDEX(RSI)] = gregs.r_rsi;
-+  regs[REG_INDEX(RDI)] = gregs.r_rdi;
-+  regs[REG_INDEX(RIP)] = gregs.r_rip;
-+  regs[REG_INDEX(CS)] = gregs.r_cs;
-+  regs[REG_INDEX(RSP)] = gregs.r_rsp;
-+  regs[REG_INDEX(SS)] = gregs.r_ss;
-+//  regs[REG_INDEX(FSBASE)] = gregs.fs_base;
-+//  regs[REG_INDEX(GSBASE)] = gregs.gs_base;
-+//  regs[REG_INDEX(DS)] = gregs.ds;
-+//  regs[REG_INDEX(ES)] = gregs.es;
-+//  regs[REG_INDEX(FS)] = gregs.fs;
-+//  regs[REG_INDEX(GS)] = gregs.gs;
-+
-+#endif /* amd64 */



More information about the distro-pkg-dev mailing list