From 0ba2cfdc6c00dbfc184736e015347472cca13e38 Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Wed, 8 May 2013 13:16:38 +0200 Subject: Update kfreebsd-support-hotspot --- debian/patches/kfreebsd-support-hotspot.diff | 219 ++++++++++++++++----------- 1 file changed, 129 insertions(+), 90 deletions(-) diff --git a/debian/patches/kfreebsd-support-hotspot.diff b/debian/patches/kfreebsd-support-hotspot.diff index d6ca10c..05404b5 100644 --- a/debian/patches/kfreebsd-support-hotspot.diff +++ b/debian/patches/kfreebsd-support-hotspot.diff @@ -1,31 +1,31 @@ -Description: Initial GNU/kFreeBSD support for openjdk-7 (Hotspot part) - - Alter build system to consider GNU/kFreeBSD like linux - since this port is libc based. - Also treat i386 arch has i686 (uname -m return i386 on BSD*) - openjdk/hotspot/make/defs.make - - Use LOCAL_PEERCRED (from kFreeBSD kernel) instead of - SO_PEERCRED and alter related structs. - openjdk/hotspot/src/os/linux/vm/attachListener_linux.cpp - - Use sysctl call instead of sysinfo. - openjdk/hotspot/src/os/linux/vm/os_linux.cpp - - Change access to CPU register - openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp - openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c - openjdk/hotspot/agent/src/os/linux/libproc.h - openjdk/hotspot/agent/src/os/linux/ps_core.c - (from bsd-port) - - Fix ptrace usage under freebsd kernel - openjdk/hotspot/agent/src/os/linux/ps_proc.c - Should not be keep like this : - - Undefined UINTPTR_MAX - openjdk/hotspot/src/share/vm/memory/allocation.hpp - openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp -Author: Damien Raude-Morvan -Last-Update: 2012-03-05 -Forwarded: no ---- openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c.orig +From 7268bef341b5668169892f5ac0569d5161d25ec9 Mon Sep 17 00:00:00 2001 +Message-Id: <7268bef341b5668169892f5ac0569d5161d25ec9.1368289639.git.agx@sigxcpu.org> +From: =?UTF-8?q?Guido=20G=C3=BCnther?= +Date: Sat, 11 May 2013 18:26:43 +0200 +Subject: [PATCH] kfreebsd-support-hotspot.diff + +--- + agent/src/os/linux/LinuxDebuggerLocal.c | 44 ++++++++- + agent/src/os/linux/libproc.h | 8 ++ + agent/src/os/linux/ps_core.c | 38 ++++++++ + agent/src/os/linux/ps_proc.c | 54 +++++++++++ + make/defs.make | 7 +- + make/linux/Makefile | 3 + + make/linux/makefiles/defs.make | 2 +- + src/os/linux/vm/attachListener_linux.cpp | 18 +++- + src/os/linux/vm/jvm_linux.cpp | 2 + + src/os/linux/vm/os_linux.cpp | 32 +++++++ + src/os/posix/launcher/java_md.c | 12 +-- + src/os_cpu/linux_x86/vm/os_linux_x86.cpp | 150 ++++++++++++++++++++++++++++++ + src/share/vm/memory/allocation.hpp | 6 +- + src/share/vm/oops/generateOopMap.cpp | 10 +- + 14 files changed, 362 insertions(+), 24 deletions(-) + +diff --git openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c openjdk/agent/src/os/linux/LinuxDebuggerLocal.c +index 5771fdd..5019266 100644 +--- openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c +++ openjdk/hotspot/agent/src/os/linux/LinuxDebuggerLocal.c -@@ -316,7 +316,7 @@ +@@ -316,7 +316,7 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo #ifdef i386 #define REG_INDEX(reg) sun_jvm_hotspot_debugger_x86_X86ThreadContext_##reg @@ -34,7 +34,7 @@ Forwarded: no regs[REG_INDEX(GS)] = (uintptr_t) gregs.xgs; regs[REG_INDEX(FS)] = (uintptr_t) gregs.xfs; regs[REG_INDEX(ES)] = (uintptr_t) gregs.xes; -@@ -332,7 +332,23 @@ +@@ -332,7 +332,23 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo regs[REG_INDEX(PC)] = (uintptr_t) gregs.eip; regs[REG_INDEX(CS)] = (uintptr_t) gregs.xcs; regs[REG_INDEX(SS)] = (uintptr_t) gregs.xss; @@ -59,7 +59,7 @@ Forwarded: no #endif /* i386 */ #if ia64 -@@ -344,7 +360,7 @@ +@@ -344,7 +360,7 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo #ifdef amd64 #define REG_INDEX(reg) sun_jvm_hotspot_debugger_amd64_AMD64ThreadContext_##reg @@ -68,7 +68,7 @@ Forwarded: no regs[REG_INDEX(R15)] = gregs.r15; regs[REG_INDEX(R14)] = gregs.r14; regs[REG_INDEX(R13)] = gregs.r13; -@@ -370,7 +386,27 @@ +@@ -370,7 +386,27 @@ JNIEXPORT jlongArray JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLo regs[REG_INDEX(ES)] = gregs.es; regs[REG_INDEX(FS)] = gregs.fs; regs[REG_INDEX(GS)] = gregs.gs; @@ -97,7 +97,9 @@ Forwarded: no #endif /* amd64 */ #if defined(sparc) || defined(sparcv9) ---- openjdk/hotspot/agent/src/os/linux/libproc.h.orig +diff --git openjdk/hotspot/agent/src/os/linux/libproc.h openjdk/agent/src/os/linux/libproc.h +index 7edaa9c..8c2511c 100644 +--- openjdk/hotspot/agent/src/os/linux/libproc.h +++ openjdk/hotspot/agent/src/os/linux/libproc.h @@ -27,6 +27,10 @@ @@ -110,7 +112,7 @@ Forwarded: no #include "proc_service.h" #if defined(sparc) || defined(sparcv9) -@@ -112,6 +116,10 @@ +@@ -112,6 +116,10 @@ unsigned long regs[IA64_REG_COUNT]; /* integer and fp regs */ #define user_regs_struct pt_regs #endif @@ -121,9 +123,11 @@ Forwarded: no // This C bool type must be int for compatibility with Linux calls and // it would be a mistake to equivalence it to C++ bool on many platforms ---- openjdk/hotspot/agent/src/os/linux/ps_core.c.orig +diff --git openjdk/hotspot/agent/src/os/linux/ps_core.c openjdk/agent/src/os/linux/ps_core.c +index 9739e16..abf4da6 100644 +--- openjdk/hotspot/agent/src/os/linux/ps_core.c +++ openjdk/hotspot/agent/src/os/linux/ps_core.c -@@ -539,11 +539,16 @@ +@@ -539,11 +539,16 @@ static bool core_handle_prstatus(struct ps_prochandle* ph, const char* buf, size return false; // copy regs @@ -140,7 +144,7 @@ Forwarded: no // print the regset print_debug("\teax = 0x%x\n", newthr->regs.eax); print_debug("\tebx = 0x%x\n", newthr->regs.ebx); -@@ -554,9 +559,21 @@ +@@ -554,9 +559,21 @@ static bool core_handle_prstatus(struct ps_prochandle* ph, const char* buf, size print_debug("\tesi = 0x%x\n", newthr->regs.esi); print_debug("\tedi = 0x%x\n", newthr->regs.edi); print_debug("\teip = 0x%x\n", newthr->regs.eip); @@ -162,7 +166,7 @@ Forwarded: no // print the regset print_debug("\tr15 = 0x%lx\n", newthr->regs.r15); print_debug("\tr14 = 0x%lx\n", newthr->regs.r14); -@@ -585,6 +602,27 @@ +@@ -585,6 +602,27 @@ static bool core_handle_prstatus(struct ps_prochandle* ph, const char* buf, size print_debug("\tes = 0x%lx\n", newthr->regs.es); print_debug("\tfs = 0x%lx\n", newthr->regs.fs); print_debug("\tgs = 0x%lx\n", newthr->regs.gs); @@ -190,7 +194,9 @@ Forwarded: no #endif } ---- openjdk/hotspot/agent/src/os/linux/ps_proc.c.orig +diff --git openjdk/hotspot/agent/src/os/linux/ps_proc.c openjdk/agent/src/os/linux/ps_proc.c +index 676e88a..e3c678a 100644 +--- openjdk/hotspot/agent/src/os/linux/ps_proc.c +++ openjdk/hotspot/agent/src/os/linux/ps_proc.c @@ -37,6 +37,18 @@ #define __WALL 0x40000000 // Copied from /usr/include/linux/wait.h @@ -211,7 +217,7 @@ Forwarded: no // This file has the libproc implementation specific to live process // For core files, refer to ps_core.c -@@ -54,7 +66,11 @@ +@@ -54,7 +66,11 @@ static inline uintptr_t align(uintptr_t ptr, size_t size) { // before calling process_read_data. static bool process_read_data(struct ps_prochandle* ph, uintptr_t addr, char *buf, size_t size) { @@ -223,7 +229,7 @@ Forwarded: no size_t i, words; uintptr_t end_addr = addr + size; uintptr_t aligned_addr = align(addr, sizeof(long)); -@@ -62,36 +78,62 @@ +@@ -62,36 +78,62 @@ static bool process_read_data(struct ps_prochandle* ph, uintptr_t addr, char *bu if (aligned_addr != addr) { char *ptr = (char *)&rslt; errno = 0; @@ -286,7 +292,7 @@ Forwarded: no if (errno) { print_debug("ptrace(PTRACE_PEEKDATA, ..) failed for %d bytes @ %lx\n", size, addr); return false; -@@ -130,7 +172,11 @@ +@@ -130,7 +172,11 @@ static bool process_get_lwp_regs(struct ps_prochandle* ph, pid_t pid, struct use #endif #ifdef PTRACE_GETREGS_REQ @@ -298,7 +304,7 @@ Forwarded: no print_debug("ptrace(PTRACE_GETREGS, ...) failed for lwp %d\n", pid); return false; } -@@ -144,7 +190,11 @@ +@@ -144,7 +190,11 @@ static bool process_get_lwp_regs(struct ps_prochandle* ph, pid_t pid, struct use // attach to a process/thread specified by "pid" static bool ptrace_attach(pid_t pid) { @@ -310,7 +316,7 @@ Forwarded: no print_debug("ptrace(PTRACE_ATTACH, ..) failed for %d\n", pid); return false; } else { -@@ -271,7 +321,11 @@ +@@ -271,7 +321,11 @@ static bool read_lib_info(struct ps_prochandle* ph) { // detach a given pid static bool ptrace_detach(pid_t pid) { @@ -322,9 +328,21 @@ Forwarded: no print_debug("ptrace(PTRACE_DETACH, ..) failed for %d\n", pid); return false; } else { ---- openjdk/hotspot/make/defs.make.orig +diff --git openjdk/hotspot/make/defs.make openjdk/make/defs.make +index a0aa0e5..efd8995 100644 +--- openjdk/hotspot/make/defs.make +++ openjdk/hotspot/make/defs.make -@@ -132,6 +132,10 @@ +@@ -118,9 +118,6 @@ endif + # Windows should have OS predefined + ifeq ($(OS),) + OS := $(shell uname -s) +- ifneq ($(findstring BSD,$(OS)),) +- OS=bsd +- endif + ifeq ($(OS), Darwin) + OS=bsd + endif +@@ -142,6 +139,10 @@ else OSNAME=linux endif @@ -335,9 +353,11 @@ Forwarded: no # Determinations of default make arguments and platform specific settings MAKE_ARGS= ---- openjdk/hotspot/make/linux/Makefile.orig +diff --git openjdk/hotspot/make/linux/Makefile openjdk/make/linux/Makefile +index 0ae3f4c..572c3e9 100644 +--- openjdk/hotspot/make/linux/Makefile +++ openjdk/hotspot/make/linux/Makefile -@@ -234,6 +234,9 @@ +@@ -234,6 +234,9 @@ checks: check_os_version check_j2se_version SUPPORTED_OS_VERSION = 2.4% 2.5% 2.6% 3% OS_VERSION := $(shell uname -r) EMPTY_IF_NOT_SUPPORTED = $(filter $(SUPPORTED_OS_VERSION),$(OS_VERSION)) @@ -347,9 +367,11 @@ Forwarded: no check_os_version: ifeq ($(DISABLE_HOTSPOT_OS_VERSION_CHECK)$(EMPTY_IF_NOT_SUPPORTED),) ---- openjdk/hotspot/make/linux/makefiles/defs.make.orig +diff --git openjdk/hotspot/make/linux/makefiles/defs.make openjdk/make/linux/makefiles/defs.make +index 70f502f..8bd7c4e 100644 +--- openjdk/hotspot/make/linux/makefiles/defs.make +++ openjdk/hotspot/make/linux/makefiles/defs.make -@@ -91,7 +91,7 @@ +@@ -91,7 +91,7 @@ ifeq ($(ARCH), x86_64) endif # i686 @@ -358,7 +380,9 @@ Forwarded: no ARCH_DATA_MODEL = 32 PLATFORM = linux-i586 VM_PLATFORM = linux_i486 ---- openjdk/hotspot/src/os/linux/vm/attachListener_linux.cpp.orig +diff --git openjdk/hotspot/src/os/linux/vm/attachListener_linux.cpp openjdk/src/os/linux/vm/attachListener_linux.cpp +index 5b9c729..e88faa3 100644 +--- openjdk/hotspot/src/os/linux/vm/attachListener_linux.cpp +++ openjdk/hotspot/src/os/linux/vm/attachListener_linux.cpp @@ -39,6 +39,10 @@ #define UNIX_PATH_MAX sizeof(((struct sockaddr_un *)0)->sun_path) @@ -371,7 +395,7 @@ Forwarded: no // The attach mechanism on Linux uses a UNIX domain socket. An attach listener // thread is created at startup or is created on-demand via a signal from // the client tool. The attach listener creates a socket and binds it to a file -@@ -337,9 +341,15 @@ +@@ -337,9 +341,15 @@ LinuxAttachOperation* LinuxAttachListener::dequeue() { // get the credentials of the peer and check the effective uid/guid // - check with jeff on this. @@ -387,7 +411,7 @@ Forwarded: no int res; RESTARTABLE(::close(s), res); continue; -@@ -347,10 +357,14 @@ +@@ -347,10 +357,14 @@ LinuxAttachOperation* LinuxAttachListener::dequeue() { uid_t euid = geteuid(); gid_t egid = getegid(); @@ -404,9 +428,11 @@ Forwarded: no } // peer credential look okay so we read the request ---- openjdk/hotspot/src/os/linux/vm/jvm_linux.cpp.orig +diff --git openjdk/hotspot/src/os/linux/vm/jvm_linux.cpp openjdk/src/os/linux/vm/jvm_linux.cpp +index ba84788..8c4937a 100644 +--- openjdk/hotspot/src/os/linux/vm/jvm_linux.cpp +++ openjdk/hotspot/src/os/linux/vm/jvm_linux.cpp -@@ -169,7 +169,9 @@ +@@ -169,7 +169,9 @@ struct siglabel siglabels[] = { "WINCH", SIGWINCH, /* Window size change (4.3 BSD, Sun). */ "POLL", SIGPOLL, /* Pollable event occurred (System V). */ "IO", SIGIO, /* I/O now possible (4.2 BSD). */ @@ -416,9 +442,11 @@ Forwarded: no #ifdef SIGSYS "SYS", SIGSYS /* Bad system call. Only on some Linuxen! */ #endif ---- openjdk/hotspot/src/os/linux/vm/os_linux.cpp.orig +diff --git openjdk/hotspot/src/os/linux/vm/os_linux.cpp openjdk/src/os/linux/vm/os_linux.cpp +index 55f52c3..a82f627 100644 +--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp +++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp -@@ -115,8 +115,13 @@ +@@ -113,8 +113,13 @@ # include # include # include @@ -432,7 +460,7 @@ Forwarded: no # include # include # include -@@ -127,6 +132,10 @@ +@@ -125,6 +130,10 @@ #define MAX_PATH (2 * K) @@ -442,8 +470,8 @@ Forwarded: no + // for timer info max values which include all bits #define ALL_64_BITS CONST64(0xFFFFFFFFFFFFFFFF) - #define SEC_IN_NANOSECS 1000000000LL -@@ -208,11 +217,22 @@ + +@@ -205,11 +214,22 @@ julong os::available_memory() { } julong os::Linux::available_memory() { @@ -466,7 +494,7 @@ Forwarded: no } julong os::physical_memory() { -@@ -2161,18 +2181,22 @@ +@@ -2128,18 +2148,22 @@ void os::print_memory_info(outputStream* st) { st->print("Memory:"); st->print(" %dk page", os::vm_page_size()>>10); @@ -489,7 +517,7 @@ Forwarded: no st->cr(); } -@@ -5389,6 +5413,7 @@ +@@ -5372,6 +5396,7 @@ extern char** environ; int os::fork_and_exec(char* cmd) { const char * argv[4] = {"sh", "-c", cmd, NULL}; @@ -497,7 +525,7 @@ Forwarded: no // fork() in LinuxThreads/NPTL is not async-safe. It needs to run // pthread_atfork handlers and reset pthread library. All we need is a // separate process to execve. Make a direct syscall to fork process. -@@ -5396,6 +5421,9 @@ +@@ -5379,6 +5404,9 @@ int os::fork_and_exec(char* cmd) { // the best... pid_t pid = NOT_IA64(syscall(__NR_fork);) IA64_ONLY(fork();) @@ -507,7 +535,7 @@ Forwarded: no if (pid < 0) { // fork failed -@@ -5404,6 +5432,7 @@ +@@ -5387,6 +5415,7 @@ int os::fork_and_exec(char* cmd) { } else if (pid == 0) { // child process @@ -515,7 +543,7 @@ Forwarded: no // execve() in LinuxThreads will call pthread_kill_other_threads_np() // first to kill every thread on the thread list. Because this list is // not reset by fork() (see notes above), execve() will instead kill -@@ -5413,6 +5442,9 @@ +@@ -5396,6 +5425,9 @@ int os::fork_and_exec(char* cmd) { // above. NOT_IA64(syscall(__NR_execve, "/bin/sh", argv, environ);) IA64_ONLY(execve("/bin/sh", (char* const*)argv, environ);) @@ -525,18 +553,20 @@ Forwarded: no // execve failed _exit(-1); ---- openjdk/hotspot/src/os/posix/launcher/java_md.c.orig +diff --git openjdk/hotspot/src/os/posix/launcher/java_md.c openjdk/src/os/posix/launcher/java_md.c +index 8b1542e..69e0832 100644 +--- openjdk/hotspot/src/os/posix/launcher/java_md.c +++ openjdk/hotspot/src/os/posix/launcher/java_md.c @@ -41,7 +41,7 @@ #include "version_comp.h" #endif --#ifdef __linux__ -+#if defined(__linux__) || defined(__GLIBC__) +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) #include #else #include -@@ -89,7 +89,7 @@ +@@ -96,7 +96,7 @@ extern char **environ; * A collection of useful strings. One should think of these as #define * entries, but actual strings can be more efficient (with many compilers). */ @@ -545,25 +575,25 @@ Forwarded: no static const char *system_dir = "/usr/java"; static const char *user_dir = "/java"; #else /* Solaris */ -@@ -426,7 +426,7 @@ - runpath = getenv("LD_LIBRARY_PATH"); +@@ -433,7 +433,7 @@ CreateExecutionEnvironment(int *_argcp, + runpath = getenv(LD_LIBRARY_PATH); #endif /* __sun */ --#ifdef __linux +-#if defined(__linux__) +#if defined(__linux__) || defined(__GLIBC__) /* * On linux, if a binary is running as sgid or suid, glibc sets * LD_LIBRARY_PATH to the empty string for security purposes. (In -@@ -792,7 +792,7 @@ +@@ -823,7 +823,7 @@ error: jboolean GetApplicationHome(char *buf, jint bufsize) { --#ifdef __linux__ -+#if defined(__linux__) || defined(__GLIBC__) +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) char *execname = GetExecname(); if (execname) { strncpy(buf, execname, bufsize-1); -@@ -961,7 +961,7 @@ +@@ -992,7 +992,7 @@ SetExecname(char **argv) } } } @@ -572,16 +602,18 @@ Forwarded: no { const char* self = "/proc/self/exe"; char buf[PATH_MAX+1]; -@@ -1821,7 +1821,7 @@ +@@ -1887,7 +1887,7 @@ jlong_format_specifier() { int ContinueInNewThread(int (JNICALL *continuation)(void *), jlong stack_size, void * args) { int rslt; --#ifdef __linux__ -+#if defined(__linux__) || defined(__GLIBC__) +-#if defined(__linux__) || defined(_ALLBSD_SOURCE) ++#if defined(__linux__) || defined(_ALLBSD_SOURCE) || defined(__GLIBC__) pthread_t tid; pthread_attr_t attr; pthread_attr_init(&attr); ---- openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp.orig +diff --git openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp openjdk/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +index ba484b9..d1e7b6f 100644 +--- openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp +++ openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp @@ -81,6 +81,7 @@ # include @@ -646,7 +678,7 @@ Forwarded: no address os::current_stack_pointer() { #ifdef SPARC_WORKS -@@ -119,15 +168,27 @@ +@@ -119,15 +168,27 @@ void os::initialize_thread() { } address os::Linux::ucontext_get_pc(ucontext_t * uc) { @@ -674,7 +706,7 @@ Forwarded: no } // For Forte Analyzer AsyncGetCallTrace profiling support - thread -@@ -279,12 +340,20 @@ +@@ -279,12 +340,20 @@ JVM_handle_linux_signal(int sig, pc = (address) os::Linux::ucontext_get_pc(uc); if (pc == (address) Fetch32PFI) { @@ -695,7 +727,7 @@ Forwarded: no return 1 ; } #endif // AMD64 -@@ -430,7 +499,11 @@ +@@ -430,7 +499,11 @@ JVM_handle_linux_signal(int sig, // Furthermore, a false-positive should be harmless. if (UnguardOnExecutionViolation > 0 && (sig == SIGSEGV || sig == SIGBUS) && @@ -707,7 +739,7 @@ Forwarded: no int page_size = os::vm_page_size(); address addr = (address) info->si_addr; address pc = os::Linux::ucontext_get_pc(uc); -@@ -500,7 +573,11 @@ +@@ -500,7 +573,11 @@ JVM_handle_linux_signal(int sig, // save all thread context in case we need to restore it if (thread != NULL) thread->set_saved_exception_pc(pc); @@ -719,7 +751,7 @@ Forwarded: no return true; } -@@ -752,6 +829,7 @@ +@@ -752,6 +829,7 @@ void os::print_context(outputStream *st, void *context) { ucontext_t *uc = (ucontext_t*)context; st->print_cr("Registers:"); @@ -727,7 +759,7 @@ Forwarded: no #ifdef AMD64 st->print( "RAX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RAX]); st->print(", RBX=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_RBX]); -@@ -794,6 +872,48 @@ +@@ -794,6 +872,48 @@ void os::print_context(outputStream *st, void *context) { st->print(", EFLAGS=" INTPTR_FORMAT, uc->uc_mcontext.gregs[REG_EFL]); st->print(", CR2=" INTPTR_FORMAT, uc->uc_mcontext.cr2); #endif // AMD64 @@ -776,7 +808,7 @@ Forwarded: no st->cr(); st->cr(); -@@ -824,6 +944,7 @@ +@@ -824,6 +944,7 @@ void os::print_register_info(outputStream *st, void *context) { // this is only for the "general purpose" registers @@ -784,7 +816,7 @@ Forwarded: no #ifdef AMD64 st->print("RAX="); print_location(st, uc->uc_mcontext.gregs[REG_RAX]); st->print("RBX="); print_location(st, uc->uc_mcontext.gregs[REG_RBX]); -@@ -851,6 +972,35 @@ +@@ -851,6 +972,35 @@ void os::print_register_info(outputStream *st, void *context) { st->print("ESI="); print_location(st, uc->uc_mcontext.gregs[REG_ESI]); st->print("EDI="); print_location(st, uc->uc_mcontext.gregs[REG_EDI]); #endif // AMD64 @@ -820,9 +852,11 @@ Forwarded: no st->cr(); } ---- openjdk/hotspot/src/share/vm/memory/allocation.hpp.orig +diff --git openjdk/hotspot/src/share/vm/memory/allocation.hpp openjdk/src/share/vm/memory/allocation.hpp +index 4c2f1e8..d2cbfe1 100644 +--- openjdk/hotspot/src/share/vm/memory/allocation.hpp +++ openjdk/hotspot/src/share/vm/memory/allocation.hpp -@@ -218,9 +218,9 @@ +@@ -218,9 +218,9 @@ protected: void signal_out_of_memory(size_t request, const char* whence) const; void check_for_overflow(size_t request, const char* whence) const { @@ -835,9 +869,11 @@ Forwarded: no } public: ---- openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp.orig +diff --git openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp openjdk/src/share/vm/oops/generateOopMap.cpp +index 58ef931..9448389 100644 +--- openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp +++ openjdk/hotspot/src/share/vm/oops/generateOopMap.cpp -@@ -970,11 +970,11 @@ +@@ -970,11 +970,11 @@ void GenerateOopMap::init_basic_blocks() { // The product of bbNo and _state_len can get large if there are lots of // basic blocks and stack/locals/monitors. Need to check to make sure // we don't overflow the capacity of a pointer. @@ -854,3 +890,6 @@ Forwarded: no CellTypeState *basicBlockState = NEW_RESOURCE_ARRAY(CellTypeState, bbNo * _state_len); +-- +1.7.10.4 + -- cgit v1.2.3