From bugzilla-daemon at icedtea.classpath.org Sat May 1 14:21:28 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 01 May 2010 21:21:28 +0000 Subject: [Bug 397] SIGSEGV while running Vuze with icedtea6-1.6.1 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=397 ------- Comment #8 from caster at gentoo.org 2010-05-01 21:21 ------- FYI, gentoo users experience: http://bugs.gentoo.org/show_bug.cgi?id=259884 Users report that the problem disappeared with icedtea6-1.7, and also had occured with sun-jdk (and disappeared with 1.6.0.18). -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 3 01:03:44 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 03 May 2010 08:03:44 +0000 Subject: [Bug 481] New: Shark assert(pc == __null, "should be") / Sigsegv bombs without assertions - Deoptimizer issue Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481 Summary: Shark assert(pc == __null,"should be") / Sigsegv bombs without assertions - Deoptimizer issue Product: IcedTea Version: 6-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Shark AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Testcase: cd openjdk/jdk/test/com/sun/media/sound/SoftReceiver javac Send_NoteOn_AllChannels.java java -Xcomp Send_NoteOn_AllChannels Result with enabled assertions: with extra jvm option: -XX:+SharkTraceInstalls -XX:+TraceDeoptimization ... [0x57ec60-0x57ed11): sun.net.www.protocol.jar.JarURLConnection:: (177 bytes code) Uncommon trap occurred in sun.net.www.protocol.jar.JarURLConnection:: (@0x0172cb10) thread=-1216132240 reason=unloaded action=reinterpret unloaded_class_index=27 unresolved class: sun/net/www/protocol/jar/JarFileFactory DEOPT PACKING thread 0x0985beb0 Compiled frame (sp=0xb7833ab8 unextended sp=0xb7833a9c, fp=0xb7833aa4, pc=0x0172cb10) 305 nmethod sun.net.www.protocol.jar.JarURLConnection:: (11 bytes) Virtual frames (innermost first): 0 - frame( sp=0xb7833ab8, unextended_sp=0xb7833a9c, fp=0xb7833aa4, pc=0x0172cb10) sun.net.www.protocol.jar.JarURLConnection.(JarURLConnection.java:54) - new @ bci 0 Created vframeArray 0x92e2af50 DEOPT UNPACKING thread 0x0985beb0 vframeArray 0x92e2af50 mode 2 {method} '' '()V' in 'sun/net/www/protocol/jar/JarURLConnection' - new @ bci 0 sp = 0xb7833ab8 [0x57ed70-0x57ee21): sun.net.www.protocol.jar.JarFileFactory:: (177 bytes code) Uncommon trap occurred in sun.net.www.protocol.jar.JarFileFactory:: (@0x0172c9d0) thread=-1216132240 reason=unloaded action=reinterpret unloaded_class_index=13 unresolved class: java/util/HashMap DEOPT PACKING thread 0x0985beb0 Compiled frame (sp=0xb7833a54 unextended sp=0xb7833a38, fp=0xb7833a40, pc=0x0172c9d0) 306 nmethod sun.net.www.protocol.jar.JarFileFactory:: (21 bytes) Virtual frames (innermost first): 0 - frame( sp=0xb7833a54, unextended_sp=0xb7833a38, fp=0xb7833a40, pc=0x0172c9d0) sun.net.www.protocol.jar.JarFileFactory.(JarFileFactory.java:44) - new @ bci 0 Created vframeArray 0x92e3f5d0 DEOPT UNPACKING thread 0x0985beb0 vframeArray 0x92e3f5d0 mode 2 {method} '' '()V' in 'sun/net/www/protocol/jar/JarFileFactory' - new @ bci 0 sp = 0xb7833a54 [0x57ee80-0x57ef79): sun.net.www.protocol.jar.JarFileFactory:: (249 bytes code) [0x57efd0-0x57f240): sun.net.www.protocol.jar.JarURLConnection:: (624 bytes code) [0x57f2a0-0x57f55a): java.net.JarURLConnection::parseSpecs (698 bytes code) Uncommon trap occurred in java.net.JarURLConnection::parseSpecs (@0x0172c561) thread=-1216132240 reason=unloaded action=reinterpret unloaded_class_index=28 unresolved class: java/net/URL DEOPT PACKING thread 0x0985beb0 Compiled frame (sp=0xb7833a44 unextended sp=0xb7833a18, fp=0xb7833a2c, pc=0x0172c561) 309 nmethod java.net.JarURLConnection::parseSpecs (102 bytes) Virtual frames (innermost first): 0 - frame( sp=0xb7833a44, unextended_sp=0xb7833a18, fp=0xb7833a2c, pc=0x0172c561) java.net.JarURLConnection.parseSpecs(JarURLConnection.java:179) - new @ bci 42 Created vframeArray 0x92e2af50 DEOPT UNPACKING thread 0x0985beb0 vframeArray 0x92e2af50 mode 2 {method} 'parseSpecs' '(Ljava/net/URL;)V' in 'java/net/JarURLConnection' - new @ bci 42 sp = 0xb7833a44 [0x57f5b0-0x57f6c2): java.net.URL:: (274 bytes code) [0x57f720-0x57fcf3): java.net.URL::isValidProtocol (1491 bytes code) [0x57fd50-0x57fe9c): java.lang.Character::isLetter (332 bytes code) [0x57fef0-0x58001a): java.lang.CharacterDataLatin1::getType (298 bytes code) [0x580070-0x5801bc): java.lang.Character::isLetterOrDigit (332 bytes code) [0x580210-0x580b30): sun.net.www.protocol.jar.JarURLConnection::connect (2336 bytes code) [0x580b90-0x580cb6): java.net.URLConnection::getUseCaches (294 bytes code) [0x580d10-0x58111e): sun.net.www.protocol.jar.JarFileFactory::getCachedJarFile (1038 bytes code) # To suppress the following error report, specify this argument # after -XX: or in .hotspotrc: SuppressErrorAt=/frame_zero.cpp:85 # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (/home/xerxes/icedtea6-1.8-shark/openjdk-ecj/hotspot/src/cpu/zero/vm/frame_zero.cpp:85), pid=11530, tid=2471279472 # Error: assert(pc == __null,"should be") Result without assertions: With extra jvm option:-XX:+SharkTraceInstalls ... [0x77f7c0-0x7800c2): sun.net.www.protocol.jar.JarURLConnection::connect (2306 bytes code) [0x780120-0x78023d): java.net.URLConnection::getUseCaches (285 bytes code) [0x7802a0-0x7806a2): sun.net.www.protocol.jar.JarFileFactory::getCachedJarFile (1026 bytes code) [0x780700-0x78081e): sun.net.www.protocol.jar.URLJarFile:: (286 bytes code) [0x780880-0x780a65): sun.net.www.protocol.jar.URLJarFile::getJarFile (485 bytes code) [0x780ac0-0x780d12): sun.net.www.protocol.jar.URLJarFile:: (594 bytes code) [0x780d70-0x780ef9): java.util.zip.ZipFile::ensureOpen (393 bytes code) [0x780f50-0x781100): java.util.zip.ZipFile::getEntry (432 bytes code) # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (os_linux_zero.cpp:236), pid=2998, tid=3078462320 # Error: caught unhandled signal 11 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 3 01:19:07 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 03 May 2010 08:19:07 +0000 Subject: [Bug 481] Shark assert(pc == __null, "should be") / Sigsegv bombs without assertions - Deoptimizer issue Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481 ------- Comment #1 from xerxes at zafena.se 2010-05-03 08:19 ------- Created an attachment (id=333) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=333&action=view) backtrace how the sigsegv crash looks on arm when running without assertions When running without assertions then the sigsegv crash happens inside the JITed code block of: sun.net.www.protocol.jar.JarURLConnection::connect when shark are processing a sharkState merge during the safepointed block. current_state()->merge(orig_state, orig_block, safepointed_block); Attached log file for backtrace for ARM. gdb disassemble on X86 indicates that the crash happens at the same place: Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb7fe5b70 (LWP 1877)] 0x03aaf8c7 in sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect () (gdb) disassemble Dump of assembler code for function sun.net.www.protocol.jar.JarURLConnection_3A__3A_connect: 0x03aaf7c0 <+0>: push %ebp 0x03aaf7c1 <+1>: mov %esp,%ebp 0x03aaf7c3 <+3>: push %ebx 0x03aaf7c4 <+4>: push %edi 0x03aaf7c5 <+5>: push %esi 0x03aaf7c6 <+6>: sub $0x1c,%esp 0x03aaf7c9 <+9>: mov 0x10(%ebp),%esi 0x03aaf7cc <+12>: mov 0x98(%esi),%eax 0x03aaf7d2 <+18>: mov 0x1e0(%esi),%edi 0x03aaf7d8 <+24>: sub 0x9c(%esi),%eax 0x03aaf7de <+30>: mov %ebp,%ecx 0x03aaf7e0 <+32>: sub %eax,%ecx 0x03aaf7e2 <+34>: cmp $0x4fff,%ecx 0x03aaf7e8 <+40>: mov 0x8(%ebp),%eax 0x03aaf7eb <+43>: mov %eax,-0x10(%ebp) 0x03aaf7ee <+46>: ja 0x3aaf816 0x03aaf7f4 <+52>: sub $0x10,%esp 0x03aaf7fa <+58>: mov %esi,0x8(%esp) 0x03aaf7fe <+62>: mov 0x8(%ebp),%esi 0x03aaf801 <+65>: mov %esi,(%esp) 0x03aaf804 <+68>: movl $0x0,0x4(%esp) 0x03aaf80c <+76>: call 0x3b6a40 <_ZN14CppInterpreter12normal_entryEP13methodOopDesciP6Thread> 0x03aaf811 <+81>: jmp 0x3aaf8cf 0x03aaf816 <+86>: add $0xffffffd4,%edi 0x03aaf819 <+89>: mov %edi,%eax 0x03aaf81b <+91>: sub 0x1d8(%esi),%eax 0x03aaf821 <+97>: cmp $0x5000,%eax 0x03aaf827 <+103>: jb 0x3aaf7f4 0x03aaf82d <+109>: mov %edi,0x18(%edi) 0x03aaf830 <+112>: movl $0x3,0x20(%edi) 0x03aaf837 <+119>: mov 0x1e4(%esi),%eax 0x03aaf83d <+125>: mov %eax,0x24(%edi) 0x03aaf840 <+128>: lea 0x24(%edi),%eax 0x03aaf843 <+131>: mov %eax,0x1e4(%esi) 0x03aaf849 <+137>: mov 0x2c(%edi),%ebx 0x03aaf84c <+140>: movsbl 0x1c(%ebx),%eax 0x03aaf850 <+144>: test %eax,%eax 0x03aaf852 <+146>: je 0x3aaf8d7 0x03aaf858 <+152>: cmpl $0x1,0x65bf20 0x03aaf85f <+159>: jne 0x3aaf8b8 0x03aaf865 <+165>: lea 0x10(%edi),%eax 0x03aaf868 <+168>: mov %eax,0x1e0(%esi) 0x03aaf86e <+174>: mov -0x10(%ebp),%eax 0x03aaf871 <+177>: mov %eax,0x14(%edi) 0x03aaf874 <+180>: mov 0xc(%ebp),%eax 0x03aaf877 <+183>: add $0x10,%eax 0x03aaf87a <+186>: mov %eax,0x1c(%edi) 0x03aaf87d <+189>: mov %ebx,0x2c(%edi) 0x03aaf880 <+192>: mov 0x1e4(%esi),%ebx 0x03aaf886 <+198>: mov %ebx,0x100(%esi) 0x03aaf88c <+204>: sub $0x8,%esp 0x03aaf892 <+210>: mov %esi,(%esp) 0x03aaf895 <+213>: call 0x55d230 <_ZN20SafepointSynchronize5blockEP10JavaThread> ---Type to continue, or q to quit--- 0x03aaf89a <+218>: add $0x8,%esp 0x03aaf89d <+221>: movl $0x0,0x100(%esi) 0x03aaf8a7 <+231>: mov 0x4(%esi),%ebx 0x03aaf8aa <+234>: test %ebx,%ebx 0x03aaf8ac <+236>: mov 0x14(%edi),%eax 0x03aaf8af <+239>: mov 0x2c(%edi),%edi 0x03aaf8b2 <+242>: jne 0x3aafc0d 0x03aaf8b8 <+248>: mov 0x1e4(%esi),%ebx 0x03aaf8be <+254>: lea 0xc(%ebx),%edi 0x03aaf8c1 <+257>: mov %edi,0x1e0(%esi) => 0x03aaf8c7 <+263>: mov (%ebx),%ebx 0x03aaf8c9 <+265>: mov %ebx,0x1e4(%esi) 0x03aaf8cf <+271>: lea -0xc(%ebp),%esp 0x03aaf8d2 <+274>: pop %esi 0x03aaf8d3 <+275>: pop %edi 0x03aaf8d4 <+276>: pop %ebx 0x03aaf8d5 <+277>: pop %ebp 0x03aaf8d6 <+278>: ret All crashes can be circumvented by creating a .hotspot_compiler file containing the following lines: exclude: Send_NoteOn_AllChannels::main exclude: SoftTestUtils:: exclude: com.sun.media.sound.EmergencySoundbank::createSoundbank exclude: sun.net.www.protocol.jar.JarURLConnection::connect Thus preventing jit compilation of all methods that make the JVM crash after being processed by the deoptimizer. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 3 02:40:10 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 03 May 2010 09:40:10 +0000 Subject: [Bug 482] New: Zero fails openjdk/jdk/test/java/lang/Rint Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=482 Summary: Zero fails openjdk/jdk/test/java/lang/Rint Product: IcedTea Version: 6-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Zero AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Testcase: cd openjdk/jdk/test/java/lang/Math javac Rint.java java Rint xerxes at xerxes-J464X:~/icedtea6-1.8-shark-llvm2.7/openjdk/jdk/test/java/lang/Math$ java -zero -Xint Rint Failure for Math.rint: For input 0.5000000000000001 (0x1.0000000000001p-1) expected 1.0 (0x1.0p0) got 0.0 (0x0.0p0). Failure for Math.rint: For input -0.5000000000000001 (-0x1.0000000000001p-1) expected -1.0 (-0x1.0p0) got -0.0 (-0x0.0p0). Failure for StrictMath.rint: For input 0.5000000000000001 (0x1.0000000000001p-1) expected 1.0 (0x1.0p0) got 0.0 (0x0.0p0). Failure for StrictMath.rint: For input -0.5000000000000001 (-0x1.0000000000001p-1) expected -1.0 (-0x1.0p0) got -0.0 (-0x0.0p0). Failure for Math.rint: For input 1.4999999999999998 (0x1.7ffffffffffffp0) expected 1.0 (0x1.0p0) got 2.0 (0x1.0p1). Failure for Math.rint: For input -1.4999999999999998 (-0x1.7ffffffffffffp0) expected -1.0 (-0x1.0p0) got -2.0 (-0x1.0p1). Failure for StrictMath.rint: For input 1.4999999999999998 (0x1.7ffffffffffffp0) expected 1.0 (0x1.0p0) got 2.0 (0x1.0p1). Failure for StrictMath.rint: For input -1.4999999999999998 (-0x1.7ffffffffffffp0) expected -1.0 (-0x1.0p0) got -2.0 (-0x1.0p1). Failure for Math.rint: For input 300000.50000000006 (0x1.24f8200000001p18) expected 300001.0 (0x1.24f84p18) got 300000.0 (0x1.24f8p18). Failure for Math.rint: For input -300000.50000000006 (-0x1.24f8200000001p18) expected -300001.0 (-0x1.24f84p18) got -300000.0 (-0x1.24f8p18). Failure for StrictMath.rint: For input 300000.50000000006 (0x1.24f8200000001p18) expected 300001.0 (0x1.24f84p18) got 300000.0 (0x1.24f8p18). Failure for StrictMath.rint: For input -300000.50000000006 (-0x1.24f8200000001p18) expected -300001.0 (-0x1.24f84p18) got -300000.0 (-0x1.24f8p18). Testing {Math, StrictMath}.rint incurred 12 failures. Exception in thread "main" java.lang.RuntimeException at Rint.main(Rint.java:118) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 3 02:46:38 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 03 May 2010 09:46:38 +0000 Subject: [Bug 482] Zero fails openjdk/jdk/test/java/lang/Rint Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=482 ------- Comment #1 from xerxes at zafena.se 2010-05-03 09:46 ------- Similar testcases that fails when running on Zero with one bit off from correct answer are: openjdk/jdk/test/java/lang/StrictMath/Expm1Tests.java openjdk/jdk/test/java/lang/StrictMath/HyperbolicTests.java openjdk/jdk/test/java/lang/StrictMath/Log10Tests.java openjdk/jdk/test/java/lang/StrictMath/Log1pTests.java -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 3 03:09:20 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 03 May 2010 10:09:20 +0000 Subject: [Bug 483] New: Shark miscompiles sun.misc.Unsafe::getByte Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=483 Summary: Shark miscompiles sun.misc.Unsafe::getByte Product: IcedTea Version: 6-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Shark AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Testcase: cd openjdk/jdk/test/java/nio/Buffer javac CopyDirectMemory.java java CopyDirectMemory Shark Outputs: 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 Exception in thread "main" java.lang.RuntimeException: java.nio.DirectByteBuffer[pos=1049600 lim=1049600 cap=1049600]: Expected '?'=0xfffffffffffffffc, got '?'=0xfc at Basic.fail(Basic.java:94) at Basic.fail(Basic.java:102) at Basic.ck(Basic.java:114) at CopyDirectByteMemory.test(CopyDirectByteMemory.java:59) at CopyDirectMemory.main(CopyDirectMemory.java:38) By using -Xcomp -XX:CompileOnly=sun.misc.Unsafe::getByte makes me able to verify that the miscompilation happens in sun.misc.Unsafe::getByte xerxes at xerxes-J464X:~/icedtea6-1.8-shark-llvm2.7/openjdk/jdk/test/java/nio/Buffer$ java -Xcomp -XX:CompileOnly=sun.misc.Unsafe::getByte -XX:+SharkTraceInstalls CopyDirectMemory [0xa6e010-0xa6e1a8): sun.misc.Unsafe::getByte (408 bytes code) 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70 71 Exception in thread "main" java.lang.RuntimeException: java.nio.DirectByteBuffer[pos=1049600 lim=1049600 cap=1049600]: Expected '?'=0xfffffffffffffffc, got '?'=0xfc at Basic.fail(Basic.java:94) at Basic.fail(Basic.java:102) at Basic.ck(Basic.java:114) at CopyDirectByteMemory.test(CopyDirectByteMemory.java:59) at CopyDirectMemory.main(CopyDirectMemory.java:38) Testcase works fine using Zero. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From ptisnovs at icedtea.classpath.org Mon May 3 09:36:56 2010 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Mon, 03 May 2010 16:36:56 +0000 Subject: /hg/icedtea6: patches/icedtea-6616792-fix.patch: fixed AWT focus... Message-ID: changeset 26b11cdd7394 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=26b11cdd7394 author: ptisnovs date: Mon May 03 18:36:41 2010 +0200 patches/icedtea-6616792-fix.patch: fixed AWT focus regression tests diffstat: 3 files changed, 1124 insertions(+), 1 deletion(-) ChangeLog | 5 Makefile.am | 3 patches/icedtea-6616792-fix.patch | 1117 +++++++++++++++++++++++++++++++++++++ diffs (truncated from 1146 to 500 lines): diff -r d1be9b22e65a -r 26b11cdd7394 ChangeLog --- a/ChangeLog Fri Apr 30 10:24:39 2010 +0100 +++ b/ChangeLog Mon May 03 18:36:41 2010 +0200 @@ -1,3 +1,8 @@ 2010-04-30 Gary Benson + + * patches/icedtea-6616792-fix.patch: + fixed AWT focus regression tests + 2010-04-30 Gary Benson PR icedtea/324 diff -r d1be9b22e65a -r 26b11cdd7394 Makefile.am --- a/Makefile.am Fri Apr 30 10:24:39 2010 +0100 +++ b/Makefile.am Mon May 03 18:36:41 2010 +0200 @@ -300,7 +300,8 @@ ICEDTEA_PATCHES = \ patches/extensions/netx-dist.patch \ patches/extensions/netx-umask.patch \ patches/icedtea-jtreg-httpTest.patch \ - patches/nss-debug.patch + patches/nss-debug.patch \ + patches/icedtea-6616792-fix.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r d1be9b22e65a -r 26b11cdd7394 patches/icedtea-6616792-fix.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-6616792-fix.patch Mon May 03 18:36:41 2010 +0200 @@ -0,0 +1,1117 @@ +--- openjdk.orig/jdk/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 2010-04-15 09:35:54.000000000 +0200 ++++ openjdk/jdk/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 2010-05-03 11:34:34.000000000 +0200 +@@ -25,8 +25,10 @@ + @test + @bug 6314575 + @summary Tests that previosly focused owned window doesn't steal focus when an owner's component requests focus. +- @author Anton Tarasov: area=awt-focus +- @run applet ActualFocusedWindowBlockingTest.html ++ @author Anton.Tarasov: area=awt.focus ++ @library ../../regtesthelpers ++ @build Util ++ @run main ActualFocusedWindowBlockingTest + */ + + import java.awt.*; +@@ -35,9 +37,10 @@ + import java.util.concurrent.atomic.AtomicBoolean; + import java.lang.reflect.InvocationTargetException; + import sun.awt.SunToolkit; ++import test.java.awt.regtesthelpers.Util; + + public class ActualFocusedWindowBlockingTest extends Applet { +- Robot robot; ++ Robot robot = Util.createRobot(); + Frame owner = new Frame("Owner Frame"); + Window win = new Window(owner); + Frame frame = new Frame("Auxiliary Frame"); +@@ -52,28 +55,12 @@ + } + + public void init() { +- // Create instructions for the user here, as well as set up +- // the environment -- set the layout manager, add buttons, +- // etc. +- this.setLayout (new BorderLayout ()); +- Sysout.createDialogWithInstructions(new String[] +- {"Automatic test. Simply wait until it's done."}); +- +- if ("sun.awt.motif.MToolkit".equals(Toolkit.getDefaultToolkit().getClass().getName())) { +- return; +- } +- + Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() { + public void eventDispatched(AWTEvent e) { +- Sysout.println("--> " + e); ++ System.out.println("--> " + e); + } + }, FocusEvent.FOCUS_EVENT_MASK | WindowEvent.WINDOW_FOCUS_EVENT_MASK); + +- try { +- robot = new Robot(); +- } catch (AWTException e) { +- throw new RuntimeException("Error: unable to create robot", e); +- } + owner.add(fButton); + win.add(wButton); + frame.add(aButton); +@@ -87,19 +74,18 @@ + + public void start() { + if ("sun.awt.motif.MToolkit".equals(Toolkit.getDefaultToolkit().getClass().getName())) { +- Sysout.println("No testing on Motif. Test passed."); ++ System.out.println("No testing on Motif. Test passed."); + return; + } + +- Sysout.println("\nTest started:\n"); ++ System.out.println("\nTest started:\n"); + + // Test 1. + + clickOnCheckFocus(wButton); +- + clickOnCheckFocus(aButton); + +- clickOn(fButton); ++ Util.clickOnComp(fButton, robot); + if (!testFocused(fButton)) { + throw new TestFailedException("The owner's component [" + fButton + "] couldn't be focused by click"); + } +@@ -107,11 +93,10 @@ + // Test 2. + + clickOnCheckFocus(wButton); +- + clickOnCheckFocus(aButton); + + fButton.requestFocus(); +- realSync(); ++ Util.waitForIdle(robot); + if (!testFocused(fButton)) { + throw new TestFailedException("The owner's component [" + fButton + "] couldn't be focused by request"); + } +@@ -119,19 +104,16 @@ + // Test 3. + + clickOnCheckFocus(wButton); +- + clickOnCheckFocus(aButton); +- + clickOnCheckFocus(fButton); +- + clickOnCheckFocus(aButton); + +- clickOn(owner); ++ Util.clickOnTitle(owner, robot); + if (!testFocused(fButton)) { + throw new TestFailedException("The owner's component [" + fButton + "] couldn't be focused as the most recent focus owner"); + } + +- Sysout.println("Test passed."); ++ System.out.println("Test passed."); + } + + void tuneAndShowWindows(Window[] arr) { +@@ -142,33 +124,18 @@ + w.setBackground(Color.blue); + w.setVisible(true); + y += 200; +- realSync(); ++ Util.waitForIdle(robot); + } + } + +- void clickOn(Component c) { +- Sysout.println("Test: clicking " + c); +- +- Point p = c.getLocationOnScreen(); +- Dimension d = c.getSize(); +- ++ void clickOnCheckFocus(Component c) { + if (c instanceof Frame) { +- robot.mouseMove(p.x + (int)(d.getWidth()/2), p.y + ((Frame)c).getInsets().top/2); +- Sysout.println((p.x + (int)(d.getWidth()/2)) + " " + (p.y + ((Frame)c).getInsets().top/2)); ++ Util.clickOnTitle((Frame)c, robot); + } else { +- robot.mouseMove(p.x + (int)(d.getWidth()/2), p.y + (int)(d.getHeight()/2)); ++ Util.clickOnComp(c, robot); + } +- robot.mousePress(InputEvent.BUTTON1_MASK); +- robot.delay(100); +- robot.mouseRelease(InputEvent.BUTTON1_MASK); +- +- realSync(); +- } +- +- void clickOnCheckFocus(Component c) { +- clickOn(c); + if (!testFocused(c)) { +- throw new RuntimeException("Error: [" + c + "] couldn't get focus by click."); ++ throw new TestErrorException(c + "couldn't get focus by click."); + } + } + +@@ -177,157 +144,22 @@ + if (KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == c) { + return true; + } +- realSync(); ++ Util.waitForIdle(robot); + } + return false; + } + +- void realSync() { +- ((SunToolkit)Toolkit.getDefaultToolkit()).realSync(); +- } +- ++ // Thrown when the behavior being verified is found wrong. + class TestFailedException extends RuntimeException { +- public TestFailedException(String cause) { +- super("Test failed. " + cause); +- Sysout.println(cause); ++ TestFailedException(String msg) { ++ super("Test failed: " + msg); + } + } +-} +- +-/**************************************************** +- Standard Test Machinery +- DO NOT modify anything below -- it's a standard +- chunk of code whose purpose is to make user +- interaction uniform, and thereby make it simpler +- to read and understand someone else's test. +- ****************************************************/ +- +-/** +- This is part of the standard test machinery. +- It creates a dialog (with the instructions), and is the interface +- for sending text messages to the user. +- To print the instructions, send an array of strings to Sysout.createDialog +- WithInstructions method. Put one line of instructions per array entry. +- To display a message for the tester to see, simply call Sysout.println +- with the string to be displayed. +- This mimics System.out.println but works within the test harness as well +- as standalone. +- */ +- +-class Sysout +-{ +- static TestDialog dialog; +- +- public static void createDialogWithInstructions( String[] instructions ) +- { +- dialog = new TestDialog( new Frame(), "Instructions" ); +- dialog.printInstructions( instructions ); +- dialog.setLocation(500,0); +- dialog.setVisible(true); +- println( "Any messages for the tester will display here." ); +- } +- +- public static void createDialog( ) +- { +- dialog = new TestDialog( new Frame(), "Instructions" ); +- String[] defInstr = { "Instructions will appear here. ", "" } ; +- dialog.printInstructions( defInstr ); +- dialog.setVisible(true); +- println( "Any messages for the tester will display here." ); +- } +- +- +- public static void printInstructions( String[] instructions ) +- { +- dialog.printInstructions( instructions ); +- } +- +- +- public static void println( String messageIn ) +- { +- dialog.displayMessage( messageIn ); +- } +- +-}// Sysout class +- +-/** +- This is part of the standard test machinery. It provides a place for the +- test instructions to be displayed, and a place for interactive messages +- to the user to be displayed. +- To have the test instructions displayed, see Sysout. +- To have a message to the user be displayed, see Sysout. +- Do not call anything in this dialog directly. +- */ +-class TestDialog extends Dialog +-{ +- +- TextArea instructionsText; +- TextArea messageText; +- int maxStringLength = 80; +- +- //DO NOT call this directly, go through Sysout +- public TestDialog( Frame frame, String name ) +- { +- super( frame, name ); +- int scrollBoth = TextArea.SCROLLBARS_BOTH; +- instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth ); +- add( "North", instructionsText ); +- +- messageText = new TextArea( "", 5, maxStringLength, scrollBoth ); +- add("Center", messageText); +- +- pack(); +- +- setVisible(true); +- }// TestDialog() +- +- //DO NOT call this directly, go through Sysout +- public void printInstructions( String[] instructions ) +- { +- //Clear out any current instructions +- instructionsText.setText( "" ); +- +- //Go down array of instruction strings +- +- String printStr, remainingStr; +- for( int i=0; i < instructions.length; i++ ) +- { +- //chop up each into pieces maxSringLength long +- remainingStr = instructions[ i ]; +- while( remainingStr.length() > 0 ) +- { +- //if longer than max then chop off first max chars to print +- if( remainingStr.length() >= maxStringLength ) +- { +- //Try to chop on a word boundary +- int posOfSpace = remainingStr. +- lastIndexOf( ' ', maxStringLength - 1 ); + +- if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1; +- +- printStr = remainingStr.substring( 0, posOfSpace + 1 ); +- remainingStr = remainingStr.substring( posOfSpace + 1 ); +- } +- //else just print +- else +- { +- printStr = remainingStr; +- remainingStr = ""; +- } +- +- instructionsText.append( printStr + "\n" ); +- +- }// while +- +- }// for +- +- }//printInstructions() +- +- //DO NOT call this directly, go through Sysout +- public void displayMessage( String messageIn ) +- { +- messageText.append( messageIn + "\n" ); +- System.out.println(messageIn); ++ // Thrown when an error not related to the behavior being verified is encountered. ++ class TestErrorException extends RuntimeException { ++ TestErrorException(String msg) { ++ super("Unexpected error: " + msg); ++ } + } +- +-}// TestDialog class ++} +--- openjdk.orig/jdk/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 2010-04-15 09:35:54.000000000 +0200 ++++ openjdk/jdk/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 2010-05-03 09:35:54.000000000 +0200 +@@ -23,16 +23,19 @@ + + /* + @test +- @bug 4823903 +- @summary Tests actual focused window retaining. +- @author Anton Tarasov: area=awt.focus +- @run applet ActualFocusedWindowRetaining.html ++ @bug 4823903 ++ @summary Tests actual focused window retaining. ++ @author Anton.Tarasov: area=awt.focus ++ @library ../../regtesthelpers ++ @build Util ++ @run main ActualFocusedWindowRetaining + */ + + import java.awt.*; + import java.awt.event.*; + import java.lang.reflect.*; + import java.applet.*; ++import test.java.awt.regtesthelpers.Util; + + public class ActualFocusedWindowRetaining extends Applet { + public static Frame frame = new Frame("Other Frame"); +@@ -46,7 +49,7 @@ + public static Window window1 = new TestWindow(owner, otherButton2, testButton2, 800, 200); + public static Window window2 = new TestWindow(owner, otherButton3, testButton3, 800, 300); + public static int step; +- public static Robot robot; ++ public static Robot robot = Util.createRobot(); + + public static void main(String[] args) { + ActualFocusedWindowRetaining a = new ActualFocusedWindowRetaining(); +@@ -54,53 +57,25 @@ + a.start(); + } + +- public void init() +- { +- //Create instructions for the user here, as well as set up +- // the environment -- set the layout manager, add buttons, +- // etc. +- this.setLayout (new BorderLayout ()); +- +- String[] instructions = +- { +- "This is an AUTOMATIC test", +- "simply wait until it is done" +- }; +- Sysout.createDialogWithInstructions( instructions ); +- } +- +- public void start () +- { +- if (Toolkit.getDefaultToolkit().getClass() +- .getName().equals("sun.awt.motif.MToolkit")) { +- Sysout.println("No testing on Motif."); +- return; +- } +- +- try { +- robot = new Robot(); +- } catch (AWTException e) { +- throw new RuntimeException("Error: unable to create robot", e); +- } +- ++ public void start () { + Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() { + public void eventDispatched(AWTEvent e) { + Object src = e.getSource(); + Class cls = src.getClass(); + + if (cls == TestWindow.class) { +- Sysout.println(e.paramString() + " on <" + (src == window1 ? "Window 1" : "Window 2") + ">"); ++ System.out.println(e.paramString() + " on <" + (src == window1 ? "Window 1" : "Window 2") + ">"); + } else if (cls == Frame.class) { +- Sysout.println(e.paramString() + " on <" + ((Frame)src).getTitle() + ">"); ++ System.out.println(e.paramString() + " on <" + ((Frame)src).getTitle() + ">"); + } else if (cls == Button.class) { +- Sysout.println(e.paramString() + " on <" + ((Button)src).getLabel() + ">"); ++ System.out.println(e.paramString() + " on <" + ((Button)src).getLabel() + ">"); + } else { +- Sysout.println(e.paramString() + " on "); ++ System.out.println(e.paramString() + " on "); + } + } + }, AWTEvent.WINDOW_EVENT_MASK | AWTEvent.WINDOW_FOCUS_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK); + +- setSize (200,200); ++ setSize (500, 200); + setVisible(true); + validate(); + +@@ -117,15 +92,15 @@ + owner.setSize(new Dimension(400, 100)); + owner.setVisible(true); + owner.toFront(); +- waitTillShown(owner); ++ Util.waitTillShown(owner); + + window1.setVisible(true); + window2.setVisible(true); + window1.toFront(); + window2.toFront(); + // Wait longer... +- waitTillShown(window1); +- waitTillShown(window2); ++ Util.waitTillShown(window1); ++ Util.waitTillShown(window2); + + test(); + +@@ -134,85 +109,39 @@ + } + + public void test() { +- + Button[] butArr = new Button[] {testButton3, testButton2, testButton1}; + Window[] winArr = new Window[] {window2, window1, owner}; + + step = 1; + for (int i = 0; i < 3; i++) { +- clickOnCheckFocusOwner(butArr[i]); +- clickOnCheckFocusedWindow(frame); +- clickOn(owner); +- if (!checkFocusedWindow(winArr[i])) { +- stopTest("Test failed: actual focused window didn't get a focus"); +- } +- if (!checkFocusOwner(butArr[i])) { +- stopTest("Test failed: actual focus owner didn't get a focus"); +- } ++ clickInSeriesCheckFocus(null, butArr[i], frame); ++ clickOwnerCheckFocus(winArr[i], butArr[i]); + step++; + } + + step = 4; +- clickOnCheckFocusOwner(testButton3); +- clickOnCheckFocusOwner(testButton1); +- clickOnCheckFocusedWindow(frame); +- clickOn(owner); +- if (!checkFocusedWindow(owner)) { +- stopTest("Test failed: actual focused window didn't get a focus"); +- } +- if (!checkFocusOwner(testButton1)) { +- stopTest("Test failed: actual focus owner didn't get a focus"); +- } From jon.vanalten at redhat.com Mon May 3 13:37:17 2010 From: jon.vanalten at redhat.com (jon.vanalten at redhat.com) Date: Mon, 3 May 2010 16:37:17 -0400 (EDT) Subject: [RFC] PulseAudio bugfix In-Reply-To: <890957040.305821272918672013.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> Message-ID: <129484441.306331272919037727.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> Hi, The attached diff fixes: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=438 Comparing the class of the Control.Type to determine support is completely wrong. It returns true when it should return true, but it gives false positives for most cases that should return false. The known Types are static instances, so comparing them using .equals() should give correct results. I've confirmed that passing a Control whose Type the PulseAudio provider does not support now returns false, while a Control that is supported returns true. (Only FloatControl.Type.VOLUME is currently supported). I also took the liberty of making sure the PulseAudio source files are added to src.zip when building with --enable-pulseaudio. In the past, the sources were bundled into the pulseaudio.jar, which was far from ideal for filesize reasons. This practice was ended with: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b9c4bedba90e However, now the jdk image does not have those sources anywhere, which is a problem for anyone looking to debug sound using the pulseaudio provider. I didn't see a good way to force the openjdk to add the files when initially creating the zip; the contents are determined in openjdk/jdk/make/common/Release.gmk. So I just add them in afterwards. Any comments? If these look okay, I assume the changes should be applied to both icedtea6 and icedtea. cheers, jon P.S. As an afterthought, which might change how this is handled, is there a way for the contents of a patch in icedtea to be changed based on paths determined at ./configure time? If so I can patch Release.gmk mentioned above instead of this .zip update process which feels a little hackish. -------------- next part -------------- A non-text attachment was scrubbed... Name: iscontrolsupported.diff Type: text/x-patch Size: 1144 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100503/07d1cbe7/iscontrolsupported.diff From jon.vanalten at redhat.com Mon May 3 13:45:18 2010 From: jon.vanalten at redhat.com (Jon VanAlten) Date: Mon, 3 May 2010 16:45:18 -0400 (EDT) Subject: RFC: Fix for http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=383 In-Reply-To: Message-ID: <1515393533.306981272919518945.JavaMail.root@zmail01.collab.prod.int.phx2.redhat.com> ----- "Andrew John Hughes" wrote: > On 29 April 2010 20:04, wrote: > > Hi, > > > > Sorry about the bump. ?Does anyone have a chance to review this? > > > > thanks, > > > > jon > > > > > > ----- "jon vanalten" wrote: > > > >> Hello, > >> > >> The attached diff allows encap decorations to be drawn for lines > of > >> zero length. ?I am pretty sure that I have limited any change in > >> behaviour to the special case of (zero line length, stroke width > >> greater than 1, endcaps square or rounded) in which this bug > exhibits > >> itself. ?With this patch the behaviour is now same as closed JDK. > ?Any > >> comments? ?Any objections if I push this? > >> > >> cheers, > >> > >> jon > > > > Have you sent this to 2d-dev at openjdk.java.net for review? I have now, thanks for pointing me in the right direction. http://mail.openjdk.java.net/pipermail/2d-dev/2010-April/001227.html jon > -- > Andrew :-) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and the OpenJDK > http://www.gnu.org/software/classpath > http://openjdk.java.net > > PGP Key: 94EFD9D8 (http://subkeys.pgp.net) > Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From bugzilla-daemon at icedtea.classpath.org Mon May 3 15:10:54 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 03 May 2010 22:10:54 +0000 Subject: [Bug 397] SIGSEGV while running Vuze with icedtea6-1.6.1 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=397 ------- Comment #9 from mothlight at fastmail.fm 2010-05-03 22:10 ------- It is still crashing for me with the latest version on Fedora. # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00b37833, pid=6931, tid=2799131504 # # JRE version: 6.0_17-b17 # Java VM: OpenJDK Server VM (14.0-b16 mixed mode linux-x86 ) # Derivative: IcedTea6 1.7.1 # Distribution: Custom build (Tue Apr 6 07:48:37 UTC 2010) # Problematic frame: # V [libjvm.so+0x1cf833] # # An error report file with more information is saved as: # /home/nice/vuze/hs_err_pid6931.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # /home/nice/vuze/vuze: line 191: 6931 Aborted (core dumped) ${JAVA_PROGRAM_DIR}java "${JAVA_ARGS}" -cp "${CLASSPATH}" -Djava.library.path="${PROGRAM_DIR}" -Dazureus.install.path="${PROGRAM_DIR}" -Dazureus.script="$0" $JAVA_PROPS $START_CLASS "$@" Exit from Azureus complete No shutdown tasks to do Azureus TERMINATED. [1]+ Done ~/vuze/vuze -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 3 23:06:26 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 04 May 2010 06:06:26 +0000 Subject: [Bug 473] NSS PKCS11 regression - due to java.security automatic loading Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=473 ------- Comment #1 from matej.spiller at gmail.com 2010-05-04 06:06 ------- There is missing a line before printing keystore size: keystore.load(null, "test".toCharArray()); //nss DB password -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 4 01:25:06 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 04 May 2010 08:25:06 +0000 Subject: [Bug 482] Zero fails openjdk/jdk/test/java/lang/Rint Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=482 ------- Comment #2 from gbenson at redhat.com 2010-05-04 08:25 ------- What platform? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 4 01:32:22 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 04 May 2010 08:32:22 +0000 Subject: [Bug 482] Zero fails openjdk/jdk/test/java/lang/Rint Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=482 ------- Comment #3 from xerxes at zafena.se 2010-05-04 08:32 ------- (In reply to comment #2) > What platform? > ia32 (32bit ubuntu running on 64bit cpu) xerxes at xerxes-J464X:~/icedtea6-1.8-shark/openjdk/jdk/test/java/lang/Math$ java -zero -Xint -version java version "1.6.0_18" OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1) OpenJDK Shark VM (build 14.0-b16, interpreted mode) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 4 01:35:45 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 04 May 2010 08:35:45 +0000 Subject: [Bug 482] Zero fails openjdk/jdk/test/java/lang/Rint Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=482 ------- Comment #4 from gbenson at redhat.com 2010-05-04 08:35 ------- Does this fail for you on x86_64? Or other platforms? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 4 02:27:35 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 04 May 2010 09:27:35 +0000 Subject: [Bug 482] Zero fails openjdk/jdk/test/java/lang/Rint Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=482 ------- Comment #5 from xerxes at zafena.se 2010-05-04 09:27 ------- (In reply to comment #4) > Does this fail for you on x86_64? Or other platforms? > I have only been able to reproduce this bug on 32bit x86. The bug dont seem to exist on 32bit ARM using Zero. I will post an update when I am able to test on more platforms. I have not yet been able to test this on x86_64, 32bit PPC and 64bit PPC. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 4 02:30:35 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 04 May 2010 09:30:35 +0000 Subject: [Bug 482] Zero fails openjdk/jdk/test/java/lang/Rint Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=482 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Platform|all |x86 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From ptisnovs at icedtea.classpath.org Tue May 4 05:26:32 2010 From: ptisnovs at icedtea.classpath.org (ptisnovs at icedtea.classpath.org) Date: Tue, 04 May 2010 12:26:32 +0000 Subject: /hg/icedtea6: Fixed ISO-8859-1 and ISO-8859-15 charsets relation... Message-ID: changeset f9e489455ed3 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f9e489455ed3 author: ptisnovs date: Tue May 04 14:26:09 2010 +0200 Fixed ISO-8859-1 and ISO-8859-15 charsets relationship. diffstat: 3 files changed, 17 insertions(+), 1 deletion(-) ChangeLog | 5 +++++ Makefile.am | 3 ++- patches/icedtea-iso-8859-15-fix.patch | 10 ++++++++++ diffs (39 lines): diff -r 26b11cdd7394 -r f9e489455ed3 ChangeLog --- a/ChangeLog Mon May 03 18:36:41 2010 +0200 +++ b/ChangeLog Tue May 04 14:26:09 2010 +0200 @@ -1,3 +1,8 @@ 2010-05-03 Pavel Tisnovsky + + * patches/icedtea-iso-8859-15-fix.patch: + fixed ISO-8859-1 and ISO-8859-15 charsets relationship + 2010-05-03 Pavel Tisnovsky * patches/icedtea-6616792-fix.patch: diff -r 26b11cdd7394 -r f9e489455ed3 Makefile.am --- a/Makefile.am Mon May 03 18:36:41 2010 +0200 +++ b/Makefile.am Tue May 04 14:26:09 2010 +0200 @@ -301,7 +301,8 @@ ICEDTEA_PATCHES = \ patches/extensions/netx-umask.patch \ patches/icedtea-jtreg-httpTest.patch \ patches/nss-debug.patch \ - patches/icedtea-6616792-fix.patch + patches/icedtea-6616792-fix.patch \ + patches/icedtea-iso-8859-15-fix.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r 26b11cdd7394 -r f9e489455ed3 patches/icedtea-iso-8859-15-fix.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/icedtea-iso-8859-15-fix.patch Tue May 04 14:26:09 2010 +0200 @@ -0,0 +1,10 @@ +--- openjdk.orig/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java 2010-04-15 09:35:35.000000000 +0200 ++++ openjdk/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java 2010-05-04 13:45:15.000000000 +0200 +@@ -49,7 +49,6 @@ + + public boolean contains(Charset cs) { + return ((cs instanceof US_ASCII) +- || (cs instanceof ISO_8859_1) + || (cs instanceof ISO_8859_15)); + } + From ahughes at redhat.com Tue May 4 06:24:27 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 4 May 2010 14:24:27 +0100 Subject: /hg/icedtea6: Fixed ISO-8859-1 and ISO-8859-15 charsets relation... In-Reply-To: References: Message-ID: On 4 May 2010 13:26, wrote: > changeset f9e489455ed3 in /hg/icedtea6 > details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f9e489455ed3 > author: ptisnovs > date: Tue May 04 14:26:09 2010 +0200 > > ? ? ? ?Fixed ISO-8859-1 and ISO-8859-15 charsets relationship. > > > diffstat: > > 3 files changed, 17 insertions(+), 1 deletion(-) > ChangeLog ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?5 +++++ > Makefile.am ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?3 ++- > patches/icedtea-iso-8859-15-fix.patch | ? 10 ++++++++++ > > diffs (39 lines): > > diff -r 26b11cdd7394 -r f9e489455ed3 ChangeLog > --- a/ChangeLog Mon May 03 18:36:41 2010 +0200 > +++ b/ChangeLog Tue May 04 14:26:09 2010 +0200 > @@ -1,3 +1,8 @@ 2010-05-03 ?Pavel Tisnovsky ? +2010-05-04 ?Pavel Tisnovsky ? > + > + ? ? ? * patches/icedtea-iso-8859-15-fix.patch: > + ? ? ? fixed ISO-8859-1 and ISO-8859-15 charsets relationship > + > ?2010-05-03 ?Pavel Tisnovsky ? > > ? ? ? ?* patches/icedtea-6616792-fix.patch: > diff -r 26b11cdd7394 -r f9e489455ed3 Makefile.am > --- a/Makefile.am ? ? ? Mon May 03 18:36:41 2010 +0200 > +++ b/Makefile.am ? ? ? Tue May 04 14:26:09 2010 +0200 > @@ -301,7 +301,8 @@ ICEDTEA_PATCHES = \ > ? ? ? ?patches/extensions/netx-umask.patch \ > ? ? ? ?patches/icedtea-jtreg-httpTest.patch \ > ? ? ? ?patches/nss-debug.patch \ > - ? ? ? ?patches/icedtea-6616792-fix.patch > + ? ? ? ?patches/icedtea-6616792-fix.patch \ > + ? ? ? ?patches/icedtea-iso-8859-15-fix.patch > > ?if WITH_ALT_HSBUILD > ?ICEDTEA_PATCHES += \ > diff -r 26b11cdd7394 -r f9e489455ed3 patches/icedtea-iso-8859-15-fix.patch > --- /dev/null ? Thu Jan 01 00:00:00 1970 +0000 > +++ b/patches/icedtea-iso-8859-15-fix.patch ? ? Tue May 04 14:26:09 2010 +0200 > @@ -0,0 +1,10 @@ > +--- openjdk.orig/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java ? ? 2010-04-15 09:35:35.000000000 +0200 > ++++ openjdk/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java ?2010-05-04 13:45:15.000000000 +0200 > +@@ -49,7 +49,6 @@ > + > + ? ? public boolean contains(Charset cs) { > + ? ? ? ? return ((cs instanceof US_ASCII) > +- ? ? ? ? ? ? ? ?|| (cs instanceof ISO_8859_1) > + ? ? ? ? ? ? ? ? || (cs instanceof ISO_8859_15)); > + ? ? } > + > What is the reason for this change? -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From mark at klomp.org Tue May 4 06:54:18 2010 From: mark at klomp.org (Mark Wielaard) Date: Tue, 04 May 2010 15:54:18 +0200 Subject: /hg/icedtea6: Fixed ISO-8859-1 and ISO-8859-15 charsets relation... In-Reply-To: References: Message-ID: <1272981258.9294.5.camel@springer.wildebeest.org> On Tue, 2010-05-04 at 14:24 +0100, Andrew John Hughes wrote: > On 4 May 2010 13:26, wrote: > > changeset f9e489455ed3 in /hg/icedtea6 > > details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f9e489455ed3 > > author: ptisnovs > > date: Tue May 04 14:26:09 2010 +0200 > > > > Fixed ISO-8859-1 and ISO-8859-15 charsets relationship. > > What is the reason for this change? It is a backport discussed in this thread: http://mail.openjdk.java.net/pipermail/jdk6-dev/2010-April/001528.html Cheers, Mark From ptisnovs at redhat.com Tue May 4 07:01:46 2010 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 04 May 2010 16:01:46 +0200 Subject: /hg/icedtea6: Fixed ISO-8859-1 and ISO-8859-15 charsets relation... In-Reply-To: References: Message-ID: <4BE028CA.10700@redhat.com> Andrew John Hughes wrote: > On 4 May 2010 13:26, wrote: >> changeset f9e489455ed3 in /hg/icedtea6 >> details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f9e489455ed3 >> author: ptisnovs >> date: Tue May 04 14:26:09 2010 +0200 >> >> Fixed ISO-8859-1 and ISO-8859-15 charsets relationship. >> >> >> diffstat: >> >> 3 files changed, 17 insertions(+), 1 deletion(-) >> ChangeLog | 5 +++++ >> Makefile.am | 3 ++- >> patches/icedtea-iso-8859-15-fix.patch | 10 ++++++++++ >> >> diffs (39 lines): >> >> diff -r 26b11cdd7394 -r f9e489455ed3 ChangeLog >> --- a/ChangeLog Mon May 03 18:36:41 2010 +0200 >> +++ b/ChangeLog Tue May 04 14:26:09 2010 +0200 >> @@ -1,3 +1,8 @@ 2010-05-03 Pavel Tisnovsky > +2010-05-04 Pavel Tisnovsky >> + >> + * patches/icedtea-iso-8859-15-fix.patch: >> + fixed ISO-8859-1 and ISO-8859-15 charsets relationship >> + >> 2010-05-03 Pavel Tisnovsky >> >> * patches/icedtea-6616792-fix.patch: >> diff -r 26b11cdd7394 -r f9e489455ed3 Makefile.am >> --- a/Makefile.am Mon May 03 18:36:41 2010 +0200 >> +++ b/Makefile.am Tue May 04 14:26:09 2010 +0200 >> @@ -301,7 +301,8 @@ ICEDTEA_PATCHES = \ >> patches/extensions/netx-umask.patch \ >> patches/icedtea-jtreg-httpTest.patch \ >> patches/nss-debug.patch \ >> - patches/icedtea-6616792-fix.patch >> + patches/icedtea-6616792-fix.patch \ >> + patches/icedtea-iso-8859-15-fix.patch >> >> if WITH_ALT_HSBUILD >> ICEDTEA_PATCHES += \ >> diff -r 26b11cdd7394 -r f9e489455ed3 patches/icedtea-iso-8859-15-fix.patch >> --- /dev/null Thu Jan 01 00:00:00 1970 +0000 >> +++ b/patches/icedtea-iso-8859-15-fix.patch Tue May 04 14:26:09 2010 +0200 >> @@ -0,0 +1,10 @@ >> +--- openjdk.orig/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java 2010-04-15 09:35:35.000000000 +0200 >> ++++ openjdk/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java 2010-05-04 13:45:15.000000000 +0200 >> +@@ -49,7 +49,6 @@ >> + >> + public boolean contains(Charset cs) { >> + return ((cs instanceof US_ASCII) >> +- || (cs instanceof ISO_8859_1) >> + || (cs instanceof ISO_8859_15)); >> + } >> + >> > > What is the reason for this change? ISO-8859-1 is not subset of ISO-8859-15 and vice versa. This change is already included in OpenJDK6 (I pushed it yesterday). Cheers Pavel From ahughes at redhat.com Tue May 4 08:09:21 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 4 May 2010 16:09:21 +0100 Subject: /hg/icedtea6: Fixed ISO-8859-1 and ISO-8859-15 charsets relation... In-Reply-To: <4BE028CA.10700@redhat.com> References: <4BE028CA.10700@redhat.com> Message-ID: On 4 May 2010 15:01, Pavel Tisnovsky wrote: > Andrew John Hughes wrote: >> >> On 4 May 2010 13:26, ? wrote: >>> >>> changeset f9e489455ed3 in /hg/icedtea6 >>> details: >>> http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f9e489455ed3 >>> author: ptisnovs >>> date: Tue May 04 14:26:09 2010 +0200 >>> >>> ? ? ? Fixed ISO-8859-1 and ISO-8859-15 charsets relationship. >>> >>> >>> diffstat: >>> >>> 3 files changed, 17 insertions(+), 1 deletion(-) >>> ChangeLog ? ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?5 +++++ >>> Makefile.am ? ? ? ? ? ? ? ? ? ? ? ? ? | ? ?3 ++- >>> patches/icedtea-iso-8859-15-fix.patch | ? 10 ++++++++++ >>> >>> diffs (39 lines): >>> >>> diff -r 26b11cdd7394 -r f9e489455ed3 ChangeLog >>> --- a/ChangeLog Mon May 03 18:36:41 2010 +0200 >>> +++ b/ChangeLog Tue May 04 14:26:09 2010 +0200 >>> @@ -1,3 +1,8 @@ 2010-05-03 ?Pavel Tisnovsky ?>> +2010-05-04 ?Pavel Tisnovsky ? >>> + >>> + ? ? ? * patches/icedtea-iso-8859-15-fix.patch: >>> + ? ? ? fixed ISO-8859-1 and ISO-8859-15 charsets relationship >>> + >>> ?2010-05-03 ?Pavel Tisnovsky ? >>> >>> ? ? ? * patches/icedtea-6616792-fix.patch: >>> diff -r 26b11cdd7394 -r f9e489455ed3 Makefile.am >>> --- a/Makefile.am ? ? ? Mon May 03 18:36:41 2010 +0200 >>> +++ b/Makefile.am ? ? ? Tue May 04 14:26:09 2010 +0200 >>> @@ -301,7 +301,8 @@ ICEDTEA_PATCHES = \ >>> ? ? ? patches/extensions/netx-umask.patch \ >>> ? ? ? patches/icedtea-jtreg-httpTest.patch \ >>> ? ? ? patches/nss-debug.patch \ >>> - ? ? ? ?patches/icedtea-6616792-fix.patch >>> + ? ? ? ?patches/icedtea-6616792-fix.patch \ >>> + ? ? ? ?patches/icedtea-iso-8859-15-fix.patch >>> >>> ?if WITH_ALT_HSBUILD >>> ?ICEDTEA_PATCHES += \ >>> diff -r 26b11cdd7394 -r f9e489455ed3 >>> patches/icedtea-iso-8859-15-fix.patch >>> --- /dev/null ? Thu Jan 01 00:00:00 1970 +0000 >>> +++ b/patches/icedtea-iso-8859-15-fix.patch ? ? Tue May 04 14:26:09 2010 >>> +0200 >>> @@ -0,0 +1,10 @@ >>> +--- openjdk.orig/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java >>> 2010-04-15 09:35:35.000000000 +0200 >>> ++++ openjdk/jdk/src/share/classes/sun/nio/cs/ISO_8859_15.java >>> ?2010-05-04 13:45:15.000000000 +0200 >>> +@@ -49,7 +49,6 @@ >>> + >>> + ? ? public boolean contains(Charset cs) { >>> + ? ? ? ? return ((cs instanceof US_ASCII) >>> +- ? ? ? ? ? ? ? ?|| (cs instanceof ISO_8859_1) >>> + ? ? ? ? ? ? ? ? || (cs instanceof ISO_8859_15)); >>> + ? ? } >>> + >>> >> >> What is the reason for this change? > > ISO-8859-1 is not subset of ISO-8859-15 and vice versa. This change is > already included in OpenJDK6 (I pushed it yesterday). > > Cheers > Pavel > Ok, that would have been clear from the patch if the bug ID of 6798572 had been included in the filename. Please include appropriate data when adding patches so we can keep track of them and update http://icedtea.classpath.org/wiki/IcedTea_JDK6_Patches -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From andrew at icedtea.classpath.org Tue May 4 09:50:58 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 04 May 2010 16:50:58 +0000 Subject: /hg/icedtea6: Move OpenJDK patches to appropriate subdirectory. Message-ID: changeset b571e4dc0ca6 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b571e4dc0ca6 author: Andrew John Hughes date: Tue May 04 17:50:37 2010 +0100 Move OpenJDK patches to appropriate subdirectory. 2010-05-04 Andrew John Hughes Move OpenJDK patches to appropriate subdirectory. * patches/icedtea-6616792-fix.patch, * patches/icedtea-iso-8859-15-fix.patch: Moved to... * Makefile.am: Fix paths to patches. * patches/openjdk/6616792-focus-tests-fix.patch, * patches/openjdk/6798572-iso-8859-15-fix.patch: ...here. diffstat: 6 files changed, 1140 insertions(+), 1129 deletions(-) ChangeLog | 11 Makefile.am | 4 patches/icedtea-6616792-fix.patch | 1117 ------------------------- patches/icedtea-iso-8859-15-fix.patch | 10 patches/openjdk/6616792-focus-tests-fix.patch | 1117 +++++++++++++++++++++++++ patches/openjdk/6798572-iso-8859-15-fix.patch | 10 diffs (truncated from 2302 to 500 lines): diff -r f9e489455ed3 -r b571e4dc0ca6 ChangeLog --- a/ChangeLog Tue May 04 14:26:09 2010 +0200 +++ b/ChangeLog Tue May 04 17:50:37 2010 +0100 @@ -1,3 +1,14 @@ 2010-05-04 Pavel Tisnovsky + + Move OpenJDK patches to appropriate subdirectory. + * patches/icedtea-6616792-fix.patch, + * patches/icedtea-iso-8859-15-fix.patch: + Moved to... + * Makefile.am: Fix paths to patches. + * patches/openjdk/6616792-focus-tests-fix.patch, + * patches/openjdk/6798572-iso-8859-15-fix.patch: + ...here. + 2010-05-04 Pavel Tisnovsky * patches/icedtea-iso-8859-15-fix.patch: diff -r f9e489455ed3 -r b571e4dc0ca6 Makefile.am --- a/Makefile.am Tue May 04 14:26:09 2010 +0200 +++ b/Makefile.am Tue May 04 17:50:37 2010 +0100 @@ -301,8 +301,8 @@ ICEDTEA_PATCHES = \ patches/extensions/netx-umask.patch \ patches/icedtea-jtreg-httpTest.patch \ patches/nss-debug.patch \ - patches/icedtea-6616792-fix.patch \ - patches/icedtea-iso-8859-15-fix.patch + patches/openjdk/6616792-focus-tests-fix.patch \ + patches/openjdk/6798572-iso-8859-15-fix.patch if WITH_ALT_HSBUILD ICEDTEA_PATCHES += \ diff -r f9e489455ed3 -r b571e4dc0ca6 patches/icedtea-6616792-fix.patch --- a/patches/icedtea-6616792-fix.patch Tue May 04 14:26:09 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1117 +0,0 @@ ---- openjdk.orig/jdk/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 2010-04-15 09:35:54.000000000 +0200 -+++ openjdk/jdk/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowBlockingTest.java 2010-05-03 11:34:34.000000000 +0200 -@@ -25,8 +25,10 @@ - @test - @bug 6314575 - @summary Tests that previosly focused owned window doesn't steal focus when an owner's component requests focus. -- @author Anton Tarasov: area=awt-focus -- @run applet ActualFocusedWindowBlockingTest.html -+ @author Anton.Tarasov: area=awt.focus -+ @library ../../regtesthelpers -+ @build Util -+ @run main ActualFocusedWindowBlockingTest - */ - - import java.awt.*; -@@ -35,9 +37,10 @@ - import java.util.concurrent.atomic.AtomicBoolean; - import java.lang.reflect.InvocationTargetException; - import sun.awt.SunToolkit; -+import test.java.awt.regtesthelpers.Util; - - public class ActualFocusedWindowBlockingTest extends Applet { -- Robot robot; -+ Robot robot = Util.createRobot(); - Frame owner = new Frame("Owner Frame"); - Window win = new Window(owner); - Frame frame = new Frame("Auxiliary Frame"); -@@ -52,28 +55,12 @@ - } - - public void init() { -- // Create instructions for the user here, as well as set up -- // the environment -- set the layout manager, add buttons, -- // etc. -- this.setLayout (new BorderLayout ()); -- Sysout.createDialogWithInstructions(new String[] -- {"Automatic test. Simply wait until it's done."}); -- -- if ("sun.awt.motif.MToolkit".equals(Toolkit.getDefaultToolkit().getClass().getName())) { -- return; -- } -- - Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() { - public void eventDispatched(AWTEvent e) { -- Sysout.println("--> " + e); -+ System.out.println("--> " + e); - } - }, FocusEvent.FOCUS_EVENT_MASK | WindowEvent.WINDOW_FOCUS_EVENT_MASK); - -- try { -- robot = new Robot(); -- } catch (AWTException e) { -- throw new RuntimeException("Error: unable to create robot", e); -- } - owner.add(fButton); - win.add(wButton); - frame.add(aButton); -@@ -87,19 +74,18 @@ - - public void start() { - if ("sun.awt.motif.MToolkit".equals(Toolkit.getDefaultToolkit().getClass().getName())) { -- Sysout.println("No testing on Motif. Test passed."); -+ System.out.println("No testing on Motif. Test passed."); - return; - } - -- Sysout.println("\nTest started:\n"); -+ System.out.println("\nTest started:\n"); - - // Test 1. - - clickOnCheckFocus(wButton); -- - clickOnCheckFocus(aButton); - -- clickOn(fButton); -+ Util.clickOnComp(fButton, robot); - if (!testFocused(fButton)) { - throw new TestFailedException("The owner's component [" + fButton + "] couldn't be focused by click"); - } -@@ -107,11 +93,10 @@ - // Test 2. - - clickOnCheckFocus(wButton); -- - clickOnCheckFocus(aButton); - - fButton.requestFocus(); -- realSync(); -+ Util.waitForIdle(robot); - if (!testFocused(fButton)) { - throw new TestFailedException("The owner's component [" + fButton + "] couldn't be focused by request"); - } -@@ -119,19 +104,16 @@ - // Test 3. - - clickOnCheckFocus(wButton); -- - clickOnCheckFocus(aButton); -- - clickOnCheckFocus(fButton); -- - clickOnCheckFocus(aButton); - -- clickOn(owner); -+ Util.clickOnTitle(owner, robot); - if (!testFocused(fButton)) { - throw new TestFailedException("The owner's component [" + fButton + "] couldn't be focused as the most recent focus owner"); - } - -- Sysout.println("Test passed."); -+ System.out.println("Test passed."); - } - - void tuneAndShowWindows(Window[] arr) { -@@ -142,33 +124,18 @@ - w.setBackground(Color.blue); - w.setVisible(true); - y += 200; -- realSync(); -+ Util.waitForIdle(robot); - } - } - -- void clickOn(Component c) { -- Sysout.println("Test: clicking " + c); -- -- Point p = c.getLocationOnScreen(); -- Dimension d = c.getSize(); -- -+ void clickOnCheckFocus(Component c) { - if (c instanceof Frame) { -- robot.mouseMove(p.x + (int)(d.getWidth()/2), p.y + ((Frame)c).getInsets().top/2); -- Sysout.println((p.x + (int)(d.getWidth()/2)) + " " + (p.y + ((Frame)c).getInsets().top/2)); -+ Util.clickOnTitle((Frame)c, robot); - } else { -- robot.mouseMove(p.x + (int)(d.getWidth()/2), p.y + (int)(d.getHeight()/2)); -+ Util.clickOnComp(c, robot); - } -- robot.mousePress(InputEvent.BUTTON1_MASK); -- robot.delay(100); -- robot.mouseRelease(InputEvent.BUTTON1_MASK); -- -- realSync(); -- } -- -- void clickOnCheckFocus(Component c) { -- clickOn(c); - if (!testFocused(c)) { -- throw new RuntimeException("Error: [" + c + "] couldn't get focus by click."); -+ throw new TestErrorException(c + "couldn't get focus by click."); - } - } - -@@ -177,157 +144,22 @@ - if (KeyboardFocusManager.getCurrentKeyboardFocusManager().getFocusOwner() == c) { - return true; - } -- realSync(); -+ Util.waitForIdle(robot); - } - return false; - } - -- void realSync() { -- ((SunToolkit)Toolkit.getDefaultToolkit()).realSync(); -- } -- -+ // Thrown when the behavior being verified is found wrong. - class TestFailedException extends RuntimeException { -- public TestFailedException(String cause) { -- super("Test failed. " + cause); -- Sysout.println(cause); -+ TestFailedException(String msg) { -+ super("Test failed: " + msg); - } - } --} -- --/**************************************************** -- Standard Test Machinery -- DO NOT modify anything below -- it's a standard -- chunk of code whose purpose is to make user -- interaction uniform, and thereby make it simpler -- to read and understand someone else's test. -- ****************************************************/ -- --/** -- This is part of the standard test machinery. -- It creates a dialog (with the instructions), and is the interface -- for sending text messages to the user. -- To print the instructions, send an array of strings to Sysout.createDialog -- WithInstructions method. Put one line of instructions per array entry. -- To display a message for the tester to see, simply call Sysout.println -- with the string to be displayed. -- This mimics System.out.println but works within the test harness as well -- as standalone. -- */ -- --class Sysout --{ -- static TestDialog dialog; -- -- public static void createDialogWithInstructions( String[] instructions ) -- { -- dialog = new TestDialog( new Frame(), "Instructions" ); -- dialog.printInstructions( instructions ); -- dialog.setLocation(500,0); -- dialog.setVisible(true); -- println( "Any messages for the tester will display here." ); -- } -- -- public static void createDialog( ) -- { -- dialog = new TestDialog( new Frame(), "Instructions" ); -- String[] defInstr = { "Instructions will appear here. ", "" } ; -- dialog.printInstructions( defInstr ); -- dialog.setVisible(true); -- println( "Any messages for the tester will display here." ); -- } -- -- -- public static void printInstructions( String[] instructions ) -- { -- dialog.printInstructions( instructions ); -- } -- -- -- public static void println( String messageIn ) -- { -- dialog.displayMessage( messageIn ); -- } -- --}// Sysout class -- --/** -- This is part of the standard test machinery. It provides a place for the -- test instructions to be displayed, and a place for interactive messages -- to the user to be displayed. -- To have the test instructions displayed, see Sysout. -- To have a message to the user be displayed, see Sysout. -- Do not call anything in this dialog directly. -- */ --class TestDialog extends Dialog --{ -- -- TextArea instructionsText; -- TextArea messageText; -- int maxStringLength = 80; -- -- //DO NOT call this directly, go through Sysout -- public TestDialog( Frame frame, String name ) -- { -- super( frame, name ); -- int scrollBoth = TextArea.SCROLLBARS_BOTH; -- instructionsText = new TextArea( "", 15, maxStringLength, scrollBoth ); -- add( "North", instructionsText ); -- -- messageText = new TextArea( "", 5, maxStringLength, scrollBoth ); -- add("Center", messageText); -- -- pack(); -- -- setVisible(true); -- }// TestDialog() -- -- //DO NOT call this directly, go through Sysout -- public void printInstructions( String[] instructions ) -- { -- //Clear out any current instructions -- instructionsText.setText( "" ); -- -- //Go down array of instruction strings -- -- String printStr, remainingStr; -- for( int i=0; i < instructions.length; i++ ) -- { -- //chop up each into pieces maxSringLength long -- remainingStr = instructions[ i ]; -- while( remainingStr.length() > 0 ) -- { -- //if longer than max then chop off first max chars to print -- if( remainingStr.length() >= maxStringLength ) -- { -- //Try to chop on a word boundary -- int posOfSpace = remainingStr. -- lastIndexOf( ' ', maxStringLength - 1 ); - -- if( posOfSpace <= 0 ) posOfSpace = maxStringLength - 1; -- -- printStr = remainingStr.substring( 0, posOfSpace + 1 ); -- remainingStr = remainingStr.substring( posOfSpace + 1 ); -- } -- //else just print -- else -- { -- printStr = remainingStr; -- remainingStr = ""; -- } -- -- instructionsText.append( printStr + "\n" ); -- -- }// while -- -- }// for -- -- }//printInstructions() -- -- //DO NOT call this directly, go through Sysout -- public void displayMessage( String messageIn ) -- { -- messageText.append( messageIn + "\n" ); -- System.out.println(messageIn); -+ // Thrown when an error not related to the behavior being verified is encountered. -+ class TestErrorException extends RuntimeException { -+ TestErrorException(String msg) { -+ super("Unexpected error: " + msg); -+ } - } -- --}// TestDialog class -+} ---- openjdk.orig/jdk/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 2010-04-15 09:35:54.000000000 +0200 -+++ openjdk/jdk/test/java/awt/Focus/ActualFocusedWindowTest/ActualFocusedWindowRetaining.java 2010-05-03 09:35:54.000000000 +0200 -@@ -23,16 +23,19 @@ - - /* - @test -- @bug 4823903 -- @summary Tests actual focused window retaining. -- @author Anton Tarasov: area=awt.focus -- @run applet ActualFocusedWindowRetaining.html -+ @bug 4823903 -+ @summary Tests actual focused window retaining. -+ @author Anton.Tarasov: area=awt.focus -+ @library ../../regtesthelpers -+ @build Util -+ @run main ActualFocusedWindowRetaining - */ - - import java.awt.*; - import java.awt.event.*; - import java.lang.reflect.*; - import java.applet.*; -+import test.java.awt.regtesthelpers.Util; - - public class ActualFocusedWindowRetaining extends Applet { - public static Frame frame = new Frame("Other Frame"); -@@ -46,7 +49,7 @@ - public static Window window1 = new TestWindow(owner, otherButton2, testButton2, 800, 200); - public static Window window2 = new TestWindow(owner, otherButton3, testButton3, 800, 300); - public static int step; -- public static Robot robot; -+ public static Robot robot = Util.createRobot(); - - public static void main(String[] args) { - ActualFocusedWindowRetaining a = new ActualFocusedWindowRetaining(); -@@ -54,53 +57,25 @@ - a.start(); - } - -- public void init() -- { -- //Create instructions for the user here, as well as set up -- // the environment -- set the layout manager, add buttons, -- // etc. -- this.setLayout (new BorderLayout ()); -- -- String[] instructions = -- { -- "This is an AUTOMATIC test", -- "simply wait until it is done" -- }; -- Sysout.createDialogWithInstructions( instructions ); -- } -- -- public void start () -- { -- if (Toolkit.getDefaultToolkit().getClass() -- .getName().equals("sun.awt.motif.MToolkit")) { -- Sysout.println("No testing on Motif."); -- return; -- } -- -- try { -- robot = new Robot(); -- } catch (AWTException e) { -- throw new RuntimeException("Error: unable to create robot", e); -- } -- -+ public void start () { - Toolkit.getDefaultToolkit().addAWTEventListener(new AWTEventListener() { - public void eventDispatched(AWTEvent e) { - Object src = e.getSource(); - Class cls = src.getClass(); - - if (cls == TestWindow.class) { -- Sysout.println(e.paramString() + " on <" + (src == window1 ? "Window 1" : "Window 2") + ">"); -+ System.out.println(e.paramString() + " on <" + (src == window1 ? "Window 1" : "Window 2") + ">"); - } else if (cls == Frame.class) { -- Sysout.println(e.paramString() + " on <" + ((Frame)src).getTitle() + ">"); -+ System.out.println(e.paramString() + " on <" + ((Frame)src).getTitle() + ">"); - } else if (cls == Button.class) { -- Sysout.println(e.paramString() + " on <" + ((Button)src).getLabel() + ">"); -+ System.out.println(e.paramString() + " on <" + ((Button)src).getLabel() + ">"); - } else { -- Sysout.println(e.paramString() + " on "); -+ System.out.println(e.paramString() + " on "); - } - } - }, AWTEvent.WINDOW_EVENT_MASK | AWTEvent.WINDOW_FOCUS_EVENT_MASK | AWTEvent.FOCUS_EVENT_MASK); - -- setSize (200,200); -+ setSize (500, 200); - setVisible(true); - validate(); - -@@ -117,15 +92,15 @@ - owner.setSize(new Dimension(400, 100)); - owner.setVisible(true); - owner.toFront(); -- waitTillShown(owner); -+ Util.waitTillShown(owner); - - window1.setVisible(true); - window2.setVisible(true); - window1.toFront(); - window2.toFront(); - // Wait longer... -- waitTillShown(window1); -- waitTillShown(window2); -+ Util.waitTillShown(window1); -+ Util.waitTillShown(window2); - - test(); - -@@ -134,85 +109,39 @@ - } - - public void test() { -- - Button[] butArr = new Button[] {testButton3, testButton2, testButton1}; - Window[] winArr = new Window[] {window2, window1, owner}; - - step = 1; - for (int i = 0; i < 3; i++) { -- clickOnCheckFocusOwner(butArr[i]); -- clickOnCheckFocusedWindow(frame); -- clickOn(owner); -- if (!checkFocusedWindow(winArr[i])) { -- stopTest("Test failed: actual focused window didn't get a focus"); -- } -- if (!checkFocusOwner(butArr[i])) { -- stopTest("Test failed: actual focus owner didn't get a focus"); -- } -+ clickInSeriesCheckFocus(null, butArr[i], frame); -+ clickOwnerCheckFocus(winArr[i], butArr[i]); - step++; - } - - step = 4; -- clickOnCheckFocusOwner(testButton3); -- clickOnCheckFocusOwner(testButton1); -- clickOnCheckFocusedWindow(frame); From gbenson at icedtea.classpath.org Wed May 5 03:28:35 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Wed, 05 May 2010 10:28:35 +0000 Subject: /hg/icedtea6: Fix PR IcedTea/481 Message-ID: changeset 540dc0858c17 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=540dc0858c17 author: Gary Benson date: Wed May 05 11:28:27 2010 +0100 Fix PR IcedTea/481 diffstat: 2 files changed, 21 insertions(+) ChangeLog | 7 +++++++ ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 14 ++++++++++++++ diffs (45 lines): diff -r b571e4dc0ca6 -r 540dc0858c17 ChangeLog --- a/ChangeLog Tue May 04 17:50:37 2010 +0100 +++ b/ChangeLog Wed May 05 11:28:27 2010 +0100 @@ -1,3 +1,10 @@ 2010-05-04 Andrew John Hughes + + PR icedtea/481 + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::improve_virtual_call): Disable an + optimization that cannot currently be supported. + 2010-05-04 Andrew John Hughes Move OpenJDK patches to appropriate subdirectory. diff -r b571e4dc0ca6 -r 540dc0858c17 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Tue May 04 17:50:37 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Wed May 05 11:28:27 2010 +0100 @@ -903,6 +903,18 @@ ciMethod* SharkTopLevelBlock::improve_vi dest_method->holder() == java_lang_Object_klass()) return dest_method; +#ifdef SHARK_CAN_DEOPTIMIZE_ANYWHERE + // This code can replace a virtual call with a direct call if this + // class is the only one in the entire set of loaded classes that + // implements this method. This makes the compiled code dependent + // on other classes that implement the method not being loaded, a + // condition which is enforced by the dependency tracker. If the + // dependency tracker determines a method has become invalid it + // will mark it for recompilation, causing running copies to be + // deoptimized. Shark currently can't deoptimize arbitrarily like + // that, so this optimization cannot be used. + // http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481 + // All other interesting cases are instance classes if (!receiver_type->is_instance_klass()) return NULL; @@ -957,6 +969,8 @@ ciMethod* SharkTopLevelBlock::improve_vi // it can perform a further optimization to replace calls // with non-monomorphic targets if the receiver has an exact // type. We don't mark types this way, so we can't do this. + +#endif // SHARK_CAN_DEOPTIMIZE_ANYWHERE return NULL; } From gbenson at redhat.com Wed May 5 03:30:29 2010 From: gbenson at redhat.com (Gary Benson) Date: Wed, 5 May 2010 11:30:29 +0100 Subject: Disable a broken optimization in Shark Message-ID: <20100505103029.GA5054@redhat.com> Hi all, This commit disables an optimization that Shark cannot currently support. Explained in the code. PR icedtea/481. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r b571e4dc0ca6 -r 540dc0858c17 ChangeLog --- a/ChangeLog Tue May 04 17:50:37 2010 +0100 +++ b/ChangeLog Wed May 05 11:28:27 2010 +0100 @@ -1,3 +1,10 @@ +2010-05-05 Gary Benson + + PR icedtea/481 + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::improve_virtual_call): Disable an + optimization that cannot currently be supported. + 2010-05-04 Andrew John Hughes Move OpenJDK patches to appropriate subdirectory. diff -r b571e4dc0ca6 -r 540dc0858c17 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Tue May 04 17:50:37 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Wed May 05 11:28:27 2010 +0100 @@ -903,6 +903,18 @@ dest_method->holder() == java_lang_Object_klass()) return dest_method; +#ifdef SHARK_CAN_DEOPTIMIZE_ANYWHERE + // This code can replace a virtual call with a direct call if this + // class is the only one in the entire set of loaded classes that + // implements this method. This makes the compiled code dependent + // on other classes that implement the method not being loaded, a + // condition which is enforced by the dependency tracker. If the + // dependency tracker determines a method has become invalid it + // will mark it for recompilation, causing running copies to be + // deoptimized. Shark currently can't deoptimize arbitrarily like + // that, so this optimization cannot be used. + // http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481 + // All other interesting cases are instance classes if (!receiver_type->is_instance_klass()) return NULL; @@ -958,6 +970,8 @@ // with non-monomorphic targets if the receiver has an exact // type. We don't mark types this way, so we can't do this. +#endif // SHARK_CAN_DEOPTIMIZE_ANYWHERE + return NULL; } From bugzilla-daemon at icedtea.classpath.org Wed May 5 03:34:04 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 05 May 2010 10:34:04 +0000 Subject: [Bug 481] Shark assert(pc == __null, "should be") / Sigsegv bombs without assertions - Deoptimizer issue Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481 gbenson at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #2 from gbenson at redhat.com 2010-05-05 10:34 ------- Fixed in icedtea6-540dc0858c17. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 5 04:56:57 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 05 May 2010 11:56:57 +0000 Subject: [Bug 484] New: Shark jit code block "0xcdcdcdcd" wipeout Sigsegv crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484 Summary: Shark jit code block "0xcdcdcdcd" wipeout Sigsegv crash Product: IcedTea Version: 6-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Shark AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Testcase: cd openjdk/jdk/test/com/sun/media/sound/SoftReceiver javac Send_NoteOn_AllChannels.java java -Xcomp Send_NoteOn_AllChannels Output: Starting program: /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/build/linux-i586/j2sdk-image/bin/java -Xcomp -XX:+SharkTraceInstalls -XX:+PrintCompilation Send_NoteOn_AllChannels [Thread debugging using libthread_db enabled] process 32578 is executing new program: /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/build/linux-i586/j2sdk-image/bin/java [Thread debugging using libthread_db enabled] [New Thread 0xb7fe5b70 (LWP 32608)] [New Thread 0x93c9ab70 (LWP 32619)] [New Thread 0x93c19b70 (LWP 32620)] [New Thread 0x93a98b70 (LWP 32621)] [New Thread 0x938d1b70 (LWP 32624)] [New Thread 0x93750b70 (LWP 32625)] 1 b java.lang.Thread:: (49 bytes) [0x3a64010-0x3a6440a): java.lang.Thread:: (1018 bytes code) [New Thread 0x934ffb70 (LWP 32630)] 2 b java.lang.System::getProperty (25 bytes) [0x3a64460-0x3a646b2): java.lang.System::getProperty (594 bytes code) ... *363 compiled methods later* 365 b com.sun.media.sound.EmergencySoundbank:: (885 bytes) [0x3ac0d10-0x3ac3abb): com.sun.media.sound.EmergencySoundbank:: (11691 bytes code) 366 b com.sun.media.sound.EmergencySoundbank::createSoundbank (4477 bytes) <------- [0x3ac3b10-0x3ac3bba): com.sun.media.sound.EmergencySoundbank::createSoundbank (170 bytes code) 366 made not entrant com.sun.media.sound.EmergencySoundbank::createSoundbank (4477 bytes) 367 b com.sun.media.sound.SF2Soundbank:: (125 bytes) [0x3ac3c10-0x3ac3e59): com.sun.media.sound.SF2Soundbank:: (585 bytes code) 367 made not entrant com.sun.media.sound.SF2Soundbank:: (125 bytes) 368 b com.sun.media.sound.SF2Soundbank::setName (6 bytes) [0x3ac3eb0-0x3ac3fcb): com.sun.media.sound.SF2Soundbank::setName (283 bytes code) ... wait a hundered methods later and zombies are aproaching!!! 438 b com.sun.media.sound.SF2Layer::getRegions (5 bytes) [0x3ad8a30-0x3ad8b4d): com.sun.media.sound.SF2Layer::getRegions (285 bytes code) 439 b com.sun.media.sound.EmergencySoundbank::new_snare_drum (529 bytes) [0x3ad8bf0-0x3adb6b6): com.sun.media.sound.EmergencySoundbank::new_snare_drum (10950 bytes code) 10% b com.sun.media.sound.FFT::calcF4FE @ 62 (481 bytes) [0x3adb710-0x3adc627): com.sun.media.sound.FFT::calcF4FE (3863 bytes code) 389 made zombie com.sun.media.sound.EmergencySoundbank::ifft (17 bytes) 381 made zombie java.util.Random:: (27 bytes) 378 made zombie java.util.Random:: (95 bytes) 372 made zombie java.lang.Math::sqrt (5 bytes) 371 made zombie com.sun.media.sound.EmergencySoundbank::new_bass_drum (530 bytes) 367 made zombie com.sun.media.sound.SF2Soundbank:: (125 bytes) 366 made zombie com.sun.media.sound.EmergencySoundbank::createSoundbank (4477 bytes) <------- 361 made zombie sun.misc.URLClassPath$JarLoader::ensureOpen (32 bytes) 349 made zombie java.util.ArrayList::iterator (10 bytes) ... and sometime a bit later 515 b com.sun.media.sound.ModelPatch::isPercussion (5 bytes) [0x3b1ebd0-0x3b1eced): com.sun.media.sound.ModelPatch::isPercussion (285 bytes code) 516 b javax.sound.midi.Patch::getProgram (5 bytes) [0x3b1ed50-0x3b1ee6c): javax.sound.midi.Patch::getProgram (284 bytes code) Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0xb7fe5b70 (LWP 32608)] 0x03ac3bb5 in ?? () (gdb) disassemble 0x3ac3b10,0x3ac3bba <---------- this are the jit memory region for [0x3ac3b10-0x3ac3bba): com.sun.media.sound.EmergencySoundbank::createSoundbank Dump of assembler code from 0x3ac3b10 to 0x3ac3bba: 0x03ac3b10: cmp %bh,%ch 0x03ac3b12: stos %eax,%es:(%edi) 0x03ac3b13: add %esp,%edi 0x03ac3b15: inc %edx 0x03ac3b16: lods %ds:(%esi),%al 0x03ac3b17: add %ebp,%ecx 0x03ac3b19: int $0xcd 0x03ac3b1b: int $0xcd ... (a large chunk of the jited memory region are filled with 0xcdcdcdcd) why? 0x03ac3bb3: int $0xcd => 0x03ac3bb5: int $0xcd 0x03ac3bb7: int $0xb0 0x03ac3bb9: add %al,(%eax) End of assembler dump. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 5 05:04:09 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 05 May 2010 12:04:09 +0000 Subject: [Bug 484] Shark jit code block "0xcdcdcdcd" wipeout Sigsegv crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484 ------- Comment #1 from xerxes at zafena.se 2010-05-05 12:03 ------- backtrace on ia32 (gdb) bt #0 0x03ac3bb5 in ?? () #1 0x003b68c7 in ZeroEntry::invoke (recurse=0, __the_thread__=0x17b4290) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp:54 #2 Interpreter::invoke_method (recurse=0, __the_thread__=0x17b4290) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/interpreter_zero.hpp:28 #3 CppInterpreter::main_loop (recurse=0, __the_thread__=0x17b4290) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:110 #4 0x003b6adc in CppInterpreter::normal_entry (method=0xb402ee70, UNUSED=24727876, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:60 #5 0x03a9110d in com.sun.media.sound.SoftSynthesizer_3A__3A_openStream () #6 0x003b68c7 in ZeroEntry::invoke (recurse=0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp:54 #7 Interpreter::invoke_method (recurse=0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/interpreter_zero.hpp:28 #8 CppInterpreter::main_loop (recurse=0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:110 #9 0x005879f3 in SharkRuntime::uncommon_trap (thread=0x8070d80, trap_request=47) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/share/vm/shark/sharkRuntime.cpp:233 #10 0x03a9001f in ?? () #11 0x003b68c7 in ZeroEntry::invoke (recurse=0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp:54 #12 Interpreter::invoke_method (recurse=0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/interpreter_zero.hpp:28 #13 CppInterpreter::main_loop (recurse=0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp:110 #14 0x005879f3 in SharkRuntime::uncommon_trap (thread=0x8070d80, trap_request=7) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/share/vm/shark/sharkRuntime.cpp:233 #15 0x03a8b59b in ?? () #16 0x005a35a5 in ZeroEntry::invoke (call_wrapper=0xb7fe50cc, result=0xb7fe52f0, result_type=T_INT, method=0xb401f9e8, entry_point=0x93e93848 "\"*`\234\254)\315?F\216\366\004C(\276?\254{\233\310\370\377\263\277\327n\337\302\366M?\206#\352\340S\316??N2v\276\277\230g6\t(?\262\277\314\064CY#t\235?p\265\224NY\223\304?\302\327\071\352?\301?\004\201\317\304", , parameters=0xb7fe51c4, parameter_words=1, __the_thread__=0x17d1810) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/entry_zero.hpp:54 #17 Interpreter::invoke_method (call_wrapper=0xb7fe50cc, result=0xb7fe52f0, result_type=T_INT, method=0xb401f9e8, entry_point=0x93e93848 "\"*`\234\254)\315?F\216\366\004C(\276?\254{\233\310\370\377\263\277\327n\337\302\366M?\206#\352\340S\316??N2v\276\277\230g6\t(?\262\277\314\064CY#t\235?p\265\224NY\223\304?\302\327\071\352?\301?\004\201\317\304", , parameters=0xb7fe51c4, parameter_words=1, __the_thread__=0x17d1810) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/interpreter_zero.hpp:28 #18 StubGenerator::call_stub (call_wrapper=0xb7fe50cc, result=0xb7fe52f0, result_type=T_INT, method=0xb401f9e8, entry_point=0x93e93848 "\"*`\234\254)\315?F\216\366\004C(\276?\254{\233\310\370\377\263\277\327n\337\302\366M?\206#\352\340S\316??N2v\276\277\230g6\t(?\262\277\314\064CY#t\235?p\265\224NY\223\304?\302\327\071\352?\301?\004\201\317\304", , parameters=0xb7fe51c4, parameter_words=1, __the_thread__=0x17d1810) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp:67 #19 0x00441fa7 in JavaCalls::call_helper (result=0xb7fe52ec, m=0xb7fe5174, args=0xb7fe51c0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/share/vm/runtime/javaCalls.cpp:387 #20 0x00516e34 in os::os_exception_wrapper (f=0x441d10 , value=0xb7fe52ec, method=0xb7fe5174, args=0xb7fe51c0, thread=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:4035 #21 0x00440d9c in JavaCalls::call (result=0xb7fe52ec, method=..., args=0xb7fe51c0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/share/vm/runtime/javaCalls.cpp:293 #22 0x0044d9d1 in jni_invoke_static (env=, result=, receiver=0x0, call_type=JNI_STATIC, method_id=0x80c04f8, args=0xb7fe52c0, __the_thread__=0x8070d80) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/share/vm/prims/jni.cpp:1008 #23 0x0045c080 in jni_CallStaticVoidMethod (env=0x8070e8c, cls=0x8073104, methodID=0x80c04f8) at /home/xerxes/icedtea6-1.8-shark-llvm2.7/openjdk/hotspot/src/share/vm/prims/jni.cpp:1580 #24 0x0804b12d in JavaMain (_args=0xbfffc190) at ../../../../src/share/bin/java.c:614 #25 0x0014796e in start_thread (arg=0xb7fe5b70) at pthread_create.c:300 #26 0x00232a0e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 (gdb) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 5 05:08:50 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 05 May 2010 12:08:50 +0000 Subject: [Bug 484] Shark jit code block "0xcdcdcdcd" wipeout Sigsegv crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484 ------- Comment #2 from xerxes at zafena.se 2010-05-05 12:08 ------- Created an attachment (id=334) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=334&action=view) hs_err_pid32578.log crash log -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From xranby at icedtea.classpath.org Wed May 5 06:00:05 2010 From: xranby at icedtea.classpath.org (xranby at icedtea.classpath.org) Date: Wed, 05 May 2010 13:00:05 +0000 Subject: /hg/release/icedtea6-1.8: Fix PR IcedTea/481 Message-ID: changeset ecef93c7fbb6 in /hg/release/icedtea6-1.8 details: http://icedtea.classpath.org/hg/release/icedtea6-1.8?cmd=changeset;node=ecef93c7fbb6 author: Gary Benson date: Wed May 05 11:28:27 2010 +0100 Fix PR IcedTea/481 diffstat: 2 files changed, 21 insertions(+) ChangeLog | 7 +++++++ ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 14 ++++++++++++++ diffs (45 lines): diff -r 16943314ca9a -r ecef93c7fbb6 ChangeLog --- a/ChangeLog Fri Apr 30 10:24:39 2010 +0100 +++ b/ChangeLog Wed May 05 11:28:27 2010 +0100 @@ -1,3 +1,10 @@ 2010-04-30 Gary Benson + + PR icedtea/481 + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::improve_virtual_call): Disable an + optimization that cannot currently be supported. + 2010-04-30 Gary Benson PR icedtea/324 diff -r 16943314ca9a -r ecef93c7fbb6 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Fri Apr 30 10:24:39 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Wed May 05 11:28:27 2010 +0100 @@ -903,6 +903,18 @@ ciMethod* SharkTopLevelBlock::improve_vi dest_method->holder() == java_lang_Object_klass()) return dest_method; +#ifdef SHARK_CAN_DEOPTIMIZE_ANYWHERE + // This code can replace a virtual call with a direct call if this + // class is the only one in the entire set of loaded classes that + // implements this method. This makes the compiled code dependent + // on other classes that implement the method not being loaded, a + // condition which is enforced by the dependency tracker. If the + // dependency tracker determines a method has become invalid it + // will mark it for recompilation, causing running copies to be + // deoptimized. Shark currently can't deoptimize arbitrarily like + // that, so this optimization cannot be used. + // http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=481 + // All other interesting cases are instance classes if (!receiver_type->is_instance_klass()) return NULL; @@ -957,6 +969,8 @@ ciMethod* SharkTopLevelBlock::improve_vi // it can perform a further optimization to replace calls // with non-monomorphic targets if the receiver has an exact // type. We don't mark types this way, so we can't do this. + +#endif // SHARK_CAN_DEOPTIMIZE_ANYWHERE return NULL; } From andrew at icedtea.classpath.org Wed May 5 06:03:26 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 05 May 2010 13:03:26 +0000 Subject: /hg/icedtea: Bump to b89. Message-ID: changeset 67157a3fe084 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=67157a3fe084 author: Andrew John Hughes date: Wed May 05 14:02:50 2010 +0100 Bump to b89. 2010-05-05 Andrew John Hughes Bump to b89. * patches/icedtea-fonts.patch: Removed, applied upstream. * Makefile.am: Bump to b89 changesets. Remove fonts patch. * generated/sun/nio/cs/ext/HKSCS_XPMapping.java, * generated/sun/nio/cs/ext/MS950.java: Add new generated files required by rt-class-files.stamp. * patches/boot/demos.patch: Recreated due to changes for module build. * patches/boot/ecj-diamond.patch: Add additional files using the <> operator. * patches/boot/icedtea-dbcs.patch: Updated due to change from GenerateDBCS to DBCS. * patches/boot/icedtea-dyn.patch: Recreated due to changes for module build. * patches/boot/icedtea-sbcs.patch: Updated due to change from GenerateSBCS to SBCS. * patches/boot/xbootclasspath.patch: Recreated due to changes for module build. * patches/hotspot/default/icedtea-params-cast-size_t.patch, * patches/hotspot/default/icedtea-shark-build.patch: Rerolled against new HotSpot. * patches/icedtea-liveconnect.patch, * patches/icedtea-rhino.patch: Recreated due to changes for module build. diffstat: 15 files changed, 4547 insertions(+), 923 deletions(-) ChangeLog | 29 Makefile.am | 31 generated/sun/nio/cs/ext/HKSCS_XPMapping.java | 1054 ++++ generated/sun/nio/cs/ext/MS950.java | 3295 ++++++++++++++ patches/boot/demos.patch | 26 patches/boot/ecj-diamond.patch | 24 patches/boot/icedtea-dbcs.patch | 20 patches/boot/icedtea-dyn.patch | 18 patches/boot/icedtea-sbcs.patch | 8 patches/boot/xbootclasspath.patch | 20 patches/hotspot/default/icedtea-params-cast-size_t.patch | 28 patches/hotspot/default/icedtea-shark-build.patch | 28 patches/icedtea-fonts.patch | 783 --- patches/icedtea-liveconnect.patch | 34 patches/icedtea-rhino.patch | 72 diffs (truncated from 5827 to 500 lines): diff -r a9f6eb34b8ca -r 67157a3fe084 ChangeLog --- a/ChangeLog Tue Apr 27 18:00:58 2010 +0100 +++ b/ChangeLog Wed May 05 14:02:50 2010 +0100 @@ -1,3 +1,32 @@ 2010-04-26 Andrew John Hughes + + Bump to b89. + * patches/icedtea-fonts.patch: + Removed, applied upstream. + * Makefile.am: + Bump to b89 changesets. Remove fonts patch. + * generated/sun/nio/cs/ext/HKSCS_XPMapping.java, + * generated/sun/nio/cs/ext/MS950.java: + Add new generated files required by rt-class-files.stamp. + * patches/boot/demos.patch: + Recreated due to changes for module build. + * patches/boot/ecj-diamond.patch: + Add additional files using the <> operator. + * patches/boot/icedtea-dbcs.patch: + Updated due to change from GenerateDBCS to DBCS. + * patches/boot/icedtea-dyn.patch: + Recreated due to changes for module build. + * patches/boot/icedtea-sbcs.patch: + Updated due to change from GenerateSBCS to SBCS. + * patches/boot/xbootclasspath.patch: + Recreated due to changes for module build. + * patches/hotspot/default/icedtea-params-cast-size_t.patch, + * patches/hotspot/default/icedtea-shark-build.patch: + Rerolled against new HotSpot. + * patches/icedtea-liveconnect.patch, + * patches/icedtea-rhino.patch: + Recreated due to changes for module build. + 2010-04-26 Andrew John Hughes Make sure correct classpaths are used by pre-build diff -r a9f6eb34b8ca -r 67157a3fe084 Makefile.am --- a/Makefile.am Tue Apr 27 18:00:58 2010 +0100 +++ b/Makefile.am Wed May 05 14:02:50 2010 +0100 @@ -1,22 +1,22 @@ # Dependencies -OPENJDK_VERSION = b84 +OPENJDK_VERSION = b89 -CORBA_CHANGESET = 007f7db4cbea -HOTSPOT_CHANGESET = f42ed4c1b561 -JAXP_CHANGESET = 495072db688b -JAXWS_CHANGESET = 702e7f7e94c3 -JDK_CHANGESET = a6da33732b35 -LANGTOOLS_CHANGESET = 6a6c3d5c6956 -OPENJDK_CHANGESET = 8bab12c58534 +CORBA_CHANGESET = e805b4155d76 +HOTSPOT_CHANGESET = e431f9da7dc9 +JAXP_CHANGESET = 826bafcb6c4a +JAXWS_CHANGESET = 1661166c82dc +JDK_CHANGESET = c1cee45daf4d +LANGTOOLS_CHANGESET = a0499f48ec96 +OPENJDK_CHANGESET = 195fcceefddc -CORBA_SHA256SUM = 50955e1352e4da5f31c9a27e22bbbc1bee6c3b1c1533650349def2502e5588e0 -HOTSPOT_SHA256SUM = a8d439fcd1dffc919bc2fd275edf3c5b6740c77a1d1daaa6085db78954483303 -JAXP_SHA256SUM = bee3d39feaf266ec1f0293abcde9cddb2553a09b1e400816187efbf86c6a2563 -JAXWS_SHA256SUM = 242f03256d5065b6b5a26f904591051382fe2b5989c31907859ba0c2ea3389fd -JDK_SHA256SUM = b131df485752d8a635af0d24081cb20042f7ded1df96ff756df23792f6a717d2 -LANGTOOLS_SHA256SUM = ff0451422ba9ff27a295bb11021c1b19d59d2f02ed893553f7919ddeede6aa2f -OPENJDK_SHA256SUM = 6b0a46f1ca49906ccbe229f4dd5a6cb71914bcff5ce91ace261e88f62336ca97 +CORBA_SHA256SUM = 870e2eac993a4eef48197ed7309cab176b56a994add1de215a026599052627cb +HOTSPOT_SHA256SUM = 4783b1b85239ac60b16eac7d184e51a9350670fec6f54a2e986761b7ded92994 +JAXP_SHA256SUM = 42d004e51a1f01d146ad230ce48996ddf8da3719fe571a41653f431d6b2e8a7b +JAXWS_SHA256SUM = 4523909cd46fd61b5c6670bf932099d5899236a37a4058e7b2bcb855e503a0e4 +JDK_SHA256SUM = b6d70bc41bbc7d02977ca4b0455bef765a3e8670dfa2f413a5b8bd91e77ee32a +LANGTOOLS_SHA256SUM = 96f6be5d89195353f55ef775e0dec9bd9a5da7f869aba6ed428e4a2cac806991 +OPENJDK_SHA256SUM = 93c536e6bc4e962050a00321e88e694fc4e0000e2ad887b8de22830bfda2649f CACAO_VERSION = 0.99.4 CACAO_SHA256SUM = c6090c1d2ed3c60acda0076b62563598267be8dab270ce49ee1035002a2510cf @@ -283,7 +283,6 @@ ICEDTEA_PATCHES = \ patches/icedtea-jpegclasses.patch \ patches/debian/icedtea-uname.patch \ patches/icedtea-freetypeversion.patch \ - patches/icedtea-fonts.patch \ patches/hotspot/$(HSBUILD)/icedtea-sparc-ptracefix.patch \ patches/hotspot/$(HSBUILD)/icedtea-sparc-trapsfix.patch \ patches/icedtea-override-redirect-metacity.patch \ diff -r a9f6eb34b8ca -r 67157a3fe084 generated/sun/nio/cs/ext/HKSCS_XPMapping.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/generated/sun/nio/cs/ext/HKSCS_XPMapping.java Wed May 05 14:02:50 2010 +0100 @@ -0,0 +1,1054 @@ +/* + * Copyright 2010 Sun Microsystems, Inc. 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. Sun designates this + * particular file as subject to the "Classpath" exception as provided + * by Sun in the LICENSE file that accompanied this code. + * + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + */ + +// -- This file was mechanically generated: Do not edit! -- // +package sun.nio.cs.ext; + +class HKSCS_XPMapping { + + + static final String[] b2cBmpStr = new String[] { + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + null, + "\uF303\uF304\uF305\uF306\uF307\uF308\uF309\uF30A" + + "\uF30B\uF30C\uF30D\uF30E\uF30F\uF310\uF311\uF312" + + "\uF313\uF314\uF315\uF316\uF317\uF318\u0100\u00C1" + + "\u01CD\u00C0\u0112\u00C9\u011A\u00C8\u014C\u00D3" + + "\u01D1\u00D2\uF325\u1EBE\uF327\u1EC0\u00CA\u0101" + + "\u00E1\u01CE\u00E0\u0251\u0113\u00E9\u011B\u00E8" + + "\u012B\u00ED\u01D0\u00EC\u014D\u00F3\u01D2\u00F2" + + "\u016B\u00FA\u01D4\u00F9\u01D6\u01D8\u01DA\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\u01DC\u00FC\uF344\u1EBF\uF346\u1EC1\u00EA" + + "\u0261\uF34A\uF34B\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" , + "\uF3A0\uF3A1\uFFFD\u650A\uFFFD\uFFFD\u4E3D\u6EDD" + + "\u9D4E\u91DF\uFFFD\uFFFD\uF3AC\u6491\u4F1A\u4F28" + + "\u4FA8\u5156\u5174\u519C\u51E4\u52A1\u52A8\u533B" + + "\u534E\u53D1\u53D8\u56E2\u58F0\u5904\u5907\u5932" + + "\u5934\u5B66\u5B9E\u5B9F\u5C9A\u5E86\u603B\u6589" + + "\u67FE\u6804\u6865\u6D4E\u70BC\u7535\u7EA4\u7EAC" + + "\u7EBA\u7EC7\u7ECF\u7EDF\u7F06\u7F37\u827A\u82CF" + + "\u836F\u89C6\u8BBE\u8BE2\u8F66\u8F67\u8F6E\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\u7411\u7CFC\u7DCD\u6946\u7AC9\u5227\uFFFD" + + "\uFFFD\uFFFD\uFFFD\u918C\u78B8\u915E\u80BC\uFFFD" + + "\u8D0B\u80F6\uF3F0\uFFFD\uFFFD\u809F\u9EC7\u4CCD" + + "\u9DC9\u9E0C\u4C3E\uF3F9\uF3FA\u9E0A\uF3FC\u35C1" + + "\uFFFD\u6E9A\u823E\u7519\uFFFD\u4911\u9A6C\u9A8F" + + "\u9F99\u7987\uF408\uF409\uF40A\uF40B\u4E24\u4E81" + + "\u4E80\u4E87\u4EBF\u4EEB\u4F37\u344C\u4FBD\u3E48" + + "\u5003\u5088\u347D\u3493\u34A5\u5186\u5905\u51DB" + + "\u51FC\u5205\u4E89\u5279\u5290\u5327\u35C7\u53A9" + + "\u3551\u53B0\u3553\u53C2\u5423\u356D\u3572\u3681" + + "\u5493\u54A3\u54B4\u54B9\u54D0\u54EF\u5518\u5523" + + "\u5528\u3598\u553F\u35A5\u35BF\u55D7\u35C5" , + "\uF43D\u5525\uFFFD\uF440\uF441\uF442\u5590\uF444" + + "\u39EC\uF446\u8E46\uF448\uF449\u4053\uF44B\u777A" + + "\uF44D\u3A34\u47D5\uF450\uF451\uF452\u64DD\uF454" + + "\uF455\uF456\uF457\u648D\u8E7E\uF45A\uF45B\uF45C" + + "\uF45D\uF45E\uF45F\uFFFD\uF461\uF462\uF463\u47F4" + + "\uF465\uF466\u9AB2\u3A67\uF469\u3FED\u3506\uF46C" + + "\uF46D\uF46E\uF46F\u9D6E\u9815\uFFFD\u43D9\uF474" + + "\u64B4\u54E3\uF477\uF478\uF479\u39FB\uF47B\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uF47C\uF47D\uF47E\u64EA\uF480\uF481\u8E68" + + "\uF483\uF484\uF485\uFFFD\u480B\uF488\u3FFA\u5873" + + "\uF48B\uFFFD\uF48D\uF48E\uF48F\uF490\uF491\u5579" + + "\u40BB\u43BA\uFFFD\u4AB4\uF497\uF498\u81AA\u98F5" + + "\uF49B\u6379\u39FE\uF49E\u8DC0\u56A1\u647C\u3E43" + + "\uFFFD\uF4A4\uF4A5\uF4A6\uF4A7\uFFFD\uF4A9\uF4AA" + + "\u3992\u3A06\uF4AD\u3578\uF4AF\uF4B0\u5652\uF4B2" + + "\uF4B3\uF4B4\u34BC\u6C3D\uF4B7\uFFFD\uFFFD\uF4BA" + + "\uF4BB\uF4BC\uF4BD\uF4BE\uF4BF\uF4C0\uF4C1\u7F93" + + "\uF4C3\uF4C4\uF4C5\u35FB\uF4C7\uF4C8\uF4C9\uF4CA" + + "\u3F93\uF4CC\uF4CD\uF4CE\uF4CF\uFFFD\uF4D1\uF4D2" + + "\uF4D3\uF4D4\uF4D5\u3FF9\uF4D7\u6432\uF4D9" , + "\uF4DA\uF4DB\uF4DC\uF4DD\uF4DE\uF4DF\uF4E0\u3A18" + + "\uF4E2\uF4E3\uF4E4\uF4E5\uF4E6\uF4E7\uF4E8\uF4E9" + + "\u95AA\u54CC\u82C4\u55B9\uFFFD\uF4EF\u9C26\u9AB6" + + "\uF4F2\uF4F3\u7140\u816D\u80EC\u5C1C\uF4F8\u8134" + + "\u3797\u535F\uF4FC\u91B6\uF4FE\uF4FF\uF500\uF501" + + "\u35DD\uF503\u3609\uF505\u56AF\uF507\uF508\uF509" + + "\uF50A\uF50B\uF50C\uF50D\uF50E\uF50F\uF510\uF511" + + "\u5A54\uF513\uF514\uF515\uF516\u579C\uF518\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uF519\uF51A\uF51B\uF51C\uF51D\u3703\uF51F" + + "\uF520\uF521\uF522\uF523\uF524\uF525\uF526\u5899" + + "\u5268\u361A\uF52A\u7BB2\u5B68\u4800\u4B2C\u9F27" + + "\u49E7\u9C1F\u9B8D\uF533\uF534\u55FB\u35F2\u5689" + + "\u4E28\u5902\uF53A\uF53B\u9751\uF53D\u4E5B\u4EBB" + + "\u353E\u5C23\u5F51\u5FC4\u38FA\u624C\u6535\u6B7A" + + "\u6C35\u6C3A\u706C\u722B\u4E2C\u72AD\uF54E\u7F52" + + "\u793B\u7CF9\u7F53\uF553\u34C1\uFFFD\uF556\u8002" + + "\u8080\uF559\uF55A\u535D\u8864\u89C1\uF55E\u8BA0" + + "\u8D1D\u9485\u9578\u957F\u95E8\uF565\u97E6\u9875" + + "\u98CE\u98DE\u9963\uF56B\u9C7C\u9E1F\u9EC4\u6B6F" + + "\u9F9C\u4E37\uF572\u961D\u6237\u94A2\uFFFD" , + null, + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\u5D3E\u5D48\u5D56\u3DFC\u380F\u5DA4\u5DB9\u3820" + + "\u3838\u5E42\u5EBD\u5F25\u5F83\u3908\u3914\u393F" + + "\u394D\u60D7\u613D\u5CE5\u3989\u61B7\u61B9\u61CF" + + "\u39B8\u622C\u6290\u62E5\u6318\u39F8\u56B1\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\u3A03\u63E2\u63FB\u6407\u645A\u3A4B\u64C0" + + "\u5D15\u5621\u9F9F\u3A97\u6586\u3ABD\u65FF\u6653" + + "\u3AF2\u6692\u3B22\u6716\u3B42\u67A4\u6800\u3B58" + + "\u684A\u6884\u3B72\u3B71\u3B7B\u6909\u6943\u725C" + + "\u6964\u699F\u6985\u3BBC\u69D6\u3BDD\u6A65\u6A74" + + "\u6A71\u6A82\u3BEC\u6A99\u3BF2\u6AAB\u6AB5\u6AD4" + + "\u6AF6\u6B81\u6BC1\u6BEA\u6C75\u6CAA\u3CCB\u6D02" + + "\u6D06\u6D26\u6D81\u3CEF\u6DA4\u6DB1\u6E15\u6E18" + + "\u6E29\u6E86\uF694\u6EBB\u6EE2\u6EDA\u9F7F\u6EE8" + + "\u6EE9\u6F24\u6F34\u3D46\uF69E\u6F81\u6FBE\u3D6A" + + "\u3D75\u71B7\u5C99\u3D8A\u702C\u3D91\u7050\u7054" + + "\u706F\u707F\u7089\uF6AD\u43C1\u35F1\uF6B0" , + "\uE311\u57BE\uE313\u713E\uE315\u364E\u69A2\uE318" + + "\u5B74\u7A49\uE31B\uE31C\u7A65\u7A7D\uE31F\u7ABB" + + "\u7AB0\u7AC2\u7AC3\u71D1\uE325\u41CA\u7ADA\u7ADD" + + "\u7AEA\u41EF\u54B2\uE32C\u7B0B\u7B55\u7B29\uE330" + + "\uE331\u7BA2\u7B6F\u839C\uE335\uE336\u7BD0\u8421" + + "\u7B92\uFFFD\uE33B\u3DAD\uE33D\u8492\u7BFA\uFFFD" + + "\u7C35\uE342\u7C44\u7C83\uE345\u7CA6\u667D\uE348" + + "\u7CC9\u7CC7\u7CE6\u7C74\u7CF3\u7CF5\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\u7E67\u451D\uE352\u7D5D\uE354\u748D\u7D89" + + "\u7DAB\u7135\u7DB3\uFFFD\uE35B\uE35C\u7DE4\u3D13" + + "\u7DF5\uE360\u7DE5\uE362\uFFFD\uE364\uE365\u7E6E" + + "\u7E92\u432B\u946C\u7E27\u7F40\u7F41\u7F47\u7936" + + "\uE36F\u99E1\u7F97\uE372\u7FA3\uE374\uE375\u455C" + + "\uE377\u4503\uE379\u7FFA\uE37B\uFFFD\u8008\u801D" + + "\uFFFD\u802F\uE381\uE382\u803B\u803C\u8061\uE386" + + "\u4989\uE388\uE389\uE38A\u6725\u80A7\uE38D\u8107" + + "\u811A\u58B0\uE391\u6C7F\uE393\uE394\u64E7\uE396" + + "\u8218\uE398\u6A53\uE39A\uE39B\u447A\u8229\uE39E" + + "\uE39F\uE3A0\u4FF9\uE3A2\u84E2\u8362\uE3A5\uE3A6" + + "\uE3A7\uE3A8\uE3A9\u82AA\u691B\uE3AC\u41DB" , + "\u854B\u82D0\u831A\uE3B1\uE3B2\u36C1\uE3B4\uE3B5" + + "\u827B\u82E2\u8318\uE3B9\uE3BA\uE3BB\uE3BC\uE3BD" + + "\u3DBF\u831D\u55EC\u8385\u450B\uE3C3\u83AC\uFFFD" + + "\u83D3\u347E\uE3C8\u6A57\u855A\u3496\uE3CC\uE3CD" + + "\u8458\uE3CF\u8471\u3DD3\u44E4\u6AA7\u844A\uE3D5" + + "\u7958\uFFFD\uE3D8\uE3D9\uE3DA\u84DE\uFFFD\u8391" + + "\u44A0\u8493\u84E4\uE3E1\u4240\uE3E3\u4543\u8534" + + "\u5AF2\uE3E7\u4527\u8573\u4516\u67BF\u8616\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uE3ED\uE3EE\u85C1\uE3F0\u8602\uE3F2\uE3F3" + + "\uE3F4\u456A\u8628\u3648\uE3F8\u53F7\uE3FA\u867E" + + "\u8771\uE3FD\u87EE\uE3FF\u87B1\u87DA\u880F\u5661" + + "\u866C\u6856\u460F\u8845\u8846\uE409\uE40A\uE40B" + + "\u885E\u889C\u465B\u88B4\u88B5\u63C1\u88C5\u7777" + + "\uE414\u8987\u898A\uFFFD\uFFFD\u89A7\u89BC\uE41B" + + "\u89E7\uE41D\uE41E\u8A9C\u7793\u91FE\u8A90\uE423" + + "\u7AE9\uE425\uE426\u4713\uE428\u717C\u8B0C\u8B1F" + + "\uE42C\uE42D\u8B3F\u8B4C\u8B4D\u8AA9\uE432\u8B90" + + "\u8B9B\u8AAF\uE436\u4615\u884F\u8C9B\uE43A\uE43B" + + "\uE43C\u3725\uE43E\u8CD6\uE440\uE441\u8D12\u8D03" + + "\uE444\u8CDB\u705C\u8D11\uE448\u3ED0\uFFFD" , + "\u8DA9\uE44C\uE44D\uE44E\u3B7C\uE450\uE451\u7AE7" + + "\u8EAD\u8EB6\u8EC3\u92D4\u8F19\u8F2D\uE459\uE45A" + + "\u8FA5\u9303\uE45D\uE45E\u8FB3\u492A\uE461\uE462" + + "\uE463\u5EF8\uE465\u8FF9\uE467\uE468\uE469\uE46A" + + "\u3980\uE46C\u9037\uE46E\uE46F\u9061\uE471\uE472" + + "\u90A8\uE474\u90C4\uE476\u90AE\uFFFD\u9167\u3AF0" + + "\u91A9\u91C4\u7CAC\uE47E\uE47F\u920E\u6C9F\u9241" + + "\u9262\uE484\uFFFD\uE486\uE487\uE488\uE489\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uE48A\u932C\u936B\uE48D\uE48E\u708F\u5AC3" + + "\uE491\uE492\u4965\u9244\uE495\uE496\uE497\u9373" + + "\u945B\u8EBC\u9585\u95A6\u9426\u95A0\u6FF6\u42B9" + + "\uE4A1\uE4A2\uE4A3\uE4A4\u49DF\u6C1C\u967B\u9696" + + "\u416C\u96A3\uE4AB\u61DA\u96B6\u78F5\uE4AF\u96BD" + + "\u53CC\u49A1\uE4B3\uE4B4\uE4B5\uE4B6\uE4B7\uE4B8" + + "\uE4B9\uE4BA\u9731\u8642\u9736\u4A0F\u453D\u4585" + + "\uE4C1\u7075\u5B41\u971B\uFFFD\uE4C6\u9757\u5B4A" + + "\uE4C9\u975F\u9425\u50D0\uE4CD\uE4CE\u9789\u979F" + + "\u97B1\u97BE\u97C0\u97D2\u97E0\uE4D6\u97EE\u741C" + + "\uE4D9\uFFFD\u97F5\uE4DC\uE4DD\u4AD1\u9834\u9833" + + "\u984B\u9866\u3B0E\uE4E4\u3D51\uE4E6\uE4E7" , + "\uE4E8\u98CA\u98B7\u98C8\u98C7\u4AFF\uE4EE\uE4EF" + + "\u55B0\u98E1\u98E6\u98EC\u9378\u9939\uE4F6\u4B72" + + "\uE4F8\uE4F9\u99F5\u9A0C\u9A3B\u9A10\u9A58\uE4FF" + + "\u36C4\uE501\uE502\u9AE0\u9AE2\uE505\u9AF4\u4C0E" + + "\u9B14\u9B2D\uE50A\u5034\u9B34\uE50D\u38C3\uE50F" + + "\u9B50\u9B40\uE512\u5A45\uE514\u9B8E\uE516\u9C02" + + "\u9BFF\u9C0C\uE51A\u9DD4\uE51C\uE51D\uE51E\uE51F" + + "\uE520\uE521\u9D7E\u9D83\uE524\u9E0E\u6888\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\u9DC4\uE528\uE529\uE52A\uE52B\uE52C\u9D39" + + "\uE52E\uE52F\u9E90\u9E95\u9E9E\u9EA2\u4D34\u9EAA" + + "\u9EAF\uE537\u9EC1\u3B60\u39E5\u3D1D\u4F32\u37BE" + + "\uE53E\u9F02\u9F08\u4B96\u9424\uE543\u9F17\uFFFD" + + "\u9F39\u569F\u568A\u9F45\u99B8\uE54B\u97F2\u847F" + + "\u9F62\u9F69\u7ADC\u9F8E\u7216\u4BBE\uE554\uE555" + + "\u7177\uE557\uE558\uE559\u739E\uE55B\uE55C\u799F" + + "\uE55E\uE55F\u9369\u93F3\uE562\u92EC\u9381\u93CB" + + "\uE566\uE567\u7217\u3EEB\u7772\u7A43\u70D0\uE56D" + + "\uE56E\u717E\uE570\u70A3\uE572\uE573\u3EC7\uE575" + + "\uE576\uE577\u3722\uE579\uE57A\u36E1\uE57C\uE57D" + + "\uE57E\u3723\uE580\u575B\uE582\uE583\uE584" , + "\uE585\uE586\u8503\uE588\uFFFD\u8455\uE58B\uE58C" + + "\uE58D\uE58E\uE58F\uE590\u44F4\uE592\uE593\uE594" + + "\u67F9\u3733\u3C15\u3DE7\u586C\uE59A\u6810\u4057" + + "\uE59D\uE59E\uE59F\uE5A0\uE5A1\u54CB\u569E\uE5A4" + + "\u5692\uE5A6\uE5A7\uE5A8\u93C6\uE5AA\u939C\u4EF8" + + "\u512B\u3819\uE5AF\u4EBC\uE5B1\uE5B2\u4F4B\u4F8A" + + "\uE5B5\u5A68\uE5B7\uE5B8\u3999\uE5BA\uE5BB\u3435" + + "\u4F29\uE5BE\uE5BF\uE5C0\u8ADA\uE5C2\u4E98\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD\uFFFD" + + "\uFFFD\u50CD\u510D\u4FA2\u4F03\uE5C8\uE5C9\u4F42" + + "\u502E\u506C\u5081\u4FCC\u4FE5\u5058\u50FC\uFFFD" + + "\uFFFD\uFFFD\uFFFD\u6E76\uE5D7\uE5D8\uE5D9\u6D72" + + "\uE5DB\uE5DC\u51A8\u51C3\uE5DF\u44DD\uE5E1\uE5E2" + + "\uE5E3\u8D7A\uE5E5\uE5E6\u5259\u52A4\uE5E9\u52E1" + + "\uFFFD\u467A\u718C\uE5EE\uE5EF\uE5F0\uE5F1\u69D1" + + "\uE5F3\uFFFD\u3EDE\u7499\u7414\u7456\u7398\u4B8E" + + "\uE5FB\uE5FC\u53D0\u3584\u720F\uE600\u55B4\uE602" + + "\u54CD\uE604\u571D\u925D\u96F4\u9366\u57DD\u578D" + + "\u577F\u363E\u58CB\u5A99\uE60F\uE610\uE611\uE612" + + "\u5A2C\u59B8\u928F\u5A7E\u5ACF\u5A12\uE619\uE61A" + + "\uE61B\uE61C\u36F5\u6D05\u7443\u5A21\uE621" , + "\u5A81\uE623\uE624\u93E0\u748C\uE627\u7105\u4972" + + "\u9408\uE62B\u93BD\u37A0\u5C1E\u5C9E\u5E5E\u5E48" + From bugzilla-daemon at icedtea.classpath.org Wed May 5 06:04:22 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 05 May 2010 13:04:22 +0000 Subject: [Bug 436] applet background thread keeps running after closing browser window Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=436 ------- Comment #1 from doko at ubuntu.com 2010-05-05 13:04 ------- is this seen with 6-1.8? and when starting with a new/non-existing ~/.mozilla? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From xerxes at zafena.se Wed May 5 06:05:45 2010 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Wed, 05 May 2010 15:05:45 +0200 Subject: Disable a broken optimization in Shark In-Reply-To: <20100505103029.GA5054@redhat.com> References: <20100505103029.GA5054@redhat.com> Message-ID: <4BE16D29.2000103@zafena.se> On 2010-05-05 12:30, Gary Benson wrote: > Hi all, > > This commit disables an optimization that Shark cannot currently > support. Explained in the code. PR icedtea/481. > > Cheers, > Gary > > This are great, Shark now runs more stable than ever! Forwarded this fix to icedtea6-1.8 release branch http://icedtea.classpath.org/hg/release/icedtea6-1.8/rev/ecef93c7fbb6 Cheers, Xerxes From aph at redhat.com Wed May 5 06:28:27 2010 From: aph at redhat.com (Andrew Haley) Date: Wed, 05 May 2010 14:28:27 +0100 Subject: Can't build with --enable-visualvm Message-ID: <4BE1727B.9010701@redhat.com> I'm getting "/local/icedtea6/netbeans/nbbuild/templates/projectized.xml:103: The module org.netbeans.api.annotations.common cannot be compiled against because it is part of the cluster /local/icedtea6/netbeans/nbbuild/netbeans_visualvm/platform10 which is not part of cluster.path in your suite configuration." I think this might be the same bug as http://forums.netbeans.org/topic14053.html If you've seen this, or if you've managed to build visualvm with the current IcedTea, please tell me. Andrew. From mmatejov at redhat.com Wed May 5 06:30:11 2010 From: mmatejov at redhat.com (Martin Matejovic) Date: Wed, 05 May 2010 15:30:11 +0200 Subject: Can't build with --enable-visualvm In-Reply-To: <4BE1727B.9010701@redhat.com> References: <4BE1727B.9010701@redhat.com> Message-ID: <4BE172E3.1060306@redhat.com> On 05/05/2010 03:28 PM, Andrew Haley wrote: > I'm getting > > "/local/icedtea6/netbeans/nbbuild/templates/projectized.xml:103: The module org.netbeans.api.annotations.common cannot be compiled against because it is part of the cluster /local/icedtea6/netbeans/nbbuild/netbeans_visualvm/platform10 which is not part of cluster.path in your suite configuration." > > I think this might be the same bug as > > http://forums.netbeans.org/topic14053.html > > If you've seen this, or if you've managed to build visualvm with the > current IcedTea, please tell me. > > Andrew. Yes, I have same problem when building with updated visualvm -- Martin Matejovic OpenJDK QA Engineer Red Hat (http://www.redhat.com) From bugzilla-daemon at icedtea.classpath.org Wed May 5 06:33:22 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 05 May 2010 13:33:22 +0000 Subject: [Bug 436] applet background thread keeps running after closing browser window Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=436 ------- Comment #2 from xerxes at zafena.se 2010-05-05 13:33 ------- (In reply to comment #1) > is this seen with 6-1.8? and when starting with a new/non-existing ~/.mozilla? > Terminal output: xerxes at xerxes-J464X:~$ firefox java version "1.6.0_18" OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1) OpenJDK Server VM (build 14.0-b16, mixed mode) java.lang.InterruptedException: sleep interrupted at java.lang.Thread.sleep(Native Method) at sun.applet.PluginAppletViewer.handleMessage(PluginAppletViewer.java:735) at sun.applet.PluginAppletViewer.handleMessage(PluginAppletViewer.java:649) at sun.applet.PluginStreamHandler.handleMessage(PluginStreamHandler.java:270) at sun.applet.PluginMessageHandlerWorker.run(PluginMessageHandlerWorker.java:82) (firefox-bin:16683): Gdk-WARNING **: XID collision, trouble ahead (firefox-bin:16683): Gdk-WARNING **: XID collision, trouble ahead Yes this are still an issue with 6-1.8 Yes this are still an issue when starting with a new/non-existing ~/.mozilla The IcedTea NPR Web Browser Plugin (using IcedTea6 1.8 (6b18-1.8-0ubuntu1)) executes Java applets. Actually the issue have become a bit worse, the music now plays up untill the firefox browser window are closed. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 5 06:41:46 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 05 May 2010 13:41:46 +0000 Subject: [Bug 436] applet background thread keeps running after closing browser applet window Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=436 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|dbhole at redhat.com |.org | Summary|applet background thread |applet background thread |keeps running after closing |keeps running after closing |browser window |browser applet window -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the assignee for the bug, or are watching the assignee. From Tomas.Hurka at Sun.COM Wed May 5 06:56:48 2010 From: Tomas.Hurka at Sun.COM (Tomas Hurka) Date: Wed, 05 May 2010 15:56:48 +0200 Subject: Can't build with --enable-visualvm In-Reply-To: <4BE1727B.9010701@redhat.com> References: <4BE1727B.9010701@redhat.com> Message-ID: <5FE8534D-DEDC-4A70-A946-1BBD5AAED9F7@sun.com> Hi Andrew, On 5 May 2010, at 15:28, Andrew Haley wrote: > I'm getting > > "/local/icedtea6/netbeans/nbbuild/templates/projectized.xml:103: The > module org.netbeans.api.annotations.common cannot be compiled > against because it is part of the cluster /local/icedtea6/netbeans/ > nbbuild/netbeans_visualvm/platform10 which is not part of > cluster.path in your suite configuration." Make sure you that there is no icedtea6/netbeans nor icedtea6/visualvm directory before you start the build and also you have to have NetBeans 6.8 platform installed on your machine. Bye, -- Tomas Hurka NetBeans Profiler http://profiler.netbeans.org VisualVM http://visualvm.dev.java.net Software Engineer, Developer Platforms Group Sun Microsystems, Praha Czech Republic From aph at redhat.com Wed May 5 07:05:18 2010 From: aph at redhat.com (Andrew Haley) Date: Wed, 05 May 2010 15:05:18 +0100 Subject: Can't build with --enable-visualvm In-Reply-To: <5FE8534D-DEDC-4A70-A946-1BBD5AAED9F7@sun.com> References: <4BE1727B.9010701@redhat.com> <5FE8534D-DEDC-4A70-A946-1BBD5AAED9F7@sun.com> Message-ID: <4BE17B1E.8090506@redhat.com> On 05/05/2010 02:56 PM, Tomas Hurka wrote: > Hi Andrew, > > On 5 May 2010, at 15:28, Andrew Haley wrote: > >> I'm getting >> >> "/local/icedtea6/netbeans/nbbuild/templates/projectized.xml:103: The >> module org.netbeans.api.annotations.common cannot be compiled against >> because it is part of the cluster >> /local/icedtea6/netbeans/nbbuild/netbeans_visualvm/platform10 which is >> not part of cluster.path in your suite configuration." > Make sure you that there is no icedtea6/netbeans nor icedtea6/visualvm > directory before you start the build and also you have to have NetBeans > 6.8 platform installed on your machine. OK, I'm installing 6.8 platform now. Thanks, Andrew. From aph at redhat.com Wed May 5 07:10:37 2010 From: aph at redhat.com (Andrew Haley) Date: Wed, 05 May 2010 15:10:37 +0100 Subject: Can't build with --enable-visualvm In-Reply-To: <4BE17B1E.8090506@redhat.com> References: <4BE1727B.9010701@redhat.com> <5FE8534D-DEDC-4A70-A946-1BBD5AAED9F7@sun.com> <4BE17B1E.8090506@redhat.com> Message-ID: <4BE17C5D.6080002@redhat.com> On 05/05/2010 03:05 PM, Andrew Haley wrote: > On 05/05/2010 02:56 PM, Tomas Hurka wrote: >> Hi Andrew, >> >> On 5 May 2010, at 15:28, Andrew Haley wrote: >> >>> I'm getting >>> >>> "/local/icedtea6/netbeans/nbbuild/templates/projectized.xml:103: The >>> module org.netbeans.api.annotations.common cannot be compiled against >>> because it is part of the cluster >>> /local/icedtea6/netbeans/nbbuild/netbeans_visualvm/platform10 which is >>> not part of cluster.path in your suite configuration." >> Make sure you that there is no icedtea6/netbeans nor icedtea6/visualvm >> directory before you start the build and also you have to have NetBeans >> 6.8 platform installed on your machine. > > OK, I'm installing 6.8 platform now. I also needed --- netbeans/lib.profiler/native/build/buildnative-linux64.sh~ 2009-11-23 20:54:37.000000000 +0000 +++ netbeans/lib.profiler/native/build/buildnative-linux64.sh 2010-05-05 14:37:09.890446396 +0100 @@ -5,7 +5,7 @@ JAVA_HOME=$1 JDK_ID=$2 echo $JAVA_HOME $JDK_ID - gcc32 -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -DLINUX -pthread -fPIC -shared -O3 -Wall -m64 \ + gcc -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -DLINUX -pthread -fPIC -shared -O3 -Wall -m64 \ -o ../../release/lib/deployed/$JDK_ID/linux-amd64/libprofilerinterface.so \ ../src-jdk15/class_file_cache.c \ ../src-jdk15/attach.c \ I don't know what "gcc32" is for. Andrew. From Tomas.Hurka at Sun.COM Wed May 5 07:45:42 2010 From: Tomas.Hurka at Sun.COM (Tomas Hurka) Date: Wed, 05 May 2010 16:45:42 +0200 Subject: Can't build with --enable-visualvm In-Reply-To: <4BE17C5D.6080002@redhat.com> References: <4BE1727B.9010701@redhat.com> <5FE8534D-DEDC-4A70-A946-1BBD5AAED9F7@sun.com> <4BE17B1E.8090506@redhat.com> <4BE17C5D.6080002@redhat.com> Message-ID: <5FF0FFBC-831E-47A9-AC39-3F7ED33F1BED@sun.com> Hi Andrew, On 5 May 2010, at 16:10, Andrew Haley wrote: [..] > I also needed > > --- netbeans/lib.profiler/native/build/buildnative-linux64.sh~ > 2009-11-23 20:54:37.000000000 +0000 > +++ netbeans/lib.profiler/native/build/buildnative-linux64.sh > 2010-05-05 14:37:09.890446396 +0100 > @@ -5,7 +5,7 @@ > JAVA_HOME=$1 > JDK_ID=$2 > echo $JAVA_HOME $JDK_ID > - gcc32 -I$JAVA_HOME/include -I$JAVA_HOME/include/linux - > DLINUX -pthread -fPIC -shared -O3 -Wall -m64 \ > + gcc -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -DLINUX - > pthread -fPIC -shared -O3 -Wall -m64 \ > -o ../../release/lib/deployed/$JDK_ID/linux-amd64/ > libprofilerinterface.so \ > ../src-jdk15/class_file_cache.c \ > ../src-jdk15/attach.c \ > > I don't know what "gcc32" is for. For backward compatibility. The build-script is from netbeans codebase. It is for jdk 1.5 and therefore the native agent should be build by the same compiler as jdk 1.5. It can be changed for visualvm, but gcc32 is there from the beginning. Bye, -- Tomas Hurka NetBeans Profiler http://profiler.netbeans.org VisualVM http://visualvm.dev.java.net Software Engineer, Developer Platforms Group Sun Microsystems, Praha Czech Republic From bugzilla-daemon at icedtea.classpath.org Wed May 5 08:08:43 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 05 May 2010 15:08:43 +0000 Subject: [Bug 484] Shark jit code block "0xcdcdcdcd" zombie wipeout Sigsegv crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gbenson at redhat.com Summary|Shark jit code block |Shark jit code block |"0xcdcdcdcd" wipeout Sigsegv|"0xcdcdcdcd" zombie wipeout |crash |Sigsegv crash ------- Comment #3 from xerxes at zafena.se 2010-05-05 15:08 ------- The problem are that a method still in use can be marked as a zombie. The sigsegv happens when shark jumps to a method that have been marked as a zombie and flushed by the jvm. Workaround: run shark with the -XX:-MethodFlushing JVM option -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Wed May 5 08:59:14 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 05 May 2010 15:59:14 +0000 Subject: /hg/icedtea: 2 new changesets Message-ID: changeset 34c00cae6537 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=34c00cae6537 author: Mark Wielaard date: Tue Oct 13 11:13:46 2009 +0200 tapsets/hotspot.stp.in (hotspot.gc_end): Match gc__end, not begin. changeset 116ddf482a23 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=116ddf482a23 author: Mark Wielaard date: Wed Oct 14 15:42:32 2009 +0200 Enable systemtap JNI tracing. 2009-10-14 Mark Wielaard * configure.ac: When enabling systemtap support check sys/sdt.h and g++ are recent enough to allow probes in class constructors and destructors. * patches/icedtea-systemtap.patch: Enable compiling probes in jni.cpp. Rewrite SetField and SetStaticField macros to use DTRACE_PROBE interface directly instead of generating dtrace implementation calls. Clean up dtrace.hpp. * tapset/hotspot.stp.in: Enable hotspot.monitor_notify. Fix up comments. diffstat: 4 files changed, 97 insertions(+), 33 deletions(-) ChangeLog | 16 +++++++++ configure.ac | 37 +++++++++++++++++++++ patches/icedtea-systemtap.patch | 66 +++++++++++++++++++++++---------------- tapset/hotspot.stp.in | 11 ++---- diffs (234 lines): diff -r 67157a3fe084 -r 116ddf482a23 ChangeLog --- a/ChangeLog Wed May 05 14:02:50 2010 +0100 +++ b/ChangeLog Wed Oct 14 15:42:32 2009 +0200 @@ -1,3 +1,19 @@ 2010-05-05 Andrew John Hughes + + * configure.ac: When enabling systemtap support check sys/sdt.h + and g++ are recent enough to allow probes in class constructors + and destructors. + * patches/icedtea-systemtap.patch: Enable compiling probes in + jni.cpp. Rewrite SetField and SetStaticField macros + to use DTRACE_PROBE interface directly instead of generating + dtrace implementation calls. Clean up dtrace.hpp. + * tapset/hotspot.stp.in: Enable hotspot.monitor_notify. Fix up + comments. + +2009-10-13 Mark Wielaard + + * tapsets/hotspot.stp.in (hotspot.gc_end): Match gc__end, not begin. + 2010-05-05 Andrew John Hughes Bump to b89. diff -r 67157a3fe084 -r 116ddf482a23 configure.ac --- a/configure.ac Wed May 05 14:02:50 2010 +0100 +++ b/configure.ac Wed Oct 14 15:42:32 2009 +0200 @@ -326,6 +326,43 @@ AC_CHECK_HEADER([sys/sdt.h], [SDT_H_FOUN [SDT_H_FOUND='no'; AC_MSG_ERROR([systemtap support needs sys/sdt.h header])]) + AC_MSG_CHECKING([working sys/sdt.h and g++ support]) + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_LINK_IFELSE([AC_LANG_PROGRAM([[ +#include +class ProbeClass +{ +private: + int& ref; + const char *name; + +public: + ProbeClass(int& v, const char *n) : ref(v), name(n) + { + DTRACE_PROBE2(_test_, cons, name, ref); + } + + void method(int min) + { + DTRACE_PROBE3(_test_, meth, name, ref, min); + ref -= min; + } + + ~ProbeClass() + { + DTRACE_PROBE2(_test_, dest, name, ref); + } +}; +]], +[[ + int i = 64; + DTRACE_PROBE1(_test_, call, i); + ProbeClass inst = ProbeClass(i, "call"); + inst.method(24); +]])], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([systemtap sdt.h or g++ too old])]) + AC_LANG_RESTORE + AC_MSG_CHECKING([for absolute java home install dir]) AC_ARG_WITH([abs-install-dir], [AS_HELP_STRING([--with-abs-install-dir], diff -r 67157a3fe084 -r 116ddf482a23 patches/icedtea-systemtap.patch --- a/patches/icedtea-systemtap.patch Wed May 05 14:02:50 2010 +0100 +++ b/patches/icedtea-systemtap.patch Wed Oct 14 15:42:32 2009 +0200 @@ -9,22 +9,33 @@ diff -r 945bf7540697 make/linux/makefile +CFLAGS += -DDTRACE_ENABLED + +# It doesn't support HAVE_DTRACE_H though. -diff -r 945bf7540697 src/share/vm/prims/jni.cpp ---- openjdk/hotspot/src/share/vm/prims/jni.cpp Thu Jan 22 14:42:01 2009 -0800 -+++ openjdk/hotspot/src/share/vm/prims/jni.cpp Mon Feb 02 13:47:34 2009 +0100 -@@ -22,6 +22,12 @@ - * - */ - -+#ifdef __GNUC__ -+// Unfortunately the gcc c preprocessor doesn't like some of the -+// FP_SELECT defines below, so for now we make sure to disable them. -+#undef DTRACE_ENABLED -+#endif -+ - # include "incls/_precompiled.incl" - # include "incls/_jni.cpp.incl" - +--- openjdk/hotspot/src/share/vm/prims/jni.cpp 2009-10-13 15:34:52.499809508 +0200 ++++ openjdk/hotspot/src/share/vm/prims/jni.cpp 2009-10-13 15:31:26.117823588 +0200 +@@ -1747,10 +1744,7 @@ + JNI_QUICK_ENTRY(void, jni_Set##Result##Field(JNIEnv *env, jobject obj, jfieldID fieldID, Argument value)) \ + JNIWrapper("Set" XSTR(Result) "Field"); \ + \ +- HS_DTRACE_PROBE_CDECL_N(hotspot_jni, Set##Result##Field__entry, \ +- ( JNIEnv*, jobject, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ +- HS_DTRACE_PROBE_N(hotspot_jni, Set##Result##Field__entry, \ +- ( env, obj, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ ++ FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID, value),DTRACE_PROBE3(hotspot_jni, Set##Result##Field__entry, env, obj, fieldID)); \ + \ + oop o = JNIHandles::resolve_non_null(obj); \ + klassOop k = o->klass(); \ +@@ -1924,10 +1918,7 @@ + \ + JNI_ENTRY(void, jni_SetStatic##Result##Field(JNIEnv *env, jclass clazz, jfieldID fieldID, Argument value)) \ + JNIWrapper("SetStatic" XSTR(Result) "Field"); \ +- HS_DTRACE_PROBE_CDECL_N(hotspot_jni, SetStatic##Result##Field__entry,\ +- ( JNIEnv*, jclass, jfieldID FP_SELECT_##Result(COMMA Argument,/*empty*/) ) ); \ +- HS_DTRACE_PROBE_N(hotspot_jni, SetStatic##Result##Field__entry, \ +- ( env, clazz, fieldID FP_SELECT_##Result(COMMA value,/*empty*/) ) ); \ ++ FP_SELECT_##Result(DTRACE_PROBE4(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID, value),DTRACE_PROBE3(hotspot_jni, SetStatic##Result##Field__entry, env, clazz, fieldID)); \ + \ + JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \ + assert(id->is_static_field_id(), "invalid static field id"); \ +- diff -r 945bf7540697 src/share/vm/utilities/dtrace.hpp --- openjdk/hotspot/src/share/vm/utilities/dtrace.hpp Thu Jan 22 14:42:01 2009 -0800 +++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp Mon Feb 02 13:47:34 2009 +0100 @@ -52,7 +63,7 @@ diff -r 945bf7540697 src/share/vm/utilit #define DTRACE_ONLY(x) #define NOT_DTRACE(x) x -@@ -40,9 +41,15 @@ +@@ -40,9 +41,16 @@ #define DTRACE_PROBE3(a,b,c,d,e) {;} #define DTRACE_PROBE4(a,b,c,d,e,f) {;} #define DTRACE_PROBE5(a,b,c,d,e,f,g) {;} @@ -60,6 +71,7 @@ diff -r 945bf7540697 src/share/vm/utilit +#define DTRACE_PROBE7(a,b,c,d,e,f,g,h,i) {;} +#define DTRACE_PROBE8(a,b,c,d,e,f,g,h,i,j) {;} +#define DTRACE_PROBE9(a,b,c,d,e,f,g,h,i,j,k) {;} ++#define DTRACE_PROBE10(a,b,c,d,e,f,g,h,i,j,k,l) {;} #endif @@ -68,30 +80,28 @@ diff -r 945bf7540697 src/share/vm/utilit #define HS_DTRACE_PROBE_FN(provider,name)\ __dtrace_##provider##___##name -@@ -50,6 +57,13 @@ +@@ -50,6 +58,11 @@ DTRACE_ONLY(extern "C" void HS_DTRACE_PROBE_FN(provider,name) args) #define HS_DTRACE_PROBE_CDECL_N(provider,name,args) \ DTRACE_ONLY(extern void HS_DTRACE_PROBE_FN(provider,name) args) +#else +// Systemtap dtrace compatible probes on GNU/Linux don't. -+#define HS_DTRACE_PROBE_FN(provider,name) -+ +#define HS_DTRACE_PROBE_DECL_N(provider,name,args) +#define HS_DTRACE_PROBE_CDECL_N(provider,name,args) +#endif /* Dtrace probe declarations */ #define HS_DTRACE_PROBE_DECL(provider,name) \ -@@ -91,6 +105,8 @@ +@@ -88,6 +101,8 @@ + uintptr_t,uintptr_t,uintptr_t)) + + /* Dtrace probe definitions */ ++#if defined(SOLARIS) ++// Solaris dtrace uses actual function calls. #define HS_DTRACE_PROBE_N(provider,name, args) \ DTRACE_ONLY(HS_DTRACE_PROBE_FN(provider,name) args) -+#if defined(SOLARIS) -+// Solaris dtrace uses actual function calls. - #define HS_DTRACE_PROBE(provider,name) HS_DTRACE_PROBE0(provider,name) - #define HS_DTRACE_PROBE0(provider,name)\ - HS_DTRACE_PROBE_N(provider,name,()) -@@ -123,3 +139,27 @@ +@@ -123,3 +138,29 @@ 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)) @@ -118,6 +128,8 @@ diff -r 945bf7540697 src/share/vm/utilit + 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 --- openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2009-03-04 14:39:43.000000000 +0100 +++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2009-03-04 22:11:37.000000000 +0100 diff -r 67157a3fe084 -r 116ddf482a23 tapset/hotspot.stp.in --- a/tapset/hotspot.stp.in Wed May 05 14:02:50 2010 +0100 +++ b/tapset/hotspot.stp.in Wed Oct 14 15:42:32 2009 +0200 @@ -51,8 +51,8 @@ probe hotspot.gc_begin = Has no arguments. */ probe hotspot.gc_end = - process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__begin"), - process("@ABS_SERVER_LIBJVM_SO@").mark("gc__begin") + process("@ABS_CLIENT_LIBJVM_SO@").mark("gc__end"), + process("@ABS_SERVER_LIBJVM_SO@").mark("gc__end") { name = "gc_end"; probestr = name; @@ -311,12 +311,12 @@ probe hotspot.monitor_waited = name, thread_id, id, class); } -/* Doesn't resolve atm. - hotspot.monitor_notify (extended probe) +/* hotspot.monitor_notify (extended probe) Triggers when a thread calls Object.notify(). Sets thread_id to the current java thread, id to the unique id for this monitor and class to the class name of the object. Needs -XX:+ExtendedDTraceProbes. + */ probe hotspot.monitor_notify = process("@ABS_CLIENT_LIBJVM_SO@").mark("monitor__notify"), process("@ABS_SERVER_LIBJVM_SO@").mark("monitor__notify") @@ -328,7 +328,6 @@ probe hotspot.monitor_notify = probestr = sprintf("%s(thread_id=%d,id=0x%x,class='%s')", name, thread_id, id, class); } - */ /* hotspot.monitor_notifyAll (extended probe) Triggers when a thread calls Object.notifyAll(). @@ -369,7 +368,7 @@ probe hotspot.monitor_contended_enter = name, thread_id, id, class); } -/* hotspot.monitor_contended_enter (extended probe) +/* hotspot.monitor_contended_entered (extended probe) Triggers when a thread acquires a contended monotor (after hotspot.monitor_contended_enter has been triggered on this thread, and the other thread triggered a hotspot.monitor_contended_exit). From jonnyt at abpni.co.uk Wed May 5 09:26:12 2010 From: jonnyt at abpni.co.uk (Jonathan Tripathy) Date: Wed, 5 May 2010 17:26:12 +0100 Subject: IcedTea on Appliances Message-ID: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> Hi Folks, Is someone allowed to distribute IcedTea with an "Appliance" (e.g. Set Top Box, Firewall, etc..) without paying Oracle for a licence? Thanks -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100505/d08f9d40/attachment.html From aph at redhat.com Wed May 5 09:35:06 2010 From: aph at redhat.com (Andrew Haley) Date: Wed, 05 May 2010 17:35:06 +0100 Subject: IcedTea on Appliances In-Reply-To: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> References: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> Message-ID: <4BE19E3A.8080901@redhat.com> On 05/05/2010 05:26 PM, Jonathan Tripathy wrote: > Hi Folks, > > Is someone allowed to distribute IcedTea with an "Appliance" > (e.g. Set Top Box, Firewall, etc..) without paying Oracle for a > licence? I think so, but I am not a lawyer. You should always seek legal advice. Andrew. From ahughes at redhat.com Wed May 5 09:40:13 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Wed, 5 May 2010 17:40:13 +0100 Subject: IcedTea on Appliances In-Reply-To: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> References: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> Message-ID: On 5 May 2010 17:26, Jonathan Tripathy wrote: > Hi Folks, > > Is someone allowed to?distribute IcedTea?with an "Appliance" (e.g. Set Top > Box, Firewall, etc..) without paying Oracle for a licence? > > Thanks First of all, IcedTea has nothing to do with Oracle. It's an independent project. IcedTea is a build harness for OpenJDK, along with other components (the Zero assembler and ARM ports for architectures beyond x86/x86_64/SPARC, a Free Software plugin and Web Start implementation, etc.). For licensing, please consult the COPYING file in IcedTea and the license of dependencies such as OpenJDK. For commercial deployment, it also may be worth consulting a lawyer. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From andrew at icedtea.classpath.org Wed May 5 10:04:20 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 05 May 2010 17:04:20 +0000 Subject: /hg/icedtea: 3 new changesets Message-ID: changeset bed100099e7e in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=bed100099e7e author: Mark Wielaard date: Mon Oct 19 21:23:00 2009 +0200 JNI GetObjectArrayElement mark probe ret value shadowed. 2009-10-19 Mark Wielaard * patches/icedtea-systemtap.patch: Add fix for GetObjectArrayElement return probe ret value. changeset 6c93a1363c3c in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=6c93a1363c3c author: Mark Wielaard date: Mon Oct 19 21:49:33 2009 +0200 Fix JNI DEFINE_NEWSCALARARRAY usage of DT_RETURN_MARK_DECL_FOR. 2009-10-19 Mark Wielaard * patches/icedtea-systemtap.patch: Add fix for JNI DEFINE_NEWSCALARARRAY uses DT_RETURN_MARK_DECL_FOR. changeset 2451197e481e in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=2451197e481e author: Andrew John Hughes date: Wed May 05 18:04:06 2010 +0100 JNI GetObjectArrayElement mark probe ret value shadowed. 2009-10-19 Mark Wielaard * patches/icedtea-systemtap.patch: Add fix for GetObjectArrayElement return probe ret value. diffstat: 7 files changed, 9108 insertions(+), 2 deletions(-) ChangeLog | 20 Makefile.am | 16 configure.ac | 1 patches/icedtea-systemtap.patch | 28 scripts/jni_create_stap.c | 190 + scripts/jni_desc | 1471 +++++++ tapset/hotspot_jni.stp.in | 7384 +++++++++++++++++++++++++++++++++++++++ diffs (truncated from 9180 to 500 lines): diff -r 116ddf482a23 -r 2451197e481e ChangeLog --- a/ChangeLog Wed Oct 14 15:42:32 2009 +0200 +++ b/ChangeLog Wed May 05 18:04:06 2010 +0100 @@ -1,3 +1,23 @@ 2009-10-14 Mark Wielaard + + * tapset/hotspot_jni.stp.in: New tapset. + * scripts/jni_create_stap.c: New file. + * scripts/jni_desc: Likewise. + * configure.ac (AC_CONFIG_FILES): Add tapset/hotspot_jni.stp. + * Makefile.am (EXTRA_DIST): Add tapsets and scripts. + (stamps/icedtea.stamp): Handle tapset/hotspot_jni.stp.in. + (stamps/icedtea-debug.stamp): Likewise. + +2009-10-19 Mark Wielaard + + * patches/icedtea-systemtap.patch: Add fix for JNI + DEFINE_NEWSCALARARRAY uses DT_RETURN_MARK_DECL_FOR. + +2009-10-19 Mark Wielaard + + * patches/icedtea-systemtap.patch: Add fix for GetObjectArrayElement + return probe ret value. + 2009-10-14 Mark Wielaard * configure.ac: When enabling systemtap support check sys/sdt.h diff -r 116ddf482a23 -r 2451197e481e Makefile.am --- a/Makefile.am Wed Oct 14 15:42:32 2009 +0200 +++ b/Makefile.am Wed May 05 18:04:06 2010 +0100 @@ -704,7 +704,11 @@ EXTRA_DIST = $(GENERATED_FILES) $(top_sr IcedTeaPlugin.cc \ HACKING $(PULSEAUDIO_SRCS) fsg.sh \ $(abs_top_srcdir)/plugin $(top_srcdir)/netx \ - hotspot.map autogen.sh + hotspot.map autogen.sh \ + tapset/hotspot.stp.in \ + tapset/hotspot_jni.stp.in \ + scripts/jni_create_stap.c \ + scripts/jni_desc # Top-Level Targets # ================= @@ -1806,9 +1810,14 @@ if ENABLE_SYSTEMTAP sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot.stp \ > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ + sed -e '/\/client\/libjvm.so/d' \ + < $(abs_top_builddir)/tapset/hotspot_jni.stp \ + > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ else \ cp $(abs_top_builddir)/tapset/hotspot.stp \ $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ + cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ fi endif if ENABLE_NSS @@ -1882,9 +1891,14 @@ if ENABLE_SYSTEMTAP sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot.stp \ > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ + sed -e '/\/client\/libjvm.so/d' \ + < $(abs_top_builddir)/tapset/hotspot_jni.stp \ + > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ else \ cp $(abs_top_builddir)/tapset/hotspot.stp \ $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ + cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ fi endif if ENABLE_NSS diff -r 116ddf482a23 -r 2451197e481e configure.ac --- a/configure.ac Wed Oct 14 15:42:32 2009 +0200 +++ b/configure.ac Wed May 05 18:04:06 2010 +0100 @@ -379,6 +379,7 @@ public: AC_SUBST(ABS_CLIENT_LIBJVM_SO) AC_SUBST(ABS_SERVER_LIBJVM_SO) AC_CONFIG_FILES([tapset/hotspot.stp]) + AC_CONFIG_FILES([tapset/hotspot_jni.stp]) fi dnl Check for libpng headers and libraries. diff -r 116ddf482a23 -r 2451197e481e patches/icedtea-systemtap.patch --- a/patches/icedtea-systemtap.patch Wed Oct 14 15:42:32 2009 +0200 +++ b/patches/icedtea-systemtap.patch Wed May 05 18:04:06 2010 +0100 @@ -35,7 +35,33 @@ diff -r 945bf7540697 make/linux/makefile \ JNIid* id = jfieldIDWorkaround::from_static_jfieldID(fieldID); \ assert(id->is_static_field_id(), "invalid static field id"); \ -- +@@ -2116,7 +2101,7 @@ + DT_RETURN_MARK(GetObjectArrayElement, jobject, (const jobject&)ret); + objArrayOop a = objArrayOop(JNIHandles::resolve_non_null(array)); + if (a->is_within_bounds(index)) { +- jobject ret = JNIHandles::make_local(env, a->obj_at(index)); ++ ret = JNIHandles::make_local(env, a->obj_at(index)); + return ret; + } else { + char buf[jintAsStringSize]; +@@ -2150,14 +2150,14 @@ + + #define DEFINE_NEWSCALARARRAY(Return,Allocator,Result) \ + \ +- DT_RETURN_MARK_DECL_FOR(Result, New##Result##Array, Return);\ ++ DT_RETURN_MARK_DECL(New##Result##Array, Return);\ + \ + JNI_ENTRY(Return, \ + jni_New##Result##Array(JNIEnv *env, jsize len)) \ + JNIWrapper("New" XSTR(Result) "Array"); \ + DTRACE_PROBE2(hotspot_jni, New##Result##Array__entry, env, len);\ + Return ret = NULL;\ +- DT_RETURN_MARK_FOR(Result, New##Result##Array, Return, (const Return&)ret);\ ++ DT_RETURN_MARK(New##Result##Array, Return, (const Return&)ret);\ + \ + oop obj= oopFactory::Allocator(len, CHECK_0); \ + ret = (Return) JNIHandles::make_local(env, obj); \ + diff -r 945bf7540697 src/share/vm/utilities/dtrace.hpp --- openjdk/hotspot/src/share/vm/utilities/dtrace.hpp Thu Jan 22 14:42:01 2009 -0800 +++ openjdk/hotspot/src/share/vm/utilities/dtrace.hpp Mon Feb 02 13:47:34 2009 +0100 diff -r 116ddf482a23 -r 2451197e481e scripts/jni_create_stap.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/jni_create_stap.c Wed May 05 18:04:06 2010 +0100 @@ -0,0 +1,190 @@ +/* jni_create_stap.c -- Parses jni_desc into hotspot_jni.stp.in + Copyright (C) 2009 Red Hat, Inc. + +This file is part of IcedTea. + +IcedTea is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +IcedTea 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 for more details. + +You should have received a copy of the GNU General Public License +along with IcedTea; see the file COPYING. If not, write to the +Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +02110-1301 USA. +*/ + +// g++ -o jni_create_stap jni_create_stap +// ./jni_create_stap < jni_desc > hotspot_jni.stp.in +// (Don't forget to add header plus documentation) + +// data file: +// JNIProbeNameDescription +// arg1_nameDescription +// arg2_name... +// [retDescription] +// blank line +// +// Notes: +// JNIProbeName doesn't include __entry or __return. +// ret is the the return argument (if there is a __return probe) +// /representation is one of: +// v - void, s - string, x - hex number, d - number +// void is only used for return ret arguments. + +#include +#include +#include +#include +using namespace std; + +struct probe +{ + string name; + string desc; + vector args; + vector types; + vector descs; +}; + +int +main() +{ + vector probes; + + string line; + size_t index; + while (getline (cin, line)) + { + if (line.size () == 0 || line[0] == '#') + continue; + probe p; + // probe name and description + index = line.find (' '); + p.name = line.substr (0, index); + p.desc = line.substr (index + 1); + + // arguments + while (getline (cin, line) && line.size () != 0) + { + if (line[0] == '#') + continue; + + index = line.find (' '); + p.args.push_back (line.substr (0, index)); + p.types.push_back (line[index + 1]); + p.descs.push_back (line.substr (index + 3)); + } + + probes.push_back (p); + } + + vector::iterator it = probes.begin(); + while (it != probes.end()) + { + // Output probe entry + probe p = *it; + cout << "/* hotspot.jni." << p.name << endl; + cout << " * " << p.desc << endl; + cout << " *" << endl; + for (index = 0; index < p.args.size (); index++) + { + if (p.args[index] == "ret") + continue; + cout << " * " << p.args[index] << " - " << p.descs[index] << endl; + } + cout << " */" << endl; + cout << "probe hotspot.jni." << p.name << " =" << endl; + cout << " process(\"@ABS_CLIENT_LIBJVM_SO@\").mark(\"" + << p.name << "__entry" << "\")," << endl; + cout << " process(\"@ABS_SERVER_LIBJVM_SO@\").mark(\"" + << p.name << "__entry" << "\")" << endl; + cout << "{" << endl; + cout << " name = \"" << p.name << '"' << endl; + for (index = 0; index < p.args.size (); index++) + { + if (p.args[index] == "ret") + continue; + cout << " " << p.args[index] << " = "; + if (p.types[index] == 's') + cout << "user_string(" << "$arg" << (index + 1) << ")" << endl; + else + cout << "$arg" << (index + 1) << endl; + } + cout << " probestr = sprintf(\"%s("; + for (index = 0; index < p.args.size (); index++) + { + if (p.args[index] == "ret") + continue; + cout << p.args[index] << '='; + if (p.types[index] == 's') + cout << "'%s'"; + else if (p.types[index] == 'x') + cout << "0x%x"; + else + cout << "%" << p.types[index]; + if (index != p.args.size () - 1 && p.args[index + 1] != "ret") + cout << ','; + } + cout << ")\", name"; + for (index = 0; index < p.args.size (); index++) + { + if (p.args[index] == "ret") + continue; + cout << ", " << p.args[index]; + } + cout << ")" << endl; + cout << "}" << endl; + + // Output return probe if it exists + if (p.args.size () > 0 && p.args[p.args.size () - 1] == "ret") + { + char type = p.types[p.args.size () - 1]; + cout << endl; + cout << "/* hotspot.jni." << p.name << ".return" << endl; + cout << " * " << p.desc << " Return." << endl; + if (type != 'v') + { + cout << " *" << endl; + cout << " * ret - " << p.descs[p.args.size() - 1] << endl; + } + cout << " */" << endl; + + cout << "probe hotspot.jni." << p.name << ".return =" << endl; + cout << " process(\"@ABS_CLIENT_LIBJVM_SO@\").mark(\"" + << p.name << "__return" << "\")," << endl; + cout << " process(\"@ABS_SERVER_LIBJVM_SO@\").mark(\"" + << p.name << "__return" << "\")" << endl; + cout << "{" << endl; + cout << " name = \"" << p.name << '"' << endl; + if (type == 's') + { + cout << " ret = user_string($arg1)" << endl; + cout << " retstr = ret" << endl; + } + else if (type == 'x') + { + cout << " ret = $arg1" << endl; + cout << " retstr = sprintf(\"0x%x\", ret)" << endl; + } + else if (type != 'v') + { + cout << " ret = $arg1" << endl; + cout << " retstr = sprint(ret)" << endl; + } + else + { + cout << " retstr = \"\"" << endl; + } + cout << "}" << endl; + } + + cout << endl; + ++it; + } +} diff -r 116ddf482a23 -r 2451197e481e scripts/jni_desc --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/scripts/jni_desc Wed May 05 18:04:06 2010 +0100 @@ -0,0 +1,1471 @@ +# jni_desc -- Descriptor file of JNI probe points for hotspot_jni.stp.in +# Copyright (C) 2009 Red Hat, Inc. +# +# This file is part of IcedTea. +# +# IcedTea is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# IcedTea 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 for more details. +# +# You should have received a copy of the GNU General Public License +# along with IcedTea; see the file COPYING. If not, write to the +# Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA +# 02110-1301 USA. + +# JNIProbeNameDescription +# arg1_nameDescription +# arg2_name... +# [retDescription] +# blank line +# +# Notes: +# JNIProbeName doesn't include __entry or __return. +# ret is the the return argument +# (if there is a __return probe, only FatalError never returns) +# /representation is one of: +# v - void, s - string, x - hex number, d - number +# void is only used for return ret arguments. + +AllocObject Allocate object without calling any constructors. +env x JNIEnv pointer. +clazz x jclass pointer. +ret x jobject reference to allocated object or NULL + +AttachCurrentThreadAsDaemon Attach the current thread as daemon. +vm x JavaVM pointer. +penv x pointer to JNIEnv pointer. +args x pointer to JavaVMAttachArgs struct. +ret d Zero on success, negative on error. + +AttachCurrentThread Attach the current thread. +vm x JavaVM pointer. +penv x pointer to JNIEnv pointer. +args x pointer to JavaVMAttachArgs struct. +ret d Zero on success, negative on error. + +CallBooleanMethodA Call virtual method returning a boolean using an array as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallBooleanMethod Call virtual method returning a boolean. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallBooleanMethodV Call virtual method returning a boolean using va_list as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallByteMethodA Call virtual method returning a byte using an array as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallByteMethod Call virtual method returning a byte. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallByteMethodV Call virtual method returning a byte using va_list as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallCharMethodA Call virtual method returning a char using an array as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallCharMethod Call virtual method returning a char. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallCharMethodV Call virtual method returning a char using va_list as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallDoubleMethodA Call virtual method returning a double using an array as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret v The result of the method call. + +CallDoubleMethod Call virtual method returning a double. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret v The result of the method call. + +CallDoubleMethodV Call virtual method returning a double using va_list as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret v The result of the method call. + +CallFloatMethodA Call virtual method returning a float using an array as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret v The result of the method call. + +CallFloatMethod Call virtual method returning a float. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret v The result of the method call. + +CallFloatMethodV Call virtual method returning a float using va_list as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret v The result of the method call. + +CallIntMethodA Call virtual method returning a int using an array as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallIntMethod Call virtual method returning a int. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallIntMethodV Call virtual method returning a int using va_list as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallLongMethodA Call virtual method returning a long using an array as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallLongMethod Call virtual method returning a long. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallLongMethodV Call virtual method returning a long using va_list as arguments. +env x JNIEnv pointer. +obj x jobject reference. +methodid x ID of the method to call. +ret d The result of the method call. + +CallObjectMethodA Call virtual method returning a object using array as arguments. +env x JNIEnv pointer. +obj x jobject reference. From mark at klomp.org Wed May 5 10:23:30 2010 From: mark at klomp.org (Mark Wielaard) Date: Wed, 05 May 2010 19:23:30 +0200 Subject: IcedTea on Appliances In-Reply-To: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> References: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> Message-ID: <1273080210.4281.7.camel@springer.wildebeest.org> On Wed, 2010-05-05 at 17:26 +0100, Jonathan Tripathy wrote: > Is someone allowed to distribute IcedTea with an "Appliance" (e.g. Set > Top Box, Firewall, etc..) without paying Oracle for a licence? Of course! It is all GPLed. We even have a cross compile FAQ to help you out if you need to build for an embedded machine on which you cannot build things directly: http://icedtea.classpath.org/wiki/CrossCompileFaq Cheers, Mark From jonnyt at abpni.co.uk Wed May 5 10:26:37 2010 From: jonnyt at abpni.co.uk (Jonathan Tripathy) Date: Wed, 05 May 2010 18:26:37 +0100 Subject: IcedTea on Appliances In-Reply-To: References: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> Message-ID: <4BE1AA4D.7090600@abpni.co.uk> On 05/05/10 17:40, Andrew John Hughes wrote: > On 5 May 2010 17:26, Jonathan Tripathy wrote: > >> Hi Folks, >> >> Is someone allowed to distribute IcedTea with an "Appliance" (e.g. Set Top >> Box, Firewall, etc..) without paying Oracle for a licence? >> >> Thanks >> > First of all, IcedTea has nothing to do with Oracle. It's an > independent project. > > IcedTea is a build harness for OpenJDK, along with other components > (the Zero assembler and ARM ports for architectures beyond > x86/x86_64/SPARC, a Free Software plugin and Web Start implementation, > etc.). For licensing, please consult the COPYING file in IcedTea and > the license of dependencies such as OpenJDK. For commercial > deployment, it also may be worth consulting a lawyer. > I was always under the impression that the whole of icedtea was released under GPL (With libraries having a linking exception). Are there some exceptions to the above rule? Why should I consult a lawyer, is what I'm asking. I'm aware of my GPL obligations :) Thanks From jonnyt at abpni.co.uk Wed May 5 10:27:40 2010 From: jonnyt at abpni.co.uk (Jonathan Tripathy) Date: Wed, 05 May 2010 18:27:40 +0100 Subject: IcedTea on Appliances In-Reply-To: <1273080210.4281.7.camel@springer.wildebeest.org> References: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> <1273080210.4281.7.camel@springer.wildebeest.org> Message-ID: <4BE1AA8C.1000603@abpni.co.uk> On 05/05/10 18:23, Mark Wielaard wrote: > On Wed, 2010-05-05 at 17:26 +0100, Jonathan Tripathy wrote: > > >> Is someone allowed to distribute IcedTea with an "Appliance" (e.g. Set >> Top Box, Firewall, etc..) without paying Oracle for a licence? >> > Of course! It is all GPLed. > We even have a cross compile FAQ to help you out if you need to build > for an embedded machine on which you cannot build things directly: > http://icedtea.classpath.org/wiki/CrossCompileFaq > > Cheers, > > Mark > > Your answer is the answer I was hoping to hear, but the others are putting doubts in my head... From aph at redhat.com Wed May 5 10:29:04 2010 From: aph at redhat.com (Andrew Haley) Date: Wed, 05 May 2010 18:29:04 +0100 Subject: IcedTea on Appliances In-Reply-To: <4BE1AA4D.7090600@abpni.co.uk> References: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> <4BE1AA4D.7090600@abpni.co.uk> Message-ID: <4BE1AAE0.4080408@redhat.com> On 05/05/2010 06:26 PM, Jonathan Tripathy wrote: > > On 05/05/10 17:40, Andrew John Hughes wrote: >> On 5 May 2010 17:26, Jonathan Tripathy wrote: >> >>> Hi Folks, >>> >>> Is someone allowed to distribute IcedTea with an "Appliance" (e.g. >>> Set Top >>> Box, Firewall, etc..) without paying Oracle for a licence? >>> >>> Thanks >>> >> First of all, IcedTea has nothing to do with Oracle. It's an >> independent project. >> >> IcedTea is a build harness for OpenJDK, along with other components >> (the Zero assembler and ARM ports for architectures beyond >> x86/x86_64/SPARC, a Free Software plugin and Web Start implementation, >> etc.). For licensing, please consult the COPYING file in IcedTea and >> the license of dependencies such as OpenJDK. For commercial >> deployment, it also may be worth consulting a lawyer. >> > > I was always under the impression that the whole of icedtea was released > under GPL (With libraries having a linking exception). I think so. > Are there some exceptions to the above rule? Why should I consult a > lawyer, is what I'm asking. Because "Is someone allowed to distribute ..." is explicitly a request for legal advice. I don't think there's any other way to interpret that question. Andrew. From aph at redhat.com Wed May 5 10:30:41 2010 From: aph at redhat.com (Andrew Haley) Date: Wed, 05 May 2010 18:30:41 +0100 Subject: IcedTea on Appliances In-Reply-To: <4BE1AA8C.1000603@abpni.co.uk> References: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> <1273080210.4281.7.camel@springer.wildebeest.org> <4BE1AA8C.1000603@abpni.co.uk> Message-ID: <4BE1AB41.6070407@redhat.com> On 05/05/2010 06:27 PM, Jonathan Tripathy wrote: > > On 05/05/10 18:23, Mark Wielaard wrote: >> On Wed, 2010-05-05 at 17:26 +0100, Jonathan Tripathy wrote: >> >> >>> Is someone allowed to distribute IcedTea with an "Appliance" (e.g. Set >>> Top Box, Firewall, etc..) without paying Oracle for a licence? >>> >> Of course! It is all GPLed. >> We even have a cross compile FAQ to help you out if you need to build >> for an embedded machine on which you cannot build things directly: >> http://icedtea.classpath.org/wiki/CrossCompileFaq >> >> Cheers, >> >> Mark >> >> > > Your answer is the answer I was hoping to hear, but the others are > putting doubts in my head... If you'd asked the same question about any piece of free software you'd have got the same answer! Even the *FSF*, when asked "Am I allowed to ..." about a piece of GPL'd software, say "read the licence". Andrew. From mark at klomp.org Wed May 5 11:42:41 2010 From: mark at klomp.org (Mark Wielaard) Date: Wed, 05 May 2010 20:42:41 +0200 Subject: IcedTea on Appliances In-Reply-To: <4BE1AA8C.1000603@abpni.co.uk> References: <46C13AA90DB8844DAB79680243857F0F061F6D@server1.ABPNI.local> <1273080210.4281.7.camel@springer.wildebeest.org> <4BE1AA8C.1000603@abpni.co.uk> Message-ID: <1273084961.4281.65.camel@springer.wildebeest.org> On Wed, 2010-05-05 at 18:27 +0100, Jonathan Tripathy wrote: > On 05/05/10 18:23, Mark Wielaard wrote: > > On Wed, 2010-05-05 at 17:26 +0100, Jonathan Tripathy wrote: > >> Is someone allowed to distribute IcedTea with an "Appliance" (e.g. Set > >> Top Box, Firewall, etc..) without paying Oracle for a licence? > >> > > Of course! It is all GPLed. > > We even have a cross compile FAQ to help you out if you need to build > > for an embedded machine on which you cannot build things directly: > > http://icedtea.classpath.org/wiki/CrossCompileFaq > > > Your answer is the answer I was hoping to hear, but the others are > putting doubts in my head... They are just being cautious. I guess people asking legal questions are suspicious, they might be plotting to sue you if you give them the "wrong" answer :) But if you are fine with shipping something like Debian or Fedora on/with your appliance you will most likely be fine with IcedTea since both ship with it. Just pay respect to the users and make sure you provide them with the freedom the GPL grants you and them. I bought an Acer Aspire One a while ago and they shipped with IcedTea: http://gnu.wildebeest.org/diary/2008/09/24/free-java-for-your-netbook-aspire-one-with-icedtea/ Cheers, Mark From ken at buglabs.net Wed May 5 11:55:16 2010 From: ken at buglabs.net (Ken Gilmer) Date: Wed, 5 May 2010 13:55:16 -0500 (GMT-05:00) Subject: IcedTea on Appliances In-Reply-To: <1273084961.4281.65.camel@springer.wildebeest.org> Message-ID: <160719609.5211273085716194.JavaMail.root@aphid.buglabs.net> Jonathan, FWIW my company plans to ship OpenJDK with our product Real Soon Now. thx ken ----- Original Message ----- From: "Mark Wielaard" To: "Jonathan Tripathy" Cc: distro-pkg-dev at openjdk.java.net Sent: Wednesday, May 5, 2010 2:42:41 PM GMT -05:00 US/Canada Eastern Subject: Re: IcedTea on Appliances On Wed, 2010-05-05 at 18:27 +0100, Jonathan Tripathy wrote: > On 05/05/10 18:23, Mark Wielaard wrote: > > On Wed, 2010-05-05 at 17:26 +0100, Jonathan Tripathy wrote: > >> Is someone allowed to distribute IcedTea with an "Appliance" (e.g. Set > >> Top Box, Firewall, etc..) without paying Oracle for a licence? > >> > > Of course! It is all GPLed. > > We even have a cross compile FAQ to help you out if you need to build > > for an embedded machine on which you cannot build things directly: > > http://icedtea.classpath.org/wiki/CrossCompileFaq > > > Your answer is the answer I was hoping to hear, but the others are > putting doubts in my head... They are just being cautious. I guess people asking legal questions are suspicious, they might be plotting to sue you if you give them the "wrong" answer :) But if you are fine with shipping something like Debian or Fedora on/with your appliance you will most likely be fine with IcedTea since both ship with it. Just pay respect to the users and make sure you provide them with the freedom the GPL grants you and them. I bought an Acer Aspire One a while ago and they shipped with IcedTea: http://gnu.wildebeest.org/diary/2008/09/24/free-java-for-your-netbook-aspire-one-with-icedtea/ Cheers, Mark From ahughes at redhat.com Wed May 5 13:15:05 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Wed, 5 May 2010 21:15:05 +0100 Subject: Issues with capabilities and OpenJDK linking Message-ID: There is an issue with the linking of the libraries in the JVM due to its use of $ORIGIN in the runtime path: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6919633 $ readelf -d /usr/lib/jvm/icedtea6/bin/java -V Dynamic section at offset 0x9ed0 contains 31 entries: Tag Type Name/Value 0x00000001 (NEEDED) Shared library: [libz.so.1] 0x00000001 (NEEDED) Shared library: [libpthread.so.0] 0x00000001 (NEEDED) Shared library: [libjli.so] 0x00000001 (NEEDED) Shared library: [libdl.so.2] 0x00000001 (NEEDED) Shared library: [libc.so.6] 0x0000000e (SONAME) Library soname: [lib.so] 0x0000000f (RPATH) Library rpath: [$ORIGIN/../lib/ppc/jli:$ORIGIN/../jre/lib/ppc/jli] 0x0000001d (RUNPATH) Library runpath: [$ORIGIN/../lib/ppc/jli:$ORIGIN/../jre/lib/ppc/jli] When capabilities are added to the java binary: setcap cap_net_bind_service=+epi java glibc no longer allows relative paths and the expansion of $ORIGIN when the binary is run as a normal user (http://sources.redhat.com/bugzilla/show_bug.cgi?id=11570). So we get: /usr/lib/jvm/icedtea6/bin/java: error while loading shared libraries: libjli.so: cannot open shared object file: No such file or directory due to: 13919 open("$ORIGIN/../lib/ppc/jli/libjli.so", O_RDONLY) = -1 ENOENT (No such file or directory) Such a capability needs to be added to allow Java to bind ports below 1024 as an unprivileged user. A number of possible solutions exist: 1. Statically link java 2. Hardcode the install path of the libraries into the runtime path 3. Add the install path to ld.so.conf (which would require the libraries to be properly versioned to avoid conflicts) 4. Move the libraries onto the existing library path (again, requires versioning) I don't think any of these solutions are ideal. Does anyone have any suggestions or better solutions? Note that this seems unrelated to the use (or not) of LD_LIBRARY_PATH ( http://blogs.sun.com/darcy/entry/purging_ld_library_path) as it occurs in both 6 and 7. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From andrew at icedtea.classpath.org Wed May 5 13:17:14 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 05 May 2010 20:17:14 +0000 Subject: /hg/icedtea: 4 new changesets Message-ID: changeset f8f817ae963c in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=f8f817ae963c author: Jon VanAlten date: Wed May 05 19:36:23 2010 +0100 Check for libjpeg.so.7. 2009-10-26 Jon VanAlten Fixes Bug #367 * patches/icedtea-libraries.patch: Check for libjpeg.so.7. * INSTALL: Indicate newer versions of libjpeg are supported. changeset ffb51c29ed21 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=ffb51c29ed21 author: Andrew John Hughes date: Wed May 05 20:49:53 2010 +0100 Use HotSpot URL from hotspot.map rather than hardcoding it. 2009-10-21 Andrew John Hughes * Makefile.am: Pick up HotSpot URL from hotspot.map. changeset 250076689d36 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=250076689d36 author: Andrew John Hughes date: Wed May 05 21:01:03 2010 +0100 Add notes on using alternate HotSpot builds. 2009-05-14 Andrew John Hughes * INSTALL: Add notes on using alternate HotSpot builds. changeset 04d256af92ed in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=04d256af92ed author: Andrew John Hughes date: Thu Oct 22 17:31:06 2009 +0100 Update HotSpot build documentation. 2009-10-22 Andrew John Hughes * INSTALL: Update HotSpot build documentation. diffstat: 5 files changed, 78 insertions(+), 13 deletions(-) ChangeLog | 20 ++++++++++++++++ INSTALL | 47 ++++++++++++++++++++++++++++++++++++--- Makefile.am | 8 ++---- hotspot.map | 2 - patches/icedtea-libraries.patch | 14 ++++++++--- diffs (166 lines): diff -r 2451197e481e -r 04d256af92ed ChangeLog --- a/ChangeLog Wed May 05 18:04:06 2010 +0100 +++ b/ChangeLog Thu Oct 22 17:31:06 2009 +0100 @@ -1,3 +1,23 @@ 2009-10-19 Mark Wielaard + + * INSTALL: + Update HotSpot build documentation. + +2009-05-14 Andrew John Hughes + + * INSTALL: + Add notes on using alternate HotSpot builds. + +2009-10-21 Andrew John Hughes + + * Makefile.am: + Pick up HotSpot URL from hotspot.map. + +2009-10-26 Jon VanAlten + + * patches/icedtea-libraries.patch: Check for libjpeg.so.7. + * INSTALL: Indicate newer versions of libjpeg are supported. + 2009-10-19 Mark Wielaard * tapset/hotspot_jni.stp.in: New tapset. diff -r 2451197e481e -r 04d256af92ed INSTALL --- a/INSTALL Wed May 05 18:04:06 2010 +0100 +++ b/INSTALL Thu Oct 22 17:31:06 2009 +0100 @@ -27,7 +27,7 @@ libXinerama-devel libXinerama-devel giflib-devel libpng-devel -libjpeg-devel = 6b +libjpeg-devel >= 6b zlib-devel rhino (can be disabled using --without-rhino) @@ -124,12 +124,53 @@ On architectures where hotspot is availa --with-additional-vms=cacao,zero (or shark instead of zero) on architectures where only zero (or shark) is available, use --with-additional-vms=cacao -to build the additional VM's. It's not possible to build cacao as the +to build the additional VMs. It's not possible to build cacao as the default VM, and zero as additional VM. To build zero as the default VM and shark as an additional VM, use --enable-zero --with-additional-vms=shark -The additional VM's are available by calling the java with the option +The additional VMs are available by calling the java with the option `-cacao', `-zero' or `-shark', or by calling the java tools with `-J-'. If the build was configured with '--enable-shark', use `-Xint' to just use the zero VM. + +Support for different versions of HotSpot +----------------------------------------- + +IcedTea allows the version of HotSpot provided with the upstream build +drop to be replaced with another. Support for this is provided by the +--with-hotspot-build option which causes IcedTea to probe the +hotspot.map file for an entry with the given build name. The +hotspot.map file maps the name to a changeset from a given repository +URL. During the build, it downloads HotSpot from +${URL}/archive/${CHANGESET}.tar.gz and the resulting file is verified +using the MD5 sum stored in hotspot.map. + +New build selections may be provided by providing further mappings in +the hotspot.map file. The name can be anything +e.g. 'shiny_new_hotspot'. This is simply used to map the argument to +--with-hotspot-build to the values in the file and to apply +appropriate patches (see patches/hotspot, $HSBUILD is available in +Makefile.am for obtaining the build name). The special value +'original' is used for patches/hotspot/original to denote those for +the upstream HotSpot; this value does not appear in hotspot.map. + +The changeset and URL should refer to a valid HotSpot tree when used +as above. The required values can be obtained from a local checkout +or by using the web interface. The simplest way to calculate the MD5 +sum is to download the tarball and then run the 'md5sum' application +on it. The resulting value should be added to hotspot.map. + +As with the OpenJDK build tarballs, the location of an alternate zip +can be specified using --with-hotspot-src-zip. This skips the +download stage and just verifies that the zip's MD5 sum matches that +of the requested build. + +At present, two versions of HotSpot are officially supported. These +are HotSpot 14 ('original') which is provided by the upstream OpenJDK +tarball, and 'default', which is used in hotspot.map to provide the +latest version of HotSpot 16. Thus, either --with-hotspot-build +without an argument or --with-hotspot-build=default provides the +latest supported hs16, while no HotSpot build argument, +--without-hotspot-build or --with-hotspot-build=original uses the +upstream HotSpot. diff -r 2451197e481e -r 04d256af92ed Makefile.am --- a/Makefile.am Wed May 05 18:04:06 2010 +0100 +++ b/Makefile.am Thu Oct 22 17:31:06 2009 +0100 @@ -40,8 +40,6 @@ JAXP_DROP_URL = https://jaxp.dev.java.ne JAXP_DROP_URL = https://jaxp.dev.java.net/files/documents/913/147490 JAXP_DROP_ZIP = jdk7-jaxp-m6.zip JAXP_DROP_SHA256SUM = 3d9eb7ae71f5365e2a786ba270413c6cb7dc8d1137f56995c087908b3df8446c - -OPENJDK_HOTSPOT_URL = http://hg.openjdk.java.net/jdk7/hotspot/hotspot ICEDTEA_HG_URL = http://hg.openjdk.java.net/icedtea/jdk7 OPENJDK_HG_URL = http://hg.openjdk.java.net/jdk7/jdk7 @@ -167,9 +165,9 @@ endif endif if WITH_ALT_HSBUILD - HS_SHA256SUM = "`$(AWK) 'version==$$1 {print $$3}' version=$(HSBUILD) $(abs_top_srcdir)/hotspot.map`" - HS_CHANGESET = "`$(AWK) 'version==$$1 {print $$2}' version=$(HSBUILD) $(abs_top_srcdir)/hotspot.map`" - HS_URL = $(OPENJDK_HOTSPOT_URL) + HS_SHA256SUM = "`$(AWK) 'version==$$1 {print $$4}' version=$(HSBUILD) $(abs_top_srcdir)/hotspot.map`" + HS_CHANGESET = "`$(AWK) 'version==$$1 {print $$3}' version=$(HSBUILD) $(abs_top_srcdir)/hotspot.map`" + HS_URL = "`$(AWK) 'version==$$1 {print $$2}' version=$(HSBUILD) $(abs_top_srcdir)/hotspot.map`" else HS_SHA256SUM = $(HOTSPOT_SHA256SUM) HS_CHANGESET = $(HOTSPOT_CHANGESET) diff -r 2451197e481e -r 04d256af92ed hotspot.map --- a/hotspot.map Wed May 05 18:04:06 2010 +0100 +++ b/hotspot.map Thu Oct 22 17:31:06 2009 +0100 @@ -1,1 +1,1 @@ -# version changeset md5sum +# version url changeset md5sum diff -r 2451197e481e -r 04d256af92ed patches/icedtea-libraries.patch --- a/patches/icedtea-libraries.patch Wed May 05 18:04:06 2010 +0100 +++ b/patches/icedtea-libraries.patch Thu Oct 22 17:31:06 2009 +0100 @@ -700,14 +700,17 @@ diff -Nru openjdk.orig/jdk/src/share/nat } -@@ -2341,6 +2401,142 @@ +@@ -2341,6 +2401,145 @@ /********************** end of destination manager ************/ +METHODDEF(void) +initIDs() +{ -+ void *handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); ++ void *handle = dlopen("libjpeg.so.7", RTLD_LAZY | RTLD_GLOBAL); ++ if (handle == NULL) { ++ handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); ++ } + + jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error"); + if (jpegstderror == NULL) { @@ -20984,11 +20987,14 @@ diff -Nru openjdk.orig/jdk/src/share/nat /* Initialize the Java VM instance variable when the library is first loaded */ JavaVM *jvm; -@@ -462,6 +490,68 @@ +@@ -462,6 +490,71 @@ Java_sun_awt_image_JPEGImageDecoder_initIDs(JNIEnv *env, jclass cls, jclass InputStreamClass) { -+ void *handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); ++ void *handle = dlopen("libjpeg.so.7", RTLD_LAZY | RTLD_GLOBAL); ++ if (handle == NULL) { ++ handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); ++ } + + jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error"); + if (jpegstderror == NULL) { From andrew at icedtea.classpath.org Wed May 5 13:29:42 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 05 May 2010 20:29:42 +0000 Subject: /hg/icedtea: Regenerate workaround for Classpath PR40616. Message-ID: changeset eea3af287202 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=eea3af287202 author: Andrew John Hughes date: Wed May 05 21:29:34 2010 +0100 Regenerate workaround for Classpath PR40616. 2010-05-05 Andrew John Hughes * patches/boot/icedtea-pr40616.patch: Regenerated due to change from GenerateEUC_TW to EUC_TW. diffstat: 2 files changed, 17 insertions(+), 13 deletions(-) ChangeLog | 6 ++++++ patches/boot/icedtea-pr40616.patch | 24 +++++++++++------------- diffs (43 lines): diff -r 04d256af92ed -r eea3af287202 ChangeLog --- a/ChangeLog Thu Oct 22 17:31:06 2009 +0100 +++ b/ChangeLog Wed May 05 21:29:34 2010 +0100 @@ -1,3 +1,9 @@ 2009-10-22 Andrew John Hughes + + * patches/boot/icedtea-pr40616.patch: + Regenerated due to change from GenerateEUC_TW + to EUC_TW. + 2009-10-22 Andrew John Hughes * INSTALL: diff -r 04d256af92ed -r eea3af287202 patches/boot/icedtea-pr40616.patch --- a/patches/boot/icedtea-pr40616.patch Thu Oct 22 17:31:06 2009 +0100 +++ b/patches/boot/icedtea-pr40616.patch Wed May 05 21:29:34 2010 +0100 @@ -1,15 +1,13 @@ diff -Nru openjdk-boot.orig/jdk/make/too -diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java ---- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java 2009-07-02 12:04:10.000000000 +0100 -+++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java 2009-07-02 12:13:09.000000000 +0100 -@@ -36,8 +36,10 @@ - public class GenerateEUC_TW { +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java 2010-05-05 18:45:07.000000000 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java 2010-05-05 21:26:31.000000000 +0100 +@@ -83,8 +83,8 @@ + static void genClass(String args[]) throws Exception + { + InputStream is = new FileInputStream(new File(args[0], "euc_tw.map")); +- PrintStream ps = new PrintStream(new File(args[1], "EUC_TWMapping.java"), +- "ISO-8859-1"); ++ FileOutputStream fos = new FileOutputStream(new File(args[1], "EUC_TWMapping.java")); ++ PrintStream ps = new PrintStream(fos, false, "ISO-8859-1"); + String copyright = getCopyright(new File(args[3])); - public static void genEUC_TW(String args[]) throws Exception { -+ FileOutputStream fos = -+ new FileOutputStream(new File(args[1], "EUC_TWMapping.java")); - genClass(new FileInputStream(new File(args[0], "euc_tw.map")), -- new PrintStream(new File(args[1], "EUC_TWMapping.java"), "ISO-8859-1"), -+ new PrintStream(fos, false, "ISO-8859-1"), - getCopyright(new File(args[3]))); - } From bugzilla-daemon at icedtea.classpath.org Thu May 6 02:12:15 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 06 May 2010 09:12:15 +0000 Subject: [Bug 484] Shark jit code block "0xcdcdcdcd" zombie wipeout Sigsegv crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484 ------- Comment #4 from gbenson at redhat.com 2010-05-06 09:12 ------- Ok, I know what this is: void SharkTopLevelBlock::do_trap(int trap_request) { decache_for_trap(); builder()->CreateCall2( builder()->uncommon_trap(), thread(), LLVMValue::jint_constant(trap_request)); builder()->CreateRetVoid(); } When the method is deoptimized, SharkRuntime::uncommon_trap (the method referenced here by builder()->uncommon_trap() calls the interpreter, which does not return until the method itself does. builder()->uncommon_trap() does not return until the interpreter does, so the Shark compiled method does not return until builder()->uncommon_trap() does. The LLVM-compiled code is live, but invisible to HotSpot. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From aph at redhat.com Thu May 6 03:15:53 2010 From: aph at redhat.com (Andrew Haley) Date: Thu, 06 May 2010 11:15:53 +0100 Subject: Issues with capabilities and OpenJDK linking In-Reply-To: References: Message-ID: <4BE296D9.9080607@redhat.com> On 05/05/2010 09:15 PM, Andrew John Hughes wrote: > There is an issue with the linking of the libraries in the JVM due to > its use of $ORIGIN in the runtime path: > > http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6919633 > > $ readelf -d /usr/lib/jvm/icedtea6/bin/java -V > > Dynamic section at offset 0x9ed0 contains 31 entries: > Tag Type Name/Value > 0x00000001 (NEEDED) Shared library: [libz.so.1] > 0x00000001 (NEEDED) Shared library: [libpthread.so.0] > 0x00000001 (NEEDED) Shared library: [libjli.so] > 0x00000001 (NEEDED) Shared library: [libdl.so.2] > 0x00000001 (NEEDED) Shared library: [libc.so.6] > 0x0000000e (SONAME) Library soname: [lib.so] > 0x0000000f (RPATH) Library rpath: > [$ORIGIN/../lib/ppc/jli:$ORIGIN/../jre/lib/ppc/jli] > 0x0000001d (RUNPATH) Library runpath: > [$ORIGIN/../lib/ppc/jli:$ORIGIN/../jre/lib/ppc/jli] > > When capabilities are added to the java binary: > > setcap cap_net_bind_service=+epi java > > glibc no longer allows relative paths and the expansion of $ORIGIN > when the binary is run as a normal user > (http://sources.redhat.com/bugzilla/show_bug.cgi?id=11570). So we > get: > > /usr/lib/jvm/icedtea6/bin/java: error while loading shared libraries: > libjli.so: cannot open shared object file: No such file or directory > > due to: > > 13919 open("$ORIGIN/../lib/ppc/jli/libjli.so", O_RDONLY) = -1 ENOENT > (No such file or directory) > > Such a capability needs to be added to allow Java to bind ports below > 1024 as an unprivileged user. Does it? By giving Java this capability you'd be allowing every Java program, no matter what it was, the ability to bind to a privileged port. So, anyone on the computer wanting to bind to this port need only write a small Java program. And if they can do this they can hijack incoming connections. It makes far more sense for a separate (and very small) privileged program to have the capability to bind to the specific port. This program can then pass the file descriptor bound to the port to the Java program. There are other ways to do this, too. A small program can launch as root, bind to the port, then downgrade to a regular user and launch Java. Or a program can forward the port to Java. There are libraries to handle Java access to privileged ports: the Apache commons daemon handles this, IIRC. AFAIK iptables can forward the port in the kernel, and then there's no separate program required, but this has some security problems: any process could then bind to the forwarded port. This is still better than giving the Java binary the capability to bind to privileged ports, though. I'm not sure there are any situations in which giving the Java binary enhanced privileges makes an sense from a security point of view. Andrew. From andrew at icedtea.classpath.org Thu May 6 06:56:03 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 06 May 2010 13:56:03 +0000 Subject: /hg/icedtea: 5 new changesets Message-ID: changeset 9dd49a510519 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=9dd49a510519 author: Andrew John Hughes date: Thu May 06 10:55:41 2010 +0100 Update NEWS with OpenJDK7 M7, security updates and libjpeg7. 2010-05-06 Andrew John Hughes * NEWS: Add 1.13 with libjpeg7 support, OpenJDK7 milestone 7 and the latest security updates. changeset 038803278cf3 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=038803278cf3 author: Mark Wielaard date: Thu May 06 11:16:14 2010 +0100 NEWS: Mention systemtap JNI class tracing support. 2009-10-28 Mark Wielaard * NEWS: Mention systemtap JNI class tracing support. changeset b6a9260b7eb3 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=b6a9260b7eb3 author: doko at ubuntu.com date: Thu Jan 08 22:15:08 2009 +0100 Don't use precompiled header files in HotSpot. 2009-01-08 Matthias Klose * patches/no-precompiled.patch: Don't use precompiled header files in hotspot. * HACKING: Document the above. changeset 250523a5b377 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=250523a5b377 author: Andrew John Hughes date: Thu May 06 14:18:44 2010 +0100 Extend PR40616 workaround to cover HKSCS.java. 2010-05-06 Andrew John Hughes * patches/boot/icedtea-pr40616.patch: Extend with fix for new HKSCS.java file. changeset edb1a3766b13 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=edb1a3766b13 author: Matthias Klose date: Thu May 06 14:30:26 2010 +0100 Disable use of the precompiled header by setting DISABLE_PRECOMPILED_HEADER 2009-10-22 Matthias Klose * patches/no-precompiled.patch: Allow disabling of the precompiled header setting DISABLE_PRECOMPILED_HEADER. * Makefile.am (ICEDTEA_PATCHES): Apply the above. diffstat: 5 files changed, 131 insertions(+), 1 deletion(-) ChangeLog | 26 ++++++++++++++++++++++++ Makefile.am | 3 +- NEWS | 29 ++++++++++++++++++++++++++ patches/boot/icedtea-pr40616.patch | 39 ++++++++++++++++++++++++++++++++++++ patches/no-precompiled.patch | 35 ++++++++++++++++++++++++++++++++ diffs (167 lines): diff -r eea3af287202 -r edb1a3766b13 ChangeLog --- a/ChangeLog Wed May 05 21:29:34 2010 +0100 +++ b/ChangeLog Thu May 06 14:30:26 2010 +0100 @@ -1,3 +1,29 @@ 2010-05-05 Andrew John Hughes + + * patches/no-precompiled.patch: Allow disabling of the + precompiled header setting DISABLE_PRECOMPILED_HEADER. + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + +2010-05-06 Andrew John Hughes + + * patches/boot/icedtea-pr40616.patch: + Extend with fix for new HKSCS.java file. + +2009-01-08 Matthias Klose + + * patches/no-precompiled.patch: Don't use + precompiled header files in hotspot. + +2009-10-28 Mark Wielaard + + * NEWS: Mention systemtap JNI class tracing support. + +2010-05-06 Andrew John Hughes + + * NEWS: + Add 1.13 with libjpeg7 support, OpenJDK7 + milestone 7 and the latest security updates. + 2010-05-05 Andrew John Hughes * patches/boot/icedtea-pr40616.patch: diff -r eea3af287202 -r edb1a3766b13 Makefile.am --- a/Makefile.am Wed May 05 21:29:34 2010 +0100 +++ b/Makefile.am Thu May 06 14:30:26 2010 +0100 @@ -315,7 +315,8 @@ ICEDTEA_PATCHES = \ patches/icedtea-jvmtiEnv.patch \ patches/icedtea-netx.patch \ patches/icedtea-disable-intree-ec.patch \ - patches/icedtea-sources.patch + patches/icedtea-sources.patch \ + patches/no-precompiled.patch # Conditional patches diff -r eea3af287202 -r edb1a3766b13 NEWS --- a/NEWS Wed May 05 21:29:34 2010 +0100 +++ b/NEWS Thu May 06 14:30:26 2010 +0100 @@ -1,3 +1,32 @@ New in release 1.12 (2009-11-17) +New in release 1.13 (2010-XX-XX) + +- Updated to OpenJDK7 milestone 7. +- libjpeg7 supported. +- Latest security updates and hardening patches: + - (CVE-2010-0837): JAR "unpack200" must verify input parameters (6902299) + - (CVE-2010-0845): No ClassCastException for HashAttributeSet constructors if run with -Xcomp (6894807) + - (CVE-2010-0838): CMM readMabCurveData Buffer Overflow Vulnerability (6899653) + - (CVE-2010-0082): Loader-constraint table allows arrays instead of only the base-classes (6626217) + - (CVE-2010-0095): Subclasses of InetAddress may incorrectly interpret network addresses (6893954) + - (CVE-2010-0085): File TOCTOU deserialization vulnerability (6736390) + - (CVE-2010-0091): Unsigned applet can retrieve the dragged information before drop action occurs (6887703) + - (CVE-2010-0088): Inflater/Deflater clone issues (6745393) + - (CVE-2010-0084): Policy/PolicyFile leak dynamic ProtectionDomains. (6633872) + - (CVE-2010-0092): AtomicReferenceArray causes SIGSEGV -> SEGV_MAPERR error (6888149) + - (CVE-2010-0094): Deserialization of RMIConnectionImpl objects should enforce stricter checks (6893947) + - (CVE-2010-0093): System.arraycopy unable to reference elements beyond Integer.MAX_VALUE bytes (6892265) + - (CVE-2010-0840): Applet Trusted Methods Chaining Privilege Escalation Vulnerability (6904691) + - (CVE-2010-0848): AWT Library Invalid Index Vulnerability (6914823) + - (CVE-2010-0847): ImagingLib arbitrary code execution vulnerability (6914866) + - (CVE-2009-3555): TLS: MITM attacks via session renegotiation + - 6639665: ThreadGroup finalizer allows creation of false root ThreadGroups + - 6898622: ObjectIdentifer.equals is not capable of detecting incorrectly encoded CommonName OIDs + - 6910590: Application can modify command array in ProcessBuilder + - 6909597: JPEGImageReader stepX Integer Overflow Vulnerability + - 6932480: Crash in CompilerThread/Parser. Unloaded array klass? +- Added JNI call tracing using systemtap version 1.0+ when + configuring with --enable-systemtap. See tapset/hotspot_jni.stp. + New in release 1.12 (2009-11-17) - Updated to OpenJDK7 milestone 5; includes: diff -r eea3af287202 -r edb1a3766b13 patches/boot/icedtea-pr40616.patch --- a/patches/boot/icedtea-pr40616.patch Wed May 05 21:29:34 2010 +0100 +++ b/patches/boot/icedtea-pr40616.patch Thu May 06 14:30:26 2010 +0100 @@ -11,3 +11,42 @@ String copyright = getCopyright(new File(args[3])); +diff -r c1cee45daf4d make/tools/src/build/tools/charsetmapping/HKSCS.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Wed Apr 28 22:15:05 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Thu May 06 14:17:11 2010 +0100 +@@ -43,29 +43,28 @@ + Pattern.compile("(?:0x)?+(\\p{XDigit}++)\\s++(?:0x|U\\+)?+(\\p{XDigit}++)?\\s*+(?:0x|U\\+)?(\\p{XDigit}++)?\\s*+.*"); + + static void genClass(String args[]) throws Exception { +- ++ FileOutputStream fos = new FileOutputStream(new File(args[1], "HKSCSMapping.java")); + // hkscs2008 + genClass0(new FileInputStream(new File(args[0], "HKSCS2008.map")), + new FileInputStream(new File(args[0], "HKSCS2008.c2b")), +- new PrintStream(new File(args[1], "HKSCSMapping.java"), +- "ISO-8859-1"), ++ new PrintStream(fos, false, "ISO-8859-1"), + "HKSCSMapping", + getCopyright(new File(args[3]))); + + + // xp2001 ++ fos = new FileOutputStream(new File(args[1], "HKSCS_XPMapping.java")); + genClass0(new FileInputStream(new File(args[0], "HKSCS_XP.map")), + null, +- new PrintStream(new File(args[1], "HKSCS_XPMapping.java"), +- "ISO-8859-1"), ++ new PrintStream(fos, false, "ISO-8859-1"), + "HKSCS_XPMapping", + getCopyright(new File(args[3]))); + + // hkscs2001 ++ fos = new FileOutputStream(new File(args[1], "HKSCS2001Mapping.java")); + genClass0(new FileInputStream(new File(args[0], "HKSCS2001.map")), + new FileInputStream(new File(args[0], "HKSCS2001.c2b")), +- new PrintStream(new File(args[1], "HKSCS2001Mapping.java"), +- "ISO-8859-1"), ++ new PrintStream(fos, false, "ISO-8859-1"), + "HKSCS2001Mapping", + getCopyright(new File(args[3]))); + } diff -r eea3af287202 -r edb1a3766b13 patches/no-precompiled.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/no-precompiled.patch Thu May 06 14:30:26 2010 +0100 @@ -0,0 +1,35 @@ +--- openjdk/hotspot/make/linux/makefiles/gcc.make~ 2009-10-30 11:54:26.000000000 +0100 ++++ openjdk/hotspot/make/linux/makefiles/gcc.make 2009-10-30 11:55:34.000000000 +0100 +@@ -34,13 +34,14 @@ + CC_VER_MAJOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f1) + CC_VER_MINOR := $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2) + ++ifeq (,$(DISABLE_PRECOMPILED_HEADER)) + # check for precompiled headers support + ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0" + USE_PRECOMPILED_HEADER=1 + PRECOMPILED_HEADER_DIR=. + PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch + endif +- ++endif + + #------------------------------------------------------------------------ + # Compiler flags +--- openjdk/hotspot/make/solaris/makefiles/gcc.make~ 2009-10-30 11:54:26.000000000 +0100 ++++ openjdk/hotspot/make/solaris/makefiles/gcc.make 2009-10-30 11:56:05.000000000 +0100 +@@ -45,12 +45,14 @@ + $(shell $(CC) -dumpversion | sed 's/egcs-//' | cut -d'.' -f2) + + ++ifeq (,$(DISABLE_PRECOMPILED_HEADER)) + # check for precompiled headers support + ifneq "$(shell expr \( $(CC_VER_MAJOR) \> 3 \) \| \( \( $(CC_VER_MAJOR) = 3 \) \& \( $(CC_VER_MINOR) \>= 4 \) \))" "0" + USE_PRECOMPILED_HEADER=1 + PRECOMPILED_HEADER_DIR=. + PRECOMPILED_HEADER=$(PRECOMPILED_HEADER_DIR)/incls/_precompiled.incl.gch + endif ++endif + + + #------------------------------------------------------------------------ From bugzilla-daemon at icedtea.classpath.org Thu May 6 07:07:11 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 06 May 2010 14:07:11 +0000 Subject: [Bug 484] Shark jit code block "0xcdcdcdcd" zombie wipeout Sigsegv crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484 ------- Comment #5 from gbenson at redhat.com 2010-05-06 14:07 ------- http://icedtea.classpath.org/hg/shark/hotspot/rev/e29b8494af09 fixes this. It will break the ARM interpreter though, so it can't be backported to icedtea6 right away. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Thu May 6 07:22:13 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 06 May 2010 14:22:13 +0000 Subject: /hg/icedtea: Remove EUCTW patch as class no longer uses java.uti... Message-ID: changeset 1529c5d1b41f in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=1529c5d1b41f author: Andrew John Hughes date: Thu May 06 15:22:07 2010 +0100 Remove EUCTW patch as class no longer uses java.util.Scanner. 2010-05-06 Andrew John Hughes * Makefile.am: Remove euctw patch. * patches/boot/icedtea-euctw.patch, Removed; EUCTW class no longer uses java.util.Scanner. diffstat: 3 files changed, 7 insertions(+), 34 deletions(-) ChangeLog | 6 ++++++ Makefile.am | 3 +-- patches/boot/icedtea-euctw.patch | 32 -------------------------------- diffs (62 lines): diff -r edb1a3766b13 -r 1529c5d1b41f ChangeLog --- a/ChangeLog Thu May 06 14:30:26 2010 +0100 +++ b/ChangeLog Thu May 06 15:22:07 2010 +0100 @@ -1,3 +1,9 @@ 2009-10-22 Matthias Klose + + * Makefile.am: Remove euctw patch. + * patches/boot/icedtea-euctw.patch, + Removed; EUCTW class no longer uses java.util.Scanner. + 2009-10-22 Matthias Klose * patches/no-precompiled.patch: Allow disabling of the diff -r edb1a3766b13 -r 1529c5d1b41f Makefile.am --- a/Makefile.am Thu May 06 14:30:26 2010 +0100 +++ b/Makefile.am Thu May 06 15:22:07 2010 +0100 @@ -423,8 +423,7 @@ SCANNER_PATCHES = patches/boot/icedtea-s patches/boot/icedtea-dbcs.patch if LACKS_JAVA_UTIL_SCANNER -ICEDTEA_BOOT_PATCHES += $(SCANNER_PATCHES) \ - patches/boot/icedtea-euctw.patch +ICEDTEA_BOOT_PATCHES += $(SCANNER_PATCHES) else if CP40630 ICEDTEA_BOOT_PATCHES += $(SCANNER_PATCHES) diff -r edb1a3766b13 -r 1529c5d1b41f patches/boot/icedtea-euctw.patch --- a/patches/boot/icedtea-euctw.patch Thu May 06 14:30:26 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java ---- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java 2009-07-15 13:08:40.000000000 +0100 -+++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/GenerateEUC_TW.java 2009-07-15 13:12:08.000000000 +0100 -@@ -27,7 +27,6 @@ - - import java.io.*; - import java.util.ArrayList; --import java.util.Scanner; - import java.util.Formatter; - import java.util.regex.*; - import java.nio.charset.*; -@@ -42,16 +41,16 @@ - } - - private static String getCopyright(File f) throws IOException { -- Scanner s = new Scanner(f, "ISO-8859-1"); -+ BufferedReader r = -+ new BufferedReader(new InputStreamReader(new FileInputStream(f), "ISO-8859-1")); - StringBuilder sb = new StringBuilder(); -- while (s.hasNextLine()) { -- String ln = s.nextLine(); -+ for (String ln = r.readLine(); ln != null; ln = r.readLine()) { - sb.append(ln + "\n"); - // assume we have the copyright as the first comment - if (ln.matches("^\\s\\*\\/$")) - break; - } -- s.close(); -+ r.close(); - return sb.toString(); - } - From ptisnovs at redhat.com Thu May 6 09:04:48 2010 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Thu, 06 May 2010 18:04:48 +0200 Subject: Regression test Test4200310.sh and class duplication in rt.jar and charsets.jar Message-ID: <4BE2E8A0.7090902@redhat.com> Hi, I noticed that the regression test Test42000310.sh regularly fails because it found duplicate classes stored in archives rt.jar and charsets.jar. I am not sure if this is a bug in OpenJDK6 or IcedTea, I suppose it's IcedTea issue. There are the list of duplicate classes (they are all from the same package, but this package contains more classes, over 400, only part of this package is "duplicated"): sun/nio/cs/ext/DoubleByteDecoder.class sun/nio/cs/ext/DoubleByteEncoder.class sun/nio/cs/ext/EUC_CN.class sun/nio/cs/ext/EUC_CN$Decoder.class sun/nio/cs/ext/EUC_CN$Encoder.class sun/nio/cs/ext/EUC_KR.class sun/nio/cs/ext/EUC_KR$Decoder.class sun/nio/cs/ext/EUC_KR$Encoder.class sun/nio/cs/ext/EUC_TW.class sun/nio/cs/ext/EUC_TW$Decoder.class sun/nio/cs/ext/EUC_TW$Encoder.class sun/nio/cs/ext/ExtendedCharsets.class sun/nio/cs/ext/GBK.class sun/nio/cs/ext/GBK$Decoder.class sun/nio/cs/ext/GBK$Encoder.class sun/nio/cs/ext/HKSCS.class sun/nio/cs/ext/HKSCS$Decoder.class sun/nio/cs/ext/HKSCS$Encoder.class sun/nio/cs/ext/JIS_X_0201.class sun/nio/cs/ext/JIS_X_0201$Decoder.class sun/nio/cs/ext/JIS_X_0201$Encoder.class sun/nio/cs/ext/JIS_X_0208_Decoder.class sun/nio/cs/ext/JIS_X_0208_Encoder.class sun/nio/cs/ext/JIS_X_0212_Decoder.class sun/nio/cs/ext/JIS_X_0212_Encoder.class btw: this regression test itself is buggy, I'm going to prepare webrev with proposed changes. any ideas? Cheers Pavel From ahughes at redhat.com Thu May 6 09:21:45 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Thu, 6 May 2010 17:21:45 +0100 Subject: Regression test Test4200310.sh and class duplication in rt.jar and charsets.jar In-Reply-To: <4BE2E8A0.7090902@redhat.com> References: <4BE2E8A0.7090902@redhat.com> Message-ID: On 6 May 2010 17:04, Pavel Tisnovsky wrote: > Hi, > > I noticed that the regression test Test42000310.sh regularly fails because > it found duplicate classes stored in archives rt.jar and charsets.jar. I am > not sure if this is a bug in OpenJDK6 or IcedTea, I suppose it's IcedTea > issue. What makes you think this? Have you checked a plain OpenJDK6 build? There are the list of duplicate classes (they are all from the same > package, but this package contains more classes, over 400, only part of this > package is "duplicated"): > > sun/nio/cs/ext/DoubleByteDecoder.class > sun/nio/cs/ext/DoubleByteEncoder.class > sun/nio/cs/ext/EUC_CN.class > sun/nio/cs/ext/EUC_CN$Decoder.class > sun/nio/cs/ext/EUC_CN$Encoder.class > sun/nio/cs/ext/EUC_KR.class > sun/nio/cs/ext/EUC_KR$Decoder.class > sun/nio/cs/ext/EUC_KR$Encoder.class > sun/nio/cs/ext/EUC_TW.class > sun/nio/cs/ext/EUC_TW$Decoder.class > sun/nio/cs/ext/EUC_TW$Encoder.class > sun/nio/cs/ext/ExtendedCharsets.class > sun/nio/cs/ext/GBK.class > sun/nio/cs/ext/GBK$Decoder.class > sun/nio/cs/ext/GBK$Encoder.class > sun/nio/cs/ext/HKSCS.class > sun/nio/cs/ext/HKSCS$Decoder.class > sun/nio/cs/ext/HKSCS$Encoder.class > sun/nio/cs/ext/JIS_X_0201.class > sun/nio/cs/ext/JIS_X_0201$Decoder.class > sun/nio/cs/ext/JIS_X_0201$Encoder.class > sun/nio/cs/ext/JIS_X_0208_Decoder.class > sun/nio/cs/ext/JIS_X_0208_Encoder.class > sun/nio/cs/ext/JIS_X_0212_Decoder.class > sun/nio/cs/ext/JIS_X_0212_Encoder.class > > btw: this regression test itself is buggy, I'm going to prepare webrev with > proposed changes. > > any ideas? > > Cheers > Pavel > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From dbhole at icedtea.classpath.org Thu May 6 14:35:43 2010 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Thu, 06 May 2010 21:35:43 +0000 Subject: /hg/icedtea6: Fix rhbz# 524387 (javax.net.ssl.SSLKeyException: R... Message-ID: changeset 6d1e2fae468a in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=6d1e2fae468a author: Deepak Bhole date: Thu May 06 17:35:36 2010 -0400 Fix rhbz# 524387 (javax.net.ssl.SSLKeyException: RSA premaster secret error) diffstat: 2 files changed, 54 insertions(+) ChangeLog | 8 ++ netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java | 46 ++++++++++++ diffs (78 lines): diff -r 540dc0858c17 -r 6d1e2fae468a ChangeLog --- a/ChangeLog Wed May 05 11:28:27 2010 +0100 +++ b/ChangeLog Thu May 06 17:35:36 2010 -0400 @@ -1,3 +1,11 @@ 2010-05-05 Gary Benson + + * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java + (checkPermission): Allow Runtime and Security permission (for + putProvider.SunJCE) if initiated for an https connection. + (inTrustedCallChain): New method. Returns if given class/method is + in the call chain, and everything upto there is trusted. + 2010-05-05 Gary Benson PR icedtea/481 diff -r 540dc0858c17 -r 6d1e2fae468a netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Wed May 05 11:28:27 2010 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Thu May 06 17:35:36 2010 -0400 @@ -395,6 +395,24 @@ class JNLPSecurityManager extends Securi // Everything else is denied throw se; + } else if (perm instanceof SecurityPermission) { + + // JCE's initialization requires putProviderProperty permission + if (perm.equals(new SecurityPermission("putProviderProperty.SunJCE"))) { + if (inTrustedCallChain("com.sun.crypto.provider.SunJCE", "run")) { + return; + } + } + + } else if (perm instanceof RuntimePermission) { + + // KeyGenerator's init method requires internal spec access + if (perm.equals(new SecurityPermission("accessClassInPackage.sun.security.internal.spec"))) { + if (inTrustedCallChain("javax.crypto.KeyGenerator", "init")) { + return; + } + } + } else { tmpPerm = perm; } @@ -419,6 +437,34 @@ class JNLPSecurityManager extends Securi } } + /** + * Returns weather the given class and method are in the current stack, + * and whether or not everything upto then is trusted + * + * @param className The name of the class to look for in the stack + * @param methodName The name of the method for the given class to look for in the stack + * @return Weather or not class::method() are in the chain, and everything upto there is trusted + */ + private boolean inTrustedCallChain(String className, String methodName) { + + StackTraceElement[] stack = Thread.currentThread().getStackTrace(); + + for (int i=0; i < stack.length; i++) { + + // Everything up to the desired class/method must be trusted + if (!stack[i].getClass().getProtectionDomain().implies(new AllPermission())) { + return false; + } + + if (stack[i].getClassName().equals(className) && + stack[i].getMethodName().equals(methodName)) { + return true; + } + } + + return false; + } + /** * Asks the user whether or not to grant permission. * @param perm the permission to be granted From dbhole at icedtea.classpath.org Thu May 6 15:20:25 2010 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Thu, 06 May 2010 22:20:25 +0000 Subject: /hg/icedtea6: Add imports missed in previous commit Message-ID: changeset 6c2adc19cc47 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=6c2adc19cc47 author: Deepak Bhole date: Thu May 06 18:20:09 2010 -0400 Add imports missed in previous commit diffstat: 1 file changed, 2 insertions(+) netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java | 2 ++ diffs (16 lines): diff -r 6d1e2fae468a -r 6c2adc19cc47 netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Thu May 06 17:35:36 2010 -0400 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Thu May 06 18:20:09 2010 -0400 @@ -23,10 +23,12 @@ import java.awt.event.WindowEvent; import java.awt.event.WindowEvent; import java.lang.ref.WeakReference; import java.net.SocketPermission; +import java.security.AllPermission; import java.security.AccessControlException; import java.security.AccessController; import java.security.Permission; import java.security.PrivilegedAction; +import java.security.SecurityPermission;; import java.util.PropertyPermission; import javax.swing.JWindow; From gbenson at icedtea.classpath.org Fri May 7 02:52:49 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Fri, 07 May 2010 09:52:49 +0000 Subject: /hg/icedtea6: 2 new changesets Message-ID: changeset 0e1af84bed2c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0e1af84bed2c author: Gary Benson date: Fri May 07 10:49:34 2010 +0100 Updated Zero to semi-latest upstream changeset d5ebbabd7488 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d5ebbabd7488 author: Gary Benson date: Fri May 07 10:51:15 2010 +0100 Merge diffstat: 20 files changed, 373 insertions(+), 159 deletions(-) ChangeLog | 58 +++++ netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java | 48 ++++ ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 109 +++------- ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp | 4 ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp | 9 ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp | 8 ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp | 4 ports/hotspot/src/cpu/zero/vm/globals_zero.hpp | 11 - ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp | 8 ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp | 7 ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 1 ports/hotspot/src/cpu/zero/vm/stack_zero.cpp | 73 ++++++ ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 17 + ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp | 43 +++ ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp | 73 +++--- ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 11 - ports/hotspot/src/share/vm/includeDB_shark | 3 ports/hotspot/src/share/vm/includeDB_zero | 15 + ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp | 1 ports/hotspot/src/share/vm/shark/sharkRuntime.cpp | 29 +- diffs (truncated from 920 to 500 lines): diff -r 540dc0858c17 -r d5ebbabd7488 ChangeLog --- a/ChangeLog Wed May 05 11:28:27 2010 +0100 +++ b/ChangeLog Fri May 07 10:51:15 2010 +0100 @@ -1,3 +1,61 @@ 2010-05-05 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp + (ZeroStack::_shadow_pages_size): New field. + (ZeroStack::ZeroStack): Initialize the above. + (ZeroStack::shadow_pages_size): New method. + (ZeroStack::overflow_check): Likewise. + (ZeroStack::handle_overflow): Likewise. + * ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp: New file. + * ports/hotspot/src/cpu/zero/vm/stack_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp + (CppInterpreter::stack_overflow_imminent): Removed. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (CppInterpreter::stack_overflow_imminent): Likewise. + (CppInterpreter::normal_entry): Use new stack overflow code. + (CppInterpreter::main_loop): Likewise. + (CppInterpreter::native_entry): Likewise. + (InterpreterFrame::build): Likewise. + * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp + (EntryFrame::build): Likewise. + * ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp + (FakeStubFrame::build): Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp + (InterpreterFrame::build): Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp + (InterpreterRuntime::slow_signature_handler): Likewise. + * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp + (StubGenerator::call_stub): Likewise. + (EntryFrame::build): Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp + (SharkRuntime::uncommon_trap): Likewise. + (FakeStubFrame::build): Likewise. + + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::set_last_Java_frame): Refactored. + (JavaThread::reset_last_Java_frame): Likewise. + + * ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp + (Disassembler::pd_instruction_alignment): Implemented. + (Disassembler::pd_cpu_opts): Likewise. + + * ports/hotspot/src/cpu/zero/vm/globals_zero.hpp: Updated. + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. + + * ports/hotspot/src/share/vm/includeDB_zero: Updated. + * ports/hotspot/src/share/vm/includeDB_shark: Likewise. + + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp + (SharkDecacher::end_frame): Updated for newer HotSpot. + +2010-05-06 Deepak Bhole + + * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java + (checkPermission): Allow Runtime and Security permission (for + putProvider.SunJCE) if initiated for an https connection. + (inTrustedCallChain): New method. Returns if given class/method is + in the call chain, and everything upto there is trusted. + 2010-05-05 Gary Benson PR icedtea/481 diff -r 540dc0858c17 -r d5ebbabd7488 netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Wed May 05 11:28:27 2010 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Fri May 07 10:51:15 2010 +0100 @@ -23,10 +23,12 @@ import java.awt.event.WindowEvent; import java.awt.event.WindowEvent; import java.lang.ref.WeakReference; import java.net.SocketPermission; +import java.security.AllPermission; import java.security.AccessControlException; import java.security.AccessController; import java.security.Permission; import java.security.PrivilegedAction; +import java.security.SecurityPermission;; import java.util.PropertyPermission; import javax.swing.JWindow; @@ -395,6 +397,24 @@ class JNLPSecurityManager extends Securi // Everything else is denied throw se; + } else if (perm instanceof SecurityPermission) { + + // JCE's initialization requires putProviderProperty permission + if (perm.equals(new SecurityPermission("putProviderProperty.SunJCE"))) { + if (inTrustedCallChain("com.sun.crypto.provider.SunJCE", "run")) { + return; + } + } + + } else if (perm instanceof RuntimePermission) { + + // KeyGenerator's init method requires internal spec access + if (perm.equals(new SecurityPermission("accessClassInPackage.sun.security.internal.spec"))) { + if (inTrustedCallChain("javax.crypto.KeyGenerator", "init")) { + return; + } + } + } else { tmpPerm = perm; } @@ -419,6 +439,34 @@ class JNLPSecurityManager extends Securi } } + /** + * Returns weather the given class and method are in the current stack, + * and whether or not everything upto then is trusted + * + * @param className The name of the class to look for in the stack + * @param methodName The name of the method for the given class to look for in the stack + * @return Weather or not class::method() are in the chain, and everything upto there is trusted + */ + private boolean inTrustedCallChain(String className, String methodName) { + + StackTraceElement[] stack = Thread.currentThread().getStackTrace(); + + for (int i=0; i < stack.length; i++) { + + // Everything up to the desired class/method must be trusted + if (!stack[i].getClass().getProtectionDomain().implies(new AllPermission())) { + return false; + } + + if (stack[i].getClassName().equals(className) && + stack[i].getMethodName().equals(methodName)) { + return true; + } + } + + return false; + } + /** * Asks the user whether or not to grant permission. * @param perm the permission to be granted diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 07 10:51:15 2010 +0100 @@ -39,21 +39,9 @@ void CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; - ZeroStack *stack = thread->zero_stack(); - - // Adjust the caller's stack frame to accomodate any additional - // local variables we have contiguously with our parameters. - int extra_locals = method->max_locals() - method->size_of_parameters(); - if (extra_locals > 0) { - if (extra_locals > stack->available_words()) { - Unimplemented(); - } - for (int i = 0; i < extra_locals; i++) - stack->push(0); - } // Allocate and initialize our frame. - InterpreterFrame *frame = InterpreterFrame::build(stack, method, thread); + InterpreterFrame *frame = InterpreterFrame::build(method, CHECK); thread->push_zero_frame(frame); // Execute those bytecodes! @@ -75,12 +63,6 @@ void CppInterpreter::main_loop(int recur intptr_t *result = NULL; int result_slots = 0; - - // Check we're not about to run out of stack - if (stack_overflow_imminent(thread)) { - CALL_VM_NOCHECK(InterpreterRuntime::throw_StackOverflowError(thread)); - goto unwind_and_return; - } while (true) { // We can set up the frame anchor with everything we want at @@ -123,9 +105,9 @@ void CppInterpreter::main_loop(int recur int monitor_words = frame::interpreter_frame_monitor_size(); // Allocate the space - if (monitor_words > stack->available_words()) { - Unimplemented(); - } + stack->overflow_check(monitor_words, THREAD); + if (HAS_PENDING_EXCEPTION) + break; stack->alloc(monitor_words * wordSize); // Move the expression stack contents @@ -172,8 +154,6 @@ void CppInterpreter::main_loop(int recur } } - unwind_and_return: - // Unwind the current frame thread->pop_zero_frame(); @@ -193,16 +173,10 @@ void CppInterpreter::native_entry(method ZeroStack *stack = thread->zero_stack(); // Allocate and initialize our frame - InterpreterFrame *frame = InterpreterFrame::build(stack, method, thread); + InterpreterFrame *frame = InterpreterFrame::build(method, CHECK); thread->push_zero_frame(frame); interpreterState istate = frame->interpreter_state(); intptr_t *locals = istate->locals(); - - // Check we're not about to run out of stack - if (stack_overflow_imminent(thread)) { - CALL_VM_NOCHECK(InterpreterRuntime::throw_StackOverflowError(thread)); - goto unwind_and_return; - } // Update the invocation counter if ((UseCompiler || CountCompiledCalls) && !method->is_synchronized()) { @@ -264,9 +238,10 @@ void CppInterpreter::native_entry(method assert(function != NULL, "should be set if signature handler is"); // Build the argument list - if (handler->argument_count() * 2 > stack->available_words()) { - Unimplemented(); - } + stack->overflow_check(handler->argument_count() * 2, THREAD); + if (HAS_PENDING_EXCEPTION) + goto unlock_unwind_and_return; + void **arguments; void *mirror; { arguments = @@ -503,9 +478,7 @@ void CppInterpreter::accessor_entry(meth switch (entry->flag_state()) { case ltos: case dtos: - if (stack->available_words() < 1) { - Unimplemented(); - } + stack->overflow_check(1, CHECK); stack->alloc(wordSize); break; } @@ -601,39 +574,30 @@ void CppInterpreter::empty_entry(methodO stack->set_sp(stack->sp() + method->size_of_parameters()); } -bool CppInterpreter::stack_overflow_imminent(JavaThread *thread) { - // How is the ABI stack? - address stack_top = thread->stack_base() - thread->stack_size(); - int free_stack = os::current_stack_pointer() - stack_top; - if (free_stack < StackShadowPages * os::vm_page_size()) { - return true; +InterpreterFrame *InterpreterFrame::build(const methodOop method, TRAPS) { + JavaThread *thread = (JavaThread *) THREAD; + ZeroStack *stack = thread->zero_stack(); + + // Calculate the size of the frame we'll build, including + // any adjustments to the caller's frame that we'll make. + int extra_locals = 0; + int monitor_words = 0; + int stack_words = 0; + + if (!method->is_native()) { + extra_locals = method->max_locals() - method->size_of_parameters(); + stack_words = method->max_stack(); } + if (method->is_synchronized()) { + monitor_words = frame::interpreter_frame_monitor_size(); + } + stack->overflow_check( + extra_locals + header_words + monitor_words + stack_words, CHECK_NULL); - // How is the Zero stack? - // Throwing a StackOverflowError involves a VM call, which means - // we need a frame on the stack. We should be checking here to - // ensure that methods we call have enough room to install the - // largest possible frame, but that's more than twice the size - // of the entire Zero stack we get by default, so we just check - // we have *some* space instead... - free_stack = thread->zero_stack()->available_words() * wordSize; - if (free_stack < StackShadowPages * os::vm_page_size()) { - return true; - } - - return false; -} - -InterpreterFrame *InterpreterFrame::build(ZeroStack* stack, - const methodOop method, - JavaThread* thread) { - int monitor_words = - method->is_synchronized() ? frame::interpreter_frame_monitor_size() : 0; - int stack_words = method->is_native() ? 0 : method->max_stack(); - - if (header_words + monitor_words + stack_words > stack->available_words()) { - Unimplemented(); - } + // Adjust the caller's stack frame to accomodate any additional + // local variables we have contiguously with our parameters. + for (int i = 0; i < extra_locals; i++) + stack->push(0); intptr_t *locals; if (method->is_native()) @@ -819,14 +783,13 @@ InterpreterGenerator::InterpreterGenerat // Deoptimization helpers -InterpreterFrame *InterpreterFrame::build(ZeroStack* stack, int size) { +InterpreterFrame *InterpreterFrame::build(int size, TRAPS) { + ZeroStack *stack = ((JavaThread *) THREAD)->zero_stack(); + int size_in_words = size >> LogBytesPerWord; assert(size_in_words * wordSize == size, "unaligned"); assert(size_in_words >= header_words, "too small"); - - if (size_in_words > stack->available_words()) { - Unimplemented(); - } + stack->overflow_check(size_in_words, CHECK_NULL); stack->push(0); // next_frame, filled in later intptr_t *fp = stack->sp(); diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp Fri May 07 10:51:15 2010 +0100 @@ -39,9 +39,5 @@ static void main_loop(int recurse, TRAPS); private: - // Stack overflow checks - static bool stack_overflow_imminent(JavaThread *thread); - - private: // Fast result type determination static BasicType result_type_of(methodOop method); diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp Fri May 07 10:51:15 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2010 Red Hat, Inc. + * Copyright 2007 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 @@ -23,10 +23,13 @@ * */ +// The disassembler prints out zero code annotated +// with Java specific information. + static int pd_instruction_alignment() { - return 1; + ShouldNotCallThis(); } static const char* pd_cpu_opts() { - return ""; + ShouldNotCallThis(); } diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Fri May 07 10:51:15 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2010 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 @@ -47,10 +47,10 @@ class EntryFrame : public ZeroFrame { }; public: - static EntryFrame *build(ZeroStack* stack, - const intptr_t* parameters, + static EntryFrame *build(const intptr_t* parameters, int parameter_words, - JavaCallWrapper* call_wrapper); + JavaCallWrapper* call_wrapper, + TRAPS); public: JavaCallWrapper *call_wrapper() const { return (JavaCallWrapper *) value_of_word(call_wrapper_off); diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp Fri May 07 10:51:15 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2010 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 @@ -42,7 +42,7 @@ class FakeStubFrame : public ZeroFrame { }; public: - static FakeStubFrame *build(ZeroStack* stack); + static FakeStubFrame *build(TRAPS); public: void identify_word(int frame_index, diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/globals_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/globals_zero.hpp Fri May 07 10:51:15 2010 +0100 @@ -35,17 +35,8 @@ define_pd_global(bool, UncommonNullCast define_pd_global(bool, UncommonNullCast, true); define_pd_global(intx, CodeEntryAlignment, 32); -define_pd_global(uintx, TLABSize, 0); -#ifdef _LP64 -define_pd_global(uintx, NewSize, ScaleForWordSize(2048 * K)); -#else -define_pd_global(uintx, NewSize, ScaleForWordSize(1024 * K)); -#endif // _LP64 +define_pd_global(intx, OptoLoopAlignment, 16); define_pd_global(intx, InlineFrequencyCount, 100); -#ifdef SHARK -// Only required for older HotSpot versions -define_pd_global(intx, InlineSmallCode, 1000); -#endif // SHARK define_pd_global(intx, PreInflateSpin, 10); define_pd_global(intx, StackYellowPages, 2); diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp Fri May 07 10:51:15 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2010 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 @@ -55,10 +55,8 @@ class InterpreterFrame : public ZeroFram }; public: - static InterpreterFrame *build(ZeroStack* stack, - const methodOop method, - JavaThread* thread); - static InterpreterFrame *build(ZeroStack* stack, int size); + static InterpreterFrame *build(const methodOop method, TRAPS); + static InterpreterFrame *build(int size, TRAPS); public: interpreterState interpreter_state() const { diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp Fri May 07 10:51:15 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2010 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 @@ -140,9 +140,8 @@ IRT_ENTRY(address, int required_words = (align_size_up(sizeof(ffi_cif), wordSize) >> LogBytesPerWord) + (method->is_static() ? 2 : 1) + method->size_of_parameters() + 1; - if (required_words > stack->available_words()) { - Unimplemented(); - } + + stack->overflow_check(required_words, CHECK_NULL); intptr_t *buf = (intptr_t *) stack->alloc(required_words * wordSize); SlowSignatureHandlerGenerator sshg(methodHandle(thread, method), buf); diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Fri May 07 10:51:15 2010 +0100 @@ -47,6 +47,7 @@ define_pd_global(intx, Tier4BackEdge define_pd_global(intx, OnStackReplacePercentage, 933 ); define_pd_global(intx, FreqInlineSize, 325 ); +define_pd_global(intx, InlineSmallCode, 1000 ); define_pd_global(intx, NewRatio, 12 ); define_pd_global(intx, NewSizeThreadIncrease, 4*K ); define_pd_global(intx, InitialCodeCacheSize, 160*K); diff -r 540dc0858c17 -r d5ebbabd7488 ports/hotspot/src/cpu/zero/vm/stack_zero.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.cpp Fri May 07 10:51:15 2010 +0100 @@ -0,0 +1,73 @@ +/* + * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2010 Red Hat, Inc. + * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. + * From gbenson at redhat.com Fri May 7 02:56:28 2010 From: gbenson at redhat.com (Gary Benson) Date: Fri, 7 May 2010 10:56:28 +0100 Subject: Updated icedtea6 Zero (somewhat) Message-ID: <20100507095628.GA3408@redhat.com> Hi all, This commit updates Zero in icedtea6 to something closer to what is upstream. Most importantly this includes the new stack overflow code I wrote about here: http://gbenson.net/?p=184 Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r 540dc0858c17 ChangeLog --- a/ChangeLog Wed May 05 11:28:27 2010 +0100 +++ b/ChangeLog Fri May 07 10:49:00 2010 +0100 @@ -1,3 +1,53 @@ +2010-05-07 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp + (ZeroStack::_shadow_pages_size): New field. + (ZeroStack::ZeroStack): Initialize the above. + (ZeroStack::shadow_pages_size): New method. + (ZeroStack::overflow_check): Likewise. + (ZeroStack::handle_overflow): Likewise. + * ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp: New file. + * ports/hotspot/src/cpu/zero/vm/stack_zero.cpp: Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp + (CppInterpreter::stack_overflow_imminent): Removed. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (CppInterpreter::stack_overflow_imminent): Likewise. + (CppInterpreter::normal_entry): Use new stack overflow code. + (CppInterpreter::main_loop): Likewise. + (CppInterpreter::native_entry): Likewise. + (InterpreterFrame::build): Likewise. + * ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp + (EntryFrame::build): Likewise. + * ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp + (FakeStubFrame::build): Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp + (InterpreterFrame::build): Likewise. + * ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp + (InterpreterRuntime::slow_signature_handler): Likewise. + * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp + (StubGenerator::call_stub): Likewise. + (EntryFrame::build): Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp + (SharkRuntime::uncommon_trap): Likewise. + (FakeStubFrame::build): Likewise. + + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::set_last_Java_frame): Refactored. + (JavaThread::reset_last_Java_frame): Likewise. + + * ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp + (Disassembler::pd_instruction_alignment): Implemented. + (Disassembler::pd_cpu_opts): Likewise. + + * ports/hotspot/src/cpu/zero/vm/globals_zero.hpp: Updated. + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. + + * ports/hotspot/src/share/vm/includeDB_zero: Updated. + * ports/hotspot/src/share/vm/includeDB_shark: Likewise. + + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp + (SharkDecacher::end_frame): Updated for newer HotSpot. + 2010-05-05 Gary Benson PR icedtea/481 diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 07 10:49:00 2010 +0100 @@ -39,21 +39,9 @@ void CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; - ZeroStack *stack = thread->zero_stack(); - - // Adjust the caller's stack frame to accomodate any additional - // local variables we have contiguously with our parameters. - int extra_locals = method->max_locals() - method->size_of_parameters(); - if (extra_locals > 0) { - if (extra_locals > stack->available_words()) { - Unimplemented(); - } - for (int i = 0; i < extra_locals; i++) - stack->push(0); - } // Allocate and initialize our frame. - InterpreterFrame *frame = InterpreterFrame::build(stack, method, thread); + InterpreterFrame *frame = InterpreterFrame::build(method, CHECK); thread->push_zero_frame(frame); // Execute those bytecodes! @@ -76,12 +64,6 @@ intptr_t *result = NULL; int result_slots = 0; - // Check we're not about to run out of stack - if (stack_overflow_imminent(thread)) { - CALL_VM_NOCHECK(InterpreterRuntime::throw_StackOverflowError(thread)); - goto unwind_and_return; - } - while (true) { // We can set up the frame anchor with everything we want at // this point as we are thread_in_Java and no safepoints can @@ -123,9 +105,9 @@ int monitor_words = frame::interpreter_frame_monitor_size(); // Allocate the space - if (monitor_words > stack->available_words()) { - Unimplemented(); - } + stack->overflow_check(monitor_words, THREAD); + if (HAS_PENDING_EXCEPTION) + break; stack->alloc(monitor_words * wordSize); // Move the expression stack contents @@ -172,8 +154,6 @@ } } - unwind_and_return: - // Unwind the current frame thread->pop_zero_frame(); @@ -193,17 +173,11 @@ ZeroStack *stack = thread->zero_stack(); // Allocate and initialize our frame - InterpreterFrame *frame = InterpreterFrame::build(stack, method, thread); + InterpreterFrame *frame = InterpreterFrame::build(method, CHECK); thread->push_zero_frame(frame); interpreterState istate = frame->interpreter_state(); intptr_t *locals = istate->locals(); - // Check we're not about to run out of stack - if (stack_overflow_imminent(thread)) { - CALL_VM_NOCHECK(InterpreterRuntime::throw_StackOverflowError(thread)); - goto unwind_and_return; - } - // Update the invocation counter if ((UseCompiler || CountCompiledCalls) && !method->is_synchronized()) { InvocationCounter *counter = method->invocation_counter(); @@ -264,9 +238,10 @@ assert(function != NULL, "should be set if signature handler is"); // Build the argument list - if (handler->argument_count() * 2 > stack->available_words()) { - Unimplemented(); - } + stack->overflow_check(handler->argument_count() * 2, THREAD); + if (HAS_PENDING_EXCEPTION) + goto unlock_unwind_and_return; + void **arguments; void *mirror; { arguments = @@ -503,9 +478,7 @@ switch (entry->flag_state()) { case ltos: case dtos: - if (stack->available_words() < 1) { - Unimplemented(); - } + stack->overflow_check(1, CHECK); stack->alloc(wordSize); break; } @@ -601,39 +574,30 @@ stack->set_sp(stack->sp() + method->size_of_parameters()); } -bool CppInterpreter::stack_overflow_imminent(JavaThread *thread) { - // How is the ABI stack? - address stack_top = thread->stack_base() - thread->stack_size(); - int free_stack = os::current_stack_pointer() - stack_top; - if (free_stack < StackShadowPages * os::vm_page_size()) { - return true; +InterpreterFrame *InterpreterFrame::build(const methodOop method, TRAPS) { + JavaThread *thread = (JavaThread *) THREAD; + ZeroStack *stack = thread->zero_stack(); + + // Calculate the size of the frame we'll build, including + // any adjustments to the caller's frame that we'll make. + int extra_locals = 0; + int monitor_words = 0; + int stack_words = 0; + + if (!method->is_native()) { + extra_locals = method->max_locals() - method->size_of_parameters(); + stack_words = method->max_stack(); } + if (method->is_synchronized()) { + monitor_words = frame::interpreter_frame_monitor_size(); + } + stack->overflow_check( + extra_locals + header_words + monitor_words + stack_words, CHECK_NULL); - // How is the Zero stack? - // Throwing a StackOverflowError involves a VM call, which means - // we need a frame on the stack. We should be checking here to - // ensure that methods we call have enough room to install the - // largest possible frame, but that's more than twice the size - // of the entire Zero stack we get by default, so we just check - // we have *some* space instead... - free_stack = thread->zero_stack()->available_words() * wordSize; - if (free_stack < StackShadowPages * os::vm_page_size()) { - return true; - } - - return false; -} - -InterpreterFrame *InterpreterFrame::build(ZeroStack* stack, - const methodOop method, - JavaThread* thread) { - int monitor_words = - method->is_synchronized() ? frame::interpreter_frame_monitor_size() : 0; - int stack_words = method->is_native() ? 0 : method->max_stack(); - - if (header_words + monitor_words + stack_words > stack->available_words()) { - Unimplemented(); - } + // Adjust the caller's stack frame to accomodate any additional + // local variables we have contiguously with our parameters. + for (int i = 0; i < extra_locals; i++) + stack->push(0); intptr_t *locals; if (method->is_native()) @@ -819,14 +783,13 @@ // Deoptimization helpers -InterpreterFrame *InterpreterFrame::build(ZeroStack* stack, int size) { +InterpreterFrame *InterpreterFrame::build(int size, TRAPS) { + ZeroStack *stack = ((JavaThread *) THREAD)->zero_stack(); + int size_in_words = size >> LogBytesPerWord; assert(size_in_words * wordSize == size, "unaligned"); assert(size_in_words >= header_words, "too small"); - - if (size_in_words > stack->available_words()) { - Unimplemented(); - } + stack->overflow_check(size_in_words, CHECK_NULL); stack->push(0); // next_frame, filled in later intptr_t *fp = stack->sp(); diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -39,9 +39,5 @@ static void main_loop(int recurse, TRAPS); private: - // Stack overflow checks - static bool stack_overflow_imminent(JavaThread *thread); - - private: // Fast result type determination static BasicType result_type_of(methodOop method); diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2010 Red Hat, Inc. + * Copyright 2007 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 @@ -23,10 +23,13 @@ * */ +// The disassembler prints out zero code annotated +// with Java specific information. + static int pd_instruction_alignment() { - return 1; + ShouldNotCallThis(); } static const char* pd_cpu_opts() { - return ""; + ShouldNotCallThis(); } diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/entryFrame_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2010 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 @@ -47,10 +47,10 @@ }; public: - static EntryFrame *build(ZeroStack* stack, - const intptr_t* parameters, + static EntryFrame *build(const intptr_t* parameters, int parameter_words, - JavaCallWrapper* call_wrapper); + JavaCallWrapper* call_wrapper, + TRAPS); public: JavaCallWrapper *call_wrapper() const { return (JavaCallWrapper *) value_of_word(call_wrapper_off); diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/fakeStubFrame_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2010 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 @@ -42,7 +42,7 @@ }; public: - static FakeStubFrame *build(ZeroStack* stack); + static FakeStubFrame *build(TRAPS); public: void identify_word(int frame_index, diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/globals_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/globals_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -35,17 +35,8 @@ define_pd_global(bool, UncommonNullCast, true); define_pd_global(intx, CodeEntryAlignment, 32); -define_pd_global(uintx, TLABSize, 0); -#ifdef _LP64 -define_pd_global(uintx, NewSize, ScaleForWordSize(2048 * K)); -#else -define_pd_global(uintx, NewSize, ScaleForWordSize(1024 * K)); -#endif // _LP64 +define_pd_global(intx, OptoLoopAlignment, 16); define_pd_global(intx, InlineFrequencyCount, 100); -#ifdef SHARK -// Only required for older HotSpot versions -define_pd_global(intx, InlineSmallCode, 1000); -#endif // SHARK define_pd_global(intx, PreInflateSpin, 10); define_pd_global(intx, StackYellowPages, 2); diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/interpreterFrame_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2010 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 @@ -55,10 +55,8 @@ }; public: - static InterpreterFrame *build(ZeroStack* stack, - const methodOop method, - JavaThread* thread); - static InterpreterFrame *build(ZeroStack* stack, int size); + static InterpreterFrame *build(const methodOop method, TRAPS); + static InterpreterFrame *build(int size, TRAPS); public: interpreterState interpreter_state() const { diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/interpreterRT_zero.cpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2010 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 @@ -140,9 +140,8 @@ int required_words = (align_size_up(sizeof(ffi_cif), wordSize) >> LogBytesPerWord) + (method->is_static() ? 2 : 1) + method->size_of_parameters() + 1; - if (required_words > stack->available_words()) { - Unimplemented(); - } + + stack->overflow_check(required_words, CHECK_NULL); intptr_t *buf = (intptr_t *) stack->alloc(required_words * wordSize); SlowSignatureHandlerGenerator sshg(methodHandle(thread, method), buf); diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -47,6 +47,7 @@ define_pd_global(intx, OnStackReplacePercentage, 933 ); define_pd_global(intx, FreqInlineSize, 325 ); +define_pd_global(intx, InlineSmallCode, 1000 ); define_pd_global(intx, NewRatio, 12 ); define_pd_global(intx, NewSizeThreadIncrease, 4*K ); define_pd_global(intx, InitialCodeCacheSize, 160*K); diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/stack_zero.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.cpp Fri May 07 10:49:00 2010 +0100 @@ -0,0 +1,73 @@ +/* + * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2010 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 + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + */ + +#include "incls/_precompiled.incl" +#include "incls/_stack_zero.cpp.incl" + +void ZeroStack::handle_overflow(TRAPS) { + JavaThread *thread = (JavaThread *) THREAD; + + // Set up the frame anchor if it isn't already + bool has_last_Java_frame = thread->has_last_Java_frame(); + if (!has_last_Java_frame) { + ZeroFrame *frame = thread->top_zero_frame(); + while (frame) { + if (frame->is_shark_frame()) + break; + + if (frame->is_interpreter_frame()) { + interpreterState istate = + frame->as_interpreter_frame()->interpreter_state(); + if (istate->self_link() == istate) + break; + } + + frame = frame->next(); + } + + if (frame == NULL) + fatal("unrecoverable stack overflow"); + + thread->set_last_Java_frame(frame); + } + + // Throw the exception + switch (thread->thread_state()) { + case _thread_in_Java: + InterpreterRuntime::throw_StackOverflowError(thread); + break; + + case _thread_in_vm: + Exceptions::throw_stack_overflow_exception(thread, __FILE__, __LINE__); + break; + + default: + ShouldNotReachHere(); + } + + // Reset the frame anchor if necessary + if (!has_last_Java_frame) + thread->reset_last_Java_frame(); +} diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/stack_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -29,9 +29,14 @@ intptr_t *_top; // the word past the end of the stack intptr_t *_sp; // the top word on the stack + private: + int _shadow_pages_size; // how much ABI stack must we keep free? + public: ZeroStack() - : _base(NULL), _top(NULL), _sp(NULL) {} + : _base(NULL), _top(NULL), _sp(NULL) { + _shadow_pages_size = StackShadowPages * os::vm_page_size(); + } bool needs_setup() const { return _base == NULL; @@ -81,6 +86,14 @@ return _sp -= count; } + int shadow_pages_size() const { + return _shadow_pages_size; + } + + public: + void overflow_check(int required_words, TRAPS); + static void handle_overflow(TRAPS); + public: static ByteSize base_offset() { return byte_offset_of(ZeroStack, _base); diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp Fri May 07 10:49:00 2010 +0100 @@ -0,0 +1,43 @@ +/* + * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. + * Copyright 2010 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 + * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, + * CA 95054 USA or visit www.sun.com if you need additional information or + * have any questions. + * + */ + +// This function should match SharkStack::CreateStackOverflowCheck +inline void ZeroStack::overflow_check(int required_words, TRAPS) { + JavaThread *thread = (JavaThread *) THREAD; + + // Check the Zero stack + if (required_words > available_words()) { + handle_overflow(THREAD); + return; + } + + // Check the ABI stack + address stack_top = thread->stack_base() - thread->stack_size(); + int free_stack = ((address) &stack_top) - stack_top; + if (free_stack < shadow_pages_size()) { + handle_overflow(THREAD); + return; + } +} diff -r 540dc0858c17 ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2010 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 @@ -60,38 +60,43 @@ } // Allocate and initialize our frame - thread->push_zero_frame( - EntryFrame::build(stack, parameters, parameter_words, call_wrapper)); + EntryFrame *frame = + EntryFrame::build(parameters, parameter_words, call_wrapper, THREAD); - // Make the call - Interpreter::invoke_method(method, entry_point, THREAD); + if (!HAS_PENDING_EXCEPTION) { + // Push the frame + thread->push_zero_frame(frame); - // Store result depending on type - if (!HAS_PENDING_EXCEPTION) { - switch (result_type) { - case T_INT: - *(jint *) result = *(jint *) stack->sp(); - break; - case T_LONG: - *(jlong *) result = *(jlong *) stack->sp(); - break; - case T_FLOAT: - *(jfloat *) result = *(jfloat *) stack->sp(); - break; - case T_DOUBLE: - *(jdouble *) result = *(jdouble *) stack->sp(); - break; - case T_OBJECT: - *(oop *) result = *(oop *) stack->sp(); - break; - default: - ShouldNotReachHere(); + // Make the call + Interpreter::invoke_method(method, entry_point, THREAD); + + // Store the result + if (!HAS_PENDING_EXCEPTION) { + switch (result_type) { + case T_INT: + *(jint *) result = *(jint *) stack->sp(); + break; + case T_LONG: + *(jlong *) result = *(jlong *) stack->sp(); + break; + case T_FLOAT: + *(jfloat *) result = *(jfloat *) stack->sp(); + break; + case T_DOUBLE: + *(jdouble *) result = *(jdouble *) stack->sp(); + break; + case T_OBJECT: + *(oop *) result = *(oop *) stack->sp(); + break; + default: + ShouldNotReachHere(); + } } + + // Unwind the frame + thread->pop_zero_frame(); } - // Unwind our frame - thread->pop_zero_frame(); - // Tear down the stack if necessary if (stack_needs_teardown) stack->teardown(); @@ -226,13 +231,13 @@ StubGenerator g(code, all); } -EntryFrame *EntryFrame::build(ZeroStack* stack, - const intptr_t* parameters, +EntryFrame *EntryFrame::build(const intptr_t* parameters, int parameter_words, - JavaCallWrapper* call_wrapper) { - if (header_words + parameter_words > stack->available_words()) { - Unimplemented(); - } + JavaCallWrapper* call_wrapper, + TRAPS) { + + ZeroStack *stack = ((JavaThread *) THREAD)->zero_stack(); + stack->overflow_check(header_words + parameter_words, CHECK_NULL); stack->push(0); // next_frame, filled in later intptr_t *fp = stack->sp(); diff -r 540dc0858c17 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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 @@ -68,12 +68,13 @@ public: void set_last_Java_frame() { - JavaFrameAnchor *jfa = frame_anchor(); - jfa->set_last_Java_sp((intptr_t *) top_zero_frame()); + set_last_Java_frame(top_zero_frame()); } void reset_last_Java_frame() { - JavaFrameAnchor *jfa = frame_anchor(); - jfa->set_last_Java_sp(NULL); + set_last_Java_frame(NULL); + } + void set_last_Java_frame(ZeroFrame* frame) { + frame_anchor()->set_last_Java_sp((intptr_t *) frame); } private: diff -r 540dc0858c17 ports/hotspot/src/share/vm/includeDB_shark --- a/ports/hotspot/src/share/vm/includeDB_shark Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/share/vm/includeDB_shark Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ // // Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. -// Copyright 2008, 2009 Red Hat, Inc. +// Copyright 2008, 2009, 2010 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 @@ -273,6 +273,7 @@ sharkRuntime.cpp llvmHeaders.hpp sharkRuntime.cpp klassOop.hpp sharkRuntime.cpp sharkRuntime.hpp +sharkRuntime.cpp stack_.inline.hpp sharkRuntime.cpp thread.hpp sharkRuntime.hpp allocation.hpp diff -r 540dc0858c17 ports/hotspot/src/share/vm/includeDB_zero --- a/ports/hotspot/src/share/vm/includeDB_zero Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/share/vm/includeDB_zero Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ // // Copyright 2001-2009 Sun Microsystems, Inc. All Rights Reserved. -// Copyright 2009 Red Hat, Inc. +// Copyright 2009, 2010 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,8 @@ // NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! +cppInterpreter_.cpp stack_.inline.hpp + entryFrame_.hpp javaCalls.hpp entryFrame_.hpp stack_.hpp @@ -47,9 +49,20 @@ interpreterFrame_.hpp stack_.hpp interpreterFrame_.hpp thread.hpp +interpreterRT_.cpp stack_.inline.hpp + sharkFrame_.hpp methodOop.hpp sharkFrame_.hpp stack_.hpp stack_.hpp sizes.hpp +stack_.inline.hpp stack_.hpp +stack_.inline.hpp thread.hpp + +stack_.cpp interpreterRuntime.hpp +stack_.cpp stack_.hpp +stack_.cpp stack_.inline.hpp + +stubGenerator_.cpp stack_.inline.hpp + thread.hpp stack_.hpp diff -r 540dc0858c17 ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp --- a/ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp Fri May 07 10:49:00 2010 +0100 @@ -149,6 +149,7 @@ pc_offset(), target(), bci(), + true, debug_info()->create_scope_values(locarray()), debug_info()->create_scope_values(exparray()), debug_info()->create_monitor_values(monarray())); diff -r 540dc0858c17 ports/hotspot/src/share/vm/shark/sharkRuntime.cpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Wed May 05 11:28:27 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Fri May 07 10:49:00 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -195,10 +195,12 @@ void SharkRuntime::uncommon_trap(JavaThread* thread, int trap_request) { // In C2, uncommon_trap_blob creates a frame, so all the various // deoptimization functions expect to find the frame of the method - // being deopted one frame down on the stack. Create a dummy frame - // to mirror this. - ZeroStack *stack = thread->zero_stack(); - thread->push_zero_frame(FakeStubFrame::build(stack)); + // being deopted one frame down on the stack. We create a dummy + // frame to mirror this. + FakeStubFrame *stubframe = FakeStubFrame::build(thread); + if (thread->has_pending_exception()) + return; + thread->push_zero_frame(stubframe); // Initiate the trap thread->set_last_Java_frame(); @@ -214,11 +216,17 @@ int number_of_frames = urb->number_of_frames(); for (int i = 0; i < number_of_frames; i++) { intptr_t size = urb->frame_sizes()[i]; - thread->push_zero_frame(InterpreterFrame::build(stack, size)); + InterpreterFrame *frame = InterpreterFrame::build(size, thread); + if (thread->has_pending_exception()) + return; + thread->push_zero_frame(frame); } // Push another dummy frame - thread->push_zero_frame(FakeStubFrame::build(stack)); + stubframe = FakeStubFrame::build(thread); + if (thread->has_pending_exception()) + return; + thread->push_zero_frame(stubframe); // Fill in the skeleton frames thread->set_last_Java_frame(); @@ -236,10 +244,9 @@ #endif // CC_INTERP } -FakeStubFrame* FakeStubFrame::build(ZeroStack* stack) { - if (header_words > stack->available_words()) { - Unimplemented(); - } +FakeStubFrame* FakeStubFrame::build(TRAPS) { + ZeroStack *stack = ((JavaThread *) THREAD)->zero_stack(); + stack->overflow_check(header_words, CHECK_NULL); stack->push(0); // next_frame, filled in later intptr_t *fp = stack->sp(); From gbenson at icedtea.classpath.org Fri May 7 03:25:16 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Fri, 07 May 2010 10:25:16 +0000 Subject: /hg/icedtea6: Revert an accidental reversion Message-ID: changeset 6af621b7b0e6 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=6af621b7b0e6 author: Gary Benson date: Fri May 07 11:25:06 2010 +0100 Revert an accidental reversion diffstat: 2 files changed, 3 insertions(+), 10 deletions(-) ChangeLog | 4 ---- ports/hotspot/src/cpu/zero/vm/disassembler_zero.hpp | 9 +++------ diffs (41 lines): diff -r d5ebbabd7488 -r 6af621b7b0e6 ChangeLog --- a/ChangeLog Fri May 07 10:51:15 2010 +0100 +++ b/ChangeLog Fri May 07 11:25:06 2010 +0100 @@ -34,10 +34,6 @@ 2010-05-07 Gary Benson changeset aab184d452dc in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=aab184d452dc author: Gary Benson date: Fri May 07 12:02:50 2010 +0100 Remove a stray semicolon diffstat: 2 files changed, 6 insertions(+), 1 deletion(-) ChangeLog | 5 +++++ netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java | 2 +- diffs (24 lines): diff -r 6af621b7b0e6 -r aab184d452dc ChangeLog --- a/ChangeLog Fri May 07 11:25:06 2010 +0100 +++ b/ChangeLog Fri May 07 12:02:50 2010 +0100 @@ -1,3 +1,8 @@ 2010-05-07 Gary Benson + + * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: + Removed a stray semicolon. + 2010-05-07 Gary Benson * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp diff -r 6af621b7b0e6 -r aab184d452dc netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java --- a/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Fri May 07 11:25:06 2010 +0100 +++ b/netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java Fri May 07 12:02:50 2010 +0100 @@ -28,7 +28,7 @@ import java.security.AccessController; import java.security.AccessController; import java.security.Permission; import java.security.PrivilegedAction; -import java.security.SecurityPermission;; +import java.security.SecurityPermission; import java.util.PropertyPermission; import javax.swing.JWindow; From gbenson at redhat.com Fri May 7 06:09:21 2010 From: gbenson at redhat.com (Gary Benson) Date: Fri, 7 May 2010 14:09:21 +0100 Subject: RFC: PATCH: icedtea6 Zero and Shark update Message-ID: <20100507130921.GB3408@redhat.com> Hi all, Building on my commit of this morning, this patch adds the new frame anchor code to Zero and Shark to fix PR icedtea/323. It also updates Shark to use the new stack overflow code that Zero now has. Committing this will break the ARM interpreter, which needs updating. Currently last_Java_sp is set to the address of the top Zero frame wherever the frame anchor is set up. It needs changing such that last_Java_sp is set to the thread->zero_stack()->sp() (and the new field last_Java_fp gets set to what last_Java_sp used to be set to). There is a deoptimizer sefault (PR icedtea/484) which cannot be applied to icedtea6 until this patch is applied. That change will also require work on the ARM interpreter. I've kept that separate from this commit so as not to break two things at once. What are people's opinions on this? Should I commit now, or should I wait? I guess I need to hear from Ed (unless anybody else is able to make the ARM interpreter changes?) Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 07 13:07:19 2010 +0100 @@ -840,7 +840,7 @@ int callee_extra_locals = callee_locals - callee_param_count; if (interpreter_frame) { - intptr_t *locals = interpreter_frame->sp() + method->max_locals(); + intptr_t *locals = interpreter_frame->fp() + method->max_locals(); interpreterState istate = interpreter_frame->get_interpreterState(); intptr_t *monitor_base = (intptr_t*) istate; intptr_t *stack_base = monitor_base - monitor_words; diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/frame_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Fri May 07 13:07:19 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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 @@ -48,14 +48,14 @@ "sender should be next Java frame"); map->clear(); assert(map->include_argument_oops(), "should be set by clear"); - return frame(sender_sp(), sp() + 1); + return frame(zeroframe()->next(), sender_sp()); } frame frame::sender_for_nonentry_frame(RegisterMap *map) const { assert(zeroframe()->is_interpreter_frame() || zeroframe()->is_shark_frame() || zeroframe()->is_fake_stub_frame(), "wrong type of frame"); - return frame(sender_sp(), sp() + 1); + return frame(zeroframe()->next(), sender_sp()); } frame frame::sender(RegisterMap* map) const { @@ -176,8 +176,8 @@ char *valuebuf = buf + buflen; // Print each word of the frame - for (intptr_t *addr = fp(); addr <= sp(); addr++) { - int offset = sp() - addr; + for (intptr_t *addr = sp(); addr <= fp(); addr++) { + int offset = fp() - addr; // Fill in default values, then try and improve them snprintf(fieldbuf, buflen, "word[%d]", offset); diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/frame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Fri May 07 13:07:19 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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 @@ -32,17 +32,18 @@ // Constructor public: - frame(intptr_t* sp, intptr_t* fp); + frame(ZeroFrame* zeroframe, intptr_t* sp); - // The sp of a Zero frame is the address of the highest word in - // that frame. We keep track of the lowest address too, so the - // boundaries of the frame are available for debug printing. private: - intptr_t* _fp; + ZeroFrame* _zeroframe; public: + const ZeroFrame *zeroframe() const { + return _zeroframe; + } + intptr_t* fp() const { - return _fp; + return (intptr_t *) zeroframe(); } #ifdef CC_INTERP @@ -50,10 +51,6 @@ #endif // CC_INTERP public: - const ZeroFrame *zeroframe() const { - return (ZeroFrame *) sp(); - } - const EntryFrame *zero_entryframe() const { return zeroframe()->as_entry_frame(); } diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Fri May 07 13:07:19 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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,16 +26,16 @@ // Constructors inline frame::frame() { + _zeroframe = NULL; _sp = NULL; - _fp = NULL; _pc = NULL; _cb = NULL; _deopt_state = unknown; } -inline frame::frame(intptr_t* sp, intptr_t* fp) { +inline frame::frame(ZeroFrame* zf, intptr_t* sp) { + _zeroframe = zf; _sp = sp; - _fp = fp; switch (zeroframe()->type()) { case ZeroFrame::ENTRY_FRAME: _pc = StubRoutines::call_stub_return_pc(); @@ -66,7 +66,7 @@ // Accessors inline intptr_t* frame::sender_sp() const { - return (intptr_t *) zeroframe()->next(); + return fp() + 1; } inline intptr_t* frame::link() const { @@ -120,7 +120,7 @@ // we can distinguish identity and younger/older relationship. NULL // represents an invalid (incomparable) frame. inline intptr_t* frame::id() const { - return sp(); + return fp(); } inline JavaCallWrapper* frame::entry_frame_call_wrapper() const { diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Fri May 07 13:07:19 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2010 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 @@ -23,21 +23,31 @@ * */ + private: + ZeroFrame* volatile _last_Java_fp; + public: // Each arch must define reset, save, restore // These are used by objects that only care about: // 1 - initializing a new state (thread creation, javaCalls) // 2 - saving a current state (javaCalls) // 3 - restoring an old state (javaCalls) + // Note that whenever _last_Java_sp != NULL other anchor fields + // must be valid. The profiler apparently depends on this. void clear() { // clearing _last_Java_sp must be first _last_Java_sp = NULL; // fence? + _last_Java_fp = NULL; _last_Java_pc = NULL; } void copy(JavaFrameAnchor* src) { + set(src->_last_Java_sp, src->_last_Java_pc, src->_last_Java_fp); + } + + void set(intptr_t* sp, address pc, ZeroFrame* fp) { // In order to make sure the transition state is valid for "this" // We must clear _last_Java_sp before copying the rest of the new // data @@ -46,13 +56,14 @@ // previous version (pd_cache_state) don't NULL _last_Java_sp // unless the value is changing // - if (_last_Java_sp != src->_last_Java_sp) + if (_last_Java_sp != sp) _last_Java_sp = NULL; - _last_Java_pc = src->_last_Java_pc; + _last_Java_fp = fp; + _last_Java_pc = pc; // Must be last so profiler will always see valid frame if // has_last_frame() is true - _last_Java_sp = src->_last_Java_sp; + _last_Java_sp = sp; } bool walkable() { @@ -67,6 +78,10 @@ return _last_Java_sp; } - void set_last_Java_sp(intptr_t* sp) { - _last_Java_sp = sp; + ZeroFrame* last_Java_fp() const { + return _last_Java_fp; } + + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaFrameAnchor, _last_Java_fp); + } diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/stack_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.cpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.cpp Fri May 07 13:07:19 2010 +0100 @@ -26,12 +26,18 @@ #include "incls/_precompiled.incl" #include "incls/_stack_zero.cpp.incl" +int ZeroStack::suggest_size(Thread *thread) const { + assert(needs_setup(), "already set up"); + return align_size_down(abi_stack_available(thread) / 2, wordSize); +} + void ZeroStack::handle_overflow(TRAPS) { JavaThread *thread = (JavaThread *) THREAD; // Set up the frame anchor if it isn't already bool has_last_Java_frame = thread->has_last_Java_frame(); if (!has_last_Java_frame) { + intptr_t *sp = thread->zero_stack()->sp(); ZeroFrame *frame = thread->top_zero_frame(); while (frame) { if (frame->is_shark_frame()) @@ -44,13 +50,14 @@ break; } + sp = ((intptr_t *) frame) + 1; frame = frame->next(); } if (frame == NULL) fatal("unrecoverable stack overflow"); - thread->set_last_Java_frame(frame); + thread->set_last_Java_frame(frame, sp); } // Throw the exception @@ -71,3 +78,9 @@ if (!has_last_Java_frame) thread->reset_last_Java_frame(); } + +#ifndef PRODUCT +void ZeroStack::zap(int c) { + memset(_base, c, available_words() * wordSize); +} +#endif // PRODUCT diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/stack_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Fri May 07 13:07:19 2010 +0100 @@ -42,6 +42,8 @@ return _base == NULL; } + int suggest_size(Thread *thread) const; + void setup(void *mem, size_t size) { assert(needs_setup(), "already set up"); assert(!(size & WordAlignmentMask), "unaligned"); @@ -67,6 +69,9 @@ _sp = new_sp; } + int total_words() const { + return _top - _base; + } int available_words() const { return _sp - _base; } @@ -89,12 +94,16 @@ int shadow_pages_size() const { return _shadow_pages_size; } + int abi_stack_available(Thread *thread) const; public: void overflow_check(int required_words, TRAPS); static void handle_overflow(TRAPS); public: + void zap(int c) PRODUCT_RETURN; + + public: static ByteSize base_offset() { return byte_offset_of(ZeroStack, _base); } diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp Fri May 07 13:07:19 2010 +0100 @@ -25,19 +25,24 @@ // This function should match SharkStack::CreateStackOverflowCheck inline void ZeroStack::overflow_check(int required_words, TRAPS) { - JavaThread *thread = (JavaThread *) THREAD; - // Check the Zero stack - if (required_words > available_words()) { + if (available_words() < required_words) { handle_overflow(THREAD); return; } // Check the ABI stack - address stack_top = thread->stack_base() - thread->stack_size(); - int free_stack = ((address) &stack_top) - stack_top; - if (free_stack < shadow_pages_size()) { + if (abi_stack_available(THREAD) < 0) { handle_overflow(THREAD); return; } } + +// This method returns the amount of ABI stack available for us +// to use under normal circumstances. Note that the returned +// value can be negative. +inline int ZeroStack::abi_stack_available(Thread *thread) const { + int stack_used = thread->stack_base() - (address) &stack_used; + int stack_free = thread->stack_size() - stack_used; + return stack_free - shadow_pages_size(); +} diff -r aab184d452dc ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Fri May 07 13:07:19 2010 +0100 @@ -51,10 +51,7 @@ // Set up the stack if necessary bool stack_needs_teardown = false; if (stack->needs_setup()) { - size_t stack_used = thread->stack_base() - (address) &stack_used; - size_t stack_free = thread->stack_size() - stack_used; - size_t zero_stack_size = align_size_down(stack_free / 2, wordSize); - + size_t zero_stack_size = stack->suggest_size(thread); stack->setup(alloca(zero_stack_size), zero_stack_size); stack_needs_teardown = true; } diff -r aab184d452dc ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri May 07 13:07:19 2010 +0100 @@ -68,19 +68,30 @@ public: void set_last_Java_frame() { - set_last_Java_frame(top_zero_frame()); + set_last_Java_frame(top_zero_frame(), zero_stack()->sp()); } void reset_last_Java_frame() { - set_last_Java_frame(NULL); + frame_anchor()->zap(); } - void set_last_Java_frame(ZeroFrame* frame) { - frame_anchor()->set_last_Java_sp((intptr_t *) frame); + void set_last_Java_frame(ZeroFrame* fp, intptr_t* sp) { + frame_anchor()->set(sp, NULL, fp); + } + + public: + ZeroFrame* last_Java_fp() { + return frame_anchor()->last_Java_fp(); } private: frame pd_last_frame() { assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); - return frame(last_Java_sp(), zero_stack()->sp()); + return frame(last_Java_fp(), last_Java_sp()); + } + + public: + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaThread, _anchor) + + JavaFrameAnchor::last_Java_fp_offset(); } public: diff -r aab184d452dc ports/hotspot/src/share/vm/shark/sharkBuilder.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 07 13:07:19 2010 +0100 @@ -319,13 +319,17 @@ return make_function((address) SharedRuntime::OSR_migration_end, "C", "v"); } -// Uncommon trap +// Semi-VM calls + +Value* SharkBuilder::throw_StackOverflowError() { + return make_function((address) ZeroStack::handle_overflow, "T", "v"); +} Value* SharkBuilder::uncommon_trap() { return make_function((address) SharkRuntime::uncommon_trap, "Ti", "v"); } -// Native-Java transition. +// Native-Java transition Value* SharkBuilder::check_special_condition_for_native_trans() { return make_function( diff -r aab184d452dc ports/hotspot/src/share/vm/shark/sharkBuilder.hpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 07 13:07:19 2010 +0100 @@ -125,12 +125,13 @@ llvm::Value* unsafe_field_offset_to_byte_offset(); llvm::Value* osr_migration_end(); - // Intrinsics and external functions, part 3: Uncommon trap. - // This is a special case in that it is invoked like a non-VM - // call but it does VM call stuff. This is acceptable so long - // as the method that calls uncommon_trap returns to its caller - // immediately that uncommon_trap returns. + // Intrinsics and external functions, part 3: semi-VM calls. + // These are special cases that do VM call stuff but are invoked + // as though they were normal calls. This is acceptable so long + // as the method that calls them returns to its immediately that + // the semi VM call returns. public: + llvm::Value* throw_StackOverflowError(); llvm::Value* uncommon_trap(); // Intrinsics and external functions, part 4: Native-Java transition. diff -r aab184d452dc ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp --- a/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Fri May 07 13:07:19 2010 +0100 @@ -99,7 +99,7 @@ builder()->CreateStore( builder()->CreateInlineOop( JNIHandles::make_local( - target()->method_holder()->klass_part()->java_mirror())), + target()->method_holder()->klass_part()->java_mirror())), oop_tmp_slot()); param_types.push_back(box_type); diff -r aab184d452dc ports/hotspot/src/share/vm/shark/sharkStack.cpp --- a/ports/hotspot/src/share/vm/shark/sharkStack.cpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkStack.cpp Fri May 07 13:07:19 2010 +0100 @@ -28,7 +28,9 @@ using namespace llvm; -void SharkStack::initialize(Value* method, bool setup_sp_and_method) { +void SharkStack::initialize(Value* method) { + bool setup_sp_and_method = (method != NULL); + int locals_words = max_locals(); int extra_locals = locals_words - arg_size(); int header_words = SharkFrame::header_words; @@ -42,7 +44,7 @@ Value *stack_pointer = builder()->CreateSub( CreateLoadStackPointer(), LLVMValue::intptr_constant((frame_words + extra_locals) * wordSize)); - CreateStackOverflowCheck(stack_pointer, method); + CreateStackOverflowCheck(stack_pointer); if (setup_sp_and_method) CreateStoreStackPointer(stack_pointer); @@ -94,61 +96,48 @@ builder()->CreatePtrToInt(fp, SharkType::intptr_type())); } -// Check that a stack overflow is not imminent, bailing to the -// interpreter to throw a StackOverflowError if one is while -// we still have some stack left to do it with. This function -// should mirror CppInterpreter::stack_overflow_imminent. -void SharkStack::CreateStackOverflowCheck(Value* sp, Value* method) { - BasicBlock *overflow = CreateBlock("overflow_imminent"); +// This function should match ZeroStack::overflow_check +void SharkStack::CreateStackOverflowCheck(Value* sp) { + BasicBlock *zero_ok = CreateBlock("zero_stack_ok"); + BasicBlock *overflow = CreateBlock("stack_overflow"); BasicBlock *abi_ok = CreateBlock("abi_stack_ok"); - BasicBlock *zero_ok = CreateBlock("zero_stack_ok"); + + // Check the Zero stack + builder()->CreateCondBr( + builder()->CreateICmpULT(sp, stack_base()), + overflow, zero_ok); // Check the ABI stack - CreateCheckStack( - builder()->CreateSub( - builder()->CreateValueOfStructEntry( - thread(), - Thread::stack_base_offset(), - SharkType::intptr_type(), - "abi_base"), - builder()->CreateValueOfStructEntry( - thread(), - Thread::stack_size_offset(), - SharkType::intptr_type(), - "abi_size")), + builder()->SetInsertPoint(zero_ok); + Value *stack_top = builder()->CreateSub( + builder()->CreateValueOfStructEntry( + thread(), + Thread::stack_base_offset(), + SharkType::intptr_type(), + "abi_base"), + builder()->CreateValueOfStructEntry( + thread(), + Thread::stack_size_offset(), + SharkType::intptr_type(), + "abi_size")); + Value *free_stack = builder()->CreateSub( builder()->CreatePtrToInt( builder()->CreateGetFrameAddress(), SharkType::intptr_type(), - "abi_pointer"), + "abi_sp"), + stack_top); + builder()->CreateCondBr( + builder()->CreateICmpULT( + free_stack, + LLVMValue::intptr_constant(StackShadowPages * os::vm_page_size())), overflow, abi_ok); - // Check the Zero stack - builder()->SetInsertPoint(abi_ok); - CreateCheckStack(stack_base(), sp, overflow, zero_ok); - - // Bail to the interpreter if an overflow is imminent + // Handle overflows builder()->SetInsertPoint(overflow); - builder()->CreateCall3( - builder()->CreateIntToPtr( - LLVMValue::intptr_constant((intptr_t) interpreter_entry_point()), - PointerType::getUnqual(SharkType::entry_point_type())), - method, - LLVMValue::intptr_constant(0), - thread()); + builder()->CreateCall(builder()->throw_StackOverflowError(), thread()); builder()->CreateRetVoid(); - builder()->SetInsertPoint(zero_ok); -} - -void SharkStack::CreateCheckStack(Value* base, - Value* sp, - BasicBlock* overflow, - BasicBlock* no_overflow) { - builder()->CreateCondBr( - builder()->CreateICmpULT( - builder()->CreateSub(sp, base), - LLVMValue::intptr_constant(StackShadowPages * os::vm_page_size())), - overflow, no_overflow); + builder()->SetInsertPoint(abi_ok); } Value* SharkStack::CreatePopFrame(int result_slots) { @@ -202,12 +191,12 @@ // be set during each decache, so it is not necessary to do them // at the time the frame is created. However, we set them for // non-PRODUCT builds to make crash dumps easier to understand. - initialize(method, NOT_PRODUCT(true) PRODUCT_ONLY(false)); + initialize(PRODUCT_ONLY(NULL) NOT_PRODUCT(method)); } SharkStackWithNativeFrame::SharkStackWithNativeFrame(SharkNativeWrapper* wrp, Value* method) : SharkStack(wrp), _wrapper(wrp) { - initialize(method, true); + initialize(method); } int SharkStackWithNormalFrame::arg_size() const { @@ -251,3 +240,24 @@ address SharkStackWithNativeFrame::interpreter_entry_point() const { return (address) CppInterpreter::native_entry; } + +#ifndef PRODUCT +void SharkStack::CreateAssertLastJavaSPIsNull() const { +#ifdef ASSERT + BasicBlock *fail = CreateBlock("assert_failed"); + BasicBlock *pass = CreateBlock("assert_ok"); + + builder()->CreateCondBr( + builder()->CreateICmpEQ( + builder()->CreateLoad(last_Java_sp_addr()), + LLVMValue::intptr_constant(0)), + pass, fail); + + builder()->SetInsertPoint(fail); + builder()->CreateShouldNotReachHere(__FILE__, __LINE__); + builder()->CreateUnreachable(); + + builder()->SetInsertPoint(pass); +#endif // ASSERT +} +#endif // !PRODUCT diff -r aab184d452dc ports/hotspot/src/share/vm/shark/sharkStack.hpp --- a/ports/hotspot/src/share/vm/shark/sharkStack.hpp Fri May 07 12:02:50 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkStack.hpp Fri May 07 13:07:19 2010 +0100 @@ -40,16 +40,10 @@ : SharkCompileInvariants(parent) {} protected: - void initialize(llvm::Value* method, bool setup_sp_and_method); + void initialize(llvm::Value* method); protected: - void CreateStackOverflowCheck(llvm::Value* sp, llvm::Value* method); - - private: - void CreateCheckStack(llvm::Value* base, - llvm::Value* sp, - llvm::BasicBlock* overflow, - llvm::BasicBlock* no_overflow); + void CreateStackOverflowCheck(llvm::Value* sp); // Properties of the method being compiled protected: @@ -114,24 +108,39 @@ // Interface with the frame anchor private: - llvm::Value* frame_anchor_addr() const { + llvm::Value* last_Java_sp_addr() const { return builder()->CreateAddressOfStructEntry( thread(), JavaThread::last_Java_sp_offset(), llvm::PointerType::getUnqual(SharkType::intptr_type()), - "frame_anchor_addr"); + "last_Java_sp_addr"); + } + llvm::Value* last_Java_fp_addr() const { + return builder()->CreateAddressOfStructEntry( + thread(), + JavaThread::last_Java_fp_offset(), + llvm::PointerType::getUnqual(SharkType::intptr_type()), + "last_Java_fp_addr"); } public: - llvm::StoreInst* CreateSetLastJavaFrame() { - return builder()->CreateStore( - CreateLoadFramePointer(), frame_anchor_addr()); + void CreateSetLastJavaFrame() { + // Note that whenever _last_Java_sp != NULL other anchor fields + // must be valid. The profiler apparently depends on this. + NOT_PRODUCT(CreateAssertLastJavaSPIsNull()); + builder()->CreateStore(CreateLoadFramePointer(), last_Java_fp_addr()); + // XXX There's last_Java_pc as well, but I don't think anything uses it + // Also XXX: should we fence here? Zero doesn't... + builder()->CreateStore(CreateLoadStackPointer(), last_Java_sp_addr()); + // Also also XXX: we could probably cache the sp (and the fp we know??) } - llvm::StoreInst* CreateResetLastJavaFrame() { - return builder()->CreateStore( - LLVMValue::intptr_constant(0), frame_anchor_addr()); + void CreateResetLastJavaFrame() { + builder()->CreateStore(LLVMValue::intptr_constant(0), last_Java_sp_addr()); } + private: + void CreateAssertLastJavaSPIsNull() const PRODUCT_RETURN; + // Our method's frame private: llvm::Value* _frame; From andrew at icedtea.classpath.org Fri May 7 08:41:55 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 07 May 2010 15:41:55 +0000 Subject: /hg/icedtea: 2 new changesets Message-ID: changeset 897aa6e8c9b3 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=897aa6e8c9b3 author: Xerxes R?nby date: Mon Nov 09 12:55:30 2009 +0100 Adjust SharkMemoryManager to support LLVM 2.7svn rev 84651. 2009-11-09 Xerxes R?nby * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp, ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: New methods deallocateExceptionTable and deallocateFunctionBody dependent on the llvm version. Made deallocateMemForFunction method dependent on the llvm version. changeset 9ccd1c960e63 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=9ccd1c960e63 author: Xerxes R?nby date: Mon Nov 09 13:07:15 2009 +0100 Implement -XX:SharkPrintAsmOf using LLVM 2.7svn r85395 debug API. 2009-11-09 Xerxes R?nby * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp, Include llvm/Support/Debug.h dependent on llvm version. Made Include llvm/Support/CommandLine.h dependent on llvm version. * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Implement -XX:SharkPrintAsmOf using LLVM 2.7svn r85395 debug API. diffstat: 5 files changed, 53 insertions(+) ChangeLog | 16 +++++++++++++++ ports/hotspot/src/share/vm/shark/llvmHeaders.hpp | 4 +++ ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 16 +++++++++++++++ ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp | 12 +++++++++++ ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp | 5 ++++ diffs (113 lines): diff -r 1529c5d1b41f -r 9ccd1c960e63 ChangeLog --- a/ChangeLog Thu May 06 15:22:07 2010 +0100 +++ b/ChangeLog Mon Nov 09 13:07:15 2009 +0100 @@ -1,3 +1,19 @@ 2010-05-06 Andrew John Hughes + + * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp, + Include llvm/Support/Debug.h dependent on llvm version. + Made Include llvm/Support/CommandLine.h dependent on llvm version. + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: + Implement -XX:SharkPrintAsmOf using LLVM 2.7svn r85395 debug API. + +2009-11-09 Xerxes R??nby + + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp, + ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: + New methods deallocateExceptionTable and deallocateFunctionBody + dependent on the llvm version. + Made deallocateMemForFunction method dependent on the llvm version. + 2010-05-06 Andrew John Hughes * Makefile.am: Remove euctw patch. diff -r 1529c5d1b41f -r 9ccd1c960e63 ports/hotspot/src/share/vm/shark/llvmHeaders.hpp --- a/ports/hotspot/src/share/vm/shark/llvmHeaders.hpp Thu May 06 15:22:07 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/llvmHeaders.hpp Mon Nov 09 13:07:15 2009 +0100 @@ -44,7 +44,11 @@ #endif #include #include +#if SHARK_LLVM_VERSION < 27 #include +#else +#include +#endif #include diff -r 1529c5d1b41f -r 9ccd1c960e63 ports/hotspot/src/share/vm/shark/sharkCompiler.cpp --- a/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp Thu May 06 15:22:07 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp Mon Nov 09 13:07:15 2009 +0100 @@ -132,6 +132,7 @@ void SharkCompiler::compile_method(ciEnv // Compile to native code #ifndef PRODUCT +#if SHARK_LLVM_VERSION < 27 #ifdef X86 if (SharkPrintAsmOf != NULL) { std::vector args; @@ -144,6 +145,21 @@ void SharkCompiler::compile_method(ciEnv cl::ParseCommandLineOptions(args.size() - 1, (char **) &args[0]); } #endif // X86 +#else + if (SharkPrintAsmOf != NULL) { + if (!fnmatch(SharkPrintAsmOf, name, 0)) { +#ifdef X86 + llvm::SetCurrentDebugType("x86-emitter"); +#else + llvm::SetCurrentDebugType("jit"); +#endif // X86 + llvm::DebugFlag=true; + } else { + llvm::SetCurrentDebugType(""); + llvm::DebugFlag=false; + } + } +#endif #endif // !PRODUCT memory_manager()->set_entry_for_function(function, entry); module()->getFunctionList().push_back(function); diff -r 1529c5d1b41f -r 9ccd1c960e63 ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp --- a/ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp Thu May 06 15:22:07 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp Mon Nov 09 13:07:15 2009 +0100 @@ -86,10 +86,22 @@ void SharkMemoryManager::setMemoryExecut mm()->setMemoryExecutable(); } +#if SHARK_LLVM_VERSION >= 27 +void SharkMemoryManager::deallocateExceptionTable(void *ptr) +{ + mm()->deallocateExceptionTable(ptr); +} + +void SharkMemoryManager::deallocateFunctionBody(void *ptr) +{ + mm()->deallocateFunctionBody(ptr); +} +#else void SharkMemoryManager::deallocateMemForFunction(const Function* F) { return mm()->deallocateMemForFunction(F); } +#endif #if SHARK_LLVM_VERSION >= 26 uint8_t* SharkMemoryManager::allocateGlobal(uintptr_t Size, unsigned int Alignment) diff -r 1529c5d1b41f -r 9ccd1c960e63 ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp --- a/ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp Thu May 06 15:22:07 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp Mon Nov 09 13:07:15 2009 +0100 @@ -79,7 +79,12 @@ class SharkMemoryManager : public llvm:: #endif void setMemoryWritable(); void setMemoryExecutable(); +#if SHARK_LLVM_VERSION >= 27 + void deallocateExceptionTable(void *ptr); + void deallocateFunctionBody(void *ptr); +#else void deallocateMemForFunction(const llvm::Function* F); +#endif #if SHARK_LLVM_VERSION >= 25 unsigned char *allocateSpace(intptr_t Size, From dbhole at icedtea.classpath.org Fri May 7 13:41:20 2010 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Fri, 07 May 2010 20:41:20 +0000 Subject: /hg/icedtea6: Set context classloader for all threads in an appl... Message-ID: changeset 7cdfd5cb14cf in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=7cdfd5cb14cf author: Deepak Bhole date: Fri May 07 16:41:14 2010 -0400 Set context classloader for all threads in an applet's threadgroup diffstat: 2 files changed, 20 insertions(+), 17 deletions(-) ChangeLog | 9 +++++++++ netx/net/sourceforge/jnlp/Launcher.java | 28 +++++++++++----------------- diffs (77 lines): diff -r aab184d452dc -r 7cdfd5cb14cf ChangeLog --- a/ChangeLog Fri May 07 12:02:50 2010 +0100 +++ b/ChangeLog Fri May 07 16:41:14 2010 -0400 @@ -1,3 +1,12 @@ 2010-05-07 Gary Benson + + * netx/net/sourceforge/jnlp/Launcher.java + (setContextClassLoaderForAllThreads): Change to set context CL only for + given threadgroup. + (launchApplication): Supply threadgroup to + setContextClassLoaderForAllThreads. + (createApplet): Same. + 2010-05-07 Gary Benson * netx/net/sourceforge/jnlp/runtime/JNLPSecurityManager.java: diff -r aab184d452dc -r 7cdfd5cb14cf netx/net/sourceforge/jnlp/Launcher.java --- a/netx/net/sourceforge/jnlp/Launcher.java Fri May 07 12:02:50 2010 +0100 +++ b/netx/net/sourceforge/jnlp/Launcher.java Fri May 07 16:41:14 2010 -0400 @@ -442,7 +442,7 @@ public class Launcher { Method main = mainClass.getDeclaredMethod("main", new Class[] {String[].class} ); String args[] = file.getApplication().getArguments(); - setContextClassLoaderForAllThreads(app.getClassLoader()); + setContextClassLoaderForAllThreads(app.getThreadGroup(), app.getClassLoader()); if (splashScreen != null) { if (splashScreen.isSplashScreenValid()) { @@ -464,30 +464,24 @@ public class Launcher { } /** - * Set the classloader as the context classloader for all threads. This is - * required to make some applications work. For example, an application that - * provides a custom Swing LnF may ask the swing thread to load resources - * from their JNLP, which would only work if the Swing thread knows about - * the JNLPClassLoader. + * Set the classloader as the context classloader for all threads in + * the given threadgroup. This is required to make some applications + * work. For example, an application that provides a custom Swing LnF + * may ask the swing thread to load resources from their JNLP, which + * would only work if the Swing thread knows about the JNLPClassLoader. * + * @param tg The threadgroup for which the context classloader should be set * @param classLoader the classloader to set as the context classloader */ - private void setContextClassLoaderForAllThreads(ClassLoader classLoader) { - ThreadMXBean threadBean = ManagementFactory.getThreadMXBean(); - ThreadGroup root; - - root = Thread.currentThread().getThreadGroup(); - while (root.getParent() != null) { - root = root.getParent(); - } + private void setContextClassLoaderForAllThreads(ThreadGroup tg, ClassLoader classLoader) { /* be prepared for change in thread size */ - int threadCountGuess = threadBean.getThreadCount(); + int threadCountGuess = tg.activeCount(); Thread[] threads; do { threadCountGuess = threadCountGuess * 2; threads = new Thread[threadCountGuess]; - root.enumerate(threads, true); + tg.enumerate(threads, true); } while (threads[threadCountGuess-1] != null); @@ -595,7 +589,7 @@ public class Launcher { group.setApplication(appletInstance); loader.setApplication(appletInstance); - setContextClassLoaderForAllThreads(appletInstance.getClassLoader()); + setContextClassLoaderForAllThreads(appletInstance.getThreadGroup(), appletInstance.getClassLoader()); return appletInstance; } From dbhole at icedtea.classpath.org Fri May 7 13:58:26 2010 From: dbhole at icedtea.classpath.org (dbhole at icedtea.classpath.org) Date: Fri, 07 May 2010 20:58:26 +0000 Subject: /hg/icedtea6: Fix IcedTea bz#436 - Close all applet threads on exit Message-ID: changeset 373a443db017 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=373a443db017 author: Deepak Bhole date: Fri May 07 16:57:27 2010 -0400 Fix IcedTea bz#436 - Close all applet threads on exit diffstat: 2 files changed, 13 insertions(+), 2 deletions(-) ChangeLog | 6 ++++++ plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 9 +++++++-- diffs (46 lines): diff -r 7cdfd5cb14cf -r 373a443db017 ChangeLog --- a/ChangeLog Fri May 07 16:41:14 2010 -0400 +++ b/ChangeLog Fri May 07 16:57:27 2010 -0400 @@ -1,3 +1,9 @@ 2010-05-07 Deepak Bhole + + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java + (handleMessage): Don't print stack trace on InterruptedException. + (appletClose): Kill misbehaving applets that don't shut down properly. + 2010-05-07 Deepak Bhole * netx/net/sourceforge/jnlp/Launcher.java diff -r 7cdfd5cb14cf -r 373a443db017 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Fri May 07 16:41:14 2010 -0400 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Fri May 07 16:57:27 2010 -0400 @@ -1,4 +1,4 @@ -/* VoidPluginCallRequest -- represent Java-to-JavaScript requests +/* PluginAppletViewer -- Handles embedding of the applet panel Copyright (C) 2008 Red Hat This file is part of IcedTea. @@ -735,7 +735,7 @@ import com.sun.jndi.toolkit.url.UrlUtil; Thread.sleep(50); wait += 50; } catch (InterruptedException ie) { - ie.printStackTrace(); + // just wait } } @@ -1605,9 +1605,14 @@ import com.sun.jndi.toolkit.url.UrlUtil; { public void run() { + ThreadGroup tg = ((JNLPClassLoader) p.applet.getClass().getClassLoader()).getApplication().getThreadGroup(); + appletShutdown(p); appletPanels.removeElement(p); dispose(); + + if (tg.activeCount() > 0) + tg.stop(); if (countApplets() == 0) { appletSystemExit(); From bugzilla-daemon at icedtea.classpath.org Sat May 8 13:00:19 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 08 May 2010 20:00:19 +0000 Subject: [Bug 486] New: NetX UTF-16 .jnlp net.sourceforge.jnlp.ParseException Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=486 Summary: NetX UTF-16 .jnlp net.sourceforge.jnlp.ParseException Product: IcedTea Version: 6-hg Platform: all URL: http://phet.colorado.edu/simulations/sims.php?sim=Circui t_Construction_Kit_DC_Only OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: NetX AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se testcase: javaws http://phet.colorado.edu/sims/circuit-construction-kit/circuit-construction-kit-dc_en.jnlp netx: Unexpected net.sourceforge.jnlp.ParseException: Invalid XML document syntax. at net.sourceforge.jnlp.Parser.getRootNode(Parser.java:1196) The testcase jnlp file are encoded with UTF-16. The XML contents of the jnlp file pass the W3 XML validator service. This bug makes it impossible to launch any of the http://phet.colorado.edu/simulations/ physics simulations online. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Sat May 8 13:17:02 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 08 May 2010 20:17:02 +0000 Subject: [Bug 294] JavaFX sample not starting as applet due to ZipException, runs fine with javaws or java Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=294 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME ------- Comment #5 from xerxes at zafena.se 2010-05-08 20:17 ------- The http://javafx.com/samples/WhiteOutGame/ loads and runs fine using IcedTea NPR Web Browser Plugin (using IcedTea6 1.8 (6b18-1.8-0ubuntu1)) Im closing this bug with a worksforme. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 10 02:14:41 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 10 May 2010 09:14:41 +0000 Subject: [Bug 487] New: Shark Unable to Stroke shape (private data) Exception Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=487 Summary: Shark Unable to Stroke shape (private data) Exception Product: IcedTea Version: 6-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Shark AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Testcase: wget http://93.83.133.214/jgears2/JGears2.jar xerxes at xerxes:/sd/test$ java -XX:+SharkTraceInstalls -jar JGears2.jar Sourcecode to testcase: http://93.83.133.214/jgears2/JGears2.java Output: XRender Pipeline [0x680c4010-0x680c4120): java.util.concurrent.locks.AbstractOwnableSynchronizer::setExclusiveOwnerThread (272 bytes code) [0x680c4160-0x680c70f8): sun.java2d.pipe.AlphaPaintPipe::renderPathTile (12184 bytes code) [0x680c7130-0x680c7240): java.util.concurrent.locks.AbstractQueuedSynchronizer::getState (272 bytes code) [0x680c7280-0x680c7398): java.util.concurrent.locks.AbstractOwnableSynchronizer::getExclusiveOwnerThread (280 bytes code) [0x680c73d0-0x680c74f8): java.util.concurrent.locks.AbstractQueuedSynchronizer::setState (296 bytes code) [0x680c7530-0x680c7710): java.util.concurrent.locks.AbstractQueuedSynchronizer::compareAndSetState (480 bytes code) [0x680c7750-0x680c78ac): java.util.concurrent.locks.ReentrantLock::lock (348 bytes code) [0x680c78f0-0x680c7a50): java.util.concurrent.locks.ReentrantLock::unlock (352 bytes code) [0x680c7a90-0x680c7c80): java.util.concurrent.locks.ReentrantLock$NonfairSync::lock (496 bytes code) [0x680c7cc0-0x680c7f60): java.util.concurrent.locks.AbstractQueuedSynchronizer::release (672 bytes code) [0x680c7fa0-0x680c815c): java.util.concurrent.locks.ReentrantLock$Sync::tryRelease (444 bytes code) [0x680c81a0-0x680c82f4): sun.awt.SunToolkit::awtUnlock (340 bytes code) [0x680c8330-0x680c8484): sun.awt.SunToolkit::awtLock (340 bytes code) [0x680c84c0-0x680c85d0): java.awt.image.Raster::getWidth (272 bytes code) [0x680c8610-0x680c8720): java.awt.image.Raster::getHeight (272 bytes code) [0x680c8760-0x680c9350): java.awt.ColorPaintContext::getRaster (3056 bytes code) [0x680c9390-0x680c95a0): sun.java2d.loops.Blit$GeneralMaskBlit::Blit (528 bytes code) [0x680c95e0-0x680c96f8): java.lang.ref.Reference::get (280 bytes code) [0x680c9730-0x680ca018): java.awt.image.SinglePixelPackedSampleModel:: (2280 bytes code) [0x680ca050-0x680ca268): sun.java2d.pisces.PiscesMath::lsqrt (536 bytes code) [0x680ca2a0-0x680ca4a4): sun.java2d.pipe.SpanShapeRenderer$Composite::renderBox (516 bytes code) [0x680ca4e0-0x680cacec): sun.java2d.pipe.SpanShapeRenderer::spanClipLoop (2060 bytes code) [0x680cad30-0x680cc4f0): java.awt.geom.AffineTransform::transform (6080 bytes code) [0x680cc530-0x680cc65c): sun.java2d.pisces.PiscesRenderingEngine::S15_16ToFloat (300 bytes code) [0x680cc6a0-0x680cc808): java.lang.Object:: (360 bytes code) [0x680cc840-0x680cc9a4): sun.java2d.pisces.Stroker::emitLineTo (356 bytes code) [0x680cc9e0-0x680ccba4): sun.java2d.pisces.PiscesRenderingEngine$2::lineTo (452 bytes code) java.lang.NullPointerException: private data at sun.java2d.pipe.ShapeSpanIterator.lineTo(Native Method) at sun.java2d.pisces.PiscesRenderingEngine$2.lineTo(PiscesRenderingEngine.java:152) at sun.java2d.pisces.Stroker.emitLineTo(Stroker.java:742) at sun.java2d.pisces.Stroker.close(Stroker.java:653) at sun.java2d.pisces.PiscesRenderingEngine.pathTo(PiscesRenderingEngine.java:249) at sun.java2d.pisces.PiscesRenderingEngine.strokeTo(PiscesRenderingEngine.java:231) at sun.java2d.pisces.PiscesRenderingEngine.strokeTo(PiscesRenderingEngine.java:181) at sun.java2d.pisces.PiscesRenderingEngine.strokeTo(PiscesRenderingEngine.java:145) at sun.java2d.pipe.LoopPipe.getStrokeSpans(LoopPipe.java:274) at sun.java2d.x11.X11Renderer.draw(X11Renderer.java:343) at sun.java2d.pipe.ValidatePipe.draw(ValidatePipe.java:154) at sun.java2d.SunGraphics2D.draw(SunGraphics2D.java:2392) at JGears2.renderShape(JGears2.java:216) at JGears2.renderScene(JGears2.java:142) at JGears2$3.run(JGears2.java:98) Exception in thread "Thread-1" java.lang.InternalError: Unable to Stroke shape (private data) at sun.java2d.pipe.LoopPipe.getStrokeSpans(LoopPipe.java:281) at sun.java2d.x11.X11Renderer.draw(X11Renderer.java:343) at sun.java2d.pipe.ValidatePipe.draw(ValidatePipe.java:154) at sun.java2d.SunGraphics2D.draw(SunGraphics2D.java:2392) at JGears2.renderShape(JGears2.java:216) at JGears2.renderScene(JGears2.java:142) at JGears2$3.run(JGears2.java:98) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From gbenson at icedtea.classpath.org Mon May 10 03:44:37 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Mon, 10 May 2010 10:44:37 +0000 Subject: /hg/icedtea6: Backport new frame anchor and stack overflow code ... Message-ID: changeset 9bc0c7b7f327 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=9bc0c7b7f327 author: Gary Benson date: Mon May 10 11:44:31 2010 +0100 Backport new frame anchor and stack overflow code for Zero and Shark diffstat: 17 files changed, 270 insertions(+), 118 deletions(-) ChangeLog | 80 +++++++ ports/hotspot/make/linux/makefiles/zeroshark.make | 3 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 2 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp | 10 ports/hotspot/src/cpu/zero/vm/frame_zero.hpp | 19 - ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp | 12 - ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp | 27 +- ports/hotspot/src/cpu/zero/vm/stack_zero.cpp | 15 + ports/hotspot/src/cpu/zero/vm/stack_zero.hpp | 9 ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp | 17 + ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp | 5 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp | 21 + ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 8 ports/hotspot/src/share/vm/shark/sharkBuilder.hpp | 11 - ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp | 2 ports/hotspot/src/share/vm/shark/sharkStack.cpp | 106 +++++----- ports/hotspot/src/share/vm/shark/sharkStack.hpp | 41 ++- diffs (truncated from 776 to 500 lines): diff -r 373a443db017 -r 9bc0c7b7f327 ChangeLog --- a/ChangeLog Fri May 07 16:57:27 2010 -0400 +++ b/ChangeLog Mon May 10 11:44:31 2010 +0100 @@ -1,3 +1,83 @@ 2010-05-07 Deepak Bhole + + PR icedtea/323 + * ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp + (JavaFrameAnchor::_last_Java_fp): New field. + (JavaFrameAnchor::clear): Also clear the above. + (JavaFrameAnchor::set): New method. + (JavaFrameAnchor::copy): Use the above. + (JavaFrameAnchor::set_lat_Java_sp): Removed. + (JavaFrameAnchor::last_Java_fp): New method. + (JavaFrameAnchor::last_Java_fp_offset): Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::last_Java_fp): Likewise. + (JavaThread::last_Java_fp_offset): Likewise. + (JavaThread::set_last_Java_frame): Use new new frame anchor code. + (JavaThread::reset_last_Java_frame): Likewise. + (JavaThread::pd_last_frame): Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp + (frame::frame): Flipped arguments. + (frame::_fp): Replaced with... + (frame::_zeroframe): New field. + (frame::fp): Updated. + (frame::zeroframe): Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp + (frame::frame): Likewise. + (frame::sender_sp): Likewise. + (frame::id): Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp + (frame::sender_for_entry_frame): Likewise. + (frame::sender_for_nonentry_frame): Likewise. + (frame::zero_print_on_error): Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (AbstractInterpreter::layout_activation): Use new frame + anchor code. + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp + (ZeroStack::suggest_size): New method. + (ZeroStack::total_words): Likewise. + (ZeroStack::abi_stack_available): Likewise. + (ZeroStack::zap): Likewise. + * ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp + (ZeroStack::abi_stack_available): New method. + (ZeroStack::overflow_check): Use the above. + * ports/hotspot/src/cpu/zero/vm/stack_zero.cpp + (ZeroStack::suggest_size): New method. + (ZeroStack::zap): Likewise. + (ZeroStack::handle_overflow): Use new frame anchor code. + * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp + (StubGenerator::call_stub): Use ZeroStack::suggest_size. + + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp + (SharkBuilder::throw_StackOverflowError): New method. + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp + (SharkBuilder::throw_StackOverflowError): Likewise. + * ports/hotspot/src/share/vm/shark/sharkStack.hpp + (SharkStack::initialize): Removed argument. + (SharkStack::CreateStackOverflowCheck): Updated. + (SharkStack::CreateCheckStack): Removed method. + (SharkStack::frame_anchor_addr): Likewise. + (SharkStack::last_Java_sp_addr): New method. + (SharkStack::last_Java_fp_addr): New method. + (SharkStack::CreateSetLastJavaFrame): Use new frame anchor code. + (SharkStack::CreateResetLastJavaFrame): Likewise. + (SharkStack::CreateAssertLastJavaSPIsNull): New method. + * ports/hotspot/src/share/vm/shark/sharkStack.cpp + (SharkStack::initialize): Updated for new stack overflow code. + (SharkStack::CreateStackOverflowCheck): Likewise. + (SharkStack::CreateCheckStack): Removed. + (SharkStackWithNormalFrame::SharkStackWithNormalFrame): Updated + for new stack overflow code. + (SharkStackWithNativeFrame::SharkStackWithNativeFrame): Likewise. + (SharkStack::CreateAssertLastJavaSPIsNull): New method. + + * ports/hotspot/make/linux/makefiles/zeroshark.make + (CFLAGS): Remove -DHOTSPOT_ASM until the ARM interpreter + and JIT are updated to use the new frame anchor code. + + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp + (SharkNativeWrapper::initialize): Whitespace fix. + 2010-05-07 Deepak Bhole * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/make/linux/makefiles/zeroshark.make --- a/ports/hotspot/make/linux/makefiles/zeroshark.make Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/make/linux/makefiles/zeroshark.make Mon May 10 11:44:31 2010 +0100 @@ -31,7 +31,8 @@ Obj_Files += cppInterpreter_arm.o Obj_Files += cppInterpreter_arm.o Obj_Files += thumb2.o -CFLAGS += -DHOTSPOT_ASM +#XXX disabled until it has the updated frame anchor code +#CFLAGS += -DHOTSPOT_ASM %.o: %.S @echo Assembling $< diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon May 10 11:44:31 2010 +0100 @@ -840,7 +840,7 @@ int AbstractInterpreter::layout_activati int callee_extra_locals = callee_locals - callee_param_count; if (interpreter_frame) { - intptr_t *locals = interpreter_frame->sp() + method->max_locals(); + intptr_t *locals = interpreter_frame->fp() + method->max_locals(); interpreterState istate = interpreter_frame->get_interpreterState(); intptr_t *monitor_base = (intptr_t*) istate; intptr_t *stack_base = monitor_base - monitor_words; diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Mon May 10 11:44:31 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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 @@ -48,14 +48,14 @@ frame frame::sender_for_entry_frame(Regi "sender should be next Java frame"); map->clear(); assert(map->include_argument_oops(), "should be set by clear"); - return frame(sender_sp(), sp() + 1); + return frame(zeroframe()->next(), sender_sp()); } frame frame::sender_for_nonentry_frame(RegisterMap *map) const { assert(zeroframe()->is_interpreter_frame() || zeroframe()->is_shark_frame() || zeroframe()->is_fake_stub_frame(), "wrong type of frame"); - return frame(sender_sp(), sp() + 1); + return frame(zeroframe()->next(), sender_sp()); } frame frame::sender(RegisterMap* map) const { @@ -176,8 +176,8 @@ void frame::zero_print_on_error(int char *valuebuf = buf + buflen; // Print each word of the frame - for (intptr_t *addr = fp(); addr <= sp(); addr++) { - int offset = sp() - addr; + for (intptr_t *addr = sp(); addr <= fp(); addr++) { + int offset = fp() - addr; // Fill in default values, then try and improve them snprintf(fieldbuf, buflen, "word[%d]", offset); diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/frame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Mon May 10 11:44:31 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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 @@ -32,17 +32,18 @@ // Constructor public: - frame(intptr_t* sp, intptr_t* fp); + frame(ZeroFrame* zeroframe, intptr_t* sp); - // The sp of a Zero frame is the address of the highest word in - // that frame. We keep track of the lowest address too, so the - // boundaries of the frame are available for debug printing. private: - intptr_t* _fp; + ZeroFrame* _zeroframe; public: + const ZeroFrame *zeroframe() const { + return _zeroframe; + } + intptr_t* fp() const { - return _fp; + return (intptr_t *) zeroframe(); } #ifdef CC_INTERP @@ -50,10 +51,6 @@ #endif // CC_INTERP public: - const ZeroFrame *zeroframe() const { - return (ZeroFrame *) sp(); - } - const EntryFrame *zero_entryframe() const { return zeroframe()->as_entry_frame(); } diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Mon May 10 11:44:31 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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,16 +26,16 @@ // Constructors inline frame::frame() { + _zeroframe = NULL; _sp = NULL; - _fp = NULL; _pc = NULL; _cb = NULL; _deopt_state = unknown; } -inline frame::frame(intptr_t* sp, intptr_t* fp) { +inline frame::frame(ZeroFrame* zf, intptr_t* sp) { + _zeroframe = zf; _sp = sp; - _fp = fp; switch (zeroframe()->type()) { case ZeroFrame::ENTRY_FRAME: _pc = StubRoutines::call_stub_return_pc(); @@ -66,7 +66,7 @@ inline frame::frame(intptr_t* sp, intptr // Accessors inline intptr_t* frame::sender_sp() const { - return (intptr_t *) zeroframe()->next(); + return fp() + 1; } inline intptr_t* frame::link() const { @@ -120,7 +120,7 @@ inline jint frame::interpreter_frame_exp // we can distinguish identity and younger/older relationship. NULL // represents an invalid (incomparable) frame. inline intptr_t* frame::id() const { - return sp(); + return fp(); } inline JavaCallWrapper* frame::entry_frame_call_wrapper() const { diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Mon May 10 11:44:31 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2010 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 @@ -23,21 +23,31 @@ * */ + private: + ZeroFrame* volatile _last_Java_fp; + public: // Each arch must define reset, save, restore // These are used by objects that only care about: // 1 - initializing a new state (thread creation, javaCalls) // 2 - saving a current state (javaCalls) // 3 - restoring an old state (javaCalls) + // Note that whenever _last_Java_sp != NULL other anchor fields + // must be valid. The profiler apparently depends on this. void clear() { // clearing _last_Java_sp must be first _last_Java_sp = NULL; // fence? + _last_Java_fp = NULL; _last_Java_pc = NULL; } void copy(JavaFrameAnchor* src) { + set(src->_last_Java_sp, src->_last_Java_pc, src->_last_Java_fp); + } + + void set(intptr_t* sp, address pc, ZeroFrame* fp) { // In order to make sure the transition state is valid for "this" // We must clear _last_Java_sp before copying the rest of the new // data @@ -46,13 +56,14 @@ // previous version (pd_cache_state) don't NULL _last_Java_sp // unless the value is changing // - if (_last_Java_sp != src->_last_Java_sp) + if (_last_Java_sp != sp) _last_Java_sp = NULL; - _last_Java_pc = src->_last_Java_pc; + _last_Java_fp = fp; + _last_Java_pc = pc; // Must be last so profiler will always see valid frame if // has_last_frame() is true - _last_Java_sp = src->_last_Java_sp; + _last_Java_sp = sp; } bool walkable() { @@ -67,6 +78,10 @@ return _last_Java_sp; } - void set_last_Java_sp(intptr_t* sp) { - _last_Java_sp = sp; + ZeroFrame* last_Java_fp() const { + return _last_Java_fp; } + + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaFrameAnchor, _last_Java_fp); + } diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/stack_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.cpp Mon May 10 11:44:31 2010 +0100 @@ -26,12 +26,18 @@ #include "incls/_precompiled.incl" #include "incls/_stack_zero.cpp.incl" +int ZeroStack::suggest_size(Thread *thread) const { + assert(needs_setup(), "already set up"); + return align_size_down(abi_stack_available(thread) / 2, wordSize); +} + void ZeroStack::handle_overflow(TRAPS) { JavaThread *thread = (JavaThread *) THREAD; // Set up the frame anchor if it isn't already bool has_last_Java_frame = thread->has_last_Java_frame(); if (!has_last_Java_frame) { + intptr_t *sp = thread->zero_stack()->sp(); ZeroFrame *frame = thread->top_zero_frame(); while (frame) { if (frame->is_shark_frame()) @@ -44,13 +50,14 @@ void ZeroStack::handle_overflow(TRAPS) { break; } + sp = ((intptr_t *) frame) + 1; frame = frame->next(); } if (frame == NULL) fatal("unrecoverable stack overflow"); - thread->set_last_Java_frame(frame); + thread->set_last_Java_frame(frame, sp); } // Throw the exception @@ -71,3 +78,9 @@ void ZeroStack::handle_overflow(TRAPS) { if (!has_last_Java_frame) thread->reset_last_Java_frame(); } + +#ifndef PRODUCT +void ZeroStack::zap(int c) { + memset(_base, c, available_words() * wordSize); +} +#endif // PRODUCT diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/stack_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Mon May 10 11:44:31 2010 +0100 @@ -42,6 +42,8 @@ class ZeroStack { return _base == NULL; } + int suggest_size(Thread *thread) const; + void setup(void *mem, size_t size) { assert(needs_setup(), "already set up"); assert(!(size & WordAlignmentMask), "unaligned"); @@ -67,6 +69,9 @@ class ZeroStack { _sp = new_sp; } + int total_words() const { + return _top - _base; + } int available_words() const { return _sp - _base; } @@ -89,10 +94,14 @@ class ZeroStack { int shadow_pages_size() const { return _shadow_pages_size; } + int abi_stack_available(Thread *thread) const; public: void overflow_check(int required_words, TRAPS); static void handle_overflow(TRAPS); + + public: + void zap(int c) PRODUCT_RETURN; public: static ByteSize base_offset() { diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp Mon May 10 11:44:31 2010 +0100 @@ -25,19 +25,24 @@ // This function should match SharkStack::CreateStackOverflowCheck inline void ZeroStack::overflow_check(int required_words, TRAPS) { - JavaThread *thread = (JavaThread *) THREAD; - // Check the Zero stack - if (required_words > available_words()) { + if (available_words() < required_words) { handle_overflow(THREAD); return; } // Check the ABI stack - address stack_top = thread->stack_base() - thread->stack_size(); - int free_stack = ((address) &stack_top) - stack_top; - if (free_stack < shadow_pages_size()) { + if (abi_stack_available(THREAD) < 0) { handle_overflow(THREAD); return; } } + +// This method returns the amount of ABI stack available for us +// to use under normal circumstances. Note that the returned +// value can be negative. +inline int ZeroStack::abi_stack_available(Thread *thread) const { + int stack_used = thread->stack_base() - (address) &stack_used; + int stack_free = thread->stack_size() - stack_used; + return stack_free - shadow_pages_size(); +} diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Mon May 10 11:44:31 2010 +0100 @@ -51,10 +51,7 @@ class StubGenerator: public StubCodeGene // Set up the stack if necessary bool stack_needs_teardown = false; if (stack->needs_setup()) { - size_t stack_used = thread->stack_base() - (address) &stack_used; - size_t stack_free = thread->stack_size() - stack_used; - size_t zero_stack_size = align_size_down(stack_free / 2, wordSize); - + size_t zero_stack_size = stack->suggest_size(thread); stack->setup(alloca(zero_stack_size), zero_stack_size); stack_needs_teardown = true; } diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Mon May 10 11:44:31 2010 +0100 @@ -68,19 +68,30 @@ public: void set_last_Java_frame() { - set_last_Java_frame(top_zero_frame()); + set_last_Java_frame(top_zero_frame(), zero_stack()->sp()); } void reset_last_Java_frame() { - set_last_Java_frame(NULL); + frame_anchor()->zap(); } - void set_last_Java_frame(ZeroFrame* frame) { - frame_anchor()->set_last_Java_sp((intptr_t *) frame); + void set_last_Java_frame(ZeroFrame* fp, intptr_t* sp) { + frame_anchor()->set(sp, NULL, fp); + } + + public: + ZeroFrame* last_Java_fp() { + return frame_anchor()->last_Java_fp(); } private: frame pd_last_frame() { assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); - return frame(last_Java_sp(), zero_stack()->sp()); + return frame(last_Java_fp(), last_Java_sp()); + } + + public: + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaThread, _anchor) + + JavaFrameAnchor::last_Java_fp_offset(); } public: diff -r 373a443db017 -r 9bc0c7b7f327 ports/hotspot/src/share/vm/shark/sharkBuilder.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Mon May 10 11:44:31 2010 +0100 @@ -319,13 +319,17 @@ Value* SharkBuilder::osr_migration_end() return make_function((address) SharedRuntime::OSR_migration_end, "C", "v"); } From gbenson at redhat.com Mon May 10 03:48:08 2010 From: gbenson at redhat.com (Gary Benson) Date: Mon, 10 May 2010 11:48:08 +0100 Subject: Updated Zero and Shark; disabled ARM interpreter Message-ID: <20100510104807.GA3328@redhat.com> Hi all, After discussing this with xranby and doko on IRC it was decided to commit the Zero and Shark update and to disable the ARM interpreter until it is updated. This commit fixes PR icedtea/323, and updates Shark to use the new stack overflow detection code that was committed to Zero on Friday. Cheers, Gary Gary Benson wrote: > Hi all, > > Building on my commit of this morning, this patch adds the new frame > anchor code to Zero and Shark to fix PR icedtea/323. It also updates > Shark to use the new stack overflow code that Zero now has. > > Committing this will break the ARM interpreter, which needs updating. > Currently last_Java_sp is set to the address of the top Zero frame > wherever the frame anchor is set up. It needs changing such that > last_Java_sp is set to the thread->zero_stack()->sp() (and the new > field last_Java_fp gets set to what last_Java_sp used to be set to). > > There is a deoptimizer sefault (PR icedtea/484) which cannot be > applied to icedtea6 until this patch is applied. That change will > also require work on the ARM interpreter. I've kept that separate > from this commit so as not to break two things at once. > > What are people's opinions on this? Should I commit now, or should > I wait? I guess I need to hear from Ed (unless anybody else is able > to make the ARM interpreter changes?) > > Cheers, > Gary > > -- > http://gbenson.net/ -------------- next part -------------- diff -r 373a443db017 ChangeLog --- a/ChangeLog Fri May 07 16:57:27 2010 -0400 +++ b/ChangeLog Mon May 10 11:43:10 2010 +0100 @@ -1,3 +1,83 @@ +2010-05-10 Gary Benson + + PR icedtea/323 + * ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp + (JavaFrameAnchor::_last_Java_fp): New field. + (JavaFrameAnchor::clear): Also clear the above. + (JavaFrameAnchor::set): New method. + (JavaFrameAnchor::copy): Use the above. + (JavaFrameAnchor::set_lat_Java_sp): Removed. + (JavaFrameAnchor::last_Java_fp): New method. + (JavaFrameAnchor::last_Java_fp_offset): Likewise. + * ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp + (JavaThread::last_Java_fp): Likewise. + (JavaThread::last_Java_fp_offset): Likewise. + (JavaThread::set_last_Java_frame): Use new new frame anchor code. + (JavaThread::reset_last_Java_frame): Likewise. + (JavaThread::pd_last_frame): Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.hpp + (frame::frame): Flipped arguments. + (frame::_fp): Replaced with... + (frame::_zeroframe): New field. + (frame::fp): Updated. + (frame::zeroframe): Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp + (frame::frame): Likewise. + (frame::sender_sp): Likewise. + (frame::id): Likewise. + * ports/hotspot/src/cpu/zero/vm/frame_zero.cpp + (frame::sender_for_entry_frame): Likewise. + (frame::sender_for_nonentry_frame): Likewise. + (frame::zero_print_on_error): Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (AbstractInterpreter::layout_activation): Use new frame + anchor code. + + * ports/hotspot/src/cpu/zero/vm/stack_zero.hpp + (ZeroStack::suggest_size): New method. + (ZeroStack::total_words): Likewise. + (ZeroStack::abi_stack_available): Likewise. + (ZeroStack::zap): Likewise. + * ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp + (ZeroStack::abi_stack_available): New method. + (ZeroStack::overflow_check): Use the above. + * ports/hotspot/src/cpu/zero/vm/stack_zero.cpp + (ZeroStack::suggest_size): New method. + (ZeroStack::zap): Likewise. + (ZeroStack::handle_overflow): Use new frame anchor code. + * ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp + (StubGenerator::call_stub): Use ZeroStack::suggest_size. + + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp + (SharkBuilder::throw_StackOverflowError): New method. + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp + (SharkBuilder::throw_StackOverflowError): Likewise. + * ports/hotspot/src/share/vm/shark/sharkStack.hpp + (SharkStack::initialize): Removed argument. + (SharkStack::CreateStackOverflowCheck): Updated. + (SharkStack::CreateCheckStack): Removed method. + (SharkStack::frame_anchor_addr): Likewise. + (SharkStack::last_Java_sp_addr): New method. + (SharkStack::last_Java_fp_addr): New method. + (SharkStack::CreateSetLastJavaFrame): Use new frame anchor code. + (SharkStack::CreateResetLastJavaFrame): Likewise. + (SharkStack::CreateAssertLastJavaSPIsNull): New method. + * ports/hotspot/src/share/vm/shark/sharkStack.cpp + (SharkStack::initialize): Updated for new stack overflow code. + (SharkStack::CreateStackOverflowCheck): Likewise. + (SharkStack::CreateCheckStack): Removed. + (SharkStackWithNormalFrame::SharkStackWithNormalFrame): Updated + for new stack overflow code. + (SharkStackWithNativeFrame::SharkStackWithNativeFrame): Likewise. + (SharkStack::CreateAssertLastJavaSPIsNull): New method. + + * ports/hotspot/make/linux/makefiles/zeroshark.make + (CFLAGS): Remove -DHOTSPOT_ASM until the ARM interpreter + and JIT are updated to use the new frame anchor code. + + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp + (SharkNativeWrapper::initialize): Whitespace fix. + 2010-05-07 Deepak Bhole * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java diff -r 373a443db017 ports/hotspot/make/linux/makefiles/zeroshark.make --- a/ports/hotspot/make/linux/makefiles/zeroshark.make Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/make/linux/makefiles/zeroshark.make Mon May 10 11:43:10 2010 +0100 @@ -31,7 +31,8 @@ Obj_Files += cppInterpreter_arm.o Obj_Files += thumb2.o -CFLAGS += -DHOTSPOT_ASM +#XXX disabled until it has the updated frame anchor code +#CFLAGS += -DHOTSPOT_ASM %.o: %.S @echo Assembling $< diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Mon May 10 11:43:10 2010 +0100 @@ -840,7 +840,7 @@ int callee_extra_locals = callee_locals - callee_param_count; if (interpreter_frame) { - intptr_t *locals = interpreter_frame->sp() + method->max_locals(); + intptr_t *locals = interpreter_frame->fp() + method->max_locals(); interpreterState istate = interpreter_frame->get_interpreterState(); intptr_t *monitor_base = (intptr_t*) istate; intptr_t *stack_base = monitor_base - monitor_words; diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/frame_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.cpp Mon May 10 11:43:10 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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 @@ -48,14 +48,14 @@ "sender should be next Java frame"); map->clear(); assert(map->include_argument_oops(), "should be set by clear"); - return frame(sender_sp(), sp() + 1); + return frame(zeroframe()->next(), sender_sp()); } frame frame::sender_for_nonentry_frame(RegisterMap *map) const { assert(zeroframe()->is_interpreter_frame() || zeroframe()->is_shark_frame() || zeroframe()->is_fake_stub_frame(), "wrong type of frame"); - return frame(sender_sp(), sp() + 1); + return frame(zeroframe()->next(), sender_sp()); } frame frame::sender(RegisterMap* map) const { @@ -176,8 +176,8 @@ char *valuebuf = buf + buflen; // Print each word of the frame - for (intptr_t *addr = fp(); addr <= sp(); addr++) { - int offset = sp() - addr; + for (intptr_t *addr = sp(); addr <= fp(); addr++) { + int offset = fp() - addr; // Fill in default values, then try and improve them snprintf(fieldbuf, buflen, "word[%d]", offset); diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/frame_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.hpp Mon May 10 11:43:10 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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 @@ -32,17 +32,18 @@ // Constructor public: - frame(intptr_t* sp, intptr_t* fp); + frame(ZeroFrame* zeroframe, intptr_t* sp); - // The sp of a Zero frame is the address of the highest word in - // that frame. We keep track of the lowest address too, so the - // boundaries of the frame are available for debug printing. private: - intptr_t* _fp; + ZeroFrame* _zeroframe; public: + const ZeroFrame *zeroframe() const { + return _zeroframe; + } + intptr_t* fp() const { - return _fp; + return (intptr_t *) zeroframe(); } #ifdef CC_INTERP @@ -50,10 +51,6 @@ #endif // CC_INTERP public: - const ZeroFrame *zeroframe() const { - return (ZeroFrame *) sp(); - } - const EntryFrame *zero_entryframe() const { return zeroframe()->as_entry_frame(); } diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/frame_zero.inline.hpp Mon May 10 11:43:10 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008, 2009 Red Hat, Inc. + * Copyright 2007, 2008, 2009, 2010 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,16 +26,16 @@ // Constructors inline frame::frame() { + _zeroframe = NULL; _sp = NULL; - _fp = NULL; _pc = NULL; _cb = NULL; _deopt_state = unknown; } -inline frame::frame(intptr_t* sp, intptr_t* fp) { +inline frame::frame(ZeroFrame* zf, intptr_t* sp) { + _zeroframe = zf; _sp = sp; - _fp = fp; switch (zeroframe()->type()) { case ZeroFrame::ENTRY_FRAME: _pc = StubRoutines::call_stub_return_pc(); @@ -66,7 +66,7 @@ // Accessors inline intptr_t* frame::sender_sp() const { - return (intptr_t *) zeroframe()->next(); + return fp() + 1; } inline intptr_t* frame::link() const { @@ -120,7 +120,7 @@ // we can distinguish identity and younger/older relationship. NULL // represents an invalid (incomparable) frame. inline intptr_t* frame::id() const { - return sp(); + return fp(); } inline JavaCallWrapper* frame::entry_frame_call_wrapper() const { diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/javaFrameAnchor_zero.hpp Mon May 10 11:43:10 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2005 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2007, 2008 Red Hat, Inc. + * Copyright 2007, 2008, 2010 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 @@ -23,21 +23,31 @@ * */ + private: + ZeroFrame* volatile _last_Java_fp; + public: // Each arch must define reset, save, restore // These are used by objects that only care about: // 1 - initializing a new state (thread creation, javaCalls) // 2 - saving a current state (javaCalls) // 3 - restoring an old state (javaCalls) + // Note that whenever _last_Java_sp != NULL other anchor fields + // must be valid. The profiler apparently depends on this. void clear() { // clearing _last_Java_sp must be first _last_Java_sp = NULL; // fence? + _last_Java_fp = NULL; _last_Java_pc = NULL; } void copy(JavaFrameAnchor* src) { + set(src->_last_Java_sp, src->_last_Java_pc, src->_last_Java_fp); + } + + void set(intptr_t* sp, address pc, ZeroFrame* fp) { // In order to make sure the transition state is valid for "this" // We must clear _last_Java_sp before copying the rest of the new // data @@ -46,13 +56,14 @@ // previous version (pd_cache_state) don't NULL _last_Java_sp // unless the value is changing // - if (_last_Java_sp != src->_last_Java_sp) + if (_last_Java_sp != sp) _last_Java_sp = NULL; - _last_Java_pc = src->_last_Java_pc; + _last_Java_fp = fp; + _last_Java_pc = pc; // Must be last so profiler will always see valid frame if // has_last_frame() is true - _last_Java_sp = src->_last_Java_sp; + _last_Java_sp = sp; } bool walkable() { @@ -67,6 +78,10 @@ return _last_Java_sp; } - void set_last_Java_sp(intptr_t* sp) { - _last_Java_sp = sp; + ZeroFrame* last_Java_fp() const { + return _last_Java_fp; } + + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaFrameAnchor, _last_Java_fp); + } diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/stack_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.cpp Mon May 10 11:43:10 2010 +0100 @@ -26,12 +26,18 @@ #include "incls/_precompiled.incl" #include "incls/_stack_zero.cpp.incl" +int ZeroStack::suggest_size(Thread *thread) const { + assert(needs_setup(), "already set up"); + return align_size_down(abi_stack_available(thread) / 2, wordSize); +} + void ZeroStack::handle_overflow(TRAPS) { JavaThread *thread = (JavaThread *) THREAD; // Set up the frame anchor if it isn't already bool has_last_Java_frame = thread->has_last_Java_frame(); if (!has_last_Java_frame) { + intptr_t *sp = thread->zero_stack()->sp(); ZeroFrame *frame = thread->top_zero_frame(); while (frame) { if (frame->is_shark_frame()) @@ -44,13 +50,14 @@ break; } + sp = ((intptr_t *) frame) + 1; frame = frame->next(); } if (frame == NULL) fatal("unrecoverable stack overflow"); - thread->set_last_Java_frame(frame); + thread->set_last_Java_frame(frame, sp); } // Throw the exception @@ -71,3 +78,9 @@ if (!has_last_Java_frame) thread->reset_last_Java_frame(); } + +#ifndef PRODUCT +void ZeroStack::zap(int c) { + memset(_base, c, available_words() * wordSize); +} +#endif // PRODUCT diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/stack_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.hpp Mon May 10 11:43:10 2010 +0100 @@ -42,6 +42,8 @@ return _base == NULL; } + int suggest_size(Thread *thread) const; + void setup(void *mem, size_t size) { assert(needs_setup(), "already set up"); assert(!(size & WordAlignmentMask), "unaligned"); @@ -67,6 +69,9 @@ _sp = new_sp; } + int total_words() const { + return _top - _base; + } int available_words() const { return _sp - _base; } @@ -89,12 +94,16 @@ int shadow_pages_size() const { return _shadow_pages_size; } + int abi_stack_available(Thread *thread) const; public: void overflow_check(int required_words, TRAPS); static void handle_overflow(TRAPS); public: + void zap(int c) PRODUCT_RETURN; + + public: static ByteSize base_offset() { return byte_offset_of(ZeroStack, _base); } diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp --- a/ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/stack_zero.inline.hpp Mon May 10 11:43:10 2010 +0100 @@ -25,19 +25,24 @@ // This function should match SharkStack::CreateStackOverflowCheck inline void ZeroStack::overflow_check(int required_words, TRAPS) { - JavaThread *thread = (JavaThread *) THREAD; - // Check the Zero stack - if (required_words > available_words()) { + if (available_words() < required_words) { handle_overflow(THREAD); return; } // Check the ABI stack - address stack_top = thread->stack_base() - thread->stack_size(); - int free_stack = ((address) &stack_top) - stack_top; - if (free_stack < shadow_pages_size()) { + if (abi_stack_available(THREAD) < 0) { handle_overflow(THREAD); return; } } + +// This method returns the amount of ABI stack available for us +// to use under normal circumstances. Note that the returned +// value can be negative. +inline int ZeroStack::abi_stack_available(Thread *thread) const { + int stack_used = thread->stack_base() - (address) &stack_used; + int stack_free = thread->stack_size() - stack_used; + return stack_free - shadow_pages_size(); +} diff -r 373a443db017 ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/cpu/zero/vm/stubGenerator_zero.cpp Mon May 10 11:43:10 2010 +0100 @@ -51,10 +51,7 @@ // Set up the stack if necessary bool stack_needs_teardown = false; if (stack->needs_setup()) { - size_t stack_used = thread->stack_base() - (address) &stack_used; - size_t stack_free = thread->stack_size() - stack_used; - size_t zero_stack_size = align_size_down(stack_free / 2, wordSize); - + size_t zero_stack_size = stack->suggest_size(thread); stack->setup(alloca(zero_stack_size), zero_stack_size); stack_needs_teardown = true; } diff -r 373a443db017 ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp --- a/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/os_cpu/linux_zero/vm/thread_linux_zero.hpp Mon May 10 11:43:10 2010 +0100 @@ -68,19 +68,30 @@ public: void set_last_Java_frame() { - set_last_Java_frame(top_zero_frame()); + set_last_Java_frame(top_zero_frame(), zero_stack()->sp()); } void reset_last_Java_frame() { - set_last_Java_frame(NULL); + frame_anchor()->zap(); } - void set_last_Java_frame(ZeroFrame* frame) { - frame_anchor()->set_last_Java_sp((intptr_t *) frame); + void set_last_Java_frame(ZeroFrame* fp, intptr_t* sp) { + frame_anchor()->set(sp, NULL, fp); + } + + public: + ZeroFrame* last_Java_fp() { + return frame_anchor()->last_Java_fp(); } private: frame pd_last_frame() { assert(has_last_Java_frame(), "must have last_Java_sp() when suspended"); - return frame(last_Java_sp(), zero_stack()->sp()); + return frame(last_Java_fp(), last_Java_sp()); + } + + public: + static ByteSize last_Java_fp_offset() { + return byte_offset_of(JavaThread, _anchor) + + JavaFrameAnchor::last_Java_fp_offset(); } public: diff -r 373a443db017 ports/hotspot/src/share/vm/shark/sharkBuilder.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Mon May 10 11:43:10 2010 +0100 @@ -319,13 +319,17 @@ return make_function((address) SharedRuntime::OSR_migration_end, "C", "v"); } -// Uncommon trap +// Semi-VM calls + +Value* SharkBuilder::throw_StackOverflowError() { + return make_function((address) ZeroStack::handle_overflow, "T", "v"); +} Value* SharkBuilder::uncommon_trap() { return make_function((address) SharkRuntime::uncommon_trap, "Ti", "v"); } -// Native-Java transition. +// Native-Java transition Value* SharkBuilder::check_special_condition_for_native_trans() { return make_function( diff -r 373a443db017 ports/hotspot/src/share/vm/shark/sharkBuilder.hpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Mon May 10 11:43:10 2010 +0100 @@ -125,12 +125,13 @@ llvm::Value* unsafe_field_offset_to_byte_offset(); llvm::Value* osr_migration_end(); - // Intrinsics and external functions, part 3: Uncommon trap. - // This is a special case in that it is invoked like a non-VM - // call but it does VM call stuff. This is acceptable so long - // as the method that calls uncommon_trap returns to its caller - // immediately that uncommon_trap returns. + // Intrinsics and external functions, part 3: semi-VM calls. + // These are special cases that do VM call stuff but are invoked + // as though they were normal calls. This is acceptable so long + // as the method that calls them returns to its immediately that + // the semi VM call returns. public: + llvm::Value* throw_StackOverflowError(); llvm::Value* uncommon_trap(); // Intrinsics and external functions, part 4: Native-Java transition. diff -r 373a443db017 ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp --- a/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Mon May 10 11:43:10 2010 +0100 @@ -99,7 +99,7 @@ builder()->CreateStore( builder()->CreateInlineOop( JNIHandles::make_local( - target()->method_holder()->klass_part()->java_mirror())), + target()->method_holder()->klass_part()->java_mirror())), oop_tmp_slot()); param_types.push_back(box_type); diff -r 373a443db017 ports/hotspot/src/share/vm/shark/sharkStack.cpp --- a/ports/hotspot/src/share/vm/shark/sharkStack.cpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkStack.cpp Mon May 10 11:43:10 2010 +0100 @@ -28,7 +28,9 @@ using namespace llvm; -void SharkStack::initialize(Value* method, bool setup_sp_and_method) { +void SharkStack::initialize(Value* method) { + bool setup_sp_and_method = (method != NULL); + int locals_words = max_locals(); int extra_locals = locals_words - arg_size(); int header_words = SharkFrame::header_words; @@ -42,7 +44,7 @@ Value *stack_pointer = builder()->CreateSub( CreateLoadStackPointer(), LLVMValue::intptr_constant((frame_words + extra_locals) * wordSize)); - CreateStackOverflowCheck(stack_pointer, method); + CreateStackOverflowCheck(stack_pointer); if (setup_sp_and_method) CreateStoreStackPointer(stack_pointer); @@ -94,61 +96,48 @@ builder()->CreatePtrToInt(fp, SharkType::intptr_type())); } -// Check that a stack overflow is not imminent, bailing to the -// interpreter to throw a StackOverflowError if one is while -// we still have some stack left to do it with. This function -// should mirror CppInterpreter::stack_overflow_imminent. -void SharkStack::CreateStackOverflowCheck(Value* sp, Value* method) { - BasicBlock *overflow = CreateBlock("overflow_imminent"); +// This function should match ZeroStack::overflow_check +void SharkStack::CreateStackOverflowCheck(Value* sp) { + BasicBlock *zero_ok = CreateBlock("zero_stack_ok"); + BasicBlock *overflow = CreateBlock("stack_overflow"); BasicBlock *abi_ok = CreateBlock("abi_stack_ok"); - BasicBlock *zero_ok = CreateBlock("zero_stack_ok"); + + // Check the Zero stack + builder()->CreateCondBr( + builder()->CreateICmpULT(sp, stack_base()), + overflow, zero_ok); // Check the ABI stack - CreateCheckStack( - builder()->CreateSub( - builder()->CreateValueOfStructEntry( - thread(), - Thread::stack_base_offset(), - SharkType::intptr_type(), - "abi_base"), - builder()->CreateValueOfStructEntry( - thread(), - Thread::stack_size_offset(), - SharkType::intptr_type(), - "abi_size")), + builder()->SetInsertPoint(zero_ok); + Value *stack_top = builder()->CreateSub( + builder()->CreateValueOfStructEntry( + thread(), + Thread::stack_base_offset(), + SharkType::intptr_type(), + "abi_base"), + builder()->CreateValueOfStructEntry( + thread(), + Thread::stack_size_offset(), + SharkType::intptr_type(), + "abi_size")); + Value *free_stack = builder()->CreateSub( builder()->CreatePtrToInt( builder()->CreateGetFrameAddress(), SharkType::intptr_type(), - "abi_pointer"), + "abi_sp"), + stack_top); + builder()->CreateCondBr( + builder()->CreateICmpULT( + free_stack, + LLVMValue::intptr_constant(StackShadowPages * os::vm_page_size())), overflow, abi_ok); - // Check the Zero stack - builder()->SetInsertPoint(abi_ok); - CreateCheckStack(stack_base(), sp, overflow, zero_ok); - - // Bail to the interpreter if an overflow is imminent + // Handle overflows builder()->SetInsertPoint(overflow); - builder()->CreateCall3( - builder()->CreateIntToPtr( - LLVMValue::intptr_constant((intptr_t) interpreter_entry_point()), - PointerType::getUnqual(SharkType::entry_point_type())), - method, - LLVMValue::intptr_constant(0), - thread()); + builder()->CreateCall(builder()->throw_StackOverflowError(), thread()); builder()->CreateRetVoid(); - builder()->SetInsertPoint(zero_ok); -} - -void SharkStack::CreateCheckStack(Value* base, - Value* sp, - BasicBlock* overflow, - BasicBlock* no_overflow) { - builder()->CreateCondBr( - builder()->CreateICmpULT( - builder()->CreateSub(sp, base), - LLVMValue::intptr_constant(StackShadowPages * os::vm_page_size())), - overflow, no_overflow); + builder()->SetInsertPoint(abi_ok); } Value* SharkStack::CreatePopFrame(int result_slots) { @@ -202,12 +191,12 @@ // be set during each decache, so it is not necessary to do them // at the time the frame is created. However, we set them for // non-PRODUCT builds to make crash dumps easier to understand. - initialize(method, NOT_PRODUCT(true) PRODUCT_ONLY(false)); + initialize(PRODUCT_ONLY(NULL) NOT_PRODUCT(method)); } SharkStackWithNativeFrame::SharkStackWithNativeFrame(SharkNativeWrapper* wrp, Value* method) : SharkStack(wrp), _wrapper(wrp) { - initialize(method, true); + initialize(method); } int SharkStackWithNormalFrame::arg_size() const { @@ -251,3 +240,24 @@ address SharkStackWithNativeFrame::interpreter_entry_point() const { return (address) CppInterpreter::native_entry; } + +#ifndef PRODUCT +void SharkStack::CreateAssertLastJavaSPIsNull() const { +#ifdef ASSERT + BasicBlock *fail = CreateBlock("assert_failed"); + BasicBlock *pass = CreateBlock("assert_ok"); + + builder()->CreateCondBr( + builder()->CreateICmpEQ( + builder()->CreateLoad(last_Java_sp_addr()), + LLVMValue::intptr_constant(0)), + pass, fail); + + builder()->SetInsertPoint(fail); + builder()->CreateShouldNotReachHere(__FILE__, __LINE__); + builder()->CreateUnreachable(); + + builder()->SetInsertPoint(pass); +#endif // ASSERT +} +#endif // !PRODUCT diff -r 373a443db017 ports/hotspot/src/share/vm/shark/sharkStack.hpp --- a/ports/hotspot/src/share/vm/shark/sharkStack.hpp Fri May 07 16:57:27 2010 -0400 +++ b/ports/hotspot/src/share/vm/shark/sharkStack.hpp Mon May 10 11:43:10 2010 +0100 @@ -40,16 +40,10 @@ : SharkCompileInvariants(parent) {} protected: - void initialize(llvm::Value* method, bool setup_sp_and_method); + void initialize(llvm::Value* method); protected: - void CreateStackOverflowCheck(llvm::Value* sp, llvm::Value* method); - - private: - void CreateCheckStack(llvm::Value* base, - llvm::Value* sp, - llvm::BasicBlock* overflow, - llvm::BasicBlock* no_overflow); + void CreateStackOverflowCheck(llvm::Value* sp); // Properties of the method being compiled protected: @@ -114,24 +108,39 @@ // Interface with the frame anchor private: - llvm::Value* frame_anchor_addr() const { + llvm::Value* last_Java_sp_addr() const { return builder()->CreateAddressOfStructEntry( thread(), JavaThread::last_Java_sp_offset(), llvm::PointerType::getUnqual(SharkType::intptr_type()), - "frame_anchor_addr"); + "last_Java_sp_addr"); + } + llvm::Value* last_Java_fp_addr() const { + return builder()->CreateAddressOfStructEntry( + thread(), + JavaThread::last_Java_fp_offset(), + llvm::PointerType::getUnqual(SharkType::intptr_type()), + "last_Java_fp_addr"); } public: - llvm::StoreInst* CreateSetLastJavaFrame() { - return builder()->CreateStore( - CreateLoadFramePointer(), frame_anchor_addr()); + void CreateSetLastJavaFrame() { + // Note that whenever _last_Java_sp != NULL other anchor fields + // must be valid. The profiler apparently depends on this. + NOT_PRODUCT(CreateAssertLastJavaSPIsNull()); + builder()->CreateStore(CreateLoadFramePointer(), last_Java_fp_addr()); + // XXX There's last_Java_pc as well, but I don't think anything uses it + // Also XXX: should we fence here? Zero doesn't... + builder()->CreateStore(CreateLoadStackPointer(), last_Java_sp_addr()); + // Also also XXX: we could probably cache the sp (and the fp we know??) } - llvm::StoreInst* CreateResetLastJavaFrame() { - return builder()->CreateStore( - LLVMValue::intptr_constant(0), frame_anchor_addr()); + void CreateResetLastJavaFrame() { + builder()->CreateStore(LLVMValue::intptr_constant(0), last_Java_sp_addr()); } + private: + void CreateAssertLastJavaSPIsNull() const PRODUCT_RETURN; + // Our method's frame private: llvm::Value* _frame; From ahughes at redhat.com Mon May 10 03:50:58 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Mon, 10 May 2010 11:50:58 +0100 Subject: Updated Zero and Shark; disabled ARM interpreter In-Reply-To: <20100510104807.GA3328@redhat.com> References: <20100510104807.GA3328@redhat.com> Message-ID: On 10 May 2010 11:48, Gary Benson wrote: > Hi all, > > After discussing this with xranby and doko on IRC it was decided to > commit the Zero and Shark update and to disable the ARM interpreter > until it is updated. > This is to HEAD? > This commit fixes PR icedtea/323, and updates Shark to use the new > stack overflow detection code that was committed to Zero on Friday. > > Cheers, > Gary > > Gary Benson wrote: >> Hi all, >> >> Building on my commit of this morning, this patch adds the new frame >> anchor code to Zero and Shark to fix PR icedtea/323. ?It also updates >> Shark to use the new stack overflow code that Zero now has. >> >> Committing this will break the ARM interpreter, which needs updating. >> Currently last_Java_sp is set to the address of the top Zero frame >> wherever the frame anchor is set up. ?It needs changing such that >> last_Java_sp is set to the thread->zero_stack()->sp() (and the new >> field last_Java_fp gets set to what last_Java_sp used to be set to). >> >> There is a deoptimizer sefault (PR icedtea/484) which cannot be >> applied to icedtea6 until this patch is applied. ?That change will >> also require work on the ARM interpreter. ?I've kept that separate >> from this commit so as not to break two things at once. >> >> What are people's opinions on this? ?Should I commit now, or should >> I wait? ?I guess I need to hear from Ed (unless anybody else is able >> to make the ARM interpreter changes?) >> >> Cheers, >> Gary >> >> -- >> http://gbenson.net/ > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From gbenson at redhat.com Mon May 10 04:01:22 2010 From: gbenson at redhat.com (Gary Benson) Date: Mon, 10 May 2010 12:01:22 +0100 Subject: Updated Zero and Shark; disabled ARM interpreter In-Reply-To: References: <20100510104807.GA3328@redhat.com> Message-ID: <20100510110122.GC3328@redhat.com> Andrew John Hughes wrote: > On 10 May 2010 11:48, Gary Benson wrote: > > After discussing this with xranby and doko on IRC it was decided to > > commit the Zero and Shark update and to disable the ARM interpreter > > until it is updated. > > This is to HEAD? icedtea6 HEAD, yes. Cheers, Gary -- http://gbenson.net/ From andrew at icedtea.classpath.org Mon May 10 04:15:58 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 10 May 2010 11:15:58 +0000 Subject: /hg/icedtea: 5 new changesets Message-ID: changeset e5494d5e9d73 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=e5494d5e9d73 author: Gary Benson date: Wed Nov 11 13:52:48 2009 +0000 Use SharkType::oop_type() instead of SharkType::jobject_type() 2009-11-11 Gary Benson * ports/hotspot/src/share/vm/shark/sharkType.hpp (SharkType::jobject_type): Removed. * ports/hotspot/src/share/vm/shark/llvmValue.hpp (LLVMValue::null): Use SharkType::oop_type() instead of SharkType::jobject_type(). * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp (SharkBuilder::CreateInlineOop): Likewise. * ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp (SharkIntrinsics::do_Object_getClass): Likewise. (SharkIntrinsics::do_Thread_currentThread): Likewise. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp (SharkTopLevelBlock::pending_exception_address): Likewise. (SharkTopLevelBlock::get_vm_result): Likewise. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp (SharkTopLevelBlock::call_register_finalizer): Likewise. (SharkTopLevelBlock::get_virtual_callee): Likewise. (SharkTopLevelBlock::get_interface_callee): Likewise. (SharkTopLevelBlock::do_full_instance_check): Likewise. (SharkTopLevelBlock::do_new): Likewise. * ports/hotspot/src/share/vm/shark/sharkType.cpp (SharkType::initialize): Likewise. * ports/hotspot/src/share/vm/shark/sharkValue.hpp (SharkValue::create_jobject): Likewise. * ports/hotspot/src/share/vm/shark/sharkValue.cpp (SharkNormalValue::is_jobject): Likewise. changeset 1ff59115a3bb in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=1ff59115a3bb author: Gary Benson date: Wed Nov 11 10:50:38 2009 -0500 PR icedtea/324 workaround by using is_jobject instead of is_jarray. 2009-11-11 Gary Benson PR icedtea/324: * ports/hotspot/src/share/vm/shark/sharkValue.cpp (SharkNormalValue::jarray_value): Work around the above. changeset 6cd52dd6a5d8 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=6cd52dd6a5d8 author: Gary Benson * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp (SharkBuilder::SharkBuilder): Removed module argument. (SharkBuilder::_module): Removed. (SharkBuilder::module): Likewise. (SharkBuilder::check_special_condition_for_native_trans): New method. (SharkBuilder::CreateInlineOop): New method with jobject argument. * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp (SharkBuilder::SharkBuilder): Removed module argument, and changed to use Shark context instead of global context. (SharkBuilder::make_type): Updated for new SharkType. (SharkBuilder::make_function): Use SharkContext for resolution. (SharkBuilder::check_special_condition_for_native_trans): New method. (SharkBuilder::CreateDump): Removed support for LLVM < 2.6. (SharkBuilder::CreateBlock): Likewise. (SharkBuilder::CreateInlineOop): Changed object argument type. * ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp (SharkDecacher::oopmap_slot_munge): Defer to SharkStack method. (SharkDecacher::slot2reg): Likewise. * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp (SharkDecacher::start_frame): Use new SharkStack code. (SharkDecacher::start_stack): Likewise. (SharkDecacher::process_pc_slot): Likewise. (SharkOSREntryCacher::process_monitor): Likewise. (SharkDecacher::write_value_to_frame): Likewise. (SharkCacher::read_value_from_frame): Likewise. * ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp (SharkCodeBuffer::SharkCodeBuffer): Wrap a MacroAssembler instead of creating one along with a CodeBuffer. (SharkCodeBuffer::_cb): Removed. (SharkCodeBuffer::_cb): Likewise. (SharkCodeBuffer::inline_oop): Changed object argument type. * ports/hotspot/src/share/vm/shark/sharkCompiler.hpp (SharkCompiler::supports_native): Return true instead of false. (SharkCompiler::generate_native_wrapper): New method. (SharkCompiler::_module): Removed. (SharkCompiler::module): Likewise. (SharkCompiler::_normal_context): New field. (SharkCompiler::_native_context): Likewise. (SharkCompiler::_execution_engine_lock): Likewise. (SharkCompiler::context): New method. (SharkCompiler::execution_engine_lock): Likewise. (SharkCompiler::memory_manager): Added assertion. (SharkCompiler::execution_engine): Likewise. (SharkCompiler::compiler): New method. (SharkCompiler::generate_native_code): Likewise. (SharkCompiler::free_queued_methods): Likewise. * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp (SharkCompiler::SharkCompiler): Create the lock and the two contexts. Removed support for LLVM < 2.6. (SharkCompiler::compile_method): Create the HotSpot code buffer and macro assembler, and defer native code generation to new method SharkCompiler::generate_native_code(). (SharkCompiler::generate_native_wrapper): New method. (SharkCompiler::generate_native_code): Likewise. (SharkCompiler::free_compiled_method): New implementation. (SharkCompiler::free_queued_methods): New method. * ports/hotspot/src/share/vm/shark/sharkEntry.hpp (SharkEntry::_context): New field. (SharkEntry::context): New method. (SharkEntry::set_context): Likewise. * ports/hotspot/src/share/vm/shark/sharkFunction.hpp (SharkFunction::build): Removed compiler argument. (SharkFunction::SharkFunction): Likewise. (SharkFunction::_stack): New field. (SharkFunction::stack): New method. (SharkFunction::CreateBlock): Removed support for LLVM < 2.6. (SharkFunction::_zero_stack_base): Removed. (SharkFunction::_zero_stack_pointer_addr): Likewise. (SharkFunction::_zero_frame_pointer_addr): Likewise. (SharkFunction::zero_stack_base): Likewise. (SharkFunction::zero_stack_pointer_addr): Likewise. (SharkFunction::zero_frame_pointer_addr): Likewise. (SharkFunction::CreateInitZeroStack): Likewise. (SharkFunction::CreateLoadZeroStackPointer): Likewise. (SharkFunction::CreateStoreZeroStackPointer): Likewise. (SharkFunction::CreateLoadZeroFramePointer): Likewise. (SharkFunction::CreateStoreZeroFramePointer): Likewise. (SharkFunction::CreateStackOverflowCheck): Likewise. (SharkFunction::CreatePushFrame): Likewise. (SharkFunction::CreatePopFrame): Likewise. (SharkFunction::_frame): Likewise. (SharkFunction::CreateAddressOfFrameEntry): Likewise. (SharkFunction::CreateBuildFrame): Likewise. (SharkFunction::_extended_frame_size): Likewise. (SharkFunction::_stack_slots_offset): Likewise. (SharkFunction::_monitors_slots_offset): Likewise. (SharkFunction::_oop_tmp_slot_offset): Likewise. (SharkFunction::_method_slot_offset): Likewise. (SharkFunction::_pc_slot_offset): Likewise. (SharkFunction::_locals_slots_offset): Likewise. (SharkFunction::extended_frame_size): Likewise. (SharkFunction::oopmap_frame_size): Likewise. (SharkFunction::stack_slots_offset): Likewise. (SharkFunction::monitors_slots_offset): Likewise. (SharkFunction::oop_tmp_slot_offset): Likewise. (SharkFunction::method_slot_offset): Likewise. (SharkFunction::pc_slot_offset): Likewise. (SharkFunction::locals_slots_offset): Likewise. (SharkFunction::monitor_offset): Likewise. (SharkFunction::monitor_object_offset): Likewise. (SharkFunction::monitor_header_offset): Likewise. (SharkFunction::monitor_addr): Likewise. (SharkFunction::monitor_object_addr): Likewise. (SharkFunction::monitor_header_addr): Likewise. * ports/hotspot/src/share/vm/shark/sharkFunction.cpp (SharkFunction::initialize): Defer stack frame creation to new SharkStack code. (SharkFunction::CreateInitZeroStack): Removed. (SharkFunction::CreateStackOverflowCheck): Likewise. (SharkFunction::CreatePushFrame): Likewise. (SharkFunction::CreatePopFrame): Likewise. (SharkFunction::CreateBuildFrame): Likewise. (SharkFunction::CreateAddressOfFrameEntry): Likewise. * ports/hotspot/src/share/vm/shark/sharkInvariants.hpp (SharkCompileInvariants::SharkCompileInvariants): Removed compiler argument. (SharkTargetInvariants::SharkTargetInvariants): Likewise. (SharkCompileInvariants::_compiler): Removed. (SharkCompileInvariants::env): Added assertion. * ports/hotspot/src/share/vm/shark/sharkStateScanner.hpp (SharkStateScanner::SharkStateScanner): Updated. (SharkStateScanner::_function): Removed. (SharkStateScanner::function): Likewise. (SharkStateScanner::_stack): New field. (SharkStateScanner::stack): New method. * ports/hotspot/src/share/vm/shark/sharkStateScanner.cpp (SharkStateScanner::scan): Use new SharkStack code. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp (SharkTopLevelBlock::stack): New method. (SharkTopLevelBlock::set_last_Java_frame): Removed. (SharkTopLevelBlock::reset_last_Java_frame): Likewise. (SharkTopLevelBlock::call_vm): Use new SharkStack code. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp (SharkTopLevelBlock::handle_return): Likewise. (SharkTopLevelBlock::do_multianewarray): Likewise. (SharkTopLevelBlock::acquire_lock): Likewise. (SharkTopLevelBlock::release_lock): Likewise. * ports/hotspot/src/share/vm/shark/sharkType.hpp: Defer everything to new SharkContext code. * ports/hotspot/src/share/vm/shark/sharkType.cpp: Removed. * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp: Removed support for LLVM < 2.6. * ports/hotspot/src/share/vm/shark/llvmValue.hpp (LLVMValue::jfloat_constant): Likewise. (LLVMValue::jdouble_constant): Likewise. (LLVMValue::bit_constant): Likewise. * ports/hotspot/src/share/vm/shark/sharkBlock.cpp (SharkBlock::parse_bytecode): Likewise. * ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkContext.hpp: New file. * ports/hotspot/src/share/vm/shark/sharkContext.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStack.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStack.cpp: Likewise. * ports/hotspot/src/share/vm/includeDB_shark: Updated. changeset 72abc86bca08 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=72abc86bca08 author: Gary Benson date: Wed Nov 11 16:08:49 2009 +0000 Remove src/share/vm/shark/sharkType.cpp (missed from previous commit) changeset ffc24070b575 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=ffc24070b575 author: Xerxes R?nby date: Thu Nov 12 16:36:32 2009 +0100 Added NOT_X86 macro to fix Shark + LLVM 2.7 builds. 2009-11-12 Xerxes R?nby * patches/hotspot/default/icedtea-shark.patch (hotspot/src/share/vm/utilities/macros.hpp): Added NOT_X86 macro. diffstat: 34 files changed, 2209 insertions(+), 990 deletions(-) ChangeLog | 224 +++++++++ patches/hotspot/default/icedtea-shark.patch | 20 ports/hotspot/src/share/vm/includeDB_shark | 58 ++ ports/hotspot/src/share/vm/shark/llvmHeaders.hpp | 4 ports/hotspot/src/share/vm/shark/llvmValue.hpp | 20 ports/hotspot/src/share/vm/shark/sharkBlock.cpp | 32 - ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 50 -- ports/hotspot/src/share/vm/shark/sharkBuilder.hpp | 25 - ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp | 22 ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp | 6 ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp | 20 ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 256 ++++++---- ports/hotspot/src/share/vm/shark/sharkCompiler.hpp | 70 ++ ports/hotspot/src/share/vm/shark/sharkContext.cpp | 185 +++++++ ports/hotspot/src/share/vm/shark/sharkContext.hpp | 208 ++++++++ ports/hotspot/src/share/vm/shark/sharkEntry.hpp | 11 ports/hotspot/src/share/vm/shark/sharkFunction.cpp | 155 ------ ports/hotspot/src/share/vm/shark/sharkFunction.hpp | 178 ------- ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp | 4 ports/hotspot/src/share/vm/shark/sharkInvariants.hpp | 35 - ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp | 8 ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp | 5 ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp | 352 +++++++++++++++ ports/hotspot/src/share/vm/shark/sharkNativeWrapper.hpp | 204 ++++++++ ports/hotspot/src/share/vm/shark/sharkStack.cpp | 239 ++++++++++ ports/hotspot/src/share/vm/shark/sharkStack.hpp | 292 ++++++++++++ ports/hotspot/src/share/vm/shark/sharkStateScanner.cpp | 14 ports/hotspot/src/share/vm/shark/sharkStateScanner.hpp | 8 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 38 - ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp | 35 - ports/hotspot/src/share/vm/shark/sharkType.cpp | 180 ------- ports/hotspot/src/share/vm/shark/sharkType.hpp | 233 +++------ ports/hotspot/src/share/vm/shark/sharkValue.cpp | 6 ports/hotspot/src/share/vm/shark/sharkValue.hpp | 2 diffs (truncated from 4145 to 500 lines): diff -r 9ccd1c960e63 -r ffc24070b575 ChangeLog --- a/ChangeLog Mon Nov 09 13:07:15 2009 +0100 +++ b/ChangeLog Thu Nov 12 16:36:32 2009 +0100 @@ -1,3 +1,227 @@ 2009-11-09 Xerxes R??nby + + * patches/icedtea-shark.patch + (hotspot/src/share/vm/utilities/macros.hpp): + Added NOT_X86 macro. + +2009-11-11 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (CppInterpreter::native_entry): Add invocation counting for + non-synchronized native methods. + + * ports/hotspot/src/cpu/zero/vm/sharedRuntime_zero.cpp + (SharedRuntime::generate_native_wrapper): Implemented. + + * ports/hotspot/src/cpu/zero/vm/sharkFrame_zero.hpp + (SharkFrame): Made friendly with SharkStack. Snubbed + SharkFunction. + + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp + (SharkBuilder::SharkBuilder): Removed module argument. + (SharkBuilder::_module): Removed. + (SharkBuilder::module): Likewise. + (SharkBuilder::check_special_condition_for_native_trans): New method. + (SharkBuilder::CreateInlineOop): New method with jobject argument. + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp + (SharkBuilder::SharkBuilder): Removed module argument, and changed + to use Shark context instead of global context. + (SharkBuilder::make_type): Updated for new SharkType. + (SharkBuilder::make_function): Use SharkContext for resolution. + (SharkBuilder::check_special_condition_for_native_trans): New method. + (SharkBuilder::CreateDump): Removed support for LLVM < 2.6. + (SharkBuilder::CreateBlock): Likewise. + (SharkBuilder::CreateInlineOop): Changed object argument type. + + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp + (SharkDecacher::oopmap_slot_munge): Defer to SharkStack method. + (SharkDecacher::slot2reg): Likewise. + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp + (SharkDecacher::start_frame): Use new SharkStack code. + (SharkDecacher::start_stack): Likewise. + (SharkDecacher::process_pc_slot): Likewise. + (SharkOSREntryCacher::process_monitor): Likewise. + (SharkDecacher::write_value_to_frame): Likewise. + (SharkCacher::read_value_from_frame): Likewise. + + * ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp + (SharkCodeBuffer::SharkCodeBuffer): Wrap a MacroAssembler + instead of creating one along with a CodeBuffer. + (SharkCodeBuffer::_cb): Removed. + (SharkCodeBuffer::_cb): Likewise. + (SharkCodeBuffer::inline_oop): Changed object argument type. + + * ports/hotspot/src/share/vm/shark/sharkCompiler.hpp + (SharkCompiler::supports_native): Return true instead of false. + (SharkCompiler::generate_native_wrapper): New method. + (SharkCompiler::_module): Removed. + (SharkCompiler::module): Likewise. + (SharkCompiler::_normal_context): New field. + (SharkCompiler::_native_context): Likewise. + (SharkCompiler::_execution_engine_lock): Likewise. + (SharkCompiler::context): New method. + (SharkCompiler::execution_engine_lock): Likewise. + (SharkCompiler::memory_manager): Added assertion. + (SharkCompiler::execution_engine): Likewise. + (SharkCompiler::compiler): New method. + (SharkCompiler::generate_native_code): Likewise. + (SharkCompiler::free_queued_methods): Likewise. + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp + (SharkCompiler::SharkCompiler): Create the lock and the two + contexts. Removed support for LLVM < 2.6. + (SharkCompiler::compile_method): Create the HotSpot code buffer + and macro assembler, and defer native code generation to new + method SharkCompiler::generate_native_code(). + (SharkCompiler::generate_native_wrapper): New method. + (SharkCompiler::generate_native_code): Likewise. + (SharkCompiler::free_compiled_method): New implementation. + (SharkCompiler::free_queued_methods): New method. + + * ports/hotspot/src/share/vm/shark/sharkEntry.hpp + (SharkEntry::_context): New field. + (SharkEntry::context): New method. + (SharkEntry::set_context): Likewise. + + * ports/hotspot/src/share/vm/shark/sharkFunction.hpp + (SharkFunction::build): Removed compiler argument. + (SharkFunction::SharkFunction): Likewise. + (SharkFunction::_stack): New field. + (SharkFunction::stack): New method. + (SharkFunction::CreateBlock): Removed support for LLVM < 2.6. + (SharkFunction::_zero_stack_base): Removed. + (SharkFunction::_zero_stack_pointer_addr): Likewise. + (SharkFunction::_zero_frame_pointer_addr): Likewise. + (SharkFunction::zero_stack_base): Likewise. + (SharkFunction::zero_stack_pointer_addr): Likewise. + (SharkFunction::zero_frame_pointer_addr): Likewise. + (SharkFunction::CreateInitZeroStack): Likewise. + (SharkFunction::CreateLoadZeroStackPointer): Likewise. + (SharkFunction::CreateStoreZeroStackPointer): Likewise. + (SharkFunction::CreateLoadZeroFramePointer): Likewise. + (SharkFunction::CreateStoreZeroFramePointer): Likewise. + (SharkFunction::CreateStackOverflowCheck): Likewise. + (SharkFunction::CreatePushFrame): Likewise. + (SharkFunction::CreatePopFrame): Likewise. + (SharkFunction::_frame): Likewise. + (SharkFunction::CreateAddressOfFrameEntry): Likewise. + (SharkFunction::CreateBuildFrame): Likewise. + (SharkFunction::_extended_frame_size): Likewise. + (SharkFunction::_stack_slots_offset): Likewise. + (SharkFunction::_monitors_slots_offset): Likewise. + (SharkFunction::_oop_tmp_slot_offset): Likewise. + (SharkFunction::_method_slot_offset): Likewise. + (SharkFunction::_pc_slot_offset): Likewise. + (SharkFunction::_locals_slots_offset): Likewise. + (SharkFunction::extended_frame_size): Likewise. + (SharkFunction::oopmap_frame_size): Likewise. + (SharkFunction::stack_slots_offset): Likewise. + (SharkFunction::monitors_slots_offset): Likewise. + (SharkFunction::oop_tmp_slot_offset): Likewise. + (SharkFunction::method_slot_offset): Likewise. + (SharkFunction::pc_slot_offset): Likewise. + (SharkFunction::locals_slots_offset): Likewise. + (SharkFunction::monitor_offset): Likewise. + (SharkFunction::monitor_object_offset): Likewise. + (SharkFunction::monitor_header_offset): Likewise. + (SharkFunction::monitor_addr): Likewise. + (SharkFunction::monitor_object_addr): Likewise. + (SharkFunction::monitor_header_addr): Likewise. + * ports/hotspot/src/share/vm/shark/sharkFunction.cpp + (SharkFunction::initialize): Defer stack frame creation to new + SharkStack code. + (SharkFunction::CreateInitZeroStack): Removed. + (SharkFunction::CreateStackOverflowCheck): Likewise. + (SharkFunction::CreatePushFrame): Likewise. + (SharkFunction::CreatePopFrame): Likewise. + (SharkFunction::CreateBuildFrame): Likewise. + (SharkFunction::CreateAddressOfFrameEntry): Likewise. + + * ports/hotspot/src/share/vm/shark/sharkInvariants.hpp + (SharkCompileInvariants::SharkCompileInvariants): Removed + compiler argument. + (SharkTargetInvariants::SharkTargetInvariants): Likewise. + (SharkCompileInvariants::_compiler): Removed. + (SharkCompileInvariants::env): Added assertion. + + * ports/hotspot/src/share/vm/shark/sharkStateScanner.hpp + (SharkStateScanner::SharkStateScanner): Updated. + (SharkStateScanner::_function): Removed. + (SharkStateScanner::function): Likewise. + (SharkStateScanner::_stack): New field. + (SharkStateScanner::stack): New method. + * ports/hotspot/src/share/vm/shark/sharkStateScanner.cpp + (SharkStateScanner::scan): Use new SharkStack code. + + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp + (SharkTopLevelBlock::stack): New method. + (SharkTopLevelBlock::set_last_Java_frame): Removed. + (SharkTopLevelBlock::reset_last_Java_frame): Likewise. + (SharkTopLevelBlock::call_vm): Use new SharkStack code. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::handle_return): Likewise. + (SharkTopLevelBlock::do_multianewarray): Likewise. + (SharkTopLevelBlock::acquire_lock): Likewise. + (SharkTopLevelBlock::release_lock): Likewise. + + * ports/hotspot/src/share/vm/shark/sharkType.hpp: + Defer everything to new SharkContext code. + * ports/hotspot/src/share/vm/shark/sharkType.cpp: Removed. + + * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp: + Removed support for LLVM < 2.6. + * ports/hotspot/src/share/vm/shark/llvmValue.hpp + (LLVMValue::jfloat_constant): Likewise. + (LLVMValue::jdouble_constant): Likewise. + (LLVMValue::bit_constant): Likewise. + * ports/hotspot/src/share/vm/shark/sharkBlock.cpp + (SharkBlock::parse_bytecode): Likewise. + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp: Likewise. + + * ports/hotspot/src/share/vm/shark/sharkContext.hpp: New file. + * ports/hotspot/src/share/vm/shark/sharkContext.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStack.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStack.cpp: Likewise. + + * ports/hotspot/src/share/vm/includeDB_shark: Updated. + +2009-11-11 Gary Benson + + PR icedtea/324: + * ports/hotspot/src/share/vm/shark/sharkValue.cpp + (SharkNormalValue::jarray_value): Work around the above. + +2009-11-11 Gary Benson + + * ports/hotspot/src/share/vm/shark/sharkType.hpp + (SharkType::jobject_type): Removed. + + * ports/hotspot/src/share/vm/shark/llvmValue.hpp + (LLVMValue::null): Use SharkType::oop_type() instead of + SharkType::jobject_type(). + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp + (SharkBuilder::CreateInlineOop): Likewise. + * ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp + (SharkIntrinsics::do_Object_getClass): Likewise. + (SharkIntrinsics::do_Thread_currentThread): Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp + (SharkTopLevelBlock::pending_exception_address): Likewise. + (SharkTopLevelBlock::get_vm_result): Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::call_register_finalizer): Likewise. + (SharkTopLevelBlock::get_virtual_callee): Likewise. + (SharkTopLevelBlock::get_interface_callee): Likewise. + (SharkTopLevelBlock::do_full_instance_check): Likewise. + (SharkTopLevelBlock::do_new): Likewise. + * ports/hotspot/src/share/vm/shark/sharkType.cpp + (SharkType::initialize): Likewise. + * ports/hotspot/src/share/vm/shark/sharkValue.hpp + (SharkValue::create_jobject): Likewise. + * ports/hotspot/src/share/vm/shark/sharkValue.cpp + (SharkNormalValue::is_jobject): Likewise. + 2009-11-09 Xerxes R??nby * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp, diff -r 9ccd1c960e63 -r ffc24070b575 patches/hotspot/default/icedtea-shark.patch --- a/patches/hotspot/default/icedtea-shark.patch Mon Nov 09 13:07:15 2009 +0100 +++ b/patches/hotspot/default/icedtea-shark.patch Thu Nov 12 16:36:32 2009 +0100 @@ -150,6 +150,26 @@ diff -Nru openjdk.orig/hotspot/src/share ((CodeBlob*)(this))->flush(); CodeCache::free(this); +Index: openjdk/hotspot/src/share/vm/utilities/macros.hpp +=================================================================== +--- openjdk.orig/ports/hotspot/src/share/vm/utilities/macros.hpp 2009-11-12 15:17:14.458064088 +0100 ++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp 2009-11-12 15:19:18.097063844 +0100 +@@ -146,12 +146,14 @@ + #define NOT_WINDOWS(code) code + #endif + +-#if defined(IA32) || defined(AMD64) ++#if defined(IA32) || defined(IA64) || defined(AMD64) + #define X86 + #define X86_ONLY(code) code ++#define NOT_X86(code) + #else + #undef X86 + #define X86_ONLY(code) ++#define NOT_X86(code) code + #endif + + #ifdef IA32 @@ -1736,6 +1745,7 @@ // Method that knows how to preserve outgoing arguments at call. This method must be // called with a frame corresponding to a Java invoke diff -r 9ccd1c960e63 -r ffc24070b575 ports/hotspot/src/share/vm/includeDB_shark --- a/ports/hotspot/src/share/vm/includeDB_shark Mon Nov 09 13:07:15 2009 +0100 +++ b/ports/hotspot/src/share/vm/includeDB_shark Thu Nov 12 16:36:32 2009 +0100 @@ -48,6 +48,8 @@ ciTypeFlow.hpp ciTypeFlow.hpp ciKlass.hpp ciTypeFlow.hpp ciMethodBlocks.hpp +cppInterpreter_.cpp shark_globals.hpp + compileBroker.cpp sharkCompiler.hpp globals.hpp shark_globals_.hpp @@ -55,9 +57,13 @@ globals.cpp globals.cpp shark_globals.hpp llvmValue.hpp llvmHeaders.hpp +llvmValue.hpp sharkContext.hpp llvmValue.hpp sharkType.hpp nmethod.cpp sharkCompiler.hpp + +sharedRuntime_.cpp compileBroker.hpp +sharedRuntime_.cpp sharkCompiler.hpp shark_globals.cpp shark_globals.hpp @@ -95,7 +101,7 @@ sharkBuilder.cpp sharkBuilder.cpp resourceArea.hpp sharkBuilder.cpp llvmHeaders.hpp sharkBuilder.cpp sharkBuilder.hpp -sharkBuilder.cpp sharkCompiler.hpp +sharkBuilder.cpp sharkContext.hpp sharkBuilder.cpp sharkRuntime.hpp sharkBuilder.cpp synchronizer.hpp sharkBuilder.cpp thread.hpp @@ -108,7 +114,6 @@ sharkBuilder.hpp sharkBuilder.hpp llvmValue.hpp sharkBuilder.hpp sizes.hpp sharkBuilder.hpp sharkCodeBuffer.hpp -sharkBuilder.hpp sharkCompiler.hpp sharkBuilder.hpp sharkType.hpp sharkBuilder.hpp sharkValue.hpp sharkBuilder.hpp sharkEntry.hpp @@ -145,16 +150,29 @@ sharkCompiler.cpp sharkCompiler.cpp sharkBuilder.hpp sharkCompiler.cpp sharkCodeBuffer.hpp sharkCompiler.cpp sharkCompiler.hpp +sharkCompiler.cpp sharkContext.hpp sharkCompiler.cpp sharkEntry.hpp sharkCompiler.cpp sharkFunction.hpp sharkCompiler.cpp sharkMemoryManager.hpp +sharkCompiler.cpp sharkNativeWrapper.hpp sharkCompiler.hpp abstractCompiler.hpp sharkCompiler.hpp ciEnv.hpp sharkCompiler.hpp ciMethod.hpp +sharkCompiler.hpp compileBroker.hpp sharkCompiler.hpp llvmHeaders.hpp sharkCompiler.hpp sharkMemoryManager.hpp +sharkContext.cpp arrayOop.hpp +sharkContext.cpp globalDefinitions.hpp +sharkContext.cpp llvmHeaders.hpp +sharkContext.cpp oop.hpp +sharkContext.cpp sharkContext.hpp + +sharkContext.hpp llvmHeaders.hpp +sharkContext.hpp sharkCompiler.hpp + +sharkConstant.cpp ciInstance.hpp sharkConstant.cpp ciStreams.hpp sharkConstant.cpp sharkBuilder.hpp sharkConstant.cpp sharkConstant.hpp @@ -186,7 +204,9 @@ sharkFunction.hpp sharkFunction.hpp llvmHeaders.hpp sharkFunction.hpp llvmValue.hpp sharkFunction.hpp sharkBuilder.hpp +sharkFunction.hpp sharkContext.hpp sharkFunction.hpp sharkInvariants.hpp +sharkFunction.hpp sharkStack.hpp sharkInliner.cpp allocation.hpp sharkInliner.cpp bytecodes.hpp @@ -229,8 +249,6 @@ sharkInvariants.hpp sharkInvariants.hpp dependencies.hpp sharkInvariants.hpp llvmHeaders.hpp sharkInvariants.hpp sharkBuilder.hpp -sharkInvariants.hpp sharkCompiler.hpp -sharkInvariants.hpp sharkMemoryManager.hpp sharkMemoryManager.hpp llvmHeaders.hpp sharkMemoryManager.hpp sharkEntry.hpp @@ -238,6 +256,17 @@ sharkMemoryManager.cpp sharkMemoryManager.cpp llvmHeaders.hpp sharkMemoryManager.cpp sharkEntry.hpp sharkMemoryManager.cpp sharkMemoryManager.hpp + +sharkNativeWrapper.cpp llvmHeaders.hpp +sharkNativeWrapper.cpp sharkNativeWrapper.hpp +sharkNativeWrapper.cpp sharkType.hpp + +sharkNativeWrapper.hpp handles.hpp +sharkNativeWrapper.hpp llvmHeaders.hpp +sharkNativeWrapper.hpp sharkBuilder.hpp +sharkNativeWrapper.hpp sharkContext.hpp +sharkNativeWrapper.hpp sharkInvariants.hpp +sharkNativeWrapper.hpp sharkStack.hpp sharkRuntime.cpp biasedLocking.hpp sharkRuntime.cpp deoptimization.hpp @@ -248,8 +277,19 @@ sharkRuntime.cpp sharkRuntime.hpp allocation.hpp sharkRuntime.hpp llvmHeaders.hpp +sharkRuntime.hpp llvmValue.hpp sharkRuntime.hpp klassOop.hpp sharkRuntime.hpp thread.hpp + +sharkStack.cpp llvmHeaders.hpp +sharkStack.cpp sharkFunction.hpp +sharkStack.cpp sharkNativeWrapper.hpp +sharkStack.cpp sharkStack.hpp +sharkStack.cpp sharkType.hpp + +sharkStack.hpp llvmHeaders.hpp +sharkStack.hpp sharkInvariants.hpp +sharkStack.hpp sharkType.hpp sharkState.cpp allocation.hpp sharkState.cpp ciType.hpp @@ -279,6 +319,8 @@ sharkTopLevelBlock.cpp sharkTopLevelBlock.cpp allocation.hpp sharkTopLevelBlock.cpp bytecodes.hpp sharkTopLevelBlock.cpp ciField.hpp +sharkTopLevelBlock.cpp ciInstance.hpp +sharkTopLevelBlock.cpp ciObjArrayKlass.hpp sharkTopLevelBlock.cpp ciStreams.hpp sharkTopLevelBlock.cpp ciType.hpp sharkTopLevelBlock.cpp ciTypeFlow.hpp @@ -307,17 +349,11 @@ sharkTopLevelBlock.hpp sharkTopLevelBlock.hpp sharkState.hpp sharkTopLevelBlock.hpp sharkValue.hpp -sharkType.cpp arrayOop.hpp -sharkType.cpp globalDefinitions.hpp -sharkType.cpp llvmHeaders.hpp -sharkType.cpp oop.hpp -sharkType.cpp sharkEntry.hpp -sharkType.cpp sharkType.hpp - sharkType.hpp allocation.hpp sharkType.hpp ciType.hpp sharkType.hpp globalDefinitions.hpp sharkType.hpp llvmHeaders.hpp +sharkType.hpp sharkContext.hpp sharkValue.cpp ciType.hpp sharkValue.cpp llvmHeaders.hpp diff -r 9ccd1c960e63 -r ffc24070b575 ports/hotspot/src/share/vm/shark/llvmHeaders.hpp --- a/ports/hotspot/src/share/vm/shark/llvmHeaders.hpp Mon Nov 09 13:07:15 2009 +0100 +++ b/ports/hotspot/src/share/vm/shark/llvmHeaders.hpp Thu Nov 12 16:36:32 2009 +0100 @@ -32,16 +32,12 @@ #include #include #include -#if SHARK_LLVM_VERSION >= 26 #include -#endif #include #include #include -#if SHARK_LLVM_VERSION >= 26 #include #include -#endif #include #include #if SHARK_LLVM_VERSION < 27 diff -r 9ccd1c960e63 -r ffc24070b575 ports/hotspot/src/share/vm/shark/llvmValue.hpp --- a/ports/hotspot/src/share/vm/shark/llvmValue.hpp Mon Nov 09 13:07:15 2009 +0100 +++ b/ports/hotspot/src/share/vm/shark/llvmValue.hpp Thu Nov 12 16:36:32 2009 +0100 @@ -39,33 +39,21 @@ class LLVMValue : public AllStatic { } static llvm::ConstantFP* jfloat_constant(jfloat value) { -#if SHARK_LLVM_VERSION >= 26 - return llvm::ConstantFP::get(llvm::getGlobalContext(), llvm::APFloat(value)); -#else - return llvm::ConstantFP::get(SharkType::jfloat_type(), value); -#endif + return llvm::ConstantFP::get(SharkContext::current(), llvm::APFloat(value)); } static llvm::ConstantFP* jdouble_constant(jdouble value) { -#if SHARK_LLVM_VERSION >= 26 - return llvm::ConstantFP::get(llvm::getGlobalContext(), llvm::APFloat(value)); -#else - return llvm::ConstantFP::get(SharkType::jdouble_type(), value); -#endif + return llvm::ConstantFP::get(SharkContext::current(), llvm::APFloat(value)); } static llvm::ConstantPointerNull* null() { - return llvm::ConstantPointerNull::get(SharkType::jobject_type()); + return llvm::ConstantPointerNull::get(SharkType::oop_type()); } public: static llvm::ConstantInt* bit_constant(int value) { -#if SHARK_LLVM_VERSION >= 26 - return llvm::ConstantInt::get(llvm::Type::getInt1Ty(llvm::getGlobalContext()), value, false); -#else - return llvm::ConstantInt::get(llvm::Type::Int1Ty, value, false); -#endif + return llvm::ConstantInt::get(SharkType::bit_type(), value, false); } static llvm::ConstantInt* intptr_constant(intptr_t value) { diff -r 9ccd1c960e63 -r ffc24070b575 ports/hotspot/src/share/vm/shark/sharkBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Mon Nov 09 13:07:15 2009 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Thu Nov 12 16:36:32 2009 +0100 @@ -532,31 +532,19 @@ void SharkBlock::parse_bytecode(int star b = pop(); a = pop(); push(SharkValue::create_jfloat( -#if SHARK_LLVM_VERSION >= 26 builder()->CreateFAdd(a->jfloat_value(), b->jfloat_value()))); -#else - builder()->CreateAdd(a->jfloat_value(), b->jfloat_value()))); -#endif break; case Bytecodes::_fsub: b = pop(); a = pop(); push(SharkValue::create_jfloat( -#if SHARK_LLVM_VERSION >= 26 builder()->CreateFSub(a->jfloat_value(), b->jfloat_value()))); -#else From andrew at icedtea.classpath.org Mon May 10 06:27:01 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 10 May 2010 13:27:01 +0000 Subject: /hg/icedtea: 18 new changesets Message-ID: changeset c9ea1f8058cd in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=c9ea1f8058cd author: Xerxes R?nby date: Thu Nov 12 16:39:22 2009 +0100 Adjust sharkMemoryManager to support LLVM 2.7svn rev 86606. 2009-11-12 Xerxes R?nby * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp (SharkMemoryManager::getDlsymTable): Made dependent on the LLVM version to be buildable with LLVM 2.7svn r86606 and later. (SharkMemoryManager::SetDlsymTable): Likewise. * ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp (SharkMemoryManager::getDlsymTable): Likewise. (SharkMemoryManager::SetDlsymTable): Likewise. changeset f231ed44ea45 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=f231ed44ea45 author: Gary Benson date: Wed Nov 18 10:56:39 2009 -0500 IA64 is NOT_X86. 2009-11-18 Gary Benson * patches/icedtea-shark.patch (hotspot/src/share/vm/utilities/macros.hpp): IA64 is NOT_X86. changeset 6afccc563e13 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=6afccc563e13 author: Gary Benson date: Mon Nov 23 12:41:55 2009 +0100 Support s390x in the JCK script. 2009-11-23 Gary Benson * contrib/jck/compile-native-code.sh: Support s390x. changeset 292b821ef2ff in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=292b821ef2ff author: Deepak Bhole date: Fri Nov 27 11:17:31 2009 -0500 Fix IcedTea Bug# 406: Handle pages with nested object tags (with latter being for IE) changeset d05d0308e1ba in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=d05d0308e1ba author: Pavel Tisnovsky date: Mon May 10 12:48:50 2010 +0100 Synchronise Gervill sources stored in IcedTea overlay with OpenJDK sources 6833357: Improve time-stamp support in Gervill to reduce jitter. 6823449: Gervill: ArrayIndexOutOfBoundsException thrown when trying to 6806019: 38 JCK api/javax_sound/midi/ tests fails starting from jdk7 b46 2009-12-02 Pavel Tisnovsky Synchronise Gervill sources stored in IcedTea overlay with OpenJDK sources 6833357: Improve time-stamp support in Gervill to reduce jitter. 6823449: Gervill: ArrayIndexOutOfBoundsException thrown when trying to 6806019: 38 JCK api/javax_sound/midi/ tests fails starting from jdk7 b46 * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.t xt, * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudio Buffer.java, * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChann el.java, * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLimit er.java, * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMainM ixer.java, * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftRecei ver.java, * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynth esizer.java, * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftVoice .java: Synchronised with upstream. changeset e110c66762c2 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=e110c66762c2 author: Gary Benson date: Thu Dec 03 09:16:00 2009 +0000 Remove local copy of Gervill sources. 2009-12-03 Gary Benson * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/: Removed. changeset 43b4c1a51d01 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=43b4c1a51d01 author: Gary Benson date: Mon May 10 12:59:28 2010 +0100 Remove patches/icedtea-bytecodeInterpreter.patch as no longer used. 2009-12-03 Gary Benson * patches/icedtea-bytecodeInterpreter.patch: Removed. changeset f5e6220841bc in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=f5e6220841bc author: Gary Benson date: Mon May 10 13:20:19 2010 +0100 Cleanup build configuration following Zero upstreaming. 2009-12-08 Gary Benson * ports/hotspot/make/linux/platform_zero.in: New file. 2009-12-08 Gary Benson * Makefile.am (stamps/ports.stamp): Updated paths, and don't make jvm.cfg or ergo_$arch.c for Zero. changeset 84efb3791f39 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=84efb3791f39 author: Mark Wielaard date: Sun Dec 13 22:32:25 2009 +0100 Add systemtap jstack support. * Makefile.am (stamps/icedtea.stamp): Install jstack.stp. (stamps /icedtea-debug.stamp): Likewise. * configure.ac (AC_CONFIG_FILES): Add tapset/jstack.stp. * tapset/jstack.stp.in: New tapset. changeset 3823a67a9e79 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3823a67a9e79 author: Matthias Klose date: Mon May 10 13:38:05 2010 +0100 Fix build of cacao for armv7 and in thumb mode. 2009-12-17 Matthias Klose * patches/cacao/arm-arch-defines.patch: New, fix cacao build on ARM in thumb mode. Cacao bug PR135. * Makefile.am (ICEDTEA_PATCHES): Apply the above. changeset 295990d9ff36 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=295990d9ff36 author: Matthias Klose date: Mon May 10 13:40:11 2010 +0100 Fix sanity check for parisc 2009-12-19 Matthias Klose * patches/parisc.patch: Fix sanity check for parisc. * Makefile.am (ICEDTEA_PATCHES): Apply the above. changeset f7ee13b676ee in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=f7ee13b676ee author: Gary Benson date: Tue Dec 22 11:42:03 2009 +0100 Add checkopts Python script. 2009-12-22 Gary Benson * contrib/checkopts/checkopts: New file. * contrib/checkopts/Test.java: Likewise. changeset 3e9b5afed920 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3e9b5afed920 author: Andrew John Hughes date: Mon May 10 13:48:58 2010 +0100 Backed out changeset 316dbf49f070 changeset e6df1cd81c6f in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=e6df1cd81c6f author: Andrew John Hughes date: Mon May 10 13:57:16 2010 +0100 Merge changeset b45431993227 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=b45431993227 author: Deepak Bhole date: Mon May 10 14:15:46 2010 +0100 Bug fixes and update to work with latest Chromium. - Stability improvements - Fix regression introduced with fix for bug# 406 - Fix to build with Gecko 1.9.1.5 - Add proper proxy support - Update to work with latest chromium builds 2009-12-24 Deepak Bhole * Makefile.am: Define XP_UNIX, without which critical plugin API functions don't get exported from Mozilla API anymore. * plugin/icedteanp/IcedTeaNPPlugin.cc: Update to build with gecko 1.9.1.5. (consume_message): Use calloc instead of malloc. (decode_url): Remove function. Rewritten from scratch (this time without using any Mozilla code) in IcedTeaPluginUtils. (get_scriptable_object): Initialize handle to 0 if not already set. (GCJ_SetWindow): Set proper instance id when manipulating height. * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Add temporary workaround for chromium which seems to free on calls to NPN_PluginThreadAsyncCall. * plugin/icedteanp/IcedTeaPluginUtils.cc (decodeURL): New function. Decodes an encoded URL. * plugin/icedteanp/IcedTeaPluginUtils.h: Added helper macros for decodeURL. * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Make panel visible only if handle is non-zero. (parse): Fix regression introduced when fix for Bug# 406 was ported over. Normalized default width and height. changeset 3d3e029c0130 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3d3e029c0130 author: Deepak Bhole date: Mon May 10 14:22:04 2010 +0100 - Fixed some regressions caused by the way Firefox >= 3.5 supplies URLs 2010-01-05 Deepak Bhole * plugin/icedtea/java/sun/applet/PluginAppletViewer.java (handleMessage): Decode URL before setting documentbase. * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java (handleMessage): Decode URL before setting documentbase. changeset d351c40e4bbb in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=d351c40e4bbb author: Deepak Bhole date: Wed Jan 06 16:40:43 2010 -0500 Remove debug-specific MOZILLA_VERSION_COLLAPSED definition. 2010-01-06 Deepak Bhole * plugin/icedteanp/IcedTeaNPPlugin.h: Remove debug specific line from code. changeset 22113074838a in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=22113074838a author: Gary Benson date: Mon Jan 11 11:43:43 2010 +0000 Update checkopts script following 6914622. 2010-01-11 Gary Benson * contrib/checkopts/checkopts.py: Updated for 6914622. diffstat: 132 files changed, 3530 insertions(+), 32134 deletions(-) ChangeLog | 134 Makefile.am | 17 configure.ac | 1 contrib/checkopts/Test.java | 5 contrib/checkopts/checkopts.py | 149 contrib/jck/compile-native-code.sh | 2 netx/net/sourceforge/jnlp/Launcher.java | 8 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java | 131 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatConverter.java | 1058 --- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatFormatConverter.java | 617 -- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFloatInputStream.java | 281 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioSynthesizer.java | 128 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioSynthesizerPropertyInfo.java | 76 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt | 310 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSInfo.java | 109 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSInstrument.java | 448 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSModulator.java | 351 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSRegion.java | 150 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSample.java | 122 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSampleLoop.java | 63 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSampleOptions.java | 80 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSoundbank.java | 1287 ---- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/DLSSoundbankReader.java | 74 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/EmergencySoundbank.java | 2695 ---------- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/FFT.java | 748 -- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/InvalidDataException.java | 45 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/InvalidFormatException.java | 44 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/JARSoundbankReader.java | 120 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/LICENSE | 347 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelAbstractChannelMixer.java | 126 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelAbstractOscillator.java | 200 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelByteBuffer.java | 329 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelByteBufferWavetable.java | 281 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelChannelMixer.java | 50 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelConnectionBlock.java | 135 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelDestination.java | 117 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelDirectedPlayer.java | 36 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelDirector.java | 46 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelIdentifier.java | 169 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelInstrument.java | 136 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelInstrumentComparator.java | 52 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelMappedInstrument.java | 62 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelOscillator.java | 44 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelOscillatorStream.java | 48 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelPatch.java | 52 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelPerformer.java | 143 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelSource.java | 109 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelStandardDirector.java | 86 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelStandardTransform.java | 139 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelTransform.java | 35 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/ModelWavetable.java | 49 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/README.txt | 402 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/RIFFInvalidDataException.java | 43 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/RIFFInvalidFormatException.java | 44 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/RIFFReader.java | 332 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/RIFFWriter.java | 365 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2GlobalRegion.java | 33 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2Instrument.java | 911 --- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2InstrumentRegion.java | 43 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2Layer.java | 78 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2LayerRegion.java | 43 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2Modulator.java | 97 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2Region.java | 167 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2Sample.java | 216 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2Soundbank.java | 973 --- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SF2SoundbankReader.java | 73 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SimpleInstrument.java | 196 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SimpleSoundbank.java | 145 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAbstractResampler.java | 390 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioBuffer.java | 104 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioProcessor.java | 48 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioPusher.java | 92 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java | 1556 ----- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannelProxy.java | 202 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChorus.java | 337 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftControl.java | 36 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftCubicResampler.java | 87 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftEnvelopeGenerator.java | 298 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftFilter.java | 616 -- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftInstrument.java | 82 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftJitterCorrector.java | 277 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLanczosResampler.java | 118 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLimiter.java | 191 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLinearResampler.java | 70 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLinearResampler2.java | 108 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLowFrequencyOscillator.java | 130 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMainMixer.java | 1029 --- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMidiAudioFileReader.java | 214 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingClip.java | 539 -- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingDataLine.java | 522 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingMainMixer.java | 259 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingMixer.java | 529 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingMixerProvider.java | 66 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMixingSourceDataLine.java | 519 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftPerformer.java | 775 -- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftPointResampler.java | 63 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftProcess.java | 41 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftProvider.java | 51 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftReceiver.java | 83 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftResampler.java | 35 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftResamplerStreamer.java | 38 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftReverb.java | 515 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftShortMessage.java | 58 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSincResampler.java | 139 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java | 1179 ---- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftTuning.java | 256 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftVoice.java | 851 --- overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/WaveExtensibleFileReader.java | 339 - overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileReader.java | 166 overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/WaveFloatFileWriter.java | 147 patches/cacao/arm-arch-defines.patch | 47 patches/hotspot/default/icedtea-shark.patch | 8 patches/icedtea-bytecodeInterpreter.patch | 11 patches/parisc.patch | 14 plugin/icedtea/java/sun/applet/PluginAppletViewer.java | 1910 +++---- plugin/icedteanp/IcedTeaJavaRequestProcessor.cc | 347 - plugin/icedteanp/IcedTeaJavaRequestProcessor.h | 51 plugin/icedteanp/IcedTeaNPPlugin.cc | 6 plugin/icedteanp/IcedTeaPluginRequestProcessor.cc | 571 +- plugin/icedteanp/IcedTeaPluginRequestProcessor.h | 1 plugin/icedteanp/IcedTeaPluginUtils.cc | 272 - plugin/icedteanp/IcedTeaPluginUtils.h | 58 plugin/icedteanp/IcedTeaScriptablePluginObject.cc | 254 plugin/icedteanp/IcedTeaScriptablePluginObject.h | 12 plugin/icedteanp/java/netscape/javascript/JSObject.java | 7 plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java | 139 plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 103 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 1969 +++---- ports/hotspot/make/linux/platform_zero.in | 17 ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp | 2 ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp | 2 tapset/jstack.stp.in | 503 + diffs (truncated from 38653 to 500 lines): diff -r ffc24070b575 -r 22113074838a ChangeLog --- a/ChangeLog Thu Nov 12 16:36:32 2009 +0100 +++ b/ChangeLog Mon Jan 11 11:43:43 2010 +0000 @@ -1,3 +1,131 @@ 2009-11-12 Xerxes R??nby + + * contrib/checkopts/checkopts: Updated for the above. + +2010-01-06 Deepak Bhole + + * plugin/icedteanp/IcedTeaNPPlugin.h: Remove debug specific line from + code. + +2010-01-05 Deepak Bhole + + * plugin/icedtea/java/sun/applet/PluginAppletViewer.java + (handleMessage): Decode URL before setting documentbase. + (parse): Port over parser fixes from NP plugin tree. + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java + (handleMessage): Decode URL before setting documentbase. + +2009-12-24 Deepak Bhole + + * Makefile.am: Define XP_UNIX, without which critical plugin API + functions don't get exported from Mozilla API anymore. + * plugin/icedteanp/IcedTeaNPPlugin.cc: Update to build with gecko + 1.9.1.5. + (consume_message): Use calloc instead of malloc. + (decode_url): Remove function. Rewritten from scratch (this time without + using any Mozilla code) in IcedTeaPluginUtils. + (get_scriptable_object): Initialize handle to 0 if not already set. + (GCJ_SetWindow): Set proper instance id when manipulating height. + * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc: Add temporary + workaround for chromium which seems to free on calls to + NPN_PluginThreadAsyncCall. + * plugin/icedteanp/IcedTeaPluginUtils.cc + (decodeURL): New function. Decodes an encoded URL. + * plugin/icedteanp/IcedTeaPluginUtils.h: Added helper macros for + decodeURL. + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Make panel + visible only if handle is non-zero. + (parse): Fix regression introduced when fix for Bug# 406 was ported over. + Normalized default width and height. + +2009-12-22 Gary Benson + + * contrib/checkopts/checkopts.py: New file. + * contrib/checkopts/Test.java: Likewise. + +2009-12-19 Matthias Klose + + * patches/icedtea-parisc.patch: Fix sanity check for parisc. + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + +2009-12-17 Matthias Klose + + * patches/cacao/arm-arch-defines.patch: New, fix cacao build on + ARM in thumb mode. Cacao bug PR135. + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + +2009-12-13 Mark Wielaard + + * Makefile.am (stamps/icedtea.stamp): Install jstack.stp. + (stamps/icedtea-debug.stamp): Likewise. + * configure.ac (AC_CONFIG_FILES): Add tapset/jstack.stp. + * tapset/jstack.stp.in: New tapset. + +2009-12-08 Gary Benson + + * ports/hotspot/make/linux/platform_zero.in: New file. + +2009-12-08 Gary Benson + + * Makefile.am + (stamps/ports.stamp): Updated paths, and don't make jvm.cfg or + ergo_$arch.c for Zero. + +2009-12-03 Gary Benson + + * patches/icedtea-bytecodeInterpreter.patch: Removed. + +2009-12-03 Gary Benson + + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/: + Removed. + +2009-12-02 Pavel Tisnovsky + + Synchronise Gervill sources stored in IcedTea overlay with OpenJDK sources + 6833357: Improve time-stamp support in Gervill to reduce jitter. + 6823449: Gervill: ArrayIndexOutOfBoundsException thrown when trying to + 6806019: 38 JCK api/javax_sound/midi/ tests fails starting from jdk7 b46 + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/CHANGES.txt, + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftAudioBuffer.java, + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftChannel.java, + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftLimiter.java, + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftMainMixer.java, + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftReceiver.java, + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftSynthesizer.java, + * overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/SoftVoice.java: + Synchronised with upstream. + +2009-11-27 Deepak Bhole + + * plugin/icedtea/java/sun/applet/PluginAppletViewer.java + (getWindow): Fortify condition for wait for panel initialization. + (parse): Handle nested objected tags, don't allow parameter value + overwrite. + * netx/net/sourceforge/jnlp/Launcher.java + (createApplet): Set context classloader for the thread to the applet's + classloader, so that getContextClassLoader calls succeed. + +2009-11-23 Gary Benson + + * contrib/jck/compile-native-code.sh: Support s390x. + +2009-11-18 Gary Benson + + * patches/icedtea-shark.patch + (hotspot/src/share/vm/utilities/macros.hpp): + IA64 is NOT_X86. + +2009-11-12 Xerxes R??nby + + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp + (SharkMemoryManager::getDlsymTable): Made dependent on the LLVM version + to be buildable with LLVM 2.7svn r86606 and later. + (SharkMemoryManager::SetDlsymTable): Likewise. + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp + (SharkMemoryManager::getDlsymTable): Likewise. + (SharkMemoryManager::SetDlsymTable): Likewise. + 2009-11-12 Xerxes R??nby * patches/icedtea-shark.patch @@ -667,12 +795,6 @@ 2010-01-06 Deepak Bhole - - * plugin/icedeanp/*: Blanket merge with icedtea6 branch. - * netx/net/sourceforge/jnlp/Launcher.java: Switch to only import necessary - classes rather than *. 2009-12-22 Deepak Bhole diff -r ffc24070b575 -r 22113074838a Makefile.am --- a/Makefile.am Thu Nov 12 16:36:32 2009 +0100 +++ b/Makefile.am Mon Jan 11 11:43:43 2010 +0000 @@ -316,7 +316,8 @@ ICEDTEA_PATCHES = \ patches/icedtea-netx.patch \ patches/icedtea-disable-intree-ec.patch \ patches/icedtea-sources.patch \ - patches/no-precompiled.patch + patches/no-precompiled.patch \ + patches/parisc.patch # Conditional patches @@ -334,7 +335,8 @@ ICEDTEA_PATCHES += \ patches/cacao/no-strict-aliasing.patch \ patches/cacao/openjdk7.patch \ patches/cacao/version.patch \ - patches/cacao/versioninfo.patch + patches/cacao/versioninfo.patch \ + patches/cacao/arm-arch-defines.patch endif if WITH_CACAO @@ -1349,7 +1351,8 @@ clean-extract-jaxws: # Link ports sources into tree stamps/ports.stamp: stamps/extract.stamp - for target in $(abs_top_srcdir)/ports/hotspot/make/*/makefiles/* \ + for target in $(abs_top_srcdir)/ports/hotspot/make/*/platform_zero.in \ + $(abs_top_srcdir)/ports/hotspot/make/*/makefiles/* \ $(abs_top_srcdir)/ports/hotspot/src/cpu/zero/vm/* \ $(abs_top_srcdir)/ports/hotspot/src/share/vm/*; do \ link=$$(dirname $$target | sed 's/^.*ports/openjdk/'|sed "s#hotspot/build#hotspot/make#"); \ @@ -1816,7 +1819,9 @@ if ENABLE_SYSTEMTAP $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ - fi + fi; \ + cp $(abs_top_builddir)/tapset/jstack.stp \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp endif if ENABLE_NSS cp $(abs_top_builddir)/nss.cfg \ @@ -1897,7 +1902,9 @@ if ENABLE_SYSTEMTAP $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ - fi + fi; \ + cp $(abs_top_builddir)/tapset/jstack.stp \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp endif if ENABLE_NSS cp $(abs_top_builddir)/nss.cfg \ diff -r ffc24070b575 -r 22113074838a configure.ac --- a/configure.ac Thu Nov 12 16:36:32 2009 +0100 +++ b/configure.ac Mon Jan 11 11:43:43 2010 +0000 @@ -380,6 +380,7 @@ public: AC_SUBST(ABS_SERVER_LIBJVM_SO) AC_CONFIG_FILES([tapset/hotspot.stp]) AC_CONFIG_FILES([tapset/hotspot_jni.stp]) + AC_CONFIG_FILES([tapset/jstack.stp]) fi dnl Check for libpng headers and libraries. diff -r ffc24070b575 -r 22113074838a contrib/checkopts/Test.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/checkopts/Test.java Mon Jan 11 11:43:43 2010 +0000 @@ -0,0 +1,5 @@ +class Test { + public static void main(String[] args) { + System.out.println("Hello world"); + } +} diff -r ffc24070b575 -r 22113074838a contrib/checkopts/checkopts.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/contrib/checkopts/checkopts.py Mon Jan 11 11:43:43 2010 +0000 @@ -0,0 +1,149 @@ +#!/usr/bin/env python + +import os +import subprocess +import sys + +class Flag: + def __init__(self, line): + line = line.split() + self.type = line.pop(0) + self.name = line.pop(0) + assert line[0] in ("=", ":=") + line = " ".join(line[1:]) + self.is_diagnostic = False + if line.endswith("}"): + index = line.rfind("{") + if index != -1: + self.is_diagnostic = "diagnostic" in line[index + 1:-1].split() + line = line[:index] + self.value = line.strip() + + @property + def test_values(self): + if self.type == "bool": + if self.name in ( + "PrintFlagsInitial", # already done :) + "ExtendedDTraceProbes", # Solaris only + "RequireSharedSpaces", # Not set up + "PauseAtStartup"): # Just don't... + return (False,) + return (False, True) + return () + + def option(self, value): + if self.type == "bool": + return "-XX:%s%s" % (value and "+" or "-", self.name) + elif self.type.endswith("intx"): + return "-XX:%s=%d" % (self.name, value) + raise ValueError, self.type + +class TestFailure(Exception): + pass + +class Main: + def __init__(self, java): + self.java = os.path.realpath(java) + self.base = os.path.dirname(os.path.realpath(sys.argv[0])) + if not os.path.exists(os.path.join(self.base, "Test.class")): + out, err = subprocess.Popen( + [self.java + "c", "Test.java"], + stdout = subprocess.PIPE, + stderr = subprocess.PIPE, + cwd = self.base).communicate() + if out or err: + sys.stdout.write(out) + sys.stderr.write(err) + sys.exit(1) + self.passes = self.fails = 0 + for flag in self.read_flags(): + for value in flag.test_values: + self.test(flag, value) + print "%d passes, %d fails" % (self.passes, self.fails) + + def read_flags(self): + out, err = subprocess.Popen( + [self.java, + "-XX:+UnlockDiagnosticVMOptions", + "-XX:+PrintFlagsInitial"], + stdout = subprocess.PIPE, + stderr = subprocess.PIPE).communicate() + if err: + sys.stderr.write(err) + sys.exit(1) + lines = out.rstrip().split("\n") + line = lines.pop(0) + if line != "[Global flags]": + print >>sys.stderr, "error: unexpected output %s" % repr(line) + sys.exit(1) + flags = {} + for line in lines: + flag = Flag(line) + assert not flags.has_key(flag.name) + flags[flag.name] = flag + flags = flags.items() + flags.sort() + return [flag for name, flag in flags] + + def test(self, flag, value): + for dir in xrange(1000): + dir = os.path.join(self.base, "results", flag.name, "%03d" % dir) + if not os.path.isdir(dir): + break + os.makedirs(dir) + cmd = [self.java] + if flag.is_diagnostic: + cmd.append("-XX:+UnlockDiagnosticVMOptions") + if flag.name.startswith("CMS"): + cmd.append("-XX:+UseConcMarkSweepGC") + flag = flag.option(value) + cmd.append(flag) + cmd.extend(("-cp", self.base, "Test")) + print "%-56s %s" % (flag, dir[len(self.base + os.sep):]) + print >>open(os.path.join(dir, "cmd"), "w"), " ".join(cmd) + out, err = subprocess.Popen( + cmd, + stdout = subprocess.PIPE, + stderr = subprocess.PIPE, + cwd = dir).communicate() + open(os.path.join(dir, "out"), "w").write(out) + open(os.path.join(dir, "err"), "w").write(err) + try: + self.check(dir, out, err) + self.passes += 1 + except TestFailure, failure: + print "\x1B[1;31m FAIL: %s\x1B[0m" % failure + self.fails += 1 + + def fail(self, msg): + raise TestFailure(msg) + + def check(self, dir, out, err): + name = os.path.basename(os.path.dirname(dir)) + expect = ["cmd", "err", "out"] + actual = os.listdir(dir) + if name in ("LogCompilation", "LogVMOutput"): + if "hotspot.log" in actual: + expect.append("hotspot.log") + if name == "PerfDataSaveToFile": + for item in actual: + if item.startswith("hsperfdata_"): + expect.append(item) + break + expect.sort() + actual.sort() + while expect != actual: + for item in actual: + if item not in expect: + self.fail("found %s" % item) + self.fail("directory contents not as expected") + if err: + self.fail("err not as expected") + if not "Hello world" in out.split("\n"): + self.fail("out not as expected") + +if __name__ == "__main__": + if len(sys.argv) != 2: + print >>sys.stderr, "usage: %s /path/to/jdk/bin/java" % sys.argv[0] + sys.exit(1) + Main(sys.argv[1]) diff -r ffc24070b575 -r 22113074838a contrib/jck/compile-native-code.sh --- a/contrib/jck/compile-native-code.sh Thu Nov 12 16:36:32 2009 +0100 +++ b/contrib/jck/compile-native-code.sh Mon Jan 11 11:43:43 2010 +0000 @@ -22,7 +22,7 @@ case "$arch" in i?86|ppc) MFLAG=-m32 ;; - x86_64|ppc64) + x86_64|ppc64|s390x) MFLAG=-m64 ;; *) diff -r ffc24070b575 -r 22113074838a netx/net/sourceforge/jnlp/Launcher.java --- a/netx/net/sourceforge/jnlp/Launcher.java Thu Nov 12 16:36:32 2009 +0100 +++ b/netx/net/sourceforge/jnlp/Launcher.java Mon Jan 11 11:43:43 2010 +0000 @@ -19,13 +19,11 @@ package net.sourceforge.jnlp; import java.applet.Applet; import java.awt.Container; -import java.io.File; +import java.io.*; import java.lang.management.ManagementFactory; import java.lang.management.ThreadMXBean; import java.lang.reflect.Method; -import java.net.InetAddress; -import java.net.URL; -import java.net.UnknownHostException; +import java.net.*; import java.util.LinkedList; import java.util.List; import java.util.jar.JarFile; @@ -595,6 +593,8 @@ public class Launcher { group.setApplication(appletInstance); loader.setApplication(appletInstance); + setContextClassLoaderForAllThreads(appletInstance.getClassLoader()); + return appletInstance; } catch (Exception ex) { diff -r ffc24070b575 -r 22113074838a overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java --- a/overlays/openjdk/jdk/src/share/classes/com/sun/media/sound/AudioFileSoundbankReader.java Thu Nov 12 16:36:32 2009 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* - * Copyright 2007 Sun Microsystems, Inc. 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. Sun designates this - * particular file as subject to the "Classpath" exception as provided - * by Sun in the LICENSE file that accompanied this code. - * - * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - */ -package com.sun.media.sound; - -import java.io.ByteArrayOutputStream; -import java.io.DataInputStream; -import java.io.File; -import java.io.IOException; -import java.io.InputStream; -import java.net.URL; - -import javax.sound.midi.InvalidMidiDataException; -import javax.sound.midi.Soundbank; -import javax.sound.midi.spi.SoundbankReader; -import javax.sound.sampled.AudioInputStream; -import javax.sound.sampled.AudioSystem; -import javax.sound.sampled.UnsupportedAudioFileException; - -/** - * Soundbank reader that uses audio files as soundbanks. - * - * @author Karl Helgason - */ -public class AudioFileSoundbankReader extends SoundbankReader { - - public Soundbank getSoundbank(URL url) - throws InvalidMidiDataException, IOException { - try { - AudioInputStream ais = AudioSystem.getAudioInputStream(url); - Soundbank sbk = getSoundbank(ais); - ais.close(); - return sbk; - } catch (UnsupportedAudioFileException e) { - return null; - } catch (IOException e) { - return null; - } - } - - public Soundbank getSoundbank(InputStream stream) - throws InvalidMidiDataException, IOException { - stream.mark(512); - try { - AudioInputStream ais = AudioSystem.getAudioInputStream(stream); - Soundbank sbk = getSoundbank(ais); - if (sbk != null) - return sbk; - } catch (UnsupportedAudioFileException e) { - } catch (IOException e) { - } - stream.reset(); - return null; - } - - public Soundbank getSoundbank(AudioInputStream ais) - throws InvalidMidiDataException, IOException { - try { - byte[] buffer; From bugzilla-daemon at icedtea.classpath.org Mon May 10 07:08:49 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 10 May 2010 14:08:49 +0000 Subject: [Bug 486] NetX UTF-16 .jnlp net.sourceforge.jnlp.ParseException Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=486 mwong at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |ASSIGNED -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 10 07:09:38 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 10 May 2010 14:09:38 +0000 Subject: [Bug 486] NetX UTF-16 .jnlp net.sourceforge.jnlp.ParseException Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=486 mwong at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|mwong at redhat.com |.org | Status|ASSIGNED |NEW -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the assignee for the bug, or are watching the assignee. From Tomas.Hurka at Sun.COM Mon May 10 07:48:31 2010 From: Tomas.Hurka at Sun.COM (Tomas Hurka) Date: Mon, 10 May 2010 16:48:31 +0200 Subject: Can't build with --enable-visualvm In-Reply-To: <5FF0FFBC-831E-47A9-AC39-3F7ED33F1BED@sun.com> References: <4BE1727B.9010701@redhat.com> <5FE8534D-DEDC-4A70-A946-1BBD5AAED9F7@sun.com> <4BE17B1E.8090506@redhat.com> <4BE17C5D.6080002@redhat.com> <5FF0FFBC-831E-47A9-AC39-3F7ED33F1BED@sun.com> Message-ID: <1BEC4588-251D-468B-BAFE-5909A8C69552@sun.com> Andrew, On 5 May 2010, at 16:45, Tomas Hurka wrote: > On 5 May 2010, at 16:10, Andrew Haley wrote: > [..] >> I also needed >> >> --- netbeans/lib.profiler/native/build/buildnative-linux64.sh~ >> 2009-11-23 20:54:37.000000000 +0000 >> +++ netbeans/lib.profiler/native/build/buildnative-linux64.sh >> 2010-05-05 14:37:09.890446396 +0100 >> @@ -5,7 +5,7 @@ >> JAVA_HOME=$1 >> JDK_ID=$2 >> echo $JAVA_HOME $JDK_ID >> - gcc32 -I$JAVA_HOME/include -I$JAVA_HOME/include/linux - >> DLINUX -pthread -fPIC -shared -O3 -Wall -m64 \ >> + gcc -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -DLINUX >> -pthread -fPIC -shared -O3 -Wall -m64 \ >> -o ../../release/lib/deployed/$JDK_ID/linux-amd64/ >> libprofilerinterface.so \ >> ../src-jdk15/class_file_cache.c \ >> ../src-jdk15/attach.c \ >> >> I don't know what "gcc32" is for. > For backward compatibility. The build-script is from netbeans > codebase. It is for jdk 1.5 and therefore the native agent should be > build by the same compiler as jdk 1.5. It can be changed for > visualvm, but gcc32 is there from the beginning. I changed gcc32 to gcc in buildnative-linux64.sh in netbeans-profiler- visualvm_release68_1.tar.gz Bye, -- Tomas Hurka NetBeans Profiler http://profiler.netbeans.org VisualVM http://visualvm.dev.java.net Software Engineer, Developer Platforms Group Sun Microsystems, Praha Czech Republic From aph at redhat.com Mon May 10 07:53:28 2010 From: aph at redhat.com (Andrew Haley) Date: Mon, 10 May 2010 15:53:28 +0100 Subject: Can't build with --enable-visualvm In-Reply-To: <1BEC4588-251D-468B-BAFE-5909A8C69552@sun.com> References: <4BE1727B.9010701@redhat.com> <5FE8534D-DEDC-4A70-A946-1BBD5AAED9F7@sun.com> <4BE17B1E.8090506@redhat.com> <4BE17C5D.6080002@redhat.com> <5FF0FFBC-831E-47A9-AC39-3F7ED33F1BED@sun.com> <1BEC4588-251D-468B-BAFE-5909A8C69552@sun.com> Message-ID: <4BE81DE8.7050905@redhat.com> >> On 5 May 2010, at 16:10, Andrew Haley wrote: >> [..] >>> I also needed >>> >>> --- netbeans/lib.profiler/native/build/buildnative-linux64.sh~ >>> 2009-11-23 20:54:37.000000000 +0000 >>> +++ netbeans/lib.profiler/native/build/buildnative-linux64.sh >>> 2010-05-05 14:37:09.890446396 +0100 >>> @@ -5,7 +5,7 @@ >>> JAVA_HOME=$1 >>> JDK_ID=$2 >>> echo $JAVA_HOME $JDK_ID >>> - gcc32 -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -DLINUX >>> -pthread -fPIC -shared -O3 -Wall -m64 \ >>> + gcc -I$JAVA_HOME/include -I$JAVA_HOME/include/linux -DLINUX >>> -pthread -fPIC -shared -O3 -Wall -m64 \ >>> -o >>> ../../release/lib/deployed/$JDK_ID/linux-amd64/libprofilerinterface.so \ >>> ../src-jdk15/class_file_cache.c \ >>> ../src-jdk15/attach.c \ >>> >>> I don't know what "gcc32" is for. >> For backward compatibility. The build-script is from netbeans >> codebase. It is for jdk 1.5 and therefore the native agent should be >> build by the same compiler as jdk 1.5. It can be changed for visualvm, >> but gcc32 is there from the beginning. > > I changed gcc32 to gcc in buildnative-linux64.sh in > netbeans-profiler-visualvm_release68_1.tar.gz > Thanks, Andrew. From andrew at icedtea.classpath.org Mon May 10 10:05:24 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 10 May 2010 17:05:24 +0000 Subject: /hg/icedtea: 3 new changesets Message-ID: changeset dee31ba1367b in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=dee31ba1367b author: Andrew John Hughes date: Mon May 10 17:16:07 2010 +0100 Regenerate Shark patch against b89. 2010-05-10 Andrew John Hughes * patches/hotspot/default/icedtea-shark.patch: Recreated against b89. changeset 81af1ec36e30 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=81af1ec36e30 author: Deepak Bhole date: Mon May 10 18:02:36 2010 +0100 - Stability imrovements - Fix regression introduced with fix for bug# 406 - Fix to build with Gecko 1.9.1.5 - Add proper proxy support - Update to work with latest chromium builds 2009-12-02 Deepak Bhole * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc (newMessageOnBus): Fix error handling code. Add support for NewArray, GetValue, and literal returns (primitives). (getValue): New function. Requests the value of a field from Java, converted to literal for primitives/boxable types. (setSlot): Bypass NPVariant creation. (newArray): New function, creates an array of given type on Java side. (set): Use value directly instead of NPVariant. (setStaticField): Same. (getArrayTypeForJava): New function. Given a variant, returns what type of array should be created to store that variant on Java side. (createJavaObjectFromVariant): Added support for arrays. (callStaticMethod): use direct values instead of NPVariants. (callMethod): Same. * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Updates as needed by changes to IcedTeaJavaRequestProcessor.cc. * plugin/icedteanp/IcedTeaNPPlugin.cc (GCJ_Destroy): Invalidate all NPObjects related to an instance. * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc (sendWindow): Use NPVariant address to store windows info on Java side, rather than the corresponding NPObject address. (call): Use IcedTeaPluginUtilities::javaResultToNPVariant for java var to NPVariant conversion, rather than custom conversion. (sendString): Use new AyncCallThreadData struct and pluginthreadasynccall() for calls that need to be in main thread. (setMember): Send value information directly to _setMember, and let it sort out how to set values. (convertToNPVariant): Moved to utilities class. (sendMember): Deal with NPVariants instead of NPObjects. (queue_processor): Add case for GetSlot (WIP). (storeVariantInJava): Remove deprecated function. (_setMember): Use javaResultToNPVariant to get a value loaded into a variant. Deal with NPVariants instead of NPObjects. (_getMember): Deal with NPVariants instead of NPObjects. (_getString): New function. Returns toString values for variables. * plugin/icedteanp/IcedTeaPluginRequestProcessor.h: Declare new _getString function. * plugin/icedteanp/IcedTeaPluginUtils.cc: Move object map from the plugin request processor class. (strSplit): For efficiency, reserve enough space for strings beforehand. (getUTF8String): Same. (printStringVector): Run only if in debug. (removeInstanceID): New function to remove mapping between an object and an instance. (invalidateInstance): New function. Removes all mappings from objects to the given instance. (getNPObjectFromJavaKey): New function. Given a java object key, returns the corresponding JS object, if any. (storeObjectMapping): New function. Stores a mapping between Java objects and JS objects (peering). (removeObjectMapping): New function. Removes peering between JS object and Java object. (printStringPtrVector): Run only if in debug. (printNPVariant): Same. (NPVariantToString): Store result in provided parameter. (javaResultToNPVariant): New function, moved from IcedTeaScriptablePluginObject. (isObjectJSArray): New function. Returns if given NPObject represents an array. * plugin/icedteanp/IcedTeaPluginUtils.h: Misc. changes as needed by updates to IcedTeaPluginUtils.cc. * plugin/icedteanp/IcedTeaScriptablePluginObject.cc: Move object_map to utilities class. (getProperty): Supply instance id to findClass. (get_scriptable_java_object): Use the new getNPObjectFromJavaKey/storeObjectMapping functions in the utilities class. Also, create object asynchronously. (_createAndRetainJavaObject): New function. Creates a scriptable Java object and increments reference count. (is_valid_java_object): New function. Returns if the given object is still valid. (invalidate): Remove instance and Java side object mapping for given object. (javaResultToNPVariant): Moved to utilities class. (invoke): Create variants peer on Java side before calling callMethod/callStaticMethod. (setProperty): Create variant peers on Java side before calling setField/setStaticField. (construct): Create variant peers on Java side before calling the constructor. * plugin/icedteanp/IcedTeaScriptablePluginObject.h: Misc. changes as needed by updates to IcedTeaScriptablePluginObject.cc. * plugin/icedteanp/java/netscape/javascript/JSObject.java: Added a new string constructor. * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java (getCostAndCastedObject): Add support for array type parameters. (isNum): Return true for boolean (booleans are convertible to int as per spec). (getNum): Remove case for char/Character. (getArrayAsString): New function. For debug only. * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java (handleMessage): Add support for getValue. Wire in array creaion support. Support a '[System]' source for privileged calls. (isInt): New function. Returns if given object is an integer/convertible to an int. * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java (setMember): Send primitive/boxable values as literals. (setSlot): Same. (getWindow): Fortify condition for wait for panel initialization. (parse): Handle nested objected tags, don't allow parameter value overwrite. changeset 549c87a321e0 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=549c87a321e0 author: Matthias Klose date: Mon May 10 18:05:11 2010 +0100 Add zero support for Hitachi SH 2009-01-11 Nobuhiro Iwamatsu Matthias Klose * patches/sh4-support.patch: Add zero support for Hitachi SH. * Makefile.am (ICEDTEA_PATCHES): Apply the above. * NEWS: Mention SH support. diffstat: 18 files changed, 1396 insertions(+), 808 deletions(-) ChangeLog | 116 ++ Makefile.am | 3 NEWS | 1 patches/hotspot/default/icedtea-shark.patch | 118 -- patches/sh4-support.patch | 63 + plugin/icedteanp/IcedTeaJavaRequestProcessor.cc | 347 ++++-- plugin/icedteanp/IcedTeaJavaRequestProcessor.h | 51 plugin/icedteanp/IcedTeaNPPlugin.cc | 4 plugin/icedteanp/IcedTeaPluginRequestProcessor.cc | 551 ++-------- plugin/icedteanp/IcedTeaPluginRequestProcessor.h | 1 plugin/icedteanp/IcedTeaPluginUtils.cc | 270 ++++ plugin/icedteanp/IcedTeaPluginUtils.h | 58 + plugin/icedteanp/IcedTeaScriptablePluginObject.cc | 254 ++-- plugin/icedteanp/IcedTeaScriptablePluginObject.h | 12 plugin/icedteanp/java/netscape/javascript/JSObject.java | 7 plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java | 139 ++ plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java | 103 + plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 106 + diffs (truncated from 3516 to 500 lines): diff -r 22113074838a -r 549c87a321e0 ChangeLog --- a/ChangeLog Mon Jan 11 11:43:43 2010 +0000 +++ b/ChangeLog Mon May 10 18:05:11 2010 +0100 @@ -1,3 +1,119 @@ 2010-01-11 Gary Benson + Matthias Klose + + * patches/icedtea-sh4-support.patch: Add zero support for Hitachi SH. + * Makefile.am (ICEDTEA_PATCHES): Apply the above. + * NEWS: Mention SH support. + +2010-05-10 Andrew John Hughes + + * patches/hotspot/default/icedtea-shark.patch: + Recreated against b89. + +2009-12-02 Deepak Bhole + + * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc + (newMessageOnBus): Fix error handling code. Add support for NewArray, + GetValue, and literal returns (primitives). + (getValue): New function. Requests the value of a field from Java, + converted to literal for primitives/boxable types. + (setSlot): Bypass NPVariant creation. + (newArray): New function, creates an array of given type on Java side. + (set): Use value directly instead of NPVariant. + (setStaticField): Same. + (getArrayTypeForJava): New function. Given a variant, returns what type of + array should be created to store that variant on Java side. + (createJavaObjectFromVariant): Added support for arrays. + (callStaticMethod): use direct values instead of NPVariants. + (callMethod): Same. + * plugin/icedteanp/IcedTeaJavaRequestProcessor.h: Updates as needed by + changes to IcedTeaJavaRequestProcessor.cc. + * plugin/icedteanp/IcedTeaNPPlugin.cc + (GCJ_Destroy): Invalidate all NPObjects related to an instance. + * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc + (sendWindow): Use NPVariant address to store windows info on Java side, + rather than the corresponding NPObject address. + (call): Use IcedTeaPluginUtilities::javaResultToNPVariant for java var to + NPVariant conversion, rather than custom conversion. + (sendString): Use new AyncCallThreadData struct and + pluginthreadasynccall() for calls that need to be in main thread. + (setMember): Send value information directly to _setMember, and let it + sort out how to set values. + (convertToNPVariant): Moved to utilities class. + (sendMember): Deal with NPVariants instead of NPObjects. + (queue_processor): Add case for GetSlot (WIP). + (storeVariantInJava): Remove deprecated function. + (_setMember): Use javaResultToNPVariant to get a value loaded into a + variant. Deal with NPVariants instead of NPObjects. + (_getMember): Deal with NPVariants instead of NPObjects. + (_getString): New function. Returns toString values for variables. + * plugin/icedteanp/IcedTeaPluginRequestProcessor.h: Declare new _getString + function. + * plugin/icedteanp/IcedTeaPluginUtils.cc: Move object map from the plugin + request processor class. + (strSplit): For efficiency, reserve enough space for strings beforehand. + (getUTF8String): Same. + (printStringVector): Run only if in debug. + (removeInstanceID): New function to remove mapping between an object and + an instance. + (invalidateInstance): New function. Removes all mappings from objects to + the given instance. + (getNPObjectFromJavaKey): New function. Given a java object key, returns + the corresponding JS object, if any. + (storeObjectMapping): New function. Stores a mapping between Java + objects and JS objects (peering). + (removeObjectMapping): New function. Removes peering between JS object and + Java object. + (printStringPtrVector): Run only if in debug. + (printNPVariant): Same. + (NPVariantToString): Store result in provided parameter. + (javaResultToNPVariant): New function, moved from + IcedTeaScriptablePluginObject. + (isObjectJSArray): New function. Returns if given NPObject represents an + array. + * plugin/icedteanp/IcedTeaPluginUtils.h: Misc. changes as needed by + updates to IcedTeaPluginUtils.cc. + * plugin/icedteanp/IcedTeaScriptablePluginObject.cc: Move object_map to + utilities class. + (getProperty): Supply instance id to findClass. + (get_scriptable_java_object): Use the new + getNPObjectFromJavaKey/storeObjectMapping functions in the utilities + class. Also, create object asynchronously. + (_createAndRetainJavaObject): New function. Creates a scriptable Java + object and increments reference count. + (is_valid_java_object): New function. Returns if the given object is still + valid. + (invalidate): Remove instance and Java side object mapping for given + object. + (javaResultToNPVariant): Moved to utilities class. + (invoke): Create variants peer on Java side before calling + callMethod/callStaticMethod. + (setProperty): Create variant peers on Java side before calling + setField/setStaticField. + (construct): Create variant peers on Java side before calling the + constructor. + * plugin/icedteanp/IcedTeaScriptablePluginObject.h: Misc. changes as + needed by updates to IcedTeaScriptablePluginObject.cc. + * plugin/icedteanp/java/netscape/javascript/JSObject.java: Added a new + string constructor. + * plugin/icedteanp/java/sun/applet/MethodOverloadResolver.java + (getCostAndCastedObject): Add support for array type parameters. + (isNum): Return true for boolean (booleans are convertible to int as per + spec). + (getNum): Remove case for char/Character. + (getArrayAsString): New function. For debug only. + * plugin/icedteanp/java/sun/applet/PluginAppletSecurityContext.java + (handleMessage): Add support for getValue. Wire in array creaion support. + Support a '[System]' source for privileged calls. + (isInt): New function. Returns if given object is an integer/convertible to + an int. + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java + (setMember): Send primitive/boxable values as literals. + (setSlot): Same. + (getWindow): Fortify condition for wait for panel initialization. + (parse): Handle nested objected tags, don't allow parameter value + overwrite. + 2010-01-11 Gary Benson * contrib/checkopts/checkopts: Updated for the above. diff -r 22113074838a -r 549c87a321e0 Makefile.am --- a/Makefile.am Mon Jan 11 11:43:43 2010 +0000 +++ b/Makefile.am Mon May 10 18:05:11 2010 +0100 @@ -317,7 +317,8 @@ ICEDTEA_PATCHES = \ patches/icedtea-disable-intree-ec.patch \ patches/icedtea-sources.patch \ patches/no-precompiled.patch \ - patches/parisc.patch + patches/parisc.patch \ + patches/sh4-support.patch # Conditional patches diff -r 22113074838a -r 549c87a321e0 NEWS --- a/NEWS Mon Jan 11 11:43:43 2010 +0000 +++ b/NEWS Mon May 10 18:05:11 2010 +0100 @@ -26,6 +26,7 @@ New in release 1.13 (2010-XX-XX) - 6932480: Crash in CompilerThread/Parser. Unloaded array klass? - Added JNI call tracing using systemtap version 1.0+ when configuring with --enable-systemtap. See tapset/hotspot_jni.stp. +- Add support for Zero build on Hitachi SH. New in release 1.12 (2009-11-17) diff -r 22113074838a -r 549c87a321e0 patches/hotspot/default/icedtea-shark.patch --- a/patches/hotspot/default/icedtea-shark.patch Mon Jan 11 11:43:43 2010 +0000 +++ b/patches/hotspot/default/icedtea-shark.patch Mon May 10 18:05:11 2010 +0100 @@ -1,23 +1,6 @@ diff -Nru openjdk.orig/hotspot/src/share -diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.cpp openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp ---- openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.cpp 2010-01-25 14:41:05.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.cpp 2010-02-22 15:15:54.000000000 +0000 -@@ -602,3 +602,4 @@ - } - return impl; - } -+ -diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.hpp openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp ---- openjdk.orig/hotspot/src/share/vm/ci/ciInstanceKlass.hpp 2010-01-25 14:41:05.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciInstanceKlass.hpp 2010-02-22 15:15:54.000000000 +0000 -@@ -208,4 +208,5 @@ - // What kind of ciObject is this? - bool is_instance_klass() { return true; } - bool is_java_klass() { return true; } -+ - }; diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciMethod.cpp openjdk/hotspot/src/share/vm/ci/ciMethod.cpp ---- openjdk.orig/hotspot/src/share/vm/ci/ciMethod.cpp 2010-02-19 17:14:36.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciMethod.cpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/ci/ciMethod.cpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/ci/ciMethod.cpp 2010-05-10 14:38:13.000000000 +0100 @@ -56,9 +56,9 @@ _liveness = NULL; _bcea = NULL; @@ -103,8 +86,8 @@ diff -Nru openjdk.orig/hotspot/src/share // ------------------------------------------------------------------ diff -Nru openjdk.orig/hotspot/src/share/vm/ci/ciMethod.hpp openjdk/hotspot/src/share/vm/ci/ciMethod.hpp ---- openjdk.orig/hotspot/src/share/vm/ci/ciMethod.hpp 2010-01-25 14:41:05.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/ci/ciMethod.hpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/ci/ciMethod.hpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/ci/ciMethod.hpp 2010-05-10 14:38:13.000000000 +0100 @@ -71,7 +71,7 @@ // Optional liveness analyzer. @@ -125,8 +108,8 @@ diff -Nru openjdk.orig/hotspot/src/share address interpreter_entry(); diff -Nru openjdk.orig/hotspot/src/share/vm/code/nmethod.cpp openjdk/hotspot/src/share/vm/code/nmethod.cpp ---- openjdk.orig/hotspot/src/share/vm/code/nmethod.cpp 2010-02-19 17:14:36.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/code/nmethod.cpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/code/nmethod.cpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/code/nmethod.cpp 2010-05-10 15:00:13.000000000 +0100 @@ -65,6 +65,11 @@ if (is_native_method()) return false; return compiler()->is_c2(); @@ -139,7 +122,7 @@ diff -Nru openjdk.orig/hotspot/src/share -@@ -1345,6 +1350,10 @@ +@@ -1346,6 +1351,10 @@ CodeCache::remove_saved_code(this); } @@ -150,23 +133,7 @@ diff -Nru openjdk.orig/hotspot/src/share ((CodeBlob*)(this))->flush(); CodeCache::free(this); -Index: openjdk/hotspot/src/share/vm/utilities/macros.hpp -=================================================================== ---- openjdk.orig/ports/hotspot/src/share/vm/utilities/macros.hpp 2009-11-12 15:17:14.458064088 +0100 -+++ openjdk/hotspot/src/share/vm/utilities/macros.hpp 2009-11-12 15:19:18.097063844 +0100 -@@ -146,9 +146,11 @@ - #if defined(IA32) || defined(AMD64) - #define X86 - #define X86_ONLY(code) code -+#define NOT_X86(code) - #else - #undef X86 - #define X86_ONLY(code) -+#define NOT_X86(code) code - #endif - - #ifdef IA32 -@@ -1736,6 +1745,7 @@ +@@ -1737,6 +1746,7 @@ // Method that knows how to preserve outgoing arguments at call. This method must be // called with a frame corresponding to a Java invoke void nmethod::preserve_callee_argument_oops(frame fr, const RegisterMap *reg_map, OopClosure* f) { @@ -174,7 +141,7 @@ Index: openjdk/hotspot/src/share/vm/util if (!method()->is_native()) { SimpleScopeDesc ssd(this, fr.pc()); Bytecode_invoke* call = Bytecode_invoke_at(ssd.method(), ssd.bci()); -@@ -1743,6 +1753,7 @@ +@@ -1744,6 +1754,7 @@ symbolOop signature = call->signature(); fr.oops_compiled_arguments_do(signature, has_receiver, reg_map, f); } @@ -182,7 +149,7 @@ Index: openjdk/hotspot/src/share/vm/util } -@@ -2242,6 +2253,8 @@ +@@ -2247,6 +2258,8 @@ tty->print("(c1) "); } else if (is_compiled_by_c2()) { tty->print("(c2) "); @@ -192,8 +159,8 @@ Index: openjdk/hotspot/src/share/vm/util tty->print("(nm) "); } diff -Nru openjdk.orig/hotspot/src/share/vm/code/nmethod.hpp openjdk/hotspot/src/share/vm/code/nmethod.hpp ---- openjdk.orig/hotspot/src/share/vm/code/nmethod.hpp 2010-02-19 17:14:37.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/code/nmethod.hpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/code/nmethod.hpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/code/nmethod.hpp 2010-05-10 14:38:13.000000000 +0100 @@ -334,6 +334,7 @@ bool is_compiled_by_c1() const; @@ -203,8 +170,8 @@ diff -Nru openjdk.orig/hotspot/src/share // boundaries for different parts address code_begin () const { return _entry_point; } diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/abstractCompiler.hpp openjdk/hotspot/src/share/vm/compiler/abstractCompiler.hpp ---- openjdk.orig/hotspot/src/share/vm/compiler/abstractCompiler.hpp 2009-03-30 17:15:27.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/compiler/abstractCompiler.hpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/compiler/abstractCompiler.hpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/compiler/abstractCompiler.hpp 2010-05-10 14:38:13.000000000 +0100 @@ -45,18 +45,26 @@ // Missing feature tests virtual bool supports_native() { return true; } @@ -234,8 +201,8 @@ diff -Nru openjdk.orig/hotspot/src/share // Customization diff -Nru openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp ---- openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp 2010-02-19 17:14:37.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/compiler/compileBroker.cpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp 2010-05-10 14:38:13.000000000 +0100 @@ -555,6 +555,14 @@ #endif #endif // COMPILER2 @@ -252,8 +219,8 @@ diff -Nru openjdk.orig/hotspot/src/share _task_free_list = NULL; diff -Nru openjdk.orig/hotspot/src/share/vm/memory/cardTableModRefBS.hpp openjdk/hotspot/src/share/vm/memory/cardTableModRefBS.hpp ---- openjdk.orig/hotspot/src/share/vm/memory/cardTableModRefBS.hpp 2009-09-21 17:12:26.000000000 +0100 -+++ openjdk/hotspot/src/share/vm/memory/cardTableModRefBS.hpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/memory/cardTableModRefBS.hpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/memory/cardTableModRefBS.hpp 2010-05-10 14:38:13.000000000 +0100 @@ -44,6 +44,7 @@ friend class VMStructs; friend class CardTableRS; @@ -263,8 +230,8 @@ diff -Nru openjdk.orig/hotspot/src/share // For debugging. friend class GuaranteeNotModClosure; diff -Nru openjdk.orig/hotspot/src/share/vm/oops/methodOop.cpp openjdk/hotspot/src/share/vm/oops/methodOop.cpp ---- openjdk.orig/hotspot/src/share/vm/oops/methodOop.cpp 2010-02-19 17:14:37.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/oops/methodOop.cpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/oops/methodOop.cpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/oops/methodOop.cpp 2010-05-10 14:38:13.000000000 +0100 @@ -751,10 +751,14 @@ } @@ -281,9 +248,9 @@ diff -Nru openjdk.orig/hotspot/src/share } diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp ---- openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp 2010-02-19 17:14:39.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp 2010-02-22 15:15:54.000000000 +0000 -@@ -229,6 +229,7 @@ +--- openjdk.orig/hotspot/src/share/vm/runtime/deoptimization.cpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/runtime/deoptimization.cpp 2010-05-10 14:38:13.000000000 +0100 +@@ -254,6 +254,7 @@ } @@ -291,7 +258,7 @@ diff -Nru openjdk.orig/hotspot/src/share // Compute the caller frame based on the sender sp of stub_frame and stored frame sizes info. CodeBlob* cb = stub_frame.cb(); // Verify we have the right vframeArray -@@ -245,6 +246,10 @@ +@@ -270,6 +271,10 @@ assert(cb->is_deoptimization_stub() || cb->is_uncommon_trap_stub(), "just checking"); Events::log("fetch unroll sp " INTPTR_FORMAT, unpack_sp); #endif @@ -302,7 +269,7 @@ diff -Nru openjdk.orig/hotspot/src/share // This is a guarantee instead of an assert because if vframe doesn't match // we will unpack the wrong deoptimized frame and wind up in strange places // where it will be very difficult to figure out what went wrong. Better -@@ -355,7 +360,9 @@ +@@ -380,7 +385,9 @@ frame_pcs[0] = deopt_sender.raw_pc(); @@ -312,7 +279,7 @@ diff -Nru openjdk.orig/hotspot/src/share UnrollBlock* info = new UnrollBlock(array->frame_size() * BytesPerWord, caller_adjustment * BytesPerWord, -@@ -896,7 +903,20 @@ +@@ -921,7 +928,20 @@ // stuff a C2I adapter we can properly fill in the callee-save // register locations. frame caller = fr.sender(reg_map); @@ -333,7 +300,7 @@ diff -Nru openjdk.orig/hotspot/src/share frame sender = caller; -@@ -1063,7 +1083,7 @@ +@@ -1073,7 +1093,7 @@ JRT_END @@ -342,7 +309,7 @@ diff -Nru openjdk.orig/hotspot/src/share void Deoptimization::load_class_by_index(constantPoolHandle constant_pool, int index, TRAPS) { // in case of an unresolved klass entry, load the class. if (constant_pool->tag_at(index).is_unresolved_klass()) { -@@ -1825,7 +1845,7 @@ +@@ -1835,7 +1855,7 @@ if (xtty != NULL) xtty->tail("statistics"); } } @@ -351,15 +318,15 @@ diff -Nru openjdk.orig/hotspot/src/share // Stubs for C1 only system. -@@ -1861,4 +1881,4 @@ +@@ -1871,4 +1891,4 @@ return buf; } -#endif // COMPILER2 +#endif // COMPILER2 || SHARK diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/globals.cpp openjdk/hotspot/src/share/vm/runtime/globals.cpp ---- openjdk.orig/hotspot/src/share/vm/runtime/globals.cpp 2010-01-25 14:41:13.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/globals.cpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/runtime/globals.cpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/runtime/globals.cpp 2010-05-10 14:38:13.000000000 +0100 @@ -181,6 +181,18 @@ #define C2_NOTPRODUCT_FLAG_STRUCT(type, name, value, doc) { #type, XSTR(name), &name, "{C2 notproduct}", DEFAULT }, #endif @@ -390,8 +357,8 @@ diff -Nru openjdk.orig/hotspot/src/share }; diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp openjdk/hotspot/src/share/vm/runtime/globals.hpp ---- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp 2010-02-22 13:12:35.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/globals.hpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/runtime/globals.hpp 2010-05-10 14:37:37.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/runtime/globals.hpp 2010-05-10 14:38:13.000000000 +0100 @@ -22,7 +22,7 @@ * */ @@ -402,8 +369,8 @@ diff -Nru openjdk.orig/hotspot/src/share define_pd_global(bool, UseTLAB, false); define_pd_global(bool, CICompileOSR, false); diff -Nru openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp openjdk/hotspot/src/share/vm/runtime/vm_version.cpp ---- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp 2009-10-30 15:58:39.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp 2010-02-22 15:15:54.000000000 +0000 +--- openjdk.orig/hotspot/src/share/vm/runtime/vm_version.cpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/runtime/vm_version.cpp 2010-05-10 14:38:13.000000000 +0100 @@ -94,12 +94,16 @@ #ifdef TIERED #define VMTYPE "Server" @@ -421,3 +388,18 @@ diff -Nru openjdk.orig/hotspot/src/share #endif // TIERED #endif // KERNEL +diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp openjdk/hotspot/src/share/vm/utilities/macros.hpp +--- openjdk.orig/hotspot/src/share/vm/utilities/macros.hpp 2010-04-28 22:16:22.000000000 +0100 ++++ openjdk/hotspot/src/share/vm/utilities/macros.hpp 2010-05-10 14:38:13.000000000 +0100 +@@ -151,9 +151,11 @@ + #if defined(IA32) || defined(AMD64) + #define X86 + #define X86_ONLY(code) code ++#define NOT_X86(code) + #else + #undef X86 + #define X86_ONLY(code) ++#define NOT_X86(code) code + #endif + + #ifdef IA32 diff -r 22113074838a -r 549c87a321e0 patches/sh4-support.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/sh4-support.patch Mon May 10 18:05:11 2010 +0100 @@ -0,0 +1,63 @@ +--- openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2009-12-24 14:56:12.000000000 +0900 ++++ openjdk/hotspot/src/os/linux/vm/os_linux.cpp 2009-12-24 15:02:51.000000000 +0900 +@@ -1753,7 +1753,8 @@ + {EM_MIPS_RS3_LE, EM_MIPS_RS3_LE, ELFCLASS32, ELFDATA2LSB, (char*)"MIPSel"}, + {EM_MIPS, EM_MIPS, ELFCLASS32, ELFDATA2MSB, (char*)"MIPS"}, + {EM_PARISC, EM_PARISC, ELFCLASS32, ELFDATA2MSB, (char*)"PARISC"}, +- {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"} ++ {EM_68K, EM_68K, ELFCLASS32, ELFDATA2MSB, (char*)"M68k"}, ++ {EM_SH, EM_SH, ELFCLASS32, ELFDATA2LSB, (char*)"SH"} /* Support little endian only*/ + }; + + #if (defined IA32) +@@ -1784,9 +1785,11 @@ + static Elf32_Half running_arch_code=EM_MIPS; + #elif (defined M68K) + static Elf32_Half running_arch_code=EM_68K; ++ #elif (defined SH) ++ static Elf32_Half running_arch_code=EM_SH; + #else + #error Method os::dll_load requires that one of following is defined:\ +- IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K ++ IA32, AMD64, IA64, __sparc, __powerpc__, ARM, S390, ALPHA, MIPS, MIPSEL, PARISC, M68K, SH + #endif + + // Identify compatability class for VM's architecture and library's architecture +--- openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2009-12-24 14:56:10.000000000 +0900 ++++ openjdk/jdk/src/share/native/com/sun/media/sound/SoundDefs.h 2009-12-24 15:05:27.000000000 +0900 +@@ -47,7 +47,8 @@ + #define X_S390X 12 + #define X_SPARC 13 + #define X_SPARCV9 14 +-#define X_ZERO 15 ++#define X_SH 15 ++#define X_ZERO 16 + + // ********************************** + // Make sure you set X_PLATFORM and X_ARCH defines correctly. +--- openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2009-12-24 15:11:52.000000000 +0900 ++++ openjdk/jdk/make/common/shared/Compiler-gcc.gmk 2009-12-24 15:12:17.000000000 +0900 +@@ -121,6 +121,11 @@ + REQUIRED_CC_VER = 4.0 + REQUIRED_GCC_VER = 4.0.* + endif ++ ifneq ("$(findstring sh,$(ARCH))", "") ++ # sh4*, sh3* ++ REQUIRED_CC_VER = 4.0 ++ REQUIRED_GCC_VER = 4.0.* ++ endif + # Option used to create a shared library + SHARED_LIBRARY_FLAG = -shared -mimpure-text + SUN_COMP_VER := $(shell $(CC) --verbose 2>&1 ) +--- openjdk/corba/make/common/shared/Platform.gmk 2009-12-24 21:30:38.000000000 +0900 ++++ openjdk/corba/make/common/shared/Platform.gmk 2009-12-25 10:17:14.000000000 +0900 +@@ -263,6 +263,9 @@ + ifeq ($(ARCH), s390x) + ARCH_DATA_MODEL=64 + endif ++ ifeq ($(ARCH), sh) ++ ARCH_DATA_MODEL=32 ++ endif + endif + endif + diff -r 22113074838a -r 549c87a321e0 plugin/icedteanp/IcedTeaJavaRequestProcessor.cc --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc Mon Jan 11 11:43:43 2010 +0000 +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc Mon May 10 18:05:11 2010 +0100 @@ -36,6 +36,8 @@ obligated to do so. If you do not wish obligated to do so. If you do not wish to do so, delete this exception statement from your version. */ +#include + #include "IcedTeaJavaRequestProcessor.h" From gbenson at icedtea.classpath.org Tue May 11 01:26:15 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Tue, 11 May 2010 08:26:15 +0000 Subject: /hg/icedtea6: Remove a now-unnecessary hack Message-ID: changeset 0d1df8a64a73 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=0d1df8a64a73 author: Gary Benson date: Tue May 11 09:26:09 2010 +0100 Remove a now-unnecessary hack diffstat: 2 files changed, 5 insertions(+), 21 deletions(-) ChangeLog | 5 +++++ patches/icedtea-shark.patch | 21 --------------------- diffs (43 lines): diff -r 9bc0c7b7f327 -r 0d1df8a64a73 ChangeLog --- a/ChangeLog Mon May 10 11:44:31 2010 +0100 +++ b/ChangeLog Tue May 11 09:26:09 2010 +0100 @@ -1,3 +1,8 @@ 2010-05-10 Gary Benson + + * patches/icedtea-shark.patch + (Deoptimization::create_vframeArray): Remove a now-unnecessary hack. + 2010-05-10 Gary Benson PR icedtea/323 diff -r 9bc0c7b7f327 -r 0d1df8a64a73 patches/icedtea-shark.patch --- a/patches/icedtea-shark.patch Mon May 10 11:44:31 2010 +0100 +++ b/patches/icedtea-shark.patch Tue May 11 09:26:09 2010 +0100 @@ -101,27 +101,6 @@ UnrollBlock* info = new UnrollBlock(array->frame_size() * BytesPerWord, caller_adjustment * BytesPerWord, -@@ -890,7 +897,20 @@ - // stuff a C2I adapter we can properly fill in the callee-save - // register locations. - frame caller = fr.sender(reg_map); -+#ifdef ZERO -+ int frame_size; -+ { -+ // In zero, frame::sp() is the *end* of the frame, so -+ // caller.sp() - fr.sp() is the size of the *caller*. -+ RegisterMap dummy_map(thread, false); -+ frame frame_1 = thread->last_frame(); -+ frame frame_2 = frame_1.sender(&dummy_map); -+ assert(frame_2.sp() == fr.sp(), "should be"); -+ frame_size = frame_2.sp() - frame_1.sp(); -+ } -+#else - int frame_size = caller.sp() - fr.sp(); -+#endif // ZERO - - frame sender = caller; - @@ -1057,7 +1077,7 @@ JRT_END From gbenson at redhat.com Tue May 11 01:28:03 2010 From: gbenson at redhat.com (Gary Benson) Date: Tue, 11 May 2010 09:28:03 +0100 Subject: Zero and Shark fix Message-ID: <20100511082803.GA3397@redhat.com> Hi all, This commit removes a hack that became unnecessary with the updated frame anchor code in my last commit. Xerxes, this might be the source of the failures you were seeing. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r 9bc0c7b7f327 ChangeLog --- a/ChangeLog Mon May 10 11:44:31 2010 +0100 +++ b/ChangeLog Tue May 11 09:26:27 2010 +0100 @@ -1,3 +1,8 @@ +2010-05-11 Gary Benson + + * patches/icedtea-shark.patch + (Deoptimization::create_vframeArray): Remove a now-unnecessary hack. + 2010-05-10 Gary Benson PR icedtea/323 diff -r 9bc0c7b7f327 patches/icedtea-shark.patch --- a/patches/icedtea-shark.patch Mon May 10 11:44:31 2010 +0100 +++ b/patches/icedtea-shark.patch Tue May 11 09:26:27 2010 +0100 @@ -101,27 +101,6 @@ UnrollBlock* info = new UnrollBlock(array->frame_size() * BytesPerWord, caller_adjustment * BytesPerWord, -@@ -890,7 +897,20 @@ - // stuff a C2I adapter we can properly fill in the callee-save - // register locations. - frame caller = fr.sender(reg_map); -+#ifdef ZERO -+ int frame_size; -+ { -+ // In zero, frame::sp() is the *end* of the frame, so -+ // caller.sp() - fr.sp() is the size of the *caller*. -+ RegisterMap dummy_map(thread, false); -+ frame frame_1 = thread->last_frame(); -+ frame frame_2 = frame_1.sender(&dummy_map); -+ assert(frame_2.sp() == fr.sp(), "should be"); -+ frame_size = frame_2.sp() - frame_1.sp(); -+ } -+#else - int frame_size = caller.sp() - fr.sp(); -+#endif // ZERO - - frame sender = caller; - @@ -1057,7 +1077,7 @@ JRT_END From bugzilla-daemon at icedtea.classpath.org Tue May 11 01:55:27 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 11 May 2010 08:55:27 +0000 Subject: [Bug 488] New: Question mark changing into underscore in URLs directed from an applet. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=488 Summary: Question mark changing into underscore in URLs directed from an applet. Product: IcedTea Version: 6-1.8 Platform: all URL: http://www.goproblems.com/forum/viewtopic.php?f=4&t=735& start=0 OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: dignifiedaction at gmail.com On Ubuntu Lucid Lynx, OpenJRE (6b18-1.8-0ubuntu1) runs goproblems.com applets pretty decently, but during time trials, when the applet tries to open a new problem by re-directing to a new URL, the "?" in the url gets translated to "_" and the page re-direction goes wrong. The link to a discussion with a goproblems.com site dev has more info: http://www.goproblems.com/forum/viewtopic.php?f=4&t=735&start=0 Is this a problem of the JRE plugin, or in the applet itself? Thanks in advance, I appreciate your efforts in making great software! :) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Tue May 11 06:05:39 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 11 May 2010 13:05:39 +0000 Subject: /hg/icedtea: Make CACAO build (although it doesn't yet bootstrap). Message-ID: changeset 0e1f42ea40cf in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=0e1f42ea40cf author: Andrew John Hughes date: Tue May 11 14:05:30 2010 +0100 Make CACAO build (although it doesn't yet bootstrap). 2010-05-11 Andrew John Hughes Fix issues with the CACAO build so it at least builds again (though it still fails to bootstrap). * patches/icedtea-plugin.patch, * patches/icedtea-webservices.patch: Remove unused patches. * Makefile.am: Add new patches. * patches/cacao/no-strict-aliasing.patch: Always append -fno- strict-aliasing, even if CFLAGS are specified. Otherwise, a broken CACAO results. * patches/cacao/ignore-tests.patch: Regenerated against b89. * patches/cacao/6714758.patch: Add JVM_FindClassFromBootLoader introduced by 6714758 and modified in 6864003. http://server.complang.tuwien.ac.at/cgi- bin/bugzilla/show_bug.cgi?id=137 * patches/cacao/jsig.patch: Place fake libjsig.so in correct location for HotSpot 17+. * patches/sh4-support.patch: Regenerated against b89. diffstat: 9 files changed, 158 insertions(+), 2757 deletions(-) ChangeLog | 25 Makefile.am | 8 patches/cacao/6714758.patch | 39 patches/cacao/ignore-tests.patch | 7 patches/cacao/jsig.patch | 36 patches/cacao/no-strict-aliasing.patch | 30 patches/icedtea-plugin.patch | 1301 ----------------------------- patches/icedtea-webservices.patch | 1401 -------------------------------- patches/sh4-support.patch | 68 - diffs (truncated from 3006 to 500 lines): diff -r 549c87a321e0 -r 0e1f42ea40cf ChangeLog --- a/ChangeLog Mon May 10 18:05:11 2010 +0100 +++ b/ChangeLog Tue May 11 14:05:30 2010 +0100 @@ -1,4 +1,27 @@ 2009-01-11 Nobuhiro Iwamatsu +2010-05-11 Andrew John Hughes + + Fix issues with the CACAO build so it at + least builds again (though it still fails to + bootstrap). + * patches/icedtea-plugin.patch, + * patches/icedtea-webservices.patch: + Remove unused patches. + * Makefile.am: Add new patches. + * patches/cacao/no-strict-aliasing.patch: + Always append -fno-strict-aliasing, even if CFLAGS + are specified. Otherwise, a broken CACAO results. + * patches/cacao/ignore-tests.patch: + Regenerated against b89. + * patches/cacao/6714758.patch: + Add JVM_FindClassFromBootLoader introduced by + 6714758 and modified in 6864003. + http://server.complang.tuwien.ac.at/cgi-bin/bugzilla/show_bug.cgi?id=137 + * patches/cacao/jsig.patch: + Place fake libjsig.so in correct location for HotSpot 17+. + * patches/sh4-support.patch: + Regenerated against b89. + +2010-01-11 Nobuhiro Iwamatsu Matthias Klose * patches/icedtea-sh4-support.patch: Add zero support for Hitachi SH. diff -r 549c87a321e0 -r 0e1f42ea40cf Makefile.am --- a/Makefile.am Mon May 10 18:05:11 2010 +0100 +++ b/Makefile.am Tue May 11 14:05:30 2010 +0100 @@ -19,7 +19,7 @@ OPENJDK_SHA256SUM = 93c536e6bc4e962050a0 OPENJDK_SHA256SUM = 93c536e6bc4e962050a00321e88e694fc4e0000e2ad887b8de22830bfda2649f CACAO_VERSION = 0.99.4 -CACAO_SHA256SUM = c6090c1d2ed3c60acda0076b62563598267be8dab270ce49ee1035002a2510cf +CACAO_SHA256SUM = 1dfc4903dc0172286df4f1740fd0f12749ac81d51c602290b47cbe83d51e1d56 CACAO_BASE_URL = http://www.complang.tuwien.ac.at CACAO_URL = $(CACAO_BASE_URL)/cacaojvm/download/cacao-$(CACAO_VERSION)/ CACAO_SRC_ZIP = cacao-$(CACAO_VERSION).tar.bz2 @@ -197,8 +197,6 @@ LIVECONNECT_CLASSES = $(abs_top_builddir LIVECONNECT_CLASSES = $(abs_top_builddir)/liveconnect LIVECONNECT_JAR = $(LIVECONNECT_CLASSES)/lib/classes.jar LIVECONNECT_SRC = $(LIVECONNECT_CLASSES)/lib/src.zip -else -PLUGIN_PATCH = patches/icedtea-plugin.patch endif endif @@ -337,7 +335,9 @@ ICEDTEA_PATCHES += \ patches/cacao/openjdk7.patch \ patches/cacao/version.patch \ patches/cacao/versioninfo.patch \ - patches/cacao/arm-arch-defines.patch + patches/cacao/arm-arch-defines.patch \ + patches/cacao/jsig.patch \ + patches/cacao/6714758.patch endif if WITH_CACAO diff -r 549c87a321e0 -r 0e1f42ea40cf patches/cacao/6714758.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/cacao/6714758.patch Tue May 11 14:05:30 2010 +0100 @@ -0,0 +1,39 @@ +diff -Nru cacao.orig/cacao/src/native/vm/openjdk/jvm.c cacao/cacao/src/native/vm/openjdk/jvm.c +--- cacao.orig/cacao/src/native/vm/openjdk/jvm.c 2010-05-11 12:19:23.000000000 +0100 ++++ cacao/cacao/src/native/vm/openjdk/jvm.c 2010-05-11 12:19:47.000000000 +0100 +@@ -792,6 +792,9 @@ + + assert(throwError == false); + ++ if (name == NULL) ++ return NULL; ++ + u = utf_new_char(name); + cl = loader_hashtable_classloader_add((java_handle_t *) loader); + +@@ -809,6 +812,15 @@ + } + + ++/* JVM_FindClassFromBootLoader */ ++ ++jclass JVM_FindClassFromBootLoader(JNIEnv* env, const char* name) ++{ ++ TRACEJVMCALLS(("JVM_FindClassFromBootLoader(name=%s)", name)); ++ return JVM_FindClassFromClassLoader(env, name, JNI_FALSE, ++ (jobject)NULL, false); ++} ++ + /* JVM_FindClassFromClass */ + + jclass JVM_FindClassFromClass(JNIEnv *env, const char *name, jboolean init, jclass from) +--- cacao.orig/cacao/contrib/mapfile-vers-product 2008-08-04 17:51:28.000000000 +0100 ++++ cacao/cacao/contrib/mapfile-vers-product 2010-05-11 12:47:51.000000000 +0100 +@@ -86,6 +86,7 @@ + JVM_EnableCompiler; + JVM_Exit; + JVM_FillInStackTrace; ++ JVM_FindClassFromBootLoader; + JVM_FindClassFromClass; + JVM_FindClassFromClassLoader; + JVM_FindLibraryEntry; diff -r 549c87a321e0 -r 0e1f42ea40cf patches/cacao/ignore-tests.patch --- a/patches/cacao/ignore-tests.patch Mon May 10 18:05:11 2010 +0100 +++ b/patches/cacao/ignore-tests.patch Tue May 11 14:05:30 2010 +0100 @@ -1,7 +1,8 @@ ---- openjdk/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java~ 2008-08-28 10:20:49.000000000 +0200 -+++ openjdk/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java 2008-10-19 17:02:41.000000000 +0200 +diff -Nru openjdk.orig/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java openjdk/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java +--- openjdk.orig/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java 2010-05-10 15:04:14.000000000 +0100 ++++ openjdk/jdk/test/java/util/concurrent/BlockingQueue/ProducerConsumerLoops.java 2010-05-10 23:42:41.000000000 +0100 @@ -37,6 +37,7 @@ - * @compile -source 1.5 ProducerConsumerLoops.java + * @compile ProducerConsumerLoops.java * @run main/timeout=3600 ProducerConsumerLoops * @summary multiple producers and consumers using blocking queues + * @ignore cacao test hog, ignore for the sake of buildds diff -r 549c87a321e0 -r 0e1f42ea40cf patches/cacao/jsig.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/cacao/jsig.patch Tue May 11 14:05:30 2010 +0100 @@ -0,0 +1,36 @@ +diff -Nru cacao.orig/Makefile.am cacao/Makefile.am +--- cacao.orig/cacao/src/cacao/Makefile.am 2008-08-04 17:51:28.000000000 +0100 ++++ cacao/cacao/src/cacao/Makefile.am 2010-05-11 10:29:35.000000000 +0100 +@@ -96,12 +96,12 @@ + $(mkdir_p) $(prefix)/jre/lib/$(JAVA_ARCH)/server + $(LN_S) -f $(libdir)/libjvm.so $(prefix)/jre/lib/$(JAVA_ARCH)/server + $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt +- $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so ++ $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/libjsig.so + + uninstall-local: + rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjvm.so + rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt +- rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so ++ rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/libjsig.so + endif + + +diff -Nru cacao.orig/Makefile.in cacao/Makefile.in +--- cacao.orig/cacao/src/cacao/Makefile.in 2009-03-16 11:44:18.000000000 +0000 ++++ cacao/cacao/src/cacao/Makefile.in 2010-05-11 10:30:06.000000000 +0100 +@@ -625,12 +625,12 @@ + @WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ $(mkdir_p) $(prefix)/jre/lib/$(JAVA_ARCH)/server + @WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ $(LN_S) -f $(libdir)/libjvm.so $(prefix)/jre/lib/$(JAVA_ARCH)/server + @WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt +- at WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so ++ at WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ $(ECHO) $(ECHO_N) > $(prefix)/jre/lib/$(JAVA_ARCH)/libjsig.so + + @WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE at uninstall-local: + @WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjvm.so + @WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/Xusage.txt +- at WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/server/libjsig.so ++ at WITH_JAVA_RUNTIME_LIBRARY_OPENJDK_TRUE@ rm -f $(prefix)/jre/lib/$(JAVA_ARCH)/libjsig.so + # Tell versions [3.59,3.63) of GNU make to not export all variables. + # Otherwise a system limit (for SysV at least) may be exceeded. + .NOEXPORT: diff -r 549c87a321e0 -r 0e1f42ea40cf patches/cacao/no-strict-aliasing.patch --- a/patches/cacao/no-strict-aliasing.patch Mon May 10 18:05:11 2010 +0100 +++ b/patches/cacao/no-strict-aliasing.patch Tue May 11 14:05:30 2010 +0100 @@ -1,22 +1,22 @@ ---- cacao/cacao/configure.ac~ 2009-03-16 12:42:56.000000000 +0100 -+++ cacao/cacao/configure.ac 2009-06-23 16:19:20.000000000 +0200 -@@ -37,7 +37,7 @@ - - dnl set optimization and debugging for all architectures and systems - if test x"$CFLAGS" = "x"; then -- OPT_CFLAGS="-g -O2" -+ OPT_CFLAGS="-g -O2 -fno-strict-aliasing" +diff -Nru cacao/cacao.orig/configure cacao/cacao/configure +--- cacao/cacao.orig/configure 2009-03-16 11:44:25.000000000 +0000 ++++ cacao/cacao/configure 2010-01-09 00:10:59.000000000 +0000 +@@ -2829,6 +2829,7 @@ else OPT_CFLAGS=$CFLAGS fi ---- cacao.orig/cacao/configure 2009-03-16 12:44:25.000000000 +0100 -+++ cacao/cacao/configure 2009-06-05 17:58:48.000000000 +0200 -@@ -2825,7 +2825,7 @@ ++OPT_CFLAGS="$OPT_CFLAGS -fno-strict-aliasing" - - if test x"$CFLAGS" = "x"; then -- OPT_CFLAGS="-g -O2" -+ OPT_CFLAGS="-g -O2 -fno-strict-aliasing" + case "$host_cpu" in + alpha | alphaev56 | alphapca56 ) +diff -Nru cacao/cacao.orig/configure.ac cacao/cacao/configure.ac +--- cacao/cacao.orig/configure.ac 2009-03-16 11:42:56.000000000 +0000 ++++ cacao/cacao/configure.ac 2010-01-09 00:11:06.000000000 +0000 +@@ -41,6 +41,7 @@ else OPT_CFLAGS=$CFLAGS fi ++OPT_CFLAGS="$OPT_CFLAGS -fno-strict-aliasing" + + dnl system type + case "$host_cpu" in diff -r 549c87a321e0 -r 0e1f42ea40cf patches/icedtea-plugin.patch --- a/patches/icedtea-plugin.patch Mon May 10 18:05:11 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1301 +0,0 @@ -diff -urN openjdk.orig/jdk/make/launchers/Makefile openjdk/jdk/make/launchers/Makefile ---- openjdk.orig/jdk/make/launchers/Makefile 2008-06-29 09:40:07.000000000 -0400 -+++ openjdk/jdk/make/launchers/Makefile 2008-06-29 09:40:16.000000000 -0400 -@@ -92,6 +92,7 @@ - -J-Dcom.sun.CORBA.activation.Port=1049 \ - -J-Dcom.sun.CORBA.POA.ORBServerId=1, ) - $(call make-launcher, pack200, com.sun.java.util.jar.pack.Driver, , --pack) -+$(call make-launcher, pluginappletviewer, sun.applet.PluginMain, , ) - $(call make-launcher, policytool, sun.security.tools.PolicyTool, , ) - $(call make-launcher, rmic, sun.rmi.rmic.Main, , ) - $(call make-launcher, rmid, sun.rmi.server.Activation, , ) -diff -urN openjdk.orig/jdk/src/share/classes/sun/applet/PluginMain.java openjdk/jdk/src/share/classes/sun/applet/PluginMain.java ---- openjdk.orig/jdk/src/share/classes/sun/applet/PluginMain.java 1969-12-31 19:00:00.000000000 -0500 -+++ openjdk/jdk/src/share/classes/sun/applet/PluginMain.java 2008-01-14 14:18:53.000000000 -0500 -@@ -0,0 +1,274 @@ -+/* -+ * Copyright 1999-2006 Sun Microsystems, Inc. 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. Sun designates this -+ * particular file as subject to the "Classpath" exception as provided -+ * by Sun in the LICENSE file that accompanied this code. -+ * -+ * 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 Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, -+ * CA 95054 USA or visit www.sun.com if you need additional information or -+ * have any questions. -+ */ -+ -+package sun.applet; -+ -+import java.io.*; -+import java.lang.reflect.Method; -+import java.lang.reflect.InvocationTargetException; -+import java.net.*; -+import java.nio.charset.Charset; -+import java.util.*; -+import sun.net.www.ParseUtil; -+ -+class PluginParseRequest -+{ -+ long handle; -+ String tag; -+ String documentbase; -+ boolean alreadySent; -+} -+ -+/** -+ * The main entry point into PluginAppletViewer. -+ */ -+public class PluginMain -+{ -+ // A mapping of instance IDs to PluginAppletViewers. -+ private static HashMap appletWindows = new HashMap(); -+ private static HashMap parseRequests = new HashMap(); -+ private static String currentKey; -+ private static PluginAppletViewer currentWindow; -+ private static PluginParseRequest currentRequest; -+ private static BufferedReader pluginInputStream; -+ private static BufferedWriter pluginOutputStream; -+ // This is used in init(). Getting rid of this is desirable but depends -+ // on whether the property that uses it is necessary/standard. -+ public static final String theVersion = System.getProperty("java.version"); -+ -+ /** -+ * The main entry point into AppletViewer. -+ */ -+ public static void main(String args[]) -+ throws IOException -+ { -+ if(args.length != 2) { -+ // Indicate to plugin that appletviewer is installed correctly. -+ System.exit(0); -+ } -+ // INSTALL THE SECURITY MANAGER -+ init(); -+ start(new FileInputStream(args[0]), new FileOutputStream(args[1])); -+ System.exit(0); -+ } -+ -+ private static void init() { -+ Properties avProps = new Properties(); -+ -+ // ADD OTHER RANDOM PROPERTIES -+ // XXX 5/18 need to revisit why these are here, is there some -+ // standard for what is available? -+ -+ // Standard browser properties -+ avProps.put("browser", "sun.applet.AppletViewer"); -+ avProps.put("browser.version", "1.06"); -+ avProps.put("browser.vendor", "Sun Microsystems Inc."); -+ avProps.put("http.agent", "Java(tm) 2 SDK, Standard Edition v" + theVersion); -+ -+ // Define which packages can be extended by applets -+ // XXX 5/19 probably not needed, not checked in AppletSecurity -+ avProps.put("package.restrict.definition.java", "true"); -+ avProps.put("package.restrict.definition.sun", "true"); -+ -+ // Define which properties can be read by applets. -+ // A property named by "key" can be read only when its twin -+ // property "key.applet" is true. The following ten properties -+ // are open by default. Any other property can be explicitly -+ // opened up by the browser user by calling appletviewer with -+ // -J-Dkey.applet=true -+ avProps.put("java.version.applet", "true"); -+ avProps.put("java.vendor.applet", "true"); -+ avProps.put("java.vendor.url.applet", "true"); -+ avProps.put("java.class.version.applet", "true"); -+ avProps.put("os.name.applet", "true"); -+ avProps.put("os.version.applet", "true"); -+ avProps.put("os.arch.applet", "true"); -+ avProps.put("file.separator.applet", "true"); -+ avProps.put("path.separator.applet", "true"); -+ avProps.put("line.separator.applet", "true"); -+ -+ // Read in the System properties. If something is going to be -+ // over-written, warn about it. -+ Properties sysProps = System.getProperties(); -+ for (Enumeration e = sysProps.propertyNames(); e.hasMoreElements(); ) { -+ String key = (String) e.nextElement(); -+ String val = (String) sysProps.getProperty(key); -+ avProps.setProperty(key, val); -+ } -+ -+ // INSTALL THE PROPERTY LIST -+ System.setProperties(avProps); -+ -+ // Create and install the security manager -+ System.setSecurityManager(new AppletSecurity()); -+ -+ // REMIND: Create and install a socket factory! -+ } -+ -+ static void registerWindow(PluginAppletViewer pluginappletviewer) -+ { -+ appletWindows.put(currentKey, pluginappletviewer); -+ currentWindow = (PluginAppletViewer)appletWindows.get(currentKey); -+ } -+ -+ private static void deregisterWindow(PluginAppletViewer pluginappletviewer) -+ { -+ appletWindows.remove(currentWindow); -+ currentWindow.dispose(); -+ currentWindow = null; -+ } -+ -+ static void start(InputStream inputstream, OutputStream outputstream) -+ throws MalformedURLException, IOException -+ { -+ // Set up input and output pipes. Use UTF-8 encoding. -+ pluginInputStream = -+ new BufferedReader(new InputStreamReader(inputstream, -+ Charset.forName("UTF-8"))); -+ pluginOutputStream = -+ new BufferedWriter(new OutputStreamWriter -+ (outputstream, Charset.forName("UTF-8"))); -+ -+ write("running"); -+ -+ // Read first message. -+ String message = read(); -+ -+ while(true) { -+ if (message.startsWith("instance")) { -+ // Read applet instance identifier. -+ currentKey = message.substring("instance".length() + 1); -+ currentWindow = -+ (PluginAppletViewer)appletWindows.get(currentKey); -+ currentRequest = null; -+ if (currentWindow == null) { -+ if (!parseRequests.containsKey(currentKey)) -+ parseRequests.put(currentKey, new PluginParseRequest()); -+ currentRequest = -+ (PluginParseRequest)parseRequests.get(currentKey); -+ } -+ } else if (message.startsWith("tag")) { -+ if (currentRequest != null) { -+ int index = message.indexOf(' ', "tag".length() + 1); -+ currentRequest.documentbase = -+ message.substring("tag".length() + 1, index); -+ currentRequest.tag = message.substring(index + 1); -+ if (currentRequest.handle != 0 -+ && !currentRequest.alreadySent) { -+ PluginAppletViewer.parse -+ (currentRequest.handle, 1, 1, -+ new StringReader(currentRequest.tag), -+ new URL(currentRequest.documentbase)); -+ parseRequests.remove(currentKey); -+ } -+ } -+ } else if (message.startsWith("handle")) { -+ if (currentRequest != null) { -+ currentRequest.handle = Long.parseLong -+ (message.substring("handle".length() + 1, -+ message.indexOf("width") - 1)); -+ int width = Integer.parseInt(message.substring -+ (message.indexOf("width") + -+ "width".length() + 1, -+ message.indexOf("height") - 1)); -+ int height = Integer.parseInt(message.substring( -+ message.indexOf("height") + -+ "height".length() + 1)); -+ if (currentRequest.tag != null -+ && !currentRequest.alreadySent) { -+ PluginAppletViewer.parse -+ (currentRequest.handle, width, height, -+ new StringReader(currentRequest.tag), -+ new URL(currentRequest.documentbase)); -+ parseRequests.remove(currentKey); -+ } -+ } -+ } else if (message.startsWith("width")) { -+ int width = -+ Integer.parseInt(message.substring("width".length() + 1)); -+ int height = currentWindow.getHeight(); -+ currentWindow.updateAtts(width, height); -+ currentWindow.setSize(width, height); -+ } else if (message.startsWith("height")) { -+ int height = -+ Integer.parseInt(message.substring("height".length() + 1)); -+ int width = currentWindow.getWidth(); -+ currentWindow.updateAtts(width, height); -+ currentWindow.setSize(width, height); -+ } else if (message.startsWith("destroy") -+ && currentWindow != null) { -+ deregisterWindow(currentWindow); -+ } -+ -+ // Read next message. -+ message = read(); -+ } -+ } -+ -+ /** -+ * Write string to plugin. -+ * -+ * @param message the message to write -+ * -+ * @exception IOException if an error occurs -+ */ -+ static void write(String message) -+ throws IOException -+ { -+ pluginOutputStream.write(message, 0, message.length()); -+ pluginOutputStream.newLine(); -+ pluginOutputStream.flush(); -+ -+ System.err.println(" PIPE: appletviewer wrote: " + message); -+ } -+ -+ /** -+ * Read string from plugin. -+ * -+ * @return the read string -+ * -+ * @exception IOException if an error occurs -+ */ -+ static String read() -+ throws IOException -+ { -+ String message = pluginInputStream.readLine(); -+ System.err.println(" PIPE: appletviewer read: " + message); -+ if (message == null || message.equals("shutdown")) { -+ try { -+ // Close input/output channels to plugin. -+ pluginInputStream.close(); -+ pluginOutputStream.close(); -+ } catch (IOException exception) { -+ // Deliberately ignore IOException caused by broken -+ // pipe since plugin may have already detached. -+ } -+ -+ System.err.println("APPLETVIEWER: exiting appletviewer"); -+ System.exit(0); -+ } -+ return message; -+ } -+} -diff -urN openjdk.orig/jdk/src/share/classes/sun/applet/PluginAppletViewer.java openjdk/jdk/src/share/classes/sun/applet/PluginAppletViewer.java ---- openjdk.orig/jdk/src/share/classes/sun/applet/PluginAppletViewer.java 2008-06-24 22:55:57.286013713 -0400 -+++ openjdk/jdk/src/share/classes/sun/applet/PluginAppletViewer.java 2008-06-29 10:34:07.000000000 -0400 -@@ -0,0 +1,1008 @@ From bugzilla-daemon at icedtea.classpath.org Tue May 11 06:15:38 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 11 May 2010 13:15:38 +0000 Subject: [Bug 489] New: javac crashed on low ulimit -n Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=489 Summary: javac crashed on low ulimit -n Product: IcedTea Version: 6-1.7.3 Platform: all OS/Version: Linux Status: NEW Severity: critical Priority: P2 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: mvyskocil at suse.cz I played with a ulimit -n and openjdk behavior. With a ulimit -n 15 the javac crashed on build of my simple test program (just try to open all files from a specified directory) # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (exceptions.cpp:364), pid=19569, tid=139790182835984 # Error: ExceptionMark destructor expects no pending exceptions # # JRE version: 6.0_17-b17 # Java VM: OpenJDK 64-Bit Server VM (14.0-b16 mixed mode linux-amd64 ) # Derivative: IcedTea6 1.7 # Distribution: Custom build (Sat Mar 27 00:37:55 UTC 2010) # Can not save log file, dump to screen.. # # A fatal error has been detected by the Java Runtime Environment: # # Internal Error (exceptions.cpp:364), pid=19569, tid=139790182835984 # Error: ExceptionMark destructor expects no pending exceptions # # JRE version: 6.0_17-b17 # Java VM: OpenJDK 64-Bit Server VM (14.0-b16 mixed mode linux-amd64 ) # Derivative: IcedTea6 1.7 # Distribution: Custom build (Sat Mar 27 00:37:55 UTC 2010) # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # --------------- T H R E A D --------------- Current thread (0x000000000062a800): JavaThread "main" [_thread_in_vm, id=19570, stack(0x00007f237020e000,0x00007f237030f000)] Stack: [0x00007f237020e000,0x00007f237030f000], sp=0x00007f237030a770, free space=1009k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x68298f] V [libjvm.so+0x682b9b] V [libjvm.so+0x2d46c6] V [libjvm.so+0x320641] V [libjvm.so+0x2768a8] V [libjvm.so+0x277020] V [libjvm.so+0x2770b8] V [libjvm.so+0x275fc9] V [libjvm.so+0x61c38f] V [libjvm.so+0x61acdd] V [libjvm.so+0x61c933] V [libjvm.so+0x41086f] V [libjvm.so+0x4110e6] V [libjvm.so+0x411178] C [libjava.so+0x1224c] Java_java_lang_Class_forName0+0x11c j java.lang.Class.forName0(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;+0 j java.lang.Class.forName(Ljava/lang/String;)Ljava/lang/Class;+5 j sun.security.jca.Providers.getSunProvider()Ljava/security/Provider;+5 j sun.security.util.ManifestEntryVerifier.()V+8 v ~StubRoutines::call_stub V [libjvm.so+0x3c5783] V [libjvm.so+0x3c4b08] V [libjvm.so+0x3925ab] V [libjvm.so+0x3927ec] V [libjvm.so+0x392c47] V [libjvm.so+0x3ba1d7] j java.util.jar.JarFile.initializeVerifier()V+40 j java.util.jar.JarFile.getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;+25 j sun.misc.URLClassPath$JarLoader$2.getInputStream()Ljava/io/InputStream;+11 j sun.misc.Resource.cachedInputStream()Ljava/io/InputStream;+9 j sun.misc.Resource.getByteBuffer()Ljava/nio/ByteBuffer;+1 j java.net.URLClassLoader.defineClass(Ljava/lang/String;Lsun/misc/Resource;)Ljava/lang/Class;+179 j java.net.URLClassLoader.access$000(Ljava/net/URLClassLoader;Ljava/lang/String;Lsun/misc/Resource;)Ljava/lang/Class;+3 j java.net.URLClassLoader$1.run()Ljava/lang/Object;+43 v ~StubRoutines::call_stub V [libjvm.so+0x3c5783] V [libjvm.so+0x3c4b08] V [libjvm.so+0x406b07] j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+0 j java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;+13 j java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;+43 j sun.misc.Launcher$AppClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;+36 j java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;+3 j java.lang.ClassLoader.loadClassInternal(Ljava/lang/String;)Ljava/lang/Class;+2 v ~StubRoutines::call_stub V [libjvm.so+0x3c5783] V [libjvm.so+0x3c4b08] V [libjvm.so+0x3c4d4a] V [libjvm.so+0x3c4e49] V [libjvm.so+0x61c306] V [libjvm.so+0x61acdd] V [libjvm.so+0x61c933] V [libjvm.so+0x41086f] V [libjvm.so+0x3d8bdf] C [javac+0x226d] C [javac+0x2d1b] JavaMain+0xa5b Java frames: (J=compiled Java code, j=interpreted, Vv=VM code) j java.lang.Class.forName0(Ljava/lang/String;ZLjava/lang/ClassLoader;)Ljava/lang/Class;+0 j java.lang.Class.forName(Ljava/lang/String;)Ljava/lang/Class;+5 j sun.security.jca.Providers.getSunProvider()Ljava/security/Provider;+5 j sun.security.util.ManifestEntryVerifier.()V+8 v ~StubRoutines::call_stub j java.util.jar.JarFile.initializeVerifier()V+40 j java.util.jar.JarFile.getInputStream(Ljava/util/zip/ZipEntry;)Ljava/io/InputStream;+25 j sun.misc.URLClassPath$JarLoader$2.getInputStream()Ljava/io/InputStream;+11 j sun.misc.Resource.cachedInputStream()Ljava/io/InputStream;+9 j sun.misc.Resource.getByteBuffer()Ljava/nio/ByteBuffer;+1 j java.net.URLClassLoader.defineClass(Ljava/lang/String;Lsun/misc/Resource;)Ljava/lang/Class;+179 j java.net.URLClassLoader.access$000(Ljava/net/URLClassLoader;Ljava/lang/String;Lsun/misc/Resource;)Ljava/lang/Class;+3 j java.net.URLClassLoader$1.run()Ljava/lang/Object;+43 v ~StubRoutines::call_stub j java.security.AccessController.doPrivileged(Ljava/security/PrivilegedExceptionAction;Ljava/security/AccessControlContext;)Ljava/lang/Object;+0 j java.net.URLClassLoader.findClass(Ljava/lang/String;)Ljava/lang/Class;+13 j java.lang.ClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;+43 j sun.misc.Launcher$AppClassLoader.loadClass(Ljava/lang/String;Z)Ljava/lang/Class;+36 j java.lang.ClassLoader.loadClass(Ljava/lang/String;)Ljava/lang/Class;+3 j java.lang.ClassLoader.loadClassInternal(Ljava/lang/String;)Ljava/lang/Class;+2 v ~StubRoutines::call_stub --------------- P R O C E S S --------------- Java Threads: ( => current thread ) 0x00000000006c7800 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=19579, stack(0x00007f2300500000,0x00007f2300601000)] 0x00000000006c4000 JavaThread "CompilerThread1" daemon [_thread_blocked, id=19578, stack(0x00007f2300602000,0x00007f2300703000)] 0x00000000006c2000 JavaThread "CompilerThread0" daemon [_thread_blocked, id=19577, stack(0x00007f2300703000,0x00007f2300804000)] 0x00000000006bf800 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=19576, stack(0x00007f2300804000,0x00007f2300905000)] 0x0000000000697800 JavaThread "Finalizer" daemon [_thread_blocked, id=19575, stack(0x00007f2300944000,0x00007f2300a45000)] 0x0000000000695000 JavaThread "Reference Handler" daemon [_thread_blocked, id=19574, stack(0x00007f2300a46000,0x00007f2300b47000)] =>0x000000000062a800 JavaThread "main" [_thread_in_vm, id=19570, stack(0x00007f237020e000,0x00007f237030f000)] Other Threads: 0x0000000000690000 VMThread [stack: 0x00007f2300b47000,0x00007f2300c48000] [id=19573] 0x00000000006cc800 WatcherThread [stack: 0x00007f23003ff000,0x00007f2300500000] [id=19580] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap PSYoungGen total 3584K, used 302K [0x00007f2349800000, 0x00007f2349c00000, 0x00007f2368550000) eden space 3072K, 9% used [0x00007f2349800000,0x00007f234984bad8,0x00007f2349b00000) from space 512K, 0% used [0x00007f2349b80000,0x00007f2349b80000,0x00007f2349c00000) to space 512K, 0% used [0x00007f2349b00000,0x00007f2349b00000,0x00007f2349b80000) PSOldGen total 5504K, used 0K [0x00007f230bd50000, 0x00007f230c2b0000, 0x00007f2349800000) object space 5504K, 0% used [0x00007f230bd50000,0x00007f230bd50000,0x00007f230c2b0000) PSPermGen total 21248K, used 2955K [0x00007f2301550000, 0x00007f2302a10000, 0x00007f230bd50000) object space 21248K, 13% used [0x00007f2301550000,0x00007f2301832d20,0x00007f2302a10000) Dynamic libraries: Can not get library information for pid = 19570 VM Arguments: jvm_args: -Dapplication.home=/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0 -Xms8m java_command: com.sun.tools.javac.Main FileTest.java Launcher Type: SUN_STANDARD Environment Variables: JAVA_HOME=/usr/lib64/jvm/java JRE_HOME=/usr/lib64/jvm/jre PATH=/home/mvyskocil/usr/bin:/czwork/bin:/home/mvyskocil/usr/bin:/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/games:/opt/kde3/bin:/usr/lib/mit/bin:/usr/lib/mit/sbin:/home/mvyskocil/usr/maven-2.0.7/bin/:/work/src/bin:/work/src/bin/tools LD_LIBRARY_PATH=/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/amd64/server:/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/lib/amd64:/usr/lib64/jvm/java-1.6.0-openjdk-1.6.0/jre/../lib/amd64::/home/mvyskocil/usr/lib/ SHELL=/bin/bash DISPLAY=:0 HOSTTYPE=x86_64 OSTYPE=linux MACHTYPE=x86_64-suse-linux Signal Handlers: SIGSEGV: [libjvm.so+0x6835b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGBUS: [libjvm.so+0x6835b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGFPE: [libjvm.so+0x556420], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGPIPE: [libjvm.so+0x556420], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGXFSZ: [libjvm.so+0x556420], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGILL: [libjvm.so+0x556420], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000 SIGUSR2: [libjvm.so+0x556670], sa_mask[0]=0x00000000, sa_flags=0x10000004 SIGHUP: [libjvm.so+0x559090], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGINT: [libjvm.so+0x559090], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGTERM: [libjvm.so+0x559090], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGQUIT: [libjvm.so+0x559090], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 --------------- S Y S T E M --------------- OS:Linux uname:Linux 2.6.34-rc4-5-desktop #1 SMP PREEMPT 2010-04-19 21:21:36 +0200 x86_64 libc:glibc 2.11.1 NPTL 2.11.1 rlimit: STACK 8192k, CORE 0k, NPROC 47224, NOFILE 15, AS 13238320k load average:0.00 0.00 0.00 CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3 Memory: 4k page, physical 6057488k(135608k free), swap 10490408k(10421124k free) vm_info: OpenJDK 64-Bit Server VM (14.0-b16) for linux-amd64 JRE (1.6.0_17-b17), built on Mar 27 2010 00:59:49 by "abuild" with gcc 4.5.0 20100311 (experimental) [trunk revision 157384] time: Tue May 11 15:10:24 2010 elapsed time: 0 seconds # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # Aborted -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 11 06:18:59 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 11 May 2010 13:18:59 +0000 Subject: [Bug 489] javac crashed on low ulimit -n Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=489 ------- Comment #1 from mvyskocil at suse.cz 2010-05-11 13:18 ------- Created an attachment (id=336) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=336&action=view) The testing program Attached FileTest.java caused a crash. But I'm sure that every java source code will cause it too. Run of the test program was without a problem, even using the same ulimit -n 15 $ java FileTest 0: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST//icedtea6-1.7-no-return-in-non-void.patch --> write() ' 1: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/java-1.6.0-openjdk-accessible-toolkit.patch (Too many open files) 2: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/java-1.6.0-openjdk-java-access-bridge-idlj.patch (Too many open files) 3: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/java-1.6.0-openjdk-java-access-bridge-security.patch (Too many open files) 4: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/java-1.6.0-openjdk-java-access-bridge-tck.patch (Too many open files) 5: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/java-1.6.0-openjdk-optflags.patch (Too many open files) 6: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/java-1_6_0-openjdk-suse-desktop-files.patch (Too many open files) 7: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b09-gcc4-warningfixes.patch (Too many open files) 8: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b14-no-return-in-nonvoid-function-ix86.patch (Too many open files) 9: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b14-no-return-in-nonvoid-function.patch (Too many open files) 10: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b14-undefined-operation.patch (Too many open files) 11: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b16-lcms.patch (Too many open files) 12: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b16-no-return-in-nonvoid-function.patch (Too many open files) 13: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-enumeration-value.patch (Too many open files) 14: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-initialized-after.patch (Too many open files) 15: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-no-efect.patch (Too many open files) 16: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-no-multiline-comments.patch (Too many open files) 17: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-no-return-in-nonvoid-function-ppc.patch (Too many open files) 18: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-no-werror.patch (Too many open files) 19: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-stack-protector.patch (Too many open files) 20: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-suggest-parentheses.patch (Too many open files) 21: java.io.FileNotFoundException: /home/mvyskocil/work/JVM/openjdk6/Java:openjdk6:Factory/java-1_6_0-openjdk/FTEST/openjdk-6-src-b17-unused-variable.patch (Too many open files) 1 Press any key to exit ... -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From ptisnovs at redhat.com Tue May 11 09:08:41 2010 From: ptisnovs at redhat.com (Pavel Tisnovsky) Date: Tue, 11 May 2010 18:08:41 +0200 Subject: Cacerts generation in IcedTea6 - please review changes in build scripts Message-ID: <4BE98109.6070607@redhat.com> Hi, I changed IcedTea6 build scripts namely configure.ac and Makefile.am to generate proper (i.e. not empty) cacerts file for J2SDK and also JRE images. Cacerts generation could be enabled by configuration flag --enable-openssh-cacerts. Cacerts generator (i.e. the script named "generate-cacerts.sh") is written in Bash and uses keytool from compiled J2SDK so this also does basic check whether J2SDK is built correctly. Can you please check whether it is possible to push the changes to the IcedTea repository? TODO: - allow specification of directory containing OpenSSH certificates (new configuration flag) - allow certificates downloading during build (from Mozilla project - is it possible?) Cheers Pavel -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: configure.ac.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100511/e92cadb9/configure.ac.diff -------------- next part -------------- A non-text attachment was scrubbed... Name: generate-cacerts.sh Type: application/x-shellscript Size: 3371 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100511/e92cadb9/generate-cacerts.sh -------------- next part -------------- An embedded and charset-unspecified text was scrubbed... Name: Makefile.am.diff Url: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100511/e92cadb9/Makefile.am.diff From ahughes at redhat.com Tue May 11 09:37:32 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 11 May 2010 17:37:32 +0100 Subject: Cacerts generation in IcedTea6 - please review changes in build scripts In-Reply-To: <4BE98109.6070607@redhat.com> References: <4BE98109.6070607@redhat.com> Message-ID: On 11 May 2010 17:08, Pavel Tisnovsky wrote: > Hi, > > I changed IcedTea6 build scripts namely configure.ac and Makefile.am to > generate proper (i.e. not empty) cacerts file for J2SDK and also JRE images. > Cacerts generation could be enabled by configuration flag > --enable-openssh-cacerts. I think --enable-cacerts-generation would be a better choice of name. I don't see why we are even referring to openssh when these are SSL certificates from Mozilla if I understand correctly. > Cacerts generator (i.e. the script named > "generate-cacerts.sh") is written in Bash and uses keytool from compiled > J2SDK so this also does basic check whether J2SDK is built correctly. A standard build does a more through test by building OpenJDK with the JDK just built. > > Can you please check whether it is possible to push the changes to the > IcedTea repository? > There is a hardcoded path: /etc/pki/tls/certs/ca-bundle.crt which doesn't exist on either of the Debian or Gentoo systems I just checked. Something along the lines of AC_CHECK_FOR_OPENJDK is needed which checks the normal locations on a range of distros and allows an alternate to be specified. I don't see much advantage in adding a feature which only works on one particular system. > TODO: > - allow specification of directory containing OpenSSH certificates (new > configuration flag) > - allow certificates downloading during build (from Mozilla project - is it > possible?) > > Cheers > Pavel > > --- configure.ac ? ? ? ?2010-05-11 17:51:45.000000000 +0200 > +++ /jck/2/configure.ac 2010-05-11 15:57:48.000000000 +0200 > @@ -159,6 +159,14 @@ > ? AC_MSG_RESULT([disabled by default (edit java.security to enable)]) > ?fi > > +AC_MSG_CHECKING([whether to generate cacerts file using OpenSSH > certificates]) > +AC_ARG_ENABLE([openssh-cacerts], > + ? ? ? ? ? ? ?[AS_HELP_STRING([--enable-openssh-cacerts], > + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[Enable cacerts generation using OpenSSH > certificates])], > + ? ? ? ? ? ? ?[enable_openssh_cacerts="${enableval}"], > [enable-openssh-cacerts="no"]) > +AM_CONDITIONAL(GENERATE_CACERTS, test "x${enable_openssh_cacerts}" = > "xyes") > +AC_MSG_RESULT(${enable_openssh_cacerts}) > + > ?IT_GET_PKGVERSION > ?IT_GET_LSB_DATA > > > --- Makefile.am 2010-05-11 17:51:45.000000000 +0200 > +++ /jck/2/Makefile.am ?2010-05-11 17:39:31.000000000 +0200 > @@ -1314,6 +1314,14 @@ > ? ? ? ?cp $(abs_top_builddir)/tz.properties \ > ? ? ? ? ?$(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; > ?endif > +if GENERATE_CACERTS > + ? ? ? rm -rf pems > + ? ? ? rm -f $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts > + ? ? ? rm -f $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/cacerts > + ? ? ? mkdir -p pems > + ? ? ? sh scripts/generate-cacerts.sh > $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/keytool /etc/pki/tls/certs/ca-bundle.crt > pems $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts > + ? ? ? cp $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts > $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/cacerts > +endif > ? ? ? ?@echo "IcedTea is served:" $(BUILD_OUTPUT_DIR) > ? ? ? ?mkdir -p stamps > ? ? ? ?touch stamps/icedtea.stamp > @@ -1404,6 +1412,14 @@ > ? ? ? ?cp $(abs_top_builddir)/tz.properties \ > ? ? ? ? ?$(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib; > ?endif > +if GENERATE_CACERTS > + ? ? ? rm -rf pems > + ? ? ? rm -f $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts > + ? ? ? rm -f $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security/cacerts > + ? ? ? mkdir -p pems > + ? ? ? sh scripts/generate-cacerts.sh > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/bin/keytool > /etc/pki/tls/certs/ca-bundle.crt pems > $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts > + ? ? ? cp $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security/cacerts > +endif > ? ? ? ?@echo "IcedTea (debug build) is served:" \ > ? ? ? ? ?$(BUILD_OUTPUT_DIR)-debug > ? ? ? ?mkdir -p stamps > > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From ahughes at redhat.com Tue May 11 09:38:36 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 11 May 2010 17:38:36 +0100 Subject: Cacerts generation in IcedTea6 - please review changes in build scripts In-Reply-To: References: <4BE98109.6070607@redhat.com> Message-ID: On 11 May 2010 17:37, Andrew John Hughes wrote: > On 11 May 2010 17:08, Pavel Tisnovsky wrote: >> Hi, >> >> I changed IcedTea6 build scripts namely configure.ac and Makefile.am to >> generate proper (i.e. not empty) cacerts file for J2SDK and also JRE images. >> Cacerts generation could be enabled by configuration flag >> --enable-openssh-cacerts. > > I think --enable-cacerts-generation would be a better choice of name. > I don't see why we are even referring to openssh when these are SSL > certificates from Mozilla if I understand correctly. > >> Cacerts generator (i.e. the script named >> "generate-cacerts.sh") is written in Bash and uses keytool from compiled >> J2SDK so this also does basic check whether J2SDK is built correctly. > > A standard build does a more through test by building OpenJDK with the > JDK just built. > >> >> Can you please check whether it is possible to push the changes to the >> IcedTea repository? >> > > There is a hardcoded path: > > /etc/pki/tls/certs/ca-bundle.crt > > which doesn't exist on either of the Debian or Gentoo systems I just > checked. ?Something along the lines of AC_CHECK_FOR_OPENJDK is needed > which checks the normal locations on a range of distros and allows an > alternate to be specified. ?I don't see much advantage in adding a > feature which only works on one particular system. > I'd also rearrange things so that the file is not removed until one is successfully generated. You don't currently check anything about what is generated. >> TODO: >> - allow specification of directory containing OpenSSH certificates (new >> configuration flag) >> - allow certificates downloading during build (from Mozilla project - is it >> possible?) >> >> Cheers >> Pavel >> >> --- configure.ac ? ? ? ?2010-05-11 17:51:45.000000000 +0200 >> +++ /jck/2/configure.ac 2010-05-11 15:57:48.000000000 +0200 >> @@ -159,6 +159,14 @@ >> ? AC_MSG_RESULT([disabled by default (edit java.security to enable)]) >> ?fi >> >> +AC_MSG_CHECKING([whether to generate cacerts file using OpenSSH >> certificates]) >> +AC_ARG_ENABLE([openssh-cacerts], >> + ? ? ? ? ? ? ?[AS_HELP_STRING([--enable-openssh-cacerts], >> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[Enable cacerts generation using OpenSSH >> certificates])], >> + ? ? ? ? ? ? ?[enable_openssh_cacerts="${enableval}"], >> [enable-openssh-cacerts="no"]) >> +AM_CONDITIONAL(GENERATE_CACERTS, test "x${enable_openssh_cacerts}" = >> "xyes") >> +AC_MSG_RESULT(${enable_openssh_cacerts}) >> + >> ?IT_GET_PKGVERSION >> ?IT_GET_LSB_DATA >> >> >> --- Makefile.am 2010-05-11 17:51:45.000000000 +0200 >> +++ /jck/2/Makefile.am ?2010-05-11 17:39:31.000000000 +0200 >> @@ -1314,6 +1314,14 @@ >> ? ? ? ?cp $(abs_top_builddir)/tz.properties \ >> ? ? ? ? ?$(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; >> ?endif >> +if GENERATE_CACERTS >> + ? ? ? rm -rf pems >> + ? ? ? rm -f $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts >> + ? ? ? rm -f $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/cacerts >> + ? ? ? mkdir -p pems >> + ? ? ? sh scripts/generate-cacerts.sh >> $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/keytool /etc/pki/tls/certs/ca-bundle.crt >> pems $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts >> + ? ? ? cp $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts >> $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/cacerts >> +endif >> ? ? ? ?@echo "IcedTea is served:" $(BUILD_OUTPUT_DIR) >> ? ? ? ?mkdir -p stamps >> ? ? ? ?touch stamps/icedtea.stamp >> @@ -1404,6 +1412,14 @@ >> ? ? ? ?cp $(abs_top_builddir)/tz.properties \ >> ? ? ? ? ?$(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib; >> ?endif >> +if GENERATE_CACERTS >> + ? ? ? rm -rf pems >> + ? ? ? rm -f $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts >> + ? ? ? rm -f $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security/cacerts >> + ? ? ? mkdir -p pems >> + ? ? ? sh scripts/generate-cacerts.sh >> $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/bin/keytool >> /etc/pki/tls/certs/ca-bundle.crt pems >> $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts >> + ? ? ? cp $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts >> $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security/cacerts >> +endif >> ? ? ? ?@echo "IcedTea (debug build) is served:" \ >> ? ? ? ? ?$(BUILD_OUTPUT_DIR)-debug >> ? ? ? ?mkdir -p stamps >> >> > > > > -- > Andrew :-) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and the OpenJDK > http://www.gnu.org/software/classpath > http://openjdk.java.net > > PGP Key: 94EFD9D8 (http://subkeys.pgp.net) > Fingerprint: F8EF F1EA 401E 2E60 15FA ?7927 142C 2591 94EF D9D8 > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From ahughes at redhat.com Tue May 11 09:41:32 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Tue, 11 May 2010 17:41:32 +0100 Subject: Cacerts generation in IcedTea6 - please review changes in build scripts In-Reply-To: References: <4BE98109.6070607@redhat.com> Message-ID: On 11 May 2010 17:38, Andrew John Hughes wrote: > On 11 May 2010 17:37, Andrew John Hughes wrote: >> On 11 May 2010 17:08, Pavel Tisnovsky wrote: >>> Hi, >>> >>> I changed IcedTea6 build scripts namely configure.ac and Makefile.am to >>> generate proper (i.e. not empty) cacerts file for J2SDK and also JRE images. >>> Cacerts generation could be enabled by configuration flag >>> --enable-openssh-cacerts. >> >> I think --enable-cacerts-generation would be a better choice of name. >> I don't see why we are even referring to openssh when these are SSL >> certificates from Mozilla if I understand correctly. >> >>> Cacerts generator (i.e. the script named >>> "generate-cacerts.sh") is written in Bash and uses keytool from compiled >>> J2SDK so this also does basic check whether J2SDK is built correctly. >> >> A standard build does a more through test by building OpenJDK with the >> JDK just built. >> >>> >>> Can you please check whether it is possible to push the changes to the >>> IcedTea repository? >>> >> >> There is a hardcoded path: >> >> /etc/pki/tls/certs/ca-bundle.crt >> >> which doesn't exist on either of the Debian or Gentoo systems I just >> checked. ?Something along the lines of AC_CHECK_FOR_OPENJDK is needed >> which checks the normal locations on a range of distros and allows an >> alternate to be specified. ?I don't see much advantage in adding a >> feature which only works on one particular system. >> > > I'd also rearrange things so that the file is not removed until one is > successfully generated. ?You don't currently check anything about what > is generated. > Gentoo does the following: for c in /usr/share/ca-certificates/*/*.crt; do openssl x509 -text -in "${c}" >> all.crt || die done ./generate-cacerts.pl "${ddest}/bin/keytool" all.crt || die cp -vRP cacerts "${ddest}/jre/lib/security/" || die chmod 644 "${ddest}/jre/lib/security/cacerts" || die >>> TODO: >>> - allow specification of directory containing OpenSSH certificates (new >>> configuration flag) >>> - allow certificates downloading during build (from Mozilla project - is it >>> possible?) >>> >>> Cheers >>> Pavel >>> >>> --- configure.ac ? ? ? ?2010-05-11 17:51:45.000000000 +0200 >>> +++ /jck/2/configure.ac 2010-05-11 15:57:48.000000000 +0200 >>> @@ -159,6 +159,14 @@ >>> ? AC_MSG_RESULT([disabled by default (edit java.security to enable)]) >>> ?fi >>> >>> +AC_MSG_CHECKING([whether to generate cacerts file using OpenSSH >>> certificates]) >>> +AC_ARG_ENABLE([openssh-cacerts], >>> + ? ? ? ? ? ? ?[AS_HELP_STRING([--enable-openssh-cacerts], >>> + ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?[Enable cacerts generation using OpenSSH >>> certificates])], >>> + ? ? ? ? ? ? ?[enable_openssh_cacerts="${enableval}"], >>> [enable-openssh-cacerts="no"]) >>> +AM_CONDITIONAL(GENERATE_CACERTS, test "x${enable_openssh_cacerts}" = >>> "xyes") >>> +AC_MSG_RESULT(${enable_openssh_cacerts}) >>> + >>> ?IT_GET_PKGVERSION >>> ?IT_GET_LSB_DATA >>> >>> >>> --- Makefile.am 2010-05-11 17:51:45.000000000 +0200 >>> +++ /jck/2/Makefile.am ?2010-05-11 17:39:31.000000000 +0200 >>> @@ -1314,6 +1314,14 @@ >>> ? ? ? ?cp $(abs_top_builddir)/tz.properties \ >>> ? ? ? ? ?$(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; >>> ?endif >>> +if GENERATE_CACERTS >>> + ? ? ? rm -rf pems >>> + ? ? ? rm -f $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts >>> + ? ? ? rm -f $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/cacerts >>> + ? ? ? mkdir -p pems >>> + ? ? ? sh scripts/generate-cacerts.sh >>> $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/keytool /etc/pki/tls/certs/ca-bundle.crt >>> pems $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts >>> + ? ? ? cp $(BUILD_OUTPUT_DIR)/j2re-image/lib/security/cacerts >>> $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security/cacerts >>> +endif >>> ? ? ? ?@echo "IcedTea is served:" $(BUILD_OUTPUT_DIR) >>> ? ? ? ?mkdir -p stamps >>> ? ? ? ?touch stamps/icedtea.stamp >>> @@ -1404,6 +1412,14 @@ >>> ? ? ? ?cp $(abs_top_builddir)/tz.properties \ >>> ? ? ? ? ?$(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib; >>> ?endif >>> +if GENERATE_CACERTS >>> + ? ? ? rm -rf pems >>> + ? ? ? rm -f $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts >>> + ? ? ? rm -f $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security/cacerts >>> + ? ? ? mkdir -p pems >>> + ? ? ? sh scripts/generate-cacerts.sh >>> $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/bin/keytool >>> /etc/pki/tls/certs/ca-bundle.crt pems >>> $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts >>> + ? ? ? cp $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/security/cacerts >>> $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security/cacerts >>> +endif >>> ? ? ? ?@echo "IcedTea (debug build) is served:" \ >>> ? ? ? ? ?$(BUILD_OUTPUT_DIR)-debug >>> ? ? ? ?mkdir -p stamps >>> >>> >> >> >> >> -- >> Andrew :-) >> >> Free Java Software Engineer >> Red Hat, Inc. (http://www.redhat.com) >> >> Support Free Java! >> Contribute to GNU Classpath and the OpenJDK >> http://www.gnu.org/software/classpath >> http://openjdk.java.net >> >> PGP Key: 94EFD9D8 (http://subkeys.pgp.net) >> Fingerprint: F8EF F1EA 401E 2E60 15FA ?7927 142C 2591 94EF D9D8 >> > > > > -- > Andrew :-) > > Free Java Software Engineer > Red Hat, Inc. (http://www.redhat.com) > > Support Free Java! > Contribute to GNU Classpath and the OpenJDK > http://www.gnu.org/software/classpath > http://openjdk.java.net > > PGP Key: 94EFD9D8 (http://subkeys.pgp.net) > Fingerprint: F8EF F1EA 401E 2E60 15FA ?7927 142C 2591 94EF D9D8 > -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From andrew at icedtea.classpath.org Tue May 11 13:45:50 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 11 May 2010 20:45:50 +0000 Subject: /hg/icedtea: 2 new changesets Message-ID: changeset 5aad5596cd2f in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=5aad5596cd2f author: Andrew John Hughes date: Tue May 11 21:06:13 2010 +0100 Decide on libjpeg library at compile-time not runtime. 2010-01-11 Andrew John Hughes * patches/icedtea-libraries.patch: Decide which libjpeg library to load at compile-time not runtime using JPEG_LIB_VERSION. (See http://bugs.debian.org/563999) changeset b361e1d82aaa in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=b361e1d82aaa author: Deepak Bhole date: Tue May 11 21:40:50 2010 +0100 - Adding last bits for full Java->JS array element access (read and write) support. - Checking in initial version of LiveConnect tests (WIP) 2010-05-11 Andrew John Hughes * .hgignore: Remove jar files. 2010-01-13 Deepak Bhole * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc: Add missing newline. * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc (newMessageOnBus): Service GetSlot and SetSlot requests. (call): Create Java object from result only if it is non-null. (setMember): Pass a preset identifier to _setMember. Handle array slot setting. (sendMember): Handle array slot read. (queue_processor): Service GetSlot and SetSlot requests. (_setMember): Work with property NPIdentifier instead of name string. (_getMember): Same. * plugin/icedteanp/IcedTeaPluginUtils.cc (isObjectJSArray): Handle void constructor objects like 'window'. diffstat: 6 files changed, 74 insertions(+), 32 deletions(-) .hgignore | 1 ChangeLog | 28 +++++++++++ patches/icedtea-libraries.patch | 18 ++++--- plugin/icedteanp/IcedTeaJavaRequestProcessor.cc | 2 plugin/icedteanp/IcedTeaPluginRequestProcessor.cc | 51 ++++++++++++--------- plugin/icedteanp/IcedTeaPluginUtils.cc | 6 ++ diffs (248 lines): diff -r 0e1f42ea40cf -r b361e1d82aaa .hgignore --- a/.hgignore Tue May 11 14:05:30 2010 +0100 +++ b/.hgignore Tue May 11 21:40:50 2010 +0100 @@ -10,4 +10,3 @@ install-sh install-sh Makefile.in *.sh -plugin/tests/LiveConnect/*jar diff -r 0e1f42ea40cf -r b361e1d82aaa ChangeLog --- a/ChangeLog Tue May 11 14:05:30 2010 +0100 +++ b/ChangeLog Tue May 11 21:40:50 2010 +0100 @@ -1,3 +1,31 @@ 2010-05-11 Andrew John Hughes + + * .hgignore: Remove jar files. + +2010-01-13 Deepak Bhole + + * plugin/icedteanp/IcedTeaJavaRequestProcessor.cc: + Add missing newline. + * plugin/icedteanp/IcedTeaPluginRequestProcessor.cc + (newMessageOnBus): Service GetSlot and SetSlot requests. + (call): Create Java object from result only if it is non-null. + (setMember): Pass a preset identifier to _setMember. Handle array slot + setting. + (sendMember): Handle array slot read. + (queue_processor): Service GetSlot and SetSlot requests. + (_setMember): Work with property NPIdentifier instead of name string. + (_getMember): Same. + * plugin/icedteanp/IcedTeaPluginUtils.cc + (isObjectJSArray): Handle void constructor objects like 'window'. + +2010-01-11 Andrew John Hughes + + * patches/icedtea-libraries.patch: + Decide which libjpeg library to load + at compile-time not runtime using + JPEG_LIB_VERSION. + (See http://bugs.debian.org/563999) + 2010-05-11 Andrew John Hughes Fix issues with the CACAO build so it at diff -r 0e1f42ea40cf -r b361e1d82aaa patches/icedtea-libraries.patch --- a/patches/icedtea-libraries.patch Tue May 11 14:05:30 2010 +0100 +++ b/patches/icedtea-libraries.patch Tue May 11 21:40:50 2010 +0100 @@ -700,17 +700,18 @@ diff -Nru openjdk.orig/jdk/src/share/nat } -@@ -2341,6 +2401,145 @@ +@@ -2341,6 +2401,146 @@ /********************** end of destination manager ************/ +METHODDEF(void) +initIDs() +{ ++#if JPEG_LIB_VERSION >= 70 + void *handle = dlopen("libjpeg.so.7", RTLD_LAZY | RTLD_GLOBAL); -+ if (handle == NULL) { -+ handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); -+ } ++#else ++ void *handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); ++#endif + + jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error"); + if (jpegstderror == NULL) { @@ -20987,14 +20988,15 @@ diff -Nru openjdk.orig/jdk/src/share/nat /* Initialize the Java VM instance variable when the library is first loaded */ JavaVM *jvm; -@@ -462,6 +490,71 @@ +@@ -462,6 +490,72 @@ Java_sun_awt_image_JPEGImageDecoder_initIDs(JNIEnv *env, jclass cls, jclass InputStreamClass) { ++#if JPEG_LIB_VERSION >= 70 + void *handle = dlopen("libjpeg.so.7", RTLD_LAZY | RTLD_GLOBAL); -+ if (handle == NULL) { -+ handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); -+ } ++#else ++ void *handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); ++#endif + + jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error"); + if (jpegstderror == NULL) { diff -r 0e1f42ea40cf -r b361e1d82aaa plugin/icedteanp/IcedTeaJavaRequestProcessor.cc --- a/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc Tue May 11 14:05:30 2010 +0100 +++ b/plugin/icedteanp/IcedTeaJavaRequestProcessor.cc Tue May 11 21:40:50 2010 +0100 @@ -899,7 +899,7 @@ createJavaObjectFromVariant(NPP instance alreadyCreated = true; } else { - PLUGIN_DEBUG_0ARG("NPObject is not a Java object"); + PLUGIN_DEBUG_0ARG("NPObject is not a Java object\n"); NPIdentifier length_id = browser_functions.getstringidentifier("length"); // FIXME: We currently only handle <= 2 dim arrays. Do we really need more though? diff -r 0e1f42ea40cf -r b361e1d82aaa plugin/icedteanp/IcedTeaPluginRequestProcessor.cc --- a/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc Tue May 11 14:05:30 2010 +0100 +++ b/plugin/icedteanp/IcedTeaPluginRequestProcessor.cc Tue May 11 21:40:50 2010 +0100 @@ -333,7 +333,14 @@ PluginRequestProcessor::call(std::vector NPVariant* result_variant = (NPVariant*) IcedTeaPluginUtilities::stringToJSID(thread_data.result); std::string result_variant_jniid = std::string(); - createJavaObjectFromVariant(instance, *result_variant, &result_variant_jniid); + + if (result_variant) + { + createJavaObjectFromVariant(instance, *result_variant, &result_variant_jniid); + } else + { + result_variant_jniid = "0"; + } IcedTeaPluginUtilities::constructMessagePrefix(0, &response); response += " JavaScriptCall "; @@ -414,6 +421,7 @@ PluginRequestProcessor::setMember(std::v NPP instance; NPVariant* member; + NPIdentifier property_identifier; JavaRequestProcessor java_request = JavaRequestProcessor(); JavaResultData* java_result; @@ -435,20 +443,13 @@ PluginRequestProcessor::setMember(std::v instance = IcedTeaPluginUtilities::getInstanceFromMemberPtr(member); - java_result = java_request.getString(propertyNameID); - - // the result we want is in result_string (assuming there was no error) - if (java_result->error_occurred) - { - printf("Unable to get member name for setMember. Error occurred: %s\n", java_result->error_msg); - //goto cleanup; - } - - property_identifier = browser_functions.getstringidentifier(java_result->return_string->c_str()); + if (message_parts->at(2) == "SetSlot") + { + property_identifier = browser_functions.getintidentifier(atoi(message_parts->at(4).c_str())); + } else + { + java_result = java_request.getString(propertyNameID); } - - // Copy into local variable before disposing the object - property_name.append(*(java_result->return_string)); AsyncCallThreadData thread_data = AsyncCallThreadData(); thread_data.result_ready = false; @@ -457,7 +458,7 @@ PluginRequestProcessor::setMember(std::v thread_data.parameters.push_back(instance); thread_data.parameters.push_back(NPVARIANT_TO_OBJECT(*member)); - thread_data.parameters.push_back(&property_name); + thread_data.parameters.push_back(&property_identifier); thread_data.parameters.push_back(&value); #ifdef CHROMIUM_WORKAROUND @@ -511,6 +512,8 @@ PluginRequestProcessor::sendMember(std:: NPIdentifier member_identifier; + NPIdentifier member_identifier; + int method_id; int instance_id; long reference; @@ -554,7 +557,7 @@ PluginRequestProcessor::sendMember(std:: NPP instance = IcedTeaPluginUtilities::getInstanceFromMemberPtr(parent_ptr); thread_data.parameters.push_back(instance); thread_data.parameters.push_back(NPVARIANT_TO_OBJECT(*parent_ptr)); - thread_data.parameters.push_back(java_result->return_string); + thread_data.parameters.push_back(&member_identifier); #ifdef CHROMIUM_WORKAROUND // Workaround for chromium @@ -696,6 +699,12 @@ queue_processor(void* data) pthread_mutex_lock(&syn_write_mutex); processor->sendMember(message_parts); pthread_mutex_unlock(&syn_write_mutex); + } else if (command == "SetSlot") + { + // write methods are synchronized + pthread_mutex_lock(&syn_write_mutex); + processor->setMember(message_parts); + pthread_mutex_unlock(&syn_write_mutex); } else { // Nothing matched @@ -733,16 +742,16 @@ _setMember(void* data) std::vector parameters = ((AsyncCallThreadData*) data)->parameters; instance = (NPP) parameters.at(0); member = (NPObject*) parameters.at(1); - property_name = (std::string*) parameters.at(2); + property = (NPIdentifier*) parameters.at(2); value = (std::string*) parameters.at(3); PLUGIN_DEBUG_4ARG("Setting %s on instance %p, object %p to value %s\n", - property_name->c_str(), instance, member, value->c_str()); + browser_functions.utf8fromidentifier(*property), + instance, member, value->c_str()); IcedTeaPluginUtilities::javaResultToNPVariant(instance, value, &value_variant); - property = browser_functions.getstringidentifier(property_name->c_str()); - ((AsyncCallThreadData*) data)->call_successful = browser_functions.setproperty(instance, member, property, &value_variant); + ((AsyncCallThreadData*) data)->call_successful = browser_functions.setproperty(instance, member, *property, &value_variant); IcedTeaPluginUtilities::constructMessagePrefix(0, &response); response.append(" JavaScriptSetMember "); @@ -776,7 +785,7 @@ _getMember(void* data) printf("%s not found!\n", browser_functions.utf8fromidentifier(*member_identifier)); } ((AsyncCallThreadData*) data)->call_successful = - browser_functions.getproperty(instance, parent_ptr, member_identifier, member_ptr); + browser_functions.getproperty(instance, parent_ptr, *member_identifier, member_ptr); IcedTeaPluginUtilities::printNPVariant(*member_ptr); diff -r 0e1f42ea40cf -r b361e1d82aaa plugin/icedteanp/IcedTeaPluginUtils.cc --- a/plugin/icedteanp/IcedTeaPluginUtils.cc Tue May 11 14:05:30 2010 +0100 +++ b/plugin/icedteanp/IcedTeaPluginUtils.cc Tue May 11 21:40:50 2010 +0100 @@ -817,14 +817,18 @@ IcedTeaPluginUtilities::isObjectJSArray( NPVariant constructor_v = NPVariant(); NPIdentifier constructor_id = browser_functions.getstringidentifier("constructor"); browser_functions.getproperty(instance, object, constructor_id, &constructor_v); + IcedTeaPluginUtilities::printNPVariant(constructor_v); - IcedTeaPluginUtilities::printNPVariant(constructor_v); + // void constructor => not an array + if (NPVARIANT_IS_VOID(constructor_v)) + return false; NPObject* constructor = NPVARIANT_TO_OBJECT(constructor_v); NPVariant constructor_str; NPIdentifier toString = browser_functions.getstringidentifier("toString"); browser_functions.invoke(instance, constructor, toString, NULL, 0, &constructor_str); + IcedTeaPluginUtilities::printNPVariant(constructor_str); std::string constructor_name = std::string(); From bugzilla-daemon at icedtea.classpath.org Tue May 11 18:26:52 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 12 May 2010 01:26:52 +0000 Subject: [Bug 490] New: OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 Summary: OpenOffice crashes due to a JRE fatal error Product: IcedTea Version: unspecified Platform: 64-bit OS/Version: Linux Status: NEW Severity: major Priority: P2 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: tim at dotsec.com 'morning all, I have encountered this bug dozens of times each day, for a couple of days now. In summary, OpenOffice crashes due to a JRE fatal error. The bug seems to manifest itself when I try to perform file-system operations from within OO, such as "File -> Save As", "Print to PDF" or "Insert -> Image from file". Occasionally I get an error dialog popping up indicating that a file-handling process has died unexpectedly, however it disappears too quickly for me to get the exact wording; I'll update this ticket if I can get the info later. The console from which I ran OO shows the following error message: ---snip--- # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00007fcacfdfb024, pid=19746, tid=140509245261584 # # JRE version: 6.0_17-b17 # Java VM: OpenJDK 64-Bit Server VM (14.0-b16 mixed mode linux-amd64 ) # Derivative: IcedTea6 1.7.3 # Distribution: Custom build (Mon Apr 12 15:03:54 UTC 2010) # Problematic frame: # C [libQtNetwork.so.4+0x8e024] # # An error report file with more information is saved as: # /home/tim/hs_err_pid19746.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # [error occurred during error reporting , id 0xb] ---snip--- The full error-log is 1200 lines long, so I don't want to cut'n'paste it here; is there a way to attach it to this bug report? If not, I'll organise a URL from which the log file can be downloaded. Let me know if I can do anything else to help resolve this bug. Thanks, Tim. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 11 21:01:43 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 12 May 2010 04:01:43 +0000 Subject: [Bug 490] OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 ------- Comment #1 from tim at dotsec.com 2010-05-12 04:01 ------- Hello! I got the wording of the error that appears on the OO pop-up dialog: "The process for the file protocol died unexpectedly." Nuthin but an "OK" button :-) If I then go back to my document and try "File -> Save As" I get another pop-up dialog: "The specified folder does not exist or was not readable." I guess OO is referring to the folder where the current version of the doc is stored. Erk! I hope I haven't lost changes again! Thanks, Tim. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 11 21:02:46 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 12 May 2010 04:02:46 +0000 Subject: [Bug 490] OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 ------- Comment #2 from tim at dotsec.com 2010-05-12 04:02 ------- Created an attachment (id=337) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=337&action=view) Here is the complete error log, as described above -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 12 01:38:43 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 12 May 2010 08:38:43 +0000 Subject: [Bug 490] OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 ------- Comment #3 from aph at redhat.com 2010-05-12 08:38 ------- This isn't a crash in the JRE, although the JRE catches it and prints the error message. It's actually a crash in Qt. Am I right thinking you're running on KDE? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Wed May 12 02:59:13 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 12 May 2010 09:59:13 +0000 Subject: /hg/icedtea: 3 new changesets Message-ID: changeset 27ce7d579936 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=27ce7d579936 author: Matthias Klose date: Wed May 12 09:38:28 2010 +0100 Proper dependency checking for files involved in the build of the NPPlugin 2010-01-14 Matthias Klose * Makefile.am (stamps/icedtea-npplugin): New target, add file dependencies for building the IcedTeaNPPlugin.so. changeset f6febe400063 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=f6febe400063 author: Andrew John Hughes date: Wed May 12 10:22:50 2010 +0100 Cleanup quoting and output of configure macros and make them less error-prone. 2010-01-16 Andrew John Hughes configure output and option cleanup * acinclude.m4: (FIND_ECJ_JAR): Always produce output, not just when explicitly specified. (FIND_JAVAH): Handle the yes and no possibilities better. (FIND_JAR): Likewise. (FIND_RMIC): Likewise. (WITH_OPENJDK_SRC_ZIP): Quote checking output. (WITH_ALT_JAR_BINARY): Likewise. (FIND_XALAN2_JAR): Improve wording. (FIND_XALAN2_SERIALIZER_JAR): Likewise. (FIND_XERCES_JAR): Likewise. (FIND_NETBEANS): Handle yes and no possibilities better. (FIND_RHINO_JAR): Quote checking output. (ENABLE_ZERO_BUILD): Quote checking output. (AC_CHECK_WITH_CACAO_SRC_ZIP): Likewise. (AC_CHECK_WITH_CACAO_SRC_DIR): Likewise. (IT_CHECK_NUMBER_OF_PARALLEL_JOBS): Moved to a macro from configure.ac. * configure.ac: Invoke new macros. Quote output and correct typos. Perform IT_CHECK_ADDITIONAL_VMS earlier with Shark, Zero and CACAO checks. changeset 51f35c22d7b6 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=51f35c22d7b6 author: Andrew John Hughes date: Wed May 12 10:31:37 2010 +0100 Handle yes/no in --with-parallel-jobs, detecting the number of processors when yes is specified. 2010-01-16 Andrew John Hughes * acinclude.m4: (IT_CHECK_NUMBER_OF_PARALLEL_JOBS): Handle --with-parallel-jobs and --without-parallel-jobs correctly. --with-parallel-jobs (no arguments) uses available processors + 1, while --without-parallel-jobs (the default) uses 2. (IT_FIND_NUMBER_OF_PROCESSORS): Dependency of above. Uses getconf to obtain the number of available processors. diffstat: 4 files changed, 176 insertions(+), 80 deletions(-) ChangeLog | 46 ++++++++++++++ Makefile.am | 5 + acinclude.m4 | 180 +++++++++++++++++++++++++++++++++++++++------------------- configure.ac | 25 +------- diffs (461 lines): diff -r b361e1d82aaa -r 51f35c22d7b6 ChangeLog --- a/ChangeLog Tue May 11 21:40:50 2010 +0100 +++ b/ChangeLog Wed May 12 10:31:37 2010 +0100 @@ -1,3 +1,49 @@ 2010-05-11 Andrew John Hughes + + * acinclude.m4: + (IT_CHECK_NUMBER_OF_PARALLEL_JOBS): + Handle --with-parallel-jobs and + --without-parallel-jobs correctly. + --with-parallel-jobs (no arguments) uses + available processors + 1, while + --without-parallel-jobs (the default) uses 2. + (IT_FIND_NUMBER_OF_PROCESSORS): + Dependency of above. Uses getconf to + obtain the number of available processors. + +2010-01-16 Andrew John Hughes + + configure output and option cleanup + * acinclude.m4: + (FIND_ECJ_JAR): Always produce output, + not just when explicitly specified. + (FIND_JAVAH): Handle the yes and no + possibilities better. + (FIND_JAR): Likewise. + (FIND_RMIC): Likewise. + (WITH_OPENJDK_SRC_ZIP): Quote checking output. + (WITH_ALT_JAR_BINARY): Likewise. + (FIND_XALAN2_JAR): Improve wording. + (FIND_XALAN2_SERIALIZER_JAR): Likewise. + (FIND_XERCES_JAR): Likewise. + (FIND_NETBEANS): Handle yes and no + possibilities better. + (FIND_RHINO_JAR): Quote checking output. + (ENABLE_ZERO_BUILD): Quote checking output. + (AC_CHECK_WITH_CACAO_SRC_ZIP): Likewise. + (AC_CHECK_WITH_CACAO_SRC_DIR): Likewise. + (IT_CHECK_NUMBER_OF_PARALLEL_JOBS): Moved to a macro + from configure.ac. + * configure.ac: + Invoke new macros. Quote output and correct + typos. Perform IT_CHECK_ADDITIONAL_VMS earlier + with Shark, Zero and CACAO checks. + +2010-01-14 Matthias Klose + + * Makefile.am (stamps/icedtea-npplugin): New target, add file + dependencies for building the IcedTeaNPPlugin.so. + 2010-05-11 Andrew John Hughes * .hgignore: Remove jar files. diff -r b361e1d82aaa -r 51f35c22d7b6 Makefile.am --- a/Makefile.am Tue May 11 21:40:50 2010 +0100 +++ b/Makefile.am Wed May 12 10:31:37 2010 +0100 @@ -177,7 +177,7 @@ if ENABLE_NPPLUGIN if ENABLE_NPPLUGIN PLUGIN_SRCDIR=$(abs_top_srcdir)/plugin/icedteanp PLUGIN_BUILD_DIR=$(abs_top_builddir)/plugin.build/icedteanp -ICEDTEANPPLUGIN_TARGET = $(PLUGIN_BUILD_DIR)/IcedTeaNPPlugin.so +ICEDTEANPPLUGIN_TARGET = stamps/icedtea-npplugin ICEDTEAPLUGIN_CLEAN = clean-IcedTeaNPPlugin PLUGIN_PATCH = patches/icedtea-liveconnect.patch LIVECONNECT_DIR = sun/applet netscape @@ -2026,6 +2026,9 @@ NPPLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedT $(MOZILLA_LIBS)\ -shared -o $@ +stamps/icedtea-npplugin: $(NPPLUGIN_DIR)/IcedTeaNPPlugin.so + touch stamps/icedtea-npplugin + clean-IcedTeaNPPlugin: rm -f $(addprefix $(PLUGIN_BUILD_DIR)/,$(NPPLUGIN_OBJECTS)) rm -f $(PLUGIN_BUILD_DIR)/IcedTeaNPPlugin.so diff -r b361e1d82aaa -r 51f35c22d7b6 acinclude.m4 --- a/acinclude.m4 Tue May 11 21:40:50 2010 +0100 +++ b/acinclude.m4 Wed May 12 10:31:37 2010 +0100 @@ -239,19 +239,17 @@ AC_DEFUN([FIND_ECJ_JAR], ECJ_JAR= ]) if test -z "${ECJ_JAR}"; then - if test -e "/usr/share/java/eclipse-ecj.jar"; then - ECJ_JAR=/usr/share/java/eclipse-ecj.jar - elif test -e "/usr/share/java/ecj.jar"; then - ECJ_JAR=/usr/share/java/ecj.jar - elif test -e "/usr/share/eclipse-ecj-3.3/lib/ecj.jar"; then - ECJ_JAR=/usr/share/eclipse-ecj-3.3/lib/ecj.jar - elif test -e "/usr/share/eclipse-ecj-3.2/lib/ecj.jar"; then - ECJ_JAR=/usr/share/eclipse-ecj-3.2/lib/ecj.jar - elif test -e "/usr/share/eclipse-ecj-3.1/lib/ecj.jar"; then - ECJ_JAR=/usr/share/eclipse-ecj-3.1/lib/ecj.jar - else - ECJ_JAR=no - fi + for jar in /usr/share/java/eclipse-ecj.jar \ + /usr/share/java/ecj.jar \ + /usr/share/eclipse-ecj-3.{2,3,4,5}/lib/ecj.jar; do + if test -e $jar; then + ECJ_JAR=$jar + break + fi + done + if test -z "${ECJ_JAR}"; then + ECJ_JAR=no + fi fi AC_MSG_RESULT(${ECJ_JAR}) if test "x${ECJ_JAR}" = "xno"; then @@ -274,55 +272,67 @@ AC_DEFUN([AC_CHECK_GCC_VERSION], AC_DEFUN([FIND_JAVAH], [ - AC_MSG_CHECKING(for javah) + JAVAH_DEFAULT=${SYSTEM_JDK_DIR}/bin/javah + AC_MSG_CHECKING([if a javah executable is specified]) AC_ARG_WITH([javah], - [AS_HELP_STRING(--with-javah,specify location of the Java header generator)], + [AS_HELP_STRING(--with-javah,specify location of javah)], [ - JAVAH="${withval}" + if test "x${withval}" = "xyes"; then + JAVAH=no + else + JAVAH="${withval}" + fi ], [ - JAVAH=${SYSTEM_JDK_DIR}/bin/javah + JAVAH=no ]) - if ! test -f "${JAVAH}"; then - AC_PATH_PROG(JAVAH, "${JAVAH}") + AC_MSG_RESULT(${JAVAH}) + if test "x${JAVAH}" == "xno"; then + JAVAH=${JAVAH_DEFAULT} + fi + AC_PATH_PROG(JAVAH, "${JAVAH}") + if test -z "${JAVAH}"; then + AC_PATH_PROG(JAVAH, "javah") fi if test -z "${JAVAH}"; then AC_PATH_PROG(JAVAH, "gjavah") fi if test -z "${JAVAH}"; then - AC_PATH_PROG(JAVAH, "javah") - fi - if test -z "${JAVAH}"; then AC_MSG_ERROR("A Java header generator was not found.") fi - AC_MSG_RESULT(${JAVAH}) AC_SUBST(JAVAH) ]) AC_DEFUN([FIND_JAR], [ - AC_MSG_CHECKING(for jar) + JAR_DEFAULT=${SYSTEM_JDK_DIR}/bin/jar + AC_MSG_CHECKING([if a jar executable is specified]) AC_ARG_WITH([jar], - [AS_HELP_STRING(--with-jar,specify location of the Java archive tool (jar))], + [AS_HELP_STRING(--with-jar,specify location of jar)], [ - JAR="${withval}" + if test "x${withval}" = "xyes"; then + JAR=no + else + JAR="${withval}" + fi ], [ - JAR=${SYSTEM_JDK_DIR}/bin/jar + JAR=no ]) - if ! test -f "${JAR}"; then - AC_PATH_PROG(JAR, "${JAR}") + AC_MSG_RESULT(${JAR}) + if test "x${JAR}" == "xno"; then + JAR=${JAR_DEFAULT} + fi + AC_PATH_PROG(JAR, "${JAR}") + if test -z "${JAR}"; then + AC_PATH_PROG(JAR, "jar") fi if test -z "${JAR}"; then AC_PATH_PROG(JAR, "gjar") fi if test -z "${JAR}"; then - AC_PATH_PROG(JAR, "jar") - fi - if test -z "${JAR}"; then AC_MSG_ERROR("No Java archive tool was found.") fi - AC_MSG_RESULT(${JAR}) AC_MSG_CHECKING([whether jar supports @ argument]) touch _config.txt cat >_config.list < The attached patch makes Shark use the LLVM 2.8 memset intrinsic in a more "correct" way. The volatile field really are a bool and the intrinsic signature have been altered in LLVM 2.8 a little so by using the attached patch will make sure that LLVM dont have to guess which intrinsic match best. Cheers Xerxes -------------- next part -------------- A non-text attachment was scrubbed... Name: 12may-memset-llvm2.8-correctness.patch Type: text/x-patch Size: 1007 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100512/ba62a86c/12may-memset-llvm2.8-correctness.patch From bugzilla-daemon at icedtea.classpath.org Wed May 12 14:43:55 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 12 May 2010 21:43:55 +0000 Subject: [Bug 490] OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 ------- Comment #4 from tim at dotsec.com 2010-05-12 21:43 ------- Yep, spot on! 4.3.5 (KDE 4.3.5) "release 0". I can't tell which version of Qt I'm running :-) I have Qt 3.3.8b-93.1 installed, but also libqt4 and libqt4-x11 4.5.3-2.4.2. What you have written makes something else make sense: Even when OO doesn't crash, operations that require file dialogs etc take ages to complete, and the load on Xorg process jumps up quite high (35%) for a second or two. Do you have any suggestions on how I might follow this up, or the correct list/bugtracker to use? Thanks, Tim. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 12 15:09:32 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 12 May 2010 22:09:32 +0000 Subject: [Bug 488] Question mark changing into underscore in URLs directed from an applet. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=488 dignifiedaction at gmail.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dignifiedaction at gmail.com ------- Comment #1 from dignifiedaction at gmail.com 2010-05-12 22:09 ------- I was told to relay this: Test applet: http://www.goproblems.com/test/javaurl/GoTestApplet.java - showDocument() method of java.applet.AppletContext has the problem. - The URL class instance seems created correctly, as seen in the test applet. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 12 21:16:47 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 13 May 2010 04:16:47 +0000 Subject: [Bug 490] OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 ------- Comment #5 from tim at dotsec.com 2010-05-13 04:16 ------- Hello all, I've updated to QT4 (from 3) but this made no improvement. I've since installed GDM and have now been running sessions under Gnome (2.28.2) and have edited a couple of OO docs without any hassle. Perhaps the problem lies under the hood somewhere with KIO... I have no idea :-) I'm happy to help debug this if asked... either that or I'll stick with Gnome until OpenSUSE11.3 comes out and do a fresh install then :-) Thanks, Tim. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From gbenson at icedtea.classpath.org Thu May 13 07:53:43 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Thu, 13 May 2010 14:53:43 +0000 Subject: /hg/icedtea6: Fix signedness of T_BYTE and T_CHAR results Message-ID: changeset 58764093660f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=58764093660f author: Gary Benson date: Thu May 13 15:53:35 2010 +0100 Fix signedness of T_BYTE and T_CHAR results diffstat: 2 files changed, 10 insertions(+), 2 deletions(-) ChangeLog | 8 ++++++++ ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp | 4 ++-- diffs (34 lines): diff -r 0d1df8a64a73 -r 58764093660f ChangeLog --- a/ChangeLog Tue May 11 09:26:09 2010 +0100 +++ b/ChangeLog Thu May 13 15:53:35 2010 +0100 @@ -1,5 +1,13 @@ 2010-05-11 Gary Benson + + PR icedtea/483 + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp + (SharkNativeWrapper::initialize): Fix signedness of T_BYTE + and T_CHAR results. + 2010-05-11 Gary Benson + PR icedtea/323 * patches/icedtea-shark.patch (Deoptimization::create_vframeArray): Remove a now-unnecessary hack. diff -r 0d1df8a64a73 -r 58764093660f ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp --- a/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Tue May 11 09:26:09 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Thu May 13 15:53:35 2010 +0100 @@ -327,11 +327,11 @@ void SharkNativeWrapper::initialize(cons needs_cast = true; break; - case T_BYTE: + case T_CHAR: needs_cast = true; break; - case T_CHAR: + case T_BYTE: case T_SHORT: needs_cast = true; is_signed = true; From bugzilla-daemon at icedtea.classpath.org Thu May 13 07:54:07 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 13 May 2010 14:54:07 +0000 Subject: [Bug 483] Shark miscompiles sun.misc.Unsafe::getByte Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=483 gbenson at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #1 from gbenson at redhat.com 2010-05-13 14:54 ------- Fixed in icedtea6-58764093660f -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From gbenson at redhat.com Thu May 13 07:57:54 2010 From: gbenson at redhat.com (Gary Benson) Date: Thu, 13 May 2010 15:57:54 +0100 Subject: Shark fix Message-ID: <20100513145754.GC11135@redhat.com> Hi all, This commit fixes Shark's compilation of native methods that return byte or char results. PR icedtea/483. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r 0d1df8a64a73 ChangeLog --- a/ChangeLog Tue May 11 09:26:09 2010 +0100 +++ b/ChangeLog Thu May 13 15:55:14 2010 +0100 @@ -1,5 +1,13 @@ +2010-05-13 Gary Benson + + PR icedtea/483 + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp + (SharkNativeWrapper::initialize): Fix signedness of T_BYTE + and T_CHAR results. + 2010-05-11 Gary Benson + PR icedtea/323 * patches/icedtea-shark.patch (Deoptimization::create_vframeArray): Remove a now-unnecessary hack. diff -r 0d1df8a64a73 ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp --- a/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Tue May 11 09:26:09 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Thu May 13 15:55:14 2010 +0100 @@ -327,11 +327,11 @@ needs_cast = true; break; - case T_BYTE: + case T_CHAR: needs_cast = true; break; - case T_CHAR: + case T_BYTE: case T_SHORT: needs_cast = true; is_signed = true; From gbenson at icedtea.classpath.org Fri May 14 03:16:41 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Fri, 14 May 2010 10:16:41 +0000 Subject: /hg/icedtea6: Add missing semicolon Message-ID: changeset f50bc2a9120e in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=f50bc2a9120e author: Gary Benson date: Fri May 14 11:16:36 2010 +0100 Add missing semicolon diffstat: 2 files changed, 6 insertions(+), 1 deletion(-) ChangeLog | 5 +++++ ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 2 +- diffs (24 lines): diff -r 58764093660f -r f50bc2a9120e ChangeLog --- a/ChangeLog Thu May 13 15:53:35 2010 +0100 +++ b/ChangeLog Fri May 14 11:16:36 2010 +0100 @@ -1,3 +1,8 @@ 2010-05-13 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (AbstractInterpreter::layout_activation): Add missing semicolon. + 2010-05-13 Gary Benson PR icedtea/483 diff -r 58764093660f -r f50bc2a9120e ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Thu May 13 15:53:35 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 14 11:16:36 2010 +0100 @@ -819,7 +819,7 @@ int AbstractInterpreter::layout_activati bool is_top_frame) { assert(popframe_extra_args == 0, "what to do?"); assert(!is_top_frame || (!callee_locals && !callee_param_count), - "top frame should have no caller") + "top frame should have no caller"); // This code must exactly match what InterpreterFrame::build // does (the full InterpreterFrame::build, that is, not the From gbenson at icedtea.classpath.org Fri May 14 05:55:33 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Fri, 14 May 2010 12:55:33 +0000 Subject: /hg/icedtea6: Fix PR icedtea/484 Message-ID: changeset d2cf98636cb7 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=d2cf98636cb7 author: Gary Benson date: Fri May 14 13:55:26 2010 +0100 Fix PR icedtea/484 diffstat: 13 files changed, 139 insertions(+), 62 deletions(-) ChangeLog | 43 +++++++++++++++ ports/hotspot/make/linux/makefiles/zeroshark.make | 3 - ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp | 38 ++++++++----- ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp | 8 +- ports/hotspot/src/cpu/zero/vm/entry_zero.hpp | 30 ++++++---- ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 6 +- ports/hotspot/src/share/vm/shark/sharkBuilder.hpp | 1 ports/hotspot/src/share/vm/shark/sharkContext.cpp | 6 +- ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp | 4 - ports/hotspot/src/share/vm/shark/sharkRuntime.cpp | 24 ++------ ports/hotspot/src/share/vm/shark/sharkRuntime.hpp | 4 - ports/hotspot/src/share/vm/shark/sharkStack.cpp | 2 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 32 ++++++++--- diffs (469 lines): diff -r f50bc2a9120e -r d2cf98636cb7 ChangeLog --- a/ChangeLog Fri May 14 11:16:36 2010 +0100 +++ b/ChangeLog Fri May 14 13:55:26 2010 +0100 @@ -1,3 +1,46 @@ 2010-05-14 Gary Benson + + PR icedtea/484 + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp + (CppInterpreter::normal_entry): Return int instead of void. + (CppInterpreter::native_entry): Likewise. + (CppInterpreter::accessor_entry): Likewise. + (CppInterpreter::empty_entry): Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (CppInterpreter::normal_entry): Return 0. + (CppInterpreter::native_entry): Likewise. + (CppInterpreter::accessor_entry): Likewise. + (CppInterpreter::empty_entry): Likewise. + * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp + (ZeroEntry::NormalEntryFunc): Return int instead of void. + (ZeroEntry::OSREntryFunc): Likewise. + (ZeroEntry::invoke): Deoptimize where necessary. + (ZeroEntry::invoke_osr): Likewise. + (ZeroEntry::maybe_deoptimize): New method. + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp + (SharkBuilder::deoptimized_entry_point): New method. + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp + (SharkBuilder::uncommon_trap): Return int instead of void. + (SharkBuilder::deoptimized_entry_point): New method. + * ports/hotspot/src/share/vm/shark/sharkContext.cpp + (SharkContext::SharkContext): Updated entry point types. + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp + (SharkNativeWrapper::initialize): Make generated wrappers + return 0 instead of void. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp + (SharkRuntime::uncommon_trap): Return int instead of void. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp + (SharkRuntime::uncommon_trap): Don't enter the interpreter, + just return the number of frames that have been deoptimized. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::do_trap): Return the number of deoptimized + frames instead of void. + (SharkTopLevelBlock::handle_return): Return 0 instead of void. + (SharkTopLevelBlock::do_call): Deoptimize where necessary. + + * ports/hotspot/make/linux/makefiles/zeroshark.make: + Note that ARM interpreter needs updating for this change too. + 2010-05-14 Gary Benson * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/make/linux/makefiles/zeroshark.make --- a/ports/hotspot/make/linux/makefiles/zeroshark.make Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/make/linux/makefiles/zeroshark.make Fri May 14 13:55:26 2010 +0100 @@ -31,7 +31,8 @@ Obj_Files += cppInterpreter_arm.o Obj_Files += cppInterpreter_arm.o Obj_Files += thumb2.o -#XXX disabled until it has the updated frame anchor code +#XXX disabled until it has the updated frame anchor code (PR icedtea/323) +#XXX and the updated calling convention for deopt (PR icedtea/484) #CFLAGS += -DHOTSPOT_ASM %.o: %.S diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 14 13:55:26 2010 +0100 @@ -37,15 +37,18 @@ thread->reset_last_Java_frame(); \ fixup_after_potential_safepoint() -void CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) { +int CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; // Allocate and initialize our frame. - InterpreterFrame *frame = InterpreterFrame::build(method, CHECK); + InterpreterFrame *frame = InterpreterFrame::build(method, CHECK_0); thread->push_zero_frame(frame); // Execute those bytecodes! main_loop(0, THREAD); + + // No deoptimized frames on the stack + return 0; } void CppInterpreter::main_loop(int recurse, TRAPS) { @@ -165,7 +168,7 @@ void CppInterpreter::main_loop(int recur stack->push(result[-i]); } -void CppInterpreter::native_entry(methodOop method, intptr_t UNUSED, TRAPS) { +int CppInterpreter::native_entry(methodOop method, intptr_t UNUSED, TRAPS) { // Make sure method is native and not abstract assert(method->is_native() && !method->is_abstract(), "should be"); @@ -173,7 +176,7 @@ void CppInterpreter::native_entry(method ZeroStack *stack = thread->zero_stack(); // Allocate and initialize our frame - InterpreterFrame *frame = InterpreterFrame::build(method, CHECK); + InterpreterFrame *frame = InterpreterFrame::build(method, CHECK_0); thread->push_zero_frame(frame); interpreterState istate = frame->interpreter_state(); intptr_t *locals = istate->locals(); @@ -430,25 +433,26 @@ void CppInterpreter::native_entry(method ShouldNotReachHere(); } } + + // No deoptimized frames on the stack + return 0; } -void CppInterpreter::accessor_entry(methodOop method, intptr_t UNUSED, TRAPS) { +int CppInterpreter::accessor_entry(methodOop method, intptr_t UNUSED, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; ZeroStack *stack = thread->zero_stack(); intptr_t *locals = stack->sp(); // Drop into the slow path if we need a safepoint check if (SafepointSynchronize::do_call_back()) { - normal_entry(method, 0, THREAD); - return; + return normal_entry(method, 0, THREAD); } // Load the object pointer and drop into the slow path // if we have a NullPointerException oop object = LOCALS_OBJECT(0); if (object == NULL) { - normal_entry(method, 0, THREAD); - return; + return normal_entry(method, 0, THREAD); } // Read the field index from the bytecode, which looks like this: @@ -470,15 +474,14 @@ void CppInterpreter::accessor_entry(meth constantPoolCacheOop cache = method->constants()->cache(); ConstantPoolCacheEntry* entry = cache->entry_at(index); if (!entry->is_resolved(Bytecodes::_getfield)) { - normal_entry(method, 0, THREAD); - return; + return normal_entry(method, 0, THREAD); } // Get the result and push it onto the stack switch (entry->flag_state()) { case ltos: case dtos: - stack->overflow_check(1, CHECK); + stack->overflow_check(1, CHECK_0); stack->alloc(wordSize); break; } @@ -558,20 +561,25 @@ void CppInterpreter::accessor_entry(meth ShouldNotReachHere(); } } + + // No deoptimized frames on the stack + return 0; } -void CppInterpreter::empty_entry(methodOop method, intptr_t UNUSED, TRAPS) { +int CppInterpreter::empty_entry(methodOop method, intptr_t UNUSED, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; ZeroStack *stack = thread->zero_stack(); // Drop into the slow path if we need a safepoint check if (SafepointSynchronize::do_call_back()) { - normal_entry(method, 0, THREAD); - return; + return normal_entry(method, 0, THREAD); } // Pop our parameters stack->set_sp(stack->sp() + method->size_of_parameters()); + + // No deoptimized frames on the stack + return 0; } InterpreterFrame *InterpreterFrame::build(const methodOop method, TRAPS) { diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp Fri May 14 13:55:26 2010 +0100 @@ -29,10 +29,10 @@ public: // Method entries - static void normal_entry(methodOop method, intptr_t UNUSED, TRAPS); - static void native_entry(methodOop method, intptr_t UNUSED, TRAPS); - static void accessor_entry(methodOop method, intptr_t UNUSED, TRAPS); - static void empty_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int normal_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int native_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int accessor_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int empty_entry(methodOop method, intptr_t UNUSED, TRAPS); public: // Main loop of normal_entry diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/cpu/zero/vm/entry_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/entry_zero.hpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/entry_zero.hpp Fri May 14 13:55:26 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -41,20 +41,30 @@ class ZeroEntry { } private: - typedef void (*NormalEntryFunc)(methodOop method, - intptr_t base_pc, - TRAPS); - typedef void (*OSREntryFunc)(methodOop method, - address osr_buf, - intptr_t base_pc, - TRAPS); + typedef int (*NormalEntryFunc)(methodOop method, + intptr_t base_pc, + TRAPS); + typedef int (*OSREntryFunc)(methodOop method, + address osr_buf, + intptr_t base_pc, + TRAPS); public: void invoke(methodOop method, TRAPS) const { - ((NormalEntryFunc) entry_point())(method, (intptr_t) this, THREAD); + maybe_deoptimize( + ((NormalEntryFunc) entry_point())(method, (intptr_t) this, THREAD), + THREAD); } void invoke_osr(methodOop method, address osr_buf, TRAPS) const { - ((OSREntryFunc) entry_point())(method, osr_buf, (intptr_t) this, THREAD); + maybe_deoptimize( + ((OSREntryFunc) entry_point())(method, osr_buf, (intptr_t) this, THREAD), + THREAD); + } + + private: + static void maybe_deoptimize(int deoptimized_frames, TRAPS) { + if (deoptimized_frames) + CppInterpreter::main_loop(deoptimized_frames - 1, THREAD); } public: diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/share/vm/shark/sharkBuilder.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 14 13:55:26 2010 +0100 @@ -326,7 +326,11 @@ Value* SharkBuilder::throw_StackOverflow } Value* SharkBuilder::uncommon_trap() { - return make_function((address) SharkRuntime::uncommon_trap, "Ti", "v"); + return make_function((address) SharkRuntime::uncommon_trap, "Ti", "i"); +} + +Value* SharkBuilder::deoptimized_entry_point() { + return make_function((address) CppInterpreter::main_loop, "iT", "v"); } // Native-Java transition diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/share/vm/shark/sharkBuilder.hpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 14 13:55:26 2010 +0100 @@ -133,6 +133,7 @@ class SharkBuilder : public llvm::IRBuil public: llvm::Value* throw_StackOverflowError(); llvm::Value* uncommon_trap(); + llvm::Value* deoptimized_entry_point(); // Intrinsics and external functions, part 4: Native-Java transition. // This is a special case in that it is invoked during a thread diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/share/vm/shark/sharkContext.cpp --- a/ports/hotspot/src/share/vm/shark/sharkContext.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkContext.cpp Fri May 14 13:55:26 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2009 Red Hat, Inc. + * Copyright 2009, 2010 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 @@ -76,14 +76,14 @@ SharkContext::SharkContext(const char* n params.push_back(methodOop_type()); params.push_back(intptr_type()); params.push_back(thread_type()); - _entry_point_type = FunctionType::get(void_type(), params, false); + _entry_point_type = FunctionType::get(jint_type(), params, false); params.clear(); params.push_back(methodOop_type()); params.push_back(PointerType::getUnqual(jbyte_type())); params.push_back(intptr_type()); params.push_back(thread_type()); - _osr_entry_point_type = FunctionType::get(void_type(), params, false); + _osr_entry_point_type = FunctionType::get(jint_type(), params, false); // Create mappings for (int i = 0; i < T_CONFLICT; i++) { diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp --- a/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Fri May 14 13:55:26 2010 +0100 @@ -283,7 +283,7 @@ void SharkNativeWrapper::initialize(cons builder()->SetInsertPoint(exception); CreateResetHandleBlock(); stack()->CreatePopFrame(0); - builder()->CreateRetVoid(); + builder()->CreateRet(LLVMValue::jint_constant(0)); builder()->SetInsertPoint(no_exception); @@ -348,5 +348,5 @@ void SharkNativeWrapper::initialize(cons result_addr, PointerType::getUnqual(SharkType::to_stackType(result_type)))); } - builder()->CreateRetVoid(); + builder()->CreateRet(LLVMValue::jint_constant(0)); } diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/share/vm/shark/sharkRuntime.cpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Fri May 14 13:55:26 2010 +0100 @@ -192,14 +192,14 @@ bool SharkRuntime::is_subtype_of(klassOo return object_klass->klass_part()->is_subtype_of(check_klass); } -void SharkRuntime::uncommon_trap(JavaThread* thread, int trap_request) { +int SharkRuntime::uncommon_trap(JavaThread* thread, int trap_request) { + Thread *THREAD = thread; + // In C2, uncommon_trap_blob creates a frame, so all the various // deoptimization functions expect to find the frame of the method // being deopted one frame down on the stack. We create a dummy // frame to mirror this. - FakeStubFrame *stubframe = FakeStubFrame::build(thread); - if (thread->has_pending_exception()) - return; + FakeStubFrame *stubframe = FakeStubFrame::build(CHECK_0); thread->push_zero_frame(stubframe); // Initiate the trap @@ -216,16 +216,12 @@ void SharkRuntime::uncommon_trap(JavaThr int number_of_frames = urb->number_of_frames(); for (int i = 0; i < number_of_frames; i++) { intptr_t size = urb->frame_sizes()[i]; - InterpreterFrame *frame = InterpreterFrame::build(size, thread); - if (thread->has_pending_exception()) - return; + InterpreterFrame *frame = InterpreterFrame::build(size, CHECK_0); thread->push_zero_frame(frame); } // Push another dummy frame - stubframe = FakeStubFrame::build(thread); - if (thread->has_pending_exception()) - return; + stubframe = FakeStubFrame::build(CHECK_0); thread->push_zero_frame(stubframe); // Fill in the skeleton frames @@ -236,12 +232,8 @@ void SharkRuntime::uncommon_trap(JavaThr // Pop our dummy frame thread->pop_zero_frame(); - // Jump into the interpreter -#ifdef CC_INTERP - CppInterpreter::main_loop(number_of_frames - 1, thread); -#else - Unimplemented(); -#endif // CC_INTERP + // Fall back into the interpreter + return number_of_frames; } FakeStubFrame* FakeStubFrame::build(TRAPS) { diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/share/vm/shark/sharkRuntime.hpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.hpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.hpp Fri May 14 13:55:26 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -79,5 +79,5 @@ class SharkRuntime : public AllStatic { public: static void dump(const char *name, intptr_t value); static bool is_subtype_of(klassOop check_klass, klassOop object_klass); - static void uncommon_trap(JavaThread* thread, int trap_request); + static int uncommon_trap(JavaThread* thread, int trap_request); }; diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/share/vm/shark/sharkStack.cpp --- a/ports/hotspot/src/share/vm/shark/sharkStack.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkStack.cpp Fri May 14 13:55:26 2010 +0100 @@ -135,7 +135,7 @@ void SharkStack::CreateStackOverflowChec // Handle overflows builder()->SetInsertPoint(overflow); builder()->CreateCall(builder()->throw_StackOverflowError(), thread()); - builder()->CreateRetVoid(); + builder()->CreateRet(LLVMValue::jint_constant(0)); builder()->SetInsertPoint(abi_ok); } diff -r f50bc2a9120e -r d2cf98636cb7 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Fri May 14 13:55:26 2010 +0100 @@ -594,11 +594,11 @@ bool SharkTopLevelBlock::can_reach_helpe void SharkTopLevelBlock::do_trap(int trap_request) { decache_for_trap(); - builder()->CreateCall2( - builder()->uncommon_trap(), - thread(), - LLVMValue::jint_constant(trap_request)); - builder()->CreateRetVoid(); + builder()->CreateRet( + builder()->CreateCall2( + builder()->uncommon_trap(), + thread(), + LLVMValue::jint_constant(trap_request))); } void SharkTopLevelBlock::call_register_finalizer(Value *receiver) { @@ -677,7 +677,7 @@ void SharkTopLevelBlock::handle_return(B PointerType::getUnqual(SharkType::to_stackType(type)))); } - builder()->CreateRetVoid(); + builder()->CreateRet(LLVMValue::jint_constant(0)); } void SharkTopLevelBlock::do_arraylength() { @@ -1203,7 +1203,25 @@ void SharkTopLevelBlock::do_call() { // Make the call decache_for_Java_call(call_method); - builder()->CreateCall3(entry_point, callee, base_pc, thread()); + Value *deoptimized_frames = builder()->CreateCall3( + entry_point, callee, base_pc, thread()); + + // If the callee got deoptimized then reexecute in the interpreter + BasicBlock *reexecute = function()->CreateBlock("reexecute"); + BasicBlock *call_completed = function()->CreateBlock("call_completed"); + builder()->CreateCondBr( + builder()->CreateICmpNE(deoptimized_frames, LLVMValue::jint_constant(0)), + reexecute, call_completed); + + builder()->SetInsertPoint(reexecute); + builder()->CreateCall2( + builder()->deoptimized_entry_point(), + builder()->CreateSub(deoptimized_frames, LLVMValue::jint_constant(1)), + thread()); + builder()->CreateBr(call_completed); + + // Cache after the call + builder()->SetInsertPoint(call_completed); cache_after_Java_call(call_method); // Check for pending exceptions From bugzilla-daemon at icedtea.classpath.org Fri May 14 05:58:13 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 14 May 2010 12:58:13 +0000 Subject: [Bug 484] Shark jit code block "0xcdcdcdcd" zombie wipeout Sigsegv crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484 gbenson at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #6 from gbenson at redhat.com 2010-05-14 12:58 ------- Fixed in icedtea6-d2cf98636cb7 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From gbenson at redhat.com Fri May 14 06:05:07 2010 From: gbenson at redhat.com (Gary Benson) Date: Fri, 14 May 2010 14:05:07 +0100 Subject: New calling convention for Zero and Shark Message-ID: <20100514130506.GA3438@redhat.com> Hi all, This commit fixes PR icedtea/484, a bug where the native code for deoptimized methods could be freed when in fact they were still on the stack and waiting to return. To make this change I have had to change the calling convention within Zero and Shark. All method entries (the C function that executes the method) now return an integer which is the number of deoptimized frames they have left on the stack. Whenever a method is called it is now the caller's responsibility to check whether frames have been deoptimized and reenter the interpreter if they have. The ARM interpreter needs updating to follow the new convention. I have made a note of this in zeroshark.make, where the code that enables the ARM interpreter is currently commented out. Cheers, Gary -- http://gbenson.net/ -------------- next part -------------- diff -r f50bc2a9120e ChangeLog --- a/ChangeLog Fri May 14 11:16:36 2010 +0100 +++ b/ChangeLog Fri May 14 13:54:40 2010 +0100 @@ -1,3 +1,46 @@ +2010-05-14 Gary Benson + + PR icedtea/484 + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp + (CppInterpreter::normal_entry): Return int instead of void. + (CppInterpreter::native_entry): Likewise. + (CppInterpreter::accessor_entry): Likewise. + (CppInterpreter::empty_entry): Likewise. + * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp + (CppInterpreter::normal_entry): Return 0. + (CppInterpreter::native_entry): Likewise. + (CppInterpreter::accessor_entry): Likewise. + (CppInterpreter::empty_entry): Likewise. + * ports/hotspot/src/cpu/zero/vm/entry_zero.hpp + (ZeroEntry::NormalEntryFunc): Return int instead of void. + (ZeroEntry::OSREntryFunc): Likewise. + (ZeroEntry::invoke): Deoptimize where necessary. + (ZeroEntry::invoke_osr): Likewise. + (ZeroEntry::maybe_deoptimize): New method. + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp + (SharkBuilder::deoptimized_entry_point): New method. + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp + (SharkBuilder::uncommon_trap): Return int instead of void. + (SharkBuilder::deoptimized_entry_point): New method. + * ports/hotspot/src/share/vm/shark/sharkContext.cpp + (SharkContext::SharkContext): Updated entry point types. + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp + (SharkNativeWrapper::initialize): Make generated wrappers + return 0 instead of void. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp + (SharkRuntime::uncommon_trap): Return int instead of void. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp + (SharkRuntime::uncommon_trap): Don't enter the interpreter, + just return the number of frames that have been deoptimized. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::do_trap): Return the number of deoptimized + frames instead of void. + (SharkTopLevelBlock::handle_return): Return 0 instead of void. + (SharkTopLevelBlock::do_call): Deoptimize where necessary. + + * ports/hotspot/make/linux/makefiles/zeroshark.make: + Note that ARM interpreter needs updating for this change too. + 2010-05-14 Gary Benson * ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp diff -r f50bc2a9120e ports/hotspot/make/linux/makefiles/zeroshark.make --- a/ports/hotspot/make/linux/makefiles/zeroshark.make Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/make/linux/makefiles/zeroshark.make Fri May 14 13:54:40 2010 +0100 @@ -31,7 +31,8 @@ Obj_Files += cppInterpreter_arm.o Obj_Files += thumb2.o -#XXX disabled until it has the updated frame anchor code +#XXX disabled until it has the updated frame anchor code (PR icedtea/323) +#XXX and the updated calling convention for deopt (PR icedtea/484) #CFLAGS += -DHOTSPOT_ASM %.o: %.S diff -r f50bc2a9120e ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.cpp Fri May 14 13:54:40 2010 +0100 @@ -37,15 +37,18 @@ thread->reset_last_Java_frame(); \ fixup_after_potential_safepoint() -void CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) { +int CppInterpreter::normal_entry(methodOop method, intptr_t UNUSED, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; // Allocate and initialize our frame. - InterpreterFrame *frame = InterpreterFrame::build(method, CHECK); + InterpreterFrame *frame = InterpreterFrame::build(method, CHECK_0); thread->push_zero_frame(frame); // Execute those bytecodes! main_loop(0, THREAD); + + // No deoptimized frames on the stack + return 0; } void CppInterpreter::main_loop(int recurse, TRAPS) { @@ -165,7 +168,7 @@ stack->push(result[-i]); } -void CppInterpreter::native_entry(methodOop method, intptr_t UNUSED, TRAPS) { +int CppInterpreter::native_entry(methodOop method, intptr_t UNUSED, TRAPS) { // Make sure method is native and not abstract assert(method->is_native() && !method->is_abstract(), "should be"); @@ -173,7 +176,7 @@ ZeroStack *stack = thread->zero_stack(); // Allocate and initialize our frame - InterpreterFrame *frame = InterpreterFrame::build(method, CHECK); + InterpreterFrame *frame = InterpreterFrame::build(method, CHECK_0); thread->push_zero_frame(frame); interpreterState istate = frame->interpreter_state(); intptr_t *locals = istate->locals(); @@ -430,25 +433,26 @@ ShouldNotReachHere(); } } + + // No deoptimized frames on the stack + return 0; } -void CppInterpreter::accessor_entry(methodOop method, intptr_t UNUSED, TRAPS) { +int CppInterpreter::accessor_entry(methodOop method, intptr_t UNUSED, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; ZeroStack *stack = thread->zero_stack(); intptr_t *locals = stack->sp(); // Drop into the slow path if we need a safepoint check if (SafepointSynchronize::do_call_back()) { - normal_entry(method, 0, THREAD); - return; + return normal_entry(method, 0, THREAD); } // Load the object pointer and drop into the slow path // if we have a NullPointerException oop object = LOCALS_OBJECT(0); if (object == NULL) { - normal_entry(method, 0, THREAD); - return; + return normal_entry(method, 0, THREAD); } // Read the field index from the bytecode, which looks like this: @@ -470,15 +474,14 @@ constantPoolCacheOop cache = method->constants()->cache(); ConstantPoolCacheEntry* entry = cache->entry_at(index); if (!entry->is_resolved(Bytecodes::_getfield)) { - normal_entry(method, 0, THREAD); - return; + return normal_entry(method, 0, THREAD); } // Get the result and push it onto the stack switch (entry->flag_state()) { case ltos: case dtos: - stack->overflow_check(1, CHECK); + stack->overflow_check(1, CHECK_0); stack->alloc(wordSize); break; } @@ -558,20 +561,25 @@ ShouldNotReachHere(); } } + + // No deoptimized frames on the stack + return 0; } -void CppInterpreter::empty_entry(methodOop method, intptr_t UNUSED, TRAPS) { +int CppInterpreter::empty_entry(methodOop method, intptr_t UNUSED, TRAPS) { JavaThread *thread = (JavaThread *) THREAD; ZeroStack *stack = thread->zero_stack(); // Drop into the slow path if we need a safepoint check if (SafepointSynchronize::do_call_back()) { - normal_entry(method, 0, THREAD); - return; + return normal_entry(method, 0, THREAD); } // Pop our parameters stack->set_sp(stack->sp() + method->size_of_parameters()); + + // No deoptimized frames on the stack + return 0; } InterpreterFrame *InterpreterFrame::build(const methodOop method, TRAPS) { diff -r f50bc2a9120e ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/cppInterpreter_zero.hpp Fri May 14 13:54:40 2010 +0100 @@ -29,10 +29,10 @@ public: // Method entries - static void normal_entry(methodOop method, intptr_t UNUSED, TRAPS); - static void native_entry(methodOop method, intptr_t UNUSED, TRAPS); - static void accessor_entry(methodOop method, intptr_t UNUSED, TRAPS); - static void empty_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int normal_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int native_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int accessor_entry(methodOop method, intptr_t UNUSED, TRAPS); + static int empty_entry(methodOop method, intptr_t UNUSED, TRAPS); public: // Main loop of normal_entry diff -r f50bc2a9120e ports/hotspot/src/cpu/zero/vm/entry_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/entry_zero.hpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/entry_zero.hpp Fri May 14 13:54:40 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2003-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -41,20 +41,30 @@ } private: - typedef void (*NormalEntryFunc)(methodOop method, - intptr_t base_pc, - TRAPS); - typedef void (*OSREntryFunc)(methodOop method, - address osr_buf, - intptr_t base_pc, - TRAPS); + typedef int (*NormalEntryFunc)(methodOop method, + intptr_t base_pc, + TRAPS); + typedef int (*OSREntryFunc)(methodOop method, + address osr_buf, + intptr_t base_pc, + TRAPS); public: void invoke(methodOop method, TRAPS) const { - ((NormalEntryFunc) entry_point())(method, (intptr_t) this, THREAD); + maybe_deoptimize( + ((NormalEntryFunc) entry_point())(method, (intptr_t) this, THREAD), + THREAD); } void invoke_osr(methodOop method, address osr_buf, TRAPS) const { - ((OSREntryFunc) entry_point())(method, osr_buf, (intptr_t) this, THREAD); + maybe_deoptimize( + ((OSREntryFunc) entry_point())(method, osr_buf, (intptr_t) this, THREAD), + THREAD); + } + + private: + static void maybe_deoptimize(int deoptimized_frames, TRAPS) { + if (deoptimized_frames) + CppInterpreter::main_loop(deoptimized_frames - 1, THREAD); } public: diff -r f50bc2a9120e ports/hotspot/src/share/vm/shark/sharkBuilder.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 14 13:54:40 2010 +0100 @@ -326,7 +326,11 @@ } Value* SharkBuilder::uncommon_trap() { - return make_function((address) SharkRuntime::uncommon_trap, "Ti", "v"); + return make_function((address) SharkRuntime::uncommon_trap, "Ti", "i"); +} + +Value* SharkBuilder::deoptimized_entry_point() { + return make_function((address) CppInterpreter::main_loop, "iT", "v"); } // Native-Java transition diff -r f50bc2a9120e ports/hotspot/src/share/vm/shark/sharkBuilder.hpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 14 13:54:40 2010 +0100 @@ -133,6 +133,7 @@ public: llvm::Value* throw_StackOverflowError(); llvm::Value* uncommon_trap(); + llvm::Value* deoptimized_entry_point(); // Intrinsics and external functions, part 4: Native-Java transition. // This is a special case in that it is invoked during a thread diff -r f50bc2a9120e ports/hotspot/src/share/vm/shark/sharkContext.cpp --- a/ports/hotspot/src/share/vm/shark/sharkContext.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkContext.cpp Fri May 14 13:54:40 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2009 Red Hat, Inc. + * Copyright 2009, 2010 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 @@ -76,14 +76,14 @@ params.push_back(methodOop_type()); params.push_back(intptr_type()); params.push_back(thread_type()); - _entry_point_type = FunctionType::get(void_type(), params, false); + _entry_point_type = FunctionType::get(jint_type(), params, false); params.clear(); params.push_back(methodOop_type()); params.push_back(PointerType::getUnqual(jbyte_type())); params.push_back(intptr_type()); params.push_back(thread_type()); - _osr_entry_point_type = FunctionType::get(void_type(), params, false); + _osr_entry_point_type = FunctionType::get(jint_type(), params, false); // Create mappings for (int i = 0; i < T_CONFLICT; i++) { diff -r f50bc2a9120e ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp --- a/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp Fri May 14 13:54:40 2010 +0100 @@ -283,7 +283,7 @@ builder()->SetInsertPoint(exception); CreateResetHandleBlock(); stack()->CreatePopFrame(0); - builder()->CreateRetVoid(); + builder()->CreateRet(LLVMValue::jint_constant(0)); builder()->SetInsertPoint(no_exception); @@ -348,5 +348,5 @@ result_addr, PointerType::getUnqual(SharkType::to_stackType(result_type)))); } - builder()->CreateRetVoid(); + builder()->CreateRet(LLVMValue::jint_constant(0)); } diff -r f50bc2a9120e ports/hotspot/src/share/vm/shark/sharkRuntime.cpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.cpp Fri May 14 13:54:40 2010 +0100 @@ -192,14 +192,14 @@ return object_klass->klass_part()->is_subtype_of(check_klass); } -void SharkRuntime::uncommon_trap(JavaThread* thread, int trap_request) { +int SharkRuntime::uncommon_trap(JavaThread* thread, int trap_request) { + Thread *THREAD = thread; + // In C2, uncommon_trap_blob creates a frame, so all the various // deoptimization functions expect to find the frame of the method // being deopted one frame down on the stack. We create a dummy // frame to mirror this. - FakeStubFrame *stubframe = FakeStubFrame::build(thread); - if (thread->has_pending_exception()) - return; + FakeStubFrame *stubframe = FakeStubFrame::build(CHECK_0); thread->push_zero_frame(stubframe); // Initiate the trap @@ -216,16 +216,12 @@ int number_of_frames = urb->number_of_frames(); for (int i = 0; i < number_of_frames; i++) { intptr_t size = urb->frame_sizes()[i]; - InterpreterFrame *frame = InterpreterFrame::build(size, thread); - if (thread->has_pending_exception()) - return; + InterpreterFrame *frame = InterpreterFrame::build(size, CHECK_0); thread->push_zero_frame(frame); } // Push another dummy frame - stubframe = FakeStubFrame::build(thread); - if (thread->has_pending_exception()) - return; + stubframe = FakeStubFrame::build(CHECK_0); thread->push_zero_frame(stubframe); // Fill in the skeleton frames @@ -236,12 +232,8 @@ // Pop our dummy frame thread->pop_zero_frame(); - // Jump into the interpreter -#ifdef CC_INTERP - CppInterpreter::main_loop(number_of_frames - 1, thread); -#else - Unimplemented(); -#endif // CC_INTERP + // Fall back into the interpreter + return number_of_frames; } FakeStubFrame* FakeStubFrame::build(TRAPS) { diff -r f50bc2a9120e ports/hotspot/src/share/vm/shark/sharkRuntime.hpp --- a/ports/hotspot/src/share/vm/shark/sharkRuntime.hpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkRuntime.hpp Fri May 14 13:54:40 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -79,5 +79,5 @@ public: static void dump(const char *name, intptr_t value); static bool is_subtype_of(klassOop check_klass, klassOop object_klass); - static void uncommon_trap(JavaThread* thread, int trap_request); + static int uncommon_trap(JavaThread* thread, int trap_request); }; diff -r f50bc2a9120e ports/hotspot/src/share/vm/shark/sharkStack.cpp --- a/ports/hotspot/src/share/vm/shark/sharkStack.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkStack.cpp Fri May 14 13:54:40 2010 +0100 @@ -135,7 +135,7 @@ // Handle overflows builder()->SetInsertPoint(overflow); builder()->CreateCall(builder()->throw_StackOverflowError(), thread()); - builder()->CreateRetVoid(); + builder()->CreateRet(LLVMValue::jint_constant(0)); builder()->SetInsertPoint(abi_ok); } diff -r f50bc2a9120e ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Fri May 14 11:16:36 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Fri May 14 13:54:40 2010 +0100 @@ -594,11 +594,11 @@ void SharkTopLevelBlock::do_trap(int trap_request) { decache_for_trap(); - builder()->CreateCall2( - builder()->uncommon_trap(), - thread(), - LLVMValue::jint_constant(trap_request)); - builder()->CreateRetVoid(); + builder()->CreateRet( + builder()->CreateCall2( + builder()->uncommon_trap(), + thread(), + LLVMValue::jint_constant(trap_request))); } void SharkTopLevelBlock::call_register_finalizer(Value *receiver) { @@ -677,7 +677,7 @@ PointerType::getUnqual(SharkType::to_stackType(type)))); } - builder()->CreateRetVoid(); + builder()->CreateRet(LLVMValue::jint_constant(0)); } void SharkTopLevelBlock::do_arraylength() { @@ -1203,7 +1203,25 @@ // Make the call decache_for_Java_call(call_method); - builder()->CreateCall3(entry_point, callee, base_pc, thread()); + Value *deoptimized_frames = builder()->CreateCall3( + entry_point, callee, base_pc, thread()); + + // If the callee got deoptimized then reexecute in the interpreter + BasicBlock *reexecute = function()->CreateBlock("reexecute"); + BasicBlock *call_completed = function()->CreateBlock("call_completed"); + builder()->CreateCondBr( + builder()->CreateICmpNE(deoptimized_frames, LLVMValue::jint_constant(0)), + reexecute, call_completed); + + builder()->SetInsertPoint(reexecute); + builder()->CreateCall2( + builder()->deoptimized_entry_point(), + builder()->CreateSub(deoptimized_frames, LLVMValue::jint_constant(1)), + thread()); + builder()->CreateBr(call_completed); + + // Cache after the call + builder()->SetInsertPoint(call_completed); cache_after_Java_call(call_method); // Check for pending exceptions From ahughes at redhat.com Fri May 14 06:24:19 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Fri, 14 May 2010 14:24:19 +0100 Subject: New calling convention for Zero and Shark In-Reply-To: <20100514130506.GA3438@redhat.com> References: <20100514130506.GA3438@redhat.com> Message-ID: On 14 May 2010 14:05, Gary Benson wrote: > Hi all, > > This commit fixes PR icedtea/484, a bug where the native code for > deoptimized methods could be freed when in fact they were still on > the stack and waiting to return. > > To make this change I have had to change the calling convention > within Zero and Shark. ?All method entries (the C function that > executes the method) now return an integer which is the number > of deoptimized frames they have left on the stack. ?Whenever a > method is called it is now the caller's responsibility to check > whether frames have been deoptimized and reenter the interpreter > if they have. > > The ARM interpreter needs updating to follow the new convention. > I have made a note of this in zeroshark.make, where the code that > enables the ARM interpreter is currently commented out. > > Cheers, > Gary > > -- > http://gbenson.net/ > These descriptions are very useful, but could you include them as part of the commit message? They'll still get e-mailed out (as part of the commit) and we then have the description in Mercurial with the patch, rather than having to look it up in the mailing list archives for each patch. Thanks, -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From andrew at icedtea.classpath.org Fri May 14 06:35:21 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 14 May 2010 13:35:21 +0000 Subject: /hg/icedtea: 3 new changesets Message-ID: changeset b2902a555f12 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=b2902a555f12 author: Andrew John Hughes date: Mon Jan 18 20:14:00 2010 +0000 Use AC_LANG_PUSH/AC_LANG_POP rather than deprecated SAVE/RESTORE macros. 2010-01-18 Andrew John Hughes * configure.ac: Use AC_LANG_PUSH and AC_LANG_POP instead of deprecated SAVE and RESTORE macros. changeset 3cd0c267604f in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3cd0c267604f author: Xerxes R?nby date: Fri May 14 11:47:47 2010 +0100 PR icedtea/431: Create a link from client to server after CACAO install. 2010-01-20 Xerxes R?nby PR icedtea/431: * Makefile.am: Create a link from client to server after CACAO install to make openjdk find the expected client dir on 32bit systems. changeset b7642104d392 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=b7642104d392 author: Andrew John Hughes date: Fri May 14 14:34:46 2010 +0100 Include derivative name and version (e.g IcedTea6 1.7) in crash dump. Obtain Mercurial revisions at configure time. 2010-01-20 Andrew John Hughes * Makefile.am: Pass DERIVATIVE_ID and HOTSPOT_BUILD_VERSION to build (later only when the HotSpot Mercurial revision is available). Update HotSpot and JDK revisions for related updates there. (patch.stamp): Move revision derivation to configure. * acinclude.m4: (IT_GET_LSB_DATA): Report results. (IT_CHECK_FOR_MERCURIAL): Macro wrapper around check for hg. (IT_OBTAIN_HG_REVISIONS): Obtain Mercurial revisions for IcedTea, JDK and HotSpot if available. * configure.ac: Call new macros. * patches/hotspot/default/icedtea-version.patch: Removed; applied to upstream forest. diffstat: 5 files changed, 98 insertions(+), 72 deletions(-) ChangeLog | 31 ++++++++++++++++ Makefile.am | 41 +++++++++++---------- acinclude.m4 | 41 +++++++++++++++++++++ configure.ac | 9 ++-- patches/hotspot/default/icedtea-version.patch | 48 ------------------------- diffs (284 lines): diff -r 51f35c22d7b6 -r b7642104d392 ChangeLog --- a/ChangeLog Wed May 12 10:31:37 2010 +0100 +++ b/ChangeLog Fri May 14 14:34:46 2010 +0100 @@ -1,3 +1,34 @@ 2010-01-16 Andrew John Hughes + + * Makefile.am: + Pass DERIVATIVE_ID and HOTSPOT_BUILD_VERSION + to build (later only when the HotSpot Mercurial + revision is available). Update HotSpot and JDK + revisions for related updates there. + (patch.stamp): Move revision derivation to configure. + * acinclude.m4: + (IT_GET_LSB_DATA): Report results. + (IT_CHECK_FOR_MERCURIAL): Macro wrapper around check for hg. + (IT_OBTAIN_HG_REVISIONS): Obtain Mercurial revisions for + IcedTea, JDK and HotSpot if available. + * configure.ac: + Call new macros. + * patches/hotspot/default/icedtea-version.patch: + Removed; applied to upstream forest. + +2010-01-20 Xerxes R??nby + + PR icedtea/431: + * Makefile.am: + Create a link from client to server after CACAO install + to make openjdk find the expected client dir on 32bit systems. + +2010-01-18 Andrew John Hughes + + * configure.ac: + Use AC_LANG_PUSH and AC_LANG_POP instead + of deprecated SAVE and RESTORE macros. + 2010-01-16 Andrew John Hughes * acinclude.m4: diff -r 51f35c22d7b6 -r b7642104d392 Makefile.am --- a/Makefile.am Wed May 12 10:31:37 2010 +0100 +++ b/Makefile.am Fri May 14 14:34:46 2010 +0100 @@ -3,18 +3,18 @@ OPENJDK_VERSION = b89 OPENJDK_VERSION = b89 CORBA_CHANGESET = e805b4155d76 -HOTSPOT_CHANGESET = e431f9da7dc9 +HOTSPOT_CHANGESET = 468593ef6b33 JAXP_CHANGESET = 826bafcb6c4a JAXWS_CHANGESET = 1661166c82dc -JDK_CHANGESET = c1cee45daf4d +JDK_CHANGESET = 5d5ee1c92a1b LANGTOOLS_CHANGESET = a0499f48ec96 OPENJDK_CHANGESET = 195fcceefddc CORBA_SHA256SUM = 870e2eac993a4eef48197ed7309cab176b56a994add1de215a026599052627cb -HOTSPOT_SHA256SUM = 4783b1b85239ac60b16eac7d184e51a9350670fec6f54a2e986761b7ded92994 +HOTSPOT_SHA256SUM = fc3a387938c2e479ff71989d227baa655b8a68079a144f717081b40e15696cdb JAXP_SHA256SUM = 42d004e51a1f01d146ad230ce48996ddf8da3719fe571a41653f431d6b2e8a7b JAXWS_SHA256SUM = 4523909cd46fd61b5c6670bf932099d5899236a37a4058e7b2bcb855e503a0e4 -JDK_SHA256SUM = b6d70bc41bbc7d02977ca4b0455bef765a3e8670dfa2f413a5b8bd91e77ee32a +JDK_SHA256SUM = 5f6035185d862b36e0cb7ca4f5d5f7160914681dfcb33900fac45db1c439668e LANGTOOLS_SHA256SUM = 96f6be5d89195353f55ef775e0dec9bd9a5da7f869aba6ed428e4a2cac806991 OPENJDK_SHA256SUM = 93c536e6bc4e962050a00321e88e694fc4e0000e2ad887b8de22830bfda2649f @@ -456,6 +456,10 @@ JDK_UPDATE_VERSION = $(shell echo $(OPEN JDK_UPDATE_VERSION = $(shell echo $(OPENJDK_VERSION) | sed -e "s/^b//") COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) +if HAS_ICEDTEA_REVISION +ICEDTEA_REV="+${ICEDTEA_REVISION}" +endif + ICEDTEA_ENV = \ ALT_JDK_IMPORT_PATH="$(ICEDTEA_BOOT_DIR)" \ ANT="$(ANT)" \ @@ -495,6 +499,7 @@ ICEDTEA_ENV = \ ANT_RESPECT_JAVA_HOME="TRUE" \ RHINO_JAR="$(RHINO_JAR)" \ DISTRIBUTION_ID="$(DIST_ID)" \ + DERIVATIVE_ID="IcedTea6 $(PACKAGE_VERSION)$(ICEDTEA_REV)" \ ALT_JIBX_LIBS_PATH="$(JIBX_DEPS_DIR)" \ ALT_NETX_DIST="$(NETX_CLASSES)" \ ALT_LIVECONNECT_DIST="$(LIVECONNECT_CLASSES)" \ @@ -522,6 +527,11 @@ if USE_ALT_JAR if USE_ALT_JAR ICEDTEA_ENV += \ ALT_JAR_CMD="$(ALT_JAR_CMD)" +endif + +if HAS_HOTSPOT_REVISION +ICEDTEA_ENV += \ + HOTSPOT_BUILD_VERSION="$(HOTSPOT_REVISION)" endif # OpenJDK boot build environment. @@ -1528,18 +1538,7 @@ clean-patch: stamps/versioning.stamp: stamps/patch.stamp cp openjdk/jdk/make/common/shared/Defs.gmk Defs.gmk.bak - if which $(HG) >/dev/null; then \ - if [ -e $(abs_top_srcdir)/.hg ] ; then \ - revision="+r`(cd $(abs_top_srcdir); $(HG) tip --template '{node|short}')`" ; \ - fi ; \ - if [ -e openjdk/jdk/.hg ] ; then \ - jdk_rev="r`(cd openjdk/jdk; $(HG) tip --template '{node|short}')`" ; \ - fi ; \ - if [ -e openjdk/hotspot/.hg ] ; then \ - hotspot_rev="r`(cd openjdk/hotspot; $(HG) tip --template '{node|short}')`" ; \ - fi ; \ - fi ; \ - icedtea_version="$(PACKAGE_VERSION)$${revision}" ; \ + icedtea_version="$(PACKAGE_VERSION)$(ICEDTEA_REV)" ; \ if ! test "x$(WITH_CACAO)" = "xno"; then \ echo "JDK_DERIVATIVE_NAME=$${icedtea_version}" \ >>openjdk/jdk/make/common/shared/Defs.gmk ; \ @@ -1548,9 +1547,12 @@ stamps/versioning.stamp: stamps/patch.st else \ echo "JDK_DERIVATIVE_NAME=IcedTea7 $${icedtea_version}" \ >>openjdk/jdk/make/common/shared/Defs.gmk ; \ - fi ; \ - echo "JDK_REVID=$${jdk_rev}" >>openjdk/jdk/make/common/shared/Defs.gmk ; \ - echo "HOTSPOT_REVID=$${hotspot_rev}" >>openjdk/jdk/make/common/shared/Defs.gmk ; \ + fi ; + +if HAS_JDK_REVISION + echo "JDK_REVID=$(JDK_REVISION)" >>openjdk/jdk/make/common/shared/Defs.gmk ; +endif + echo "DISTRO_NAME=$(DIST_NAME)" >>openjdk/jdk/make/common/shared/Defs.gmk ; \ if [ -n "$(PKGVERSION)" ]; then \ echo "DISTRO_PACKAGE_VERSION=$(PKGVERSION)" \ @@ -2337,6 +2339,7 @@ if !USE_SYSTEM_CACAO --with-java-runtime-library-classes=$(abs_top_builddir)/lib/rt \ --enable-jre-layout $(CACAO_CONFIGURE_ARGS); \ $(ARCH_PREFIX) $(MAKE) -j$(PARALLEL_JOBS) install + ln -s server $(abs_top_builddir)/cacao/install/jre/lib/$(INSTALL_ARCH_DIR)/client endif endif mkdir -p stamps diff -r 51f35c22d7b6 -r b7642104d392 acinclude.m4 --- a/acinclude.m4 Wed May 12 10:31:37 2010 +0100 +++ b/acinclude.m4 Fri May 14 14:34:46 2010 +0100 @@ -1668,6 +1668,7 @@ AC_DEFUN([WITH_VISUALVM_ZIP], AC_DEFUN([IT_GET_LSB_DATA], [ +AC_MSG_CHECKING([build identification]) if test -n "$LSB_RELEASE"; then lsb_info="$($LSB_RELEASE -ds | sed 's/^"//;s/"$//')" if test -n "$PKGVERSION"; then @@ -1680,8 +1681,48 @@ else DIST_ID="Custom build ($(date))" DIST_NAME="$build_os" fi +AC_MSG_RESULT([${DIST_ID}]) AC_SUBST(DIST_ID) AC_SUBST(DIST_NAME) +]) + + +AC_DEFUN_ONCE([IT_CHECK_FOR_MERCURIAL], +[ + AC_PATH_TOOL([HG],[hg]) + AC_SUBST([HG]) +]) + +AC_DEFUN_ONCE([IT_OBTAIN_HG_REVISIONS], +[ + AC_REQUIRE([IT_CHECK_FOR_MERCURIAL]) + AC_REQUIRE([WITH_OPENJDK_SRC_DIR]) + ICEDTEA_REVISION="none"; + JDK_REVISION="none"; + HOTSPOT_REVISION="none"; + if which ${HG} >/dev/null; then + AC_MSG_CHECKING([for IcedTea Mercurial revision ID]) + if test -e ${abs_top_srcdir}/.hg ; then + ICEDTEA_REVISION="r`(cd ${abs_top_srcdir}; ${HG} tip --template '{node|short}')`" ; + fi ; + AC_MSG_RESULT([${ICEDTEA_REVISION}]) + AC_SUBST([ICEDTEA_REVISION]) + AC_MSG_CHECKING([for JDK Mercurial revision ID]) + if test -e ${OPENJDK_SRC_DIR}/jdk/.hg ; then + JDK_REVISION="r`(cd ${OPENJDK_SRC_DIR}/jdk; ${HG} tip --template '{node|short}')`" ; + fi ; + AC_MSG_RESULT([${JDK_REVISION}]) + AC_SUBST([JDK_REVISION]) + AC_MSG_CHECKING([for HotSpot Mercurial revision ID]) + if test -e ${OPENJDK_SRC_DIR}/hotspot/.hg ; then \ + HOTSPOT_REVISION="r`(cd ${OPENJDK_SRC_DIR}/hotspot; ${HG} tip --template '{node|short}')`" ; + fi ; + AC_MSG_RESULT([${HOTSPOT_REVISION}]) + AC_SUBST([HOTSPOT_REVISION]) + fi; + AM_CONDITIONAL([HAS_ICEDTEA_REVISION], test "x${ICEDTEA_REVISION}" != xnone) + AM_CONDITIONAL([HAS_JDK_REVISION], test "x${JDK_REVISION}" != xnone) + AM_CONDITIONAL([HAS_HOTSPOT_REVISION], test "x${HOTSPOT_REVISION}" != xnone) ]) AC_DEFUN_ONCE([IT_CHECK_OLD_PLUGIN], diff -r 51f35c22d7b6 -r b7642104d392 configure.ac --- a/configure.ac Wed May 12 10:31:37 2010 +0100 +++ b/configure.ac Fri May 14 14:34:46 2010 +0100 @@ -39,8 +39,8 @@ dnl OpenJDK's README-builds.html lists g dnl OpenJDK's README-builds.html lists gawk as a build dependency so we dnl check for it explicitly rather than using AC_PROG_AWK. FIND_TOOL([GAWK], [gawk]) -AC_PATH_TOOL([HG],[hg]) -AC_SUBST([HG]) +IT_CHECK_FOR_MERCURIAL +IT_OBTAIN_HG_REVISIONS AC_PATH_TOOL([LSB_RELEASE],[lsb_release]) AC_CHECK_WITH_GCJ AC_CHECK_WITH_HOTSPOT_BUILD @@ -310,8 +310,7 @@ AC_CHECK_HEADER([sys/sdt.h], [SDT_H_FOUN AC_MSG_ERROR([systemtap support needs sys/sdt.h header])]) AC_MSG_CHECKING([working sys/sdt.h and g++ support]) - AC_LANG_SAVE - AC_LANG_CPLUSPLUS + AC_LANG_PUSH([C++]) AC_LINK_IFELSE([AC_LANG_PROGRAM([[ #include class ProbeClass @@ -344,7 +343,7 @@ public: ProbeClass inst = ProbeClass(i, "call"); inst.method(24); ]])], [AC_MSG_RESULT([yes])], [AC_MSG_ERROR([systemtap sdt.h or g++ too old])]) - AC_LANG_RESTORE + AC_LANG_POP([C++]) AC_MSG_CHECKING([for absolute java home install dir]) AC_ARG_WITH([abs-install-dir], diff -r 51f35c22d7b6 -r b7642104d392 patches/hotspot/default/icedtea-version.patch --- a/patches/hotspot/default/icedtea-version.patch Wed May 12 10:31:37 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -diff -Nru openjdk.orig/hotspot/make/linux/makefiles/vm.make openjdk/hotspot/make/linux/makefiles/vm.make ---- openjdk.orig/hotspot/make/linux/makefiles/vm.make 2008-11-06 08:40:50.000000000 +0000 -+++ openjdk/hotspot/make/linux/makefiles/vm.make 2008-11-19 12:15:54.000000000 +0000 -@@ -86,6 +86,10 @@ - ${JRE_VERSION} \ - ${VM_DISTRO} - -+ifdef DISTRIBUTION_ID -+CPPFLAGS += -DDISTRIBUTION_ID="\"$(DISTRIBUTION_ID)\"" -+endif -+ - # CFLAGS_WARN holds compiler options to suppress/enable warnings. - CFLAGS += $(CFLAGS_WARN/BYFILE) - -diff -Nru openjdk.orig/hotspot/src/share/vm/utilities/vmError.cpp openjdk/hotspot/src/share/vm/utilities/vmError.cpp ---- openjdk.orig/hotspot/src/share/vm/utilities/vmError.cpp 2008-11-06 08:40:58.000000000 +0000 -+++ openjdk/hotspot/src/share/vm/utilities/vmError.cpp 2008-11-19 12:15:54.000000000 +0000 -@@ -165,7 +165,8 @@ - - static void print_bug_submit_message(outputStream *out, Thread *thread) { - if (out == NULL) return; -- out->print_raw_cr("# If you would like to submit a bug report, please visit:"); -+ out->print_raw_cr("# If you would like to submit a bug report, please include"); -+ out->print_raw_cr("# instructions how to reproduce the bug and visit:"); - out->print_raw ("# "); - out->print_raw_cr(Arguments::java_vendor_url_bug()); - // If the crash is in native code, encourage user to submit a bug to the -@@ -339,6 +340,9 @@ - Abstract_VM_Version::vm_platform_string(), - UseCompressedOops ? "compressed oops" : "" - ); -+#ifdef DISTRIBUTION_ID -+ st->print_cr("# Distribution: %s", DISTRIBUTION_ID); -+#endif - - STEP(60, "(printing problematic frame)") - ---- arguments.cpp 2008-12-15 12:25:14.000000000 -0500 -+++ openjdk/hotspot/src/share/vm/runtime/arguments.cpp 2008-12-15 12:25:32.000000000 -0500 -@@ -25,7 +25,7 @@ - #include "incls/_precompiled.incl" - #include "incls/_arguments.cpp.incl" - --#define DEFAULT_VENDOR_URL_BUG "http://java.sun.com/webapps/bugreport/crash.jsp" -+#define DEFAULT_VENDOR_URL_BUG "http://icedtea.classpath.org/bugzilla" - #define DEFAULT_JAVA_LAUNCHER "generic" - - char** Arguments::_jvm_flags_array = NULL; From gbenson at redhat.com Fri May 14 06:39:15 2010 From: gbenson at redhat.com (Gary Benson) Date: Fri, 14 May 2010 14:39:15 +0100 Subject: New calling convention for Zero and Shark In-Reply-To: References: <20100514130506.GA3438@redhat.com> Message-ID: <20100514133915.GB3438@redhat.com> Andrew John Hughes wrote: > On 14 May 2010 14:05, Gary Benson wrote: > > This commit fixes PR icedtea/484, a bug where the native code for > > deoptimized methods could be freed when in fact they were still on > > the stack and waiting to return. > > > > To make this change I have had to change the calling convention > > within Zero and Shark. ?All method entries (the C function that > > executes the method) now return an integer which is the number > > of deoptimized frames they have left on the stack. ?Whenever a > > method is called it is now the caller's responsibility to check > > whether frames have been deoptimized and reenter the interpreter > > if they have. > > > > The ARM interpreter needs updating to follow the new convention. > > I have made a note of this in zeroshark.make, where the code that > > enables the ARM interpreter is currently commented out. > > These descriptions are very useful, but could you include them as > part of the commit message? They'll still get e-mailed out (as part > of the commit) and we then have the description in Mercurial with > the patch, rather than having to look it up in the mailing list > archives for each patch. Ok. Cheers, Gary -- http://gbenson.net/ From andrew at icedtea.classpath.org Fri May 14 07:36:46 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 14 May 2010 14:36:46 +0000 Subject: /hg/icedtea: Remove reference to HotSpot version patch. Message-ID: changeset 1aa2dc59b11f in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=1aa2dc59b11f author: Andrew John Hughes date: Fri May 14 15:36:37 2010 +0100 Remove reference to HotSpot version patch. 2010-05-14 Andrew John Hughes * Makefile.am: Remove reference to hotspot/default /icedtea-version.patch. diffstat: 2 files changed, 5 insertions(+), 1 deletion(-) ChangeLog | 5 +++++ Makefile.am | 1 - diffs (23 lines): diff -r b7642104d392 -r 1aa2dc59b11f ChangeLog --- a/ChangeLog Fri May 14 14:34:46 2010 +0100 +++ b/ChangeLog Fri May 14 15:36:37 2010 +0100 @@ -1,3 +1,8 @@ 2010-01-20 Andrew John Hughes + + * Makefile.am: + Remove reference to hotspot/default/icedtea-version.patch. + 2010-01-20 Andrew John Hughes * Makefile.am: diff -r b7642104d392 -r 1aa2dc59b11f Makefile.am --- a/Makefile.am Fri May 14 14:34:46 2010 +0100 +++ b/Makefile.am Fri May 14 15:36:37 2010 +0100 @@ -257,7 +257,6 @@ OPENJDK_BOOT_TREE = stamps/patch-boot.st # Patch list ICEDTEA_PATCHES = \ - patches/hotspot/$(HSBUILD)/icedtea-version.patch \ patches/icedtea-copy-plugs.patch \ patches/hotspot/$(HSBUILD)/icedtea-text-relocations.patch \ patches/icedtea-ssl.patch \ From andrew at icedtea.classpath.org Fri May 14 09:31:05 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 14 May 2010 16:31:05 +0000 Subject: /hg/icedtea: 3 new changesets Message-ID: changeset bdd90e8c8ba7 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=bdd90e8c8ba7 author: Andrew John Hughes date: Fri May 14 17:19:28 2010 +0100 PR icedtea/433: Add set -e before tarball extraction so a failure stops the build. 2010-01-21 Andrew John Hughes PR icedtea/433 * Makefile.am: Add set -e to tarball extractions so that they fail immediately. changeset f4ec4881ecef in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=f4ec4881ecef author: Andrew John Hughes date: Fri May 14 17:24:15 2010 +0100 Support libjpeg8 and always choose the dlopen invocation at build time. 2010-01-25 Andrew John Hughes * patches/icedtea-libraries.patch: Make all dlopen choices at build-time, not just one. Support libjpeg8 as well. changeset 6f8b8cfe8663 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=6f8b8cfe8663 author: Andrew John Hughes date: Fri May 14 17:30:57 2010 +0100 Standardise plugin versioning and the name of IcedTea (IcedTea7 in this case). 2010-01-25 Andrew John Hughes * IcedTeaPlugin.cc: Standardise plugin versioning. * Makefile.am: Set ICEDTEA_NAME and use in place of literal "IcedTea7". Use HAS_PKGVERSION to set ICEDTEA_PKG and output DISTRO_PACKAGE_VERSION rather than running test. Set PLUGIN_VERSION and use for both plugins. * acinclude.m4: (IT_GET_PKGVERSION): Moved from configure.ac and changed to a macro with output. (IT_GET_LSB_DATA): Depend on IT_GET_PKGVERSION. * configure.ac: Invoke new IT_GET_PKGVERSION macro. * plugin/icedteanp/IcedTeaNPPlugin.cc: Standardise plugin versioning. diffstat: 7 files changed, 98 insertions(+), 39 deletions(-) ChangeLog | 32 +++++++++++++++++++++++++ IcedTeaPlugin.cc | 4 +-- Makefile.am | 44 ++++++++++++++++++++++------------- acinclude.m4 | 27 +++++++++++++++++---- configure.ac | 12 --------- patches/icedtea-libraries.patch | 12 +++++++-- plugin/icedteanp/IcedTeaNPPlugin.cc | 6 ++-- diffs (380 lines): diff -r 1aa2dc59b11f -r 6f8b8cfe8663 ChangeLog --- a/ChangeLog Fri May 14 15:36:37 2010 +0100 +++ b/ChangeLog Fri May 14 17:30:57 2010 +0100 @@ -1,3 +1,35 @@ 2010-05-14 Andrew John Hughes + + * IcedTeaPlugin.cc: + Standardise plugin versioning. + * Makefile.am: + Set ICEDTEA_NAME and use in place of literal + "IcedTea7". Use HAS_PKGVERSION to set ICEDTEA_PKG + and output DISTRO_PACKAGE_VERSION rather than + running test. Set PLUGIN_VERSION and use for + both plugins. + * acinclude.m4: + (IT_GET_PKGVERSION): Moved from configure.ac and + changed to a macro with output. + (IT_GET_LSB_DATA): Depend on IT_GET_PKGVERSION. + * configure.ac: + Invoke new IT_GET_PKGVERSION macro. + * plugin/icedteanp/IcedTeaNPPlugin.cc: + Standardise plugin versioning. + +2010-01-25 Andrew John Hughes + + * patches/icedtea-libraries.patch: + Make all dlopen choices at build-time, + not just one. Support libjpeg8 as well. + +2010-01-21 Andrew John Hughes + + PR icedtea/433 + * Makefile.am: + Add set -e to tarball extractions so + that they fail immediately. + 2010-05-14 Andrew John Hughes * Makefile.am: diff -r 1aa2dc59b11f -r 6f8b8cfe8663 IcedTeaPlugin.cc --- a/IcedTeaPlugin.cc Fri May 14 15:36:37 2010 +0100 +++ b/IcedTeaPlugin.cc Fri May 14 17:30:57 2010 +0100 @@ -275,8 +275,8 @@ inline long get_time_in_s() #define PLUGIN_CHECK(message, result) #endif -#define PLUGIN_NAME "IcedTea Java Web Browser Plugin" -#define PLUGIN_DESCRIPTION "The " PLUGIN_NAME PLUGIN_VERSION " executes Java applets." +#define PLUGIN_NAME "IcedTea Java Web Browser Plugin (using " PLUGIN_VERSION ")" +#define PLUGIN_DESCRIPTION "The " PLUGIN_NAME " executes Java applets." #define PLUGIN_MIME_DESC \ "application/x-java-vm:class,jar:IcedTea;" \ "application/x-java-applet:class,jar:IcedTea;" \ diff -r 1aa2dc59b11f -r 6f8b8cfe8663 Makefile.am --- a/Makefile.am Fri May 14 15:36:37 2010 +0100 +++ b/Makefile.am Fri May 14 17:30:57 2010 +0100 @@ -455,9 +455,15 @@ JDK_UPDATE_VERSION = $(shell echo $(OPEN JDK_UPDATE_VERSION = $(shell echo $(OPENJDK_VERSION) | sed -e "s/^b//") COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) +ICEDTEA_NAME="IcedTea7" if HAS_ICEDTEA_REVISION ICEDTEA_REV="+${ICEDTEA_REVISION}" endif +if HAS_PKGVERSION +ICEDTEA_PKG="(${PKGVERSION})" +endif + +PLUGIN_VERSION=$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV) $(ICEDTEA_PKG) ICEDTEA_ENV = \ ALT_JDK_IMPORT_PATH="$(ICEDTEA_BOOT_DIR)" \ @@ -498,7 +504,7 @@ ICEDTEA_ENV = \ ANT_RESPECT_JAVA_HOME="TRUE" \ RHINO_JAR="$(RHINO_JAR)" \ DISTRIBUTION_ID="$(DIST_ID)" \ - DERIVATIVE_ID="IcedTea6 $(PACKAGE_VERSION)$(ICEDTEA_REV)" \ + DERIVATIVE_ID="$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV)" \ ALT_JIBX_LIBS_PATH="$(JIBX_DEPS_DIR)" \ ALT_NETX_DIST="$(NETX_CLASSES)" \ ALT_LIVECONNECT_DIST="$(LIVECONNECT_CLASSES)" \ @@ -1161,6 +1167,7 @@ if OPENJDK_SRC_DIR_FOUND if OPENJDK_SRC_DIR_FOUND cp -a $(OPENJDK_SRC_DIR) openjdk else + set -e ; \ if ! test -d openjdk ; then \ if [ ! -z $(OPENJDK_SRC_ZIP) ] ; then \ case "$(OPENJDK_SRC_ZIP)" in \ @@ -1176,6 +1183,7 @@ else false; \ fi; \ fi; + set -e ; \ if [ ! -z $(CORBA_SRC_ZIP) ] ; then \ if test -e ${CORBA_SRC_ZIP} ; \ then \ @@ -1189,6 +1197,7 @@ else fi ; \ fi ; \ fi + set -e ; \ if [ ! -z $(JAXP_SRC_ZIP) ] ; then \ if test -e ${JAXP_SRC_ZIP} ; \ then \ @@ -1202,6 +1211,7 @@ else fi ; \ fi ; \ fi + set -e ; \ if [ ! -z $(JAXWS_SRC_ZIP) ] ; then \ if test -e ${JAXWS_SRC_ZIP} ; \ then \ @@ -1215,6 +1225,7 @@ else fi ; \ fi ; \ fi + set -e ; \ if [ ! -z $(JDK_SRC_ZIP) ] ; then \ if test -e ${JDK_SRC_ZIP} ; \ then \ @@ -1228,6 +1239,7 @@ else fi ; \ fi ; \ fi + set -e ; \ if [ ! -z $(LANGTOOLS_SRC_ZIP) ] ; then \ if test -e ${LANGTOOLS_SRC_ZIP} ; \ then \ @@ -1242,6 +1254,7 @@ else fi ; \ fi endif + set -e ; \ if [ ! -z $(HOTSPOT_SRC_ZIP) ] ; then \ if test -e ${HOTSPOT_SRC_ZIP} ; \ then \ @@ -1269,12 +1282,14 @@ clean-extract-openjdk: clean-overlay cle stamps/extract-visualvm.stamp: stamps/download-visualvm.stamp if WITH_VISUALVM + set -e ; \ if ! test -d netbeans ; \ then \ mkdir netbeans ; \ $(TAR) xf $(NETBEANS_PROFILER_SRC_ZIP) -C netbeans ; \ fi + set -e ; \ if ! test -d visualvm ; \ then \ $(TAR) xf $(VISUALVM_SRC_ZIP) ; \ @@ -1292,6 +1307,7 @@ stamps/extract-cacao.stamp: stamps/downl stamps/extract-cacao.stamp: stamps/download-cacao.stamp if BUILD_CACAO if !USE_SYSTEM_CACAO + set -e ; \ if ! test -d cacao/cacao ; \ then \ mkdir cacao ; \ @@ -1311,6 +1327,7 @@ clean-extract-cacao: clean-cacao stamps/extract-jaxws.stamp: stamps/extract-openjdk.stamp \ stamps/download-jaxws-drop.stamp stamps/download-jaf-drop.stamp + set -e ; \ if test "x$(NEED_JAXWS_SRC)" = "xtrue"; then \ (cd openjdk/jaxws ; \ $(ANT) -Ddrops.dir=$(abs_top_builddir)/drops \ @@ -1319,6 +1336,7 @@ stamps/extract-jaxws.stamp: stamps/extra cd $(abs_top_builddir)) ; \ fi if DTDTYPE_QNAME + set -e ; \ (cd $(BUILD_OUTPUT_DIR)/jaxws; \ all_patches_ok=yes; \ for p in $(JAXWS_PATCHES) ; \ @@ -1392,6 +1410,7 @@ clean-ports: rm -f stamps/ports.stamp stamps/generated.stamp: stamps/ports.stamp + set -e ; \ if [ ! -e $(abs_top_builddir)/generated ]; then \ cp -a $(abs_top_srcdir)/generated $(abs_top_builddir); \ find $(abs_top_builddir)/generated -type f -exec chmod 640 '{}' ';' \ @@ -1541,10 +1560,10 @@ stamps/versioning.stamp: stamps/patch.st if ! test "x$(WITH_CACAO)" = "xno"; then \ echo "JDK_DERIVATIVE_NAME=$${icedtea_version}" \ >>openjdk/jdk/make/common/shared/Defs.gmk ; \ - echo "PRODUCT_NAME=IcedTea7" \ + echo "PRODUCT_NAME=$(ICEDTEA_NAME)" \ >>openjdk/jdk/make/common/shared/Defs.gmk ; \ else \ - echo "JDK_DERIVATIVE_NAME=IcedTea7 $${icedtea_version}" \ + echo "JDK_DERIVATIVE_NAME=$(ICEDTEA_NAME) $${icedtea_version}" \ >>openjdk/jdk/make/common/shared/Defs.gmk ; \ fi ; @@ -1552,11 +1571,11 @@ if HAS_JDK_REVISION echo "JDK_REVID=$(JDK_REVISION)" >>openjdk/jdk/make/common/shared/Defs.gmk ; endif - echo "DISTRO_NAME=$(DIST_NAME)" >>openjdk/jdk/make/common/shared/Defs.gmk ; \ - if [ -n "$(PKGVERSION)" ]; then \ + echo "DISTRO_NAME=$(DIST_NAME)" >>openjdk/jdk/make/common/shared/Defs.gmk ; +if HAS_PKGVERSION echo "DISTRO_PACKAGE_VERSION=$(PKGVERSION)" \ - >>openjdk/jdk/make/common/shared/Defs.gmk ; \ - fi; \ + >>openjdk/jdk/make/common/shared/Defs.gmk ; +endif if test x"$(PROJECT_NAME)" != "xjdk7"; then \ proj_suffix="-$(PROJECT_NAME)"; \ fi ; \ @@ -2011,8 +2030,7 @@ NPPLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedT $(PLUGIN_BUILD_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc mkdir -p $(PLUGIN_BUILD_DIR) && \ $(CXX) $(CXXFLAGS) \ - -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" \ - -DPLUGIN_VERSION="\"$(PACKAGE_VERSION)$(ICEDTEA_REV)\"" \ + -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ $(GLIB_CFLAGS) \ $(GTK_CFLAGS) \ @@ -2041,15 +2059,9 @@ if ENABLE_PLUGIN # is listed before -l options. See: # http://developer.mozilla.org/en/docs/XPCOM_Glue $(PLUGIN_BUILD_DIR)/IcedTeaPlugin.o: IcedTeaPlugin.cc - if [ -e $(abs_top_srcdir)/.hg ] && which $(HG) >/dev/null; then \ - revision="-r`(cd $(abs_top_srcdir); $(HG) tip --template '{rev}')`" ; \ - fi ; \ - if [ -n "$(PKGVERSION)" ]; then plugin_version=" ($(PKGVERSION))"; fi; \ - plugin_version=" $(PACKAGE_VERSION)$$revision$$plugin_version"; \ mkdir -p $(PLUGIN_BUILD_DIR) && \ $(CXX) $(CXXFLAGS) \ - -DPACKAGE_VERSION="\"$(PACKAGE_VERSION)\"" \ - -DPLUGIN_VERSION="\"$$plugin_version\"" \ + -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ $(GTK_CFLAGS) \ $(MOZILLA_CFLAGS) \ diff -r 1aa2dc59b11f -r 6f8b8cfe8663 acinclude.m4 --- a/acinclude.m4 Fri May 14 15:36:37 2010 +0100 +++ b/acinclude.m4 Fri May 14 17:30:57 2010 +0100 @@ -1666,15 +1666,33 @@ AC_DEFUN([WITH_VISUALVM_ZIP], AC_SUBST(ALT_VISUALVM_ZIP) ]) -AC_DEFUN([IT_GET_LSB_DATA], +AC_DEFUN_ONCE([IT_GET_PKGVERSION], [ +AC_MSG_CHECKING([for distribution package version]) +AC_ARG_WITH([pkgversion], + [AS_HELP_STRING([--with-pkgversion=PKG], + [Use PKG in the version string in addition to "IcedTea"])], + [case "$withval" in + yes) AC_MSG_ERROR([package version not specified]) ;; + no) PKGVERSION=none ;; + *) PKGVERSION="$withval" ;; + esac], + [PKGVERSION=none]) +AC_MSG_RESULT([${PKGVERSION}]) +AM_CONDITIONAL(HAS_PKGVERSION, test "x${PKGVERSION}" != "xnone") +AC_SUBST(PKGVERSION) +]) + +AC_DEFUN_ONCE([IT_GET_LSB_DATA], +[ +AC_REQUIRE([IT_GET_PKGVERSION]) AC_MSG_CHECKING([build identification]) if test -n "$LSB_RELEASE"; then lsb_info="$($LSB_RELEASE -ds | sed 's/^"//;s/"$//')" - if test -n "$PKGVERSION"; then + if test "x$PKGVERSION" = "xnone"; then + DIST_ID="Built on $lsb_info ($(date))" + else DIST_ID="$lsb_info, package $PKGVERSION" - else - DIST_ID="Built on $lsb_info ($(date))" fi DIST_NAME="$($LSB_RELEASE -is | sed 's/^"//;s/"$//')" else @@ -1724,7 +1742,6 @@ AC_DEFUN_ONCE([IT_OBTAIN_HG_REVISIONS], AM_CONDITIONAL([HAS_JDK_REVISION], test "x${JDK_REVISION}" != xnone) AM_CONDITIONAL([HAS_HOTSPOT_REVISION], test "x${HOTSPOT_REVISION}" != xnone) ]) - AC_DEFUN_ONCE([IT_CHECK_OLD_PLUGIN], [ AC_MSG_CHECKING([whether to build the browser plugin]) diff -r 1aa2dc59b11f -r 6f8b8cfe8663 configure.ac --- a/configure.ac Fri May 14 15:36:37 2010 +0100 +++ b/configure.ac Fri May 14 17:30:57 2010 +0100 @@ -132,17 +132,7 @@ AM_CONDITIONAL([ENABLE_NSS], [test x$ENA AM_CONDITIONAL([ENABLE_NSS], [test x$ENABLE_NSS = xyes]) AC_MSG_RESULT(${ENABLE_NSS}) -AC_ARG_WITH([pkgversion], - [AS_HELP_STRING([--with-pkgversion=PKG], - [Use PKG in the version string in addition to "IcedTea"])], - [case "$withval" in - yes) AC_MSG_ERROR([package version not specified]) ;; - no) PKGVERSION= ;; - *) PKGVERSION="$withval" ;; - esac], - [PKGVERSION=]) -AC_SUBST(PKGVERSION) - +IT_GET_PKGVERSION IT_GET_LSB_DATA SET_ARCH_DIRS diff -r 1aa2dc59b11f -r 6f8b8cfe8663 patches/icedtea-libraries.patch --- a/patches/icedtea-libraries.patch Fri May 14 15:36:37 2010 +0100 +++ b/patches/icedtea-libraries.patch Fri May 14 17:30:57 2010 +0100 @@ -700,17 +700,21 @@ diff -Nru openjdk.orig/jdk/src/share/nat } -@@ -2341,6 +2401,146 @@ +@@ -2341,6 +2401,150 @@ /********************** end of destination manager ************/ +METHODDEF(void) +initIDs() +{ ++#if JPEG_LIB_VERSION >= 80 ++ void *handle = dlopen("libjpeg.so.8", RTLD_LAZY | RTLD_GLOBAL); ++#else +#if JPEG_LIB_VERSION >= 70 + void *handle = dlopen("libjpeg.so.7", RTLD_LAZY | RTLD_GLOBAL); +#else + void *handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); ++#endif +#endif + + jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error"); @@ -20988,14 +20992,18 @@ diff -Nru openjdk.orig/jdk/src/share/nat /* Initialize the Java VM instance variable when the library is first loaded */ JavaVM *jvm; -@@ -462,6 +490,72 @@ +@@ -462,6 +490,76 @@ Java_sun_awt_image_JPEGImageDecoder_initIDs(JNIEnv *env, jclass cls, jclass InputStreamClass) { ++#if JPEG_LIB_VERSION >= 80 ++ void *handle = dlopen("libjpeg.so.8", RTLD_LAZY | RTLD_GLOBAL); ++#else +#if JPEG_LIB_VERSION >= 70 + void *handle = dlopen("libjpeg.so.7", RTLD_LAZY | RTLD_GLOBAL); +#else + void *handle = dlopen("libjpeg.so.62", RTLD_LAZY | RTLD_GLOBAL); ++#endif +#endif + + jpegstderror = (fn_jpegstderror)dlsym(handle, "jpeg_std_error"); diff -r 1aa2dc59b11f -r 6f8b8cfe8663 plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Fri May 14 15:36:37 2010 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Fri May 14 17:30:57 2010 +0100 @@ -87,8 +87,8 @@ exception statement from your version. * __LINE__, g_thread_self (), first, second, third) // Plugin information passed to about:plugins. -#define PLUGIN_NAME "IcedTea NPR Web Browser Plugin (using IcedTea)" -#define PLUGIN_DESC "The " PLUGIN_NAME PLUGIN_VERSION " executes Java applets." +#define PLUGIN_NAME "IcedTea NPR Web Browser Plugin (using " PLUGIN_VERSION ")" +#define PLUGIN_DESC "The " PLUGIN_NAME " executes Java applets." #define PLUGIN_MIME_DESC \ "application/x-java-vm:class,jar:IcedTea;" \ @@ -2079,7 +2079,7 @@ NP_GetValue (void* future, NPPVariable v { case NPPVpluginNameString: PLUGIN_DEBUG_0ARG ("NP_GetValue: returning plugin name.\n"); - *char_value = g_strdup (PLUGIN_NAME " " PACKAGE_VERSION); + *char_value = g_strdup (PLUGIN_NAME); break; case NPPVpluginDescriptionString: From gbenson at icedtea.classpath.org Fri May 14 09:37:41 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Fri, 14 May 2010 16:37:41 +0000 Subject: /hg/icedtea6: Fix stack leak in Shark Message-ID: changeset 756cd53fa326 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=756cd53fa326 author: Gary Benson date: Fri May 14 17:37:29 2010 +0100 Fix stack leak in Shark This commit fixes a bug where having an exception handler in a loop would caused a little bit of stack to be allocated every time the handler was invoked. This code... int a = 23; int b = 0; while (true) { try { int c = a / b; } catch (ArithmeticException e) { // do nothing } } ...would eventually fail with a stack overflow. diffstat: 5 files changed, 42 insertions(+), 10 deletions(-) ChangeLog | 13 +++++++++++++ ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 10 ++++++++++ ports/hotspot/src/share/vm/shark/sharkBuilder.hpp | 4 ++++ ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp | 11 +++++++++++ ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 14 ++++---------- diffs (99 lines): diff -r d2cf98636cb7 -r 756cd53fa326 ChangeLog --- a/ChangeLog Fri May 14 13:55:26 2010 +0100 +++ b/ChangeLog Fri May 14 17:37:29 2010 +0100 @@ -1,3 +1,16 @@ 2010-05-14 Gary Benson + + * ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp + (SharkCodeBuffer::inline_data): New method. + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp + (SharkBuilder::CreateInlineData): Likewise. + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp + (SharkBuilder::CreateInlineData): Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::handle_exception): Inline the exception + handler table in the code buffer rather than creating it on + the stack. + 2010-05-14 Gary Benson PR icedtea/484 diff -r d2cf98636cb7 -r 756cd53fa326 ports/hotspot/src/share/vm/shark/sharkBuilder.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 14 13:55:26 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.cpp Fri May 14 17:37:29 2010 +0100 @@ -546,6 +546,16 @@ Value* SharkBuilder::CreateInlineOop(job name); } +Value* SharkBuilder::CreateInlineData(void* data, + size_t size, + const Type* type, + const char* name) { + return CreateIntToPtr( + code_buffer_address(code_buffer()->inline_data(data, size)), + type, + name); +} + // Helpers for creating basic blocks. BasicBlock* SharkBuilder::GetBlockInsertionPoint() const { diff -r d2cf98636cb7 -r 756cd53fa326 ports/hotspot/src/share/vm/shark/sharkBuilder.hpp --- a/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 14 13:55:26 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBuilder.hpp Fri May 14 17:37:29 2010 +0100 @@ -194,6 +194,10 @@ class SharkBuilder : public llvm::IRBuil llvm::Value* CreateInlineOop(ciObject* object, const char* name = "") { return CreateInlineOop(object->encoding(), name); } + llvm::Value* CreateInlineData(void* data, + size_t size, + const llvm::Type* type, + const char* name = ""); // Helpers for creating basic blocks. // NB don't use unless SharkFunction::CreateBlock is unavailable. diff -r d2cf98636cb7 -r 756cd53fa326 ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp --- a/ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp Fri May 14 13:55:26 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp Fri May 14 17:37:29 2010 +0100 @@ -73,4 +73,15 @@ class SharkCodeBuffer : public StackObj masm()->store_oop(object); return offset; } + + // Inline a block of non-oop data into the buffer and return its offset. + public: + int inline_data(void *src, size_t size) const { + masm()->align(BytesPerWord); + int offset = masm()->offset(); + void *dst = masm()->pc(); + masm()->advance(size); + memcpy(dst, src, size); + return offset; + } }; diff -r d2cf98636cb7 -r 756cd53fa326 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Fri May 14 13:55:26 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Fri May 14 17:37:29 2010 +0100 @@ -469,18 +469,12 @@ void SharkTopLevelBlock::handle_exceptio // Drop into the runtime if there are non-catch-all options if (num_options > 0) { - Value *options = builder()->CreateAlloca( - ArrayType::get(SharkType::jint_type(), num_options), - LLVMValue::jint_constant(1)); - - for (int i = 0; i < num_options; i++) - builder()->CreateStore( - LLVMValue::jint_constant(indexes[i]), - builder()->CreateStructGEP(options, i)); - Value *index = call_vm( builder()->find_exception_handler(), - builder()->CreateStructGEP(options, 0), + builder()->CreateInlineData( + indexes, + num_options * sizeof(int), + PointerType::getUnqual(SharkType::jint_type())), LLVMValue::jint_constant(num_options), EX_CHECK_NO_CATCH); From bugzilla-daemon at icedtea.classpath.org Mon May 17 09:58:29 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 17 May 2010 16:58:29 +0000 Subject: [Bug 344] cacao build broken in IcedTea7 Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=344 ------- Comment #6 from stefan at complang.tuwien.ac.at 2010-05-17 16:58 ------- I will try to do that once I manage to build any current icedtea7... -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Mon May 17 11:28:32 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 17 May 2010 18:28:32 +0000 Subject: /hg/icedtea: 2 new changesets Message-ID: changeset 2a9eb92b2beb in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=2a9eb92b2beb author: Andrew John Hughes date: Mon May 17 19:24:55 2010 +0100 Make new plugin support more platforms. 2010-05-17 Andrew John Hughes * acinclude.m4: Remove duplicate IT_XULRUNNER_VERSION macro. 2010-01-22 Deepak Bhole * Makefile.am: Use MOZILLA_CFLAGS/LIBS rather than XULRUNNER. * plugin/icedteanp/IcedTeaNPPlugin.cc: Use PRInt32 rather than PRInt32_t for port. changeset 8e94f2afbe5f in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=8e94f2afbe5f author: Andrew John Hughes date: Mon May 17 19:28:25 2010 +0100 Use absolute patch to stamps when patching JAXWS. 2010-05-17 Andrew John Hughes * Makefile.am: (stamps/extract-jaxws.stamp): Use absolute path to stamps. diffstat: 4 files changed, 23 insertions(+), 55 deletions(-) ChangeLog | 19 +++++++++++++ Makefile.am | 6 ++-- acinclude.m4 | 51 ----------------------------------- plugin/icedteanp/IcedTeaNPPlugin.cc | 2 - diffs (124 lines): diff -r 6f8b8cfe8663 -r 8e94f2afbe5f ChangeLog --- a/ChangeLog Fri May 14 17:30:57 2010 +0100 +++ b/ChangeLog Mon May 17 19:28:25 2010 +0100 @@ -1,3 +1,22 @@ 2010-01-25 Andrew John Hughes + + * Makefile.am: + (stamps/extract-jaxws.stamp): Use absolute + path to stamps. + +2010-05-17 Andrew John Hughes + + * acinclude.m4: + Remove duplicate IT_XULRUNNER_VERSION macro. + +2010-01-22 Deepak Bhole + + * Makefile.am: + Use MOZILLA_CFLAGS/LIBS rather than + XULRUNNER. + * plugin/icedteanp/IcedTeaNPPlugin.cc: + Use PRInt32 rather than PRInt32_t for port. + 2010-01-25 Andrew John Hughes * IcedTeaPlugin.cc: diff -r 6f8b8cfe8663 -r 8e94f2afbe5f Makefile.am --- a/Makefile.am Fri May 14 17:30:57 2010 +0100 +++ b/Makefile.am Mon May 17 19:28:25 2010 +0100 @@ -1349,10 +1349,10 @@ if DTDTYPE_QNAME echo Applying $$p ; \ $(PATCH) -l -p0 < $(abs_top_srcdir)/$$p ; \ if ! grep "^\* $$(basename $$p)" $(abs_top_srcdir)/HACKING \ - >> stamps/extract-jaxws.stamp.tmp ; \ + >> $(abs_top_builddir)/stamps/extract-jaxws.stamp.tmp ; \ then \ echo "* $$(basename $$p): UNDOCUMENTED" \ - >> stamps/extract-jaxws.stamp.tmp ; \ + >> $(abs_top_builddir)/stamps/extract-jaxws.stamp.tmp ; \ fi ; \ else \ test x$${all_patches_ok} = "xyes" && all_patches_ok=$$p ; \ @@ -2071,7 +2071,7 @@ if ENABLE_PLUGIN $(CXX) $(CXXFLAGS) \ $< \ $(GTK_LIBS) \ - $(XULRUNNER_LIBS) \ + $(MOZILLA_LIBS) \ -shared -o $@ clean-IcedTeaPlugin: diff -r 6f8b8cfe8663 -r 8e94f2afbe5f acinclude.m4 --- a/acinclude.m4 Fri May 14 17:30:57 2010 +0100 +++ b/acinclude.m4 Mon May 17 19:28:25 2010 +0100 @@ -1271,57 +1271,6 @@ AC_PROVIDE([$0])dnl AC_PROVIDE([$0])dnl ]) -AC_DEFUN([IT_XULRUNNER_VERSION], -[ -AC_LANG_PUSH([C++]) -OLDCPPFLAGS="$CPPFLAGS" -CPPFLAGS="$CPPFLAGS $XULRUNNER_CFLAGS" - -AC_CACHE_CHECK([for xulrunner version], [xulrunner_cv_collapsed_version], - [AC_RUN_IFELSE( - [AC_LANG_PROGRAM([[ -#include -#include -#include -#include -#include -]],[[ -int version = 0; -const char* token = NULL; -int power=6; -FILE *datafile; - -datafile = fopen ("conftest.vdata", "w"); -if (!datafile) return 1; - -// 32 chars is more than enough to hold version -char* mozilla_version = (char*) malloc(32*sizeof(char)); -snprintf(mozilla_version, 32, "%s", MOZILLA_VERSION); - -token = strtok(mozilla_version, "."); -while (token) -{ - version += atoi(token)*(pow(10, power)); - power -=2; - token = strtok(NULL, "."); -} - -fprintf (datafile, "%d\n", version); -free(mozilla_version); -if (fclose(datafile)) return 1; - -return EXIT_SUCCESS; -]])], - [xulrunner_cv_collapsed_version="$(cat conftest.vdata)"], - [AC_MSG_FAILURE([cannot determine xulrunner version])])], - [xulrunner_cv_collapsed_version="190000"]) - -CPPFLAGS="$OLDCPPFLAGS" -AC_LANG_POP([C++]) - -AC_SUBST(MOZILLA_VERSION_COLLAPSED, $xulrunner_cv_collapsed_version) -]) - AC_DEFUN([IT_CHECK_ADDITIONAL_VMS], [ AC_MSG_CHECKING([for additional virtual machines to build]) diff -r 6f8b8cfe8663 -r 8e94f2afbe5f plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Fri May 14 17:30:57 2010 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Mon May 17 19:28:25 2010 +0100 @@ -1336,7 +1336,7 @@ get_proxy_info(const char* siteAddr, cha // if proxy info is available, extract it nsCString phost; - PRint32_t pport; + PRInt32 pport; nsCString ptype; info->GetHost(phost); From andrew at icedtea.classpath.org Mon May 17 14:32:25 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 17 May 2010 21:32:25 +0000 Subject: /hg/icedtea: Allow building on systems with a version of GNU Cla... Message-ID: changeset 1a1a1952c309 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=1a1a1952c309 author: Andrew John Hughes date: Mon May 17 22:32:12 2010 +0100 Allow building on systems with a version of GNU Classpath without java.util.Scanner. 2010-05-17 Andrew John Hughes * patches/boot/icedtea-dbcs.patch, * patches/boot/icedtea-sbcs.patch, * patches/boot/icedtea-spp.patch: Renamed to relate to java.util.Scanner. * Makefile.am: Fix paths above and add new patch. * patches/boot/scanner-charsets.patch: New patch to remove Scanner usage in charsetmapping tool. * patches/boot/scanner-dbcs.patch, * patches/boot/scanner-sbcs.patch, * patches/boot/scanner-spp.patch: Collect together all patches to avoid use of java.util.Scanner. diffstat: 9 files changed, 233 insertions(+), 146 deletions(-) ChangeLog | 17 ++++++++ Makefile.am | 7 ++- patches/boot/icedtea-dbcs.patch | 40 -------------------- patches/boot/icedtea-sbcs.patch | 38 ------------------- patches/boot/icedtea-spp.patch | 65 -------------------------------- patches/boot/scanner-charsets.patch | 69 +++++++++++++++++++++++++++++++++++ patches/boot/scanner-dbcs.patch | 40 ++++++++++++++++++++ patches/boot/scanner-sbcs.patch | 38 +++++++++++++++++++ patches/boot/scanner-spp.patch | 65 ++++++++++++++++++++++++++++++++ diffs (424 lines): diff -r 8e94f2afbe5f -r 1a1a1952c309 ChangeLog --- a/ChangeLog Mon May 17 19:28:25 2010 +0100 +++ b/ChangeLog Mon May 17 22:32:12 2010 +0100 @@ -1,3 +1,20 @@ 2010-05-17 Andrew John Hughes + + * patches/boot/icedtea-dbcs.patch, + * patches/boot/icedtea-sbcs.patch, + * patches/boot/icedtea-spp.patch: + Renamed to relate to java.util.Scanner. + * Makefile.am: Fix paths above and add + new patch. + * patches/boot/scanner-charsets.patch: + New patch to remove Scanner usage in + charsetmapping tool. + * patches/boot/scanner-dbcs.patch, + * patches/boot/scanner-sbcs.patch, + * patches/boot/scanner-spp.patch: + Collect together all patches to avoid use + of java.util.Scanner. + 2010-05-17 Andrew John Hughes * Makefile.am: diff -r 8e94f2afbe5f -r 1a1a1952c309 Makefile.am --- a/Makefile.am Mon May 17 19:28:25 2010 +0100 +++ b/Makefile.am Mon May 17 22:32:12 2010 +0100 @@ -420,9 +420,10 @@ endif # Patches for when java.util.Scanner is missing # or has the bug #40630 (all these classes rely # on Scanner#hasNextLine() looping behaviour) -SCANNER_PATCHES = patches/boot/icedtea-spp.patch \ - patches/boot/icedtea-sbcs.patch \ - patches/boot/icedtea-dbcs.patch +SCANNER_PATCHES = patches/boot/scanner-spp.patch \ + patches/boot/scanner-sbcs.patch \ + patches/boot/scanner-dbcs.patch \ + patches/boot/scanner-charsets.patch if LACKS_JAVA_UTIL_SCANNER ICEDTEA_BOOT_PATCHES += $(SCANNER_PATCHES) diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/icedtea-dbcs.patch --- a/patches/boot/icedtea-dbcs.patch Mon May 17 19:28:25 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java ---- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:24:56.000000000 +0100 -+++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:34:01.000000000 +0100 -@@ -27,7 +27,6 @@ - import java.io.*; - import java.util.Arrays; - import java.util.ArrayList; --import java.util.Scanner; - import java.util.Formatter; - import java.util.regex.*; - import java.nio.charset.*; -@@ -39,9 +38,8 @@ - - public static void genClass(String args[]) throws Exception { - -- Scanner s = new Scanner(new File(args[0], args[2])); -- while (s.hasNextLine()) { -- String line = s.nextLine(); -+ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2]))); -+ for (String line = s.readLine(); line != null; line = s.readLine()) { - if (line.startsWith("#") || line.length() == 0) - continue; - String[] fields = line.split("\\s+"); -@@ -188,14 +186,13 @@ - String b2cNR = b2cNRSB.toString(); - String c2bNR = c2bNRSB.toString(); - -- Scanner s = new Scanner(new File(srcDir, template)); -+ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template))); - PrintStream ops = new PrintStream(new FileOutputStream( - new File(dstDir, clzName + ".java"))); - if (hisName == null) - hisName = ""; - -- while (s.hasNextLine()) { -- String line = s.nextLine(); -+ for (String line = s.readLine(); line != null; line = s.readLine()) { - if (line.indexOf("$") == -1) { - ops.println(line); - continue; diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/icedtea-sbcs.patch --- a/patches/boot/icedtea-sbcs.patch Mon May 17 19:28:25 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java ---- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:09:01.000000000 +0100 -+++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:17:47.000000000 +0100 -@@ -28,7 +28,6 @@ - import java.io.*; - import java.util.Arrays; - import java.util.ArrayList; --import java.util.Scanner; - import java.util.Formatter; - import java.util.regex.*; - import java.nio.charset.*; -@@ -38,9 +37,8 @@ - - public static void genClass(String args[]) throws Exception { - -- Scanner s = new Scanner(new File(args[0], args[2])); -- while (s.hasNextLine()) { -- String line = s.nextLine(); -+ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2]))); -+ for (String line = s.readLine(); line != null; line = s.readLine()) { - if (line.startsWith("#") || line.length() == 0) - continue; - String[] fields = line.split("\\s+"); -@@ -208,12 +206,11 @@ - String b2cNR = b2cNRSB.toString(); - String c2bNR = c2bNRSB.toString(); - -- Scanner s = new Scanner(new File(srcDir, template)); -+ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template))); - PrintStream out = new PrintStream(new FileOutputStream( - new File(dstDir, clzName + ".java"))); - -- while (s.hasNextLine()) { -- String line = s.nextLine(); -+ for (String line = s.readLine(); line != null; line = s.readLine()) { - int i = line.indexOf("$"); - if (i == -1) { - out.println(line); diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/icedtea-spp.patch --- a/patches/boot/icedtea-spp.patch Mon May 17 19:28:25 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java ---- openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-11 08:44:09.000000000 +0100 -+++ openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-12 21:34:38.000000000 +0100 -@@ -25,6 +25,10 @@ - - package build.tools.spp; - -+import java.io.BufferedReader; -+import java.io.InputStreamReader; -+import java.io.IOException; -+ - import java.util.*; - import java.util.regex.*; - -@@ -83,7 +87,7 @@ - } - - StringBuffer out = new StringBuffer(); -- new Spp().spp(new Scanner(System.in), -+ new Spp().spp(new BufferedReader(new InputStreamReader(System.in)), - out, "", - keys, vars, be, - false); -@@ -104,12 +108,12 @@ - Matcher ifkey = Pattern.compile("^#if\\[(!)?" + KEY + "\\]").matcher(""); - Matcher elsekey = Pattern.compile("^#else\\[(!)?" + KEY + "\\]").matcher(""); - Matcher endkey = Pattern.compile("^#end\\[(!)?" + KEY + "\\]").matcher(""); -- Matcher vardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$").matcher(""); -+ Pattern pvardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$"); - Matcher vardef2 = Pattern.compile("\\$" + VAR + "\\$").matcher(""); - - void append(StringBuffer buf, String ln, - Set keys, Map vars) { -- vardef.reset(ln); -+ Matcher vardef = pvardef.matcher(ln); - while (vardef.find()) { - String repl = ""; - if (vardef.group(GN_VAR) != null) -@@ -133,19 +137,20 @@ - } - - // return true if #end[key], #end or EOF reached -- boolean spp(Scanner in, StringBuffer buf, String key, -+ boolean spp(BufferedReader in, StringBuffer buf, String key, - Set keys, Map vars, -- boolean be, boolean skip) { -- while (in.hasNextLine()) { -- String ln = in.nextLine(); -+ boolean be, boolean skip) throws IOException { -+ while (true) { -+ String ln = in.readLine(); -+ if (ln == null) -+ break; - if (be) { - if (ln.startsWith("#begin")) { - buf.setLength(0); //clean up to this line - continue; - } - if (ln.equals("#end")) { -- while (in.hasNextLine()) -- in.nextLine(); -+ do { } while (in.readLine() != null); - return true; //discard the rest to EOF - } - } diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/scanner-charsets.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/boot/scanner-charsets.patch Mon May 17 22:32:12 2010 +0100 @@ -0,0 +1,69 @@ +diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/EUC_TW.java +--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Mon May 17 20:40:10 2010 +0100 +@@ -27,7 +27,6 @@ + + import java.io.*; + import java.util.ArrayList; +-import java.util.Scanner; + import java.util.Formatter; + import java.util.regex.*; + import java.nio.charset.*; +diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/HKSCS.java +--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Mon May 17 20:40:10 2010 +0100 +@@ -28,7 +28,6 @@ + import java.io.*; + import java.util.Arrays; + import java.util.ArrayList; +-import java.util.Scanner; + import java.util.Formatter; + import java.util.regex.*; + import java.nio.charset.*; +diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/Main.java +--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/Main.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/Main.java Mon May 17 20:40:10 2010 +0100 +@@ -25,9 +25,6 @@ + + package build.tools.charsetmapping; + +-import java.io.*; +-import java.util.Scanner; +- + public class Main { + + public static void main(String args[]) throws Exception { +diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/Utils.java +--- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Mon May 17 20:40:10 2010 +0100 +@@ -26,6 +26,7 @@ + package build.tools.charsetmapping; + + import java.io.File; ++import java.io.FileInputStream; + import java.io.InputStream; + import java.io.InputStreamReader; + import java.io.OutputStream; +@@ -33,7 +34,6 @@ + import java.io.IOException; + import java.util.regex.Matcher; + import java.util.regex.Pattern; +-import java.util.Scanner; + import java.util.Formatter; + + public class Utils { +@@ -206,10 +206,11 @@ + } + + public static String getCopyright(File f) throws IOException { +- Scanner s = new Scanner(f, "ISO-8859-1"); ++ InputStreamReader r = new InputStreamReader(new FileInputStream(f), ++ "ISO-8859-1"); ++ BufferedReader s = new BufferedReader(r); + StringBuilder sb = new StringBuilder(); +- while (s.hasNextLine()) { +- String ln = s.nextLine(); ++ for (String ln = s.readLine(); ln != null; ln = s.readLine()) { + sb.append(ln + "\n"); + // assume we have the copyright as the first comment + if (ln.matches("^\\s\\*\\/$")) diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/scanner-dbcs.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/boot/scanner-dbcs.patch Mon May 17 22:32:12 2010 +0100 @@ -0,0 +1,40 @@ +diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:24:56.000000000 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/DBCS.java 2010-05-04 14:34:01.000000000 +0100 +@@ -27,7 +27,6 @@ + import java.io.*; + import java.util.Arrays; + import java.util.ArrayList; +-import java.util.Scanner; + import java.util.Formatter; + import java.util.regex.*; + import java.nio.charset.*; +@@ -39,9 +38,8 @@ + + public static void genClass(String args[]) throws Exception { + +- Scanner s = new Scanner(new File(args[0], args[2])); +- while (s.hasNextLine()) { +- String line = s.nextLine(); ++ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2]))); ++ for (String line = s.readLine(); line != null; line = s.readLine()) { + if (line.startsWith("#") || line.length() == 0) + continue; + String[] fields = line.split("\\s+"); +@@ -188,14 +186,13 @@ + String b2cNR = b2cNRSB.toString(); + String c2bNR = c2bNRSB.toString(); + +- Scanner s = new Scanner(new File(srcDir, template)); ++ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template))); + PrintStream ops = new PrintStream(new FileOutputStream( + new File(dstDir, clzName + ".java"))); + if (hisName == null) + hisName = ""; + +- while (s.hasNextLine()) { +- String line = s.nextLine(); ++ for (String line = s.readLine(); line != null; line = s.readLine()) { + if (line.indexOf("$") == -1) { + ops.println(line); + continue; diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/scanner-sbcs.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/boot/scanner-sbcs.patch Mon May 17 22:32:12 2010 +0100 @@ -0,0 +1,38 @@ +diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:09:01.000000000 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/SBCS.java 2010-05-04 14:17:47.000000000 +0100 +@@ -28,7 +28,6 @@ + import java.io.*; + import java.util.Arrays; + import java.util.ArrayList; +-import java.util.Scanner; + import java.util.Formatter; + import java.util.regex.*; + import java.nio.charset.*; +@@ -38,9 +37,8 @@ + + public static void genClass(String args[]) throws Exception { + +- Scanner s = new Scanner(new File(args[0], args[2])); +- while (s.hasNextLine()) { +- String line = s.nextLine(); ++ BufferedReader s = new BufferedReader(new FileReader(new File(args[0], args[2]))); ++ for (String line = s.readLine(); line != null; line = s.readLine()) { + if (line.startsWith("#") || line.length() == 0) + continue; + String[] fields = line.split("\\s+"); +@@ -208,12 +206,11 @@ + String b2cNR = b2cNRSB.toString(); + String c2bNR = c2bNRSB.toString(); + +- Scanner s = new Scanner(new File(srcDir, template)); ++ BufferedReader s = new BufferedReader(new FileReader(new File(srcDir, template))); + PrintStream out = new PrintStream(new FileOutputStream( + new File(dstDir, clzName + ".java"))); + +- while (s.hasNextLine()) { +- String line = s.nextLine(); ++ for (String line = s.readLine(); line != null; line = s.readLine()) { + int i = line.indexOf("$"); + if (i == -1) { + out.println(line); diff -r 8e94f2afbe5f -r 1a1a1952c309 patches/boot/scanner-spp.patch --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/patches/boot/scanner-spp.patch Mon May 17 22:32:12 2010 +0100 @@ -0,0 +1,65 @@ +diff -Nru openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-11 08:44:09.000000000 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/spp/Spp.java 2008-09-12 21:34:38.000000000 +0100 +@@ -25,6 +25,10 @@ + + package build.tools.spp; + ++import java.io.BufferedReader; ++import java.io.InputStreamReader; ++import java.io.IOException; ++ + import java.util.*; + import java.util.regex.*; + +@@ -83,7 +87,7 @@ + } + + StringBuffer out = new StringBuffer(); +- new Spp().spp(new Scanner(System.in), ++ new Spp().spp(new BufferedReader(new InputStreamReader(System.in)), + out, "", + keys, vars, be, + false); +@@ -104,12 +108,12 @@ + Matcher ifkey = Pattern.compile("^#if\\[(!)?" + KEY + "\\]").matcher(""); + Matcher elsekey = Pattern.compile("^#else\\[(!)?" + KEY + "\\]").matcher(""); + Matcher endkey = Pattern.compile("^#end\\[(!)?" + KEY + "\\]").matcher(""); +- Matcher vardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$").matcher(""); ++ Pattern pvardef = Pattern.compile("\\{#if\\[(!)?" + KEY + "\\]\\?" + TEXT + "(:"+ TEXT + ")?\\}|\\$" + VAR + "\\$"); + Matcher vardef2 = Pattern.compile("\\$" + VAR + "\\$").matcher(""); + + void append(StringBuffer buf, String ln, + Set keys, Map vars) { +- vardef.reset(ln); ++ Matcher vardef = pvardef.matcher(ln); + while (vardef.find()) { + String repl = ""; + if (vardef.group(GN_VAR) != null) +@@ -133,19 +137,20 @@ + } + + // return true if #end[key], #end or EOF reached +- boolean spp(Scanner in, StringBuffer buf, String key, ++ boolean spp(BufferedReader in, StringBuffer buf, String key, + Set keys, Map vars, +- boolean be, boolean skip) { +- while (in.hasNextLine()) { +- String ln = in.nextLine(); ++ boolean be, boolean skip) throws IOException { ++ while (true) { ++ String ln = in.readLine(); ++ if (ln == null) ++ break; + if (be) { + if (ln.startsWith("#begin")) { + buf.setLength(0); //clean up to this line + continue; + } + if (ln.equals("#end")) { +- while (in.hasNextLine()) +- in.nextLine(); ++ do { } while (in.readLine() != null); + return true; //discard the rest to EOF + } + } From bugzilla-daemon at icedtea.classpath.org Tue May 18 04:23:49 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 18 May 2010 11:23:49 +0000 Subject: [Bug 494] New: Shark fails to catch java.lang.NullPointerException using catch (Throwable e) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=494 Summary: Shark fails to catch java.lang.NullPointerException using catch (Throwable e) Product: IcedTea Version: 6-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Shark AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se Testcase: cd openjdk/hotspot/test/compiler/6741738 javac Tester.java java -Xcomp -XX:CompileOnly=Tester.foo Tester Output: Exception in thread "main" java.lang.NullPointerException: at Tester.foo(Tester.java:39) at Tester.main(Tester.java:48) Observations: Changing the testcase to catch (Exception e) instead of catch (Throwable e) makes Shark pass the testcase so it looks like shark are unable to catch Exceptions using catch (Throwable e) despite the fact[1] that Exception are a subclass of Throwable. [1] ref: http://journals.ecs.soton.ac.uk/java/tutorial/java/exceptions/throwable.html -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Tue May 18 07:12:44 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Tue, 18 May 2010 14:12:44 +0000 Subject: /hg/icedtea: Boot patches should patch openjdk-boot. Message-ID: changeset a8b1c8bb75b9 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=a8b1c8bb75b9 author: Andrew John Hughes date: Tue May 18 15:12:38 2010 +0100 Boot patches should patch openjdk-boot. 2010-05-18 Andrew John Hughes * patches/boot/scanner-charsets.patch: Patch openjdk-boot not openjdk. diffstat: 2 files changed, 12 insertions(+), 7 deletions(-) ChangeLog | 5 +++++ patches/boot/scanner-charsets.patch | 14 +++++++------- diffs (55 lines): diff -r 1a1a1952c309 -r a8b1c8bb75b9 ChangeLog --- a/ChangeLog Mon May 17 22:32:12 2010 +0100 +++ b/ChangeLog Tue May 18 15:12:38 2010 +0100 @@ -1,3 +1,8 @@ 2010-05-17 Andrew John Hughes + + * patches/boot/scanner-charsets.patch: + Patch openjdk-boot not openjdk. + 2010-05-17 Andrew John Hughes * patches/boot/icedtea-dbcs.patch, diff -r 1a1a1952c309 -r a8b1c8bb75b9 patches/boot/scanner-charsets.patch --- a/patches/boot/scanner-charsets.patch Mon May 17 22:32:12 2010 +0100 +++ b/patches/boot/scanner-charsets.patch Tue May 18 15:12:38 2010 +0100 @@ -1,6 +1,6 @@ diff -r 5d5ee1c92a1b make/tools/src/buil diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/EUC_TW.java ---- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Fri May 14 14:06:33 2010 +0100 -+++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Mon May 17 20:40:10 2010 +0100 +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/EUC_TW.java Mon May 17 20:40:10 2010 +0100 @@ -27,7 +27,6 @@ import java.io.*; @@ -11,7 +11,7 @@ diff -r 5d5ee1c92a1b make/tools/src/buil import java.nio.charset.*; diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/HKSCS.java --- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Fri May 14 14:06:33 2010 +0100 -+++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Mon May 17 20:40:10 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/HKSCS.java Mon May 17 20:40:10 2010 +0100 @@ -28,7 +28,6 @@ import java.io.*; import java.util.Arrays; @@ -21,8 +21,8 @@ diff -r 5d5ee1c92a1b make/tools/src/buil import java.util.regex.*; import java.nio.charset.*; diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/Main.java ---- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/Main.java Fri May 14 14:06:33 2010 +0100 -+++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/Main.java Mon May 17 20:40:10 2010 +0100 +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/Main.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/Main.java Mon May 17 20:40:10 2010 +0100 @@ -25,9 +25,6 @@ package build.tools.charsetmapping; @@ -34,8 +34,8 @@ diff -r 5d5ee1c92a1b make/tools/src/buil public static void main(String args[]) throws Exception { diff -r 5d5ee1c92a1b make/tools/src/build/tools/charsetmapping/Utils.java ---- openjdk.orig/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Fri May 14 14:06:33 2010 +0100 -+++ openjdk/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Mon May 17 20:40:10 2010 +0100 +--- openjdk-boot.orig/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Fri May 14 14:06:33 2010 +0100 ++++ openjdk-boot/jdk/make/tools/src/build/tools/charsetmapping/Utils.java Mon May 17 20:40:10 2010 +0100 @@ -26,6 +26,7 @@ package build.tools.charsetmapping; From bugzilla-daemon at icedtea.classpath.org Tue May 18 14:52:06 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 18 May 2010 21:52:06 +0000 Subject: [Bug 473] NSS PKCS11 regression - due to java.security automatic loading Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=473 ------- Comment #2 from gnu_andrew at member.fsf.org 2010-05-18 21:52 ------- There already is an option to remove the patch -- disable-nss. In fact, this is the default! -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Wed May 19 01:24:21 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 19 May 2010 08:24:21 +0000 Subject: [Bug 473] NSS PKCS11 regression - due to java.security automatic loading Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=473 ------- Comment #3 from matej.spiller at gmail.com 2010-05-19 08:24 ------- Then it seems that some distros are enabling NSS by default (like Ubuntu 10.04). I have reported this issue upstream and still creating a list of affected distributions. Regarding proposal fix for IcedTea. There is a solution to fix this behavior (even when NSS is enabled): https://wiki.mozilla.org/NSS_Library_Init (added in NSS release 3.12.5 http://www.mozilla.org/projects/security/pki/nss/release_notes.html). This would allow multiple NSS initialization at the same time. from Ubuntu changelog: +openjdk-6 (6b16-1.6.1-1ubuntu2) karmic; urgency=low + + * Support PKCS11 cryptography via NSS, now allowing import of all + certificates from ca-certificates. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From gbenson at icedtea.classpath.org Wed May 19 08:34:36 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Wed, 19 May 2010 15:34:36 +0000 Subject: /hg/icedtea6: Removed a hs17ism that sneaked in Message-ID: changeset ae50851aec72 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ae50851aec72 author: Gary Benson date: Wed May 19 16:34:28 2010 +0100 Removed a hs17ism that sneaked in diffstat: 2 files changed, 5 insertions(+), 1 deletion(-) ChangeLog | 5 +++++ ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 1 - diffs (23 lines): diff -r 756cd53fa326 -r ae50851aec72 ChangeLog --- a/ChangeLog Fri May 14 17:37:29 2010 +0100 +++ b/ChangeLog Wed May 19 16:34:28 2010 +0100 @@ -1,3 +1,8 @@ 2010-05-14 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp + (InlineSmallCode): Removed. + 2010-05-14 Gary Benson * ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp diff -r 756cd53fa326 -r ae50851aec72 ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Fri May 14 17:37:29 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Wed May 19 16:34:28 2010 +0100 @@ -47,7 +47,6 @@ define_pd_global(intx, Tier4BackEdge define_pd_global(intx, OnStackReplacePercentage, 933 ); define_pd_global(intx, FreqInlineSize, 325 ); -define_pd_global(intx, InlineSmallCode, 1000 ); define_pd_global(intx, NewRatio, 12 ); define_pd_global(intx, NewSizeThreadIncrease, 4*K ); define_pd_global(intx, InitialCodeCacheSize, 160*K); From andrew at icedtea.classpath.org Wed May 19 09:37:34 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 19 May 2010 16:37:34 +0000 Subject: /hg/icedtea: 3 new changesets Message-ID: changeset a162d147953c in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=a162d147953c author: Andrew John Hughes date: Mon Jan 25 21:52:19 2010 +0000 Fix trailing space after plugin version when pkgversion not set. 2010-01-25 Andrew John Hughes * Makefile.am: Remove trailing space after IcedTea version in plugin version information when package version is not set. changeset fdf0c004a607 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=fdf0c004a607 author: doko at ubuntu.com date: Wed Jan 27 13:16:02 2010 +0100 Fix quoting of ICEDTEA_NAME ICEDTEA_REV ICEDTEA_PKG If these macros need quoting, quoting has to be done in the places where it is needed, else PLUGIN_VERSION gets wrong. 2010-01-27 Matthias Klose * Makefile.am: Remove quoting from ICEDTEA_NAME ICEDTEA_REV ICEDTEA_PKG. changeset 962e6e2b70f5 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=962e6e2b70f5 author: Andrew John Hughes date: Wed May 19 17:34:15 2010 +0100 Add a target for building the plugin tests. 2010-01-26 Andrew John Hughes * Makefile.am: (stamps/plugin-tests.stamp): Add a target for building the plugin tests. (plugin-tests): Alias for the above. diffstat: 2 files changed, 55 insertions(+), 4 deletions(-) ChangeLog | 18 ++++++++++++++++++ Makefile.am | 41 +++++++++++++++++++++++++++++++++++++---- diffs (102 lines): diff -r a8b1c8bb75b9 -r 962e6e2b70f5 ChangeLog --- a/ChangeLog Tue May 18 15:12:38 2010 +0100 +++ b/ChangeLog Wed May 19 17:34:15 2010 +0100 @@ -1,3 +1,21 @@ 2010-05-18 Andrew John Hughes + + * Makefile.am: + (stamps/plugin-tests.stamp): Add + a target for building the plugin tests. + (plugin-tests): Alias for the above. + +2010-01-27 Matthias Klose + + * Makefile.am: Remove quoting from ICEDTEA_NAME ICEDTEA_REV ICEDTEA_PKG. + +2010-01-25 Andrew John Hughes + + * Makefile.am: + Remove trailing space after IcedTea version + in plugin version information when package + version is not set. + 2010-05-18 Andrew John Hughes * patches/boot/scanner-charsets.patch: diff -r a8b1c8bb75b9 -r 962e6e2b70f5 Makefile.am --- a/Makefile.am Tue May 18 15:12:38 2010 +0100 +++ b/Makefile.am Wed May 19 17:34:15 2010 +0100 @@ -254,6 +254,10 @@ OPENJDK_TREE = stamps/overlay.stamp # is available in $(abs_top_builddir)/openjdk-boot OPENJDK_BOOT_TREE = stamps/patch-boot.stamp +# Sources list + +PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java + # Patch list ICEDTEA_PATCHES = \ @@ -456,15 +460,15 @@ JDK_UPDATE_VERSION = $(shell echo $(OPEN JDK_UPDATE_VERSION = $(shell echo $(OPENJDK_VERSION) | sed -e "s/^b//") COMBINED_VERSION = $(JDK_UPDATE_VERSION)-$(OPENJDK_VERSION) -ICEDTEA_NAME="IcedTea7" +ICEDTEA_NAME = IcedTea7 if HAS_ICEDTEA_REVISION -ICEDTEA_REV="+${ICEDTEA_REVISION}" +ICEDTEA_REV = +${ICEDTEA_REVISION} endif if HAS_PKGVERSION -ICEDTEA_PKG="(${PKGVERSION})" +ICEDTEA_PKG = $(EMPTY) (${PKGVERSION}) endif -PLUGIN_VERSION=$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV) $(ICEDTEA_PKG) +PLUGIN_VERSION = $(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV)$(ICEDTEA_PKG) ICEDTEA_ENV = \ ALT_JDK_IMPORT_PATH="$(ICEDTEA_BOOT_DIR)" \ @@ -2507,6 +2511,33 @@ clean-add-zero-debug: # end additional VMs +# plugin tests + +stamps/plugin-tests.stamp: $(PLUGIN_TEST_SRCS) \ + bootstrap/jdk1.7.0/jre/lib/rt-closed.jar + mkdir -p plugin/tests/LiveConnect + if test -d lib/rt/netscape ; then \ + set -e ; \ + if ! test -d $(ICEDTEA_BOOT_DIR) ; then \ + $(JAVAC) $(MEMORY_LIMIT) -g -d plugin/tests/LiveConnect \ + -classpath bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \ + -source 1.5 $(PLUGIN_TEST_SRCS) ; \ + $(JAR) cf plugin/tests/LiveConnect/PluginTest.jar \ + plugin/tests/LiveConnect/*.class ; \ + else \ + $(ICEDTEA_BOOT_DIR)/bin/javac $(MEMORY_LIMIT) -g \ + -d plugin/tests/LiveConnect \ + -classpath bootstrap/jdk1.7.0/jre/lib/rt-closed.jar \ + -source 1.5 $(PLUGIN_TEST_SRCS) ; \ + $(ICEDTEA_BOOT_DIR)/bin/jar cf plugin/tests/LiveConnect/PluginTest.jar \ + plugin/tests/LiveConnect/*.class ; \ + fi ; \ + cp -a $(abs_top_srcdir)/plugin/tests/LiveConnect/*.{js,html} plugin/tests/LiveConnect ; \ + echo "Done. Now launch \"firefox file://`pwd`/index.html\"" ; \ + fi + mkdir -p stamps + touch stamps/plugin-tests.stamp + # jtreg stamps/jtreg.stamp: stamps/icedtea.stamp @@ -2752,6 +2783,8 @@ patch-fsg: stamps/patch-fsg.stamp plugin: stamps/plugin.stamp +plugin-tests: stamps/plugin-tests.stamp + plugs: stamps/plugs.stamp pulse-java: stamps/pulse-java.stamp From gbenson at icedtea.classpath.org Thu May 20 03:57:14 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Thu, 20 May 2010 10:57:14 +0000 Subject: /hg/icedtea6: Fix build when Shark is enabled Message-ID: changeset 70a50bdf254f in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=70a50bdf254f author: Gary Benson date: Thu May 20 11:56:06 2010 +0100 Fix build when Shark is enabled diffstat: 2 files changed, 8 insertions(+) ChangeLog | 5 +++++ ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 3 +++ diffs (25 lines): diff -r ae50851aec72 -r 70a50bdf254f ChangeLog --- a/ChangeLog Wed May 19 16:34:28 2010 +0100 +++ b/ChangeLog Thu May 20 11:56:06 2010 +0100 @@ -1,3 +1,8 @@ 2010-05-19 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp + (InlineSmallCode): Reinstated, inside #ifdef SHARK. + 2010-05-19 Gary Benson * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp diff -r ae50851aec72 -r 70a50bdf254f ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Wed May 19 16:34:28 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Thu May 20 11:56:06 2010 +0100 @@ -47,6 +47,9 @@ define_pd_global(intx, Tier4BackEdge define_pd_global(intx, OnStackReplacePercentage, 933 ); define_pd_global(intx, FreqInlineSize, 325 ); +#ifdef SHARK +define_pd_global(intx, InlineSmallCode, 1000 ); +#endif // SHARK define_pd_global(intx, NewRatio, 12 ); define_pd_global(intx, NewSizeThreadIncrease, 4*K ); define_pd_global(intx, InitialCodeCacheSize, 160*K); From gbenson at icedtea.classpath.org Thu May 20 04:41:40 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Thu, 20 May 2010 11:41:40 +0000 Subject: /hg/icedtea6: Fix PR icedtea/494 (and speed up exception handling) Message-ID: changeset c8cdcd3a1f01 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=c8cdcd3a1f01 author: Gary Benson date: Thu May 20 12:40:31 2010 +0100 Fix PR icedtea/494 (and speed up exception handling) This commit fixes PR icedtea/494, a bug where some exception handlers were not installed. Shark relied on exception handler tables supplied by the TypeFlow pass, but it turns out that TypeFlow does not record all exceptions in its tables. Shark now builds its own tables. While implementing this I realised that the VM call carried out to figure out which exception handler to use is unnecessary in most cases. I've left the original code in, but added a fast path which bypasses a lot of the junk. diffstat: 4 files changed, 218 insertions(+), 53 deletions(-) ChangeLog | 27 + ports/hotspot/src/share/vm/shark/sharkInvariants.hpp | 7 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 208 +++++++++++---- ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp | 29 +- diffs (382 lines): diff -r 70a50bdf254f -r c8cdcd3a1f01 ChangeLog --- a/ChangeLog Thu May 20 11:56:06 2010 +0100 +++ b/ChangeLog Thu May 20 12:40:31 2010 +0100 @@ -1,3 +1,30 @@ 2010-05-20 Gary Benson + + PR icedtea/494 + * ports/hotspot/src/share/vm/shark/sharkInvariants.hpp + (SharkCompileInvariants::java_lang_Throwable_klass): New method. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp + (SharkTopLevelBlock::_exc_handlers): New field. + (SharkTopLevelBlock::_exceptions): Likewise. + (SharkTopLevelBlock::compute_exceptions): New method. + (SharkTopLevelBlock::num_exceptions): Rewritten. + (SharkTopLevelBlock::exc_handler): New method. + (SharkTopLevelBlock::exception): Rewritten. + (SharkTopLevelBlock::marshal_exception_fast): New method. + (SharkTopLevelBlock::marshal_exception_slow): Likewise. + (SharkTopLevelBlock::handler_for_exception): Likewise. + (SharkTopLevelBlock::make_trap): Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp + (SharkTopLevelBlock::enter): Compute exceptions on entry, + and skip over any null handlers. + (SharkTopLevelBlock::compute_exceptions): New method. + (SharkTopLevelBlock::handle_exception): Rewritten. + (SharkTopLevelBlock::marshal_exception_fast): New method. + (SharkTopLevelBlock::marshal_exception_slow): Likewise. + (SharkTopLevelBlock::handler_for_exception): Likewise. + (SharkTopLevelBlock::make_trap): Likewise. + (SharkTopLevelBlock::can_reach_helper): Skip over null handlers. + 2010-05-20 Gary Benson * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp diff -r 70a50bdf254f -r c8cdcd3a1f01 ports/hotspot/src/share/vm/shark/sharkInvariants.hpp --- a/ports/hotspot/src/share/vm/shark/sharkInvariants.hpp Thu May 20 11:56:06 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkInvariants.hpp Thu May 20 12:40:31 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -93,10 +93,13 @@ class SharkCompileInvariants : public Re return builder()->code_buffer(); } - // That well-known class... + // Commonly used classes protected: ciInstanceKlass* java_lang_Object_klass() const { return env()->Object_klass(); + } + ciInstanceKlass* java_lang_Throwable_klass() const { + return env()->Throwable_klass(); } }; diff -r 70a50bdf254f -r c8cdcd3a1f01 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Thu May 20 11:56:06 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp Thu May 20 12:40:31 2010 +0100 @@ -221,8 +221,11 @@ void SharkTopLevelBlock::enter(SharkTopL successor(i)->enter(this, false); } } + compute_exceptions(); for (int i = 0; i < num_exceptions(); i++) { - exception(i)->enter(this, true); + SharkTopLevelBlock *handler = exception(i); + if (handler) + handler->enter(this, true); } } } @@ -438,67 +441,93 @@ void SharkTopLevelBlock::check_pending_e builder()->SetInsertPoint(no_exception); } +void SharkTopLevelBlock::compute_exceptions() { + ciExceptionHandlerStream str(target(), start()); + + int exc_count = str.count(); + _exc_handlers = new GrowableArray(exc_count); + _exceptions = new GrowableArray(exc_count); + + int index = 0; + for (; !str.is_done(); str.next()) { + ciExceptionHandler *handler = str.handler(); + if (handler->handler_bci() == -1) + break; + _exc_handlers->append(handler); + + // Try and get this exception's handler from typeflow. We should + // do it this way always, really, except that typeflow sometimes + // doesn't record exceptions, even loaded ones, and sometimes it + // returns them with a different handler bci. Why??? + SharkTopLevelBlock *block = NULL; + ciInstanceKlass* klass; + if (handler->is_catch_all()) { + klass = java_lang_Throwable_klass(); + } + else { + klass = handler->catch_klass(); + } + for (int i = 0; i < ciblock()->exceptions()->length(); i++) { + if (klass == ciblock()->exc_klasses()->at(i)) { + block = function()->block(ciblock()->exceptions()->at(i)->pre_order()); + if (block->start() == handler->handler_bci()) + break; + else + block = NULL; + } + } + + // If typeflow let us down then try and figure it out ourselves + if (block == NULL) { + for (int i = 0; i < function()->block_count(); i++) { + SharkTopLevelBlock *candidate = function()->block(i); + if (candidate->start() == handler->handler_bci()) { + if (block != NULL) { + NOT_PRODUCT(warning("there may be trouble ahead")); + block = NULL; + break; + } + block = candidate; + } + } + } + _exceptions->append(block); + } +} + void SharkTopLevelBlock::handle_exception(Value* exception, int action) { if (action & EAM_HANDLE && num_exceptions() != 0) { - // Clear the stack and push the exception onto it. - // We do this now to protect it across the VM call - // we may be about to make. + // Clear the stack and push the exception onto it while (xstack_depth()) pop(); push(SharkValue::create_jobject(exception, true)); - int *indexes = NEW_RESOURCE_ARRAY(int, num_exceptions()); - bool has_catch_all = false; - - ciExceptionHandlerStream eh_iter(target(), bci()); - for (int i = 0; i < num_exceptions(); i++, eh_iter.next()) { - ciExceptionHandler* handler = eh_iter.handler(); - - if (handler->is_catch_all()) { - assert(i == num_exceptions() - 1, "catch-all should be last"); - has_catch_all = true; - } - else { - indexes[i] = handler->catch_klass_index(); - } - } - + // Work out how many options we have to check + bool has_catch_all = exc_handler(num_exceptions() - 1)->is_catch_all(); int num_options = num_exceptions(); if (has_catch_all) num_options--; - // Drop into the runtime if there are non-catch-all options + // Marshal any non-catch-all handlers if (num_options > 0) { - Value *index = call_vm( - builder()->find_exception_handler(), - builder()->CreateInlineData( - indexes, - num_options * sizeof(int), - PointerType::getUnqual(SharkType::jint_type())), - LLVMValue::jint_constant(num_options), - EX_CHECK_NO_CATCH); - - // Jump to the exception handler, if found - BasicBlock *no_handler = function()->CreateBlock("no_handler"); - SwitchInst *switchinst = builder()->CreateSwitch( - index, no_handler, num_options); - + bool all_loaded = true; for (int i = 0; i < num_options; i++) { - SharkTopLevelBlock* handler = this->exception(i); - - switchinst->addCase( - LLVMValue::jint_constant(i), - handler->entry_block()); - - handler->add_incoming(current_state()); + if (!exc_handler(i)->catch_klass()->is_loaded()) { + all_loaded = false; + break; + } } - builder()->SetInsertPoint(no_handler); + if (all_loaded) + marshal_exception_fast(num_options); + else + marshal_exception_slow(num_options); } - // No specific handler exists, but maybe there's a catch-all + // Install the catch-all handler, if present if (has_catch_all) { SharkTopLevelBlock* handler = this->exception(num_options); + assert(handler != NULL, "catch-all handler cannot be unloaded"); builder()->CreateBr(handler->entry_block()); handler->add_incoming(current_state()); @@ -508,6 +537,78 @@ void SharkTopLevelBlock::handle_exceptio // No exception handler was found; unwind and return handle_return(T_VOID, exception); +} + +void SharkTopLevelBlock::marshal_exception_fast(int num_options) { + Value *exception_klass = builder()->CreateValueOfStructEntry( + xstack(0)->jobject_value(), + in_ByteSize(oopDesc::klass_offset_in_bytes()), + SharkType::oop_type(), + "exception_klass"); + + for (int i = 0; i < num_options; i++) { + Value *check_klass = + builder()->CreateInlineOop(exc_handler(i)->catch_klass()); + + BasicBlock *not_exact = function()->CreateBlock("not_exact"); + BasicBlock *not_subtype = function()->CreateBlock("not_subtype"); + + builder()->CreateCondBr( + builder()->CreateICmpEQ(check_klass, exception_klass), + handler_for_exception(i), not_exact); + + builder()->SetInsertPoint(not_exact); + builder()->CreateCondBr( + builder()->CreateICmpNE( + builder()->CreateCall2( + builder()->is_subtype_of(), check_klass, exception_klass), + LLVMValue::jbyte_constant(0)), + handler_for_exception(i), not_subtype); + + builder()->SetInsertPoint(not_subtype); + } +} + +void SharkTopLevelBlock::marshal_exception_slow(int num_options) { + int *indexes = NEW_RESOURCE_ARRAY(int, num_options); + for (int i = 0; i < num_options; i++) + indexes[i] = exc_handler(i)->catch_klass_index(); + + Value *index = call_vm( + builder()->find_exception_handler(), + builder()->CreateInlineData( + indexes, + num_options * sizeof(int), + PointerType::getUnqual(SharkType::jint_type())), + LLVMValue::jint_constant(num_options), + EX_CHECK_NO_CATCH); + + BasicBlock *no_handler = function()->CreateBlock("no_handler"); + SwitchInst *switchinst = builder()->CreateSwitch( + index, no_handler, num_options); + + for (int i = 0; i < num_options; i++) { + switchinst->addCase( + LLVMValue::jint_constant(i), + handler_for_exception(i)); + } + + builder()->SetInsertPoint(no_handler); +} + +BasicBlock* SharkTopLevelBlock::handler_for_exception(int index) { + SharkTopLevelBlock *successor = this->exception(index); + if (successor) { + successor->add_incoming(current_state()); + return successor->entry_block(); + } + else { + return make_trap( + exc_handler(index)->handler_bci(), + Deoptimization::make_trap_request( + Deoptimization::Reason_unhandled, + Deoptimization::Action_reinterpret)); + } } void SharkTopLevelBlock::maybe_add_safepoint() { @@ -579,11 +680,28 @@ bool SharkTopLevelBlock::can_reach_helpe } for (int i = 0; i < num_exceptions(); i++) { - if (exception(i)->can_reach_helper(other)) + SharkTopLevelBlock *handler = exception(i); + if (handler && handler->can_reach_helper(other)) return true; } return false; +} + +BasicBlock* SharkTopLevelBlock::make_trap(int trap_bci, int trap_request) { + BasicBlock *trap_block = function()->CreateBlock("trap"); + BasicBlock *orig_block = builder()->GetInsertBlock(); + builder()->SetInsertPoint(trap_block); + + int orig_bci = bci(); + iter()->force_bci(trap_bci); + + do_trap(trap_request); + + builder()->SetInsertPoint(orig_block); + iter()->force_bci(orig_bci); + + return trap_block; } void SharkTopLevelBlock::do_trap(int trap_request) { diff -r 70a50bdf254f -r c8cdcd3a1f01 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp --- a/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Thu May 20 11:56:06 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp Thu May 20 12:40:31 2010 +0100 @@ -79,12 +79,6 @@ class SharkTopLevelBlock : public SharkB bool falls_through() const { return ciblock()->control() == ciBlock::fall_through_bci; } - int num_exceptions() const { - return ciblock()->exceptions()->length(); - } - SharkTopLevelBlock* exception(int index) const { - return function()->block(ciblock()->exceptions()->at(index)->pre_order()); - } int num_successors() const { return ciblock()->successors()->length(); } @@ -92,6 +86,25 @@ class SharkTopLevelBlock : public SharkB return function()->block(ciblock()->successors()->at(index)->pre_order()); } SharkTopLevelBlock* bci_successor(int bci) const; + + // Exceptions + private: + GrowableArray* _exc_handlers; + GrowableArray* _exceptions; + + private: + void compute_exceptions(); + + private: + int num_exceptions() const { + return _exc_handlers->length(); + } + ciExceptionHandler* exc_handler(int index) const { + return _exc_handlers->at(index); + } + SharkTopLevelBlock* exception(int index) const { + return _exceptions->at(index); + } // Traps private: @@ -250,6 +263,9 @@ class SharkTopLevelBlock : public SharkB }; void check_pending_exception(int action); void handle_exception(llvm::Value* exception, int action); + void marshal_exception_fast(int num_options); + void marshal_exception_slow(int num_options); + llvm::BasicBlock* handler_for_exception(int index); // VM calls private: @@ -335,6 +351,7 @@ class SharkTopLevelBlock : public SharkB // Traps private: + llvm::BasicBlock* make_trap(int trap_bci, int trap_request); void do_trap(int trap_request); // Returns From bugzilla-daemon at icedtea.classpath.org Thu May 20 06:43:35 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 20 May 2010 13:43:35 +0000 Subject: [Bug 494] Shark fails to catch Exception using catch (Throwable e) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=494 gbenson at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED ------- Comment #1 from gbenson at redhat.com 2010-05-20 13:43 ------- Should be fixed in http://icedtea.classpath.org/hg/icedtea6/rev/c8cdcd3a1f01 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Thu May 20 06:51:32 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Thu, 20 May 2010 13:51:32 +0000 Subject: /hg/icedtea: 11 new changesets Message-ID: changeset 40357adde7f6 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=40357adde7f6 author: Andrew John Hughes date: Wed May 19 19:39:45 2010 +0100 Patch splashscreen to build against libpng 1.4. 2010-05-19 Andrew John Hughes Patch splashscreen to build against libpng 1.4. * Makefile.am: Bump JDK changeset and SHA256 sum. changeset 216f095954ab in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=216f095954ab author: Xerxes R?nby date: Mon Feb 01 12:28:24 2010 +0100 Update Shark for LLVM r94686 API change. 2010-02-01 Xerxes R?nby * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp (SharkCompiler::SharkCompiler): Use sharkContext::module instead of sharkContext::module_provider when using LLVM 2.7 to handle LLVM r94686 API change. * ports/hotspot/src/share/vm/shark/sharkContext.hpp (sharkContext::module): Made public when using LLVM 2.7. (sharkContext::module_provider): Undefine when using LLVM 2.7. * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp (llvm/ModuleProvider.h): Undefine when using LLVM 2.7. changeset 3f733a43a8b2 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3f733a43a8b2 author: Andrew John Hughes date: Thu May 20 14:10:23 2010 +0100 Re-designed frame embedding code so that the applet is dynamically packed into given handle. This increases stability and breaks reliance on the assumption that the browser will always provide a handle in a certain sequence. 2010-02-02 Deepak Bhole * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Re-designed frame embedding code so that the applet is dynamically packed into given handle. changeset d145cab2903c in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=d145cab2903c author: Deepak Bhole date: Tue Feb 02 16:21:26 2010 -0500 Added tests for JSObject.eval() changeset 5fe7d106e8c7 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=5fe7d106e8c7 author: Deepak Bhole date: Wed Feb 03 11:59:46 2010 -0500 Encode new lines, carriage returns, and other special characters before sending them to Java side (de-coding code is already in effect on Java side). changeset 4d70695b8a8a in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=4d70695b8a8a author: Gary Benson date: Thu May 20 14:21:12 2010 +0100 Strip stupid options that llvm-config supplies 2010-02-12 Gary Benson * configure.ac: Strip stupid options that llvm-config supplies. changeset ad06363a6947 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=ad06363a6947 author: Andrew John Hughes date: Mon Feb 15 17:25:12 2010 +0000 Add class file rewriter which will be used to solve the Rhino issue: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=179 once hooked into the build. 2010-02-15 Andrew John Hughes * rewriter/agpl-3.0.txt, * rewriter/com/redhat/rewriter/ClassRewriter.java: Add class rewriter for fixing Rhino classes to use the com.sun.org.mozilla namespace, along with corresponding license. changeset da2bf06b20e0 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=da2bf06b20e0 author: Edward Nevill (ed at camswl.com) date: Thu May 20 14:28:33 2010 +0100 Support generation of native libraries for JCK on ARM. 2009-10-05 Edward Nevill * contrib/jck/compile-native-code.sh: Support for generation of native libraries for JCK on ARM changeset 6178ca4346ed in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=6178ca4346ed author: Gary Benson date: Tue Feb 16 15:54:50 2010 +0000 Add s390 support to TCK setup helper script 2010-02-16 Gary Benson * contrib/jck/compile-native-code.sh: Add s390. changeset c2fd9278967c in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=c2fd9278967c author: Xerxes R?nby date: Wed Feb 17 14:46:46 2010 +0100 Implemented Shark host CPU feature autotuner using LLVM 2.7 APIs. 2010-02-17 Xerxes R?nby * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp (SharkCompiler::SharkCompiler): Implement host CPU feature autotuner using LLVM 2.7 APIs. * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp: Define llvm/ADT/StringMap.h and llvm/System/Host.h depending on LLVM version. Allways define llvm/Support/CommandLine.h. changeset 8dc6e1ff8ccf in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=8dc6e1ff8ccf author: Andrew John Hughes date: Thu May 20 14:37:32 2010 +0100 Fix a number of issues and enable the Rhino rewriter in the build. 2010-02-17 Andrew John Hughes PR icedtea/179 * ChangeLog: Remove rogue whitespace highlighted by emacs. * Makefile.am: (REWRITER_SRCS): Sources for class file rewriter. Only set RHINO_JAR when WITH_RHINO is set. Point to rewritten JAR file in build directory. Add rewriter and license to EXTRA_DIST. Make icedtea, icedtea-debug and icedtea-boot depend on rewrite-rhino.stamp. (stamps/rewriter.stamp): Build the class file rewriter. (stamps/rewrite-rhino.stamp): Rewrite the system Rhino JAR file to use the sun.org.mozilla namespace to avoid conflicts. (rewriter): New alias for stamps/rewriter.stamp. (rewrite- rhino): Likewise for stamps/rewrite-rhino.stamp. * patches/icedtea-rhino.patch: Copy rather than symlink the JAR file. Only drop the internal suffix on the javascript package names. * rewriter/com/redhat/rewriter/ClassRewriter.java: (executor): Use a single threaded executor when debugging is enabled. (tasks): Store the Futures returned by the executor for later checking. (main(String[])): Log what happens when processFile returns and handle any exceptions using Futures. (call()): Ensure srcDir/destDir replacement always matches with a trailing slash to avoid odd rewrites. Loop directory creation to avoid possible race issues. Increase logging and fix a number of issues with the rewrite: * Fix off-by-one loop bug so final entry is inspected. * Handle double entries which occur with 8-byte entries (doubles and longs): http://java.sun.com/docs/books/jvms/sec ond_edition/html/ClassFile.doc.html#16628 diffstat: 16 files changed, 1719 insertions(+), 404 deletions(-) ChangeLog | 105 + Makefile.am | 62 - configure.ac | 37 contrib/jck/compile-native-code.sh | 6 patches/icedtea-rhino.patch | 20 plugin/icedteanp/IcedTeaNPPlugin.cc | 33 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 788 +++++++------- plugin/tests/LiveConnect/PluginTest.java | 11 plugin/tests/LiveConnect/common.js | 3 plugin/tests/LiveConnect/index.html | 2 plugin/tests/LiveConnect/jjs_eval_test.js | 57 + ports/hotspot/src/share/vm/shark/llvmHeaders.hpp | 7 ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 32 ports/hotspot/src/share/vm/shark/sharkContext.hpp | 6 rewriter/agpl-3.0.txt | 661 +++++++++++ rewriter/com/redhat/rewriter/ClassRewriter.java | 293 +++++ diffs (truncated from 2570 to 500 lines): diff -r 962e6e2b70f5 -r 8dc6e1ff8ccf ChangeLog --- a/ChangeLog Wed May 19 17:34:15 2010 +0100 +++ b/ChangeLog Thu May 20 14:37:32 2010 +0100 @@ -1,3 +1,108 @@ 2010-01-26 Andrew John Hughes + + PR icedtea/179 + * ChangeLog: Remove rogue whitespace highlighted + by emacs. + * Makefile.am: + (REWRITER_SRCS): Sources for class file rewriter. + Only set RHINO_JAR when WITH_RHINO is set. Point + to rewritten JAR file in build directory. Add + rewriter and license to EXTRA_DIST. Make icedtea, + icedtea-debug and icedtea-boot depend on rewrite-rhino.stamp. + (stamps/rewriter.stamp): Build the class file rewriter. + (stamps/rewrite-rhino.stamp): Rewrite the system Rhino JAR + file to use the sun.org.mozilla namespace to avoid conflicts. + (rewriter): New alias for stamps/rewriter.stamp. + (rewrite-rhino): Likewise for stamps/rewrite-rhino.stamp. + * patches/icedtea-rhino.patch: + Copy rather than symlink the JAR file. Only drop the + internal suffix on the javascript package names. + * rewriter/com/redhat/rewriter/ClassRewriter.java: + (executor): Use a single threaded executor when + debugging is enabled. + (tasks): Store the Futures returned by the executor + for later checking. + (main(String[])): Log what happens when processFile + returns and handle any exceptions using Futures. + (call()): Ensure srcDir/destDir replacement always + matches with a trailing slash to avoid odd rewrites. + Loop directory creation to avoid possible race issues. + Increase logging and fix a number of issues with the rewrite: + * Fix off-by-one loop bug so final entry is inspected. + * Handle double entries which occur with 8-byte entries + (doubles and longs): + http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html#16628 + +2010-02-17 Xerxes R??nby + + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp + (SharkCompiler::SharkCompiler): Implement host CPU feature + autotuner using LLVM 2.7 APIs. + * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp: + Define llvm/ADT/StringMap.h and llvm/System/Host.h + depending on LLVM version. + Allways define llvm/Support/CommandLine.h. + +2010-02-16 Gary Benson + + * contrib/jck/compile-native-code.sh: Add s390. + +2009-10-05 Edward Nevill + + * contrib/jck/compile-native-code.sh: + Support for generation of native libraries for JCK on ARM + +2010-02-15 Andrew John Hughes + + * rewriter/agpl-3.0.txt, + * rewriter/com/redhat/rewriter/ClassRewriter.java: + Add class rewriter for fixing Rhino classes + to use the com.sun.org.mozilla namespace, + along with corresponding license. + +2010-02-12 Gary Benson + + * configure.ac: Strip stupid options that llvm-config supplies. + +2010-02-03 Deepak Bhole + + * plugin/icedteanp/IcedTeaNPPlugin.cc + (plugin_create_applet_tag): Encode new lines, carriage returns, and other + special characters before sending them to Java side (de-coding code is + already in effect on Java side). + +2010-02-02 Deepak Bhole + + * plugin/tests/LiveConnect/PluginTest.java + (jjsEvalTest): New function. Calls JSObject.eval() with given string. + * plugin/tests/LiveConnect/common.js: Added eval test suite as one of the + run options. + * plugin/tests/LiveConnect/index.html: Same. + * plugin/tests/LiveConnect/jjs_eval_test.js: Eval tests. + +2010-02-02 Deepak Bhole + + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Re-designed frame + embedding code so that the applet is dynamically packed into given handle. + +2010-02-01 Xerxes R??nby + + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp + (SharkCompiler::SharkCompiler): Use sharkContext::module + instead of sharkContext::module_provider when using LLVM 2.7 + to handle LLVM r94686 API change. + * ports/hotspot/src/share/vm/shark/sharkContext.hpp + (sharkContext::module): Made public when using LLVM 2.7. + (sharkContext::module_provider): Undefine when using LLVM 2.7. + * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp + (llvm/ModuleProvider.h): Undefine when using LLVM 2.7. + +2010-05-19 Andrew John Hughes + + Patch splashscreen to build against libpng 1.4. + * Makefile.am: + Bump JDK changeset and SHA256 sum. + 2010-01-26 Andrew John Hughes * Makefile.am: diff -r 962e6e2b70f5 -r 8dc6e1ff8ccf Makefile.am --- a/Makefile.am Wed May 19 17:34:15 2010 +0100 +++ b/Makefile.am Thu May 20 14:37:32 2010 +0100 @@ -6,7 +6,7 @@ HOTSPOT_CHANGESET = 468593ef6b33 HOTSPOT_CHANGESET = 468593ef6b33 JAXP_CHANGESET = 826bafcb6c4a JAXWS_CHANGESET = 1661166c82dc -JDK_CHANGESET = 5d5ee1c92a1b +JDK_CHANGESET = 3d1a836736bf LANGTOOLS_CHANGESET = a0499f48ec96 OPENJDK_CHANGESET = 195fcceefddc @@ -14,7 +14,7 @@ HOTSPOT_SHA256SUM = fc3a387938c2e479ff71 HOTSPOT_SHA256SUM = fc3a387938c2e479ff71989d227baa655b8a68079a144f717081b40e15696cdb JAXP_SHA256SUM = 42d004e51a1f01d146ad230ce48996ddf8da3719fe571a41653f431d6b2e8a7b JAXWS_SHA256SUM = 4523909cd46fd61b5c6670bf932099d5899236a37a4058e7b2bcb855e503a0e4 -JDK_SHA256SUM = 5f6035185d862b36e0cb7ca4f5d5f7160914681dfcb33900fac45db1c439668e +JDK_SHA256SUM = 637372a089a1d50dc85d098e8b897d01e001730dd0ed94a6d347243272dedeeb LANGTOOLS_SHA256SUM = 96f6be5d89195353f55ef775e0dec9bd9a5da7f869aba6ed428e4a2cac806991 OPENJDK_SHA256SUM = 93c536e6bc4e962050a00321e88e694fc4e0000e2ad887b8de22830bfda2649f @@ -258,6 +258,8 @@ OPENJDK_BOOT_TREE = stamps/patch-boot.st PLUGIN_TEST_SRCS = $(abs_top_srcdir)/plugin/tests/LiveConnect/*.java +REWRITER_SRCS = $(abs_top_srcdir)/rewriter/com/redhat/rewriter/ClassRewriter.java + # Patch list ICEDTEA_PATCHES = \ @@ -507,7 +509,6 @@ ICEDTEA_ENV = \ JDK_HOME="" \ QUIETLY="" \ ANT_RESPECT_JAVA_HOME="TRUE" \ - RHINO_JAR="$(RHINO_JAR)" \ DISTRIBUTION_ID="$(DIST_ID)" \ DERIVATIVE_ID="$(ICEDTEA_NAME) $(PACKAGE_VERSION)$(ICEDTEA_REV)" \ ALT_JIBX_LIBS_PATH="$(JIBX_DEPS_DIR)" \ @@ -542,6 +543,11 @@ if HAS_HOTSPOT_REVISION if HAS_HOTSPOT_REVISION ICEDTEA_ENV += \ HOTSPOT_BUILD_VERSION="$(HOTSPOT_REVISION)" +endif + +if WITH_RHINO +ICEDTEA_ENV += \ + RHINO_JAR="$(abs_top_builddir)/rhino/rhino.jar" endif # OpenJDK boot build environment. @@ -729,7 +735,9 @@ EXTRA_DIST = $(GENERATED_FILES) $(top_sr tapset/hotspot.stp.in \ tapset/hotspot_jni.stp.in \ scripts/jni_create_stap.c \ - scripts/jni_desc + scripts/jni_desc \ + rewriter/agpl-3.0.txt \ + $(REWRITER_SRCS) # Top-Level Targets # ================= @@ -1781,7 +1789,8 @@ stamps/icedtea.stamp: stamps/bootstrap-d stamps/icedtea.stamp: stamps/bootstrap-directory-symlink-stage2.stamp \ stamps/download.stamp stamps/extract.stamp $(OPENJDK_TREE) \ stamps/plugin.stamp $(JNLP_ABOUT_TARGET) stamps/cacao.stamp \ - stamps/netx-dist.stamp stamps/liveconnect-dist.stamp stamps/pulse-java.stamp + stamps/netx-dist.stamp stamps/liveconnect-dist.stamp stamps/pulse-java.stamp \ + stamps/rewrite-rhino.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV) \ -C openjdk/ \ @@ -1864,7 +1873,8 @@ stamps/icedtea-debug.stamp: stamps/boots stamps/icedtea-debug.stamp: stamps/bootstrap-directory-symlink-stage2.stamp \ stamps/download.stamp stamps/extract.stamp $(OPENJDK_TREE) \ stamps/plugin.stamp $(JNLP_ABOUT_TARGET) stamps/cacao.stamp \ - stamps/netx-dist.stamp stamps/liveconnect-dist.stamp stamps/pulse-java.stamp + stamps/netx-dist.stamp stamps/liveconnect-dist.stamp stamps/pulse-java.stamp \ + stamps/rewrite-rhino.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV) \ -C openjdk/ \ @@ -1975,7 +1985,8 @@ clean-icedtea-debug-stage2: stamps/icedtea-boot.stamp: stamps/bootstrap-directory-symlink-stage1.stamp \ stamps/download.stamp $(OPENJDK_BOOT_TREE) stamps/plugs.stamp \ - stamps/netx-dist.stamp stamps/liveconnect-dist.stamp stamps/cacao.stamp + stamps/netx-dist.stamp stamps/liveconnect-dist.stamp stamps/cacao.stamp \ + stamps/rewrite-rhino.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV_BOOT) \ -C openjdk-boot \ @@ -2269,6 +2280,39 @@ endif rm -f stamps/pulse-java*.stamp # end of pulse-java + +# Rhino support + +stamps/rewriter.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) +if WITH_RHINO + (cd $(abs_top_srcdir)/rewriter ; \ + $(ICEDTEA_BOOT_DIR)/bin/javac -g \ + -d $(abs_top_builddir)/rewriter $(REWRITER_SRCS) \ + ) +endif + mkdir -p stamps + touch stamps/rewriter.stamp + +stamps/rewrite-rhino.stamp: stamps/rewriter.stamp $(RHINO_JAR) +if WITH_RHINO + mkdir -p rhino/rhino.{old,new} + (cd rhino/rhino.old ; jar xf $(RHINO_JAR)) + $(ICEDTEA_BOOT_DIR)/bin/java -cp $(abs_top_builddir)/rewriter \ + com.redhat.rewriter.ClassRewriter \ + $(abs_top_builddir)/rhino/rhino.old $(abs_top_builddir)/rhino/rhino.new \ + org.mozilla sun.org.mozilla + (cd rhino/rhino.old ; \ + for files in `find -type f -not -name '*.class'` ; do \ + new_file=../rhino.new/`echo $$files|sed -e 's#org#sun/org#'` ; \ + mkdir -p `dirname $$new_file` ; \ + cp -v $$files $$new_file ; \ + sed -ie 's#org\.mozilla#sun.org.mozilla#g' $$new_file ; \ + done \ + ) + (cd rhino/rhino.new ; jar cfm ../rhino.jar META-INF/MANIFEST.MF sun ) +endif + mkdir -p stamps + touch stamps/rewrite-rhino.stamp # VisualVM @@ -2785,6 +2829,10 @@ plugin: stamps/plugin.stamp plugin-tests: stamps/plugin-tests.stamp +rewriter: stamps/rewriter.stamp + +rewrite-rhino: stamps/rewrite-rhino.stamp + plugs: stamps/plugs.stamp pulse-java: stamps/pulse-java.stamp diff -r 962e6e2b70f5 -r 8dc6e1ff8ccf configure.ac --- a/configure.ac Wed May 19 17:34:15 2010 +0100 +++ b/configure.ac Thu May 20 14:37:32 2010 +0100 @@ -447,12 +447,39 @@ if test "x${SHARK_BUILD_TRUE}" = x || te if test "x${SHARK_BUILD_TRUE}" = x || test "x${ADD_SHARK_BUILD_TRUE}" = x; then FIND_TOOL([LLVM_CONFIG], [llvm-config]) llvm_components="engine nativecodegen" - LLVM_CFLAGS=`$LLVM_CONFIG --cflags $llvm_components | \ - sed -e 's/-O.//g' | sed -e 's/-fomit-frame-pointer//g' | \ - sed -e 's/-pedantic//g' | sed -e 's/-D_DEBUG//g'` + dnl LLVM_CFLAGS + LLVM_CFLAGS= + for flag in $($LLVM_CONFIG --cxxflags $llvm_components); do + if echo "$flag" | grep -q '^-[[ID]]'; then + if test "$flag" != "-D_DEBUG"; then + if test "x$LLVM_CFLAGS" != "x"; then + LLVM_CFLAGS="$LLVM_CFLAGS " + fi + LLVM_CFLAGS="$LLVM_CFLAGS$flag" + fi + fi + done + dnl LLVM_LDFLAGS + LLVM_LDFLAGS= + for flag in $($LLVM_CONFIG --ldflags $llvm_components); do + if echo "$flag" | grep -q '^-L'; then + if test "x$LLVM_LDFLAGS" != "x"; then + LLVM_LDFLAGS="$LLVM_LDFLAGS " + fi + LLVM_LDFLAGS="$LLVM_LDFLAGS$flag" + fi + done + dnl LLVM_LIBS + LLVM_LIBS= + for flag in $($LLVM_CONFIG --libs $llvm_components); do + if echo "$flag" | grep -q '^-l'; then + if test "x$LLVM_LIBS" != "x"; then + LLVM_LIBS="$LLVM_LIBS " + fi + LLVM_LIBS="$LLVM_LIBS$flag" + fi + done LLVM_CFLAGS="$LLVM_CFLAGS -DSHARK_LLVM_VERSION=`$LLVM_CONFIG --version | sed 's/\.//;s/svn.*//'`" - LLVM_LDFLAGS=`$LLVM_CONFIG --ldflags $llvm_components` - LLVM_LIBS=`$LLVM_CONFIG --libs $llvm_components` fi AC_SUBST(LLVM_CFLAGS) AC_SUBST(LLVM_LDFLAGS) diff -r 962e6e2b70f5 -r 8dc6e1ff8ccf contrib/jck/compile-native-code.sh --- a/contrib/jck/compile-native-code.sh Wed May 19 17:34:15 2010 +0100 +++ b/contrib/jck/compile-native-code.sh Thu May 20 14:37:32 2010 +0100 @@ -19,6 +19,12 @@ fi arch=$(uname -m) case "$arch" in + arm*) + MFLAG= + ;; + s390) + MFLAG=-m31 + ;; i?86|ppc) MFLAG=-m32 ;; diff -r 962e6e2b70f5 -r 8dc6e1ff8ccf patches/icedtea-rhino.patch --- a/patches/icedtea-rhino.patch Wed May 19 17:34:15 2010 +0100 +++ b/patches/icedtea-rhino.patch Thu May 20 14:37:32 2010 +0100 @@ -54,7 +54,7 @@ diff -Nru openjdk.orig/jdk/make/common/R $(CP) $(RT_JAR) $(JRE_IMAGE_DIR)/lib/rt.jar $(CP) $(RESOURCES_JAR) $(JRE_IMAGE_DIR)/lib/resources.jar $(CP) $(JSSE_JAR) $(JRE_IMAGE_DIR)/lib/jsse.jar -+ $(LN) -sf $(RHINO_JAR) $(JRE_IMAGE_DIR)/lib/rhino.jar ++ $(CP) $(RHINO_JAR) $(JRE_IMAGE_DIR)/lib/rhino.jar @# Generate meta-index to make boot and extension class loaders lazier $(CD) $(JRE_IMAGE_DIR)/lib && \ $(BOOT_JAVA_CMD) -jar $(BUILDMETAINDEX_JARFILE) \ @@ -66,7 +66,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla package com.sun.script.javascript; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; import javax.script.*; import java.util.*; @@ -78,7 +78,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla import javax.script.Invocable; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; /** * This class implements Rhino-like JavaAdapter to help implement a Java @@ -90,7 +90,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla package com.sun.script.javascript; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; import java.util.*; /** @@ -102,7 +102,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla import java.util.*; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; /** * This class prevents script access to certain sensitive classes. @@ -114,7 +114,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla package com.sun.script.javascript; import javax.script.*; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; /** * Represents compiled JavaScript code. @@ -126,7 +126,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla import javax.script.*; import java.util.*; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; import com.sun.script.util.*; /** @@ -138,7 +138,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla import com.sun.script.util.*; import javax.script.*; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; import java.lang.reflect.Method; import java.io.*; import java.util.*; @@ -150,7 +150,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla package com.sun.script.javascript; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; import javax.script.*; /** @@ -162,7 +162,7 @@ diff -Nru openjdk.orig/jdk/src/share/cla import java.lang.reflect.*; import static sun.security.util.SecurityConstants.*; -import sun.org.mozilla.javascript.internal.*; -+import org.mozilla.javascript.*; ++import sun.org.mozilla.javascript.*; /** * This wrap factory is used for security reasons. JSR 223 script diff -r 962e6e2b70f5 -r 8dc6e1ff8ccf plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Wed May 19 17:34:15 2010 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Thu May 20 14:37:32 2010 +0100 @@ -1575,13 +1575,40 @@ plugin_create_applet_tag (int16_t argc, // characters will pass through the pipe. if (argv[i] != '\0') { - gchar* escaped = NULL; + // worst case scenario -> all characters are newlines or + // returns, each of which translates to 5 substitutions + char* escaped = (char*) calloc(((strlen(argv[i])*5)+1), sizeof(char)); - escaped = g_strescape (argv[i], NULL); + strcpy(escaped, ""); + for (int j=0; j < strlen(argv[i]); j++) + { + if (argv[i][j] == '\r') + strcat(escaped, " "); + else if (argv[i][j] == '\n') + strcat(escaped, " "); + else if (argv[i][j] == '>') + strcat(escaped, ">"); + else if (argv[i][j] == '<') + strcat(escaped, "<"); + else if (argv[i][j] == '&') + strcat(escaped, "&"); + else + { + char* orig_char = (char*) calloc(2, sizeof(char)); + orig_char[0] = argv[i][j]; + orig_char[1] = '\0'; + + strcat(escaped, orig_char); + + free(orig_char); + orig_char = NULL; + } + } + parameters = g_strconcat (parameters, "", NULL); - g_free (escaped); + free (escaped); escaped = NULL; } } diff -r 962e6e2b70f5 -r 8dc6e1ff8ccf plugin/icedteanp/java/sun/applet/PluginAppletViewer.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Wed May 19 17:34:15 2010 +0100 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Thu May 20 14:37:32 2010 +0100 @@ -91,6 +91,7 @@ import java.net.URI; import java.net.URI; import java.net.URL; import java.security.AccessController; +import java.security.AllPermission; import java.security.PrivilegedAction; import java.util.Enumeration; import java.util.HashMap; @@ -114,18 +115,199 @@ import com.sun.jndi.toolkit.url.UrlUtil; * Lets us construct one using unix-style one shot behaviors */ - class PluginAppletViewerFactory + class PluginAppletPanelFactory { - public PluginAppletViewer createAppletViewer(int identifier, - long handle, int x, int y, - URL doc, Hashtable atts) { - PluginAppletViewer pluginappletviewer = new PluginAppletViewer(identifier, handle, x, y, doc, atts, System.out, this); - return pluginappletviewer; + + public AppletPanel createPanel(PluginStreamHandler streamhandler, + int identifier, + long handle, int x, int y, + final URL doc, final Hashtable atts) { + + AppletViewerPanel panel = (AppletViewerPanel) AccessController.doPrivileged(new PrivilegedAction() { + public Object run() { + try { + AppletPanel panel = new NetxPanel(doc, atts, false); + AppletViewerPanel.debug("Using NetX panel"); + PluginDebug.debug(atts.toString()); + return panel; + } catch (Exception ex) { + AppletViewerPanel.debug("Unable to start NetX applet - defaulting to Sun applet", ex); + return new AppletViewerPanel(doc, atts); + } + } + }); From gbenson at icedtea.classpath.org Thu May 20 07:15:23 2010 From: gbenson at icedtea.classpath.org (gbenson at icedtea.classpath.org) Date: Thu, 20 May 2010 14:15:23 +0000 Subject: /hg/icedtea6: Move InlineSmallCode (sorry everyone!) Message-ID: changeset caa91bae0c5c in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=caa91bae0c5c author: Gary Benson date: Thu May 20 10:15:11 2010 -0400 Move InlineSmallCode (sorry everyone!) diffstat: 3 files changed, 9 insertions(+), 3 deletions(-) ChangeLog | 7 +++++++ ports/hotspot/src/cpu/zero/vm/globals_zero.hpp | 2 ++ ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 3 --- diffs (36 lines): diff -r c8cdcd3a1f01 -r caa91bae0c5c ChangeLog --- a/ChangeLog Thu May 20 12:40:31 2010 +0100 +++ b/ChangeLog Thu May 20 10:15:11 2010 -0400 @@ -1,3 +1,10 @@ 2010-05-20 Gary Benson + + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp + (InlineSmallCode): Moved from here... + * ports/hotspot/src/cpu/zero/vm/globals_zero.hpp + (InlineSmallCode): ...to here. + 2010-05-20 Gary Benson PR icedtea/494 diff -r c8cdcd3a1f01 -r caa91bae0c5c ports/hotspot/src/cpu/zero/vm/globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/globals_zero.hpp Thu May 20 12:40:31 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/globals_zero.hpp Thu May 20 10:15:11 2010 -0400 @@ -45,3 +45,5 @@ define_pd_global(intx, StackShadowPages define_pd_global(bool, RewriteBytecodes, true); define_pd_global(bool, RewriteFrequentPairs, true); + +define_pd_global(intx, InlineSmallCode, 1000); diff -r c8cdcd3a1f01 -r caa91bae0c5c ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Thu May 20 12:40:31 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Thu May 20 10:15:11 2010 -0400 @@ -47,9 +47,6 @@ define_pd_global(intx, Tier4BackEdge define_pd_global(intx, OnStackReplacePercentage, 933 ); define_pd_global(intx, FreqInlineSize, 325 ); -#ifdef SHARK -define_pd_global(intx, InlineSmallCode, 1000 ); -#endif // SHARK define_pd_global(intx, NewRatio, 12 ); define_pd_global(intx, NewSizeThreadIncrease, 4*K ); define_pd_global(intx, InitialCodeCacheSize, 160*K); From bugzilla-daemon at icedtea.classpath.org Fri May 21 01:24:41 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 21 May 2010 08:24:41 +0000 Subject: [Bug 484] Shark jit code block "0xcdcdcdcd" zombie wipeout Sigsegv crash Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=484 ------- Comment #7 from xerxes at zafena.se 2010-05-21 08:24 ------- *** Bug 457 has been marked as a duplicate of this bug. *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Fri May 21 01:24:40 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 21 May 2010 08:24:40 +0000 Subject: [Bug 457] Shark ExceptionInInitializerError when using low -XX:CompileThreshold -Xbatch and -jar Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=457 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |DUPLICATE Target Milestone|--- |6-1.9 ------- Comment #1 from xerxes at zafena.se 2010-05-21 08:24 ------- Should be fixed with: http://icedtea.classpath.org/hg/icedtea6/rev/c8cdcd3a1f01 Thanks Gary! *** This bug has been marked as a duplicate of bug 484 *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Fri May 21 01:26:59 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 21 May 2010 08:26:59 +0000 Subject: [Bug 457] Shark ExceptionInInitializerError when using low -XX:CompileThreshold -Xbatch and -jar Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=457 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |REOPENED Resolution|DUPLICATE | ------- Comment #2 from xerxes at zafena.se 2010-05-21 08:26 ------- (In reply to comment #1) > Should be fixed with: > http://icedtea.classpath.org/hg/icedtea6/rev/c8cdcd3a1f01 > > Thanks Gary! > > *** This bug has been marked as a duplicate of bug 484 *** > Sorry i made a typo, this bug are a duplicate for 494.. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Fri May 21 01:28:22 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 21 May 2010 08:28:22 +0000 Subject: [Bug 457] Shark ExceptionInInitializerError when using low -XX:CompileThreshold -Xbatch and -jar Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=457 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- Status|REOPENED |RESOLVED Resolution| |DUPLICATE ------- Comment #3 from xerxes at zafena.se 2010-05-21 08:28 ------- now properly closing as a duplicate of 494 *** This bug has been marked as a duplicate of bug 494 *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Fri May 21 01:28:22 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 21 May 2010 08:28:22 +0000 Subject: [Bug 494] Shark fails to catch Exception using catch (Throwable e) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=494 ------- Comment #2 from xerxes at zafena.se 2010-05-21 08:28 ------- *** Bug 457 has been marked as a duplicate of this bug. *** -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Fri May 21 07:43:27 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 21 May 2010 14:43:27 +0000 Subject: [Bug 498] New: Shark sigsegv in new exception handler code regression Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=498 Summary: Shark sigsegv in new exception handler code regression Product: IcedTea Version: 6-hg Platform: all OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Shark AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se testcase: cd openjdk/jdk/test/java/nio/channels/Selector javac RegAfterPreClose.java java RegAfterPreClose this are a regression introduced with: http://icedtea.classpath.org/hg/icedtea6/rev/c8cdcd3a1f01 xerxes at xerxes-J464X:~/icedtea6-shark/openjdk/jdk/test/java/nio/channels/Selector$ gdb -args /home/xerxes/icedtea6-shark/openjdk/build/linux-i586/j2sdk-image/bin/java RegAfterPreClose GNU gdb (GDB) 7.1-ubuntu Copyright (C) 2010 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i486-linux-gnu". For bug reporting instructions, please see: ... Reading symbols from /home/xerxes/icedtea6-shark/openjdk/build/linux-i586/j2sdk-image/bin/java...done. (gdb) run Starting program: /home/xerxes/icedtea6-shark/openjdk/build/linux-i586/j2sdk-image/bin/java RegAfterPreClose [Thread debugging using libthread_db enabled] process 22827 is executing new program: /home/xerxes/icedtea6-shark/openjdk/build/linux-i586/j2sdk-image/bin/java [Thread debugging using libthread_db enabled] [New Thread 0xb7fe5b70 (LWP 23484)] [New Thread 0x91a2cb70 (LWP 23485)] [New Thread 0x919abb70 (LWP 23486)] [New Thread 0x916ffb70 (LWP 23487)] [New Thread 0x9153fb70 (LWP 23496)] [New Thread 0x913beb70 (LWP 23497)] [New Thread 0x9133db70 (LWP 23498)] [New Thread 0x911bcb70 (LWP 23499)] [New Thread 0x9113bb70 (LWP 23507)] [New Thread 0x90fbab70 (LWP 23589)] [New Thread 0x90e39b70 (LWP 23592)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 0x913beb70 (LWP 23497)] SharkTopLevelBlock::handle_exception (this=0x81233b0, exception=0x8474994, action=) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp:532 532 builder()->CreateBr(handler->entry_block()); (gdb) bt #0 SharkTopLevelBlock::handle_exception (this=0x81233b0, exception=0x8474994, action=) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp:532 #1 0x005a4cb7 in SharkTopLevelBlock::zero_check_value (this=0x81233b0, value=0x917117b8, continue_block=0x84c4448) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp:383 #2 0x005a4fa0 in SharkTopLevelBlock::do_zero_check (this=0x81233b0, value=0x917117b8) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp:309 #3 0x005a94ec in SharkBlock::zero_check (this=0x81233b0) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBlock.hpp:174 #4 SharkBlock::check_null (this=0x81233b0) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBlock.hpp:166 #5 SharkTopLevelBlock::do_call (this=0x81233b0) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp:1260 #6 0x0058146b in SharkBlock::parse_bytecode (this=0x81233b0, start=218, limit=236) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkBlock.cpp:828 #7 0x005a12f1 in SharkTopLevelBlock::emit_IR (this=0x81233b0) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp:283 #8 0x0058fc6e in SharkFunction::initialize (this=0x913bdcb0, name=0x8107130 "sun.nio.ch.ServerSocketChannelImpl::accept") at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkFunction.cpp:122 #9 0x0058c8ff in SharkFunction (this=0x80d5e00, env=0x913bddec, target=0x810a368, entry_bci=-1) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkFunction.hpp:46 #10 SharkFunction::build (this=0x80d5e00, env=0x913bddec, target=0x810a368, entry_bci=-1) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkFunction.hpp:37 #11 SharkCompiler::compile_method (this=0x80d5e00, env=0x913bddec, target=0x810a368, entry_bci=-1) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/shark/sharkCompiler.cpp:166 #12 0x00381797 in CompileBroker::invoke_compiler_on_method (task=0x9170f128) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp:1551 #13 0x00381e5e in CompileBroker::compiler_thread_loop () at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/compiler/compileBroker.cpp:1397 #14 0x005c9517 in compiler_thread_entry (thread=0x8106ed8, __the_thread__=0x8106ed8) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/runtime/thread.cpp:2745 #15 0x005ce186 in JavaThread::thread_main_inner (this=0x8106ed8) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/runtime/thread.cpp:1381 #16 0x005ce250 in JavaThread::run (this=0x8106ed8) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/share/vm/runtime/thread.cpp:1365 #17 0x0052c3af in java_start (thread=0x8106ed8) at /home/xerxes/icedtea6-shark/openjdk/hotspot/src/os/linux/vm/os_linux.cpp:785 #18 0x0014796e in start_thread (arg=0x913beb70) at pthread_create.c:300 #19 0x00232a0e in clone () at ../sysdeps/unix/sysv/linux/i386/clone.S:130 (gdb) (gdb) list 527 // Install the catch-all handler, if present 528 if (has_catch_all) { 529 SharkTopLevelBlock* handler = this->exception(num_options); 530 assert(handler != NULL, "catch-all handler cannot be unloaded"); 531 532 builder()->CreateBr(handler->entry_block()); 533 handler->add_incoming(current_state()); 534 return; 535 } 536 } (gdb) p handler $1 = (SharkTopLevelBlock *) 0x0 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Sat May 22 08:40:25 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 22 May 2010 15:40:25 +0000 Subject: [Bug 406] IcedTeaPlugin.so fails to load processing created applets. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=406 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dbhole at redhat.com Status|RESOLVED |REOPENED Component|Plugin |NPPlugin Platform|x86 |all Resolution|FIXED | Version|unspecified |6-hg ------- Comment #3 from xerxes at zafena.se 2010-05-22 15:40 ------- The NPPlugin have stopped being able to load processing created applets. This are a regressing since it have been working after the first fix. Testcase: http://www.openprocessing.org/visuals/?visualID=9671 Firefox output: java version "1.6.0_19" OpenJDK Runtime Environment (IcedTea6 1.9pre+rcaa91bae0c5c) (Ubuntu build 1.6.0_19-b19) OpenJDK Shark VM (build 16.0-b13, mixed mode) java.lang.RuntimeException: You need to use "Import Library" to add processing.core.PGraphicsJava2D to your sketch. at processing.core.PApplet.makeGraphics(PApplet.java:1349) at processing.core.PApplet.init(PApplet.java:711) at sun.applet.AppletPanel.run(AppletPanel.java:436) at java.lang.Thread.run(Thread.java:636) applet fails to load. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Sat May 22 08:46:07 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sat, 22 May 2010 15:46:07 +0000 Subject: [Bug 406] IcedTeaPlugin.so fails to load processing created applets. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=406 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|dbhole at redhat.com |.org | Status|REOPENED |NEW ------- Comment #4 from xerxes at zafena.se 2010-05-22 15:46 ------- tested testcases using: File name: IcedTeaPlugin.so The IcedTea NPR Web Browser Plugin (using IcedTea6 1.9pre+rcaa91bae0c5c) executes Java applets. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Sun May 23 15:52:55 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Sun, 23 May 2010 22:52:55 +0000 Subject: [Bug 499] New: Eclipse crash due to error in Java Runtime Environment Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=499 Summary: Eclipse crash due to error in Java Runtime Environment Product: IcedTea Version: 6-1.0 Platform: 32-bit OS/Version: Linux Status: NEW Severity: critical Priority: P2 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: puns.iitg at gmail.com Hi Everyone, I am using opensuse 11.2 and downloaded flex builder alpha version recently. Whenever i try to click upon the help information (eclipse->window->view->other->help->help , for example: Help information on button API) , the eclipse crashes providing me with an error as follows: # A fatal error has been detected by the Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x9c160077, pid=9028, tid=3065317152 # # JRE version: 6.0_17-b17 # Java VM: OpenJDK Client VM (14.0-b16 mixed mode linux-x86 ) # Derivative: IcedTea6 1.7.3 # Distribution: Custom build (Mon Apr 12 15:02:03 UTC 2010) # Problematic frame: # C [libxul.so+0xa9a077] # # An error report file with more information is saved as: # /root/hs_err_pid9028.log # # If you would like to submit a bug report, please include # instructions how to reproduce the bug and visit: # http://icedtea.classpath.org/bugzilla # I am using java-1_6_0-openjdk (java sdk based on openjdk 6 and icedtea). Seems like java is having some issues which i am unable to resolve. Can anyone please help me out ? Thanks, Puneet. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 24 01:50:30 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 24 May 2010 08:50:30 +0000 Subject: [Bug 500] New: Shark on ARM Math.log incosistent results Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=500 Summary: Shark on ARM Math.log incosistent results Product: IcedTea Version: 6-hg Platform: arm OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: Shark AssignedTo: unassigned at icedtea.classpath.org ReportedBy: xerxes at zafena.se testcase: cd openjdk/hotspot/compiler/6539464 javac Test.java java -Xcomp -XX:CompileOnly=Test.main Test output: Exception in thread "main" java.lang.InternalError: Math.log produces inconsistent results: 9.752490228984199 != 9.7524902289842 at Test.main(Test.java:40) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 24 02:16:23 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 24 May 2010 09:16:23 +0000 Subject: [Bug 500] Shark on ARM Math.log incosistent results Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=500 ------- Comment #1 from xerxes at zafena.se 2010-05-24 09:16 ------- I tweaked the testcase to print the hexadecimal form of the generated results using Double.toHexString() : public class Test { static double log_value = 17197; static double log_result = Math.log(log_value); public static void main(String[] args) throws Exception { for (int i = 0; i < 1000000; i++) { double log_result2 = Math.log(log_value); if (log_result2 != log_result) { System.out.println("javac: "+Double.toHexString(log_result)+" jit: "+Double.toHexString(log_result2)); throw new InternalError("Math.log produces inconsistent results: " + log_result2 + " != " + log_result); } } } } outputs: $ java -Xcomp -XX:CompileOnly=Test.main Test javac: 0x1.38146663817e8p3 jit: 0x1.38146663817e7p3 Exception in thread "main" java.lang.InternalError: Math.log produces inconsistent results: 9.752490228984199 != 9.7524902289842 -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 24 03:18:52 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 24 May 2010 10:18:52 +0000 Subject: [Bug 499] Eclipse crash due to error in Java Runtime Environment Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=499 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- Severity|critical |normal ------- Comment #1 from xerxes at zafena.se 2010-05-24 10:18 ------- Hi Your crash log indicates a problem with the installed xulrunner library on your system: # Problematic frame: # C [libxul.so+0xa9a077] This are not a problem with the Java JVM and are not related to Icedtea at all since Icedtea do not use or call libxul.so directly, but Eclipse does call libxul.so through JNI so this bug are a eclipse/xulrunner bug! By browsing the eclipse bugzilla there seems to exist workarounds for libxul.so crashes by letting eclipse use a newer version of libxul.so than comes bundled with the system. https://bugs.eclipse.org/bugs/show_bug.cgi?id=236724#c22 Do the exlipse workaround work for you? -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Mon May 24 03:30:00 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 24 May 2010 10:30:00 +0000 Subject: [Bug 499] Eclipse crash due to error in Java Runtime Environment Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=499 ------- Comment #2 from xerxes at zafena.se 2010-05-24 10:29 ------- Also this eclipse bug might be helpfull for you to stop eclipse from crashing https://bugs.eclipse.org/bugs/show_bug.cgi?id=220403#c1 " Just in case it is useful for anyone, a possible workaround if you don't need the Embedded Web Browseris to set the Java variable "org.eclipse.swt.browser.XULRunnerPath" to /dev/null prevents Eclipse from loading the xulrunner library (libxul.so) and stop crashing. " -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From xerxes at zafena.se Mon May 24 05:55:02 2010 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Mon, 24 May 2010 14:55:02 +0200 Subject: Math.log(17197) produces inconsistent results between javac, jit, Math and StrictMath on various architectures. Message-ID: <4BFA7726.1030506@zafena.se> Hi Im hoping to find someone who can enlighten me how to resolve a bug where some hotspot JITs fails the hotspot/test/compiler/6539464 jtreg regression test. The testcase looks like: public class Test { static double log_value = 17197; static double log_result = Math.log(log_value); public static void main(String[] args) throws Exception { for (int i = 0; i < 1000000; i++) { double log_result2 = Math.log(log_value); if (log_result2 != log_result) { throw new InternalError("Math.log produces inconsistent results: " + log_result2 + " != " + log_result); } } } } When running this testcase using various jvms / architectures i get varying results of the calculated log_result2 and log_result which ARCH+JVM combination log_result (javac) log_result2 (jit) passes regression test? ia32+OpenJDK Server VM (build 14.0-b16, mixed mode) 9.752490228984199 9.752490228984199 yes arm+OpenJDK Shark VM (build 16.0-b13, mixed mode) 9.75249022898412 9.752490228984199 no x86_64+OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) 9.75249022898412 9.752490228984199 no While trying to figure out whats the correct result for the log(17197) calculation i tested what StrictMath.log outputs: StrictMath.log(17197) = 9.75249022898412 And in order to get an independent mathematically correct opinion of what log(17197) equals i asked wolfram alpha: http://www.wolframalpha.com/input/?i=log%2817197%29 log(17197) = 9.7524902289841994797298917760120602447583441794533189705223... or in short 9.752490228984199 So we have a situation where javac, jit, Math and StrictMath generates inconsistent results. How do we resolve this situation? Quoting the Math package java doc: "If a method always has an error less than 0.5 ulps, the method always returns the floating-point number nearest the exact result; such a method is correctly rounded. A correctly rounded method is generally the best a floating-point approximation can be; however, it is impractical for many floating-point methods to be correctly rounded. Instead, for the Math class, a larger error bound of 1 or 2 ulps is allowed for certain methods" Would this quotation imply that both log(17197) calculation results above are correct ( 9.752490228984199 and 9.75249022898412 )? If both calculations are correct then I propose that we should change the hotspot/test/compiler/6539464 jtreg regression test to make all JVM's pass the test when they are within +- 1 ulps from the mathematically correct answer of: 9.7524902289841994797298917760120602447583441794533189705223... Cheers and have a great day! Xerxes From ahughes at redhat.com Mon May 24 06:44:59 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Mon, 24 May 2010 14:44:59 +0100 Subject: Math.log(17197) produces inconsistent results between javac, jit, Math and StrictMath on various architectures. In-Reply-To: <4BFA7726.1030506@zafena.se> References: <4BFA7726.1030506@zafena.se> Message-ID: On 24 May 2010 13:55, Xerxes R?nby wrote: > Hi > > Im hoping to find someone who can enlighten me how to resolve a bug > where some hotspot JITs > fails the hotspot/test/compiler/6539464 jtreg regression test. > > The testcase looks like: > > public class Test { > ? ?static double log_value = 17197; > ? ?static double log_result = Math.log(log_value); > > ? ?public static void main(String[] args) throws Exception { > ? ? ? ?for (int i = 0; i < 1000000; i++) { > ? ? ? ? ? ?double log_result2 = Math.log(log_value); > ? ? ? ? ? ?if (log_result2 != log_result) { > ? ? ? ? ? ? ? ?throw new InternalError("Math.log produces inconsistent results: " + log_result2 + " != " + log_result); > ? ? ? ? ? ?} > ? ? ? ?} > ? ?} > } > > When running this testcase using various jvms / architectures i get varying results of the calculated log_result2 and log_result which > > ARCH+JVM combination ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? log_result (javac) ? ? ?log_result2 (jit) ? ? ? passes regression test? > ia32+OpenJDK Server VM (build 14.0-b16, mixed mode) ? ? ? ? ?9.752490228984199 ? ? ? 9.752490228984199 ? ? ? yes > arm+OpenJDK Shark VM (build 16.0-b13, mixed mode) ? ? ? ? ? ?9.75249022898412 ? ? ? ?9.752490228984199 ? ? ? no > x86_64+OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) 9.75249022898412 ? ? ? ?9.752490228984199 ? ? ? no > > While trying to figure out whats the correct result for the log(17197) calculation i tested what StrictMath.log outputs: > StrictMath.log(17197) = 9.75249022898412 > > And in order to get an independent mathematically correct opinion of what log(17197) equals i asked wolfram alpha: > http://www.wolframalpha.com/input/?i=log%2817197%29 > log(17197) = 9.7524902289841994797298917760120602447583441794533189705223... > or in short 9.752490228984199 > > So we have a situation where javac, jit, Math and StrictMath generates inconsistent results. > How do we resolve this situation? > > Quoting the Math package java doc: > "If a method always has an error less than 0.5 ulps, the method always > ?returns the floating-point number nearest the exact result; such a > ?method is correctly rounded. ?A correctly rounded method is > ?generally the best a floating-point approximation can be; however, > ?it is impractical for many floating-point methods to be correctly > ?rounded. ?Instead, for the Math class, a larger error > ?bound of 1 or 2 ulps is allowed for certain methods" > > Would this quotation imply that both log(17197) calculation results above are correct ( 9.752490228984199 and 9.75249022898412 )? > If both calculations are correct then I propose that we should change the hotspot/test/compiler/6539464 jtreg regression test to make all > JVM's pass the test when they are within +- 1 ulps from the mathematically correct answer of: > 9.7524902289841994797298917760120602447583441794533189705223... > > Cheers and have a great day! > Xerxes > > Do x86 and x86_64 give the same results if you actually use the same version of HotSpot as you do on ARM? -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From xerxes at zafena.se Mon May 24 07:55:03 2010 From: xerxes at zafena.se (=?UTF-8?B?WGVyeGVzIFLDpW5ieQ==?=) Date: Mon, 24 May 2010 16:55:03 +0200 Subject: Math.log(17197) produces inconsistent results between javac, jit, Math and StrictMath on various architectures. In-Reply-To: References: <4BFA7726.1030506@zafena.se> Message-ID: <4BFA9347.8090509@zafena.se> On 2010-05-24 15:44, Andrew John Hughes wrote: > On 24 May 2010 13:55, Xerxes R?nby wrote: > >> Hi >> >> Im hoping to find someone who can enlighten me how to resolve a bug >> where some hotspot JITs >> fails the hotspot/test/compiler/6539464 jtreg regression test. >> >> The testcase looks like: >> >> public class Test { >> static double log_value = 17197; >> static double log_result = Math.log(log_value); >> >> public static void main(String[] args) throws Exception { >> for (int i = 0; i < 1000000; i++) { >> double log_result2 = Math.log(log_value); >> if (log_result2 != log_result) { >> throw new InternalError("Math.log produces inconsistent results: " + log_result2 + " != " + log_result); >> } >> } >> } >> } >> >> When running this testcase using various jvms / architectures i get varying results of the calculated log_result2 and log_result which >> >> ARCH+JVM combination log_result (javac) log_result2 (jit) passes regression test? >> ia32+OpenJDK Server VM (build 14.0-b16, mixed mode) 9.752490228984199 9.752490228984199 yes >> arm+OpenJDK Shark VM (build 16.0-b13, mixed mode) 9.75249022898412 9.752490228984199 no >> x86_64+OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) 9.75249022898412 9.752490228984199 no >> >> While trying to figure out whats the correct result for the log(17197) calculation i tested what StrictMath.log outputs: >> StrictMath.log(17197) = 9.75249022898412 >> >> And in order to get an independent mathematically correct opinion of what log(17197) equals i asked wolfram alpha: >> http://www.wolframalpha.com/input/?i=log%2817197%29 >> log(17197) = 9.7524902289841994797298917760120602447583441794533189705223... >> or in short 9.752490228984199 >> >> So we have a situation where javac, jit, Math and StrictMath generates inconsistent results. >> How do we resolve this situation? >> >> Quoting the Math package java doc: >> "If a method always has an error less than 0.5 ulps, the method always >> returns the floating-point number nearest the exact result; such a >> method is correctly rounded. A correctly rounded method is >> generally the best a floating-point approximation can be; however, >> it is impractical for many floating-point methods to be correctly >> rounded. Instead, for the Math class, a larger error >> bound of 1 or 2 ulps is allowed for certain methods" >> >> Would this quotation imply that both log(17197) calculation results above are correct ( 9.752490228984199 and 9.75249022898412 )? >> If both calculations are correct then I propose that we should change the hotspot/test/compiler/6539464 jtreg regression test to make all >> JVM's pass the test when they are within +- 1 ulps from the mathematically correct answer of: >> 9.7524902289841994797298917760120602447583441794533189705223... >> >> Cheers and have a great day! >> Xerxes >> >> >> > Do x86 and x86_64 give the same results if you actually use the same > version of HotSpot as you do on ARM? > Im only able to test x86: But no javac still produces different ressult when compiling static double log_result = Math.log(log_value); and running javac on x86 and arm using the same version of hotspot: ARCH+JVM combination log_result (javac) log_result2 (jit) passes regression test? ia32+OpenJDK Shark VM (build 16.0-b13, mixed mode) 9.752490228984199 9.752490228984199 yes arm+OpenJDK Shark VM (build 16.0-b13, mixed mode) 9.75249022898412 9.752490228984199 no From andrew at icedtea.classpath.org Mon May 24 11:46:20 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Mon, 24 May 2010 18:46:20 +0000 Subject: /hg/icedtea6: Give --enable-hg precedence over source zip or dir... Message-ID: changeset ad4ad518e870 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=ad4ad518e870 author: Andrew John Hughes date: Mon May 24 19:46:13 2010 +0100 Give --enable-hg precedence over source zip or directory specification. 2010-05-24 Andrew John Hughes * Makefile.am: The --enable-hg option should take precedence over any --with-openjdk-src-zip/dir options. Using a live Mercurial checkout only makes sense in this context. diffstat: 2 files changed, 15 insertions(+), 13 deletions(-) ChangeLog | 8 ++++++++ Makefile.am | 20 +++++++------------- diffs (74 lines): diff -r caa91bae0c5c -r ad4ad518e870 ChangeLog --- a/ChangeLog Thu May 20 10:15:11 2010 -0400 +++ b/ChangeLog Mon May 24 19:46:13 2010 +0100 @@ -1,3 +1,11 @@ 2010-05-20 Gary Benson + + * Makefile.am: + The --enable-hg option should take precedence + over any --with-openjdk-src-zip/dir options. + Using a live Mercurial checkout only makes + sense in this context. + 2010-05-20 Gary Benson * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp diff -r caa91bae0c5c -r ad4ad518e870 Makefile.am --- a/Makefile.am Thu May 20 10:15:11 2010 -0400 +++ b/Makefile.am Mon May 24 19:46:13 2010 +0100 @@ -114,11 +114,11 @@ IT_JAVACFLAGS=$(IT_JAVAC_SETTINGS) -sour # Conditional defintions +if USE_HG + OPENJDK_SRC_ZIP = +else if USE_ALT_OPENJDK_SRC_ZIP OPENJDK_SRC_ZIP = $(ALT_OPENJDK_SRC_ZIP) -else -if USE_HG - OPENJDK_SRC_ZIP = else OPENJDK_SRC_ZIP = openjdk-6-src-$(OPENJDK_VERSION)-$(OPENJDK_DATE).tar.gz endif @@ -599,10 +599,6 @@ dist-openjdk-fsg: stamps/patch-fsg.stamp # Download OpenJDK sources. stamps/hgforest.stamp: -if OPENJDK_SRC_DIR_FOUND -else -if USE_ALT_OPENJDK_SRC_ZIP -else if !USE_HG else if ! $(HG) fclone -h; \ @@ -611,8 +607,6 @@ else "http://selenic.com/mercurial/wiki/index.cgi/ForestExtension"; \ exit 1; \ fi; -endif -endif endif mkdir -p stamps touch stamps/hgforest.stamp @@ -711,16 +705,16 @@ clean-drops: clean-download-jaxp-drop cl rm -f stamps/download-drops.stamp stamps/download.stamp: stamps/hgforest.stamp stamps/download-drops.stamp -if OPENJDK_SRC_DIR_FOUND -else -if USE_ALT_OPENJDK_SRC_ZIP -else if USE_HG if WITH_HGREV $(HG) fclone -r $(HGREV) $(OPENJDK_HG_URL) openjdk; else $(HG) fclone $(OPENJDK_HG_URL) openjdk; endif +else +if OPENJDK_SRC_DIR_FOUND +else +if USE_ALT_OPENJDK_SRC_ZIP else if ! echo "$(OPENJDK_MD5SUM) $(OPENJDK_SRC_ZIP)" \ | $(MD5SUM) --check ; \ From bugzilla-daemon at icedtea.classpath.org Mon May 24 12:23:22 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Mon, 24 May 2010 19:23:22 +0000 Subject: [Bug 488] Question mark changing into underscore in URLs directed from an applet. Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=488 ------- Comment #2 from eivind at basefarm.no 2010-05-24 19:23 ------- Created an attachment (id=341) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=341&action=view) Patch for proper decoding of lowercase hex symbols Proposed patch for bug in the HEX_TO_INT macro in IcedTeaPluginUtils.h. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 25 01:06:14 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 25 May 2010 08:06:14 +0000 Subject: [Bug 500] Shark on ARM/x86_64 Math.log incosistent results Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=500 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gbenson at redhat.com Platform|arm |all Summary|Shark on ARM Math.log |Shark on ARM/x86_64 Math.log |incosistent results |incosistent results ------- Comment #2 from xerxes at zafena.se 2010-05-25 08:06 ------- Tom Rodriguez have given some good background info on this bug. http://mail.openjdk.java.net/pipermail/jdk6-dev/2010-May/001619.html "The test applies to a bug which was fixed in hs17 so testing with hs14 is sure to fail on x86_64 which is where the bug was." To sum it up: In order to fix Shark on various architectures we must make sure that the zero interpreter and the shark jit uses the same intrinsic for log calculations and other math intrinsics that uses some sort of aproximation in order to calculate the result. Its ok for the result to be within +- 1ulps from matematically correct answer using the aproximation math intrinsics. Its not ok for the calculated result to change when the code are moved from the interpreter to the jit. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From xerxes at zafena.se Tue May 25 01:37:51 2010 From: xerxes at zafena.se (=?ISO-8859-1?Q?Xerxes_R=E5nby?=) Date: Tue, 25 May 2010 10:37:51 +0200 Subject: Math.log(17197) produces inconsistent results between javac, jit, Math and StrictMath on various architectures. In-Reply-To: References: <4BFA7726.1030506@zafena.se> Message-ID: <4BFB8C5F.4080500@zafena.se> On 2010-05-24 20:12, Tom Rodriguez wrote: > On May 24, 2010, at 5:55 AM, Xerxes R?nby wrote: > > >> When running this testcase using various jvms / architectures i get varying results of the calculated log_result2 and log_result which >> >> ARCH+JVM combination log_result (javac) log_result2 (jit) passes regression test? >> ia32+OpenJDK Server VM (build 14.0-b16, mixed mode) 9.752490228984199 9.752490228984199 yes >> arm+OpenJDK Shark VM (build 16.0-b13, mixed mode) 9.75249022898412 9.752490228984199 no >> x86_64+OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) 9.75249022898412 9.752490228984199 no >> > The test applies to a bug which was fixed in hs17 so testing with hs14 is sure to fail on x86_64 which is where the bug was. The purpose of the test is to make sure that the value doesn't change over time which isn't allowed. In the original bug the compiler had an intrinsic for log but the interpreter wasn't using the same intrinsic so the interpreter and compiler could return different answers. So presumably if you test with hs17 x86_64 will be fine but I don't know what the problem would be with the ARM port of shark. Does it have intrinsics for Math.log? Yes ARM port of Shark uses a intrinsic for the Shark JIT. The Shark JIT uses the LLVM provided math intrinsics for log calculations, and the Shark Interpreter Zero lets the Math.log class method handle it and the class in turn uses the StrictMath.log JNI c call internally. The reason why I get different results are of course because i use two different implementations yet mathematically both valid approximations (+- 1ulps). > Also note that javac isn't producing the constant value since it's doesn't constant fold Math.log, let alone any other Math or StrictMath call. That value is computed by the class initializer which will run in the interpreter. > > tom > Thanks again for this heads up that the static value are calculated at runtime by the interpreter and not constant folded, it makes the problem crystal. We do now have enough information to sort out the bug http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=500 by making the Shark JIT call the same intrinsic as the StrictMath c library provides, or the other way around. Cheers and have a great day! Xerxes > >> While trying to figure out whats the correct result for the log(17197) calculation i tested what StrictMath.log outputs: >> StrictMath.log(17197) = 9.75249022898412 >> >> And in order to get an independent mathematically correct opinion of what log(17197) equals i asked wolfram alpha: >> http://www.wolframalpha.com/input/?i=log%2817197%29 >> log(17197) = 9.7524902289841994797298917760120602447583441794533189705223... >> or in short 9.752490228984199 >> >> So we have a situation where javac, jit, Math and StrictMath generates inconsistent results. >> How do we resolve this situation? >> >> Quoting the Math package java doc: >> "If a method always has an error less than 0.5 ulps, the method always >> returns the floating-point number nearest the exact result; such a >> method is correctly rounded. A correctly rounded method is >> generally the best a floating-point approximation can be; however, >> it is impractical for many floating-point methods to be correctly >> rounded. Instead, for the Math class, a larger error >> bound of 1 or 2 ulps is allowed for certain methods" >> >> Would this quotation imply that both log(17197) calculation results above are correct ( 9.752490228984199 and 9.75249022898412 )? >> If both calculations are correct then I propose that we should change the hotspot/test/compiler/6539464 jtreg regression test to make all >> JVM's pass the test when they are within +- 1 ulps from the mathematically correct answer of: >> 9.7524902289841994797298917760120602447583441794533189705223... >> >> Cheers and have a great day! >> Xerxes >> >> > From aph at redhat.com Tue May 25 01:47:16 2010 From: aph at redhat.com (Andrew Haley) Date: Tue, 25 May 2010 09:47:16 +0100 Subject: Math.log(17197) produces inconsistent results between javac, jit, Math and StrictMath on various architectures. In-Reply-To: <4BFB8C5F.4080500@zafena.se> References: <4BFA7726.1030506@zafena.se> <4BFB8C5F.4080500@zafena.se> Message-ID: <4BFB8E94.5060702@redhat.com> On 05/25/2010 09:37 AM, Xerxes R?nby wrote: > On 2010-05-24 20:12, Tom Rodriguez wrote: >> On May 24, 2010, at 5:55 AM, Xerxes R?nby wrote: >> >> >>> When running this testcase using various jvms / architectures i get varying results of the calculated log_result2 and log_result which >>> >>> ARCH+JVM combination log_result (javac) log_result2 (jit) passes regression test? >>> ia32+OpenJDK Server VM (build 14.0-b16, mixed mode) 9.752490228984199 9.752490228984199 yes >>> arm+OpenJDK Shark VM (build 16.0-b13, mixed mode) 9.75249022898412 9.752490228984199 no >>> x86_64+OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) 9.75249022898412 9.752490228984199 no >>> >> The test applies to a bug which was fixed in hs17 so testing with hs14 is sure to fail on x86_64 which is where the bug was. The purpose of the test is to make sure that the value doesn't change over time which isn't allowed. In the original bug the compiler had an intrinsic for log but the interpreter wasn't using the same intrinsic so the interpreter and compiler could return different answers. So presumably if you test with hs17 x86_64 will be fine but I don't know what the problem would be with the ARM port of shark. Does it have intrinsics for Math.log? > > Yes ARM port of Shark uses a intrinsic for the Shark JIT. > The Shark JIT uses the LLVM provided math intrinsics for log calculations, > and the Shark Interpreter Zero lets the Math.log class method handle it > and the class in turn uses the StrictMath.log JNI c call internally. > > The reason why I get different results are of course because i use two > different implementations yet mathematically both valid approximations > (+- 1ulps). That doesn't really explain it, though. How come the LLVM log returns a different value from the C library? Andrew. From bugzilla-daemon at icedtea.classpath.org Tue May 25 03:57:10 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 25 May 2010 10:57:10 +0000 Subject: [Bug 500] Shark on ARM/x86_64 Math.log incosistent results Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=500 ------- Comment #3 from xerxes at zafena.se 2010-05-25 10:57 ------- By using the following patch makes ARM pass the testcase by preventing Shark to use the llvm intrinsics for all aproximative math function and instead only compile the jni wrapper to the same math intrinsic used by the interpreter. Index: openjdk/hotspot/src/share/vm/shark/sharkIntrinsics.cpp =================================================================== --- openjdk.orig/hotspot/src/share/vm/shark/sharkIntrinsics.cpp 2010-05-25 12:02:16.000000000 +0200 +++ openjdk/hotspot/src/share/vm/shark/sharkIntrinsics.cpp 2010-05-25 12:02:29.000000000 +0200 @@ -46,7 +46,7 @@ case vmIntrinsics::_dlog10: case vmIntrinsics::_dpow: case vmIntrinsics::_dexp: - return true; + return false; // java.lang.Object case vmIntrinsics::_getClass: -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 25 04:00:23 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 25 May 2010 11:00:23 +0000 Subject: [Bug 500] Shark on ARM/x86_64 Math.log incosistent results Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=500 ------- Comment #4 from aph at redhat.com 2010-05-25 11:00 ------- I'm sure that will work, but it's a pretty terrible way to fix the problem. I'd like to know why the LLVM intrinsic behaves differently. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Tue May 25 04:32:42 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Tue, 25 May 2010 11:32:42 +0000 Subject: [Bug 500] Shark on ARM/x86_64 Math.log incosistent results Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=500 ------- Comment #5 from xerxes at zafena.se 2010-05-25 11:32 ------- http://bugs.sun.com/view_bug.do?bug_id=6539464(In reply to comment #4) > I'm sure that will work, but it's a pretty terrible way to fix the problem. > At least it are not any worse than how they fixed x86_64 in hs17 http://hg.openjdk.java.net/jdk7/hotspot-comp/hotspot/rev/819880572f09 When checking the original upsteam x86_64 bug its clear that we must take care of more than Math.log to fix this issue: http://bugs.sun.com/view_bug.do?bug_id=6539464 > I'd like to know why the LLVM intrinsic behaves differently. > Yes actually the LLVM intrinsic generates the same mathematically rounded result as the gcc log intrinsics. On my testsystems they all calculate log(17197) = 9.752490228984199 Its the OpenJDK bundled StrictMath implementation in http://hg.openjdk.java.net/jdk6/jdk6/jdk/file/d48ce7884e7a/src/share/native/java/lang/fdlibm/src/e_log.c that generates the odd value that are 1 ulp from the mathematically correct rounded value of 9.752490228984199 and are causing all this fuzz on my test systems where it calculates: log(17197) = 9.75249022898412 Recent versions of hotspot like hs17 for x86_64 only use the StrictMath implementation and thus only generate the 9.75249022898412 result. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From tom.rodriguez at oracle.com Mon May 24 11:12:06 2010 From: tom.rodriguez at oracle.com (Tom Rodriguez) Date: Mon, 24 May 2010 11:12:06 -0700 Subject: Math.log(17197) produces inconsistent results between javac, jit, Math and StrictMath on various architectures. In-Reply-To: <4BFA7726.1030506@zafena.se> References: <4BFA7726.1030506@zafena.se> Message-ID: On May 24, 2010, at 5:55 AM, Xerxes R?nby wrote: > > When running this testcase using various jvms / architectures i get varying results of the calculated log_result2 and log_result which > > ARCH+JVM combination log_result (javac) log_result2 (jit) passes regression test? > ia32+OpenJDK Server VM (build 14.0-b16, mixed mode) 9.752490228984199 9.752490228984199 yes > arm+OpenJDK Shark VM (build 16.0-b13, mixed mode) 9.75249022898412 9.752490228984199 no > x86_64+OpenJDK 64-Bit Server VM (build 14.0-b16, mixed mode) 9.75249022898412 9.752490228984199 no The test applies to a bug which was fixed in hs17 so testing with hs14 is sure to fail on x86_64 which is where the bug was. The purpose of the test is to make sure that the value doesn't change over time which isn't allowed. In the original bug the compiler had an intrinsic for log but the interpreter wasn't using the same intrinsic so the interpreter and compiler could return different answers. So presumably if you test with hs17 x86_64 will be fine but I don't know what the problem would be with the ARM port of shark. Does it have intrinsics for Math.log? Also note that javac isn't producing the constant value since it's doesn't constant fold Math.log, let alone any other Math or StrictMath call. That value is computed by the class initializer which will run in the interpreter. tom > > While trying to figure out whats the correct result for the log(17197) calculation i tested what StrictMath.log outputs: > StrictMath.log(17197) = 9.75249022898412 > > And in order to get an independent mathematically correct opinion of what log(17197) equals i asked wolfram alpha: > http://www.wolframalpha.com/input/?i=log%2817197%29 > log(17197) = 9.7524902289841994797298917760120602447583441794533189705223... > or in short 9.752490228984199 > > So we have a situation where javac, jit, Math and StrictMath generates inconsistent results. > How do we resolve this situation? > > Quoting the Math package java doc: > "If a method always has an error less than 0.5 ulps, the method always > returns the floating-point number nearest the exact result; such a > method is correctly rounded. A correctly rounded method is > generally the best a floating-point approximation can be; however, > it is impractical for many floating-point methods to be correctly > rounded. Instead, for the Math class, a larger error > bound of 1 or 2 ulps is allowed for certain methods" > > Would this quotation imply that both log(17197) calculation results above are correct ( 9.752490228984199 and 9.75249022898412 )? > If both calculations are correct then I propose that we should change the hotspot/test/compiler/6539464 jtreg regression test to make all > JVM's pass the test when they are within +- 1 ulps from the mathematically correct answer of: > 9.7524902289841994797298917760120602447583441794533189705223... > > Cheers and have a great day! > Xerxes > From evgueni.gordienko at motorola.com Tue May 25 12:01:05 2010 From: evgueni.gordienko at motorola.com (Gordienko Evgueni-XPNG76) Date: Tue, 25 May 2010 15:01:05 -0400 Subject: Build IcedTea-1.8: error: \u2018g_strcmp0\u2019 was not declared in this scope Message-ID: I have: Plugin.cc /opt/icedtea6-1.8/plugin/icedteanp/IcedTeaNPPlugin.cc: In function \u2018gchar* plugin_filter_ld_library_path(gchar*)\u2019: /opt/icedtea6-1.8/plugin/icedteanp/IcedTeaNPPlugin.cc:1435: error: \u2018g_strcmp0\u2019 was not declared in this scope make: *** [/opt/icedtea6-1.8/plugin/icedteanp/IcedTeaNPPlugin.o] Error 1 and I have: glib2-devel-2.12.13-1.fc7 any help is appreciated. Thanks, Eugene -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100525/86b8c342/attachment.html From christos at zoulas.com Tue May 25 13:50:20 2010 From: christos at zoulas.com (Christos Zoulas) Date: Tue, 25 May 2010 16:50:20 -0400 Subject: Math.log(17197) produces inconsistent results between javac, jit, Math and StrictMath on various architectures. In-Reply-To: <4BFA9347.8090509@zafena.se> from =?UTF-8?B?WGVyeGVzIFLDpW5ieQ==?= (May 24, 4:55pm) Message-ID: <20100525205020.4759456425@rebar.astron.com> On May 24, 4:55pm, xerxes at zafena.se (=?UTF-8?B?WGVyeGVzIFLDpW5ieQ==?=) wrote: -- Subject: Re: Math.log(17197) produces inconsistent results between javac, | Im only able to test x86: | | But no javac still produces different ressult when compiling | | static double log_result = Math.log(log_value); | | and running javac on x86 and arm using the same version of hotspot: I have encountered this only on x86_64. x86 indeed works. The bug was introduced in jdk 1.6. christos From bugzilla-daemon at icedtea.classpath.org Wed May 26 03:39:13 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Wed, 26 May 2010 10:39:13 +0000 Subject: [Bug 500] Shark on ARM/x86_64 Math.log incosistent results Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=500 xerxes at zafena.se changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|xerxes at zafena.se |.org | Status|NEW |ASSIGNED ------- Comment #6 from xerxes at zafena.se 2010-05-26 10:39 ------- Created an attachment (id=342) --> (http://icedtea.classpath.org/bugzilla/attachment.cgi?id=342&action=view) openjdk/jdk 26may-java.lang.Math.libm.patch The attached patch fixes this bug by making java.lang.Math and java.lang.Random by making them use a new class java.lang.LibmMath internally that in turn uses the running systems libm implementation. This will make java.lang.Math more accurate for computation of trancendental number aproximation, give a speed boost for math in the interpreter and will make the interpreter and JIT produce same accurately rounded results. Cheers Xerxes -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Wed May 26 10:18:24 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Wed, 26 May 2010 17:18:24 +0000 Subject: /hg/icedtea: 2 new changesets Message-ID: changeset 156a49055853 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=156a49055853 author: Andrew John Hughes date: Wed May 26 17:47:10 2010 +0100 Include DIST_ID and DERIVATIVE_ID support. Connect dependent targets with &&. Add a tools.jar symlink in bootstrap/boot/lib to appease HotSpot. Explicitly create the destination directory for the class rewriter. 2010-05-26 Andrew John Hughes * Makefile.am: Update HotSpot changeset and SHA256 sum to obtain DIST_ID and DERIVATIVE_ID support. (bootstrap-directory-stage1.stamp): Always create the boot tools.jar as a symlink to rt.jar to appease the HotSpot build. Join dependent parts using &&. (rewriter.stamp): Use IT_JAVACFLAGS and explicitly create destination directory as javac doesn't while ecj does. (rewrite-rhino.stamp): Join dependent parts with &&. (clean- tools-jar): Remove boot tools.jar symlink. changeset cf649a549a40 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=cf649a549a40 author: Andrew John Hughes date: Fri Feb 19 14:19:25 2010 +0000 Make sure the RHINO_JAR variable always refers to a valid file. 2010-02-19 Andrew John Hughes * acinclude.m4: (FIND_RHINO_JAR): Clear RHINO_JAR variable if it still contains "no" at the end of the macro. diffstat: 3 files changed, 52 insertions(+), 18 deletions(-) ChangeLog | 22 ++++++++++++++++++++++ Makefile.am | 44 ++++++++++++++++++++++++++------------------ acinclude.m4 | 4 ++++ diffs (156 lines): diff -r 8dc6e1ff8ccf -r cf649a549a40 ChangeLog --- a/ChangeLog Thu May 20 14:37:32 2010 +0100 +++ b/ChangeLog Fri Feb 19 14:19:25 2010 +0000 @@ -1,3 +1,25 @@ 2010-02-17 Andrew John Hughes + + * acinclude.m4: + (FIND_RHINO_JAR): Clear RHINO_JAR variable + if it still contains "no" at the end of the + macro. + +2010-05-26 Andrew John Hughes + + * Makefile.am: + Update HotSpot changeset and SHA256 sum to + obtain DIST_ID and DERIVATIVE_ID support. + (bootstrap-directory-stage1.stamp): Always create + the boot tools.jar as a symlink to rt.jar to + appease the HotSpot build. Join dependent parts + using &&. + (rewriter.stamp): Use IT_JAVACFLAGS and explicitly + create destination directory as javac doesn't while + ecj does. + (rewrite-rhino.stamp): Join dependent parts with &&. + (clean-tools-jar): Remove boot tools.jar symlink. + 2010-02-17 Andrew John Hughes PR icedtea/179 diff -r 8dc6e1ff8ccf -r cf649a549a40 Makefile.am --- a/Makefile.am Thu May 20 14:37:32 2010 +0100 +++ b/Makefile.am Fri Feb 19 14:19:25 2010 +0000 @@ -3,7 +3,7 @@ OPENJDK_VERSION = b89 OPENJDK_VERSION = b89 CORBA_CHANGESET = e805b4155d76 -HOTSPOT_CHANGESET = 468593ef6b33 +HOTSPOT_CHANGESET = de6965fd4cc5 JAXP_CHANGESET = 826bafcb6c4a JAXWS_CHANGESET = 1661166c82dc JDK_CHANGESET = 3d1a836736bf @@ -11,7 +11,7 @@ OPENJDK_CHANGESET = 195fcceefddc OPENJDK_CHANGESET = 195fcceefddc CORBA_SHA256SUM = 870e2eac993a4eef48197ed7309cab176b56a994add1de215a026599052627cb -HOTSPOT_SHA256SUM = fc3a387938c2e479ff71989d227baa655b8a68079a144f717081b40e15696cdb +HOTSPOT_SHA256SUM = be6833f5e7a30091173a7099da9bae304df9e0868403b05660c10a574b4fd2fc JAXP_SHA256SUM = 42d004e51a1f01d146ad230ce48996ddf8da3719fe571a41653f431d6b2e8a7b JAXWS_SHA256SUM = 4523909cd46fd61b5c6670bf932099d5899236a37a4058e7b2bcb855e503a0e4 JDK_SHA256SUM = 637372a089a1d50dc85d098e8b897d01e001730dd0ed94a6d347243272dedeeb @@ -1706,29 +1706,33 @@ stamps/bootstrap-directory-stage1.stamp: ln -sf $(JAR) bootstrap/boot/bin/jar ln -sf ../../../javac bootstrap/boot/bin/javac ln -sf ../../../javap bootstrap/boot/bin/javap - mkdir -p bootstrap/boot/lib/endorsed - ln -sf $(XALAN2_JAR) bootstrap/boot/lib/endorsed/xalan-j2.jar + mkdir -p bootstrap/boot/lib/endorsed && \ + ln -sf $(XALAN2_JAR) bootstrap/boot/lib/endorsed/xalan-j2.jar && \ ln -sf $(XALAN2_SERIALIZER_JAR) \ - bootstrap/boot/lib/endorsed/xalan-j2-serializer.jar + bootstrap/boot/lib/endorsed/xalan-j2-serializer.jar && \ ln -sf $(XERCES2_JAR) bootstrap/boot/lib/endorsed/xerces-j2.jar - mkdir -p bootstrap/boot/jre/lib; \ + mkdir -p bootstrap/boot/jre/lib && \ cp $(SYSTEM_JDK_DIR)/jre/lib/rt.jar \ - bootstrap/boot/jre/lib/rt.jar; \ - chmod u+w bootstrap/boot/jre/lib/rt.jar; \ + bootstrap/boot/jre/lib/rt.jar && \ + chmod u+w bootstrap/boot/jre/lib/rt.jar && \ ln -sf $(SYSTEM_JDK_DIR)/jre/lib/$(JRE_ARCH_DIR) \ - bootstrap/boot/jre/lib/; \ + bootstrap/boot/jre/lib/ && \ if ! test -d bootstrap/boot/jre/lib/$(INSTALL_ARCH_DIR); \ then \ ln -sf ./$(JRE_ARCH_DIR) \ bootstrap/boot/jre/lib/$(INSTALL_ARCH_DIR); \ - fi; \ - mkdir -p bootstrap/boot/include; \ + fi +# For HotSpot + mkdir -p $(abs_top_builddir)/bootstrap/boot/lib && \ + ln -sf $(abs_top_builddir)/bootstrap/boot/jre/lib/rt.jar \ + $(abs_top_builddir)/bootstrap/boot/lib/tools.jar + mkdir -p bootstrap/boot/include && \ for i in $(SYSTEM_JDK_DIR)/include/*; do \ test -r $$i | continue; \ i=`basename $$i`; \ rm -f bootstrap/boot/include/$$i; \ ln -s $(SYSTEM_JDK_DIR)/include/$$i bootstrap/boot/include/$$i; \ - done; \ + done; mkdir -p stamps touch $@ @@ -2285,8 +2289,9 @@ endif stamps/rewriter.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) if WITH_RHINO + mkdir -p $(abs_top_builddir)/rewriter && \ (cd $(abs_top_srcdir)/rewriter ; \ - $(ICEDTEA_BOOT_DIR)/bin/javac -g \ + $(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(abs_top_builddir)/rewriter $(REWRITER_SRCS) \ ) endif @@ -2295,13 +2300,13 @@ endif stamps/rewrite-rhino.stamp: stamps/rewriter.stamp $(RHINO_JAR) if WITH_RHINO - mkdir -p rhino/rhino.{old,new} - (cd rhino/rhino.old ; jar xf $(RHINO_JAR)) + mkdir -p rhino/rhino.{old,new} && \ + (cd rhino/rhino.old && jar xf $(RHINO_JAR)) && \ $(ICEDTEA_BOOT_DIR)/bin/java -cp $(abs_top_builddir)/rewriter \ com.redhat.rewriter.ClassRewriter \ $(abs_top_builddir)/rhino/rhino.old $(abs_top_builddir)/rhino/rhino.new \ - org.mozilla sun.org.mozilla - (cd rhino/rhino.old ; \ + org.mozilla sun.org.mozilla && \ + (cd rhino/rhino.old && \ for files in `find -type f -not -name '*.class'` ; do \ new_file=../rhino.new/`echo $$files|sed -e 's#org#sun/org#'` ; \ mkdir -p `dirname $$new_file` ; \ @@ -2309,7 +2314,7 @@ if WITH_RHINO sed -ie 's#org\.mozilla#sun.org.mozilla#g' $$new_file ; \ done \ ) - (cd rhino/rhino.new ; jar cfm ../rhino.jar META-INF/MANIFEST.MF sun ) + (cd rhino/rhino.new && jar cfm ../rhino.jar META-INF/MANIFEST.MF sun ) endif mkdir -p stamps touch stamps/rewrite-rhino.stamp @@ -2729,6 +2734,9 @@ clean-tools-jar: clean-tools-jar: rm -f bootstrap/jdk1.7.0/lib/tools.jar rm -f bootstrap/boot/lib/tools.jar + if test -d bootstrap/boot/lib ; then \ + rm -f $(abs_top_builddir)/bootstrap/boot/lib/tools.jar; \ + fi # rt-closed.jar. bootstrap/jdk1.7.0/jre/lib/rt-closed.jar: stamps/rt.stamp diff -r 8dc6e1ff8ccf -r cf649a549a40 acinclude.m4 --- a/acinclude.m4 Thu May 20 14:37:32 2010 +0100 +++ b/acinclude.m4 Fri Feb 19 14:19:25 2010 +0000 @@ -645,6 +645,10 @@ AC_DEFUN([FIND_RHINO_JAR], fi AC_MSG_RESULT(${RHINO_JAR}) AM_CONDITIONAL(WITH_RHINO, test x"${RHINO_JAR}" != "xno") +dnl Clear RHINO_JAR if it doesn't contain a valid filename + if test x"${RHINO_JAR}" = "xno"; then + RHINO_JAR= + fi AC_SUBST(RHINO_JAR) ]) From bugzilla-daemon at icedtea.classpath.org Thu May 27 07:48:08 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 14:48:08 +0000 Subject: [Bug 501] New: OpenJDK SIGSEGV [libjvm.so+0x1c1937] Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=501 Summary: OpenJDK SIGSEGV [libjvm.so+0x1c1937] Product: IcedTea Version: unspecified Platform: 32-bit OS/Version: Linux Status: NEW Severity: normal Priority: P2 Component: IcedTea6 AssignedTo: unassigned at icedtea.classpath.org ReportedBy: oliver.pavey at greenhat.com We are getting a SIGSEGV from libjvm.so on Red Hat Enterprise Linux. This is occurring repeatedly at the same point in the application, but whether the error will occur on any particular occasion is unpredictable. I believe that this address in the libjvm.so is unique to build 1.6.0-b09. I hope that I am correct in logging this error with Iced Tea. Please accept my apologies if this is not the case. Thanks, Oliver A search of the internet has shown that this error has occurred for a few other people: http://www.mail-archive.com/sipx-dev at list.sipfoundry.org/msg10824.html http://www.mentby.com/wen-jun/build-17245-compile-error-due-to-java-runtime-environment.html http://forum.sipfoundry.org/index.php?t=msg&goto=42292&S=36c3f5256fe80a027d2e253f060a0525 This is the log file I have received from our client: # # An unexpected error has been detected by Java Runtime Environment: # # SIGSEGV (0xb) at pc=0x00b4e937, pid=29451, tid=2407353232 # # Java VM: OpenJDK Server VM (1.6.0-b09 mixed mode linux-x86) # Problematic frame: # V [libjvm.so+0x1c1937] # # If you would like to submit a bug report, please visit: # http://icedtea.classpath.org/bugzilla # The crash happened outside the Java Virtual Machine in native code. # See problematic frame for where to report the bug. # --------------- T H R E A D --------------- Current thread (0x0960fc00): JavaThread "CompilerThread1" daemon [_thread_in_native, id=29460, stack(0x8f754000,0x8f7d5000)] siginfo:si_signo=SIGSEGV: si_errno=0, si_code=1 (SEGV_MAPERR), si_addr=0x00000000 Registers: EAX=0x00000000, EBX=0x00fceb34, ECX=0x00000000, EDX=0xffffffff ESP=0x8f7d2d90, EBP=0x8f7d2df8, ESI=0x8de0e7e4, EDI=0x8de0e7b0 EIP=0x00b4e937, CR2=0x00000000, EFLAGS=0x00010292 Top of Stack: (sp=0x8f7d2d90) 0x8f7d2d90: 8f55448c 00000000 8f7d35b0 8f7d35b0 0x8f7d2da0: 8de00018 00019620 8ea6d044 00000001 0x8f7d2db0: 01000000 00000007 8ea6d040 00000002 0x8f7d2dc0: 00000001 00000001 ffffffff 095ffc70 0x8f7d2dd0: 00000000 00000002 00fdc530 8de195dc 0x8f7d2de0: 8f52c700 00000008 8f55448c 00fceb34 0x8f7d2df0: 8f7d35b0 00000558 8f7d2f38 00b506c1 0x8f7d2e00: 8f7d35b0 00000001 00000000 00000000 Instructions: (pc=0x00b4e937) 0x00b4e927: 8d 77 34 8b 02 52 ff 50 40 89 45 d8 89 c1 8b 16 0x00b4e937: 8b 00 21 c2 89 16 8b 56 04 8b 41 04 21 c2 89 56 Stack: [0x8f754000,0x8f7d5000], sp=0x8f7d2d90, free space=507k Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code) V [libjvm.so+0x1c1937] V [libjvm.so+0x1c36c1] V [libjvm.so+0x214c2b] V [libjvm.so+0x2160c6] V [libjvm.so+0x1b0025] V [libjvm.so+0x21a06b] V [libjvm.so+0x21a755] V [libjvm.so+0x5519e8] V [libjvm.so+0x557fec] V [libjvm.so+0x5580c4] V [libjvm.so+0x48c1c8] C [libpthread.so.0+0x55ab] Current CompileTask: C2:1079 org.eclipse.core.internal.dtree.DataTreeNode.forwardDeltaWith([Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode;[Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode;Lorg/eclipse/core/internal/dtree/IComparator;)[Lorg/eclipse/core/internal/dtree/AbstractDataTreeNode; (469 bytes) --------------- P R O C E S S --------------- Java Threads: ( => current thread ) 0x8de35800 JavaThread "Image Fetcher 0" daemon [_thread_blocked, id=29510, stack(0x8f4af000,0x8f500000)] 0x09dbb400 JavaThread "MySQL Statement Cancellation Timer" daemon [_thread_blocked, id=29497, stack(0x083c6000,0x08417000)] 0x8cdfa800 JavaThread "TCPServer acceptor http:8888" [_thread_in_native, id=29496, stack(0x01d6b000,0x01dbc000)] 0x8e134000 JavaThread "History Queue" [_thread_blocked, id=29495, stack(0x8e05e000,0x8e0af000)] 0x09a64000 JavaThread "Timer-1" daemon [_thread_blocked, id=29493, stack(0x01ade000,0x01b2f000)] 0x0a379c00 JavaThread "Timer-0" daemon [_thread_blocked, id=29491, stack(0x01a8d000,0x01ade000)] 0x09ed2000 JavaThread "Thread-4" daemon [_thread_blocked, id=29490, stack(0x07a7d000,0x07ace000)] 0x8e6b2c00 JavaThread "Thread-2" daemon [_thread_blocked, id=29487, stack(0x8e4af000,0x8e500000)] 0x8e133c00 JavaThread "TimerQueue" daemon [_thread_blocked, id=29484, stack(0x8e234000,0x8e285000)] 0x09f17400 JavaThread "Worker-1" [_thread_blocked, id=29480, stack(0x8e0af000,0x8e100000)] 0x8e127800 JavaThread "Worker-0" [_thread_blocked, id=29479, stack(0x8e285000,0x8e2d6000)] 0x8e6fe800 JavaThread "GHTesterLauncher" daemon [_thread_in_native, id=29478, stack(0x8e45e000,0x8e4af000)] 0x8e6a9400 JavaThread "AWT-EventQueue-0" [_thread_in_Java, id=29475, stack(0x8e7a8000,0x8e7f9000)] 0x8e6a0800 JavaThread "AWT-Shutdown" [_thread_blocked, id=29474, stack(0x8e757000,0x8e7a8000)] 0x8e69d000 JavaThread "AWT-XAWT" daemon [_thread_in_vm, id=29469, stack(0x8e926000,0x8e977000)] 0x8e65dc00 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=29468, stack(0x8f40d000,0x8f45e000)] 0x8f5b2000 JavaThread "Start Level Event Dispatcher" daemon [_thread_blocked, id=29465, stack(0x8f45e000,0x8f4af000)] 0x8f5a0400 JavaThread "Framework Event Dispatcher" daemon [_thread_blocked, id=29463, stack(0x8f61c000,0x8f66d000)] 0x09611400 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=29461, stack(0x8f703000,0x8f754000)] =>0x0960fc00 JavaThread "CompilerThread1" daemon [_thread_in_native, id=29460, stack(0x8f754000,0x8f7d5000)] 0x0960d400 JavaThread "CompilerThread0" daemon [_thread_blocked, id=29459, stack(0x8f7d5000,0x8f856000)] 0x0960c000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=29458, stack(0x8f856000,0x8f8a7000)] 0x095ef800 JavaThread "Finalizer" daemon [_thread_blocked, id=29457, stack(0x8faa7000,0x8faf8000)] 0x095ee400 JavaThread "Reference Handler" daemon [_thread_blocked, id=29456, stack(0x8faf8000,0x8fb49000)] 0x09561800 JavaThread "main" [_thread_blocked, id=29452, stack(0xb7e9b000,0xb7eec000)] Other Threads: 0x095eb000 VMThread [stack: 0x8fb49000,0x8fbca000] [id=29455] 0x09612c00 WatcherThread [stack: 0x8f682000,0x8f703000] [id=29462] VM state:not at safepoint (normal execution) VM Mutex/Monitor currently owned by a thread: None Heap PSYoungGen total 49408K, used 11252K [0xb45b0000, 0xb7e50000, 0xb7e90000) eden space 41664K, 17% used [0xb45b0000,0xb4ce2608,0xb6e60000) from space 7744K, 50% used [0xb6e60000,0xb722ac48,0xb75f0000) to space 7424K, 0% used [0xb7710000,0xb7710000,0xb7e50000) PSOldGen total 33088K, used 19282K [0x97e90000, 0x99ee0000, 0xb45b0000) object space 33088K, 58% used [0x97e90000,0x99164848,0x99ee0000) PSPermGen total 67968K, used 46777K [0x8fe90000, 0x940f0000, 0x97e90000) object space 67968K, 68% used [0x8fe90000,0x92c3e4c8,0x940f0000) Dynamic libraries: 00110000-00135000 r-xp 00000000 fd:00 7670176 /lib/libm-2.5.so 00135000-00136000 r-xp 00024000 fd:00 7670176 /lib/libm-2.5.so 00136000-00137000 rwxp 00025000 fd:00 7670176 /lib/libm-2.5.so 00137000-00140000 r-xp 00000000 fd:00 7667752 /lib/libnss_files-2.5.so 00140000-00141000 r-xp 00008000 fd:00 7667752 /lib/libnss_files-2.5.so 00141000-00142000 rwxp 00009000 fd:00 7667752 /lib/libnss_files-2.5.so 00142000-00151000 rwxp 00142000 00:00 0 00151000-00202000 rwxp 00151000 00:00 0 00202000-00209000 r-xp 00000000 fd:00 494193 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libnio.so 00209000-0020a000 rwxp 00006000 fd:00 494193 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libnio.so 0020a000-00213000 r-xp 00000000 fd:00 3834613 /opt/ghtester/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.3.R33x_v20080118/eclipse_1023.so 00213000-00214000 rwxp 00008000 fd:00 3834613 /opt/ghtester/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_1.0.3.R33x_v20080118/eclipse_1023.so 00214000-0022a000 r-xp 00000000 fd:00 25229689 /usr/lib/libgdk_pixbuf-2.0.so.0.1000.4 0022a000-0022b000 rwxp 00016000 fd:00 25229689 /usr/lib/libgdk_pixbuf-2.0.so.0.1000.4 0022b000-00233000 r-xp 00000000 fd:00 25229702 /usr/lib/libpangocairo-1.0.so.0.1400.9 00233000-00234000 rwxp 00007000 fd:00 25229702 /usr/lib/libpangocairo-1.0.so.0.1400.9 00234000-0024e000 r-xp 00000000 fd:00 25229710 /usr/lib/libatk-1.0.so.0.1212.0 0024e000-00250000 rwxp 0001a000 fd:00 25229710 /usr/lib/libatk-1.0.so.0.1212.0 00250000-00252000 r-xp 00000000 fd:00 7670174 /lib/libgmodule-2.0.so.0.1200.3 00252000-00253000 rwxp 00002000 fd:00 7670174 /lib/libgmodule-2.0.so.0.1200.3 00255000-00256000 r-xp 00255000 00:00 0 [vdso] 00256000-00267000 rwxp 00256000 00:00 0 00267000-0033a000 rwxp 00267000 00:00 0 0033a000-00361000 r-xp 00000000 fd:00 25229694 /usr/lib/libfontconfig.so.1.1.0 00361000-00369000 rwxp 00027000 fd:00 25229694 /usr/lib/libfontconfig.so.1.1.0 0036b000-00377000 r-xp 00000000 fd:00 494199 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libverify.so 00377000-00378000 rwxp 0000b000 fd:00 494199 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libverify.so 00378000-00387000 r-xp 00000000 fd:00 25229703 /usr/lib/libXext.so.6.4.0 00387000-00388000 rwxp 0000e000 fd:00 25229703 /usr/lib/libXext.so.6.4.0 00388000-00390000 r-xp 00000000 fd:00 25229699 /usr/lib/libXrender.so.1.3.0 00390000-00391000 rwxp 00007000 fd:00 25229699 /usr/lib/libXrender.so.1.3.0 00392000-00398000 r-xp 00000000 fd:00 494200 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libzip.so 00398000-00399000 rwxp 00006000 fd:00 494200 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libzip.so 00399000-003bb000 rwxp 00399000 00:00 0 003bb000-003d9000 rwxp 003bb000 00:00 0 003d9000-003ea000 rwxp 003d9000 00:00 0 003ea000-004bc000 rwxp 003ea000 00:00 0 004bc000-004d9000 rwxp 004bc000 00:00 0 004d9000-004da000 rwxp 004d9000 00:00 0 004da000-004dc000 r-xp 00000000 fd:00 25229704 /usr/lib/libXinerama.so.1.0.0 004dc000-004dd000 rwxp 00001000 fd:00 25229704 /usr/lib/libXinerama.so.1.0.0 004dd000-004e4000 r-xp 00000000 fd:00 25229705 /usr/lib/libXi.so.6.0.0 004e4000-004e5000 rwxp 00006000 fd:00 25229705 /usr/lib/libXi.so.6.0.0 004e5000-004e8000 r-xp 00000000 fd:00 25229706 /usr/lib/libXrandr.so.2.0.0 004e8000-004e9000 rwxp 00002000 fd:00 25229706 /usr/lib/libXrandr.so.2.0.0 004e9000-004f2000 r-xp 00000000 fd:00 25229708 /usr/lib/libXcursor.so.1.0.2 004f2000-004f3000 rwxp 00008000 fd:00 25229708 /usr/lib/libXcursor.so.1.0.2 004f3000-004f7000 r-xp 00000000 fd:00 25229707 /usr/lib/libXfixes.so.3.1.0 004f7000-004f8000 rwxp 00003000 fd:00 25229707 /usr/lib/libXfixes.so.3.1.0 004f8000-004fa000 r-xp 00000000 fd:00 25229696 /usr/lib/libXau.so.6.0.0 004fa000-004fb000 rwxp 00001000 fd:00 25229696 /usr/lib/libXau.so.6.0.0 004fb000-00500000 r-xp 00000000 fd:00 25229697 /usr/lib/libXdmcp.so.6.0.0 00500000-00501000 rwxp 00004000 fd:00 25229697 /usr/lib/libXdmcp.so.6.0.0 00501000-00506000 r-xp 00000000 fd:00 25229770 /usr/lib/libXtst.so.6.1.0 00506000-00507000 rwxp 00004000 fd:00 25229770 /usr/lib/libXtst.so.6.1.0 00507000-00512000 r-xp 00000000 fd:00 7670193 /lib/libgcc_s-4.1.2-20080825.so.1 00512000-00513000 rwxp 0000a000 fd:00 7670193 /lib/libgcc_s-4.1.2-20080825.so.1 00513000-00515000 r-xp 00000000 fd:00 3932417 /opt/ghtester/configuration/org.eclipse.osgi/bundles/11/1/.cp/os/linux/x86/liblocalfile_1_0_0.so 00515000-00516000 rwxp 00001000 fd:00 3932417 /opt/ghtester/configuration/org.eclipse.osgi/bundles/11/1/.cp/os/linux/x86/liblocalfile_1_0_0.so 00516000-0051c000 r-xp 00000000 fd:00 494202 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/native_threads/libhpi.so 0051c000-0051d000 rwxp 00006000 fd:00 494202 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/native_threads/libhpi.so 0051d000-0055b000 r-xp 00000000 fd:00 7670175 /lib/libgobject-2.0.so.0.1200.3 0055b000-0055c000 rwxp 0003e000 fd:00 7670175 /lib/libgobject-2.0.so.0.1200.3 0055c000-00581000 r-xp 00000000 fd:00 25229695 /usr/lib/libpng12.so.0.10.0 00581000-00582000 rwxp 00024000 fd:00 25229695 /usr/lib/libpng12.so.0.10.0 00586000-00599000 r-xp 00000000 fd:00 7670182 /lib/libnsl-2.5.so 00599000-0059a000 r-xp 00012000 fd:00 7670182 /lib/libnsl-2.5.so 0059a000-0059b000 rwxp 00013000 fd:00 7670182 /lib/libnsl-2.5.so 0059b000-0059d000 rwxp 0059b000 00:00 0 0059d000-005da000 r-xp 00000000 fd:00 25229691 /usr/lib/libpango-1.0.so.0.1400.9 005da000-005dc000 rwxp 0003c000 fd:00 25229691 /usr/lib/libpango-1.0.so.0.1400.9 005dc000-005dd000 r-xp 005dc000 00:00 0 005dd000-005e6000 r-xp 00000000 fd:00 494184 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjpeg.so 005e6000-005e7000 rwxp 00008000 fd:00 494184 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjpeg.so 005ed000-00600000 r-xp 00000000 fd:00 494192 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libnet.so 00600000-00601000 rwxp 00012000 fd:00 494192 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libnet.so 00601000-0068b000 r-xp 00000000 fd:00 25229709 /usr/lib/libgdk-x11-2.0.so.0.1000.4 0068b000-0068e000 rwxp 0008a000 fd:00 25229709 /usr/lib/libgdk-x11-2.0.so.0.1000.4 0068e000-0069f000 r-xp 00000000 fd:00 14942326 /tmp/jna7528002373930592982.tmp 0069f000-006a0000 rwxp 00011000 fd:00 14942326 /tmp/jna7528002373930592982.tmp 006ad000-006cf000 r-xp 00000000 fd:00 494180 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjava.so 006cf000-006d1000 rwxp 00022000 fd:00 494180 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libjava.so 006d1000-006fe000 r-xp 00000000 fd:00 25229701 /usr/lib/libpangoft2-1.0.so.0.1400.9 006fe000-006ff000 rwxp 0002c000 fd:00 25229701 /usr/lib/libpangoft2-1.0.so.0.1400.9 00711000-00733000 rwxp 00711000 00:00 0 00733000-00751000 rwxp 00733000 00:00 0 00751000-007bd000 r-xp 00000000 fd:00 25229700 /usr/lib/libcairo.so.2.9.2 007bd000-007bf000 rwxp 0006b000 fd:00 25229700 /usr/lib/libcairo.so.2.9.2 007c1000-007db000 r-xp 00000000 fd:00 7670168 /lib/ld-2.5.so 007db000-007dc000 r-xp 00019000 fd:00 7670168 /lib/ld-2.5.so 007dc000-007dd000 rwxp 0001a000 fd:00 7670168 /lib/ld-2.5.so 007df000-0091e000 r-xp 00000000 fd:00 7670169 /lib/libc-2.5.so 0091e000-0091f000 --xp 0013f000 fd:00 7670169 /lib/libc-2.5.so 0091f000-00921000 r-xp 0013f000 fd:00 7670169 /lib/libc-2.5.so 00921000-00922000 rwxp 00141000 fd:00 7670169 /lib/libc-2.5.so 00922000-00925000 rwxp 00922000 00:00 0 00927000-0092a000 r-xp 00000000 fd:00 494223 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/jli/libjli.so 0092a000-0092b000 rwxp 00003000 fd:00 494223 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/jli/libjli.so 0092b000-0094a000 r-xp 00000000 fd:00 7670177 /lib/libexpat.so.0.5.0 0094a000-0094c000 rwxp 0001e000 fd:00 7670177 /lib/libexpat.so.0.5.0 00950000-00952000 r-xp 00000000 fd:00 7670170 /lib/libdl-2.5.so 00952000-00953000 r-xp 00001000 fd:00 7670170 /lib/libdl-2.5.so 00953000-00954000 rwxp 00002000 fd:00 7670170 /lib/libdl-2.5.so 00956000-00969000 r-xp 00000000 fd:00 7670171 /lib/libpthread-2.5.so 00969000-0096a000 r-xp 00013000 fd:00 7670171 /lib/libpthread-2.5.so 0096a000-0096b000 rwxp 00014000 fd:00 7670171 /lib/libpthread-2.5.so 0096b000-0096d000 rwxp 0096b000 00:00 0 0096f000-00976000 r-xp 00000000 fd:00 7670172 /lib/librt-2.5.so 00976000-00977000 r-xp 00006000 fd:00 7670172 /lib/librt-2.5.so 00977000-00978000 rwxp 00007000 fd:00 7670172 /lib/librt-2.5.so 0097a000-0098c000 r-xp 00000000 fd:00 25229692 /usr/lib/libz.so.1.2.3 0098c000-0098d000 rwxp 00011000 fd:00 25229692 /usr/lib/libz.so.1.2.3 0098d000-00f92000 r-xp 00000000 fd:00 494206 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server/libjvm.so 00f92000-00fdd000 rwxp 00604000 fd:00 494206 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server/libjvm.so 00fdd000-013fd000 rwxp 00fdd000 00:00 0 013fd000-0178e000 r-xp 00000000 fd:00 25229711 /usr/lib/libgtk-x11-2.0.so.0.1000.4 0178e000-01794000 rwxp 00391000 fd:00 25229711 /usr/lib/libgtk-x11-2.0.so.0.1000.4 01794000-01795000 rwxp 01794000 00:00 0 01795000-01894000 r-xp 00000000 fd:00 25229698 /usr/lib/libX11.so.6.2.0 01894000-01898000 rwxp 000ff000 fd:00 25229698 /usr/lib/libX11.so.6.2.0 01898000-01935000 r-xp 00000000 fd:00 7670173 /lib/libglib-2.0.so.0.1200.3 01935000-01936000 rwxp 0009c000 fd:00 7670173 /lib/libglib-2.0.so.0.1200.3 01936000-019b6000 r-xp 00000000 fd:00 494171 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libawt.so 019b6000-019bd000 rwxp 0007f000 fd:00 494171 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libawt.so 019bd000-019e1000 rwxp 019bd000 00:00 0 019e1000-01a20000 r-xp 00000000 fd:00 494208 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/xawt/libmawt.so 01a20000-01a22000 rwxp 0003f000 fd:00 494208 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/xawt/libmawt.so 01a22000-01a23000 rwxp 01a22000 00:00 0 01a23000-01a65000 r-xp 00000000 fd:00 494173 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libfontmanager.so 01a65000-01a67000 rwxp 00042000 fd:00 494173 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/libfontmanager.so 01a67000-01a6b000 rwxp 01a67000 00:00 0 01a6b000-01a8c000 r-xp 00000000 fd:00 25229742 /usr/lib/libjpeg.so.62.0.0 01a8c000-01a8d000 rwxp 00020000 fd:00 25229742 /usr/lib/libjpeg.so.62.0.0 01a8d000-01a90000 --xp 01a8d000 00:00 0 01a90000-01ade000 rwxp 01a90000 00:00 0 01ade000-01ae1000 --xp 01ade000 00:00 0 01ae1000-01b2f000 rwxp 01ae1000 00:00 0 01b2f000-01b32000 rwxp 01b2f000 00:00 0 01b32000-01b80000 rwxp 01b32000 00:00 0 01d6b000-01d6e000 --xp 01d6b000 00:00 0 01d6e000-01dbc000 rwxp 01d6e000 00:00 0 03c32000-03caf000 r-xp 00000000 fd:00 25229693 /usr/lib/libfreetype.so.6.3.10 03caf000-03cb2000 rwxp 0007d000 fd:00 25229693 /usr/lib/libfreetype.so.6.3.10 03df7000-0418f000 rwxp 03df7000 00:00 0 0418f000-06df7000 rwxp 0418f000 00:00 0 07a7d000-07a80000 --xp 07a7d000 00:00 0 07a80000-07ace000 rwxp 07a80000 00:00 0 07d03000-07d06000 rwxp 07d03000 00:00 0 07d06000-07d54000 rwxp 07d06000 00:00 0 08048000-08051000 r-xp 00000000 fd:00 493736 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/java 08051000-08053000 rwxp 00008000 fd:00 493736 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/bin/java 083c6000-083c9000 --xp 083c6000 00:00 0 083c9000-08417000 rwxp 083c9000 00:00 0 0955b000-0ac64000 rwxp 0955b000 00:00 0 [heap] 89f00000-8a0b8000 rwxp 89f00000 00:00 0 8a0b8000-8a100000 --xp 8a0b8000 00:00 0 8a100000-8a300000 rwxp 8a100000 00:00 0 8a300000-8a500000 rwxp 8a300000 00:00 0 8a500000-8a700000 rwxp 8a500000 00:00 0 8a700000-8a7fb000 rwxp 8a700000 00:00 0 8a7fb000-8a800000 --xp 8a7fb000 00:00 0 8a800000-8a900000 rwxp 8a800000 00:00 0 8a900000-8aae8000 rwxp 8a900000 00:00 0 8aae8000-8ab00000 --xp 8aae8000 00:00 0 8ab00000-8acfa000 rwxp 8ab00000 00:00 0 8acfa000-8ad00000 --xp 8acfa000 00:00 0 8ad00000-8af00000 rwxp 8ad00000 00:00 0 8af00000-8b100000 rwxp 8af00000 00:00 0 8b100000-8b300000 rwxp 8b100000 00:00 0 8b300000-8b3d0000 rwxp 8b300000 00:00 0 8b3d0000-8b400000 --xp 8b3d0000 00:00 0 8b400000-8b4fb000 rwxp 8b400000 00:00 0 8b4fb000-8b500000 --xp 8b4fb000 00:00 0 8b500000-8b5fb000 rwxp 8b500000 00:00 0 8b5fb000-8b600000 --xp 8b5fb000 00:00 0 8b600000-8b700000 rwxp 8b600000 00:00 0 8b700000-8b900000 rwxp 8b700000 00:00 0 8b900000-8ba00000 rwxp 8b900000 00:00 0 8c000000-8c200000 rwxp 8c000000 00:00 0 8c200000-8c400000 rwxp 8c200000 00:00 0 8c400000-8c700000 rwxp 8c400000 00:00 0 8c700000-8c7fa000 rwxp 8c700000 00:00 0 8c7fa000-8c800000 --xp 8c7fa000 00:00 0 8cb00000-8cbd7000 rwxp 8cb00000 00:00 0 8cbd7000-8cc00000 --xp 8cbd7000 00:00 0 8cd00000-8cdfb000 rwxp 8cd00000 00:00 0 8cdfb000-8ce00000 --xp 8cdfb000 00:00 0 8ce00000-8ceec000 rwxp 8ce00000 00:00 0 8ceec000-8cf00000 --xp 8ceec000 00:00 0 8cf00000-8cff2000 rwxp 8cf00000 00:00 0 8cff2000-8d000000 --xp 8cff2000 00:00 0 8d000000-8d0e4000 rwxp 8d000000 00:00 0 8d0e4000-8d100000 --xp 8d0e4000 00:00 0 8d100000-8d1f7000 rwxp 8d100000 00:00 0 8d1f7000-8d200000 --xp 8d1f7000 00:00 0 8d200000-8d2f1000 rwxp 8d200000 00:00 0 8d2f1000-8d300000 --xp 8d2f1000 00:00 0 8d300000-8d3ff000 rwxp 8d300000 00:00 0 8d3ff000-8d400000 --xp 8d3ff000 00:00 0 8d400000-8d4f5000 rwxp 8d400000 00:00 0 8d4f5000-8d500000 --xp 8d4f5000 00:00 0 8d500000-8d5c7000 rwxp 8d500000 00:00 0 8d5c7000-8d600000 --xp 8d5c7000 00:00 0 8d600000-8d6d1000 rwxp 8d600000 00:00 0 8d6d1000-8d700000 --xp 8d6d1000 00:00 0 8d700000-8d7fb000 rwxp 8d700000 00:00 0 8d7fb000-8d800000 --xp 8d7fb000 00:00 0 8d800000-8d8f4000 rwxp 8d800000 00:00 0 8d8f4000-8d900000 --xp 8d8f4000 00:00 0 8d900000-8dafc000 rwxp 8d900000 00:00 0 8dafc000-8db00000 --xp 8dafc000 00:00 0 8db00000-8dd00000 rwxp 8db00000 00:00 0 8dd00000-8ddfd000 rwxp 8dd00000 00:00 0 8ddfd000-8de00000 --xp 8ddfd000 00:00 0 8de00000-8defa000 rwxp 8de00000 00:00 0 8defa000-8df00000 --xp 8defa000 00:00 0 8df00000-8dffc000 rwxp 8df00000 00:00 0 8dffc000-8e000000 --xp 8dffc000 00:00 0 8e05e000-8e061000 --xp 8e05e000 00:00 0 8e061000-8e0b2000 rwxp 8e061000 00:00 0 8e0b2000-8e100000 rwxp 8e0b2000 00:00 0 8e100000-8e1f1000 rwxp 8e100000 00:00 0 8e1f1000-8e200000 --xp 8e1f1000 00:00 0 8e234000-8e288000 rwxp 8e234000 00:00 0 8e288000-8e2d6000 rwxp 8e288000 00:00 0 8e2d6000-8e2d8000 r-xs 00006000 fd:00 3833893 /opt/tibco/tpcl/5.6/tomcat/server/lib/jakarta-regexp-1.2.jar 8e2d8000-8e316000 r-xs 00398000 fd:00 3833888 /opt/tibco/tpcl/5.6/lib/entrust/enttoolkit.jar 8e316000-8e317000 r-xs 00003000 fd:00 3833889 /opt/tibco/tpcl/5.6/lib/slf4j-jdk14.jar 8e317000-8e32b000 r-xs 000e3000 fd:00 3833886 /opt/tibco/tpcl/5.6/lib/xercesImpl.jar 8e32b000-8e331000 r-xs 00046000 fd:00 3833876 /opt/tibco/tra/5.6/lib/TIBCrypt.jar 8e331000-8e3a2000 r-xs 00488000 fd:00 3833877 /opt/tibco/tra/5.6/lib/TIBCOxml.jar 8e3a2000-8e3da000 r-xs 00391000 fd:00 3833878 /opt/tibco/tra/5.6/lib/TIBCOrt.jar 8e406000-8e416000 rwxs 00000000 00:09 1976401930 /SYSV00000000 (deleted) 8e41a000-8e41e000 r-xs 00076000 fd:00 494147 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext/localedata.jar 8e41e000-8e426000 r-xs 000a6000 fd:00 3932454 /opt/ghtester/configuration/org.eclipse.osgi/bundles/225/1/.cp/lib/js.jar 8e426000-8e437000 r-xs 000be000 fd:00 3932447 /opt/ghtester/configuration/org.eclipse.osgi/bundles/225/1/.cp/lib/cobra.jar 8e437000-8e43e000 r-xs 000a7000 fd:00 3932436 /opt/ghtester/configuration/org.eclipse.osgi/bundles/59/1/.cp/mysql-connector-java-5.1.7-bin.jar 8e43e000-8e441000 r-xs 000cf000 fd:00 3834505 /opt/ghtester/plugins/com.sun.jna_3.2.3/jna.jar 8e441000-8e446000 r-xs 00039000 fd:00 3932423 /opt/ghtester/configuration/org.eclipse.osgi/bundles/84/1/.cp/trilead.jar 8e446000-8e449000 r-xs 00018000 fd:00 3932422 /opt/ghtester/configuration/org.eclipse.osgi/bundles/84/1/.cp/svnkit-javahl.jar 8e449000-8e45e000 r-xs 001ac000 fd:00 3932421 /opt/ghtester/configuration/org.eclipse.osgi/bundles/84/1/.cp/svnkit.jar 8e45e000-8e4af000 rwxp 8e45e000 00:00 0 8e4af000-8e500000 rwxp 8e4af000 00:00 0 8e500000-8e5fd000 rwxp 8e500000 00:00 0 8e5fd000-8e600000 --xp 8e5fd000 00:00 0 8e600000-8e6ff000 rwxp 8e600000 00:00 0 8e6ff000-8e700000 --xp 8e6ff000 00:00 0 8e701000-8e706000 r-xs 00040000 fd:00 3932432 /opt/ghtester/configuration/org.eclipse.osgi/bundles/40/1/.cp/commons-httpclient-3.0.jar 8e706000-8e709000 rwxp 8e706000 00:00 0 8e709000-8e75a000 rwxp 8e709000 00:00 0 8e75a000-8e7a8000 rwxp 8e75a000 00:00 0 8e7a8000-8e7f9000 rwxp 8e7a8000 00:00 0 8e7f9000-8e7fa000 r-xs 00003000 fd:00 3932247 /opt/ghtester/configuration/org.eclipse.osgi/bundles/118/1/.cp/archives/com/ghc/ghTester/diagramming/ArchitectureSchool.jar 8e7fa000-8e800000 r-xs 00086000 fd:00 3932257 /opt/ghtester/configuration/org.eclipse.osgi/bundles/220/1/.cp/jviews-palette-shared-symbols-8.1.jar 8e800000-8e8fd000 rwxp 8e800000 00:00 0 8e8fd000-8e900000 --xp 8e8fd000 00:00 0 8e903000-8e904000 r-xs 00002000 fd:00 3932440 /opt/ghtester/configuration/org.eclipse.osgi/bundles/29/1/.cp/TableLayout.jar 8e904000-8e906000 r-xs 0000e000 fd:00 3932428 /opt/ghtester/configuration/org.eclipse.osgi/bundles/14/1/.cp/commons-pool-1.3.jar 8e909000-8e90b000 r-xs 00013000 fd:00 3932410 /opt/ghtester/configuration/org.eclipse.osgi/bundles/222/1/.cp/rainbow.jar 8e90b000-8e918000 r-xs 00088000 fd:00 3932302 /opt/ghtester/configuration/org.eclipse.osgi/bundles/154/1/.cp/glazedlists-1.7.0_java15.jar 8e918000-8e91d000 r-xs 0002b000 fd:00 3932279 /opt/ghtester/configuration/org.eclipse.osgi/bundles/201/1/.cp/mailapi.jar 8e91d000-8e91f000 r-xs 00005000 fd:00 3932273 /opt/ghtester/configuration/org.eclipse.osgi/bundles/87/1/.cp/jms.jar 8e91f000-8e921000 r-xs 0000f000 fd:00 3833866 /opt/tibco/hawk/lib/utilities.jar 8e921000-8e924000 r-xs 0001b000 fd:00 3833865 /opt/tibco/hawk/lib/util.jar 8e924000-8e926000 r-xs 00006000 fd:00 3833871 /opt/tibco/hawk/lib/talon.jar 8e926000-8e977000 rwxp 8e926000 00:00 0 8e977000-8ea00000 r-xs 00563000 fd:00 3932255 /opt/ghtester/configuration/org.eclipse.osgi/bundles/220/1/.cp/jviews-framework-all.jar 8ea00000-8eafe000 rwxp 8ea00000 00:00 0 8eafe000-8eb00000 --xp 8eafe000 00:00 0 8eb00000-8eb01000 r-xs 00002000 fd:00 3833860 /opt/tibco/hawk/lib/rvutils.jar 8eb01000-8eb03000 r-xs 00008000 fd:00 3833864 /opt/tibco/hawk/lib/publisher.jar 8eb03000-8eb04000 r-xs 00008000 fd:00 3833869 /opt/tibco/hawk/lib/perltools.jar 8eb04000-8eb09000 r-xs 0002e000 fd:00 3833859 /opt/tibco/hawk/lib/crimson.jar 8eb09000-8eb0e000 r-xs 00030000 fd:00 3833861 /opt/tibco/hawk/lib/console.jar 8eb0e000-8eb12000 r-xs 0002e000 fd:00 3833870 /opt/tibco/hawk/lib/config.jar 8eb12000-8eb14000 r-xs 0000c000 fd:00 3833868 /opt/tibco/hawk/lib/ami.jar 8eb14000-8eb19000 r-xs 0004f000 fd:00 3833863 /opt/tibco/hawk/lib/agent.jar 8eb19000-8eb1b000 r-xs 00021000 fd:00 3672318 /opt/tibco/ems/5.1/lib/tibjmsadmin.jar 8eb1b000-8eb20000 r-xs 0004b000 fd:00 3672319 /opt/tibco/ems/5.1/lib/tibjms.jar 8eb20000-8eb22000 r-xs 0001e000 fd:00 3833897 /opt/tibco/tibrv/8.1/lib/tibrvj.jar 8eb22000-8eb29000 r-xs 00063000 fd:00 3932269 /opt/ghtester/configuration/org.eclipse.osgi/bundles/86/1/.cp/xom-1.1.jar 8eb29000-8eb2c000 r-xs 0001d000 fd:00 3932264 /opt/ghtester/configuration/org.eclipse.osgi/bundles/76/1/.cp/jide-dock.jar 8eb2c000-8eb30000 r-xs 00014000 fd:00 3932263 /opt/ghtester/configuration/org.eclipse.osgi/bundles/76/1/.cp/jide-components.jar 8eb30000-8eb42000 r-xs 000b0000 fd:00 3932262 /opt/ghtester/configuration/org.eclipse.osgi/bundles/76/1/.cp/jide-common.jar 8eb42000-8eb45000 r-xs 00014000 fd:00 3932261 /opt/ghtester/configuration/org.eclipse.osgi/bundles/76/1/.cp/jide-action.jar 8eb45000-8eb49000 r-xs 00038000 fd:00 3834545 /opt/ghtester/plugins/org.apache.commons.lang_2.0.0/commons-lang-2.2.jar 8eb49000-8eb4b000 r-xs 00000000 fd:00 19431962 /var/cache/fontconfig/87f5e051180a7a75f16eb6fe7dbd3749-x86.cache-2 8eb4b000-8eb51000 r-xs 00000000 fd:00 19431981 /var/cache/fontconfig/b79f3aaa7d385a141ab53ec885cc22a8-x86.cache-2 8eb51000-8eb54000 r-xs 00000000 fd:00 19431532 /var/cache/fontconfig/b67b32625a2bb51b023d3814a918f351-x86.cache-2 8eb54000-8eb5a000 r-xs 00000000 fd:00 19431533 /var/cache/fontconfig/7ddba6133ef499da58de5e8c586d3b75-x86.cache-2 8eb5a000-8eb5c000 r-xs 00000000 fd:00 19431476 /var/cache/fontconfig/e3ead4b767b8819993a6fa3ae306afa9-x86.cache-2 8eb5c000-8eb64000 r-xs 00000000 fd:00 19431531 /var/cache/fontconfig/e19de935dec46bbf3ed114ee4965548a-x86.cache-2 8eb64000-8ebb1000 r-xs 0032c000 fd:00 3932254 /opt/ghtester/configuration/org.eclipse.osgi/bundles/220/1/.cp/jviews-diagrammer-all.jar 8ebb1000-8ebd8000 r-xs 0017d000 fd:00 3932253 /opt/ghtester/configuration/org.eclipse.osgi/bundles/220/1/.cp/jviews-chart.jar 8ebd8000-8ebe2000 r-xs 0008a000 fd:00 3834655 /opt/ghtester/plugins/org.eclipse.update.core_3.2.101.R33x_v20070911.jar 8ebe2000-8ebe3000 r-xs 0000a000 fd:00 3834540 /opt/ghtester/plugins/org.apache.commons.codec_1.3.0.jar 8ebe3000-8ebe8000 r-xs 0003f000 fd:00 3834646 /opt/ghtester/plugins/org.eclipse.ui.intro_3.2.101.v20070827_33x.jar 8ebe8000-8ebe9000 r-xs 00007000 fd:00 3834586 /opt/ghtester/plugins/org.eclipse.core.net_1.0.1.r33x_20070709.jar 8ebe9000-8ec00000 r-xs 00353000 fd:00 3834662 /opt/ghtester/plugins/org.lobobrowser.cobra_0.98.3.jar 8ec00000-8ecfd000 rwxp 8ec00000 00:00 0 8ecfd000-8ed00000 --xp 8ecfd000 00:00 0 8ed00000-8ed01000 r-xs 00007000 fd:00 3833862 /opt/tibco/hawk/lib/security.jar 8ed01000-8ed06000 r-xs 00000000 fd:00 19431987 /var/cache/fontconfig/beeeeb3dfe132a8a0633a017c99ce0c0-x86.cache-2 8ed06000-8ed07000 r-xs 00000000 fd:00 3932251 /opt/ghtester/configuration/org.eclipse.osgi/bundles/220/1/.cp/jlm_deploy.jar 8ed07000-8ed08000 r-xs 00002000 fd:00 3834398 /opt/ghtester/plugins/com.ghc.iata_1.0.0.20100427045121_10417.jar 8ed08000-8ed09000 r-xs 00000000 fd:00 3834366 /opt/ghtester/plugins/com.ghc.ghTester.commandLine.application_1.0.0.20100427045121_10417.jar 8ed09000-8ed0a000 r-xs 00013000 fd:00 3834501 /opt/ghtester/plugins/com.safenet.rainbow_1.0.0.jar 8ed0a000-8ed0b000 r-xs 00221000 fd:00 3834507 /opt/ghtester/plugins/com.sun.tools_1.5.0.jar 8ed0b000-8ed0c000 r-xs 00a3c000 fd:00 3834493 /opt/ghtester/plugins/com.ilog.jviews_1.0.0.jar 8ed0c000-8ed10000 r-xs 00022000 fd:00 3834641 /opt/ghtester/plugins/org.eclipse.ui.console_3.2.2.v20071031_r332.jar 8ed10000-8ed12000 r-xs 000f0000 fd:00 3834390 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20SAP.jar 8ed12000-8ed13000 r-xs 00030000 fd:00 3834658 /opt/ghtester/plugins/org.jaxen_1.1.1.jar 8ed13000-8ed14000 r-xs 00001000 fd:00 3834363 /opt/ghtester/plugins/com.ghc.ghTester.ant.jar 8ed14000-8ed15000 r-xs 00075000 fd:00 3834388 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20Java_20Objects.jar 8ed15000-8ed16000 r-xs 00000000 fd:00 3834364 /opt/ghtester/plugins/com.ghc.ghTester.application_1.0.0.20100427045121_10417.jar 8ed16000-8ed20000 r-xs 0009c000 fd:00 3834588 /opt/ghtester/plugins/org.eclipse.core.resources_3.3.1.R33x_v20080205.jar 8ed20000-8ed31000 r-xs 000ed000 fd:00 3834375 /opt/ghtester/plugins/com.ghc.ghviewer_1.0.0.20100427045121_10417.jar 8ed31000-8ed33000 r-xs 000dd000 fd:00 3834392 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20TCP_2DUDP_20Sockets.jar 8ed33000-8ed35000 r-xs 00031000 fd:00 3834481 /opt/ghtester/plugins/com.ghc.swift_1.0.0.jar 8ed35000-8ed37000 r-xs 00002000 fd:00 3834629 /opt/ghtester/plugins/org.eclipse.rcp_3.2.1.r33x_r20080131.jar 8ed37000-8ed54000 r-xs 00568000 fd:00 3834492 /opt/ghtester/plugins/com.ibm.icu_4.0.1.v20090415.jar 8ed54000-8ed5a000 r-xs 00049000 fd:00 3834619 /opt/ghtester/plugins/org.eclipse.help.base_3.3.1.v20070813_33x.jar 8ed5a000-8ed73000 r-xs 0011e000 fd:00 3834638 /opt/ghtester/plugins/org.eclipse.team.ui_3.3.2.r33x_20080128.jar 8ed73000-8ed75000 r-xs 000ca000 fd:00 3834503 /opt/ghtester/plugins/com.sun.javamail_1.4.1.jar 8ed75000-8ed77000 r-xs 00010000 fd:00 3834549 /opt/ghtester/plugins/org.apache.lucene.analysis_1.9.1.v200706181610.jar 8ed77000-8ed81000 r-xs 00077000 fd:00 3834651 /opt/ghtester/plugins/org.eclipse.ui.workbench.texteditor_3.3.2.r332_20080109-0800.jar 8ed81000-8ed85000 r-xs 00029000 fd:00 3834494 /opt/ghtester/plugins/com.jcraft.jsch_0.1.31.jar 8ed85000-8ed87000 r-xs 00005000 fd:00 3834368 /opt/ghtester/plugins/com.ghc.ghTester.commandLine_1.0.0.20100427045121_10417.jar 8ed87000-8ed89000 r-xs 00009000 fd:00 3834546 /opt/ghtester/plugins/org.apache.commons.logging_1.0.4.v200706111724.jar 8ed89000-8ed8b000 r-xs 00221000 fd:00 3834395 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20webMethods.jar 8ed8b000-8ed8d000 r-xs 00007000 fd:00 3834605 /opt/ghtester/plugins/org.eclipse.equinox.http.servlet_1.0.1.R33x_v20070816.jar 8ed8d000-8ed91000 r-xs 0004c000 fd:00 3834469 /opt/ghtester/plugins/com.ghc.migration.tester.v4_1.0.0.jar 8ed91000-8ed97000 r-xs 00034000 fd:00 3834639 /opt/ghtester/plugins/org.eclipse.text_3.3.0.v20070606-0010.jar 8ed97000-8ed99000 r-xs 00005000 fd:00 3834626 /opt/ghtester/plugins/org.eclipse.jsch.core_1.0.0.I20070426.jar 8ed99000-8ed9a000 r-xs 0001b000 fd:00 3834541 /opt/ghtester/plugins/org.apache.commons.dbcp_1.2.2.jar 8ed9a000-8ed9b000 r-xs 000bf000 fd:00 3834721 /opt/ghtester/plugins/com.sun.jna_3.0.9.jar 8ed9b000-8edb2000 r-xs 00127000 fd:00 3834563 /opt/ghtester/plugins/org.apache.xerces_2.9.0.v200805270400.jar 8edb2000-8edb4000 r-xs 00003000 fd:00 3834729 /opt/ghtester/plugins/org.tigris.subversion.subclipse.mylyn_3.0.0.jar 8edb4000-8edb8000 r-xs 006d4000 fd:00 3834396 /opt/ghtester/plugins/com.ghc.help.Getting_20Started_20with_20GH_20Tester.jar 8edb8000-8edba000 r-xs 00006000 fd:00 3834599 /opt/ghtester/plugins/org.eclipse.core.variables_3.2.0.v20070426.jar 8edba000-8edbd000 r-xs 0001e000 fd:00 3834502 /opt/ghtester/plugins/com.springsource.org.apache.webdav.lib_2.0.0.jar 8edbd000-8edbf000 r-xs 0013e000 fd:00 3834386 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20HP_20Quality_20Center.jar 8edbf000-8edc0000 r-xs 00006000 fd:00 3834534 /opt/ghtester/plugins/net.sourceforge.jregistrykey_1.4.4.jar 8edc0000-8edc1000 r-xs 002cf000 fd:00 3834562 /opt/ghtester/plugins/org.apache.xalan_2.7.1.jar 8edc1000-8edcc000 r-xs 00079000 fd:00 3834642 /opt/ghtester/plugins/org.eclipse.ui.editors_3.3.2.r332_20080109-0800.jar 8edcc000-8edce000 r-xs 0001b000 fd:00 3834479 /opt/ghtester/plugins/com.ghc.sap_1.0.0.20100427045121_10417.jar 8edce000-8edd0000 r-xs 00011000 fd:00 3834601 /opt/ghtester/plugins/org.eclipse.equinox.app_1.0.1.R33x_v20070828.jar 8edd0000-8ede1000 r-xs 000be000 fd:00 3834624 /opt/ghtester/plugins/org.eclipse.jface.text_3.3.2.r332_20071017-0800.jar 8ede1000-8ede3000 r-xs 00139000 fd:00 3834394 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20WebSphere_20MQ.jar 8ede3000-8ee00000 r-xs 0018c000 fd:00 3834645 /opt/ghtester/plugins/org.eclipse.ui.ide_3.3.2.M20080207-0800.jar 8ee00000-8eefe000 rwxp 8ee00000 00:00 0 8eefe000-8ef00000 --xp 8eefe000 00:00 0 8ef00000-8ef01000 r-xs 00002000 fd:00 3834596 /opt/ghtester/plugins/org.eclipse.core.runtime.compatibility.registry_3.2.100.v20070316/runtime_registry_compatibility.jar 8ef01000-8ef0a000 r-xs 00060000 fd:00 3834620 /opt/ghtester/plugins/org.eclipse.help.ui_3.3.2.v20071126_33x.jar 8ef0a000-8ef14000 r-xs 00073000 fd:00 3834656 /opt/ghtester/plugins/org.eclipse.update.ui_3.2.100.v20070615.jar 8ef14000-8ef17000 r-xs 0000d000 fd:00 3834627 /opt/ghtester/plugins/org.eclipse.osgi.services_3.1.200.v20070605.jar 8ef17000-8ef18000 r-xs 00003000 fd:00 3834632 /opt/ghtester/plugins/org.eclipse.swt_3.3.2.v3349d.jar 8ef18000-8ef1c000 r-xs 00023000 fd:00 3834723 /opt/ghtester/plugins/org.tigris.subversion.clientadapter.javahl_1.6.4.1.jar 8ef1c000-8ef1f000 r-xs 0001a000 fd:00 3834480 /opt/ghtester/plugins/com.ghc.security_1.0.0.20100427045121_10417.jar 8ef1f000-8ef21000 r-xs 0012d000 fd:00 3834383 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20BPM.jar 8ef21000-8ef25000 r-xs 00017000 fd:00 3834360 /opt/ghtester/plugins/com.ghc.files_1.0.0.jar 8ef25000-8ef26000 r-xs 00083000 fd:00 3834354 /opt/ghtester/plugins/ca.odell.glazedlists_1.7.0.jar 8ef26000-8ef28000 r-xs 0000e000 fd:00 3834529 /opt/ghtester/plugins/javax.servlet.jsp_2.0.0.v200706191603.jar 8ef28000-8ef2c000 r-xs 0001f000 fd:00 3834653 /opt/ghtester/plugins/org.eclipse.ui_3.3.1.M20071128-0800.jar 8ef2c000-8ef3e000 r-xs 001c2000 fd:00 3834631 /opt/ghtester/plugins/org.eclipse.swt.gtk.linux.x86_3.3.2.v3349.jar 8ef3e000-8ef42000 r-xs 0001f000 fd:00 3834622 /opt/ghtester/plugins/org.eclipse.help_3.3.2.v20071126_33x.jar 8ef42000-8ef45000 r-xs 00014000 fd:00 3834649 /opt/ghtester/plugins/org.eclipse.ui.views.properties.tabbed_3.3.1.M20070831-0800.jar 8ef45000-8ef49000 r-xs 00044000 fd:00 3834566 /opt/ghtester/plugins/org.apache.xml.serializer_2.7.1.v200806030322.jar 8ef49000-8ef4c000 r-xs 0001b000 fd:00 3834587 /opt/ghtester/plugins/org.eclipse.core.resources.compatibility_3.2.100.v20070502.jar 8ef4c000-8ef4d000 r-xs 00006000 fd:00 3834635 /opt/ghtester/plugins/org.eclipse.team.cvs.ssh2_3.2.100.I20070604.jar 8ef4d000-8ef50000 r-xs 002f9000 fd:00 3834378 /opt/ghtester/plugins/com.ghc.help.GH_20Performance_20Tester_20Quick_20Start_20Guide.jar 8ef50000-8ef52000 r-xs 00007000 fd:00 3834372 /opt/ghtester/plugins/com.ghc.ghTester.sca_1.0.0.20100427045121_10417.jar 8ef52000-8ef55000 r-xs 0001c000 fd:00 3834400 /opt/ghtester/plugins/com.ghc.ibmmq_1.0.0.20100427045121_10417.jar 8ef55000-8ef56000 r-xs 0003f000 fd:00 3834664 /opt/ghtester/plugins/org.snmp4j_1.0.0.jar 8ef56000-8ef58000 r-xs 00007000 fd:00 3834604 /opt/ghtester/plugins/org.eclipse.equinox.http.registry_1.0.1.R33x_v20071231.jar 8ef58000-8ef5b000 r-xs 00011000 fd:00 3834725 /opt/ghtester/plugins/org.tigris.subversion.clientadapter_1.6.4.1.jar 8ef5b000-8ef5d000 r-xs 00004000 fd:00 3834589 /opt/ghtester/plugins/org.eclipse.core.runtime.compatibility.auth_3.2.100.v20070502.jar 8ef5d000-8ef60000 r-xs 00020000 fd:00 3834397 /opt/ghtester/plugins/com.ghc.http_1.0.0.20100427045121_10417.jar 8ef60000-8ef61000 r-xs 00021000 fd:00 3834659 /opt/ghtester/plugins/org.jboss.drools_1.0.0.jar 8ef61000-8ef62000 r-xs 001ce000 fd:00 3834500 /opt/ghtester/plugins/com.oracle.jdbc_11.1.0.jar 8ef62000-8ef64000 r-xs 00007000 fd:00 3834472 /opt/ghtester/plugins/com.ghc.oracle.sca_1.0.0.20100427045121_10417.jar 8ef64000-8ef65000 r-xs 00091000 fd:00 3834532 /opt/ghtester/plugins/net.sourceforge.jpcap_0.1.16.jar 8ef65000-8ef67000 r-xs 00002000 fd:00 3834491 /opt/ghtester/plugins/com.greenhat.tester.api_1.0.0.20100427045121_10417.jar 8ef67000-8ef68000 r-xs 00000000 fd:00 3834369 /opt/ghtester/plugins/com.ghc.ghTester.engine.application_1.0.0.20100427045121_10417.jar 8ef68000-8ef69000 r-xs 000f3000 fd:00 3834666 /opt/ghtester/plugins/org.w3.jigsaw_1.0.0.jar 8ef69000-8ef6b000 r-xs 00009000 fd:00 3834490 /opt/ghtester/plugins/com.ghc.wsdl_1.0.0.20100427045121_10417.jar 8ef6b000-8ef71000 r-xs 0006a000 fd:00 3834621 /opt/ghtester/plugins/org.eclipse.help.webapp_3.3.2.v20071102_33x.jar 8ef71000-8ef73000 r-xs 0000a000 fd:00 3834361 /opt/ghtester/plugins/com.ghc.functions.ghTester_1.0.0.20100427045121_10417.jar 8ef73000-8ef74000 r-xs 0003e000 fd:00 3834539 /opt/ghtester/plugins/org.apache.axis_1.0.0.jar 8ef74000-8ef77000 r-xs 00017000 fd:00 3834616 /opt/ghtester/plugins/org.eclipse.equinox.preferences_3.2.101.R33x_v20080117.jar 8ef77000-8ef84000 r-xs 00098000 fd:00 3834576 /opt/ghtester/plugins/org.eclipse.compare_3.3.2.r33x_20080128.jar 8ef84000-8ef8b000 r-xs 00046000 fd:00 3834648 /opt/ghtester/plugins/org.eclipse.ui.navigator_3.3.2.M20080207-0800.jar 8ef8b000-8ef8c000 r-xs 00000000 fd:00 3834374 /opt/ghtester/plugins/com.ghc.ghtester.qualitycenter.resourceselection.application_1.0.0.jar 8ef8c000-8f000000 r-xs 005cf000 fd:00 3834373 /opt/ghtester/plugins/com.ghc.ghTester_1.0.0.20100427045121_10417.jar 8f000000-8f0ff000 rwxp 8f000000 00:00 0 8f0ff000-8f100000 --xp 8f0ff000 00:00 0 8f100000-8f101000 r-xs 00098000 fd:00 3834552 /opt/ghtester/plugins/org.apache.muse_2.2.0.jar 8f101000-8f102000 r-xs 00014000 fd:00 3834533 /opt/ghtester/plugins/net.sourceforge.jregex_1.0.0.jar 8f102000-8f104000 r-xs 00152000 fd:00 3834387 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20JMS.jar 8f104000-8f115000 r-xs 00194000 fd:00 3834548 /opt/ghtester/plugins/org.apache.jasper_5.5.17.v200706111724.jar 8f115000-8f127000 r-xs 000c1000 fd:00 3834484 /opt/ghtester/plugins/com.ghc.tibco_1.0.0.20100427045121_10417.jar 8f127000-8f128000 r-xs 00040000 fd:00 3834665 /opt/ghtester/plugins/org.sourceforge.htmlparser_1.0.0.jar 8f128000-8f12a000 r-xs 00011000 fd:00 3834724 /opt/ghtester/plugins/org.tigris.subversion.clientadapter.svnkit_1.6.4.jar 8f12a000-8f12b000 r-xs 00006000 fd:00 3834535 /opt/ghtester/plugins/net.sourceforge.mesp_1.0.0.jar 8f12b000-8f12d000 r-xs 00085000 fd:00 3834384 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20COBOL_20Copybooks.jar 8f12d000-8f12f000 r-xs 000c8000 fd:00 3834389 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20Oracle_20Fusion.jar 8f12f000-8f134000 r-xs 00732000 fd:00 3834393 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20TIBCO_20Messaging.jar 8f134000-8f135000 r-xs 00004000 fd:00 3834413 /opt/ghtester/plugins/com.ghc.matip_1.0.0.20100427045121_10417.jar 8f135000-8f137000 r-xs 00004000 fd:00 3834607 /opt/ghtester/plugins/org.eclipse.equinox.jsp.jasper_1.0.1.R33x_v20070816.jar 8f137000-8f139000 r-xs 00012000 fd:00 3834581 /opt/ghtester/plugins/org.eclipse.core.expressions_3.3.0.v20070606-0010.jar 8f139000-8f155000 r-xs 0016b000 fd:00 3834637 /opt/ghtester/plugins/org.eclipse.team.cvs.ui_3.3.1.r33x_20070807.jar 8f155000-8f15d000 r-xs 00056000 fd:00 3834633 /opt/ghtester/plugins/org.eclipse.team.core_3.3.1.r33x_20080128.jar 8f15d000-8f15e000 r-xs 00000000 fd:00 3834362 /opt/ghtester/plugins/com.ghc.ghTester.agent.application_1.0.0.20100427045121_10417.jar 8f15e000-8f15f000 r-xs 00247000 fd:00 3834661 /opt/ghtester/plugins/org.jfree.jfreechart_0.9.16.jar 8f15f000-8f170000 r-xs 01d89000 fd:00 3834379 /opt/ghtester/plugins/com.ghc.help.GH_20Tester.jar 8f170000-8f172000 r-xs 00003000 fd:00 3834603 /opt/ghtester/plugins/org.eclipse.equinox.http.jetty_1.0.1.R33x_v20070816.jar 8f172000-8f174000 r-xs 00012000 fd:00 3834585 /opt/ghtester/plugins/org.eclipse.core.jobs_3.3.1.R33x_v20070709.jar 8f174000-8f17a000 r-xs 0003c000 fd:00 3834358 /opt/ghtester/plugins/com.ghc.copybook_1.0.0.jar 8f17a000-8f17c000 r-xs 00005000 fd:00 3834474 /opt/ghtester/plugins/com.ghc.registry.centrasite71_1.0.0.20100427045121_10417.jar 8f17c000-8f17e000 r-xs 00000000 fd:00 3834367 /opt/ghtester/plugins/com.ghc.ghTester.commandLine.commands_1.0.0.20100427045121_10417.jar 8f17e000-8f1b3000 r-xs 00226000 fd:00 3834355 /opt/ghtester/plugins/com.ghc.a3_1.0.0.20100427045121_10417.jar 8f1b3000-8f1b8000 r-xs 00020000 fd:00 3834365 /opt/ghtester/plugins/com.ghc.ghTester.bpm_1.0.0.20100427045121_10417.jar 8f1b8000-8f1bb000 r-xs 001c8000 fd:00 3834377 /opt/ghtester/plugins/com.ghc.help.GH_20Performance_20Tester_20Probes.jar 8f1bb000-8f1c4000 r-xs 00082000 fd:00 3834634 /opt/ghtester/plugins/org.eclipse.team.cvs.core_3.3.2.r33x_20080128.jar 8f1c4000-8f1c7000 r-xs 0000a000 fd:00 3834482 /opt/ghtester/plugins/com.ghc.tcpip_1.0.0.20100427045121_10417.jar 8f1c7000-8f1cd000 r-xs 00040000 fd:00 3834643 /opt/ghtester/plugins/org.eclipse.ui.forms_3.3.0.v20070511.jar 8f1cd000-8f1ce000 r-xs 00004000 fd:00 3834528 /opt/ghtester/plugins/javax.jms_1.0.0.jar 8f1ce000-8f1cf000 r-xs 00061000 fd:00 3834538 /opt/ghtester/plugins/nu.xom_1.0.0.jar 8f1cf000-8f1d1000 r-xs 00339000 fd:00 3834731 /opt/ghtester/plugins/org.tmatesoft.svnkit_1.3.0.5847.jar 8f1d1000-8f1d5000 r-xs 0001a000 fd:00 3834623 /opt/ghtester/plugins/org.eclipse.jface.databinding_1.1.1.M20080207-0800.jar 8f1d5000-8f1d7000 r-xs 00009000 fd:00 3834584 /opt/ghtester/plugins/org.eclipse.core.filesystem_1.1.0.v20070606.jar 8f1d7000-8f1da000 r-xs 00012000 fd:00 3834578 /opt/ghtester/plugins/org.eclipse.core.contenttype_3.2.100.v20070319.jar 8f1da000-8f1dc000 r-xs 00001000 fd:00 3834606 /opt/ghtester/plugins/org.eclipse.equinox.jsp.jasper.registry_1.0.0.v20070607.jar 8f1dc000-8f1de000 r-xs 00007000 fd:00 3834485 /opt/ghtester/plugins/com.ghc.tools_1.0.0.20100427045121_10417.jar 8f1de000-8f1e0000 r-xs 0000a000 fd:00 3834487 /opt/ghtester/plugins/com.ghc.wm.bpm_1.0.0.20100427045121_10417.jar 8f1e0000-8f1e1000 r-xs 000d6000 fd:00 3834495 /opt/ghtester/plugins/com.jidesoft.jide_1.0.0.jar 8f1e1000-8f1e3000 r-xs 001d2000 fd:00 3834537 /opt/ghtester/plugins/net.sourceforge.saxon_9.0.0.jar 8f1e3000-8f1e6000 r-xs 00018000 fd:00 3834403 /opt/ghtester/plugins/com.ghc.iprocess_1.0.0.20100427045121_10417.jar 8f1e6000-8f1e8000 r-xs 00008000 fd:00 3834579 /opt/ghtester/plugins/org.eclipse.core.databinding.beans_1.0.1.M20070910-0800b.jar 8f1e8000-8f1ea000 r-xs 00002000 fd:00 3834600 /opt/ghtester/plugins/org.eclipse.cvs_1.0.2.r33x_r20080129.jar 8f1ea000-8f1ec000 r-xs 0000c000 fd:00 3834636 /opt/ghtester/plugins/org.eclipse.team.cvs.ssh_3.2.100.I20061208.jar 8f1ec000-8f1ef000 r-xs 0029e000 fd:00 3834380 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20HTTP_20and_20Web_20Services.jar 8f1ef000-8f1f1000 r-xs 00174000 fd:00 3834391 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20SonicMQ.jar 8f1f1000-8f1f9000 r-xs 000a4000 fd:00 3834663 /opt/ghtester/plugins/org.mortbay.jetty_5.1.11.v200706111724.jar 8f1f9000-8f200000 r-xs 00049000 fd:00 3834640 /opt/ghtester/plugins/org.eclipse.ui.cheatsheets_3.3.0.v20070507.jar 8f200000-8f241000 r-xs 00353000 fd:00 3834652 /opt/ghtester/plugins/org.eclipse.ui.workbench_3.3.2.M20080207-0800.jar 8f241000-8f242000 r-xs 000a6000 fd:00 3834506 /opt/ghtester/plugins/com.sun.mysql_5.1.7.jar 8f242000-8f243000 r-xs 00003000 fd:00 3834470 /opt/ghtester/plugins/com.ghc.ofac_1.0.0.jar 8f243000-8f246000 r-xs 0001d000 fd:00 3834542 /opt/ghtester/plugins/org.apache.commons.el_1.0.0.v200706111724.jar 8f246000-8f247000 r-xs 0016c000 fd:00 3834551 /opt/ghtester/plugins/org.apache.maven.axis_1.4.0.jar 8f247000-8f249000 r-xs 00223000 fd:00 3834722 /opt/ghtester/plugins/org.tigris.subversion.clientadapter.javahl.win32_1.6.4.jar 8f249000-8f24a000 r-xs 00000000 fd:00 3834411 /opt/ghtester/plugins/com.ghc.jmx.wl_1.0.0.20100427045121_10417.jar 8f24a000-8f252000 r-xs 00085000 fd:00 3834468 /opt/ghtester/plugins/com.ghc.migration.integra_1.0.0.20100427045121_10417.jar 8f252000-8f258000 r-xs 00032000 fd:00 3834409 /opt/ghtester/plugins/com.ghc.jms_1.0.0.20100427045121_10417.jar 8f258000-8f25a000 r-xs 0000a000 fd:00 3834644 /opt/ghtester/plugins/org.eclipse.ui.ide.application_1.0.0.I20070530-0100.jar 8f25a000-8f25c000 r-xs 0008b000 fd:00 3834385 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20and_20Files.jar 8f25c000-8f25f000 r-xs 00014000 fd:00 3834597 /opt/ghtester/plugins/org.eclipse.core.runtime.compatibility_3.1.200.v20070502.jar 8f25f000-8f260000 r-xs 00000000 fd:00 3834371 /opt/ghtester/plugins/com.ghc.ghTester.probe.application_1.0.0.20100427045121_10417.jar 8f260000-8f26a000 r-xs 0006a000 fd:00 3834630 /opt/ghtester/plugins/org.eclipse.search_3.3.1.r331_v20070831-0800.jar 8f26a000-8f26d000 r-xs 00311000 fd:00 3834382 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20Source_20Control_20Management.jar 8f26d000-8f26e000 r-xs 00000000 fd:00 3834370 /opt/ghtester/plugins/com.ghc.ghTester.libraryManager.application_1.0.0.20100427045121_10417.jar 8f26e000-8f272000 r-xs 00016000 fd:00 3834577 /opt/ghtester/plugins/org.eclipse.core.commands_3.3.0.I20070605-0010.jar 8f272000-8f278000 r-xs 00041000 fd:00 3834726 /opt/ghtester/plugins/org.tigris.subversion.subclipse.core_1.6.5.jar 8f278000-8f279000 r-xs 0003e000 fd:00 3834543 /opt/ghtester/plugins/org.apache.commons.httpclient_3.0.0.jar 8f279000-8f27d000 r-xs 00017000 fd:00 3834647 /opt/ghtester/plugins/org.eclipse.ui.navigator.resources_3.3.1.M20070831-2000.jar 8f27d000-8f27e000 r-xs 00058000 fd:00 3834565 /opt/ghtester/plugins/org.apache.xml.security_1.4.1.jar 8f27e000-8f284000 r-xs 00022000 fd:00 3834359 /opt/ghtester/plugins/com.ghc.eclipse_1.0.0.20100427045121_10417.jar 8f284000-8f289000 r-xs 00023000 fd:00 3834477 /opt/ghtester/plugins/com.ghc.registry_1.0.0.20100427045121_10417.jar 8f289000-8f28c000 r-xs 0035c000 fd:00 3834376 /opt/ghtester/plugins/com.ghc.help.GH_20Performance_20Tester.jar 8f28c000-8f290000 r-xs 0001b000 fd:00 3834728 /opt/ghtester/plugins/org.tigris.subversion.subclipse.graph_1.0.7.jar 8f290000-8f295000 r-xs 00034000 fd:00 3834489 /opt/ghtester/plugins/com.ghc.wm_1.0.0.20100427045121_10417.jar 8f295000-8f296000 r-xs 0005f000 fd:00 3834357 /opt/ghtester/plugins/com.ghc.commons.vfs_1.0.0.jar 8f296000-8f297000 r-xs 00002000 fd:00 3834527 /opt/ghtester/plugins/info.clearthought.tablelayout_1.0.0.jar 8f297000-8f29a000 r-xs 001fb000 fd:00 3834381 /opt/ghtester/plugins/com.ghc.help.GH_20Tester_20Installation.jar 8f29a000-8f2a2000 r-xs 00032000 fd:00 3834531 /opt/ghtester/plugins/javax.xml_1.3.4.v200806030440.jar 8f2a2000-8f2a3000 r-xs 00042000 fd:00 3834561 /opt/ghtester/plugins/org.apache.wss4j_1.5.3.jar 8f2a3000-8f2aa000 r-xs 00065000 fd:00 3834720 /opt/ghtester/plugins/com.collabnet.subversion.merge_1.10.0.jar 8f2aa000-8f2b2000 r-xs 00065000 fd:00 3834550 /opt/ghtester/plugins/org.apache.lucene_1.9.1.v200706111724.jar 8f2b2000-8f2b3000 r-xs 00023000 fd:00 3834660 /opt/ghtester/plugins/org.jdom_1.0.0.jar 8f2b3000-8f2c6000 r-xs 000dc000 fd:00 3834625 /opt/ghtester/plugins/org.eclipse.jface_3.3.2.M20080207-0800.jar 8f2c6000-8f2ea000 r-xs 0019a000 fd:00 3834730 /opt/ghtester/plugins/org.tigris.subversion.subclipse.ui_1.6.5.jar 8f2ea000-8f300000 r-xs 000e7000 fd:00 3834356 /opt/ghtester/plugins/com.ghc.common_1.0.0.20100427045121_10417.jar 8f300000-8f400000 rwxp 8f300000 00:00 0 8f400000-8f401000 r-xs 00c7e000 fd:00 3834657 /opt/ghtester/plugins/org.hibernate.entitymanager_3.4.0.jar 8f401000-8f403000 r-xs 00004000 fd:00 3834401 /opt/ghtester/plugins/com.ghc.inacha_1.0.0.jar 8f403000-8f407000 r-xs 00024000 fd:00 3834617 /opt/ghtester/plugins/org.eclipse.equinox.registry_3.3.1.R33x_v20070802.jar 8f407000-8f40d000 r-xs 00237000 fd:00 3834727 /opt/ghtester/plugins/org.tigris.subversion.subclipse.doc_1.3.0.jar 8f40d000-8f461000 rwxp 8f40d000 00:00 0 8f461000-8f4af000 rwxp 8f461000 00:00 0 8f4af000-8f4b2000 --xp 8f4af000 00:00 0 8f4b2000-8f500000 rwxp 8f4b2000 00:00 0 8f500000-8f5ff000 rwxp 8f500000 00:00 0 8f5ff000-8f600000 --xp 8f5ff000 00:00 0 8f600000-8f602000 r-xs 00001000 fd:00 3834536 /opt/ghtester/plugins/net.sourceforge.opencsv_1.8.0.jar 8f602000-8f605000 r-xs 00018000 fd:00 3834530 /opt/ghtester/plugins/javax.servlet_2.4.0.v200706111738.jar 8f605000-8f606000 r-xs 0000d000 fd:00 3834547 /opt/ghtester/plugins/org.apache.commons.pool_1.3.0.jar 8f606000-8f608000 r-xs 00016000 fd:00 3834564 /opt/ghtester/plugins/org.apache.xml.resolver_1.2.0.v200806030312.jar 8f608000-8f60b000 r-xs 00010000 fd:00 3834650 /opt/ghtester/plugins/org.eclipse.ui.views_3.2.101.M20080207-0800.jar 8f60b000-8f60c000 r-xs 00005000 fd:00 3834583 /opt/ghtester/plugins/org.eclipse.core.filesystem.linux.x86_1.1.0.v20070416.jar 8f60c000-8f60e000 r-xs 00003000 fd:00 3834618 /opt/ghtester/plugins/org.eclipse.help.appserver_3.1.200.v20070510.jar 8f60e000-8f60f000 r-xs 00005000 fd:00 3834476 /opt/ghtester/plugins/com.ghc.registry.centrasite80_1.0.0.20100427045121_10417.jar 8f60f000-8f610000 r-xs 00000000 fd:00 3834414 /opt/ghtester/plugins/com.ghc.mercuryTest.application_1.0.0.20100427045121_10417.jar 8f610000-8f617000 r-xs 00036000 fd:00 3834580 /opt/ghtester/plugins/org.eclipse.core.databinding_1.0.1.M20070822-0800.jar 8f617000-8f61a000 r-xs 00018000 fd:00 3834582 /opt/ghtester/plugins/org.eclipse.core.filebuffers_3.3.1.r331_v20070829.jar 8f61a000-8f61c000 r-xs 00010000 fd:00 3834598 /opt/ghtester/plugins/org.eclipse.core.runtime_3.3.100.v20070530.jar 8f61c000-8f66d000 rwxp 8f61c000 00:00 0 8f66d000-8f67b000 r-xs 000d5000 fd:00 3834628 /opt/ghtester/plugins/org.eclipse.osgi_3.3.2.R33x_v20080105.jar 8f67b000-8f682000 r-xs 000f9000 fd:00 494232 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/resources.jar 8f682000-8f683000 --xp 8f682000 00:00 0 8f683000-8f754000 rwxp 8f683000 00:00 0 8f754000-8f755000 --xp 8f754000 00:00 0 8f755000-8f7d5000 rwxp 8f755000 00:00 0 8f7d5000-8f7d6000 --xp 8f7d5000 00:00 0 8f7d6000-8f8a7000 rwxp 8f7d6000 00:00 0 8f8a7000-8faa7000 r-xp 00000000 fd:00 25204518 /usr/lib/locale/locale-archive 8faa7000-8fb49000 rwxp 8faa7000 00:00 0 8fb49000-8fb4a000 --xp 8fb49000 00:00 0 8fb4a000-8fbca000 rwxp 8fb4a000 00:00 0 8fbca000-8fbfd000 rwxp 8fbca000 00:00 0 8fbfd000-8fd8e000 r-xs 033e8000 fd:00 494233 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/rt.jar 8fd8e000-8fd8f000 --xp 8fd8e000 00:00 0 8fd8f000-8fe0f000 rwxp 8fd8f000 00:00 0 8fe0f000-8fe10000 --xp 8fe0f000 00:00 0 8fe10000-940f0000 rwxp 8fe10000 00:00 0 940f0000-97e90000 rwxp 940f0000 00:00 0 97e90000-99ee0000 rwxp 97e90000 00:00 0 99ee0000-b45b0000 rwxp 99ee0000 00:00 0 b45b0000-b7e50000 rwxp b45b0000 00:00 0 b7e50000-b7e90000 rwxp b7e50000 00:00 0 b7e90000-b7e91000 r-xs 00001000 fd:00 3834412 /opt/ghtester/plugins/com.ghc.jmx_1.0.0.20100427045121_10417.jar b7e91000-b7e93000 r-xs 00016000 fd:00 3834654 /opt/ghtester/plugins/org.eclipse.update.configurator_3.2.101.R33x_v20070810.jar b7e93000-b7e95000 r-xs 00015000 fd:00 3834602 /opt/ghtester/plugins/org.eclipse.equinox.common_3.3.0.v20070426.jar b7e95000-b7e99000 r-xs 00079000 fd:00 494224 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/jsse.jar b7e99000-b7e9b000 r-xs 00009000 fd:00 3834615 /opt/ghtester/plugins/org.eclipse.equinox.launcher_1.0.1.R33x_v20080118.jar b7e9b000-b7e9c000 --xp b7e9b000 00:00 0 b7e9c000-b7eec000 rwxp b7e9c000 00:00 0 b7eec000-b7eee000 rw-p b7eec000 00:00 0 b7eee000-b7ef6000 r--s 00061000 fd:00 494146 /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/ext/gnome-java-bridge.jar b7ef6000-b7efe000 rw-s 00000000 fd:00 14942317 /tmp/hsperfdata_saskia/29451 b7efe000-b7eff000 rwxp b7efe000 00:00 0 b7eff000-b7f00000 r--p b7eff000 00:00 0 b7f00000-b7f01000 rw-p b7f00000 00:00 0 bfdc9000-bfddc000 rwxp bffea000 00:00 0 [stack] bfddc000-bfdde000 rw-p bfffd000 00:00 0 VM Arguments: jvm_args: -Xmx512m -Dgreenhat.ghtester.port=6885 -Dgreenhat.ghtester.http.port=8888 -Dgreenhat.net.defaultnetworkdevice=lo -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl -Djavax.xml.xpath.XPathFactory:http://java.sun.com/jaxp/xpath/dom=net.sf.saxon.xpath.XPathFactoryImpl -Djava.util.logging.config.file=./logging.properties java_command: org.eclipse.core.launcher.Main -clean -data @user.home/.ghTester5/main-workspace -ws gtk Launcher Type: SUN_STANDARD Environment Variables: CLASSPATH=:/opt/PrismTech/OpenSpliceDDS/V4.2/HDE/x86.linux2.6/jar/dcpssaj.jar:/opt/PrismTech/OpenSpliceDDS/V4.2/HDE/x86.linux2.6/jar/dcpscj.jar:/opt/PrismTech/OpenSpliceDDS/V4.2/HDE/x86.linux2.6/jar/dlrlsaj.jar PATH=/opt/CollabNet_Subversion/bin:/opt/PrismTech/OpenSpliceDDS/V4.2/HDE/x86.linux2.6/bin:/opt/eclipse/dropins/prqa/eclipse/plugins/com.programmingresearch.qa.cpp.hicppcm_1.4.3/os/linux/x86:.:/opt/prqa/qacpp-2.5.1R/bin:/opt/prqa/qacpp-2.5.1R/bin:/opt/CollabNet_Subversion/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/saskia/bin:/opt:/opt/eclipse: USERNAME=saskia LD_LIBRARY_PATH=/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386/server:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/lib/i386:/usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0/jre/../lib/i386:/opt/PrismTech/OpenSpliceDDS/V4.2/HDE/x86.linux2.6/lib:/usr/local/lib:/opt/tibco/ems/5.1/lib SHELL=/bin/bash DISPLAY=:0.0 Signal Handlers: SIGSEGV: [libjvm.so+0x598c80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGBUS: [libjvm.so+0x598c80], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGFPE: [libjvm.so+0x4870b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGPIPE: [libjvm.so+0x4870b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGXFSZ: [libjvm.so+0x4870b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGILL: [libjvm.so+0x4870b0], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000000 SIGUSR2: [libjvm.so+0x489970], sa_mask[0]=0x00000000, sa_flags=0x10000004 SIGHUP: [libjvm.so+0x488680], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGINT: [libjvm.so+0x488680], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGTERM: [libjvm.so+0x488680], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 SIGQUIT: [libjvm.so+0x488680], sa_mask[0]=0x7ffbfeff, sa_flags=0x10000004 --------------- S Y S T E M --------------- OS:Red Hat Enterprise Linux Client release 5.4 (Tikanga) uname:Linux 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:54 EDT 2009 i686 libc:glibc 2.5 NPTL 2.5 rlimit: STACK 10240k, CORE 0k, NPROC 48282, NOFILE 1024, AS infinity load average:0.22 0.24 0.20 CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 7 stepping 10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3 Memory: 4k page, physical 3060620k(685904k free), swap 5111800k(5111648k free) vm_info: OpenJDK Server VM (1.6.0-b09) for linux-x86 JRE (1.6.0-b09), built on Aug 5 2009 11:14:38 by "mockbuild" with gcc 4.1.2 20080704 (Red Hat 4.1.2-44) time: Wed May 26 15:17:16 2010 elapsed time: 99 seconds -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu May 27 07:55:58 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 14:55:58 +0000 Subject: [Bug 501] OpenJDK SIGSEGV [libjvm.so+0x1c1937] Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=501 ------- Comment #1 from aph at redhat.com 2010-05-27 14:55 ------- If you're seeing this in an installed Red Hat Enterprise Linux system, you shoule probably report this to bugzilla.redhat.com . That way, our customer service people can track the problem. We'll also need to know exactly what version of OpenJDK is in use. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu May 27 08:42:13 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 15:42:13 +0000 Subject: [Bug 489] javac crashed on low ulimit -n Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=489 dlila at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |dlila at redhat.com AssignedTo|unassigned at icedtea.classpath|dlila at redhat.com |.org | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu May 27 08:42:46 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 15:42:46 +0000 Subject: [Bug 490] OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 dlila at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|unassigned at icedtea.classpath|dlila at redhat.com |.org | -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. You are the assignee for the bug, or are watching the assignee. From ludo at gnu.org Thu May 27 08:48:47 2010 From: ludo at gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Date: Thu, 27 May 2010 17:48:47 +0200 Subject: IcedTea/OpenJDK bootstrapping issue In-Reply-To: <201004071630.30325.mvyskocil@suse.cz> (Michal Vyskocil's message of "Wed, 7 Apr 2010 16:30:24 +0200") References: <878wbrwpli.fsf@gnu.org> <17c6771e1001210718y179d75feufe060fcfd99d2821@mail.gmail.com> <87pr3farln.fsf@gnu.org> <201004071630.30325.mvyskocil@suse.cz> Message-ID: <8739xdl50g.fsf@inria.fr> Hi, Reviving an old thread... Michal Vyskocil writes: > On Monday 08 March 2010 02:08:20 pm Ludovic Court?s wrote: >> Hi, >> >> Andrew John Hughes writes: >> > 2010/1/21 Ludovic Court?s : >> >> Andrew John Hughes writes: >> [...] >> >> >>> Does ant work for you with other builds? >> >> >> >> Yes. This version of Ant was built with GCJ. It was then used to >> >> compile things like Xalan, Xerces, and Rhino. >> > >> > It seems something is broken with regard to Ant. The fact it's >> > looking for tools.jar in your gcj home directory rather than >> > bootstrap/jdk1.6.0 suggests it's ignoring the setting of >> > bootstrap.java.home. Have you checked that bootstrap/jd1.6.0 has a >> > valid jar file in jre/lib/rt.jar? I would guess it does as the >> > earlier stages have worked, but Ant is reverting to your system >> > install. >> >> Perhaps I should have started with this: how did you build the Ant >> that?s used to build IcedTea? >> >> I built it with GCJ, but Ant?s manual says it isn?t supported [0]. >> I patched ?build.properties? to set ?build.compiler? to ?gcj? [1]. In >> addition I have gross hacks to make gcj/gij available as javac/java >> while building Ant itself [2]. > > The easiest way is simulate the Sun layout - see > > http://sources.redhat.com/rhug/java-gcj-compat.html > ftp://sources.redhat.com/pub/rhug/java-gcj-compat > > It create a structure similar to Sun's layout, so you don't need patch > anything, just use java-gcj-compat-devel as a build dependency. Not sure if > the gcj 4.4 layout support Andrew mentioned does not obsolete it. With GCJ 4.5 compiled with --enable-java-home, etc. (as mentioned in this thread) the resulting Ant happily finds tools.jar. However, Ant ignores the ?javac.executable? property, thus leading it to keep using GCJ instead of the bootstrap javac while building IcedTea: --8<---------------cut here---------------start------------->8--- ANT_OPTS=-Djava.io.tmpdir='/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/build/ant-tmp' ant -Djdk.version=1.6.0_0 -Dfull.version='1.6.0_0-b16' -Drelease=1.6.0_0 -Dbuild.number=b16 -Djavac.debug=true -Djavac.target=5 -Dboot.java.home=/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/bootstrap/jdk1.6.0 -Djavac.executable=/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/bootstrap/jdk1.6.0/bin/javac -Dbuild.dir=/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/build -Ddist.dir=/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/dist -Dfindbugs.home=/NOT-SET/devtools/share/findbugs/latest build Buildfile: build.xml -def-check: -check-boot.java.home: -def-pcompile: [mkdir] Created dir: /tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/build/toolclasses [javac] Compiling 2 source files to /tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/build/toolclasses [javac] ---------- [javac] 1. ERROR in /tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/langtools/make/tools/CompileProperties/CompileProperties.java (at line 1) [javac] /* [javac] ^ [javac] The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files --8<---------------cut here---------------end--------------->8--- $ANT_OPTS above points it to the bootstrap javac, which was successfully built, but Ant uses GCJ anyway. This is with Ant 1.7.1. Can someone point me to instructions to build Ant as used for building IcedTea? Thanks, Ludo?. From bugzilla-daemon at icedtea.classpath.org Thu May 27 08:51:06 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 15:51:06 +0000 Subject: [Bug 501] OpenJDK SIGSEGV [libjvm.so+0x1c1937] Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=501 gnu_andrew at member.fsf.org changed: What |Removed |Added ---------------------------------------------------------------------------- Platform|32-bit |x86 Version|unspecified |6-1.2 ------- Comment #2 from gnu_andrew at member.fsf.org 2010-05-27 15:51 ------- This is IcedTea6 1.2 using OpenJDK6 b09, as indicated in the output provided. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From ahughes at redhat.com Thu May 27 08:56:24 2010 From: ahughes at redhat.com (Andrew John Hughes) Date: Thu, 27 May 2010 16:56:24 +0100 Subject: IcedTea/OpenJDK bootstrapping issue In-Reply-To: <8739xdl50g.fsf@inria.fr> References: <878wbrwpli.fsf@gnu.org> <17c6771e1001210718y179d75feufe060fcfd99d2821@mail.gmail.com> <87pr3farln.fsf@gnu.org> <201004071630.30325.mvyskocil@suse.cz> <8739xdl50g.fsf@inria.fr> Message-ID: On 27 May 2010 16:48, Ludovic Court?s wrote: > Hi, > > Reviving an old thread... > > Michal Vyskocil writes: > >> On Monday 08 March 2010 02:08:20 pm Ludovic Court?s wrote: >>> Hi, >>> >>> Andrew John Hughes writes: >>> > 2010/1/21 Ludovic Court?s : >>> >> Andrew John Hughes writes: >>> [...] >>> >>> >>> Does ant work for you with other builds? >>> >> >>> >> Yes. ?This version of Ant was built with GCJ. ?It was then used to >>> >> compile things like Xalan, Xerces, and Rhino. >>> > >>> > It seems something is broken with regard to Ant. ?The fact it's >>> > looking for tools.jar in your gcj home directory rather than >>> > bootstrap/jdk1.6.0 suggests it's ignoring the setting of >>> > bootstrap.java.home. ?Have you checked that bootstrap/jd1.6.0 has a >>> > valid jar file in jre/lib/rt.jar? ?I would guess it does as the >>> > earlier stages have worked, but Ant is reverting to your system >>> > install. >>> >>> Perhaps I should have started with this: how did you build the Ant >>> that?s used to build IcedTea? >>> >>> I built it with GCJ, but Ant?s manual says it isn?t supported [0]. >>> I patched ?build.properties? to set ?build.compiler? to ?gcj? [1]. ?In >>> addition I have gross hacks to make gcj/gij available as javac/java >>> while building Ant itself [2]. >> >> The easiest way is simulate the Sun layout - see >> >> http://sources.redhat.com/rhug/java-gcj-compat.html >> ftp://sources.redhat.com/pub/rhug/java-gcj-compat >> >> It create a structure similar to Sun's layout, so you don't need patch >> anything, just use java-gcj-compat-devel as a build dependency. Not sure if >> the gcj 4.4 layout support Andrew mentioned does not obsolete it. > > With GCJ 4.5 compiled with --enable-java-home, etc. (as mentioned in > this thread) the resulting Ant happily finds tools.jar. > > However, Ant ignores the ?javac.executable? property, thus leading it to > keep using GCJ instead of the bootstrap javac while building IcedTea: > > --8<---------------cut here---------------start------------->8--- > ANT_OPTS=-Djava.io.tmpdir='/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/build/ant-tmp' ant -Djdk.version=1.6.0_0 -Dfull.version='1.6.0_0-b16' ?-Drelease=1.6.0_0 -Dbuild.number=b16 -Djavac.debug=true -Djavac.target=5 -Dboot.java.home=/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/bootstrap/jdk1.6.0 -Djavac.executable=/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/bootstrap/jdk1.6.0/bin/javac -Dbuild.dir=/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/build -Ddist.dir=/tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/dist -Dfindbugs.home=/NOT-SET/devtools/share/findbugs/latest build > Buildfile: build.xml > > -def-check: > > -check-boot.java.home: > > -def-pcompile: > ? ?[mkdir] Created dir: /tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/build/toolclasses > ? ?[javac] Compiling 2 source files to /tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/build/linux-amd64/langtools/build/toolclasses > ? ?[javac] ---------- > ? ?[javac] 1. ERROR in /tmp/nix-build-is9x5fclzbsh79zpy2hgrw1d3izkylf9-icedtea6-1.6.1.drv-0/icedtea6-1.6.1/openjdk-ecj/langtools/make/tools/CompileProperties/CompileProperties.java (at line 1) > ? ?[javac] ? ? /* > ? ?[javac] ? ? ^ > ? ?[javac] The type java.lang.Object cannot be resolved. It is indirectly referenced from required .class files > --8<---------------cut here---------------end--------------->8--- > > $ANT_OPTS above points it to the bootstrap javac, which was successfully > built, but Ant uses GCJ anyway. > > This is with Ant 1.7.1. > > Can someone point me to instructions to build Ant as used for building > IcedTea? > > Thanks, > Ludo?. > Sounds like your ant is broken if it is ignoring boot.java.home. I suggest you contact your distro provider. -- Andrew :-) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8 From bugzilla-daemon at icedtea.classpath.org Thu May 27 09:02:03 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 16:02:03 +0000 Subject: [Bug 490] OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 dlila at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- AssignedTo|dlila at redhat.com |unassigned at icedtea.classpath | |.org -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From ludo at gnu.org Thu May 27 09:27:56 2010 From: ludo at gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Date: Thu, 27 May 2010 18:27:56 +0200 Subject: IcedTea/OpenJDK bootstrapping issue In-Reply-To: (Andrew John Hughes's message of "Thu, 27 May 2010 16:56:24 +0100") References: <878wbrwpli.fsf@gnu.org> <17c6771e1001210718y179d75feufe060fcfd99d2821@mail.gmail.com> <87pr3farln.fsf@gnu.org> <201004071630.30325.mvyskocil@suse.cz> <8739xdl50g.fsf@inria.fr> Message-ID: <87k4qpjomr.fsf@gnu.org> Hi Andrew, Andrew John Hughes writes: > Sounds like your ant is broken if it is ignoring boot.java.home. No. It ignores javac.executable. > I suggest you contact your distro provider. Heh, I guess that?s me. :-) I?m trying to package IcedTea, which is why I?m writing to distro-pkg-dev. Thanks, Ludo?. From bugzilla-daemon at icedtea.classpath.org Thu May 27 12:29:42 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 19:29:42 +0000 Subject: [Bug 455] stack on java's web page Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=455 ------- Comment #1 from asu at redhat.com 2010-05-27 19:29 ------- Hello Fernando, Could you please provide more information? Such as your java version (java -version) and a way to reproduce this. Thanks, -Andrew -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu May 27 13:05:32 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 20:05:32 +0000 Subject: [Bug 392] 3D game shows with a too big scale Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=392 ------- Comment #2 from asu at redhat.com 2010-05-27 20:05 ------- Hello Juan, I am unable to reproduce this bug. The cubes at the bottom are click-able and also view-able, the only cubes that I cannot get to is the ones hidden behind another block. Please try and use a newer version of icedtea or provide more information on this issue. (Works for me) Cheers, -Andrew -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu May 27 13:43:46 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 20:43:46 +0000 Subject: [Bug 392] 3D game shows with a too big scale Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=392 jon.vanalten at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |WORKSFORME ------- Comment #3 from jon.vanalten at redhat.com 2010-05-27 20:43 ------- Hi, I tried this soon after it was reported and saw the issue at that time. But, at this time it is working for me. Possibly related to the fact that the browser plugin underwent a rewrite. As of Icedtea6 1.8 the new plugin is used by default (see 1.8 release notes here: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100414/58d9f1ef/attachment-0001.txt). Almost certainly no further work will be done on the old plugin. Please reopen if this problem is observed using 1.8 or newer. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From bugzilla-daemon at icedtea.classpath.org Thu May 27 16:25:55 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Thu, 27 May 2010 23:25:55 +0000 Subject: [Bug 490] OpenOffice crashes due to a JRE fatal error Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=490 ------- Comment #7 from tim at dotsec.com 2010-05-27 23:25 ------- Hi all! Just a quick note to confirm that the error is something to do with KDE and the way that it handles the file system. I'm not clued enough to know exactly what the details are, but I've been running Gnome for a couple of weeks now, and have not seen the error at all. I'm happy to revert to KDE to do any bug testing if that will help. Thanks, Tim. -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Fri May 28 04:43:29 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 28 May 2010 11:43:29 +0000 Subject: /hg/icedtea: 5 new changesets Message-ID: changeset 3c4a53467c72 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3c4a53467c72 author: Deepak Bhole date: Mon Feb 22 16:54:32 2010 -0500 Centralized and increased timeouts to give slow-loading applets enough time to load. changeset e84a0f2d1198 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=e84a0f2d1198 author: Xerxes R?nby date: Sun Feb 21 16:24:11 2010 +0100 Update Shark for LLVM r95390 API change. 2010-02-21 Xerxes R?nby * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp (MCPU): Explicitly defined for use by LLVM command line parser. (MAttrs): Likewise. (SharkCompiler::SharkCompiler): Create the JIT using LLVM EngineBuilder in order to explicitly set MCPU and MAttrs when using LLVM 2.7. * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp: Include llvm/ExecutionEngine/JIT.h for LLVM 2.7 to make sure the JIT are linked in. changeset c6ae89cfecdb in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=c6ae89cfecdb author: Andrew John Hughes date: Sun Feb 21 12:38:45 2010 +0000 Add missing -debug suffix in icedtea-debug.stamp target. 2010-02-21 Andrew John Hughes * Makefile.am: (icedtea-debug.stamp): Add missing -debug on end of $(BUILD_OUTPUT_DIR). changeset 9155cdff48d1 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=9155cdff48d1 author: Gary Benson date: Tue Feb 23 09:01:28 2010 +0000 Comment fix changeset a29dbceee050 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=a29dbceee050 author: Gary Benson date: Fri May 28 12:42:07 2010 +0100 Add 2010 to some copyright headers that were missing it 2010-02-23 Gary Benson * ports/hotspot/make/linux/makefiles/shark.make: Update copyright. * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkContext.hpp: Likewise. diffstat: 8 files changed, 84 insertions(+), 24 deletions(-) ChangeLog | 33 +++++++++++++ Makefile.am | 16 +++--- plugin/icedteanp/java/sun/applet/PluginAppletViewer.java | 10 ++-- ports/hotspot/make/linux/makefiles/shark.make | 4 - ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 8 +-- ports/hotspot/src/share/vm/shark/llvmHeaders.hpp | 1 ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 34 ++++++++++++-- ports/hotspot/src/share/vm/shark/sharkContext.hpp | 2 diffs (254 lines): diff -r cf649a549a40 -r a29dbceee050 ChangeLog --- a/ChangeLog Fri Feb 19 14:19:25 2010 +0000 +++ b/ChangeLog Fri May 28 12:42:07 2010 +0100 @@ -1,3 +1,36 @@ 2010-02-19 Andrew John Hughes + + * ports/hotspot/make/linux/makefiles/shark.make: Update copyright. + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkContext.hpp: Likewise. + +2010-02-23 Gary Benson + + * ports/hotspot/make/linux/makefiles/shark.make: Comment fix. + +2010-02-21 Andrew John Hughes + + * Makefile.am: + (icedtea-debug.stamp): Add missing -debug on + end of $(BUILD_OUTPUT_DIR). + +2010-02-21 Xerxes R??nby + + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp + (MCPU): Explicitly defined for use by LLVM command line parser. + (MAttrs): Likewise. + (SharkCompiler::SharkCompiler): Create the JIT using LLVM EngineBuilder + in order to explicitly set MCPU and MAttrs when using LLVM 2.7. + * ports/hotspot/src/share/vm/shark/llvmHeaders.hpp: + Include llvm/ExecutionEngine/JIT.h for LLVM 2.7 to make sure the + JIT are linked in. + +2010-02-22 Deepak Bhole + + * plugin/icedteanp/java/sun/applet/PluginAppletViewer.java: Centralized + and increased timeouts to give slow-loading applets enough time to load. + 2010-02-19 Andrew John Hughes * acinclude.m4: diff -r cf649a549a40 -r a29dbceee050 Makefile.am --- a/Makefile.am Fri Feb 19 14:19:25 2010 +0000 +++ b/Makefile.am Fri May 28 12:42:07 2010 +0100 @@ -1844,31 +1844,31 @@ if WITH_CACAO printf -- '-cacao ALIASED_TO -server\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg endif if ENABLE_SYSTEMTAP - mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset ; \ + mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset ; \ grep "client IGNORE" $(BUILD_JRE_ARCH_DIR)/jvm.cfg; \ if test $$? -eq 0; then \ sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot.stp \ - > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ + > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot_jni.stp \ - > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ + > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot_jni.stp; \ else \ cp $(abs_top_builddir)/tapset/hotspot.stp \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ + $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ + $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot_jni.stp; \ fi; \ cp $(abs_top_builddir)/tapset/jstack.stp \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp + $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/jstack.stp endif if ENABLE_NSS cp $(abs_top_builddir)/nss.cfg \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; + $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security; endif if WITH_TZDATA_DIR cp $(abs_top_builddir)/tz.properties \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; + $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib; endif @echo "IcedTea is served:" $(BUILD_OUTPUT_DIR) mkdir -p stamps diff -r cf649a549a40 -r a29dbceee050 plugin/icedteanp/java/sun/applet/PluginAppletViewer.java --- a/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Fri Feb 19 14:19:25 2010 +0000 +++ b/plugin/icedteanp/java/sun/applet/PluginAppletViewer.java Fri May 28 12:42:07 2010 +0100 @@ -177,7 +177,7 @@ import com.sun.jndi.toolkit.url.UrlUtil; Applet a; // Wait for panel to come alive - int maxWait = 5000; // wait 5 seconds max for panel to come alive + int maxWait = PluginAppletViewer.APPLET_TIMEOUT; // wait for panel to come alive int wait = 0; while ((panel == null) || (!((NetxPanel) panel).isAlive() && wait < maxWait)) { try { @@ -368,6 +368,8 @@ import com.sun.jndi.toolkit.url.UrlUtil; private long handle = 0; private WindowListener windowEventListener = null; private AppletEventListener appletEventListener = null; + + public static final int APPLET_TIMEOUT = 60000; /** * Null constructor to allow instantiation via newInstance() @@ -613,7 +615,7 @@ import com.sun.jndi.toolkit.url.UrlUtil; if (message.startsWith("handle")) { PluginDebug.debug("handle command waiting for applet to complete loading."); - int maxWait = 10000; // wait 10 seconds max for applet to fully load + int maxWait = APPLET_TIMEOUT; // wait for applet to fully load int wait = 0; while (!status.get(identifier).equals(PAV_INIT_STATUS.INIT_COMPLETE) && (wait < maxWait)) { @@ -660,7 +662,7 @@ import com.sun.jndi.toolkit.url.UrlUtil; if (message.startsWith("width")) { // Wait for panel to come alive - int maxWait = 5000; // wait 5 seconds max for panel to come alive + int maxWait = APPLET_TIMEOUT; // wait for panel to come alive int wait = 0; while (!status.get(identifier).equals(PAV_INIT_STATUS.INIT_COMPLETE) && wait < maxWait) { try { @@ -721,7 +723,7 @@ import com.sun.jndi.toolkit.url.UrlUtil; Object o; // Wait for panel to come alive - int maxWait = 5000; // wait 5 seconds max for panel to come alive + int maxWait = APPLET_TIMEOUT; // wait for panel to come alive int wait = 0; while ((panel == null) || (!((NetxPanel) panel).isAlive() && wait < maxWait)) { try { diff -r cf649a549a40 -r a29dbceee050 ports/hotspot/make/linux/makefiles/shark.make --- a/ports/hotspot/make/linux/makefiles/shark.make Fri Feb 19 14:19:25 2010 +0000 +++ b/ports/hotspot/make/linux/makefiles/shark.make Fri May 28 12:42:07 2010 +0100 @@ -1,6 +1,6 @@ # # Copyright 1999-2005 Sun Microsystems, Inc. All Rights Reserved. -# Copyright 2008 Red Hat, Inc. +# Copyright 2008, 2010 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 @@ -23,7 +23,7 @@ # # -# Sets make macros for making shark version of VM +# Sets make macros for making Shark version of VM TYPE = SHARK diff -r cf649a549a40 -r a29dbceee050 ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Fri Feb 19 14:19:25 2010 +0000 +++ b/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Fri May 28 12:42:07 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 2000-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -23,10 +23,8 @@ * */ -// -// Sets the default values for platform dependent flags used by the -// shark compiler. -// +// Set the default values for platform dependent flags used by the +// Shark compiler. See globals.hpp for details of what they do. define_pd_global(bool, BackgroundCompilation, true ); define_pd_global(bool, UseTLAB, true ); diff -r cf649a549a40 -r a29dbceee050 ports/hotspot/src/share/vm/shark/llvmHeaders.hpp --- a/ports/hotspot/src/share/vm/shark/llvmHeaders.hpp Fri Feb 19 14:19:25 2010 +0000 +++ b/ports/hotspot/src/share/vm/shark/llvmHeaders.hpp Fri May 28 12:42:07 2010 +0100 @@ -44,6 +44,7 @@ #include #include #if SHARK_LLVM_VERSION >= 27 +#include #include #include #include diff -r cf649a549a40 -r a29dbceee050 ports/hotspot/src/share/vm/shark/sharkCompiler.cpp --- a/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp Fri Feb 19 14:19:25 2010 +0000 +++ b/ports/hotspot/src/share/vm/shark/sharkCompiler.cpp Fri May 28 12:42:07 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2008, 2009 Red Hat, Inc. + * Copyright 2008, 2009, 2010 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 @@ -29,6 +29,17 @@ #include using namespace llvm; + +#if SHARK_LLVM_VERSION >= 27 +namespace { + cl::opt + MCPU("mcpu"); + + cl::list + MAttrs("mattr", + cl::CommaSeparated); +} +#endif SharkCompiler::SharkCompiler() : AbstractCompiler() @@ -77,9 +88,24 @@ SharkCompiler::SharkCompiler() cl::ParseCommandLineOptions(args.size() - 1, (char **) &args[0]); // Create the JIT - _execution_engine = ExecutionEngine::createJIT( - _normal_context->module(), - NULL, memory_manager(), CodeGenOpt::Default); + std::string ErrorMsg; + + EngineBuilder builder(_normal_context->module()); + builder.setMCPU(MCPU); + builder.setMAttrs(MAttrs); + builder.setJITMemoryManager(memory_manager()); + builder.setEngineKind(EngineKind::JIT); + builder.setErrorStr(&ErrorMsg); + _execution_engine = builder.create(); + + if (!execution_engine()) { + if (!ErrorMsg.empty()) + printf("Error while creating Shark JIT: %s\n",ErrorMsg.c_str()); + else + printf("Unknown error while creating Shark JIT\n"); + exit(1); + } + execution_engine()->addModule( _native_context->module()); #else diff -r cf649a549a40 -r a29dbceee050 ports/hotspot/src/share/vm/shark/sharkContext.hpp --- a/ports/hotspot/src/share/vm/shark/sharkContext.hpp Fri Feb 19 14:19:25 2010 +0000 +++ b/ports/hotspot/src/share/vm/shark/sharkContext.hpp Fri May 28 12:42:07 2010 +0100 @@ -1,6 +1,6 @@ /* * Copyright 1999-2007 Sun Microsystems, Inc. All Rights Reserved. - * Copyright 2009 Red Hat, Inc. + * Copyright 2009, 2010 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 From andrew at icedtea.classpath.org Fri May 28 05:59:29 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 28 May 2010 12:59:29 +0000 Subject: /hg/icedtea: Use a variable for the debug build output directory. Message-ID: changeset 6efc1920dff5 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=6efc1920dff5 author: Andrew John Hughes date: Fri May 28 13:59:18 2010 +0100 Use a variable for the debug build output directory. 2010-05-28 Andrew John Hughes * Makefile.am: (DEBUG_BUILD_OUTPUT_DIR): New variable to represent debug build output directory. (BUILD_DEBUG_JRE_ARCH_DIR): Use DEBUG_BUILD_OUTPUT_DIR. (icedtea): Remove errorneous use of -debug. (icedtea-debug): Replace use of -debug with DEBUG_BUILD_OUTPUT_DIR. diffstat: 2 files changed, 43 insertions(+), 32 deletions(-) ChangeLog | 10 +++++++++ Makefile.am | 65 +++++++++++++++++++++++++++++------------------------------ diffs (176 lines): diff -r a29dbceee050 -r 6efc1920dff5 ChangeLog --- a/ChangeLog Fri May 28 12:42:07 2010 +0100 +++ b/ChangeLog Fri May 28 13:59:18 2010 +0100 @@ -1,3 +1,13 @@ 2010-02-23 Gary Benson + + * Makefile.am: + (DEBUG_BUILD_OUTPUT_DIR): New variable to represent + debug build output directory. + (BUILD_DEBUG_JRE_ARCH_DIR): Use DEBUG_BUILD_OUTPUT_DIR. + (icedtea): Remove errorneous use of -debug. + (icedtea-debug): Replace use of -debug with + DEBUG_BUILD_OUTPUT_DIR. + 2010-02-23 Gary Benson * ports/hotspot/make/linux/makefiles/shark.make: Update copyright. diff -r a29dbceee050 -r 6efc1920dff5 Makefile.am --- a/Makefile.am Fri May 28 12:42:07 2010 +0100 +++ b/Makefile.am Fri May 28 13:59:18 2010 +0100 @@ -61,6 +61,7 @@ HOTSPOT_URL = $(ICEDTEA_HG_URL)/hotspot OS_DIR = $(BUILD_OS_DIR)-$(BUILD_ARCH_DIR) BUILD_OUTPUT_DIR = $(abs_top_builddir)/openjdk/build/$(OS_DIR) +DEBUG_BUILD_OUTPUT_DIR = $(BUILD_OUTPUT_DIR)-debug BOOT_BUILD_OUTPUT_DIR = openjdk-boot/build/$(OS_DIR) ICEDTEA_BUILD_DIR = \ $(abs_top_builddir)/$(BUILD_OUTPUT_DIR) @@ -82,7 +83,7 @@ ICEDTEA_CLS_DIR_BOOT = \ $(abs_top_builddir)/$(BOOT_BUILD_OUTPUT_DIR)/classes SERVER_DIR = hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server BUILD_JRE_ARCH_DIR = $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) -BUILD_DEBUG_JRE_ARCH_DIR = $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) +BUILD_DEBUG_JRE_ARCH_DIR = $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) # Source directories @@ -1844,31 +1845,31 @@ if WITH_CACAO printf -- '-cacao ALIASED_TO -server\n' >> $(BUILD_JRE_ARCH_DIR)/jvm.cfg endif if ENABLE_SYSTEMTAP - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset ; \ + mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset ; \ grep "client IGNORE" $(BUILD_JRE_ARCH_DIR)/jvm.cfg; \ if test $$? -eq 0; then \ sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot.stp \ - > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ + > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot_jni.stp \ - > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot_jni.stp; \ + > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ else \ cp $(abs_top_builddir)/tapset/hotspot.stp \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot_jni.stp; \ + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ fi; \ cp $(abs_top_builddir)/tapset/jstack.stp \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/jstack.stp + $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp endif if ENABLE_NSS cp $(abs_top_builddir)/nss.cfg \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security; + $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; endif if WITH_TZDATA_DIR cp $(abs_top_builddir)/tz.properties \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib; + $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; endif @echo "IcedTea is served:" $(BUILD_OUTPUT_DIR) mkdir -p stamps @@ -1883,40 +1884,40 @@ stamps/icedtea-debug.stamp: stamps/boots $(ICEDTEA_ENV) \ -C openjdk/ \ $(ICEDTEA_DEBUG_BUILD_TARGET) - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/ext - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/ext + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/ext if ENABLE_NPPLUGIN cp -pPRf $(PLUGIN_BUILD_DIR)/IcedTeaNPPlugin.so \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) cp -pPRf $(PLUGIN_BUILD_DIR)/IcedTeaNPPlugin.so \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) else if ENABLE_PLUGIN cp -pPRf $(PLUGIN_BUILD_DIR)/IcedTeaPlugin.so \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) cp -pPRf $(PLUGIN_BUILD_DIR)/IcedTeaPlugin.so \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) endif endif if ENABLE_PULSE_JAVA cp -pPRf libpulse-java.so \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) cp -pPRf libpulse-java.so \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) cp -pPRf pulse-java.jar \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/ext + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext cp -pPRf pulse-java.jar \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/ext + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/ext endif if JNLP_ABOUT_NEEDED cp $(NETX_RESOURCE_DIR)/default.jnlp \ extra-lib/about.jar \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib cp $(NETX_RESOURCE_DIR)/default.jnlp \ extra-lib/about.jar \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib endif if ZERO_BUILD printf -- '-zero ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg @@ -1928,34 +1929,34 @@ if WITH_CACAO printf -- '-cacao ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg endif if ENABLE_SYSTEMTAP - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset ; \ + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset ; \ grep "client IGNORE" $(BUILD_JRE_ARCH_DIR)/jvm.cfg; \ if test $$? -eq 0; then \ sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot.stp \ - > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ + > $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot_jni.stp \ - > $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ + > $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ else \ cp $(abs_top_builddir)/tapset/hotspot.stp \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ fi; \ cp $(abs_top_builddir)/tapset/jstack.stp \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp endif if ENABLE_NSS cp $(abs_top_builddir)/nss.cfg \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security; + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; endif if WITH_TZDATA_DIR cp $(abs_top_builddir)/tz.properties \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib; + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; endif @echo "IcedTea (debug build) is served:" \ - $(BUILD_OUTPUT_DIR)-debug + $(DEBUG_BUILD_OUTPUT_DIR) mkdir -p stamps touch $@ From andrew at icedtea.classpath.org Fri May 28 06:43:17 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 28 May 2010 13:43:17 +0000 Subject: /hg/icedtea: 3 new changesets Message-ID: changeset 9101193ed8b7 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=9101193ed8b7 author: Deepak Bhole date: Mon Feb 22 17:53:44 2010 -0500 - Fixed IcedTea Bug# 446: Use JDK_UPDATE_VERSION to set the jpi version. changeset 3b7e7b51b89f in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=3b7e7b51b89f author: Gary Benson date: Fri May 28 14:38:51 2010 +0100 Reformat Shark to match upstream HotSpot 2010-02-23 Gary Benson * ports/hotspot/src/share/vm/shark/sharkBlock.cpp: Reformatted with trailing opening braces to match upstream HotSpot. * ports/hotspot/src/share/vm/shark/sharkBlock.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCompiler.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkConstant.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkConstant.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkContext.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkContext.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkEntry.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkFunction.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkFunction.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkInliner.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkIntrinsics.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkInvariants.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkInvariants.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStack.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStack.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkState.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkState.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStateScanner.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStateScanner.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkType.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkValue.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkValue.hpp: Likewise. changeset 44d5f7a1a79b in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=44d5f7a1a79b author: Gary Benson date: Tue Feb 23 17:36:57 2010 +0000 Whitespace fixes 2010-02-23 Gary Benson * ports/hotspot/make/linux/makefiles/shark.make: Whitespace fixes. * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. * ports/hotspot/src/share/vm/includeDB_shark: Likewise. * ports/hotspot/src/share/vm/shark/sharkBlock.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBlock.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkContext.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkContext.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkFunction.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkFunction.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkInliner.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkInliner.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkInvariants.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStack.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStack.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkState.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkState.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStateScanner.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkStateScanner.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp: Likewise. * ports/hotspot/src/share/vm/shark/sharkValue.hpp: Likewise. diffstat: 45 files changed, 896 insertions(+), 1488 deletions(-) ChangeLog | 83 +++++ Makefile.am | 1 plugin/icedteanp/IcedTeaNPPlugin.cc | 4 ports/hotspot/make/linux/makefiles/shark.make | 2 ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp | 4 ports/hotspot/src/share/vm/includeDB_shark | 2 ports/hotspot/src/share/vm/shark/sharkBlock.cpp | 157 ++++------ ports/hotspot/src/share/vm/shark/sharkBlock.hpp | 85 ++--- ports/hotspot/src/share/vm/shark/sharkBuilder.cpp | 193 ++++--------- ports/hotspot/src/share/vm/shark/sharkBuilder.hpp | 14 ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp | 67 +--- ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp | 129 ++------ ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp | 18 - ports/hotspot/src/share/vm/shark/sharkCompiler.cpp | 36 +- ports/hotspot/src/share/vm/shark/sharkCompiler.hpp | 15 - ports/hotspot/src/share/vm/shark/sharkConstant.cpp | 9 ports/hotspot/src/share/vm/shark/sharkConstant.hpp | 12 ports/hotspot/src/share/vm/shark/sharkContext.cpp | 17 - ports/hotspot/src/share/vm/shark/sharkContext.hpp | 87 ++--- ports/hotspot/src/share/vm/shark/sharkEntry.hpp | 21 - ports/hotspot/src/share/vm/shark/sharkFunction.cpp | 46 +-- ports/hotspot/src/share/vm/shark/sharkFunction.hpp | 37 -- ports/hotspot/src/share/vm/shark/sharkInliner.cpp | 107 ++----- ports/hotspot/src/share/vm/shark/sharkInliner.hpp | 2 ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp | 34 -- ports/hotspot/src/share/vm/shark/sharkIntrinsics.hpp | 3 ports/hotspot/src/share/vm/shark/sharkInvariants.cpp | 3 ports/hotspot/src/share/vm/shark/sharkInvariants.hpp | 50 +-- ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp | 51 +-- ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp | 12 ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp | 17 - ports/hotspot/src/share/vm/shark/sharkNativeWrapper.hpp | 68 +--- ports/hotspot/src/share/vm/shark/sharkRuntime.cpp | 52 --- ports/hotspot/src/share/vm/shark/sharkRuntime.hpp | 19 - ports/hotspot/src/share/vm/shark/sharkStack.cpp | 65 +--- ports/hotspot/src/share/vm/shark/sharkStack.hpp | 92 ++---- ports/hotspot/src/share/vm/shark/sharkState.cpp | 42 +- ports/hotspot/src/share/vm/shark/sharkState.hpp | 65 +--- ports/hotspot/src/share/vm/shark/sharkStateScanner.cpp | 13 ports/hotspot/src/share/vm/shark/sharkStateScanner.hpp | 5 ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp | 222 +++++---------- ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp | 115 ++----- ports/hotspot/src/share/vm/shark/sharkType.hpp | 75 +---- ports/hotspot/src/share/vm/shark/sharkValue.cpp | 168 +++-------- ports/hotspot/src/share/vm/shark/sharkValue.hpp | 65 +--- diffs (truncated from 6222 to 500 lines): diff -r 6efc1920dff5 -r 44d5f7a1a79b ChangeLog --- a/ChangeLog Fri May 28 13:59:18 2010 +0100 +++ b/ChangeLog Tue Feb 23 17:36:57 2010 +0000 @@ -1,3 +1,86 @@ 2010-05-28 Andrew John Hughes + + * ports/hotspot/make/linux/makefiles/shark.make: Whitespace fixes. + * ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp: Likewise. + * ports/hotspot/src/share/vm/includeDB_shark: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBlock.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBlock.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkContext.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkContext.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkFunction.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkFunction.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkInliner.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkInliner.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkInvariants.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStack.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStack.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkState.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkState.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStateScanner.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStateScanner.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkValue.hpp: Likewise. + +2010-02-23 Gary Benson + + * ports/hotspot/src/share/vm/shark/sharkBlock.cpp: Reformatted + with trailing opening braces to match upstream HotSpot. + * ports/hotspot/src/share/vm/shark/sharkBlock.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBuilder.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkBuilder.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCacheDecache.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCodeBuffer.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCompiler.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkCompiler.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkConstant.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkConstant.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkContext.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkContext.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkEntry.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkFunction.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkFunction.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkInliner.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkIntrinsics.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkIntrinsics.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkInvariants.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkInvariants.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkMemoryManager.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkNativeWrapper.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkRuntime.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStack.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStack.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkState.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkState.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStateScanner.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkStateScanner.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkTopLevelBlock.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkType.hpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkValue.cpp: Likewise. + * ports/hotspot/src/share/vm/shark/sharkValue.hpp: Likewise. + +2010-02-22 Deepak Bhole + + * Makefile.am: Provide JDK_UPDATE_VERSION when compiling the plugin + * plugin/icedteanp/IcedTeaNPPlugin.cc: Use JDK_UPDATE_VERSION to set the + jpi version. + 2010-05-28 Andrew John Hughes * Makefile.am: diff -r 6efc1920dff5 -r 44d5f7a1a79b Makefile.am --- a/Makefile.am Fri May 28 13:59:18 2010 +0100 +++ b/Makefile.am Tue Feb 23 17:36:57 2010 +0000 @@ -2051,6 +2051,7 @@ NPPLUGIN_OBJECTS=IcedTeaNPPlugin.o IcedT $(PLUGIN_BUILD_DIR)/%.o: $(PLUGIN_SRCDIR)/%.cc mkdir -p $(PLUGIN_BUILD_DIR) && \ $(CXX) $(CXXFLAGS) \ + -DJDK_UPDATE_VERSION="\"$(JDK_UPDATE_VERSION)\"" \ -DPLUGIN_VERSION="\"$(PLUGIN_VERSION)\"" \ -DMOZILLA_VERSION_COLLAPSED="$(MOZILLA_VERSION_COLLAPSED)" \ $(GLIB_CFLAGS) \ diff -r 6efc1920dff5 -r 44d5f7a1a79b plugin/icedteanp/IcedTeaNPPlugin.cc --- a/plugin/icedteanp/IcedTeaNPPlugin.cc Fri May 28 13:59:18 2010 +0100 +++ b/plugin/icedteanp/IcedTeaNPPlugin.cc Tue Feb 23 17:36:57 2010 +0000 @@ -107,7 +107,7 @@ exception statement from your version. * "application/x-java-applet;version=1.4.2:class,jar:IcedTea;" \ "application/x-java-applet;version=1.5:class,jar:IcedTea;" \ "application/x-java-applet;version=1.6:class,jar:IcedTea;" \ - "application/x-java-applet;jpi-version=1.6.0_00:class,jar:IcedTea;" \ + "application/x-java-applet;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ "application/x-java-bean:class,jar:IcedTea;" \ "application/x-java-bean;version=1.1:class,jar:IcedTea;" \ "application/x-java-bean;version=1.1.1:class,jar:IcedTea;" \ @@ -123,7 +123,7 @@ exception statement from your version. * "application/x-java-bean;version=1.4.2:class,jar:IcedTea;" \ "application/x-java-bean;version=1.5:class,jar:IcedTea;" \ "application/x-java-bean;version=1.6:class,jar:IcedTea;" \ - "application/x-java-bean;jpi-version=1.6.0_00:class,jar:IcedTea;" \ + "application/x-java-bean;jpi-version=1.6.0_" JDK_UPDATE_VERSION ":class,jar:IcedTea;" \ "application/x-java-vm-npruntime::IcedTea;" #define PLUGIN_URL NS_INLINE_PLUGIN_CONTRACTID_PREFIX NS_JVM_MIME_TYPE diff -r 6efc1920dff5 -r 44d5f7a1a79b ports/hotspot/make/linux/makefiles/shark.make --- a/ports/hotspot/make/linux/makefiles/shark.make Fri May 28 13:59:18 2010 +0100 +++ b/ports/hotspot/make/linux/makefiles/shark.make Tue Feb 23 17:36:57 2010 +0000 @@ -20,7 +20,7 @@ # Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, # CA 95054 USA or visit www.sun.com if you need additional information or # have any questions. -# +# # # Sets make macros for making Shark version of VM diff -r 6efc1920dff5 -r 44d5f7a1a79b ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp --- a/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Fri May 28 13:59:18 2010 +0100 +++ b/ports/hotspot/src/cpu/zero/vm/shark_globals_zero.hpp Tue Feb 23 17:36:57 2010 +0000 @@ -20,7 +20,7 @@ * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. - * + * */ // Set the default values for platform dependent flags used by the @@ -50,7 +50,7 @@ define_pd_global(intx, NewRatio, define_pd_global(intx, NewRatio, 12 ); define_pd_global(intx, NewSizeThreadIncrease, 4*K ); define_pd_global(intx, InitialCodeCacheSize, 160*K); -define_pd_global(intx, ReservedCodeCacheSize, 32*M ); +define_pd_global(intx, ReservedCodeCacheSize, 32*M ); define_pd_global(bool, ProfileInterpreter, false); define_pd_global(intx, CodeCacheExpansionSize, 32*K ); define_pd_global(uintx, CodeCacheMinBlockLength, 1 ); diff -r 6efc1920dff5 -r 44d5f7a1a79b ports/hotspot/src/share/vm/includeDB_shark --- a/ports/hotspot/src/share/vm/includeDB_shark Fri May 28 13:59:18 2010 +0100 +++ b/ports/hotspot/src/share/vm/includeDB_shark Tue Feb 23 17:36:57 2010 +0000 @@ -20,7 +20,7 @@ // Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, // CA 95054 USA or visit www.sun.com if you need additional information or // have any questions. -// +// // // NOTE: DO NOT CHANGE THIS COPYRIGHT TO NEW STYLE - IT WILL BREAK makeDeps! diff -r 6efc1920dff5 -r 44d5f7a1a79b ports/hotspot/src/share/vm/shark/sharkBlock.cpp --- a/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Fri May 28 13:59:18 2010 +0100 +++ b/ports/hotspot/src/share/vm/shark/sharkBlock.cpp Tue Feb 23 17:36:57 2010 +0000 @@ -28,8 +28,7 @@ using namespace llvm; -void SharkBlock::parse_bytecode(int start, int limit) -{ +void SharkBlock::parse_bytecode(int start, int limit) { SharkValue *a, *b, *c, *d; int i; @@ -45,7 +44,7 @@ void SharkBlock::parse_bytecode(int star if (SharkTraceBytecodes) tty->print_cr("%4d: %s", bci(), Bytecodes::name(bc())); - + if (has_trap() && trap_bci() == bci()) { do_trap(trap_request()); return; @@ -96,7 +95,7 @@ void SharkBlock::parse_bytecode(int star } } break; - } + } } switch (bc()) { @@ -295,25 +294,25 @@ void SharkBlock::parse_bytecode(int star xpop(); xpop(); break; - case Bytecodes::_swap: + case Bytecodes::_swap: a = xpop(); b = xpop(); xpush(a); xpush(b); - break; + break; case Bytecodes::_dup: a = xpop(); xpush(a); xpush(a); break; - case Bytecodes::_dup_x1: + case Bytecodes::_dup_x1: a = xpop(); b = xpop(); xpush(a); xpush(b); xpush(a); break; - case Bytecodes::_dup_x2: + case Bytecodes::_dup_x2: a = xpop(); b = xpop(); c = xpop(); @@ -322,7 +321,7 @@ void SharkBlock::parse_bytecode(int star xpush(b); xpush(a); break; - case Bytecodes::_dup2: + case Bytecodes::_dup2: a = xpop(); b = xpop(); xpush(b); @@ -395,7 +394,7 @@ void SharkBlock::parse_bytecode(int star do_irem(); break; case Bytecodes::_ineg: - a = pop(); + a = pop(); push(SharkValue::create_jint( builder()->CreateNeg(a->jint_value()), a->zero_checked())); break; @@ -471,7 +470,7 @@ void SharkBlock::parse_bytecode(int star do_lrem(); break; case Bytecodes::_lneg: - a = pop(); + a = pop(); push(SharkValue::create_jlong( builder()->CreateNeg(a->jlong_value()), a->zero_checked())); break; @@ -548,18 +547,18 @@ void SharkBlock::parse_bytecode(int star break; case Bytecodes::_fdiv: b = pop(); - a = pop(); + a = pop(); push(SharkValue::create_jfloat( builder()->CreateFDiv(a->jfloat_value(), b->jfloat_value()))); break; case Bytecodes::_frem: b = pop(); - a = pop(); + a = pop(); push(SharkValue::create_jfloat( builder()->CreateFRem(a->jfloat_value(), b->jfloat_value()))); break; case Bytecodes::_fneg: - a = pop(); + a = pop(); push(SharkValue::create_jfloat( builder()->CreateFNeg(a->jfloat_value()))); break; @@ -584,18 +583,18 @@ void SharkBlock::parse_bytecode(int star break; case Bytecodes::_ddiv: b = pop(); - a = pop(); + a = pop(); push(SharkValue::create_jdouble( builder()->CreateFDiv(a->jdouble_value(), b->jdouble_value()))); break; case Bytecodes::_drem: b = pop(); - a = pop(); + a = pop(); push(SharkValue::create_jdouble( builder()->CreateFRem(a->jdouble_value(), b->jdouble_value()))); break; case Bytecodes::_dneg: - a = pop(); + a = pop(); push(SharkValue::create_jdouble( builder()->CreateFNeg(a->jdouble_value()))); break; @@ -628,7 +627,7 @@ void SharkBlock::parse_bytecode(int star break; case Bytecodes::_i2l: - a = pop(); + a = pop(); push(SharkValue::create_jlong( builder()->CreateIntCast( a->jint_value(), SharkType::jlong_type(), true), a->zero_checked())); @@ -890,18 +889,15 @@ void SharkBlock::parse_bytecode(int star } } -SharkState* SharkBlock::initial_current_state() -{ +SharkState* SharkBlock::initial_current_state() { return entry_state()->copy(); } -int SharkBlock::switch_default_dest() -{ +int SharkBlock::switch_default_dest() { return iter()->get_dest_table(0); } -int SharkBlock::switch_table_length() -{ +int SharkBlock::switch_table_length() { switch(bc()) { case Bytecodes::_tableswitch: return iter()->get_int_table(2) - iter()->get_int_table(1) + 1; @@ -911,11 +907,10 @@ int SharkBlock::switch_table_length() default: ShouldNotReachHere(); - } + } } -int SharkBlock::switch_key(int i) -{ +int SharkBlock::switch_key(int i) { switch(bc()) { case Bytecodes::_tableswitch: return iter()->get_int_table(1) + i; @@ -925,11 +920,10 @@ int SharkBlock::switch_key(int i) default: ShouldNotReachHere(); - } + } } -int SharkBlock::switch_dest(int i) -{ +int SharkBlock::switch_dest(int i) { switch(bc()) { case Bytecodes::_tableswitch: return iter()->get_dest_table(i + 3); @@ -939,11 +933,10 @@ int SharkBlock::switch_dest(int i) default: ShouldNotReachHere(); - } + } } -void SharkBlock::do_div_or_rem(bool is_long, bool is_rem) -{ +void SharkBlock::do_div_or_rem(bool is_long, bool is_rem) { SharkValue *sb = pop(); SharkValue *sa = pop(); @@ -973,7 +966,7 @@ void SharkBlock::do_div_or_rem(bool is_l builder()->CreateICmpEQ(a, p), builder()->CreateICmpEQ(b, q)), special_case, general_case); - + builder()->SetInsertPoint(special_case); Value *special_result; if (is_rem) { @@ -1010,8 +1003,7 @@ void SharkBlock::do_div_or_rem(bool is_l push(SharkValue::create_jint(result, false)); } -void SharkBlock::do_field_access(bool is_get, bool is_field) -{ +void SharkBlock::do_field_access(bool is_get, bool is_field) { bool will_link; ciField *field = iter()->get_field(will_link); assert(will_link, "typeflow responsibility"); @@ -1041,12 +1033,12 @@ void SharkBlock::do_field_access(bool is BasicType basic_type = field->type()->basic_type(); const Type *stack_type = SharkType::to_stackType(basic_type); const Type *field_type = SharkType::to_arrayType(basic_type); - + Value *addr = builder()->CreateAddressOfStructEntry( object, in_ByteSize(field->offset_in_bytes()), PointerType::getUnqual(field_type), "addr"); - + // Do the access if (is_get) { Value *field_value = builder()->CreateLoad(addr); @@ -1065,7 +1057,7 @@ void SharkBlock::do_field_access(bool is field_value, field_type, basic_type != T_CHAR); builder()->CreateStore(field_value, addr); - + if (!field->type()->is_primitive_type()) builder()->CreateUpdateBarrierSet(oopDesc::bs(), addr); @@ -1079,8 +1071,7 @@ void SharkBlock::do_field_access(bool is push(value); } -void SharkBlock::do_lcmp() -{ +void SharkBlock::do_lcmp() { Value *b = pop()->jlong_value(); Value *a = pop()->jlong_value(); @@ -1111,8 +1102,7 @@ void SharkBlock::do_lcmp() push(SharkValue::create_jint(result, false)); } -void SharkBlock::do_fcmp(bool is_double, bool unordered_is_greater) -{ +void SharkBlock::do_fcmp(bool is_double, bool unordered_is_greater) { Value *a, *b; if (is_double) { b = pop()->jdouble_value(); @@ -1159,137 +1149,110 @@ void SharkBlock::do_fcmp(bool is_double, push(SharkValue::create_jint(result, false)); } -void SharkBlock::emit_IR() -{ +void SharkBlock::emit_IR() { ShouldNotCallThis(); } -SharkState* SharkBlock::entry_state() -{ +SharkState* SharkBlock::entry_state() { ShouldNotCallThis(); } -void SharkBlock::do_zero_check(SharkValue* value) -{ +void SharkBlock::do_zero_check(SharkValue* value) { ShouldNotCallThis(); } -void SharkBlock::maybe_add_backedge_safepoint() -{ +void SharkBlock::maybe_add_backedge_safepoint() { ShouldNotCallThis(); } -bool SharkBlock::has_trap() -{ +bool SharkBlock::has_trap() { return false; } -int SharkBlock::trap_request() -{ +int SharkBlock::trap_request() { ShouldNotCallThis(); } -int SharkBlock::trap_bci() -{ +int SharkBlock::trap_bci() { ShouldNotCallThis(); } -void SharkBlock::do_trap(int trap_request) -{ +void SharkBlock::do_trap(int trap_request) { ShouldNotCallThis(); } -void SharkBlock::do_arraylength() -{ +void SharkBlock::do_arraylength() { ShouldNotCallThis(); } -void SharkBlock::do_aload(BasicType basic_type) -{ +void SharkBlock::do_aload(BasicType basic_type) { ShouldNotCallThis(); } -void SharkBlock::do_astore(BasicType basic_type) From bugzilla-daemon at icedtea.classpath.org Fri May 28 09:11:39 2010 From: bugzilla-daemon at icedtea.classpath.org (bugzilla-daemon at icedtea.classpath.org) Date: Fri, 28 May 2010 16:11:39 +0000 Subject: [Bug 418] JVM Crash (SIGSEGV) Message-ID: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=418 asu at redhat.com changed: What |Removed |Added ---------------------------------------------------------------------------- Summary|JVM Crasch (SIGSEGV) |JVM Crash (SIGSEGV) -- Configure bugmail: http://icedtea.classpath.org/bugzilla/userprefs.cgi?tab=email ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee. From andrew at icedtea.classpath.org Fri May 28 09:37:15 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 28 May 2010 16:37:15 +0000 Subject: /hg/icedtea6: Use a variable for the debug build output directory. Message-ID: changeset b2f88d8bfdc4 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=b2f88d8bfdc4 author: Andrew John Hughes date: Fri May 28 17:37:07 2010 +0100 Use a variable for the debug build output directory. 2010-05-28 Andrew John Hughes * Makefile.am: (DEBUG_BUILD_OUTPUT_DIR): New variable to represent debug build output directory. (BUILD_DEBUG_JRE_ARCH_DIR): Use DEBUG_BUILD_OUTPUT_DIR. (icedtea-debug): Replace use of -debug with DEBUG_BUILD_OUTPUT_DIR. diffstat: 2 files changed, 42 insertions(+), 31 deletions(-) ChangeLog | 10 +++++++++ Makefile.am | 63 +++++++++++++++++++++++++++++------------------------------ diffs (151 lines): diff -r ad4ad518e870 -r b2f88d8bfdc4 ChangeLog --- a/ChangeLog Mon May 24 19:46:13 2010 +0100 +++ b/ChangeLog Fri May 28 17:37:07 2010 +0100 @@ -1,3 +1,13 @@ 2010-05-24 Andrew John Hughes + + * Makefile.am: + (DEBUG_BUILD_OUTPUT_DIR): New variable to represent + debug build output directory. + (BUILD_DEBUG_JRE_ARCH_DIR): Use DEBUG_BUILD_OUTPUT_DIR. + (icedtea): Remove errorneous use of -debug. + (icedtea-debug): Replace use of -debug with + DEBUG_BUILD_OUTPUT_DIR. + 2010-05-24 Andrew John Hughes * Makefile.am: diff -r ad4ad518e870 -r b2f88d8bfdc4 Makefile.am --- a/Makefile.am Mon May 24 19:46:13 2010 +0100 +++ b/Makefile.am Fri May 28 17:37:07 2010 +0100 @@ -33,6 +33,7 @@ OPENJDK_HG_URL = http://hg.openjdk.java. OS_DIR = $(BUILD_OS_DIR)-$(BUILD_ARCH_DIR) BUILD_OUTPUT_DIR = openjdk/build/$(OS_DIR) +DEBUG_BUILD_OUTPUT_DIR = $(BUILD_OUTPUT_DIR)-debug ECJ_BUILD_OUTPUT_DIR = openjdk-ecj/build/$(OS_DIR) ICEDTEA_BUILD_DIR = \ $(abs_top_builddir)/$(BUILD_OUTPUT_DIR) @@ -50,7 +51,7 @@ ICEDTEA_CLS_DIR_ECJ = \ $(abs_top_builddir)/$(ECJ_BUILD_OUTPUT_DIR)/classes SERVER_DIR = hotspot/import/jre/lib/$(INSTALL_ARCH_DIR)/server BUILD_JRE_ARCH_DIR = $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) -BUILD_DEBUG_JRE_ARCH_DIR = $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) +BUILD_DEBUG_JRE_ARCH_DIR = $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) # Source directories @@ -1320,50 +1321,50 @@ stamps/icedtea-debug.stamp: stamps/boots $(ICEDTEA_ENV) \ -C openjdk \ $(ICEDTEA_DEBUG_BUILD_TARGET) - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/ext - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/ext + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/ext if ENABLE_PLUGIN cp -pPRf $(PLUGIN_DIR)/IcedTeaPlugin.so \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) cp -pPRf $(PLUGIN_DIR)/IcedTeaPlugin.so \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) endif if ENABLE_PULSE_JAVA cp -pPRf $(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) cp -pPRf $(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/$(INSTALL_ARCH_DIR) + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) cp -pPRf pulse-java.jar \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/ext + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext cp -pPRf pulse-java.jar \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib/ext + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/ext endif if WITH_VISUALVM - mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \ - mkdir -p $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \ + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \ + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \ sed "s/APPNAME=\`basename.*\`/APPNAME=visualvm/" \ visualvm/launcher/visualvm >> \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \ chmod a+x $(BUILD_OUTPUT_DIR)/j2sdk-image/bin/jvisualvm ; \ cp visualvm/launcher/visualvm.conf \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc ; \ echo visualvm >> \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \ echo profiler3 >> \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/etc/visualvm.clusters ; \ cp -r visualvm/build/cluster/* \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm/visualvm ; \ cp -r netbeans/nbbuild/netbeans_visualvm/$(NB_PLATFORM) \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm ; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm ; \ cp -r netbeans/nbbuild/netbeans_visualvm/profiler3 \ - $(BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/lib/visualvm endif cp $(NETX_RESOURCE_DIR)/default.jnlp extra-lib/about.jar \ - $(BUILD_OUTPUT_DIR)-debug/j2re-image/lib ; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib ; \ cp $(NETX_RESOURCE_DIR)/default.jnlp extra-lib/about.jar \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib if ZERO_BUILD printf -- '-zero ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg endif @@ -1374,32 +1375,32 @@ if WITH_CACAO printf -- '-cacao ALIASED_TO -server\n' >> $(BUILD_DEBUG_JRE_ARCH_DIR)/jvm.cfg endif if ENABLE_SYSTEMTAP - mkdir -p $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset ; \ + mkdir -p $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset ; \ grep "client IGNORE" $(BUILD_JRE_ARCH_DIR)/jvm.cfg; \ if test $$? -eq 0; then \ sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot.stp \ - > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ + > $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ sed -e '/\/client\/libjvm.so/d' \ < $(abs_top_builddir)/tapset/hotspot_jni.stp \ - > $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot_jni.stp; \ + > $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ else \ cp $(abs_top_builddir)/tapset/hotspot.stp \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot.stp; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot.stp; \ cp $(abs_top_builddir)/tapset/hotspot_jni.stp \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/hotspot_jni.stp; \ + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/hotspot_jni.stp; \ fi; \ cp $(abs_top_builddir)/tapset/jstack.stp \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/tapset/jstack.stp + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/tapset/jstack.stp endif cp $(abs_top_builddir)/nss.cfg \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib/security; + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/security; if WITH_TZDATA_DIR cp $(abs_top_builddir)/tz.properties \ - $(BUILD_OUTPUT_DIR)-debug/j2sdk-image/jre/lib; + $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib; endif @echo "IcedTea (debug build) is served:" \ - $(BUILD_OUTPUT_DIR)-debug + $(DEBUG_BUILD_OUTPUT_DIR) mkdir -p stamps touch stamps/icedtea-debug.stamp From andrew at icedtea.classpath.org Fri May 28 09:48:19 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 28 May 2010 16:48:19 +0000 Subject: /hg/icedtea: 5 new changesets Message-ID: changeset d12fd1d4a26e in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=d12fd1d4a26e author: Andrew John Hughes date: Fri May 28 17:16:40 2010 +0100 Provide a single rule to build all PulseAudio object files without explicit source file names. 2010-02-24 Andrew John Hughes * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_Pul seAudioStreamVolumeControl.c: Removed, never built and no corresponding Java source file. * Makefile.am: (PULSE_JAVA_NATIVE_SRCS): List of PulseAudio source files. (PULSE_JAVA_NATIVE_OBJECTS): List of PulseAudio object files. (PULSE_JAVA_TARGET): Optional PulseAudio target. (icedtea.stamp): Replace explicit pulse-java.stamp with PULSE_JAVA_TARGET. (icedtea-debug.stamp): Likewise. (pulse-java.stamp): Depend on compiled library rather than headers target. ($(PULSE_JAVA_NATIVE_BUILDDIR)/%.o): New target to compile object files from source files using make substitution. ($(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so): New target to build the shared library. (pulse-java-jar.stamp): Make ENABLE_PULSE_JAVA conditional encompass all PulseAudio targets. (pulse-java-class.stamp): Likewise. (pulse- java-headers.stamp): Likewise, and remove unneeded BOOT_DIR conditional (pulse-java-class.stamp now depends on the appropriate bootstrap target). (pulse-java-native- code.stamp): Removed. changeset a389f4a8658c in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=a389f4a8658c author: Andrew John Hughes date: Fri May 28 17:22:46 2010 +0100 Refer to libpulse-java.so with full path to native build directory. 2010-02-24 Andrew John Hughes * Makefile.am: (icedtea.stamp): Prefix libpulse- java.so with build directory path. (icedtea- debug.stamp): Likewise. (clean-pulse-java): No need to delete libpulse-java.so as no longer at top-level. changeset cc07055da3e2 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=cc07055da3e2 author: Andrew John Hughes date: Fri May 28 17:26:04 2010 +0100 Make sure PulseAudio headers are picked up by adding -I$(PULSE_JAVA_NATIVE_BUILDDIR) 2010-02-24 Andrew John Hughes * Makefile.am: Add missing pulse-java alias and reorganise existing aliases alphabetically. ($(PULSE_JAVA_NATIVE_BUILDDIR)/%.o): Add include directive for build directory to pick up generated headers. changeset a0d045c13c13 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=a0d045c13c13 author: Andrew John Hughes date: Fri May 28 17:29:01 2010 +0100 Use full path to jar application when rewriting Rhino files. 2010-02-24 Andrew John Hughes * Makefile.am: (rewrite-rhino.stamp): Use full path to jar application to avoid relying on the one on the path. changeset 0b38b757f001 in /hg/icedtea details: http://icedtea.classpath.org/hg/icedtea?cmd=changeset;node=0b38b757f001 author: Andrew John Hughes date: Fri May 28 17:48:11 2010 +0100 Join Rhino class creation to jar creation with &&. 2010-05-28 Andrew John Hughes * Makefile.am: (rewrite-rhino.stamp): Join class building to jar creation with &&. diffstat: 3 files changed, 98 insertions(+), 120 deletions(-) ChangeLog | 59 ++++++ Makefile.am | 92 ++++------ pulseaudio/src/native/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c | 67 ------- diffs (328 lines): diff -r 44d5f7a1a79b -r 0b38b757f001 ChangeLog --- a/ChangeLog Tue Feb 23 17:36:57 2010 +0000 +++ b/ChangeLog Fri May 28 17:48:11 2010 +0100 @@ -1,3 +1,62 @@ 2010-02-23 Gary Benson + + * Makefile.am: + (rewrite-rhino.stamp): Join class building + to jar creation with &&. + +2010-02-24 Andrew John Hughes + + * Makefile.am: + (rewrite-rhino.stamp): Use full path to + jar application to avoid relying on the one + on the path. + +2010-02-24 Andrew John Hughes + + * Makefile.am: + Add missing pulse-java alias and reorganise + existing aliases alphabetically. + ($(PULSE_JAVA_NATIVE_BUILDDIR)/%.o): Add include + directive for build directory to pick up generated + headers. + +2010-02-24 Andrew John Hughes + + * Makefile.am: + (icedtea.stamp): Prefix libpulse-java.so with + build directory path. + (icedtea-debug.stamp): Likewise. + (clean-pulse-java): No need to delete libpulse-java.so + as no longer at top-level. + +2010-02-24 Andrew John Hughes + + * pulseaudio/src/native/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c: + Removed, never built and no corresponding + Java source file. + * Makefile.am: + (PULSE_JAVA_NATIVE_SRCS): List of PulseAudio source + files. + (PULSE_JAVA_NATIVE_OBJECTS): List of PulseAudio object + files. + (PULSE_JAVA_TARGET): Optional PulseAudio target. + (icedtea.stamp): Replace explicit pulse-java.stamp + with PULSE_JAVA_TARGET. + (icedtea-debug.stamp): Likewise. + (pulse-java.stamp): Depend on compiled library rather than + headers target. + ($(PULSE_JAVA_NATIVE_BUILDDIR)/%.o): New target to compile + object files from source files using make substitution. + ($(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so): New target + to build the shared library. + (pulse-java-jar.stamp): Make ENABLE_PULSE_JAVA conditional + encompass all PulseAudio targets. + (pulse-java-class.stamp): Likewise. + (pulse-java-headers.stamp): Likewise, and remove unneeded + BOOT_DIR conditional (pulse-java-class.stamp now depends on + the appropriate bootstrap target). + (pulse-java-native-code.stamp): Removed. + 2010-02-23 Gary Benson * ports/hotspot/make/linux/makefiles/shark.make: Whitespace fixes. diff -r 44d5f7a1a79b -r 0b38b757f001 Makefile.am --- a/Makefile.am Tue Feb 23 17:36:57 2010 +0000 +++ b/Makefile.am Fri May 28 17:48:11 2010 +0100 @@ -205,16 +205,14 @@ if ENABLE_PULSE_JAVA # include the makefile in pulseaudio subdir PULSE_JAVA_DIR = $(abs_top_srcdir)/pulseaudio PULSE_JAVA_NATIVE_SRCDIR = $(PULSE_JAVA_DIR)/src/native +PULSE_JAVA_NATIVE_SRCS = $(wildcard $(PULSE_JAVA_NATIVE_SRCDIR)/*.c) PULSE_JAVA_BUILDDIR = $(abs_top_builddir)/pulseaudio PULSE_JAVA_NATIVE_BUILDDIR = $(PULSE_JAVA_BUILDDIR)/native +PULSE_JAVA_NATIVE_OBJECTS = \ + $(subst $(PULSE_JAVA_NATIVE_SRCDIR),$(PULSE_JAVA_NATIVE_BUILDDIR),$(patsubst %.c,%.o,$(PULSE_JAVA_NATIVE_SRCS))) PULSE_JAVA_JAVA_SRCDIR = $(PULSE_JAVA_DIR)/src/java PULSE_JAVA_CLASS_DIR = $(PULSE_JAVA_BUILDDIR)/classes -else -PULSE_JAVA_DIR = -PULSE_JAVA_NATIVE_SRCDIR = -PULSE_JAVA_NATIVE_BUILDDIR = -PULSE_JAVA_JAVA_SRCDIR = -PULSE_JAVA_CLASS_DIR = +PULSE_JAVA_TARGET = stamps/pulse-java.stamp endif # This should not depend on bootstrapping @@ -1794,7 +1792,7 @@ stamps/icedtea.stamp: stamps/bootstrap-d stamps/icedtea.stamp: stamps/bootstrap-directory-symlink-stage2.stamp \ stamps/download.stamp stamps/extract.stamp $(OPENJDK_TREE) \ stamps/plugin.stamp $(JNLP_ABOUT_TARGET) stamps/cacao.stamp \ - stamps/netx-dist.stamp stamps/liveconnect-dist.stamp stamps/pulse-java.stamp \ + stamps/netx-dist.stamp stamps/liveconnect-dist.stamp $(PULSE_JAVA_TARGET) \ stamps/rewrite-rhino.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV) \ @@ -1818,9 +1816,9 @@ endif endif endif if ENABLE_PULSE_JAVA - cp -pPRf libpulse-java.so \ + cp -pPRf $(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so \ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) - cp -pPRf libpulse-java.so \ + cp -pPRf $(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so \ $(BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) cp -pPRf pulse-java.jar \ $(BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext @@ -1878,7 +1876,7 @@ stamps/icedtea-debug.stamp: stamps/boots stamps/icedtea-debug.stamp: stamps/bootstrap-directory-symlink-stage2.stamp \ stamps/download.stamp stamps/extract.stamp $(OPENJDK_TREE) \ stamps/plugin.stamp $(JNLP_ABOUT_TARGET) stamps/cacao.stamp \ - stamps/netx-dist.stamp stamps/liveconnect-dist.stamp stamps/pulse-java.stamp \ + stamps/netx-dist.stamp stamps/liveconnect-dist.stamp $(PULSE_JAVA_TARGET) \ stamps/rewrite-rhino.stamp $(ARCH_PREFIX) $(MAKE) \ $(ICEDTEA_ENV) \ @@ -1902,9 +1900,9 @@ endif endif endif if ENABLE_PULSE_JAVA - cp -pPRf libpulse-java.so \ + cp -pPRf $(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so \ $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/$(INSTALL_ARCH_DIR) - cp -pPRf libpulse-java.so \ + cp -pPRf $(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so \ $(DEBUG_BUILD_OUTPUT_DIR)/j2re-image/lib/$(INSTALL_ARCH_DIR) cp -pPRf pulse-java.jar \ $(DEBUG_BUILD_OUTPUT_DIR)/j2sdk-image/jre/lib/ext @@ -2213,72 +2211,59 @@ extra-lib/about.jar: stamps/extra-class- # PulseAudio based mixer # (pulse-java) +if ENABLE_PULSE_JAVA -stamps/pulse-java.stamp: stamps/pulse-java-jar.stamp stamps/pulse-java-native-code.stamp +stamps/pulse-java.stamp: stamps/pulse-java-jar.stamp $(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so mkdir -p stamps touch $@ stamps/pulse-java-class.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) -if ENABLE_PULSE_JAVA mkdir -p $(PULSE_JAVA_CLASS_DIR) (cd $(PULSE_JAVA_JAVA_SRCDIR); \ - $(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d $(PULSE_JAVA_CLASS_DIR)\ + $(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) -d $(PULSE_JAVA_CLASS_DIR) \ -bootclasspath '$(ICEDTEA_BOOT_DIR)/jre/lib/rt.jar' \ org/classpath/icedtea/pulseaudio/*.java\ ) cp -r $(PULSE_JAVA_JAVA_SRCDIR)/META-INF $(PULSE_JAVA_CLASS_DIR) chmod -R ug+w $(PULSE_JAVA_CLASS_DIR)/META-INF -endif mkdir -p stamps touch $@ stamps/pulse-java-jar.stamp: stamps/pulse-java-class.stamp -if ENABLE_PULSE_JAVA - mkdir -p $(PULSE_JAVA_CLASS_DIR); $(ICEDTEA_BOOT_DIR)/bin/jar cf pulse-java.jar -C $(PULSE_JAVA_CLASS_DIR) .; -endif mkdir -p stamps touch $@ stamps/pulse-java-headers.stamp: stamps/pulse-java-class.stamp -if ENABLE_PULSE_JAVA - if ! test -d $(ICEDTEA_BOOT_DIR) ; \ - then \ - $(JAVAH) -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.EventLoop ; \ - $(JAVAH) -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.Stream ; \ - $(JAVAH) -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.Operation; \ - $(JAVAH) -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.PulseAudioSourcePort ; \ - $(JAVAH) -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.PulseAudioTargetPort ; \ - else \ - $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.EventLoop ; \ - $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.Stream ; \ - $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.Operation; \ - $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.PulseAudioSourcePort ; \ - $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) org.classpath.icedtea.pulseaudio.PulseAudioTargetPort ; \ - fi -endif + mkdir -p $(PULSE_JAVA_NATIVE_BUILDDIR) + $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) \ + org.classpath.icedtea.pulseaudio.EventLoop ; + $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) \ + org.classpath.icedtea.pulseaudio.Stream + $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) \ + org.classpath.icedtea.pulseaudio.Operation + $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) \ + org.classpath.icedtea.pulseaudio.PulseAudioSourcePort + $(ICEDTEA_BOOT_DIR)/bin/javah -d $(PULSE_JAVA_NATIVE_BUILDDIR) -classpath $(PULSE_JAVA_CLASS_DIR) \ + org.classpath.icedtea.pulseaudio.PulseAudioTargetPort mkdir -p stamps touch $@ -stamps/pulse-java-native-code.stamp: stamps/pulse-java-headers.stamp -if ENABLE_PULSE_JAVA - mkdir -p $(PULSE_JAVA_NATIVE_BUILDDIR) - $(CC) $(CFLAGS) -fPIC -c -I$(ICEDTEA_BOOT_DIR)/include/linux -I$(ICEDTEA_BOOT_DIR)/include $(PULSE_JAVA_NATIVE_SRCDIR)/jni-common.c -o $(PULSE_JAVA_NATIVE_BUILDDIR)/jni-common.o - $(CC) $(LIBPULSE_CFLAGS) $(CFLAGS) -fPIC -c -I$(ICEDTEA_BOOT_DIR)/include/linux -I$(ICEDTEA_BOOT_DIR)/include -I$(PULSE_JAVA_NATIVE_BUILDDIR) $(PULSE_JAVA_NATIVE_SRCDIR)/org_classpath_icedtea_pulseaudio_EventLoop.c -o $(PULSE_JAVA_NATIVE_BUILDDIR)/org_classpath_icedtea_pulseaudio_EventLoop.o - $(CC) $(LIBPULSE_CFLAGS) $(CFLAGS) -fPIC -c -I$(ICEDTEA_BOOT_DIR)/include/linux -I$(ICEDTEA_BOOT_DIR)/include -I$(PULSE_JAVA_NATIVE_BUILDDIR) $(PULSE_JAVA_NATIVE_SRCDIR)/org_classpath_icedtea_pulseaudio_Operation.c -o $(PULSE_JAVA_NATIVE_BUILDDIR)/org_classpath_icedtea_pulseaudio_Operation.o - $(CC) $(LIBPULSE_CFLAGS) $(CFLAGS) -fPIC -c -I$(ICEDTEA_BOOT_DIR)/include/linux -I$(ICEDTEA_BOOT_DIR)/include -I$(PULSE_JAVA_NATIVE_BUILDDIR) $(PULSE_JAVA_NATIVE_SRCDIR)/org_classpath_icedtea_pulseaudio_Stream.c -o $(PULSE_JAVA_NATIVE_BUILDDIR)/org_classpath_icedtea_pulseaudio_Stream.o - $(CC) $(LIBPULSE_CFLAGS) $(CFLAGS) -fPIC -c -I$(ICEDTEA_BOOT_DIR)/include/linux -I$(ICEDTEA_BOOT_DIR)/include -I$(PULSE_JAVA_NATIVE_BUILDDIR) $(PULSE_JAVA_NATIVE_SRCDIR)/org_classpath_icedtea_pulseaudio_PulseAudioTargetPort.c -o $(PULSE_JAVA_NATIVE_BUILDDIR)/org_classpath_icedtea_pulseaudio_PulseAudioTargetPort.o - $(CC) $(LDFLAGS) -shared $(PULSE_JAVA_NATIVE_BUILDDIR)/org_*pulseaudio*.o $(PULSE_JAVA_NATIVE_BUILDDIR)/jni-common.o $(LIBPULSE_LIBS) -o libpulse-java.so +$(PULSE_JAVA_NATIVE_BUILDDIR)/%.o: $(PULSE_JAVA_NATIVE_SRCDIR)/%.c stamps/pulse-java-headers.stamp + $(CC) $(CFLAGS) -fPIC -I$(ICEDTEA_BOOT_DIR)/include/linux -I$(ICEDTEA_BOOT_DIR)/include \ + -I$(PULSE_JAVA_NATIVE_BUILDDIR) -o $@ -c $< + +$(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so: $(PULSE_JAVA_NATIVE_OBJECTS) + $(CC) $(LDFLAGS) -shared $(PULSE_JAVA_NATIVE_OBJECTS) $(LIBPULSE_LIBS) \ + -o $(PULSE_JAVA_NATIVE_BUILDDIR)/libpulse-java.so + endif - mkdir -p stamps - touch $@ clean-pulse-java: if ENABLE_PULSE_JAVA [ -z "$(PULSE_JAVA_NATIVE_BUILDDIR)" ] || rm -rf $(PULSE_JAVA_NATIVE_BUILDDIR) [ -z "$(PULSE_JAVA_CLASS_DIR)" ] || rm -rf $(PULSE_JAVA_CLASS_DIR) rm -f pulse-java.jar - rm -f libpulse-java.so if [ $(abs_top_srcdir) != $(abs_top_builddir) ]; then \ rmdir $(abs_top_builddir)/pulseaudio ; \ fi @@ -2315,8 +2300,9 @@ if WITH_RHINO cp -v $$files $$new_file ; \ sed -ie 's#org\.mozilla#sun.org.mozilla#g' $$new_file ; \ done \ - ) - (cd rhino/rhino.new && jar cfm ../rhino.jar META-INF/MANIFEST.MF sun ) + ) && \ + (cd rhino/rhino.new && \ + $(ICEDTEA_BOOT_DIR)/bin/jar cfm ../rhino.jar META-INF/MANIFEST.MF sun ) endif mkdir -p stamps touch stamps/rewrite-rhino.stamp @@ -2839,13 +2825,13 @@ plugin: stamps/plugin.stamp plugin-tests: stamps/plugin-tests.stamp +plugs: stamps/plugs.stamp + +pulse-java: $(PULSE_JAVA_TARGET) + rewriter: stamps/rewriter.stamp rewrite-rhino: stamps/rewrite-rhino.stamp - -plugs: stamps/plugs.stamp - -pulse-java: stamps/pulse-java.stamp rt: stamps/rt.stamp diff -r 44d5f7a1a79b -r 0b38b757f001 pulseaudio/src/native/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c --- a/pulseaudio/src/native/org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c Tue Feb 23 17:36:57 2010 +0000 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.c - Copyright (C) 2008 Red Hat, Inc. - - This file is part of IcedTea. - - IcedTea is free software; you can redistribute it and/or - modify it under the terms of the GNU General Public License as published by - the Free Software Foundation, version 2. - - IcedTea 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 for more details. - - You should have received a copy of the GNU General Public License - along with IcedTea; see the file COPYING. If not, write to - the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA - 02110-1301 USA. - - Linking this library statically or dynamically with other modules is - making a combined work based on this library. Thus, the terms and - conditions of the GNU General Public License cover the whole - combination. - - As a special exception, the copyright holders of this library give you - permission to link this library with independent modules to produce an - executable, regardless of the license terms of these independent - modules, and to copy and distribute the resulting executable under - terms of your choice, provided that you also meet, for each linked - independent module, the terms and conditions of the license of that - module. An independent module is a module which is not derived from - or based on this library. If you modify this library, you may extend - this exception to your version of the library, but you are not - obligated to do so. If you do not wish to do so, delete this - exception statement from your version. - */ - -#include -#include - -#include "jni-common.h" -#include "org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl.h" - - -extern JNIEnv* pulse_thread_env; - -static void set_sink_input_volume_callback(pa_context* context, int success, - void* userdata) { - - JNIEnv* env = pulse_thread_env; - - notifyWaitingOperations(env); - -} - -JNIEXPORT jint JNICALL Java_org_classpath_icedtea_pulseaudio_PulseAudioStreamVolumeControl_native_1setValue -(JNIEnv *env, jobject obj, jfloat new_volume) { - // printf("IN NATIVE SET VOLUME\n"); - pa_stream *stream = getJavaPointer(env, obj, "streamPointer"); - // printf("STREAM POINTER %d", (int) stream); - pa_context *context = pa_stream_get_context(stream); - int stream_id = pa_stream_get_index(stream); - int channels = pa_stream_get_sample_spec(stream)->channels; - pa_cvolume cv; - return (jint) pa_context_set_sink_input_volume(context, stream_id, pa_cvolume_set(&cv, channels, new_volume), set_sink_input_volume_callback, NULL); -} - From andrew at icedtea.classpath.org Fri May 28 09:48:27 2010 From: andrew at icedtea.classpath.org (andrew at icedtea.classpath.org) Date: Fri, 28 May 2010 16:48:27 +0000 Subject: /hg/icedtea6: Join dependent Makefile segments with &&. Message-ID: changeset cf45c29fbe48 in /hg/icedtea6 details: http://icedtea.classpath.org/hg/icedtea6?cmd=changeset;node=cf45c29fbe48 author: Andrew John Hughes date: Fri May 28 17:46:51 2010 +0100 Join dependent Makefile segments with &&. 2010-05-28 Andrew John Hughes * Makefile.am: (bootstrap-directory-ecj.stamp): Join dependent parts using &&. (rewriter.stamp): Likewise. (rewrite-rhino.stamp): Likewise. diffstat: 2 files changed, 26 insertions(+), 18 deletions(-) ChangeLog | 8 ++++++++ Makefile.am | 36 ++++++++++++++++++------------------ diffs (99 lines): diff -r b2f88d8bfdc4 -r cf45c29fbe48 ChangeLog --- a/ChangeLog Fri May 28 17:37:07 2010 +0100 +++ b/ChangeLog Fri May 28 17:46:51 2010 +0100 @@ -1,3 +1,11 @@ 2010-05-28 Andrew John Hughes + + * Makefile.am: + (bootstrap-directory-ecj.stamp): Join dependent parts + using &&. + (rewriter.stamp): Likewise. + (rewrite-rhino.stamp): Likewise. + 2010-05-28 Andrew John Hughes * Makefile.am: diff -r b2f88d8bfdc4 -r cf45c29fbe48 Makefile.am --- a/Makefile.am Fri May 28 17:37:07 2010 +0100 +++ b/Makefile.am Fri May 28 17:46:51 2010 +0100 @@ -1139,32 +1139,32 @@ stamps/bootstrap-directory-ecj.stamp: st ln -sf $(JAR) bootstrap/ecj/bin/jar ln -sf ../../../javac bootstrap/ecj/bin/javac ln -sf ../../../javap bootstrap/ecj/bin/javap - mkdir -p bootstrap/ecj/lib/endorsed - ln -sf $(XALAN2_JAR) bootstrap/ecj/lib/endorsed/xalan-j2.jar + mkdir -p bootstrap/ecj/lib/endorsed && \ + ln -sf $(XALAN2_JAR) bootstrap/ecj/lib/endorsed/xalan-j2.jar && \ ln -sf $(XALAN2_SERIALIZER_JAR) \ - bootstrap/ecj/lib/endorsed/xalan-j2-serializer.jar + bootstrap/ecj/lib/endorsed/xalan-j2-serializer.jar && \ ln -sf $(XERCES2_JAR) bootstrap/ecj/lib/endorsed/xerces-j2.jar - mkdir -p bootstrap/ecj/jre/lib; \ + mkdir -p bootstrap/ecj/jre/lib && \ + cp $(SYSTEM_JDK_DIR)/jre/lib/rt.jar \ + $(abs_top_builddir)/bootstrap/ecj/jre/lib/rt.jar && \ ln -sf $(SYSTEM_JDK_DIR)/jre/lib/$(JRE_ARCH_DIR) \ - bootstrap/ecj/jre/lib/; \ + bootstrap/ecj/jre/lib/ && \ if ! test -d bootstrap/ecj/jre/lib/$(INSTALL_ARCH_DIR); \ then \ ln -sf ./$(JRE_ARCH_DIR) \ bootstrap/ecj/jre/lib/$(INSTALL_ARCH_DIR); \ - fi; \ - mkdir -p bootstrap/ecj/include; \ + fi; + mkdir -p bootstrap/ecj/include && \ for i in $(SYSTEM_JDK_DIR)/include/*; do \ test -r $$i | continue; \ i=`basename $$i`; \ rm -f bootstrap/ecj/include/$$i; \ ln -s $(SYSTEM_JDK_DIR)/include/$$i bootstrap/ecj/include/$$i; \ - done; \ - cp $(SYSTEM_JDK_DIR)/jre/lib/rt.jar \ - $(abs_top_builddir)/bootstrap/ecj/jre/lib/rt.jar; + done # For HotSpot - mkdir -p $(abs_top_builddir)/bootstrap/ecj/lib ; \ + mkdir -p $(abs_top_builddir)/bootstrap/ecj/lib && \ ln -sf $(abs_top_builddir)/bootstrap/ecj/jre/lib/rt.jar \ - $(abs_top_builddir)/bootstrap/ecj/lib/tools.jar ; \ + $(abs_top_builddir)/bootstrap/ecj/lib/tools.jar mkdir -p stamps touch stamps/bootstrap-directory-ecj.stamp @@ -1689,7 +1689,7 @@ endif stamps/rewriter.stamp: $(INITIAL_BOOTSTRAP_LINK_STAMP) if WITH_RHINO - mkdir -p $(abs_top_builddir)/rewriter + mkdir -p $(abs_top_builddir)/rewriter && \ (cd $(abs_top_srcdir)/rewriter ; \ $(ICEDTEA_BOOT_DIR)/bin/javac $(IT_JAVACFLAGS) \ -d $(abs_top_builddir)/rewriter $(REWRITER_SRCS) \ @@ -1700,12 +1700,12 @@ endif stamps/rewrite-rhino.stamp: stamps/rewriter.stamp $(RHINO_JAR) if WITH_RHINO - mkdir -p rhino/rhino.{old,new} - (cd rhino/rhino.old ; jar xf $(RHINO_JAR)) + mkdir -p rhino/rhino.{old,new} && \ + (cd rhino/rhino.old ; jar xf $(RHINO_JAR)) && \ $(ICEDTEA_BOOT_DIR)/bin/java -cp $(abs_top_builddir)/rewriter \ com.redhat.rewriter.ClassRewriter \ $(abs_top_builddir)/rhino/rhino.old $(abs_top_builddir)/rhino/rhino.new \ - org.mozilla sun.org.mozilla + org.mozilla sun.org.mozilla && \ (cd rhino/rhino.old ; \ for files in `find -type f -not -name '*.class'` ; do \ new_file=../rhino.new/`echo $$files|sed -e 's#org#sun/org#'` ; \ @@ -1713,8 +1713,8 @@ if WITH_RHINO cp -v $$files $$new_file ; \ sed -ie 's#org\.mozilla#sun.org.mozilla#g' $$new_file ; \ done \ - ) - (cd rhino/rhino.new ; \ + ) && \ + (cd rhino/rhino.new && \ $(ICEDTEA_BOOT_DIR)/bin/jar cfm ../rhino.jar META-INF/MANIFEST.MF sun ) endif mkdir -p stamps From evgueni.gordienko at motorola.com Sat May 29 11:08:04 2010 From: evgueni.gordienko at motorola.com (Gordienko Evgueni-XPNG76) Date: Sat, 29 May 2010 14:08:04 -0400 Subject: Where can I get Patch for "Relocation out of range!" assertion Message-ID: Hi, I have java version "1.6.0_18" OpenJDK Runtime Environment (build 1.6.0_18-b18) OpenJDK Shark VM (build 14.0-b16, mixed mode) LLVM used for JIT build is 2.8 on PowerPC linux. I have: # java: PPCJITInfo.cpp:399: virtual void llvm::PPCJITInfo::relocate(void*, llvm::MachineRelocation*, unsigned int, unsigned ch ar*): Assertion `ResultPtr >= -(1 << 23) && ResultPtr < (1 << 23) && "Relocation out of range!"' failed. Stack dump: 0. Running pass 'PowerPC Machine Code Emitter' on function '@"java.io.ObjectStreamClass::lookup"' Where can I get patch for this LLVM issue? Thanks, Evgueni -------------- next part -------------- An HTML attachment was scrubbed... URL: http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100529/98c0e63b/attachment.html From xerxes at zafena.se Sun May 30 01:50:42 2010 From: xerxes at zafena.se (Xerxes Ranby) Date: Sun, 30 May 2010 10:50:42 +0200 Subject: Where can I get Patch for "Relocation out of range!" assertion In-Reply-To: References: Message-ID: <4C0226E2.8030409@zafena.se> Gordienko Evgueni-XPNG76 wrote: > Hi, > > I have > java version "1.6.0_18" > OpenJDK Runtime Environment (build 1.6.0_18-b18) > OpenJDK Shark VM (build 14.0-b16, mixed mode) > > LLVM used for JIT build is 2.8 > > on PowerPC linux. > > I have: > # java: PPCJITInfo.cpp:399: virtual void > llvm::PPCJITInfo::relocate(void*, llvm::MachineRelocation*, unsigned > int, unsigned ch > ar*): Assertion `ResultPtr >= -(1 << 23) && ResultPtr < (1 << 23) && > "Relocation out of range!"' failed. > Stack dump: > 0. Running pass 'PowerPC Machine Code Emitter' on function > '@"java.io.ObjectStreamClass::lookup"' > > > Where can I get patch for this LLVM issue? > > Thanks, > Evgueni > Hi Icedtea bugzilla problem-report 399 tracks this issue: http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=399 patches for LLVM to work around this issue for various LLVM versions are attached to the bugreport. Cheers and have a great day! Xerxes From thierry.reding at avionic-design.de Mon May 31 01:46:41 2010 From: thierry.reding at avionic-design.de (Thierry Reding) Date: Mon, 31 May 2010 10:46:41 +0200 Subject: [IcedTea7] Bootstrap using GCJ-4.4 ? In-Reply-To: Message-ID: <20100531084641.GA26823@avionic-design.de> > > -create-import-jdk-stubs: > > ? ?[mkdir] Created dir: > > /tmp/buildd/openjdk-7-7b84/build/openjdk-boot/build/linux-amd64/langtools/build/genstubs > > ?[genstubs] Generating 81 stub files to > > /tmp/buildd/openjdk-7-7b84/build/openjdk-boot/build/linux-amd64/langtools/build/genstubs > > > > BUILD FAILED > > java.lang.NoClassDefFoundError: GenStubs > > ? at java.lang.Class.initializeClass(libgcj.so.10) > > ? at GenStubs$Ant.execute(Unknown Source) > > [...] > > Caused by: java.lang.ClassNotFoundException: > > javax.tools.JavaFileManager$Location > > [...] > > ? at java.lang.Class.initializeClass(libgcj.so.10) > > ? ...15 more > > > > You can get my full build log here : [1]. > > > > There are some issues with HEAD I need to look at, that's why there > hasn't been a new release yet. Have you tried 1.12? I've been able to trace this back to langtools' build.xml. The attached patch fixes the build for me. Thierry -------------- next part -------------- A non-text attachment was scrubbed... Name: genstubs.patch Type: text/x-diff Size: 559 bytes Desc: not available Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100531/7c47f861/genstubs.patch -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: application/pgp-signature Size: 198 bytes Desc: Digital signature Url : http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20100531/7c47f861/attachment.bin From ludo at gnu.org Mon May 31 04:54:27 2010 From: ludo at gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Date: Mon, 31 May 2010 13:54:27 +0200 Subject: [IcedTea7] Bootstrap using GCJ-4.4 ? In-Reply-To: <4BCC731C.7000401@drazzib.com> (Damien Raude-Morvan's message of "Mon, 19 Apr 2010 17:13:32 +0200") References: <4BCC731C.7000401@drazzib.com> Message-ID: <871vcsthfw.fsf@inria.fr> Hello, Damien Raude-Morvan writes: > I'm trying to prepare some experimental OpenJDK-7 Debian packages > based on Matthias Klose work. First step is to build current icedtea7 > hg HEAD Sorry to hijack this thread ;-), but how did you build the Ant used to build IcedTea? Thanks, Ludo?. From ludovic.courtes at inria.fr Mon May 31 04:52:39 2010 From: ludovic.courtes at inria.fr (Ludovic =?iso-8859-1?Q?Court=E8s?=) Date: Mon, 31 May 2010 13:52:39 +0200 Subject: [IcedTea7] Bootstrap using GCJ-4.4 ? In-Reply-To: <4BCC731C.7000401@drazzib.com> (Damien Raude-Morvan's message of "Mon, 19 Apr 2010 17:13:32 +0200") References: <4BCC731C.7000401@drazzib.com> Message-ID: <8739x8thiw.fsf@inria.fr> Hello, Damien Raude-Morvan writes: > I'm trying to prepare some experimental OpenJDK-7 Debian packages > based on Matthias Klose work. First step is to build current icedtea7 > hg HEAD Sorry to hijack this thread ;-), but how did you build the Ant used to build IcedTea? Thanks, Ludo?.