# HG changeset patch # User Andrew John Hughes # Date 1483072135 0 # Node ID 09ad6a96566415ab436d2f8fa504e678b6c3026b # Parent a5335c8838a5590fa514c07a7599d7a36a428100# Parent f516b928f3a875218676b41de1f6a6506b9821f5 Merge diff -r a5335c8838a5 -r 09ad6a965664 AUTHORS --- a/AUTHORS Fri Aug 26 03:07:28 2016 +0100 +++ b/AUTHORS Fri Dec 30 04:28:55 2016 +0000 @@ -36,6 +36,7 @@ Parag Nemade Xerxes RÄnby Mark Reinhold +Ricardo Ribalda Bernhard RosenkrÀnzer Marc Schoenefeld Andreas Schwab diff -r a5335c8838a5 -r 09ad6a965664 ChangeLog --- a/ChangeLog Fri Aug 26 03:07:28 2016 +0100 +++ b/ChangeLog Fri Dec 30 04:28:55 2016 +0000 @@ -1,3 +1,90 @@ +2016-12-29 Andrew John Hughes + + PR3213: Disable ARM32 JIT by default + * Makefile.am: + (ICEDTEA_PATCHES): Add patch. + * patches/pr3213-conditional_arm32jit.patch: + Backport conditionalisation of ARM32 JIT port + from IcedTea 2.x. + +2014-02-19 Andrew John Hughes + + PR3213: Disable ARM32 JIT by default + * INSTALL: + Document ARM32 JIT and --enable-arm32-jit option. + * Makefile.am: + (ARM32JIT_STATUS): Set based on ENABLE_ARM32JIT. + (ICEDTEA_ENV): Pass ARM32JIT to OpenJDK build, + using value of ${ARM32JIT_STATUS}. + * NEWS: Updated. + * acinclude.m4: + (IT_ENABLE_ARM32JIT): Allow the ARM32 JIT to be + enabled. + * configure.ac: Invoke IT_ENABLE_ARM32JIT macro. + +2016-08-19 Andrew John Hughes + + PR3175: invalid zip timestamp handling leads to + error updating JAR files + * AUTHORS: Add Ricardo Ribalda. + * NEWS: Updated. + +2016-08-19 Ricardo Ribalda + + PR3175: invalid zip timestamp handling leads to + error updating JAR files + * Makefile.am: + (add-pulseaudio): Don't use -u so files are always + overwritten, regardless of timestamps. + (add-pulseaudio-debug): Likewise. + (add-pulseaudio-ecj): Likewise. + +2016-12-28 Andrew John Hughes + + PR3174: systemtap: type definition 'symbolOopDesc' not found + * NEWS: Updated + +2012-03-16 Mark Wielaard + + PR3174: systemtap: type definition 'symbolOopDesc' not found + * tapset/jstack.stp.in: Change symbolOopDesc to Symbol to accomodate + S6990754 - Use native memory and reference counting to implement + SymbolTable. + +2016-12-28 Andrew John Hughes + + PR3152: Zero build fails with pch disabled + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * NEWS: Updated. + * patches/openjdk/8078628-pr3152-zero_pch_failure.patch: + Backport patch from b41 to fix Zero build failure when + building without pre-compiled headers. + +2016-12-23 Andrew John Hughes + + PR3205: Builds fails with pch disabled + * Makefile.am: + (ICEDTEA_PATCHES): Add new patch. + * NEWS: Updated. + * patches/openjdk/8169448-pr3205-pch_failure.patch: + Backport patch from b41 to fix build failure when + building without pre-compiled headers. + +2016-10-26 Andrew John Hughes + + PR3181: Support building without pre-compiled headers + * INSTALL: Updated. + * Makefile.am: + (ICEDTEA_ENV): Set USE_PRECOMPILED_HEADER + appropriately, according to whether + DISABLE_PRECOMPILED_HEADERS is defined or not. + * NEWS: Updated. + * acinclude.m4: + (IT_DISABLE_PRECOMPILED_HEADERS): New macro to + provide the --disable-precompiled-headers option. + * configure.ac: Invoke IT_DISABLE_PRECOMPILED_HEADERS. + 2016-08-25 Andrew John Hughes * Makefile.am: diff -r a5335c8838a5 -r 09ad6a965664 INSTALL --- a/INSTALL Fri Aug 26 03:07:28 2016 +0100 +++ b/INSTALL Fri Dec 30 04:28:55 2016 +0000 @@ -175,6 +175,8 @@ * --enable-system-kerberos: Link against the system Kerberos library and query it at runtime to obtain the cache location, rather than using a hardcoded value. +* --enable-arm32-jit: Build the ARM32 JIT. +* --disable-precompiled-headers: Don't use pre-compiled headers. Testing ======= @@ -277,8 +279,9 @@ --enable-shark to configure. Please note that Shark is still in development and builds are still likely to fail at present. -On ARM32, there is also a native JIT port built on top of Zero, which -is built on this platform by default. +On ARM32, there is also a native JIT port built on top of Zero. This +currently has issues (see PR3196) and is thus not enabled by +default. To enable it, pass --enable-arm32-jit to configure. Support for Different Versions of HotSpot ========================================= diff -r a5335c8838a5 -r 09ad6a965664 Makefile.am --- a/Makefile.am Fri Aug 26 03:07:28 2016 +0100 +++ b/Makefile.am Fri Dec 30 04:28:55 2016 +0000 @@ -641,7 +641,10 @@ patches/pr3137-alt_button_order.patch \ patches/openjdk/6260348-pr3068.patch \ patches/openjdk/6961123-pr2975.patch \ - patches/pr2800-missing_resources.patch + patches/pr2800-missing_resources.patch \ + patches/openjdk/8169448-pr3205-pch_failure.patch \ + patches/openjdk/8078628-pr3152-zero_pch_failure.patch \ + patches/pr3213-conditional_arm32jit.patch if WITH_RHINO ICEDTEA_PATCHES += \ @@ -803,6 +806,12 @@ WERROR_STATUS=false endif +if ENABLE_ARM32JIT +ARM32JIT_STATUS=true +else +ARM32JIT_STATUS=false +endif + ICEDTEA_UNSET = \ JAVAC= \ JAVA_HOME= \ @@ -848,7 +857,8 @@ CC=$(CC)$(GCC_SUFFIX) \ CXX=$(CXX)$(GCC_SUFFIX) \ COMPILER_WARNINGS_FATAL="$(WERROR_STATUS)" \ - UNLIMITED_CRYPTO="true" + UNLIMITED_CRYPTO="true" \ + ARM32JIT="${ARM32JIT_STATUS}" if ENABLE_CACAO ICEDTEA_ENV += \ @@ -949,6 +959,14 @@ DEBUG_CLASSFILES="true" endif +if DISABLE_PRECOMPILED_HEADERS +ICEDTEA_ENV += \ + USE_PRECOMPILED_HEADER=0 +else +ICEDTEA_ENV += \ + USE_PRECOMPILED_HEADER=1 +endif + # OpenJDK ecj build environment. ICEDTEA_ENV_ECJ = $(ICEDTEA_ENV) \ ALT_OUTPUTDIR="$(ECJ_BUILD_OUTPUT_DIR)" \ @@ -1872,7 +1890,7 @@ cp -pPRf $(PULSE_JAVA_BUILDDIR)/pulse-java.jar \ $(BUILD_OUTPUT_DIR)/j2re-image/lib/ext (cd $(PULSE_JAVA_JAVA_SRCDIR) && \ - $(ZIP) -qur $(BUILD_OUTPUT_DIR)/j2sdk-image/src.zip org ) + $(ZIP) -qr $(BUILD_OUTPUT_DIR)/j2sdk-image/src.zip org ) endif touch $@ @@ -1895,7 +1913,7 @@ cp -pPRf $(PULSE_JAVA_BUILDDIR)/pulse-java.jar \ $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/ext (cd $(PULSE_JAVA_JAVA_SRCDIR) && \ - $(ZIP) -qur $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/src.zip org ) + $(ZIP) -qr $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/src.zip org ) endif touch $@ @@ -2220,7 +2238,7 @@ cp -pPRf $(PULSE_JAVA_BUILDDIR)/pulse-java.jar \ $(ECJ_BUILD_OUTPUT_DIR)/j2re-image/lib/ext (cd $(PULSE_JAVA_JAVA_SRCDIR) && \ - $(ZIP) -qur $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/src.zip org ) + $(ZIP) -qr $(ECJ_BUILD_OUTPUT_DIR)/j2sdk-image/src.zip org ) endif touch $@ diff -r a5335c8838a5 -r 09ad6a965664 NEWS --- a/NEWS Fri Aug 26 03:07:28 2016 +0100 +++ b/NEWS Fri Dec 30 04:28:55 2016 +0000 @@ -18,6 +18,7 @@ - PR1372: Provide option to build without debugging - PR2083: Add support for building Zero on AArch64 - PR3112: Provide option to disable SystemTap tests + - PR3181: Support building without pre-compiled headers * Backports - S6611637: NullPointerException in sun.font.GlyphLayout$EngineRecord.init - S6727719: Performance of TextLayout.getBounds() @@ -33,6 +34,11 @@ - PR2957: Build bootstrap code (rt-class-files.stamp) using bootstrap flags (source/target 1.5) - PR3139: Update documentation - PR3143: Fix typo in --with-openjdk-src-dir introduced by PR3139 + - PR3152: Zero build fails with pch disabled + - PR3174: systemtap: type definition 'symbolOopDesc' not found + - PR3175: invalid zip timestamp handling leads to error updating JAR files + - PR3205: Builds fails with pch disabled + - PR3213: Disable ARM32 JIT by default New in release 1.13.12 (2016-08-24): diff -r a5335c8838a5 -r 09ad6a965664 acinclude.m4 --- a/acinclude.m4 Fri Aug 26 03:07:28 2016 +0100 +++ b/acinclude.m4 Fri Dec 30 04:28:55 2016 +0000 @@ -2182,6 +2182,28 @@ AM_CONDITIONAL([VM_SUPPORTS_XBOOTCLASSPATH], test x"${it_cv_xbootclasspath_works}" = "xyes") ]) +AC_DEFUN([IT_ENABLE_ARM32JIT], +[ + AC_MSG_CHECKING([whether to enable the ARM32 JIT]) + AC_ARG_ENABLE([arm32-jit], + [AS_HELP_STRING(--enable-arm32-jit,build with the ARM32 JIT [[default=no]])], + [ + case "${enableval}" in + yes) + enable_arm32jit=yes + ;; + *) + enable_arm32jit=no + ;; + esac + ], + [ + enable_arm32jit=no + ]) + AC_MSG_RESULT([$enable_arm32jit]) + AM_CONDITIONAL([ENABLE_ARM32JIT], test x"${enable_arm32jit}" = "xyes") +]) + AC_DEFUN_ONCE([IT_HAS_PAX], [ AC_MSG_CHECKING([if a PaX kernel is in use]) @@ -2479,6 +2501,28 @@ AM_CONDITIONAL([DISABLE_SYSTEMTAP_TESTS], test x"${disable_systemtap_tests}" = "xyes") ]) +AC_DEFUN_ONCE([IT_DISABLE_PRECOMPILED_HEADERS], +[ + AC_MSG_CHECKING([whether to disable the use of pre-compiled headers]) + AC_ARG_ENABLE([precompiled-headers], + [AS_HELP_STRING(--disable-precompiled-headers,do not use pre-compiled headers [[default=no]])], + [ + case "${enableval}" in + no) + disable_precompiled_headers=yes + ;; + *) + disable_precompiled_headers=no + ;; + esac + ], + [ + disable_precompiled_headers=no + ]) + AC_MSG_RESULT([$disable_precompiled_headers]) + AM_CONDITIONAL([DISABLE_PRECOMPILED_HEADERS], test x"${disable_precompiled_headers}" = "xyes") +]) + AC_DEFUN_ONCE([IT_CHECK_FOR_MIME_TYPES], [ MIME_TYPES_FILE="/etc/mime.types" diff -r a5335c8838a5 -r 09ad6a965664 configure.ac --- a/configure.ac Fri Aug 26 03:07:28 2016 +0100 +++ b/configure.ac Fri Dec 30 04:28:55 2016 +0000 @@ -66,6 +66,7 @@ IT_DISABLE_SYSTEMTAP_TESTS IT_ENABLE_NATIVE_DEBUGINFO IT_ENABLE_JAVA_DEBUGINFO +IT_DISABLE_PRECOMPILED_HEADERS IT_WITH_FONTS_DIR AC_CONFIG_FILES([linux.fontconfig.Gentoo.properties]) @@ -301,6 +302,7 @@ IT_SET_SHARK_BUILD IT_ENABLE_ZERO_BUILD IT_CHECK_ADDITIONAL_VMS +IT_ENABLE_ARM32JIT IT_ENABLE_NON_NSS_CURVES IT_ENABLE_HG IT_WITH_HG_REVISION diff -r a5335c8838a5 -r 09ad6a965664 patches/openjdk/8078628-pr3152-zero_pch_failure.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/8078628-pr3152-zero_pch_failure.patch Fri Dec 30 04:28:55 2016 +0000 @@ -0,0 +1,49 @@ +# HG changeset patch +# User andrew +# Date 1482709933 0 +# Sun Dec 25 23:52:13 2016 +0000 +# Node ID 1ae05a34e052d1672b4a7894ddf5fc2f662eb861 +# Parent 598f4f521889aadf7abccaf0634e9cd0d8b75599 +8078628: Zero build fails with pre-compiled headers disabled +Summary: Add missing includes to make Zero builds without pre-compiled headers work +Reviewed-by: omajid + +diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/entry_zero.hpp openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/entry_zero.hpp 2016-08-22 15:02:02.000000000 +0100 ++++ openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp 2016-12-26 02:36:46.775167402 +0000 +@@ -1,6 +1,6 @@ + /* + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. +- * Copyright 2008, 2009, 2010 Red Hat, Inc. ++ * Copyright 2016 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -26,6 +26,8 @@ + #ifndef CPU_ZERO_VM_ENTRY_ZERO_HPP + #define CPU_ZERO_VM_ENTRY_ZERO_HPP + ++#include "interpreter/cppInterpreter.hpp" ++ + class ZeroEntry { + public: + ZeroEntry() { +diff -Nru openjdk.orig/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp openjdk/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp +--- openjdk.orig/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp 2016-08-22 15:02:03.000000000 +0100 ++++ openjdk/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp 2016-12-26 02:36:46.775167402 +0000 +@@ -1,6 +1,6 @@ + /* + * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. +- * Copyright 2008 Red Hat, Inc. ++ * Copyright 2016 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * + * This code is free software; you can redistribute it and/or modify it +@@ -25,6 +25,7 @@ + + #include "precompiled.hpp" + #include "assembler_zero.inline.hpp" ++#include "entry_zero.hpp" + #include "memory/resourceArea.hpp" + #include "nativeInst_zero.hpp" + #include "oops/oop.inline.hpp" diff -r a5335c8838a5 -r 09ad6a965664 patches/openjdk/8169448-pr3205-pch_failure.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/openjdk/8169448-pr3205-pch_failure.patch Fri Dec 30 04:28:55 2016 +0000 @@ -0,0 +1,21 @@ +# HG changeset patch +# User andrew +# Date 1478656400 0 +# Wed Nov 09 01:53:20 2016 +0000 +# Node ID bbe3dc5410163bc7fb2dfbe5eb6969bbf71edc6d +# Parent 1943edc6f06aa1f026b4e6fa9ccc8b2d60243ca7 +8169448: OpenJDK 6 fails to build without pre-compiled headers +Summary: psPromotionManager.hpp is missing an import for psOldGen +Reviewed-by: omajid + +diff --git a/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp b/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp +--- openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp ++++ openjdk/hotspot/src/share/vm/gc_implementation/parallelScavenge/psPromotionManager.hpp +@@ -25,6 +25,7 @@ + #ifndef SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_HPP + #define SHARE_VM_GC_IMPLEMENTATION_PARALLELSCAVENGE_PSPROMOTIONMANAGER_HPP + ++#include "gc_implementation/parallelScavenge/psOldGen.hpp" + #include "gc_implementation/parallelScavenge/psPromotionLAB.hpp" + #include "memory/allocation.hpp" + #include "utilities/taskqueue.hpp" diff -r a5335c8838a5 -r 09ad6a965664 patches/pr3213-conditional_arm32jit.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/pr3213-conditional_arm32jit.patch Fri Dec 30 04:28:55 2016 +0000 @@ -0,0 +1,29 @@ +# HG changeset patch +# User chrisphi +# Date 1392756328 0 +# Tue Feb 18 20:45:28 2014 +0000 +# Node ID 0a9100ca5a41c8430aa9a51ef2ca5dd4d6f38322 +# Parent c9da84d02a614d10d2118d7725b58b42b02fbbc3 +ARM32 assembler update for hsx24. Use ARM32JIT to turn it on/off. + +diff --git openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make openjdk/hotspot/make/linux/makefiles/zeroshark.make +--- openjdk.orig/hotspot/make/linux/makefiles/zeroshark.make ++++ openjdk/hotspot/make/linux/makefiles/zeroshark.make +@@ -26,7 +26,8 @@ + # Setup common to Zero (non-Shark) and Shark versions of VM + + ifeq ($(ZERO_LIBARCH),arm) +- ++# check to see if we are building the assembler jit or just zero. ++ifeq ($(ARM32JIT),true) + Obj_Files += asm_helper.o + Obj_Files += cppInterpreter_arm.o + Obj_Files += thumb2.o +@@ -54,6 +55,7 @@ + $(CXX_COMPILE) -DSTATIC_OFFSETS -o $@ $< $(COMPILE_DONE) + + endif ++endif + + %.o: %.S + @echo Assembling $< diff -r a5335c8838a5 -r 09ad6a965664 tapset/jstack.stp.in --- a/tapset/jstack.stp.in Fri Aug 26 03:07:28 2016 +0100 +++ b/tapset/jstack.stp.in Fri Dec 30 04:28:55 2016 +0000 @@ -412,7 +412,7 @@ // that describe the method and signature. This constant pool // contains symbolic information that describe the properties // of the class. The indexes for methods and signaturates in - // the constant pool are symbolOopDescs that contain utf8 + // the constant pool are Symbols that contain utf8 // strings (plus lenghts). (We could also sanity check that // the tag value is correct [CONSTANT_String = 8]). // Note that the class name uses '/' instead of '.' as @@ -427,17 +427,17 @@ "@ABS_SERVER_LIBJVM_SO@")->_pool_holder; klassSymbol = @cast(klassPtr + oopDesc_size, "Klass", "@ABS_SERVER_LIBJVM_SO@")->_name; - klassName = &@cast(klassSymbol, "symbolOopDesc", + klassName = &@cast(klassSymbol, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - klassLength = @cast(klassSymbol, "symbolOopDesc", + klassLength = @cast(klassSymbol, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_length; methodIndex = @cast(methodOopPtr, "methodOopDesc", "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_name_index; - methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)); - methodName = &@cast(methodOopDesc, "symbolOopDesc", + methodOopDesc = user_long(constantPoolOop_base + (methodIndex * ptr_size)) - 1; + methodName = &@cast(methodOopDesc, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - methodLength = @cast(methodOopDesc, "symbolOopDesc", + methodLength = @cast(methodOopDesc, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_length; if (log_sig) @@ -445,10 +445,10 @@ sigIndex = @cast(methodOopPtr, "methodOopDesc", "@ABS_SERVER_LIBJVM_SO@")->_constMethod->_signature_index; sigOopDesc = user_long(constantPoolOop_base - + (sigIndex * ptr_size)); - sigName = &@cast(sigOopDesc, "symbolOopDesc", + + (sigIndex * ptr_size)) - 1; + sigName = &@cast(sigOopDesc, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_body[0]; - sigLength = @cast(sigOopDesc, "symbolOopDesc", + sigLength = @cast(sigOopDesc, "Symbol", "@ABS_SERVER_LIBJVM_SO@")->_length; sig = user_string_n(sigName, sigLength); }