# HG changeset patch # User Andrew John Hughes # Date 1269996100 -3600 # Node ID f9061e19dfb0440f97fa5145b77c01fdaaf943fa # Parent 6728bebba215722d0359a1e4022e85fa92a959a9 Support original (hs11) HotSpot for normal (non-Zero/Shark builds). Depend on IT_SET_ARCH_DIRS for Zero. 2010-03-31 Andrew John Hughes * patches/hotspot/default/icedtea-gcc-stack-markings.patch: Move to main patches directory as applies to both hs11 and hs14. * Makefile.am: Fix gcc-stack-markings path. * NEWS: Add remaining backports. * acinclude.m4: (IT_SET_ARCH_DIRS): Renamed from SET_ARCH_DIRS. (ENABLE_ZERO_BUILD): Require IT_SET_ARCH_DIRS. * configure.ac: Call IT_SET_ARCH_DIRS. * patches/gcc-stack-markings.patch: Moved as above. * patches/hotspot/original/systemtap.patch: Add missing fragment. diff -r 6728bebba215 -r f9061e19dfb0 ChangeLog --- a/ChangeLog Tue Mar 30 23:57:15 2010 +0100 +++ b/ChangeLog Wed Mar 31 01:41:40 2010 +0100 @@ -1,3 +1,16 @@ +2010-03-31 Andrew John Hughes + + * patches/hotspot/default/icedtea-gcc-stack-markings.patch: + Move to main patches directory as applies to both hs11 and hs14. + * Makefile.am: Fix gcc-stack-markings path. + * NEWS: Add remaining backports. + * acinclude.m4: + (IT_SET_ARCH_DIRS): Renamed from SET_ARCH_DIRS. + (ENABLE_ZERO_BUILD): Require IT_SET_ARCH_DIRS. + * configure.ac: Call IT_SET_ARCH_DIRS. + * patches/gcc-stack-markings.patch: Moved as above. + * patches/hotspot/original/systemtap.patch: Add missing fragment. + 2009-09-03 Andrew John Hughes PR icedtea/356 diff -r 6728bebba215 -r f9061e19dfb0 Makefile.am --- a/Makefile.am Tue Mar 30 23:57:15 2010 +0100 +++ b/Makefile.am Wed Mar 31 01:41:40 2010 +0100 @@ -753,7 +753,7 @@ patches/hotspot/$(HSBUILD)/icedtea-explicit-target-arch.patch \ patches/openjdk/6648816.patch \ patches/openjdk/oj100103-debugger-socket-overflow.patch \ - patches/hotspot/$(HSBUILD)/icedtea-gcc-stack-markings.patch \ + patches/gcc-stack-markings.patch \ patches/icedtea-jtreg-httpTest.patch \ patches/security/20100330/6626217.patch \ patches/security/20100330/6633872.patch \ diff -r 6728bebba215 -r f9061e19dfb0 NEWS --- a/NEWS Tue Mar 30 23:57:15 2010 +0100 +++ b/NEWS Wed Mar 31 01:41:40 2010 +0100 @@ -27,6 +27,11 @@ - 6910590: Application can modify command array in ProcessBuilder - 6909597: JPEGImageReader stepX Integer Overflow Vulnerability - 6932480: Crash in CompilerThread/Parser. Unloaded array klass? +- Add stack markings to the x86 assembly so as not to use executable stack. +- Enable SystemTap JNI tracing. +- Add SystemTap jstack support. +- PR179: Rhino bootclasspath issue +- PR356: Support ECC via NSS New in release 1.6.2 (2009-11-09) - Latest security updates: diff -r 6728bebba215 -r f9061e19dfb0 acinclude.m4 --- a/acinclude.m4 Tue Mar 30 23:57:15 2010 +0100 +++ b/acinclude.m4 Wed Mar 31 01:41:40 2010 +0100 @@ -1,4 +1,4 @@ -AC_DEFUN([SET_ARCH_DIRS], +AC_DEFUN_ONCE([IT_SET_ARCH_DIRS], [ case "${host}" in x86_64-*-*) @@ -679,6 +679,7 @@ AC_DEFUN_ONCE([ENABLE_ZERO_BUILD], [ AC_REQUIRE([SET_SHARK_BUILD]) + AC_REQUIRE([IT_SET_ARCH_DIRS]) AC_MSG_CHECKING(whether to use the zero-assembler port) use_zero=no AC_ARG_ENABLE([zero], diff -r 6728bebba215 -r f9061e19dfb0 configure.ac --- a/configure.ac Tue Mar 30 23:57:15 2010 +0100 +++ b/configure.ac Wed Mar 31 01:41:40 2010 +0100 @@ -206,7 +206,7 @@ fi AC_SUBST(DIST_ID) -SET_ARCH_DIRS +IT_SET_ARCH_DIRS SET_OS_DIRS if test "${with_openjdk}" = true diff -r 6728bebba215 -r f9061e19dfb0 patches/gcc-stack-markings.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/gcc-stack-markings.patch Wed Mar 31 01:41:40 2010 +0100 @@ -0,0 +1,14 @@ +--- openjdk/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.s~ 2009-08-06 01:08:57.000000000 -0700 ++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.s 2009-08-06 01:09:27.000000000 -0700 +@@ -650,3 +650,4 @@ _Atomic_cmpxchg_long: + popl %ebx + ret + ++.section .note.GNU-stack, "", @progbits +--- openjdk/hotspot/src/os_cpu/linux_x86/vm/linux_x86_64.s~ 2009-08-06 01:08:57.000000000 -0700 ++++ openjdk/hotspot/src/os_cpu/linux_x86/vm/linux_x86_64.s 2009-08-06 01:09:27.000000000 -0700 +@@ -400,3 +400,4 @@ _Atomic_cmpxchg_long: + addq $4,%rdx + jg 4b + ret ++.section .note.GNU-stack, "", @progbits diff -r 6728bebba215 -r f9061e19dfb0 patches/hotspot/default/icedtea-gcc-stack-markings.patch --- a/patches/hotspot/default/icedtea-gcc-stack-markings.patch Tue Mar 30 23:57:15 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,14 +0,0 @@ ---- openjdk/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.s~ 2009-08-06 01:08:57.000000000 -0700 -+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/linux_x86_32.s 2009-08-06 01:09:27.000000000 -0700 -@@ -650,3 +650,4 @@ _Atomic_cmpxchg_long: - popl %ebx - ret - -+.section .note.GNU-stack, "", @progbits ---- openjdk/hotspot/src/os_cpu/linux_x86/vm/linux_x86_64.s~ 2009-08-06 01:08:57.000000000 -0700 -+++ openjdk/hotspot/src/os_cpu/linux_x86/vm/linux_x86_64.s 2009-08-06 01:09:27.000000000 -0700 -@@ -400,3 +400,4 @@ _Atomic_cmpxchg_long: - addq $4,%rdx - jg 4b - ret -+.section .note.GNU-stack, "", @progbits diff -r 6728bebba215 -r f9061e19dfb0 patches/hotspot/original/systemtap.patch --- a/patches/hotspot/original/systemtap.patch Tue Mar 30 23:57:15 2010 +0100 +++ b/patches/hotspot/original/systemtap.patch Wed Mar 31 01:41:40 2010 +0100 @@ -1,6 +1,6 @@ -diff -Nru ../openjdk.orig/hotspot/build/linux/makefiles/dtrace.make ../openjdk/hotspot/build/linux/makefiles/dtrace.make ---- ../openjdk.orig/hotspot/build/linux/makefiles/dtrace.make 2009-04-24 08:30:52.000000000 +0100 -+++ ../openjdk/hotspot/build/linux/makefiles/dtrace.make 2010-03-30 20:43:06.000000000 +0100 +diff -Nru openjdk.orig/hotspot/build/linux/makefiles/dtrace.make openjdk/hotspot/build/linux/makefiles/dtrace.make +--- openjdk.orig/hotspot/build/linux/makefiles/dtrace.make 2009-04-24 08:30:52.000000000 +0100 ++++ openjdk/hotspot/build/linux/makefiles/dtrace.make 2010-03-31 00:49:16.000000000 +0100 @@ -25,3 +25,7 @@ # Linux does not build jvm_db LIBJVM_DB = @@ -9,9 +9,9 @@ +CFLAGS += -DDTRACE_ENABLED + +# It doesn't support HAVE_DTRACE_H though. -diff -Nru ../openjdk.orig/hotspot/src/share/vm/prims/jni.cpp ../openjdk/hotspot/src/share/vm/prims/jni.cpp ---- ../openjdk.orig/hotspot/src/share/vm/prims/jni.cpp 2010-03-30 20:41:19.000000000 +0100 -+++ ../openjdk/hotspot/src/share/vm/prims/jni.cpp 2010-03-30 20:43:06.000000000 +0100 +diff -Nru openjdk.orig/hotspot/src/share/vm/prims/jni.cpp openjdk/hotspot/src/share/vm/prims/jni.cpp +--- openjdk.orig/hotspot/src/share/vm/prims/jni.cpp 2010-03-31 00:44:38.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/prims/jni.cpp 2010-03-31 00:49:16.000000000 +0100 @@ -1744,10 +1744,7 @@ JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \ JNIWrapper("Set" XSTR(Result) "Field"); \ @@ -62,9 +62,9 @@ \ oop obj= oopFactory::Allocator(len, CHECK_0); \ ret = (Return) JNIHandles::make_local(env, obj); \ -diff -Nru ../openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp ../openjdk/hotspot/src/share/vm/runtime/arguments.cpp ---- ../openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp 2010-03-30 20:41:21.000000000 +0100 -+++ ../openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2010-03-30 20:43:54.000000000 +0100 +diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp openjdk/hotspot/src/share/vm/runtime/arguments.cpp +--- openjdk.orig/hotspot/src/share/vm/runtime/arguments.cpp 2010-03-31 00:44:39.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2010-03-31 00:49:16.000000000 +0100 @@ -2164,16 +2164,16 @@ FLAG_SET_CMDLINE(bool, DisplayVMOutputToStderr, false); FLAG_SET_CMDLINE(bool, DisplayVMOutputToStdout, true); @@ -86,9 +86,9 @@ } else #ifdef ASSERT if (match_option(option, "-XX:+FullGCALot", &tail)) { -diff -Nru ../openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp ../openjdk/hotspot/src/share/vm/utilities/dtrace.hpp ---- ../openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp 2009-04-24 08:30:57.000000000 +0100 -+++ ../openjdk/hotspot/src/share/vm/utilities/dtrace.hpp 2010-03-30 20:43:06.000000000 +0100 +diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp openjdk/hotspot/src/share/vm/utilities/dtrace.hpp +--- openjdk.orig/hotspot/src/share/vm/utilities/dtrace.hpp 2009-04-24 08:30:57.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp 2010-03-31 00:49:54.000000000 +0100 @@ -3,6 +3,7 @@ #endif /* @@ -152,3 +152,34 @@ #define HS_DTRACE_PROBE_N(provider,name, args) \ DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args) +@@ -126,4 +141,30 @@ + HS_DTRACE_PROBE_N(provider,name,((uintptr_t)a0,(uintptr_t)a1,(uintptr_t)a2,\ + (uintptr_t)a3,(uintptr_t)a4,(uintptr_t)a5,(uintptr_t)a6,(uintptr_t)a7,\ + (uintptr_t)a8,(uintptr_t)a9)) ++#else ++// Systemtap dtrace compatible probes on GNU/Linux use direct macros. ++#define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name) ++#define HS_DTRACE_PROBE0(provider,name)\ ++ DTRACE_PROBE(provider,name) ++#define HS_DTRACE_PROBE1(provider,name,a0)\ ++ DTRACE_PROBE1(provider,name,a0) ++#define HS_DTRACE_PROBE2(provider,name,a0,a1)\ ++ DTRACE_PROBE2(provider,name,a0,a1) ++#define HS_DTRACE_PROBE3(provider,name,a0,a1,a2)\ ++ DTRACE_PROBE3(provider,name,a0,a1,a2) ++#define HS_DTRACE_PROBE4(provider,name,a0,a1,a2,a3)\ ++ DTRACE_PROBE4(provider,name,a0,a1,a2,a3) ++#define HS_DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4)\ ++ DTRACE_PROBE5(provider,name,a0,a1,a2,a3,a4) ++#define HS_DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5)\ ++ DTRACE_PROBE6(provider,name,a0,a1,a2,a3,a4,a5) ++#define HS_DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6)\ ++ DTRACE_PROBE7(provider,name,a0,a1,a2,a3,a4,a5,a6) ++#define HS_DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7)\ ++ DTRACE_PROBE8(provider,name,a0,a1,a2,a3,a4,a5,a6,a7) ++#define HS_DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ ++ DTRACE_PROBE9(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) ++#define HS_DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8)\ ++ DTRACE_PROBE10(provider,name,a0,a1,a2,a3,a4,a5,a6,a7,a8) ++#endif +