Date: Thu, 29 Dec 2016 07:50:40 +0000 (UTC) From: Greg Lewis <glewis@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r429875 - head/java/openjdk8/files Message-ID: <201612290750.uBT7oe01072216@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: glewis Date: Thu Dec 29 07:50:40 2016 New Revision: 429875 URL: https://svnweb.freebsd.org/changeset/ports/429875 Log: . Add support for the HotSpot Serviceability Agent for ppc64. . This also pulls in some OpenBSD tweaks, I believe. These should be a no-op for FreeBSD though. PR: 212709 (partial) Submitted by: Curtis Hamilton <hamiltcl@verizon.net> Modified: head/java/openjdk8/files/patch-bsd Modified: head/java/openjdk8/files/patch-bsd ============================================================================== --- head/java/openjdk8/files/patch-bsd Thu Dec 29 07:50:40 2016 (r429874) +++ head/java/openjdk8/files/patch-bsd Thu Dec 29 07:50:40 2016 (r429875) @@ -1,5 +1,5 @@ --- ./common/autoconf/build-performance.m4 Thu Sep 22 12:29:25 2016 -0700 -+++ ./common/autoconf/build-performance.m4 Mon Oct 24 19:45:12 2016 -0700 ++++ ./common/autoconf/build-performance.m4 Wed Dec 28 10:29:21 2016 -0800 @@ -41,6 +41,10 @@ # Looks like a MacOSX system NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print [$]5}'` @@ -39,7 +39,7 @@ CCACHE= else --- ./common/autoconf/generated-configure.sh Thu Sep 22 12:29:25 2016 -0700 -+++ ./common/autoconf/generated-configure.sh Mon Oct 24 19:45:12 2016 -0700 ++++ ./common/autoconf/generated-configure.sh Wed Dec 28 10:29:21 2016 -0800 @@ -646,6 +646,8 @@ LIBM LIBZIP_CAN_USE_MMAP @@ -98,12 +98,21 @@ --with-x use the X Window System --with-cups specify prefix directory for the cups package (expecting the headers under PATH/include) +@@ -3672,7 +3681,7 @@ + + + # +-# Copyright (c) 2011, 2012, Oracle and/or its affiliates. All rights reserved. ++# Copyright (c) 2011, 2015, 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 @@ -3880,7 +3889,7 @@ #CUSTOM_AUTOCONF_INCLUDE # Do not change or remove the following line, it is needed for consistency checks: -DATE_WHEN_GENERATED=1449096260 -+DATE_WHEN_GENERATED=1460430898 ++DATE_WHEN_GENERATED=1482096439 ############################################################################### # @@ -192,6 +201,15 @@ OPENJDK_TARGET_CPU_OSARCH="i386" elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then # On all platforms except macosx, we replace x86_64 with amd64. +@@ -7985,7 +8028,7 @@ + INCLUDE_SA=false + fi + if test "x$VAR_CPU" = xppc64 ; then +- INCLUDE_SA=false ++ INCLUDE_SA=true + fi + if test "x$OPENJDK_TARGET_CPU" = xaarch64; then + INCLUDE_SA=false @@ -11174,6 +11217,24 @@ ############################################################################### @@ -325,7 +343,46 @@ fi if test "x$OPENJDK_TARGET_OS" = xlinux; then CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX" -@@ -30261,11 +30341,18 @@ +@@ -29794,6 +29874,38 @@ + fi + if test "x$OPENJDK_TARGET_OS" = xbsd; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE" ++ if test "`uname -s`" = "OpenBSD"; then ++ { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ld requires -z wxneeded" >&5 ++$as_echo_n "checking if ld requires -z wxneeded... " >&6; } ++ if test "$cross_compiling" = yes; then : ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ ++ ++else ++ cat confdefs.h - <<_ACEOF >conftest.$ac_ext ++/* end confdefs.h. */ ++#include <sys/mman.h> ++int main() { return mmap(0, 4096, PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) != MAP_FAILED; } ++_ACEOF ++if ac_fn_cxx_try_run "$LINENO"; then : ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 ++$as_echo "yes" >&6; } ++ LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,wxneeded" ++ ++else ++ ++ { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 ++$as_echo "no" >&6; } ++ ++fi ++rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ ++ conftest.$ac_objext conftest.beam conftest.$ac_ext ++fi ++ ++ fi + fi + if test "x$DEBUG_LEVEL" = xrelease; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG" +@@ -30261,11 +30373,18 @@ fi if test "x$OPENJDK_TARGET_OS" = xbsd; then @@ -349,7 +406,7 @@ fi if test "x$OPENJDK" = "xfalse"; then -@@ -30301,14 +30388,18 @@ +@@ -30301,14 +30420,18 @@ # --x-libraries for the sysroot, if that seems to be correct. if test "x$SYS_ROOT" != "x/"; then if test "x$x_includes" = xNONE; then @@ -370,7 +427,7 @@ x_libraries="$SYS_ROOT/usr/X11R6/lib" elif test "$SYS_ROOT/usr/lib64/libX11.so" && test "x$OPENJDK_TARGET_CPU_BITS" = x64; then x_libraries="$SYS_ROOT/usr/lib64" -@@ -31355,6 +31446,10 @@ +@@ -31355,6 +31478,10 @@ # A CSW package seems to be installed! CUPS_FOUND=yes CUPS_CFLAGS="-I/opt/csw/include" @@ -381,7 +438,7 @@ fi { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CUPS_FOUND" >&5 $as_echo "$CUPS_FOUND" >&6; } -@@ -34520,7 +34615,7 @@ +@@ -34520,7 +34647,7 @@ ############################################################################### # @@ -390,7 +447,7 @@ # # Check whether --with-alsa was given. -@@ -34928,15 +35023,66 @@ +@@ -34928,15 +35055,66 @@ if test "x${with_giflib}" = "xbundled"; then USE_EXTERNAL_LIBGIF=false @@ -462,7 +519,7 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DGifGetCode in -lgif" >&5 $as_echo_n "checking for DGifGetCode in -lgif... " >&6; } if ${ac_cv_lib_gif_DGifGetCode+:} false; then : -@@ -34974,16 +35120,96 @@ +@@ -34974,16 +35152,96 @@ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_DGifGetCode" >&5 $as_echo "$ac_cv_lib_gif_DGifGetCode" >&6; } if test "x$ac_cv_lib_gif_DGifGetCode" = xyes; then : @@ -569,7 +626,7 @@ USE_EXTERNAL_LIBGIF=true else -@@ -34991,6 +35217,8 @@ +@@ -34991,6 +35249,8 @@ fi @@ -578,7 +635,7 @@ ############################################################################### # # Check for the zlib library -@@ -35558,6 +35786,11 @@ +@@ -35558,6 +35818,11 @@ LIBCXX="-lstdc++" fi @@ -590,7 +647,7 @@ -@@ -35631,6 +35864,10 @@ +@@ -35631,6 +35896,10 @@ # Looks like a MacOSX system NUM_CORES=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Cores' | awk '{print $5}'` FOUND_CORES=yes @@ -601,7 +658,7 @@ elif test "x$OPENJDK_BUILD_OS" = xaix ; then NUM_CORES=`/usr/sbin/prtconf | grep "^Number Of Processors" | awk '{ print $4 }'` FOUND_CORES=yes -@@ -35686,6 +35923,15 @@ +@@ -35686,6 +35955,15 @@ MEMORY_SIZE=`/usr/sbin/system_profiler -detailLevel full SPHardwareDataType | grep 'Memory' | awk '{print $2}'` MEMORY_SIZE=`expr $MEMORY_SIZE \* 1024` FOUND_MEM=yes @@ -617,7 +674,7 @@ elif test "x$OPENJDK_BUILD_OS" = xwindows; then # Windows, but without cygwin MEMORY_SIZE=`wmic computersystem get totalphysicalmemory -value | grep = | cut -d "=" -f 2-` -@@ -36093,8 +36339,8 @@ +@@ -36093,8 +36371,8 @@ # precompiled headers. { $as_echo "$as_me:${as_lineno-$LINENO}: checking if ccache supports precompiled headers" >&5 $as_echo_n "checking if ccache supports precompiled headers... " >&6; } @@ -629,7 +686,16 @@ $as_echo "no, disabling ccache" >&6; } CCACHE= --- ./common/autoconf/jdk-options.m4 Thu Sep 22 12:29:25 2016 -0700 -+++ ./common/autoconf/jdk-options.m4 Mon Oct 24 19:45:12 2016 -0700 ++++ ./common/autoconf/jdk-options.m4 Wed Dec 28 10:29:21 2016 -0800 +@@ -159,7 +159,7 @@ + INCLUDE_SA=false + fi + if test "x$VAR_CPU" = xppc64 ; then +- INCLUDE_SA=false ++ INCLUDE_SA=true + fi + if test "x$OPENJDK_TARGET_CPU" = xaarch64; then + INCLUDE_SA=false @@ -410,6 +410,20 @@ ############################################################################### @@ -652,7 +718,7 @@ # AC_DEFUN_ONCE([JDKOPT_DETECT_INTREE_EC], --- ./common/autoconf/libraries.m4 Thu Sep 22 12:29:25 2016 -0700 -+++ ./common/autoconf/libraries.m4 Mon Oct 24 19:45:12 2016 -0700 ++++ ./common/autoconf/libraries.m4 Wed Dec 28 10:29:21 2016 -0800 @@ -69,9 +69,15 @@ fi @@ -791,7 +857,7 @@ AC_SUBST(LIBCXX) ]) --- ./common/autoconf/platform.m4 Thu Sep 22 12:29:25 2016 -0700 -+++ ./common/autoconf/platform.m4 Mon Oct 24 19:45:12 2016 -0700 ++++ ./common/autoconf/platform.m4 Wed Dec 28 10:29:21 2016 -0800 @@ -30,7 +30,7 @@ [ # First argument is the cpu name from the trip/quad @@ -852,7 +918,7 @@ elif test "x$OPENJDK_TARGET_OS" != xmacosx && test "x$OPENJDK_TARGET_CPU" = xx86_64; then # On all platforms except macosx, we replace x86_64 with amd64. --- ./common/autoconf/spec.gmk.in Thu Sep 22 12:29:25 2016 -0700 -+++ ./common/autoconf/spec.gmk.in Mon Oct 24 19:45:12 2016 -0700 ++++ ./common/autoconf/spec.gmk.in Wed Dec 28 10:29:21 2016 -0800 @@ -76,6 +76,7 @@ OPENJDK_TARGET_OS:=@OPENJDK_TARGET_OS@ OPENJDK_TARGET_OS_API:=@OPENJDK_TARGET_OS_API@ @@ -877,197 +943,2121 @@ +# Build static libjli on bsd +BSD_STATIC_LIBJLI=@BSD_STATIC_LIBJLI@ + - # Necessary additional compiler flags to compile X11 - X_CFLAGS:=@X_CFLAGS@ - X_LIBS:=@X_LIBS@ -@@ -564,6 +568,8 @@ - ENABLE_INTREE_EC=@ENABLE_INTREE_EC@ - USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ - USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ -+GIFLIB_CFLAGS:=@GIFLIB_CFLAGS@ -+GIFLIB_LDFLAGS:=@GIFLIB_LDFLAGS@ - USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ - LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ - MSVCR_DLL:=@MSVCR_DLL@ ---- ./common/autoconf/toolchain.m4 Thu Sep 22 12:29:25 2016 -0700 -+++ ./common/autoconf/toolchain.m4 Mon Oct 24 19:45:12 2016 -0700 -@@ -72,7 +72,7 @@ - else - COMPILER_VERSION_TEST=`$COMPILER --version 2>&1 | $HEAD -n 1` - # Check that this is likely to be GCC. -- $COMPILER --version 2>&1 | $GREP "Free Software Foundation" > /dev/null -+ $COMPILER --version 2>&1 | $GREP -E "(Free Software Foundation|clang)" > /dev/null - if test $? -ne 0; then - AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler.]) - AC_MSG_NOTICE([The result from running with --version was: "$COMPILER_VERSION_TEST"]) -@@ -350,6 +350,8 @@ - elif test "x$OPENJDK_TARGET_OS" = "xaix"; then - # Do not probe for cc on AIX. - COMPILER_CHECK_LIST="xlc_r" -+ elif test "`uname -s`" = "FreeBSD"; then -+ COMPILER_CHECK_LIST="cc gcc" - else - COMPILER_CHECK_LIST="gcc cc" - fi -@@ -571,7 +573,7 @@ - - # objcopy is used for moving debug symbols to separate files when - # full debug symbols are enabled. -- if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then -+ if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xbsd ; then - AC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy]) - # Only call fixup if objcopy was found. - if test -n "$OBJCOPY"; then -@@ -634,8 +636,10 @@ - SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1' - SET_SHARED_LIBRARY_MAPFILE='' - SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' -+ POST_STRIP_CMD="$STRIP -S" -+ fi -+ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then - SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" -- POST_STRIP_CMD="$STRIP -S" - fi - else - if test "x$OPENJDK_TARGET_OS" = xsolaris; then -@@ -957,7 +961,7 @@ - # - case $COMPILER_NAME in - gcc ) -- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ -+ CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses -Wno-sign-compare \ - -pipe \ - -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" - case $OPENJDK_TARGET_CPU_ARCH in -@@ -1039,22 +1043,33 @@ - CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" - - # The package path is used only on macosx? -- PACKAGE_PATH=/opt/local -+ AC_ARG_WITH(package-path, [AS_HELP_STRING([--with-package-path], -+ [package path to be used for location of third party packages])]) -+ PACKAGE_PATH="$with_package_path" -+ if test "x$PACKAGE_PATH" = x; then -+ if test "`uname -s`" = "Darwin"; then -+ PACKAGE_PATH=/opt/local -+ fi + # Necessary additional compiler flags to compile X11 + X_CFLAGS:=@X_CFLAGS@ + X_LIBS:=@X_LIBS@ +@@ -564,6 +568,8 @@ + ENABLE_INTREE_EC=@ENABLE_INTREE_EC@ + USE_EXTERNAL_LIBJPEG:=@USE_EXTERNAL_LIBJPEG@ + USE_EXTERNAL_LIBGIF:=@USE_EXTERNAL_LIBGIF@ ++GIFLIB_CFLAGS:=@GIFLIB_CFLAGS@ ++GIFLIB_LDFLAGS:=@GIFLIB_LDFLAGS@ + USE_EXTERNAL_LIBZ:=@USE_EXTERNAL_LIBZ@ + LIBZIP_CAN_USE_MMAP:=@LIBZIP_CAN_USE_MMAP@ + MSVCR_DLL:=@MSVCR_DLL@ +--- ./common/autoconf/toolchain.m4 Thu Sep 22 12:29:25 2016 -0700 ++++ ./common/autoconf/toolchain.m4 Wed Dec 28 10:29:21 2016 -0800 +@@ -72,7 +72,7 @@ + else + COMPILER_VERSION_TEST=`$COMPILER --version 2>&1 | $HEAD -n 1` + # Check that this is likely to be GCC. +- $COMPILER --version 2>&1 | $GREP "Free Software Foundation" > /dev/null ++ $COMPILER --version 2>&1 | $GREP -E "(Free Software Foundation|clang)" > /dev/null + if test $? -ne 0; then + AC_MSG_NOTICE([The $COMPILER_NAME compiler (located as $COMPILER) does not seem to be the required GCC compiler.]) + AC_MSG_NOTICE([The result from running with --version was: "$COMPILER_VERSION_TEST"]) +@@ -350,6 +350,8 @@ + elif test "x$OPENJDK_TARGET_OS" = "xaix"; then + # Do not probe for cc on AIX. + COMPILER_CHECK_LIST="xlc_r" ++ elif test "`uname -s`" = "FreeBSD"; then ++ COMPILER_CHECK_LIST="cc gcc" + else + COMPILER_CHECK_LIST="gcc cc" + fi +@@ -571,7 +573,7 @@ + + # objcopy is used for moving debug symbols to separate files when + # full debug symbols are enabled. +- if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux; then ++ if test "x$OPENJDK_TARGET_OS" = xsolaris || test "x$OPENJDK_TARGET_OS" = xlinux || test "x$OPENJDK_TARGET_OS" = xbsd ; then + AC_CHECK_TOOLS(OBJCOPY, [gobjcopy objcopy]) + # Only call fixup if objcopy was found. + if test -n "$OBJCOPY"; then +@@ -634,8 +636,10 @@ + SET_SHARED_LIBRARY_NAME='-Xlinker -install_name -Xlinker @rpath/[$]1' + SET_SHARED_LIBRARY_MAPFILE='' + SET_SHARED_LIBRARY_ORIGIN='-Xlinker -rpath -Xlinker @loader_path/.' ++ POST_STRIP_CMD="$STRIP -S" ++ fi ++ if test "x$OPENJDK_TARGET_OS" = xbsd || test "x$OPENJDK_TARGET_OS" = xmacosx; then + SET_EXECUTABLE_ORIGIN="$SET_SHARED_LIBRARY_ORIGIN" +- POST_STRIP_CMD="$STRIP -S" + fi + else + if test "x$OPENJDK_TARGET_OS" = xsolaris; then +@@ -957,7 +961,7 @@ + # + case $COMPILER_NAME in + gcc ) +- CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses \ ++ CCXXFLAGS_JDK="$CCXXFLAGS $CCXXFLAGS_JDK -W -Wall -Wno-unused -Wno-parentheses -Wno-sign-compare \ + -pipe \ + -D_GNU_SOURCE -D_REENTRANT -D_LARGEFILE64_SOURCE" + case $OPENJDK_TARGET_CPU_ARCH in +@@ -1039,22 +1043,33 @@ + CCXXFLAGS_JDK="$CCXXFLAGS_JDK $ADD_LP64" + + # The package path is used only on macosx? +- PACKAGE_PATH=/opt/local ++ AC_ARG_WITH(package-path, [AS_HELP_STRING([--with-package-path], ++ [package path to be used for location of third party packages])]) ++ PACKAGE_PATH="$with_package_path" ++ if test "x$PACKAGE_PATH" = x; then ++ if test "`uname -s`" = "Darwin"; then ++ PACKAGE_PATH=/opt/local ++ fi ++ ++ if test "`uname -s`" = "FreeBSD"; then ++ PACKAGE_PATH=/usr/local ++ fi ++ ++ if test "`uname -s`" = "NetBSD"; then ++ PACKAGE_PATH=/usr/pkg ++ fi ++ ++ if test "`uname -s`" = "OpenBSD"; then ++ PACKAGE_PATH=/usr/local ++ fi ++ fi ++ + AC_SUBST(PACKAGE_PATH) + + if test "x$OPENJDK_TARGET_CPU_ENDIAN" = xlittle; then +- # The macro _LITTLE_ENDIAN needs to be defined the same to avoid the +- # Sun C compiler warning message: warning: macro redefined: _LITTLE_ENDIAN +- # (The Solaris X86 system defines this in file /usr/include/sys/isa_defs.h). +- # Note: -Dmacro is the same as #define macro 1 +- # -Dmacro= is the same as #define macro +- if test "x$OPENJDK_TARGET_OS" = xsolaris; then +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN=" +- else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_LITTLE_ENDIAN" +- fi ++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DVM_LITTLE_ENDIAN" + else +- CCXXFLAGS_JDK="$CCXXFLAGS_JDK -D_BIG_ENDIAN" ++ CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DVM_BIG_ENDIAN" + fi + if test "x$OPENJDK_TARGET_OS" = xlinux; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DLINUX" +@@ -1084,6 +1099,22 @@ + fi + if test "x$OPENJDK_TARGET_OS" = xbsd; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DBSD -D_ALLBSD_SOURCE" ++ if test "`uname -s`" = "OpenBSD"; then ++ AC_MSG_CHECKING([if ld requires -z wxneeded]) ++ AC_RUN_IFELSE([AC_LANG_SOURCE([[#include <sys/mman.h> ++int main() { return mmap(0, 4096, PROT_WRITE|PROT_EXEC, MAP_PRIVATE|MAP_ANON, -1, 0) != MAP_FAILED; }]])], ++ [ ++ AC_MSG_RESULT([yes]) ++ LDFLAGS_JDK="$LDFLAGS_JDK -Wl,-z,wxneeded" ++ ], ++ [ ++ AC_MSG_RESULT([no]) ++ ], ++ [ ++ AC_MSG_RESULT([no]) ++ ] ++ ) ++ fi + fi + if test "x$DEBUG_LEVEL" = xrelease; then + CCXXFLAGS_JDK="$CCXXFLAGS_JDK -DNDEBUG" +--- ./configure Thu Sep 22 12:29:25 2016 -0700 ++++ ./configure Wed Dec 28 10:29:21 2016 -0800 +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + # + # Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved. + # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +--- ./make/Javadoc.gmk Thu Sep 22 12:29:25 2016 -0700 ++++ ./make/Javadoc.gmk Wed Dec 28 10:29:21 2016 -0800 +@@ -46,8 +46,18 @@ + + BUILD_NUMBER=$(JDK_BUILD_NUMBER) + ++ifeq ($(OPENJDK_TARGET_OS_VENDOR), openbsd) ++ ifeq ($(OPENJDK_TARGET_CPU_BITS), 32) ++ JAVADOC_CMD_MEM = "-Xmx768m" ++ else ++ JAVADOC_CMD_MEM = "-Xmx1024m" ++ endif ++else ++ JAVADOC_CMD_MEM = "-Xmx1024m" ++endif ++ + JAVADOC_CMD = $(JAVA) \ +- -Xmx1024m \ ++ $(JAVADOC_CMD_MEM) \ + -Djava.awt.headless=true \ + $(NEW_JAVADOC) \ + -bootclasspath $(JDK_OUTPUTDIR)/classes +--- ./make/Main.gmk Thu Sep 22 12:29:25 2016 -0700 ++++ ./make/Main.gmk Wed Dec 28 10:29:21 2016 -0800 +@@ -58,7 +58,11 @@ + + # Setup number of jobs to use. -jN is unfortunately not available for us to parse from the command line, + # hence this workaround. ++ifdef JOBS ++ifneq ($(JOBS),0) + MAKE_ARGS:=$(MAKE_ARGS) -j$(JOBS) ++endif ++endif + + ### Main targets + +--- ./make/common/MakeBase.gmk Thu Sep 22 12:29:25 2016 -0700 ++++ ./make/common/MakeBase.gmk Wed Dec 28 10:29:21 2016 -0800 +@@ -338,7 +338,7 @@ + # (and causing a crash on Cygwin). + # Default shell seems to always be /bin/sh. Must override with bash to get this to work on Solaris. + # Only use time if it's GNU time which supports format and output file. +- WRAPPER_SHELL:=/bin/bash $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) $$(OUTPUT_ROOT)/build-trace-time.log /bin/bash ++ WRAPPER_SHELL:=bash $$(SRC_ROOT)/common/bin/shell-tracer.sh $$(if $$(findstring yes,$$(IS_GNU_TIME)),$$(TIME),-) $$(OUTPUT_ROOT)/build-trace-time.log bash + SHELL=$$(warning $$(if $$@,Building $$@,Running shell command) $$(if $$<, (from $$<))$$(if $$?, ($$(wordlist 1, 20, $$?) $$(if $$(wordlist 21, 22, $$?), ... [in total $$(words $$?) files]) newer)))$$(WRAPPER_SHELL) + endif + # Never remove warning messages; this is just for completeness +@@ -365,8 +365,8 @@ + + # This is to be called by all SetupFoo macros + define LogSetupMacroEntry +- $(if $(27),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) +- $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) ++ $(if $(30),$(error Internal makefile error: Too many arguments to LogSetupMacroEntry, please update MakeBase.gmk)) ++ $(if $(findstring $(LOG_LEVEL),debug trace), $(info $1 $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29,$(if $($i),$(NEWLINE) $(strip [$i] $($i)))))) + endef + + # Make directory without forking mkdir if not needed +--- ./make/common/NativeCompilation.gmk Thu Sep 22 12:29:25 2016 -0700 ++++ ./make/common/NativeCompilation.gmk Wed Dec 28 10:29:21 2016 -0800 +@@ -151,9 +151,9 @@ + # CC the compiler to use, default is $(CC) + # LDEXE the linker to use for linking executables, default is $(LDEXE) + # OPTIMIZATION sets optimization level to NONE, LOW, HIGH, HIGHEST +- $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) +- $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26)) +- $(if $(27),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) ++ $(foreach i,2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29, $(if $($i),$1_$(strip $($i)))$(NEWLINE)) ++ $(call LogSetupMacroEntry,SetupNativeCompilation($1),$2,$3,$4,$5,$6,$7,$8,$9,$(10),$(11),$(12),$(13),$(14),$(15),$(16),$(17),$(18),$(19),$(20),$(21),$(22),$(23),$(24),$(25),$(26),$(27),$(28),$(29)) ++ $(if $(30),$(error Internal makefile error: Too many arguments to SetupNativeCompilation, please update NativeCompilation.gmk)) + + ifneq (,$$($1_BIN)) + $$(error BIN has been replaced with OBJECT_DIR) +--- ./hotspot/agent/make/Makefile Thu Sep 22 12:50:50 2016 -0700 ++++ ./hotspot/agent/make/Makefile Wed Dec 28 10:28:45 2016 -0800 +@@ -50,6 +50,7 @@ + sun.jvm.hotspot.debugger.amd64 \ + sun.jvm.hotspot.debugger.bsd \ + sun.jvm.hotspot.debugger.bsd.amd64 \ ++sun.jvm.hotspot.debugger.bsd.ppc64 \ + sun.jvm.hotspot.debugger.bsd.x86 \ + sun.jvm.hotspot.debugger.cdbg \ + sun.jvm.hotspot.debugger.cdbg.basic \ +@@ -61,12 +62,15 @@ + sun.jvm.hotspot.debugger.linux.x86 \ + sun.jvm.hotspot.debugger.posix \ + sun.jvm.hotspot.debugger.posix.elf \ ++sun.jvm.hotspot.debugger.ppc64 \ + sun.jvm.hotspot.debugger.proc \ + sun.jvm.hotspot.debugger.proc.amd64 \ ++sun.jvm.hotspot.debugger.proc.ppc64 \ + sun.jvm.hotspot.debugger.proc.sparc \ + sun.jvm.hotspot.debugger.proc.x86 \ + sun.jvm.hotspot.debugger.remote \ + sun.jvm.hotspot.debugger.remote.amd64 \ ++sun.jvm.hotspot.debugger.remote.ppc64 \ + sun.jvm.hotspot.debugger.remote.sparc \ + sun.jvm.hotspot.debugger.remote.x86 \ + sun.jvm.hotspot.debugger.sparc \ +@@ -90,12 +94,14 @@ + sun.jvm.hotspot.runtime.amd64 \ + sun.jvm.hotspot.runtime.bsd \ + sun.jvm.hotspot.runtime.bsd_amd64 \ ++sun.jvm.hotspot.runtime.bsd_ppc64 \ + sun.jvm.hotspot.runtime.bsd_x86 \ + sun.jvm.hotspot.runtime.linux \ + sun.jvm.hotspot.runtime.linux_amd64 \ + sun.jvm.hotspot.runtime.linux_sparc \ + sun.jvm.hotspot.runtime.linux_x86 \ + sun.jvm.hotspot.runtime.posix \ ++sun.jvm.hotspot.runtime.ppc64 \ + sun.jvm.hotspot.runtime.solaris_amd64 \ + sun.jvm.hotspot.runtime.solaris_sparc \ + sun.jvm.hotspot.runtime.solaris_x86 \ +@@ -135,6 +141,7 @@ + sun/jvm/hotspot/debugger/amd64/*.java \ + sun/jvm/hotspot/debugger/bsd/*.java \ + sun/jvm/hotspot/debugger/bsd/amd64/*.java \ ++sun/jvm/hotspot/debugger/bsd/ppc64/*.java \ + sun/jvm/hotspot/debugger/bsd/x86/*.java \ + sun/jvm/hotspot/debugger/cdbg/*.java \ + sun/jvm/hotspot/debugger/cdbg/basic/*.java \ +@@ -145,12 +152,15 @@ + sun/jvm/hotspot/debugger/linux/x86/*.java \ + sun/jvm/hotspot/debugger/posix/*.java \ + sun/jvm/hotspot/debugger/posix/elf/*.java \ ++sun/jvm/hotspot/debugger/ppc64/*.java \ + sun/jvm/hotspot/debugger/proc/*.java \ + sun/jvm/hotspot/debugger/proc/amd64/*.java \ ++sun/jvm/hotspot/debugger/proc/ppc64/*.java \ + sun/jvm/hotspot/debugger/proc/sparc/*.java \ + sun/jvm/hotspot/debugger/proc/x86/*.java \ + sun/jvm/hotspot/debugger/remote/*.java \ + sun/jvm/hotspot/debugger/remote/amd64/*.java \ ++sun/jvm/hotspot/debugger/remote/ppc64/*.java \ + sun/jvm/hotspot/debugger/remote/sparc/*.java \ + sun/jvm/hotspot/debugger/remote/x86/*.java \ + sun/jvm/hotspot/debugger/sparc/*.java \ +@@ -171,12 +181,14 @@ + sun/jvm/hotspot/runtime/amd64/*.java \ + sun/jvm/hotspot/runtime/bsd/*.java \ + sun/jvm/hotspot/runtime/bsd_amd64/*.java \ ++sun/jvm/hotspot/runtime/bsd_ppc64/*.java \ + sun/jvm/hotspot/runtime/bsd_x86/*.java \ + sun/jvm/hotspot/runtime/linux/*.java \ + sun/jvm/hotspot/runtime/linux_amd64/*.java \ + sun/jvm/hotspot/runtime/linux_sparc/*.java \ + sun/jvm/hotspot/runtime/linux_x86/*.java \ + sun/jvm/hotspot/runtime/posix/*.java \ ++sun/jvm/hotspot/runtime/ppc64/*.java \ + sun/jvm/hotspot/runtime/solaris_amd64/*.java \ + sun/jvm/hotspot/runtime/solaris_sparc/*.java \ + sun/jvm/hotspot/runtime/solaris_x86/*.java \ +--- ./hotspot/agent/src/os/bsd/BsdDebuggerLocal.c Thu Sep 22 12:50:50 2016 -0700 ++++ ./hotspot/agent/src/os/bsd/BsdDebuggerLocal.c Wed Dec 28 10:28:45 2016 -0800 +@@ -42,6 +42,10 @@ + #include "sun_jvm_hotspot_debugger_sparc_SPARCThreadContext.h" + #endif + ++#ifdef ppc64 ++#include "sun_jvm_hotspot_debugger_ppc64_PPC64ThreadContext.h" ++#endif ++ + static jfieldID p_ps_prochandle_ID = 0; + static jfieldID threadList_ID = 0; + static jfieldID loadObjectList_ID = 0; +@@ -307,6 +311,9 @@ + #if defined(sparc) || defined(sparcv9) + #define NPRGREG sun_jvm_hotspot_debugger_sparc_SPARCThreadContext_NPRGREG + #endif ++#ifdef ppc64 ++#define NPRGREG sun_jvm_hotspot_debugger_ppc64_PPC64ThreadContext_NPRGREG ++#endif + + array = (*env)->NewLongArray(env, NPRGREG); + CHECK_EXCEPTION_(0); +@@ -407,6 +414,46 @@ + regs[REG_INDEX(R_O7)] = gregs.u_regs[14]; + #endif /* sparc */ + ++#if defined(ppc64) || defined(ppc64le) ++#define REG_INDEX(reg) sun_jvm_hotspot_debugger_ppc64_PPC64ThreadContext_##reg ++ ++ regs[REG_INDEX(LR)] = gregs.lr; ++ regs[REG_INDEX(PC)] = gregs.pc; ++ regs[REG_INDEX(R0)] = gregs.fixreg[0]; ++ regs[REG_INDEX(R1)] = gregs.fixreg[1]; ++ regs[REG_INDEX(R2)] = gregs.fixreg[2]; ++ regs[REG_INDEX(R3)] = gregs.fixreg[3]; ++ regs[REG_INDEX(R4)] = gregs.fixreg[4]; ++ regs[REG_INDEX(R5)] = gregs.fixreg[5]; ++ regs[REG_INDEX(R6)] = gregs.fixreg[6]; ++ regs[REG_INDEX(R7)] = gregs.fixreg[7]; ++ regs[REG_INDEX(R8)] = gregs.fixreg[8]; ++ regs[REG_INDEX(R9)] = gregs.fixreg[9]; ++ regs[REG_INDEX(R10)] = gregs.fixreg[10]; ++ regs[REG_INDEX(R11)] = gregs.fixreg[11]; ++ regs[REG_INDEX(R12)] = gregs.fixreg[12]; ++ regs[REG_INDEX(R13)] = gregs.fixreg[13]; ++ regs[REG_INDEX(R14)] = gregs.fixreg[14]; ++ regs[REG_INDEX(R15)] = gregs.fixreg[15]; ++ regs[REG_INDEX(R16)] = gregs.fixreg[16]; ++ regs[REG_INDEX(R17)] = gregs.fixreg[17]; ++ regs[REG_INDEX(R18)] = gregs.fixreg[18]; ++ regs[REG_INDEX(R19)] = gregs.fixreg[19]; ++ regs[REG_INDEX(R20)] = gregs.fixreg[20]; ++ regs[REG_INDEX(R21)] = gregs.fixreg[21]; ++ regs[REG_INDEX(R22)] = gregs.fixreg[22]; ++ regs[REG_INDEX(R23)] = gregs.fixreg[23]; ++ regs[REG_INDEX(R24)] = gregs.fixreg[24]; ++ regs[REG_INDEX(R25)] = gregs.fixreg[25]; ++ regs[REG_INDEX(R26)] = gregs.fixreg[26]; ++ regs[REG_INDEX(R27)] = gregs.fixreg[27]; ++ regs[REG_INDEX(R28)] = gregs.fixreg[28]; ++ regs[REG_INDEX(R29)] = gregs.fixreg[29]; ++ regs[REG_INDEX(R30)] = gregs.fixreg[30]; ++ regs[REG_INDEX(R31)] = gregs.fixreg[31]; ++ ++#endif ++ + + (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT); + return array; +--- ./hotspot/agent/src/os/bsd/symtab.c Thu Sep 22 12:50:50 2016 -0700 ++++ ./hotspot/agent/src/os/bsd/symtab.c Wed Dec 28 10:28:45 2016 -0800 +@@ -211,6 +211,10 @@ + + // Reading of elf header + struct elf_section *scn_cache = NULL; ++#if defined(ppc64) ++ struct elf_section *opd_sect = NULL; ++ ELF_SHDR *opd = NULL; ++#endif + int cnt = 0; + ELF_SHDR* shbuf = NULL; + ELF_SHDR* cursct = NULL; +@@ -258,6 +262,14 @@ + cursct++; + } + ++#if defined(ppc64) ++ opd_sect = find_section_by_name(".opd", fd, &ehdr, scn_cache); ++ if (opd_sect != NULL && opd_sect->c_data != NULL && opd_sect->c_shdr != NULL) { ++ // plausibility check ++ opd = opd_sect->c_shdr; ++ } ++#endif ++ + if (!symtab_found && dynsym_found) + symsection = SHT_DYNSYM; + +@@ -322,6 +334,13 @@ + symtab->symbols[j].name = sym_name; + symtab->symbols[j].offset = syms->st_value - baseaddr; + symtab->symbols[j].size = syms->st_size; ++#if defined(ppc64) ++ if (opd != NULL && *sym_name != '.' && ++ (opd->sh_addr <= syms->st_value && syms->st_value <= opd->sh_addr + opd->sh_size)) ++ symtab->symbols[j].offset = ++ ((ELF_ADDR*)opd_sect->c_data)[(syms->st_value - opd->sh_addr) / sizeof(ELF_ADDR*)] - baseaddr; ++ else ++#endif + + key.data = sym_name; + key.size = strlen(sym_name) + 1; +--- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java Thu Sep 22 12:50:50 2016 -0700 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/HotSpotAgent.java Wed Dec 28 10:28:45 2016 -0800 +@@ -33,6 +33,7 @@ + import sun.jvm.hotspot.debugger.JVMDebugger; + import sun.jvm.hotspot.debugger.MachineDescription; + import sun.jvm.hotspot.debugger.MachineDescriptionAMD64; ++import sun.jvm.hotspot.debugger.MachineDescriptionPPC64; + import sun.jvm.hotspot.debugger.MachineDescriptionIA64; + import sun.jvm.hotspot.debugger.MachineDescriptionIntelX86; + import sun.jvm.hotspot.debugger.MachineDescriptionSPARC32Bit; +@@ -588,6 +589,8 @@ + machDesc = new MachineDescriptionIA64(); + } else if (cpu.equals("amd64")) { + machDesc = new MachineDescriptionAMD64(); ++ } else if (cpu.equals("ppc64")) { ++ machDesc = new MachineDescriptionPPC64(); + } else if (cpu.equals("sparc")) { + if (LinuxDebuggerLocal.getAddressSize()==8) { + machDesc = new MachineDescriptionSPARC64Bit(); +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/MachineDescriptionPPC64.java Wed Dec 28 10:28:45 2016 -0800 +@@ -0,0 +1,43 @@ ++/* ++ * Copyright (c) 2014, 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. ++ * ++ */ ++ ++package sun.jvm.hotspot.debugger; ++ ++public class MachineDescriptionPPC64 extends MachineDescriptionTwosComplement implements MachineDescription { ++ public long getAddressSize() { ++ return 8; ++ } ++ ++ public boolean isLP64() { ++ return true; ++ } ++ ++ public boolean isBigEndian() { ++ String endian = System.getProperty("sun.cpu.endian"); ++ if (endian.equals("big")) ++ return true; ++ else ++ return false; ++ } ++} +--- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java Thu Sep 22 12:50:50 2016 -0700 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdCDebugger.java Wed Dec 28 10:28:45 2016 -0800 +@@ -30,8 +30,10 @@ + import sun.jvm.hotspot.debugger.cdbg.*; + import sun.jvm.hotspot.debugger.x86.*; + import sun.jvm.hotspot.debugger.amd64.*; ++import sun.jvm.hotspot.debugger.ppc64.*; + import sun.jvm.hotspot.debugger.bsd.x86.*; + import sun.jvm.hotspot.debugger.bsd.amd64.*; ++import sun.jvm.hotspot.debugger.bsd.ppc64.*; + import sun.jvm.hotspot.utilities.*; + + class BsdCDebugger implements CDebugger { +@@ -97,6 +99,13 @@ + Address pc = context.getRegisterAsAddress(AMD64ThreadContext.RIP); + if (pc == null) return null; + return new BsdAMD64CFrame(dbg, rbp, pc); ++ } else if (cpu.equals("ppc64")) { ++ PPC64ThreadContext context = (PPC64ThreadContext) thread.getContext(); ++ Address sp = context.getRegisterAsAddress(PPC64ThreadContext.SP); ++ if (sp == null) return null; ++ Address pc = context.getRegisterAsAddress(PPC64ThreadContext.PC); ++ if (pc == null) return null; ++ return new BsdPPC64CFrame(dbg, sp, pc, BsdDebuggerLocal.getAddressSize()); + } else { + throw new DebuggerException(cpu + " is not yet supported"); + } +--- ./hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java Thu Sep 22 12:50:50 2016 -0700 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/BsdThreadContextFactory.java Wed Dec 28 10:28:45 2016 -0800 +@@ -27,6 +27,7 @@ + import sun.jvm.hotspot.debugger.*; + import sun.jvm.hotspot.debugger.bsd.amd64.*; + import sun.jvm.hotspot.debugger.bsd.x86.*; ++import sun.jvm.hotspot.debugger.bsd.ppc64.*; + + class BsdThreadContextFactory { + static ThreadContext createThreadContext(BsdDebugger dbg) { +@@ -35,6 +36,8 @@ + return new BsdX86ThreadContext(dbg); + } else if (cpu.equals("amd64") || cpu.equals("x86_64")) { + return new BsdAMD64ThreadContext(dbg); ++ } else if (cpu.equals("ppc64")) { ++ return new BsdPPC64ThreadContext(dbg); + } else { + throw new RuntimeException("cpu " + cpu + " is not yet supported"); + } +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/ppc64/BsdPPC64CFrame.java Wed Dec 28 10:28:45 2016 -0800 +@@ -0,0 +1,79 @@ ++/* ++ * Copyright (c) 2014, 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. ++ * ++ */ ++ ++package sun.jvm.hotspot.debugger.bsd.ppc64; ++ ++import sun.jvm.hotspot.debugger.*; ++import sun.jvm.hotspot.debugger.ppc64.*; ++import sun.jvm.hotspot.debugger.bsd.*; ++import sun.jvm.hotspot.debugger.cdbg.*; ++import sun.jvm.hotspot.debugger.cdbg.basic.*; ++ ++final public class BsdPPC64CFrame extends BasicCFrame { ++ // package/class internals only ++ ++ public BsdPPC64CFrame(BsdDebugger dbg, Address sp, Address pc, int address_size) { ++ super(dbg.getCDebugger()); ++ this.sp = sp; ++ this.pc = pc; ++ this.dbg = dbg; ++ this.address_size=address_size; ++ } ++ ++ // override base class impl to avoid ELF parsing ++ public ClosestSymbol closestSymbolToPC() { ++ // try native lookup in debugger. ++ return dbg.lookup(dbg.getAddressValue(pc())); ++ } ++ ++ public Address pc() { ++ return pc; ++ } ++ ++ public Address localVariableBase() { ++ return sp; ++ } ++ ++ public CFrame sender(ThreadProxy thread) { ++ if (sp == null) { ++ return null; ++ } ++ ++ Address nextSP = sp.getAddressAt(0); ++ if (nextSP == null) { ++ return null; ++ } ++ Address nextPC = sp.getAddressAt(2 * address_size); ++ if (nextPC == null) { ++ return null; ++ } ++ return new BsdPPC64CFrame(dbg, nextSP, nextPC, address_size); ++ } ++ ++ public static int PPC64_STACK_BIAS = 0; ++ private static int address_size; ++ private Address pc; ++ private Address sp; ++ private BsdDebugger dbg; ++} +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/bsd/ppc64/BsdPPC64ThreadContext.java Wed Dec 28 10:28:45 2016 -0800 +@@ -0,0 +1,46 @@ ++/* ++ * Copyright (c) 2014, 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. ++ * ++ */ ++ ++package sun.jvm.hotspot.debugger.bsd.ppc64; ++ ++import sun.jvm.hotspot.debugger.*; ++import sun.jvm.hotspot.debugger.ppc64.*; ++import sun.jvm.hotspot.debugger.bsd.*; ++ ++public class BsdPPC64ThreadContext extends PPC64ThreadContext { ++ private BsdDebugger debugger; ++ ++ public BsdPPC64ThreadContext(BsdDebugger debugger) { ++ super(); ++ this.debugger = debugger; ++ } ++ ++ public void setRegisterAsAddress(int index, Address value) { ++ setRegister(index, debugger.getAddressValue(value)); ++ } ++ ++ public Address getRegisterAsAddress(int index) { ++ return debugger.newAddress(getRegister(index)); ++ } ++} +--- /dev/null Thu Jan 01 00:00:00 1970 +0000 ++++ ./hotspot/agent/src/share/classes/sun/jvm/hotspot/debugger/ppc64/PPC64ThreadContext.java Wed Dec 28 10:28:45 2016 -0800 +@@ -0,0 +1,123 @@ ++/* ++ * Copyright (c) 2014, 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. ++ * ++ */ ++ ++package sun.jvm.hotspot.debugger.ppc64; ++ ++import sun.jvm.hotspot.debugger.*; ++import sun.jvm.hotspot.debugger.cdbg.*; ++ ++/** Specifies the thread context on ppc64 platforms; only a sub-portion ++ * of the context is guaranteed to be present on all operating ++ * systems. */ ++ *** DIFF OUTPUT TRUNCATED AT 1000 LINES ***
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201612290750.uBT7oe01072216>