/hg/icedtea6: 3 new changesets
andrew at icedtea.classpath.org
andrew at icedtea.classpath.org
Thu Sep 10 07:44:07 PDT 2009
changeset e2bd3952b822 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=e2bd3952b822
author: Andrew John Hughes <ahughes at redhat.com>
date: Thu Sep 10 15:44:07 2009 +0100
Merge.
changeset 161d0ebee520 in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=161d0ebee520
author: Andrew John Hughes <ahughes at redhat.com>
date: Thu Sep 10 15:44:21 2009 +0100
Merge.
changeset 974ba11065ab in /hg/icedtea6
details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=974ba11065ab
author: Andrew John Hughes <ahughes at redhat.com>
date: Thu Sep 10 15:46:50 2009 +0100
Update documentation with recent changes and Shark requirements.
2009-09-10 Andrew John Hughes <ahughes at redhat.com>
* INSTALL: Update documentation to reflect recent changes
and add Shark requirements.
diffstat:
81 files changed, 2765 insertions(+), 1330 deletions(-)
ChangeLog | 212 +
INSTALL | 13
Makefile.am | 3
patches/icedtea-jar-misc.patch | 1126 ++++++++++
patches/icedtea-zero.patch | 114 -
ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp | 36
ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp | 3
ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp | 26
ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp | 3
ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp | 51
ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp | 43
ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp | 3
ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp | 25
ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp | 145 -
ports/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp | 2
ports/hotspot/src/cpu/zero/vm/copy_zero.hpp | 38
ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp | 8
ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 123 -
ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp | 1
ports/hotspot/src/cpu/zero/vm/debug_zero.cpp | 3
ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp | 10
ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp | 26
ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp | 26
ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp | 26
ports/hotspot/src/cpu/zero/vm/dump_zero.cpp | 5
ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp | 13
ports/hotspot/src/cpu/zero/vm/entry_zero.hpp | 42
ports/hotspot/src/cpu/zero/vm/frame_zero.cpp | 321 ++
ports/hotspot/src/cpu/zero/vm/frame_zero.hpp | 41
ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp | 67
ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp | 26
ports/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp | 9
ports/hotspot/src/cpu/zero/vm/icache_zero.cpp | 8
ports/hotspot/src/cpu/zero/vm/icache_zero.hpp | 11
ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp | 26
ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp | 13
ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp | 1
ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp | 24
ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp | 51
ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp | 15
ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp | 24
ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp | 20
ports/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp | 24
ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp | 6
ports/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp | 105
ports/hotspot/src/cpu/zero/vm/registerMap_zero.hpp | 2
ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp | 26
ports/hotspot/src/cpu/zero/vm/register_zero.hpp | 18
ports/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp | 35
ports/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp | 3
ports/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp | 28
ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp | 19
ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 2
ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp | 293 --
ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 102
ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp | 27
ports/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp | 12
ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp | 26
ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp | 26
ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp | 26
ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp | 26
ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp | 26
ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp | 26
ports/hotspot/src/cpu/zero/vm/vm_version_zero.hpp | 3
ports/hotspot/src/cpu/zero/vm/vmreg_zero.cpp | 15
ports/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp | 8
ports/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp | 12
ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp | 26
ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp | 78
ports/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp | 9
ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp | 27
ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp | 149 -
ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp | 3
ports/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp | 6
ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp | 9
ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp | 6
ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp | 26
ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 46
ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp | 26
ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 3
ports/hotspot/src/share/vm/shark/sharkEntry.hpp | 2
diffs (truncated from 6353 to 500 lines):
diff -r 21edcf84dc76 -r 974ba11065ab ChangeLog
--- a/ChangeLog Mon Aug 31 07:45:07 2009 +0200
+++ b/ChangeLog Thu Sep 10 15:46:50 2009 +0100
@@ -1,3 +1,215 @@ 2009-08-31 Mark Wielaard <mjw at redhat.c
+2009-09-10 Andrew John Hughes <ahughes at redhat.com>
+
+ * INSTALL: Update documentation to reflect recent changes and add
+ Shark requirements.
+
+2009-09-10 Andrew Haley <aph at redhat.com>
+
+ * Makefile.am, patches/icedtea-jar-misc.patch: Import patch from
+ upstream OpenJDK 6.
+ http://hg.openjdk.java.net/jdk6/jdk6/jdk/rev/b35f1e5075a4
+
+2009-09-09 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp
+ (ZeroFrame::identify_word): New method.
+ (ZeroFrame::identify_vp_word): Likewise.
+
+ * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp
+ (EntryFrame::identify_word): New method.
+ * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp
+ (InterpreterFrame::identify_word): New method.
+ * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp
+ (SharkFrame::identify_word): New method.
+ * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp
+ (DeoptimizerFrame::identify_word): Likewise.
+
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp
+ (frame::frame): Added frame pointer argument.
+ (frame::_fp): New field.
+ (frame::fp): Return the above, instead of a dummy value.
+ (frame::zero_print_on_error): New method.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp
+ (frame::frame): Initialize frame pointer.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp
+ (frame::sender_for_entry_frame): Pass frame pointer.
+ (frame::sender_for_interpreter_frame): Likewise.
+ (frame::sender_for_compiled_frame): Likewise.
+ (frame::sender_for_deoptimizer_frame): Likewise.
+ (frame::zero_print_on_error): New method.
+ (ZeroFrame::identify_word): Likewise.
+ (EntryFrame::identify_word): Likewise.
+ (InterpreterFrame::identify_word): Likewise.
+ (SharkFrame::identify_word): Likewise.
+ (ZeroFrame::identify_vp_word): Likewise.
+ (DeoptimizerFrame::identify_word): Likewise.
+
+ * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+ (JavaThread::pd_last_frame): Pass frame pointer.
+
+ * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp
+ (os::current_frame): Implemented.
+
+ * patches/icedtea-zero.patch
+ (VMError::report): Replace stack printer code.
+ (hotspot/src/share/vm/includeDB_core): Updated.
+
+ * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Removed.
+
+2009-09-08 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Whitespace changes.
+
+2009-09-08 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp
+ (JavaThread::pop_zero_frame): Tweak.
+
+2009-09-04 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp
+ (ZeroEntry::method_entry_t): Renamed as...
+ (ZeroEntry::NormalEntryFunc): New type.
+ (ZeroEntry::osr_entry_t): Renamed as...
+ (ZeroEntry::OSREntryFunc): New type.
+ (ZeroEntry::_entry_point): Changed type.
+ (ZeroEntry::entry_point): Changed signature.
+ (ZeroEntry::set_entry_point): Likewise.
+ (ZeroEntry::invoke): Added cast.
+ (ZeroEntry::invoke_osr): Updated cast.
+
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp
+ (CppInterpreter::generate_entry): Changed signature.
+
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp
+ (InterpreterGenerator::generate_normal_entry): Added cast.
+ (InterpreterGenerator::generate_native_entry): Likewise.
+ (InterpreterGenerator::generate_accessor_entry): Likewise.
+ (InterpreterGenerator::generate_empty_entry): Likewise.
+ (AbstractInterpreterGenerator::generate_method_entry): Likewise.
+
+ * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp
+ (SharkCompiler::compile_method): Updated cast.
+
+ * ports/hotspot/src/share/vm/shark/sharkEntry.hpp
+ (SharkEntry::code_start): Removed cast.
+
+ * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp
+ (NativeJump::patch_verified_entry): Added cast.
+
+2009-09-04 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp
+ (ICache::initialize): New method.
+ (ICache::invalidate_word): Likewise.
+ (ICache::invalidate_range): Likewise.
+
+ * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp
+ (ICacheStubGenerator::generate_icache_flush): Replaced with stub.
+
+ * patches/icedtea-zero.patch
+ (AbstractICache::invalidate_range): Removed #ifdef ZERO.
+
+2009-09-03 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/assembler_zero.cpp: Reformatted
+ with trailing opening braces.
+ * ports/hotspot/src/cpu/zero/vm/assembler_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/bytecodeInterpreter_zero.inline.hpp:
+ Likewise.
+ * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/bytes_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/codeBuffer_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/copy_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreterGenerator_zero.hpp:
+ Likewise.
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/debug_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/deoptimizerFrame_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/dump_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/icBuffer_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/icache_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/icache_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interpreterGenerator_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interpreter_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interpreter_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/jniFastGetField_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/nativeInst_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/registerMap_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/register_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/relocInfo_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/relocInfo_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/stubRoutines_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/vm_version_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/vmreg_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/vmreg_zero.inline.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/vtableStubs_zero.cpp: Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/atomic_linux_zero.inline.hpp:
+ Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/bytes_linux_zero.inline.hpp:
+ Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/orderAccess_linux_zero.inline.hpp:
+ Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.cpp: Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/os_linux_zero.hpp: Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/prefetch_linux_zero.inline.hpp:
+ Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.cpp:
+ Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/threadLS_linux_zero.hpp:
+ Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp:
+ Likewise.
+
+2009-09-03 Gary Benson <gbenson at redhat.com>
+
+ * ports/hotspot/src/cpu/zero/vm/bytecodes_zero.hpp
+ Added copyright header.
+ * ports/hotspot/src/cpu/zero/vm/assembler_zero.inline.hpp:
+ Added copyright header and "intentionally empty" message.
+ * ports/hotspot/src/cpu/zero/vm/depChecker_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/depChecker_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/disassembler_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/globalDefinitions_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/interp_masm_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/register_definitions_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/templateInterpreterGenerator_zero.hpp:
+ Likewise.
+ * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/templateInterpreter_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/templateTable_zero.cpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/templateTable_zero.hpp: Likewise.
+ * ports/hotspot/src/cpu/zero/vm/vm_version_zero.cpp: Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/assembler_linux_zero.cpp:
+ Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.cpp:
+ Likewise.
+ * ports/hotspot/src/os_cpu/linux_zero/vm/vm_version_linux_zero.cpp:
+ Likewise.
+
+ * ports/hotspot/src/cpu/zero/vm/stackPrinter_zero.hpp
+ (ZeroStackPrinter::print_word): Replaced a couple of "%d"s with
+ INTPTR_FORMAT.
+
2009-08-31 Mark Wielaard <mjw at redhat.com>
Keith Seitz <keiths at redhat.com>
diff -r 21edcf84dc76 -r 974ba11065ab INSTALL
--- a/INSTALL Mon Aug 31 07:45:07 2009 +0200
+++ b/INSTALL Thu Sep 10 15:46:50 2009 +0100
@@ -39,6 +39,8 @@ netbeans = 6.5
For building the zero-assembler port (see below), you will need libffi.
+For building the Shark JIT, you will need LLVM 2.5 or current SVN.
+
For building with systemtap support (--enable-systemtap), you will need
systemtap-sdt-devel (available since systemtap 0.9.5). This also needs
the --with-abs-install-dir configure option to make sure the hotspot.stp.in
@@ -51,21 +53,20 @@ in the tapset/hotspot.stp file. For exam
See ./configure --help if you need to override the defaults.
-To bootstrap IcedTea with ecj:
+To bootstrap IcedTea with ecj and a Classpath-based JDK such as GCJ:
autoreconf
./configure
make
-To build IcedTea with an older version of IcedTea, use:
+To build IcedTea with an older version of IcedTea or OpenJDK, use:
autoreconf
-./configure --with-icedtea
- [default location: /usr/lib/jvm/java-icedtea,
- to specifiy location use --with-icedtea-home=/path/to/icedtea]
+./configure --with-openjdk
+ to specify the location use --with-openjdk=/path/to/icedtea]
make
There is currently no install target.
-IcedTea ends up in openjdk/control/build/<os>-<arch> when the build completes.
+IcedTea ends up in openjdk/build/<os>-<arch> when the build completes.
Example instantiations of <os>-<arch> include linux-i586, linux-amd64 and linux-ppc64.
Rebuilding The IcedTea Plugs
diff -r 21edcf84dc76 -r 974ba11065ab Makefile.am
--- a/Makefile.am Mon Aug 31 07:45:07 2009 +0200
+++ b/Makefile.am Thu Sep 10 15:46:50 2009 +0100
@@ -627,7 +627,8 @@ ICEDTEA_PATCHES = \
patches/security/icedtea-6824440.patch \
patches/security/icedtea-6830335.patch \
patches/security/icedtea-6845701.patch \
- patches/security/icedtea-6813167.patch
+ patches/security/icedtea-6813167.patch \
+ patches/icedtea-jar-misc.patch
if WITH_ALT_HSBUILD
ICEDTEA_PATCHES += \
diff -r 21edcf84dc76 -r 974ba11065ab patches/icedtea-jar-misc.patch
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/patches/icedtea-jar-misc.patch Thu Sep 10 15:46:50 2009 +0100
@@ -0,0 +1,1126 @@
+
+# HG changeset patch
+# User martin
+# Date 1246913604 25200
+# Node ID b35f1e5075a42030e8624459b13daa45ffc834f8
+# Parent 1661d42b1c09135b77f039e604878f0985d24255
+6854795: Miscellaneous improvements to "jar"
+6834805: Improve jar -C performance
+6332094: "jar t" and "jar x" should use ZipFile, not ZipInputStream
+6496274: jar seems to use more CPU than it should
+Summary: backport jdk7 jar command (remove use of nio2)
+Reviewed-by: sherman, darcy
+
+--- openjdk/jdk/src/share/classes/sun/tools/jar/Main.java Thu Jun 25 17:15:18 2009 -0400
++++ openjdk/jdk/src/share/classes/sun/tools/jar/Main.java Mon Jul 06 13:53:24 2009 -0700
+@@ -32,6 +32,8 @@ import java.util.jar.Manifest;
+ import java.util.jar.Manifest;
+ import java.text.MessageFormat;
+ import sun.misc.JarIndex;
++import static sun.misc.JarIndex.INDEX_NAME;
++import static java.util.jar.JarFile.MANIFEST_NAME;
+
+ /**
+ * This class implements a simple utility for creating files in the JAR
+@@ -46,10 +48,18 @@ class Main {
+ String zname = "";
+ String[] files;
+ String rootjar = null;
+- Hashtable filesTable = new Hashtable();
+- Vector paths = new Vector();
+- Vector v;
+- CRC32 crc32 = new CRC32();
++
++ // An entryName(path)->File map generated during "expand", it helps to
++ // decide whether or not an existing entry in a jar file needs to be
++ // replaced, during the "update" operation.
++ Map<String, File> entryMap = new HashMap<String, File>();
++
++ // All files need to be added/updated.
++ Set<File> entries = new LinkedHashSet<File>();
++
++ // Directories specified by "-C" operation.
++ Set<String> paths = new HashSet<String>();
++
+ /*
+ * cflag: create
+ * uflag: update
+@@ -62,11 +72,8 @@ class Main {
+ */
+ boolean cflag, uflag, xflag, tflag, vflag, flag0, Mflag, iflag;
+
+- static final String MANIFEST = JarFile.MANIFEST_NAME;
+ static final String MANIFEST_DIR = "META-INF/";
+ static final String VERSION = "1.0";
+- static final char SEPARATOR = File.separatorChar;
+- static final String INDEX = JarIndex.INDEX_NAME;
+
+ private static ResourceBundle rsrc;
+
+@@ -118,9 +125,21 @@ class Main {
+ this.program = program;
+ }
+
++ /**
++ * Creates a new empty temporary file in the same directory as the
++ * specified file. A variant of File.createTempFile.
++ */
++ private static File createTempFileInSameDirectoryAs(File file)
++ throws IOException {
++ File dir = file.getParentFile();
++ if (dir == null)
++ dir = new File(".");
++ return File.createTempFile("jartmp", null, dir);
++ }
++
+ private boolean ok;
+
+- /*
++ /**
+ * Starts main program with the specified arguments.
+ */
+ public synchronized boolean run(String args[]) {
+@@ -153,7 +172,7 @@ class Main {
+ }
+ addVersion(manifest);
+ addCreatedBy(manifest);
+- if (isAmbigousMainClass(manifest)) {
++ if (isAmbiguousMainClass(manifest)) {
+ if (in != null) {
+ in.close();
+ }
+@@ -175,7 +194,8 @@ class Main {
+ vflag = false;
+ }
+ }
+- create(new BufferedOutputStream(out), expand(files), manifest);
++ expand(null, files, false);
++ create(new BufferedOutputStream(out, 4096), manifest);
+ if (in != null) {
+ in.close();
+ }
+@@ -186,9 +206,7 @@ class Main {
+ FileOutputStream out;
+ if (fname != null) {
+ inputFile = new File(fname);
+- String path = inputFile.getParent();
+- tmpFile = File.createTempFile("tmp", null,
+- new File((path == null) ? "." : path));
++ tmpFile = createTempFileInSameDirectoryAs(inputFile);
+ in = new FileInputStream(inputFile);
+ out = new FileOutputStream(tmpFile);
+ } else {
+@@ -198,8 +216,9 @@ class Main {
+ }
+ InputStream manifest = (!Mflag && (mname != null)) ?
+ (new FileInputStream(mname)) : null;
+- expand(files);
+- boolean updateOk = update(in, new BufferedOutputStream(out), manifest);
++ expand(null, files, true);
++ boolean updateOk = update(in, new BufferedOutputStream(out),
++ manifest, null);
+ if (ok) {
+ ok = updateOk;
+ }
+@@ -217,19 +236,32 @@ class Main {
+ }
+ tmpFile.delete();
+ }
+- } else if (xflag || tflag) {
+- InputStream in;
++ } else if (tflag) {
++ replaceFSC(files);
+ if (fname != null) {
+- in = new FileInputStream(fname);
++ list(fname, files);
+ } else {
+- in = new FileInputStream(FileDescriptor.in);
+- }
+- if (xflag) {
+- extract(new BufferedInputStream(in), files);
++ InputStream in = new FileInputStream(FileDescriptor.in);
++ try{
++ list(new BufferedInputStream(in), files);
++ } finally {
++ in.close();
++ }
++ }
++ } else if (xflag) {
++ replaceFSC(files);
++ if (fname != null && files != null) {
++ extract(fname, files);
+ } else {
+- list(new BufferedInputStream(in), files);
+- }
+- in.close();
++ InputStream in = (fname == null)
++ ? new FileInputStream(FileDescriptor.in)
++ : new FileInputStream(fname);
++ try {
++ extract(new BufferedInputStream(in), files);
++ } finally {
++ in.close();
++ }
++ }
+ } else if (iflag) {
+ genIndex(rootjar, files);
+ }
+@@ -248,8 +280,8 @@ class Main {
+ return ok;
+ }
+
+- /*
+- * Parse command line arguments.
++ /**
++ * Parses command line arguments.
+ */
+ boolean parseArgs(String args[]) {
+ /* Preprocess and expand @file arguments */
+@@ -354,7 +386,7 @@ class Main {
+ while (dir.indexOf("//") > -1) {
+ dir = dir.replace("//", "/");
+ }
+- paths.addElement(dir.replace(File.separatorChar, '/'));
++ paths.add(dir.replace(File.separatorChar, '/'));
+ nameBuf[k++] = dir + args[++i];
+ } else {
+ nameBuf[k++] = args[i];
+@@ -383,21 +415,11 @@ class Main {
+ return true;
+ }
+
+- /*
++ /**
+ * Expands list of files to process into full list of all files that
+ * can be found by recursively descending directories.
+ */
+- String[] expand(String[] files) {
+- v = new Vector();
+- expand(null, files, v, filesTable);
+- files = new String[v.size()];
+- for (int i = 0; i < files.length; i++) {
+- files[i] = ((File)v.elementAt(i)).getPath();
+- }
+- return files;
+- }
+-
+- void expand(File dir, String[] files, Vector v, Hashtable t) {
++ void expand(File dir, String[] files, boolean isUpdate) {
+ if (files == null) {
+ return;
+ }
+@@ -409,17 +431,20 @@ class Main {
+ f = new File(dir, files[i]);
+ }
+ if (f.isFile()) {
+- if (!t.contains(f)) {
+- t.put(entryName(f.getPath()), f);
+- v.addElement(f);
++ if (entries.add(f)) {
++ if (isUpdate)
++ entryMap.put(entryName(f.getPath()), f);
+ }
+ } else if (f.isDirectory()) {
+- String dirPath = f.getPath();
+- dirPath = (dirPath.endsWith(File.separator)) ? dirPath :
More information about the distro-pkg-dev
mailing list