commit java-1_7_0-openjdk for openSUSE:Factory
Hello community, here is the log from the commit of package java-1_7_0-openjdk for openSUSE:Factory checked in at 2014-06-25 06:57:58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/java-1_7_0-openjdk (Old) and /work/SRC/openSUSE:Factory/.java-1_7_0-openjdk.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "java-1_7_0-openjdk" Changes: -------- --- /work/SRC/openSUSE:Factory/java-1_7_0-openjdk/java-1_7_0-openjdk.changes 2014-06-16 21:43:48.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.java-1_7_0-openjdk.new/java-1_7_0-openjdk.changes 2014-06-25 06:58:03.000000000 +0200 @@ -1,0 +2,548 @@ +Thu Jun 19 08:28:05 UTC 2014 - fstrba@suse.com + +- update to 2.5.0 - OpenJDK 7u60 + * OpenJDK + S5049299: (process) Use posix_spawn, not fork, on S10 to avoid swap exhaustion + S6412968: CMS: Long initial mark pauses + S6571600: JNI use results in UnsatisfiedLinkError looking for libmawt.so + S6889597: TEST_BUG: javax/management/remote/mandatory/URLTest.java test should be updated in jdk7 Workspace + S6900441: PlatformEvent.park(millis) on Linux could still be affected by changes to the time-of-day clock + S6989981: jstack causes "fatal error: ExceptionMark destructor expects no pending exceptions" + S7074436: (sc) SocketChannel can do short gathering writes when channel configured blocking (win) + S7123493: (proxy) Proxy.getProxyClass doesn't scale under high load + S7124232: [TEST_BUG] [macosx] JSplitPane has wrong divider location + S7124314: [TEST_BUG] [macosx] Aqua LAF: JTree doesn't select element by keyboards left and right keys + S7124320: [TEST_BUG] [macosx] JComboBox doesn't change selection on mouse over + S7124338: [macosx] Selection lost if a selected item removed from a java.awt.List + S7129133: [macosx] Accelerators are displayed as Meta instead of the Command symbol + S7131153: GetDC called way too many times - causes bad performance. + S7133122: SA throws sun.jvm.hotspot.debugger.UnmappedAddressException when it should not + S7133146: [macosx] closed/javax/swing/JInternalFrame/4193219/IconCoord fails on MacOS + S7133154: [TEST_BUG] [macosx] closed/javax/swing/JInternalFrame/4251301/bug4251301.java fails on MacOS + S7145569: G1: optimize nmethods scanning + S7147084: (process) appA hangs when read output stream of appB which starts appC that runs forever + S7171591: getDefaultScopeID() in src/solaris/native/java/net/net_util_md.c should return a value + S7173464: Clipboard.getAvailableDataFlavors: Comparison method violates contract + S7176574: sun/security/krb5/auto/TcpTimeout.java failed with solaris-i586 + S7186887: Test T6567415.java can fail on a slow machine + S7187554: JSR 292: JVMTI PopFrame needs to handle appendix arguments + S7190349: [macosx] Text (Label) is incorrectly drawn with a rotated g2d + S7191817: -XX:+UseSerialGC -XX:+UseLargePages crashes with SIGFPE on MacOS X + S7194607: VerifyLocalVariableTableOnRetransformTest.sh fails after JSR-292 merge + S7197210: java/lang/invoke/CallSiteTest.java failing on armsflt. + S7199674: (props) user.home property does not return an accessible location in sandboxed environment [macosx] + S8003253: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java hang intermittently [win] + S8003262: reverse translation required changes in xalan resource bundles + S8003285: TEST_BUG: java/nio/channels/AsynchronousChannelGroup/Unbounded.java fails again [macosx] + S8003895: java/nio/channels/AsynchronousChannelGroup/Unbounded.java failing again [win64] + S8004032: [TEST_BUG] [macosx] There is no effect when double clicking on the Icon, after right clicking on the Icon and the Icon disappear + S8004051: assert(_oprs_len[mode] < maxNumberOfOperands) failed: array overflow + S8004476: XSLT Extension Functions Don't Work in WebStart + S8005128: JSR 292: the mlvm redefineClassInBootstrap test crashes in ConstantPool::compare_entry_to + S8006395: Race in async socket close on Linux + S8006542: JSR 292: the VM_RedefineClasses::append_entry() must support invokedynamic entry kinds + S8006546: JSR 292: typos in the ConstantPool::copy_cp_impl() + S8006628: NEED_TEST for JDK-8002870 + S8006731: JSR 292: the VM_RedefineClasses::rewrite_cp_refs_in_method() must support invokedynamic + S8007037: JSR 292: the VM_RedefineClasses::append_entry() should do cross-checks with indy operands + S8007454: (process) SetHandleInformation parameters DWORD (not BOOLEAN) + S8008118: (process) Possible null pointer dereference in jdk/src/solaris/native/java/lang/UNIXProcess_md.c + S8008511: JSR 292: MemberName vmtarget refs to methods must be updated at class redefinition + S8008733: Psr:perf:osb performance regression (18%) in wss_bodyenc + S8009062: poor performance of JNI AttachCurrentThread after fix for 7017193 + S8009213: sun/management/jdp/JdpTest.sh fails with exit code 1 + S8009222: java.lang.IllegalArgumentException: not invocable, no method type when attempting to get getter method handle for a static field + S8011194: Apps launched via double-clicked .jars have file.encoding value of US-ASCII on Mac OS X + S8011343: Add new flag for verifying the heap during startup + S8011944: Sort fails with ArrayIndexOutOfBoundsException + S8011955: Lunar screen reader crashes intermittently in WindowsAccessBridge-32.DLL + S8012244: java/net/Socket/asyncClose/Race.java fails intermittently on Windows + S8012326: Deadlock occurs when Charset.availableCharsets() is called by several threads at the same time + S8012615: Realm.getRealmsList returns realms list in wrong + S8012925: [parfait] Missing return value in jdk/src/macosx/native/sun/awt/AWTEvent.m + S8013132: Add a flag to turn off the output of the verbose verification code + S8013895: G1: G1SummarizeRSetStats output on Linux needs improvement + S8013945: CMS fatal error: must own lock MemberNameTable_lock + S8014052: JSR292: assert(end_offset == next_offset) failed: matched ending + S8014078: G1: improve remembered set summary information by providing per region type information + S8014240: G1: Add remembered set size information to output of G1PrintRegionLivenessInfo + S8014288: perf regression in nashorn JDK-8008448.js test after 8008511 changes + S8014394: (fs) WatchService failing when watching \\server\$d + S8014460: Need to check for non-empty EXT_LIBS_PATH before using it + S8014555: G1: Memory ordering problem with Conc refinement and card marking + S8015092: SchemaFactory cannot parse schema if whitespace added within patterns in Selector XPath expression + S8015243: SchemaFactory does not catch enum. value that is not in the value space of the base type, anyURI + S8015244: G1: Verification after a full GC is incorrectly placed. + S8015599: [TEST_BUG] [macosx] Test closed/javax/swing/Popup/TaskbarPositionTest.java fails since JDK 8 b75 on MacOSX + S8015600: [TEST_BUG] [macosx] Test closed/javax/swing/plaf/basic/BasicMenuUI/4983388/bug4983388.java fails since JDK 8 b75 on MacOSX + S8016018: Typo in AbstractStringBuilder#indexOf and #lastIndexOf descriptions + S8016110: Japanese char (MS932) 0x5C cannot be used as an argument when quoted + S8016271: wsimport -clientjar does not create portable jars on Windows due to hardcoded backslash + S8016328: Regression : Javadoc i18n regression caused by fix for 8012375 + S8016500: Unlocalized warnings. + S8017180: [macosx] [TEST_BUG] alt-key doesn't work on macos for menu + S8017195: Introduce option to setKeepAlive parameter on CORBA sockets + S8017456: [TEST_BUG] java/awt/DataFlavor/MissedHtmlAndRtfBug/MissedHtmlAndRtfBug.html: test frames remain after test execution + S8017498: JVM crashes when native code calls sigaction(sig) where sig>=0x20 + S8017779: java/net/Authenticator/B4769350.java fails + S8019184: MethodHandles.catchException() fails when methods have 8 args + varargs + S8019389: SA-JDI JSR292: sun.jvm.hotspot.jdi.StackFrame.thisObject() throws sun.jvm.hotspot.utilities.AssertionFailure: sanity check + S8019396: SA-JDI: OSThread class initialization throws an exception + S8019853: Break logging and AWT circular dependency + S8020123: Test gc/g1/TestPrintRegionRememberedSetInfo.java fails with "test result: Error. No action after @build" + S8020191: System.getProperty("os.name") returns "Windows NT (unknown)" on Windows 8.1 + S8020530: Non heap memory size calculated incorrectly + S8020791: [TESTBUG] runtime/jsig/Test8017498.sh failed to compile native code + S8021296: [TESTBUG] Test8017498.sh fails to find "gcc" and fails to compile on some Linux releases + S8021368: Launch of Java Web Start app fails with ClassCircularityError exception in 7u25 + S8021898: Broken JIT compiler optimization for loop unswitching + S8021943: FileDialog getFile returns corrupted string after previous setFile + S8022213: Intermittent test failures in java/net/URLClassLoader + S8022452: Hotspot needs to know about Windows 8.1 and Windows Server 2012 R2 + S8022507: SIGSEGV at ParMarkBitMap::verify_clear() + S8022584: Memory leak in some NetworkInterface methods + S8022585: VM crashes when ran with -XX:+PrintInlining + S8022993: Convert MAX_UNROLL constant to LoopMaxUnroll C2 flag + S8023004: JSR 292: java.lang.RuntimeException: Original target method was called. + S8023130: (process) ProcessBuilder#inheritIO does not work on Windows + S8023145: G1: G1CollectedHeap::mark_strong_code_roots() needs to handle ParallelGCThreads=0 + S8023472: C2 optimization breaks with G1 + S8023580: Add jtreg test for 8004051 and 8005722 + S8023720: (hotspot) setjmp/longjmp changes the process signal mask on OS X + S8023786: (jdk) setjmp/longjmp changes the process signal mask on OS X + S8023881: IDN.USE_STD3_ASCII_RULES option is too strict to use Unicode in IDN.toASCII + S8023956: Provide a work-around to broken Linux 32 bit "Exec Shield" using CS for NX emulation (crashing with SI_KERNEL) + S8024027: Test sun/misc/IoTrace/IoTraceSocketReadWrite.java crashes VM + S8024163: [macosx] NullPointerException at javax.swing.TransferHandler$DropHandler.handleDrag since jdk8b93, 7u40b28 + S8024521: (process) Async close issues with Process InputStream + S8024648: 7141246 & 8016131 break Zero port + S8024707: TransformerException : item() return null with node list of length != 1 + S8024788: (fs) Files.readAllBytes uses FileChannel which may not be supported by all providers + S8024830: SEGV in org.apache.lucene.codecs.compressing.CompressingTermVectorsReader.get + S8024861: Incomplete token triggers GSS-API NullPointerException + S8024876: [TEST_BUG] javax/xml/jaxp/parsers/8022548/XOMParserTest.java failed when testbase dir has read only permissions + S8024952: ClassCastException in PlainSocketImpl.accept() when using custom socketImpl + S8025145: [macosx]: java 7 does not recognize tiff image on clipboard + S8025204: Intermittent test failure: javax/management/remote/mandatory/connection/IdleTimeoutTest.java + S8025205: Intermittent test failure: javax/management/remote/mandatory/connection/BrokenConnectionTest.java + S8025206: Intermittent test failure: javax/management/monitor/NullAttributeValueTest.java + S8025207: Intermittent test failure: javax/management/monitor/CounterMonitorThresholdTest.java + S8025305: Cleanup CardTableModRefBS usage in G1 + S8025512: NPE with logging while launching webstart on jre7u40 if logging is disabled + S8025541: G1: assert "assert(thread < _num_vtimes) failed: just checking" fails when G1ConcRefinementThreads > ParallelGCThreads + S8025588: [macosx] Frozen AppKit thread in 7u40 + S8025713: Syncing indendation/comment/copyright year differences with upstream projects + S8025775: JNI warnings in TryXShmAttach + S8025860: new hotspot build - hs24.60-b02 + S8025861: Set minor version for hotspot in 7u60 to 60 and build number to b01 + S8025920: webrev.ksh does not provide any details about changes in zip files + S8026293: Schedule part of G1 pre-barrier late + S8026404: Logging in Applet can trigger ACE: access denied ("java.lang.RuntimePermission" "modifyThreadGroup") + S8026405: javax/xml/ws/clientjar/TestWsImport.java failing on JDK 8 nightly aurora test runs + S8026486: Significant slowdown due to transparent huge pages + S8026502: java/lang/invoke/MethodHandleConstants.java fails on all platforms + S8026705: [TEST_BUG] java/beans/Introspector/TestTypeResolver.java failed + S8026794: Test tools/pack200/TimeStamp.java fails while opening golden.jar.native.IST on linux-ppc(v2) + S8026848: -XX:+G1SummarizeRSetStats can result in wrong exit code and crash + S8027066: XMLDecoder in java 7 cannot properly deserialize object arrays + S8027172: new hotspot build - hs24.60-b03 + S8027196: Increment minor version of HSx for 7u55 and initialize the build number + S8027351: (ref) Private finalize method invoked in preference to protected superclass method + S8027426: String.toLowerCase incorrectly increases length, if string contains \u0130 char + S8027454: Do not traverse string table during G1 remark when treating them as strong roots during initial mark + S8027476: Improve performance of Stringtable unlink + S8027579: new hotspot build - hs24.60-b04 + S8027756: assert(!hr->isHumongous()) failed: code root in humongous region? + S8027839: C1 crashes in Weblogic with G1 enabled + S8027840: C2 allows safepoint checks to leak into G1 pre-barriers + S8027860: [TEST_BUG] File not closed in javax/xml/jaxp/parsers/8022548/XOMParserTest.java + S8027973: javax/xml/jaxp/transform/jdk8004476/XSLTExFuncTest.java hangs (win) + S8027997: G1: SPECjbb2013 crashes due to a broken object reference + S8028054: com.sun.beans.finder.MethodFinder has unsynchronized access to a static Map + S8028208: (aio) Assertion in clearPendingIoMap when closing at around time file lock is acquired immediately (win) + S8028351: JWS doesn't get authenticated when using kerberos auth proxy + S8028391: Make the Min/MaxHeapFreeRatio flags manageable + S8028412: AsyncGetCallTrace() is broken on x86 in JDK 7u40 + S8028520: JVM should not throw VerifyError when a private method overrides a final method + S8028583: Add helper methods to test libraries + S8028814: new hotspot build - hs24.60-b06 + S8029281: Synchronization issues in Logger and LogManager + S8029304: JFR broken in 7u train for JDK Linux for ARM or OpenJDK + S8029318: Native Windows ccache still reads DES tickets + S8029366: ShouldNotReachHere error when creating an array with component type of void + S8029599: JVM crashes on solaris-i586 with -Xverify:all if stack overflow happens during recursive reflective call + S8029903: Add a type safe alternative for working with counter based data + S8030061: new hotspot build - hs24.60-b05 + S8030070: Test java/io/File/CheckPermission.java fails due to unfinished recursion (java.lang.StackOverflowError) when JIT'ed code (-client,-server) is running + S8030655: Regression: 14_01 Security fix 8024306 causes test failures + S8030698: Several GUI labels in jconsole need correction + S8030813: Signed applet fails to load when CRLs are stored in an LDAP directory + S8030822: (tz) Support tzdata2013i + S8031050: (thread) Change Thread initialization so that thread name is set before invoking SecurityManager + S8031394: (sl) Fix exception handling in ServiceLoader + S8031462: Fonts with morx tables are broken with latest ICU fixes + S8031787: Remove fix JDK-8026887 from 7u60 + S8031980: Add new j.u.l deadlock test for JDK-8027670 and JDK-8029281 + S8032013: new hotspot build - hs24.60-b08 + S8032207: C2: assert(VerifyOops || MachNode::size(ra_) <= (3+1)*4) failed: bad fixed size + S8032740: Need to create SE Embedded Source Bundles in 7 Release + S8032771: The flag VerifySilently misses a test case + S8032960: Running forms URL throws NullPointerException in Javaconsole. + S8032986: new hotspot build - hs24.60-b09 + S8033294: javac, spurious warning for instanceof operator + S8033443: Test8000311 fails after latest changes to parallelize string and symbol table unlink + S8033487: Improve GC option handling + S8034181: SIGBUS in SctpChannelImpl receive + S8034772: JDK-8028795 brought a specification change to 7u55 release and caused JCK7 signature test failure + S8035283: Second phase of branch shortening doesn't account for loop alignment ++++ 351 more lines (skipped) ++++ between /work/SRC/openSUSE:Factory/java-1_7_0-openjdk/java-1_7_0-openjdk.changes ++++ and /work/SRC/openSUSE:Factory/.java-1_7_0-openjdk.new/java-1_7_0-openjdk.changes Old: ---- 13970e76b784.tar.gz 69b542696e5b.tar.gz 8c26a3c39128.tar.gz 9448fff93286.tar.gz 94b7e8e0d96f.tar.gz bd9a50a78d04.tar.gz e6ad5b912691.tar.gz f50993b6c38d.tar.gz icedtea-2.4.7.tar.xz icedtea-2.4.7.tar.xz.sig jamvm-ac22c9948434e528ece451642b4ebde40953ee7e.tar.gz update.py New: ---- aarch64-hotspot.tar.bz2 corba.tar.bz2 hotspot.tar.bz2 icedtea-2.5.0.tar.xz icedtea-2.5.0.tar.xz.sig jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa.tar.gz java-1_7_0-openjdk-ppc-stackoverflow.patch jaxp.tar.bz2 jaxws.tar.bz2 jdk.tar.bz2 langtools.tar.bz2 openjdk-7-src-b147-no-return-in-nonvoid-hotspot.patch openjdk.tar.bz2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ java-1_7_0-openjdk.spec ++++++ --- /var/tmp/diff_new_pack.Obwip0/_old 2014-06-25 06:58:08.000000000 +0200 +++ /var/tmp/diff_new_pack.Obwip0/_new 2014-06-25 06:58:08.000000000 +0200 @@ -16,14 +16,18 @@ # -# uncoment following line to get the bootstrap build -# % global _with_bootstrap 1 +# Because of a change in architecture directories from ppc64le to ppc64, +# bootstrap is needed on ppc64le architecture. Add your architecture to the +# condition if you need to be building with bootstrap. +%ifarch ppc64le +%global _with_bootstrap 1 +%endif # or use osc build --with bootstrap %bcond_with bootstrap %{!?aarch64:%global aarch64 aarch64 arm64 armv8} -%global jit_arches %{ix86} x86_64 aarch64 -%global test_arches %{ix86} x86_64 +%global jit_arches %{ix86} x86_64 aarch64 ppc64 ppc64le +%global test_arches %{ix86} x86_64 ppc64 ppc64le # Turn on/off some features depending on openSUSE version @@ -51,12 +55,6 @@ %endif %bcond_with zero -%if 0%{?suse_version} >= 1140 -%global with_pulseaudio 1 -%else -%global with_pulseaudio 0 -%endif - %if 0%{?suse_version} >= 1220 %global with_system_lcms 1 %else @@ -69,7 +67,7 @@ %bcond_with tests %endif -%global icedtea_version 2.4.7 +%global icedtea_version 2.5.0 %global hg_tag icedtea-{icedtea_version}-branchpoint %global openjdkdate 27_jun_2011 @@ -96,6 +94,10 @@ %global archbuild aarch64 %global archinstall aarch64 %endif +%ifarch ppc64 ppc64le +%global archbuild ppc64 +%global archinstall ppc64 +%endif %global buildoutputdir openjdk.build/ @@ -113,7 +115,7 @@ %endif %global priority 17147 %global javaver 1.7.0 -%global buildver 6 +%global buildver 60 # Standard JPackage directories and symbolic links. %global sdklnk java-%{javaver}-%{origin} @@ -158,24 +160,25 @@ Group: Development/Languages/Java Url: http://icedtea.classpath.org -Source0: http://icedtea.wildebeest.org/download/source/icedtea-%{icedtea_version}.tar.xz +Source0: http://icedtea.classpath.org/download/source/icedtea-%{icedtea_version}.tar.xz # Mauve test suite # FIXME: Is this applicable for 7? Source3: mauve-%{mauvedate}.tar.gz Source4: mauve_tests -Source5: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/archive/13970e76... -Source6: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/corba/archive/e6... -Source7: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jaxp/archive/94b... -Source8: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jaxws/archive/bd... -Source9: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/jdk/archive/9448... -Source10: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/langtools/archiv... +Source5: http://icedtea.classpath.org/download/drops/icedtea7/2.5/openjdk.tar.bz2 +Source6: http://icedtea.classpath.org/download/drops/icedtea7/2.5/corba.tar.bz2 +Source7: http://icedtea.classpath.org/download/drops/icedtea7/2.5/jaxp.tar.bz2 +Source8: http://icedtea.classpath.org/download/drops/icedtea7/2.5/jaxws.tar.bz2 +Source9: http://icedtea.classpath.org/download/drops/icedtea7/2.5/jdk.tar.bz2 +Source10: http://icedtea.classpath.org/download/drops/icedtea7/2.5/langtools.tar.bz2 %ifarch aarch64 -Source11: http://hg.openjdk.java.net/aarch64-port/jdk7u/hotspot/archive/f50993b6c38d.t... +# wget http://icedtea.classpath.org/download/drops/aarch64/2.5/hotspot.tar.bz2 -O aarch64-hotspot.tar.bz2 +Source11: aarch64-hotspot.tar.bz2 %else -Source11: http://icedtea.classpath.org/hg/release/icedtea7-forest-2.4/hotspot/archive/... +Source11: http://icedtea.classpath.org/download/drops/icedtea7/2.5/hotspot.tar.bz2 %endif -Source13: http://icedtea.classpath.org/download/drops/jamvm/jamvm-ac22c9948434e528ece4... +Source13: http://icedtea.classpath.org/download/drops/jamvm/jamvm-ec18fb9e49e62dce16c5... #Source1000: java-1_7_0-openjdk-rpmlintrc # those properties are for opeSUSE only @@ -183,8 +186,6 @@ Source2000: http://icedtea.classpath.org/download/source/icedtea-%{icedtea_version}.tar.xz.sig Source2001: java-1_7_0-openjdk.keyring -# helper script for performing updates -Source2002: update.py # RPM/distribution specific patches @@ -205,6 +206,7 @@ # Patch106: java-1.7.0-openjdk-freetype-check-fix.patch +Patch110: java-1_7_0-openjdk-ppc-stackoverflow.patch # Fix use of unintialized memory in adlc parser Patch107: java-1.7.0-openjdk-adlc-parser.patch @@ -229,6 +231,7 @@ Patch1000: java-1_7_0-openjdk-suse-desktop-files.patch Patch1001: openjdk-7-src-b147-no-return-in-nonvoid.patch +Patch10011: openjdk-7-src-b147-no-return-in-nonvoid-hotspot.patch Patch1002: openjdk-7-src-b147-stringcompare.patch # PATCH-FIX-OPENSUSE: limit the maximum heap size of a rewriter - it fails on some servers @@ -241,11 +244,6 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-build -%if %{without bootstrap} -# special for hacking inside build dir -BuildRequires: vim -%endif - BuildRequires: alsa-lib-devel BuildRequires: autoconf BuildRequires: automake @@ -315,12 +313,6 @@ BuildRequires: pkgconfig >= 0.9.0 BuildRequires: xorg-x11-util-devel -# pulse audio requirements -%if %{with_pulseaudio} -BuildRequires: libpulse-devel >= 0.9.11 -BuildRequires: pulseaudio >= 0.9.11 -%endif - #system tap %if %{with_systemtap} BuildRequires: systemtap-sdt-devel >= 1.0 @@ -513,7 +505,6 @@ and is intented for developers which may need them for investigating problems. -%if %{without bootstrap} %package javadoc Summary: Documentation of the Java API of OpenJDK 7 Group: Development/Languages/Java @@ -540,7 +531,6 @@ itself is still in phase of tuning to be working with accessibility features. Although working pretty fine, there are known issues with accessibility on, so do not rather install this package unless you really need. -%endif %prep %if 0%{?suse_version} >= 1230 @@ -548,7 +538,7 @@ %endif %if %{with jamvm} && %{with zero} -echo "ERROR: use either --with jamvm either --with zero, both are not supported!" >&2 +echo "ERROR: use either --with jamvm or --with zero, both are not supported!" >&2 exit 1 %endif @@ -597,7 +587,6 @@ %{configure} \ %if %{with bootstrap} --enable-bootstrap \ - --disable-docs \ --with-gcj \ --with-javac=${JAVAC} \ --with-ecj=%{_bindir}/ecj \ @@ -612,9 +601,6 @@ %endif --with-pkgversion="suse-%{release}-%{_arch}" \ --with-jdk-home="/etc/alternatives/java_sdk/" \ -%if %{with_pulseaudio} - --enable-pulse-java \ -%endif %if %{with_systemtap} --enable-systemtap \ %endif @@ -660,6 +646,8 @@ patch -p0 -i %{PATCH108} patch -p0 -i %{PATCH200} +patch -p1 -i %{PATCH110} + %ifarch %{jit_arches} #patch -p0 -i %{PATCH402} patch -p0 -i %{PATCH403} @@ -683,8 +671,9 @@ sed -i 's/-Wno-unused//;s/WARNINGS_ARE_ERRORS = -Werror//;s/CFLAGS_WARN = -Werror//;s/CFLAGS_WARN = -Werror//' %endif -%ifnarch aarch64 patch -p1 -i %{PATCH1001} +%ifnarch aarch64 +patch -p1 -i %{PATCH10011} %endif make %{_smp_mflags} @@ -848,11 +837,9 @@ popd -%if %{without bootstrap} # Install Javadoc documentation. install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir} cp -a %{buildoutputdir}/docs $RPM_BUILD_ROOT%{_javadocdir}/%{sdklnk} -%endif # Install icons and menu entries. for s in 16 24 32 48 ; do @@ -885,9 +872,7 @@ # use it carefully :)) %fdupes -s $RPM_BUILD_ROOT/%{_jvmdir}/%{jredir}/ %fdupes -s $RPM_BUILD_ROOT/%{_jvmdir}/%{sdkdir}/demo -%if %{without bootstrap} %fdupes -s $RPM_BUILD_ROOT%{_javadocdir}/%{sdklnk} -%endif %if 0%{?suse_version} <= 1130 # bnc496378 - check the size of installed cacerts @@ -1100,7 +1085,6 @@ update-alternatives --remove java_sdk_%{javaver} %{_jvmdir}/%{sdklnk} fi -%if %{without bootstrap} %post javadoc update-alternatives \ --install %{_javadocdir}/java javadocdir %{_javadocdir}/%{sdklnk}/api \ @@ -1123,16 +1107,12 @@ %postun accessibility #mvyskocil no need for postun as files are marked as ghost files, so will be removed on rpm -e exit 0 -%endif %files %defattr(0644,root,root,0755) %dir %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall} %dir %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt %attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libjsoundalsa.so -%if %{with_pulseaudio} -%attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libpulse-java.so -%endif %attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libsplashscreen.so %attr(755,root,root) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt/libmawt.so @@ -1173,9 +1153,6 @@ %exclude %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so #belongs to full package %exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libjsoundalsa.so -%if %{with_pulseaudio} -%exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libpulse-java.so -%endif %exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/libsplashscreen.so %ifarch %{ix86} %{arm} %dir %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/client @@ -1191,8 +1168,10 @@ %exclude %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/xawt/libmawt.so %config(noreplace) %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/jvm.cfg %if ! %{with jamvm} && ! %{with zero} +%ifnarch ppc64 ppc64le %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/classes.jsa %endif +%endif %{_jvmdir}/%{sdkdir}/jre/lib/%{archinstall}/server/Xusage.txt %{_jvmdir}/%{sdkdir}/jre/lib/applet/ %{_jvmdir}/%{sdkdir}/jre/lib/cmm/ @@ -1301,7 +1280,6 @@ %defattr(0644,root,root,0755) %{_jvmdir}/%{sdkdir}/src.zip -%if %{without bootstrap} %files javadoc %defattr(0644,root,root,0755) %dir %{_javadocdir}/%{sdklnk} @@ -1312,6 +1290,5 @@ %config(noreplace) %{_jvmdir}/%{jredir}/lib/accessibility.properties %ghost %{_jvmdir}/%{jredir}/lib/%{archinstall}/libatk-wrapper.so %ghost %{_jvmdir}/%{jredir}/lib/ext/java-atk-wrapper.jar -%endif %changelog ++++++ icedtea-2.4.7.tar.xz -> icedtea-2.5.0.tar.xz ++++++ ++++ 26937 lines of diff (skipped) ++++++ jamvm-ac22c9948434e528ece451642b4ebde40953ee7e.tar.gz -> jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/alloc.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/alloc.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/alloc.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/alloc.c 2013-11-18 04:45:44.000000000 +0100 @@ -1214,11 +1214,13 @@ classes own method and field blocks. As we know the new address we can update the address now. */ - for(i = 0; i < cb->fields_count; i++) - cb->fields[i].class = new_addr; + if(class != new_addr) { + for(i = 0; i < cb->fields_count; i++) + cb->fields[i].class = new_addr; - for(i = 0; i < cb->methods_count; i++) - cb->methods[i].class = new_addr; + for(i = 0; i < cb->methods_count; i++) + cb->methods[i].class = new_addr; + } } int threadChildren(Object *ob, Object *new_addr) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/class.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/class.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/class.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/class.c 2013-11-18 04:45:44.000000000 +0100 @@ -631,12 +631,7 @@ if(inner == this_idx) { int inner_name_idx; - /* A member class doesn't have an EnclosingMethod - attribute, so set the enclosing class to be the - same as the declaring class */ - if(outer) - classblock->declaring_class = - classblock->enclosing_class = outer; + classblock->declaring_class = outer; READ_TYPE_INDEX(inner_name_idx, constant_pool, CONSTANT_Utf8, ptr, len); @@ -1066,6 +1061,7 @@ int new_itable_count; int itbl_idx, i, j; int spr_flags = 0; + Thread *self; if(cb->state >= CLASS_LINKED) return; @@ -1178,8 +1174,16 @@ for(i = 0; i < cb->interfaces_count; i++) new_itable_count += CLASS_CB(cb->interfaces[i])->imethod_table_size; + cb->imethod_table = sysMalloc((spr_imthd_tbl_sze + new_itable_count) * + sizeof(ITableEntry)); + + /* the interface references in the imethod table are updated by the + GC during heap compaction - disable suspension while it is being + setup */ + self = threadSelf(); + fastDisableSuspend(self); + cb->imethod_table_size = spr_imthd_tbl_sze + new_itable_count; - cb->imethod_table = sysMalloc(cb->imethod_table_size * sizeof(ITableEntry)); /* copy parent's interface table - the offsets into the method table won't change */ @@ -1207,6 +1211,8 @@ } } + fastEnableSuspend(self); + /* if we're an interface all finished - offsets aren't used */ if(!(cb->access_flags & ACC_INTERFACE)) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/gnuclasspath/annotations.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/gnuclasspath/annotations.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/gnuclasspath/annotations.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/gnuclasspath/annotations.c 2013-11-18 04:45:44.000000000 +0100 @@ -247,7 +247,7 @@ return anno; } -Object *parseAnnotations(Class *class, AnnotationData *annotations) { +Object *parseAnnotations(Class *class, AttributeData *annotations) { if(!anno_inited && !initAnnotation()) return NULL; @@ -290,7 +290,7 @@ } Object *getMethodParameterAnnotations(MethodBlock *mb) { - AnnotationData *annotations; + AttributeData *annotations; Object **outer_array_data; Object *outer_array; int no_params, i; @@ -342,7 +342,7 @@ } Object *getMethodDefaultValue(MethodBlock *mb) { - AnnotationData *annotations; + AttributeData *annotations; if(!anno_inited && !initAnnotation()) return NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/gnuclasspath/classlib.h new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/gnuclasspath/classlib.h --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/gnuclasspath/classlib.h 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/gnuclasspath/classlib.h 2013-11-18 04:45:44.000000000 +0100 @@ -29,7 +29,7 @@ Class *thrdGrp_class); extern char classlibCreateJavaThread(Thread *thread, Object *jThread); -extern void classlibMarkThreadTerminated(Object *jThread); +extern Object *classlibMarkThreadTerminated(Object *jThread); extern Thread *classlibJThread2Thread(Object *jThread); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/gnuclasspath/reflect.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/gnuclasspath/reflect.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/gnuclasspath/reflect.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/gnuclasspath/reflect.c 2013-11-18 04:45:44.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 + * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2013 * Robert Lougher <rob@jamvm.org.uk>. * * This file is part of JamVM. @@ -304,19 +304,27 @@ Class *getEnclosingClass(Class *class) { ClassBlock *cb = CLASS_CB(class); + int encl_class_idx = cb->enclosing_class; - return cb->enclosing_class ? resolveClass(class, cb->enclosing_class, - FALSE, TRUE) - : NULL; + /* A member class doesn't have an EnclosingMethod attribute, + so the enclosing class is the declaring class */ + if(!encl_class_idx) + encl_class_idx = cb->declaring_class; + + if(!encl_class_idx) + return NULL; + + return resolveClass(class, encl_class_idx, FALSE, TRUE); } MethodBlock *getEnclosingMethod(Class *class) { - Class *enclosing_class = getEnclosingClass(class); + ClassBlock *cb = CLASS_CB(class); - if(enclosing_class != NULL) { - ClassBlock *cb = CLASS_CB(class); + if(cb->enclosing_class && cb->enclosing_method) { + Class *enclosing_class = resolveClass(class, cb->enclosing_class, + FALSE, TRUE); - if(cb->enclosing_method) { + if(enclosing_class != NULL) { ConstantPool *cp = &cb->constant_pool; char *methodname = CP_UTF8(cp, CP_NAME_TYPE_NAME(cp, cb->enclosing_method)); @@ -342,7 +350,7 @@ Object *getEnclosingMethodObject(Class *class) { MethodBlock *mb = getEnclosingMethod(class); - if(mb != NULL && mb->name == SYMBOL(object_init)) + if(mb != NULL && mb->name != SYMBOL(object_init)) return classlibCreateMethodObject(mb); return NULL; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/gnuclasspath/thread.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/gnuclasspath/thread.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/gnuclasspath/thread.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/gnuclasspath/thread.c 2013-11-18 04:45:44.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010, 2011 Robert Lougher <rob@jamvm.org.uk>. + * Copyright (C) 2010, 2011, 2013 Robert Lougher <rob@jamvm.org.uk>. * * This file is part of JamVM. * @@ -76,10 +76,14 @@ return TRUE; } -void classlibMarkThreadTerminated(Object *jThread) { +Object *classlibMarkThreadTerminated(Object *jThread) { + Object *vmthread = INST_DATA(jThread, Object*, vmthread_offset); + /* set VMThread ref in Thread object to null - operations after this point will result in an IllegalThreadStateException */ INST_DATA(jThread, Object*, vmthread_offset) = NULL; + + return vmthread; } Object *classlibThreadPreInit(Class *thread_class, Class *thrdGrp_class) { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/classlib-symbol.h new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/classlib-symbol.h --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/classlib-symbol.h 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/classlib-symbol.h 2013-11-18 04:45:44.000000000 +0100 @@ -52,7 +52,6 @@ action(linkToInterface, "linkToInterface"), \ action(getFromClass, "getFromClass"), \ action(constantPoolOop, "constantPoolOop"), \ - action(typeAnnotations, "typeAnnotations"), \ action(sun_misc_Signal, "sun/misc/Signal"), \ action(java_lang_Shutdown, "java/lang/Shutdown"), \ action(___java_lang_Class, "()Ljava/lang/Class;"), \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/classlib.h new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/classlib.h --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/classlib.h 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/classlib.h 2013-11-18 04:45:44.000000000 +0100 @@ -29,9 +29,7 @@ extern char classlibCreateJavaThread(Thread *thread, Object *jThread); extern Thread *classlibJThread2Thread(Object *jThread); - -#define classlibMarkThreadTerminated(jThread) \ - /* NOTHING TO DO */ +extern Object *classlibMarkThreadTerminated(Object *jThread); #define classlibThreadIdName() SYMBOL(tid) #define classlibAddThreadName() SYMBOL(add) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/jvm.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/jvm.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/jvm.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/jvm.c 2013-11-18 04:45:44.000000000 +0100 @@ -859,6 +859,26 @@ return getAnnotationsAsArray(getClassTypeAnnotationData((Class*)cls)); } + +/* JVM_GetFieldTypeAnnotations */ + +jbyteArray JVM_GetFieldTypeAnnotations(JNIEnv *env, jobject field) { + FieldBlock *fb = fbFromReflectObject(field); + + TRACE("JVM_GetFieldTypeAnnotations(env=%p, field=%p)", env, field); + + return getAnnotationsAsArray(getFieldTypeAnnotationData(fb)); +} + +/* JVM_GetMethodTypeAnnotations */ + +jbyteArray JVM_GetMethodTypeAnnotations(JNIEnv *env, jobject method) { + MethodBlock *mb = mbFromReflectObject(method); + + TRACE("JVM_GetMethodTypeAnnotations(env=%p, method=%p)", env, method); + + return getAnnotationsAsArray(getMethodTypeAnnotationData(mb)); +} #endif @@ -2123,6 +2143,11 @@ return allocTypeArray(type_map[type - 1], length); } + if(cb->dim == 255) { + signalException(java_lang_IllegalArgumentException, NULL); + return NULL; + } + return allocObjectArray(eltClass, length); } } @@ -2146,6 +2171,11 @@ int *dim_data = ARRAY_DATA((Class*)dim, int); ClassBlock *cb = CLASS_CB((Class*)eltClass); + if(len == 0 || cb->dim + len > 255) { + signalException(java_lang_IllegalArgumentException, NULL); + return NULL; + } + if(IS_PRIMITIVE(cb)) { /* If the element is a primitive class, we need to convert from primitive class name @@ -2168,11 +2198,18 @@ } else { /* Construct object array name, e.g. "[[Ljava/lang/String;" */ int name_len = strlen(cb->name); - array_name = alloca(len + name_len + 3); - array_name[len] = 'L'; - memcpy(array_name + len + 1, cb->name, name_len); - array_name[len + name_len + 1] = ';'; - array_name[len + name_len + 2] = '\0'; + + if(IS_ARRAY(cb)) { + array_name = alloca(len + name_len + 1); + memcpy(array_name + len, cb->name, name_len); + array_name[len + name_len] = '\0'; + } else { + array_name = alloca(len + name_len + 3); + array_name[len] = 'L'; + memcpy(array_name + len + 1, cb->name, name_len); + array_name[len + name_len + 1] = ';'; + array_name[len + name_len + 2] = '\0'; + } } /* Add a [ for each dimension */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/mh.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/mh.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/mh.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/mh.c 2013-11-18 04:45:44.000000000 +0100 @@ -733,6 +733,7 @@ char *methodtype; int type_idx = CP_METHOD_TYPE(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_MethodType) goto retry; @@ -756,20 +757,18 @@ static Object *findMethodHandleConstant(Class *class, int ref_kind, Class *defining_class, - char *name, char *type) { + char *name, Object *type) { Object *mh; Object *name_str = findInternedString(createString(name)); - Object *type_obj = type[0] == '(' ? findMethodHandleType(type, class) - : findClassFromSignature(type, class); - if(name_str == NULL || type_obj == NULL) + if(name_str == NULL) return NULL; mh = *(Object**)executeStaticMethod(MHN_linkMethodHandleConstant_mb->class, MHN_linkMethodHandleConstant_mb, class, ref_kind, defining_class, - name_str, type_obj); + name_str, type); if(exceptionOccurred()) return NULL; @@ -791,26 +790,46 @@ break; case CONSTANT_MethodHandle: { + char *name; + Object *type; Class *resolved_class; - int cl_idx, name_type_idx; - char *methodname, *methodtype; int ref_idx = CP_METHOD_HANDLE_REF(cp, cp_index); int ref_kind = CP_METHOD_HANDLE_KIND(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_MethodHandle) goto retry; - cl_idx = CP_METHOD_CLASS(cp, ref_idx); - name_type_idx = CP_METHOD_NAME_TYPE(cp, ref_idx); - methodname = CP_UTF8(cp, CP_NAME_TYPE_NAME(cp, name_type_idx)); - methodtype = CP_UTF8(cp, CP_NAME_TYPE_TYPE(cp, name_type_idx)); + if(ref_kind >= REF_invokeVirtual) { + MethodBlock *mb; + + if(ref_kind == REF_invokeInterface) + mb = resolveInterfaceMethod(class, ref_idx); + else + mb = resolveMethod(class, ref_idx); + + if(mb == NULL) + return NULL; + + name = mb->name; + resolved_class = mb->class; + type = findMethodHandleType(mb->type, resolved_class); + } else { + FieldBlock *fb = resolveField(class, ref_idx); + + if(fb == NULL) + return NULL; + + name = fb->name; + resolved_class = fb->class; + type = findClassFromSignature(fb->type, resolved_class); + } - resolved_class = resolveClass(class, cl_idx, TRUE, FALSE); - if(resolved_class == NULL) + if(type == NULL) return NULL; mh = findMethodHandleConstant(class, ref_kind, resolved_class, - methodname, methodtype); + name, type); if(mh == NULL) return NULL; @@ -875,16 +894,20 @@ int idx = BOOTSTRAP_METHOD_ARG(cb->bootstrap_methods, boot_mthd_idx, i); int prim_idx = cpType2PrimIdx(CP_TYPE(cp, idx)); + Object *arg; - if(prim_idx != -1) - args_data[i] = createWrapperObject(prim_idx, - &CP_INFO(cp, idx), - REF_SRC_FIELD); - else - args_data[i] = (Object*)resolveSingleConstant(class, idx); - - if(args_data[i] == NULL) - return NULL; + if(prim_idx != -1) { + arg = createWrapperObject(prim_idx, &CP_INFO(cp, idx), + REF_SRC_FIELD); + if(arg == NULL) + return NULL; + } else { + arg = (Object*)resolveSingleConstant(class, idx); + + if(exceptionOccurred()) + return NULL; + } + args_data[i] = arg; } } @@ -943,6 +966,7 @@ int boot_mthd_idx = CP_INVDYN_BOOT_MTHD(cp, cp_index); int name_type_idx = CP_INVDYN_NAME_TYPE(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_InvokeDynamic) goto retry; @@ -1016,7 +1040,7 @@ #define COMPARE(ptr1, ptr2, hash1, hash2) \ (hash1 == hash2 && \ - ptr1->flags == ptr2->flags && \ + ptr1->state == ptr2->state && \ ptr1->args_count == ptr2->args_count && \ ptr1->ret_slot_size == ptr2->ret_slot_size) @@ -1099,6 +1123,7 @@ int cl_idx = CP_METHOD_CLASS(cp, cp_index); int name_type_idx = CP_METHOD_NAME_TYPE(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_Methodref) goto retry; @@ -1134,6 +1159,7 @@ int cl_idx = CP_METHOD_CLASS(cp, cp_index); int name_type_idx = CP_METHOD_NAME_TYPE(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_Methodref) goto retry; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/reflect.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/reflect.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/reflect.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/reflect.c 2013-11-18 04:45:44.000000000 +0100 @@ -41,11 +41,6 @@ static MethodBlock *cons_init_mb, *fld_init_mb, *mthd_init_mb; static int cons_param_offset, mthd_ret_offset, mthd_param_offset; -#ifdef JSR308 -static int fld_type_annos_offset, cons_type_annos_offset; -static int mthd_type_annos_offset; -#endif - #ifdef JSR901 static Class *parameter_array_class; static MethodBlock *param_init_mb; @@ -58,7 +53,6 @@ FieldBlock *fld_slot_fb, *fld_class_fb; FieldBlock *cons_slot_fb, *cons_class_fb, *cons_param_fb; FieldBlock *mthd_slot_fb, *mthd_class_fb, *mthd_ret_fb, *mthd_param_fb; - FieldBlock *fld_type_annos_fb, *mthd_type_annos_fb, *cons_type_annos_fb; cons_ref_cls = findSystemClass(SYMBOL(java_lang_reflect_Constructor)); mthd_ref_cls = findSystemClass(SYMBOL(java_lang_reflect_Method)); @@ -118,28 +112,6 @@ fld_slot_offset = fld_slot_fb->u.offset; fld_class_offset = fld_class_fb->u.offset; -#ifdef JSR308 - fld_type_annos_fb = findField(fld_ref_cls, SYMBOL(typeAnnotations), - SYMBOL(array_B)); - - mthd_type_annos_fb = findField(mthd_ref_cls, SYMBOL(typeAnnotations), - SYMBOL(array_B)); - - cons_type_annos_fb = findField(cons_ref_cls, SYMBOL(typeAnnotations), - SYMBOL(array_B)); - - if(!fld_type_annos_fb || !mthd_type_annos_fb || !cons_type_annos_fb) { - /* Find Field doesn't throw an exception... */ - signalException(java_lang_InternalError, - "Expected type annotation fields don't exist"); - return FALSE; - } - - fld_type_annos_offset = fld_type_annos_fb->u.offset; - mthd_type_annos_offset = mthd_type_annos_fb->u.offset; - cons_type_annos_offset = cons_type_annos_fb->u.offset; -#endif - #ifdef JSR901 prm_ary_cls = findArrayClass(SYMBOL(array_java_lang_reflect_Parameter)); @@ -200,11 +172,6 @@ getAnnotationsAsArray(annotations), getAnnotationsAsArray(parameters)); -#ifdef JSR308 - INST_DATA(reflect_ob, Object*, cons_type_annos_offset) = - getAnnotationsAsArray(getMethodTypeAnnotationData(mb)); -#endif - return reflect_ob; } @@ -231,11 +198,6 @@ getAnnotationsAsArray(parameters), getAnnotationsAsArray(dft_val)); -#ifdef JSR308 - INST_DATA(reflect_ob, Object*, mthd_type_annos_offset) = - getAnnotationsAsArray(getMethodTypeAnnotationData(mb)); -#endif - return reflect_ob; } @@ -256,11 +218,6 @@ : findInternedString(createString(fb->signature)), getAnnotationsAsArray(annotations)); -#ifdef JSR308 - INST_DATA(reflect_ob, Object*, fld_type_annos_offset) = - getAnnotationsAsArray(getFieldTypeAnnotationData(fb)); -#endif - return reflect_ob; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/thread.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/thread.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/classlib/openjdk/thread.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/classlib/openjdk/thread.c 2013-11-18 04:45:44.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (C) 2010, 2011 Robert Lougher <rob@jamvm.org.uk>. + * Copyright (C) 2010, 2011, 2013 Robert Lougher <rob@jamvm.org.uk>. * * This file is part of JamVM. * @@ -129,6 +129,11 @@ return state != CREATING && state != TERMINATED; } +Object *classlibMarkThreadTerminated(Object *jThread) { + INST_DATA(jThread, int, thread_status_offset) = TERMINATED; + return jThread; +} + int classlibGetThreadState(Thread *thread) { if(thread_status_offset == -1 || thread->ee == NULL || thread->ee->thread == NULL) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/dll.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/dll.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/dll.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/dll.c 2013-11-18 04:45:44.000000000 +0100 @@ -1,6 +1,6 @@ /* - * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 - * Robert Lougher <rob@jamvm.org.uk>. + * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, + * 2012, 2013 Robert Lougher <rob@jamvm.org.uk>. * * This file is part of JamVM. * @@ -309,6 +309,7 @@ int resolveDll(char *name, Object *loader) { DllEntry *dll; + Thread *self = threadSelf(); TRACE("<DLL: Attempting to resolve library %s>\n", name); @@ -324,7 +325,21 @@ if(dll == NULL) { DllEntry *dll2; - void *onload, *handle = nativeLibOpen(name); + void *onload, *handle; + + /* lookupLoadedDlls0 calls nativeLibSym with the hashtable + locked (which fast-disables suspension). Internally, the + nativeLibXXX calls (may) acquire locks. As the thread in + lookupLoadedDlls0 has suspension fast-disabled, the + suspension code will wait for it to self-suspend. However, + if we are suspended holding the internal lock, the thread + in lookupLoadedDlls0 will block on the lock, and the + suspension code will wait forever. We therefore must + disable suspension here to prevent us from being suspended + holding the lock */ + fastDisableSuspend(self); + handle = nativeLibOpen(name); + fastEnableSuspend(self); if(handle == NULL) { if(verbose) { @@ -336,7 +351,12 @@ return FALSE; } - if((onload = nativeLibSym(handle, "JNI_OnLoad")) != NULL) { + /* See comment above on nativeLibOpen */ + fastDisableSuspend(self); + onload = nativeLibSym(handle, "JNI_OnLoad"); + fastEnableSuspend(self); + + if(onload != NULL) { int ver; initJNILrefs(); @@ -375,8 +395,17 @@ the bootstrap classloader will never be collected, therefore libraries loaded by it will never be unloaded */ - if(loader != NULL && nativeLibSym(dll->handle, "JNI_OnUnload") != NULL) - classlibNewLibraryUnloader(loader, dll); + if(loader != NULL) { + void *on_unload; + + /* See comment above on nativeLibOpen */ + fastDisableSuspend(self); + on_unload = nativeLibSym(dll->handle, "JNI_OnUnload"); + fastEnableSuspend(self); + + if(on_unload != NULL) + classlibNewLibraryUnloader(loader, dll); + } } else if(dll->loader != loader) { @@ -402,32 +431,68 @@ } void *lookupLoadedDlls0(char *name, Object *loader) { + void *sym = NULL; + TRACE("<DLL: Looking up %s loader %p in loaded DLL's>\n", name, loader); #define ITERATE(ptr) \ { \ DllEntry *dll = (DllEntry*)ptr; \ if(dll->loader == loader) { \ - void *sym = nativeLibSym(dll->handle, name); \ + sym = nativeLibSym(dll->handle, name); \ if(sym != NULL) \ - return sym; \ + goto out; \ } \ } + /* We need to explicitly lock the hashtable as hashIterate + doesn't grab the hashtable lock (hashIterate is normally + used during GC and as hashtables are accessed with + suspension fast-disabled, they can't be being accessed + during GC). */ + lockHashTable(hash_table); hashIterate(hash_table); - return NULL; + +out: + unlockHashTable(hash_table); + return sym; } -void unloadDll(DllEntry *dll, int unloader) { - void *on_unload = nativeLibSym(dll->handle, "JNI_OnUnload"); +/* Called from an unloader object finalize method. As this is + running on the finalizer thread we must be careful not to block + a thread within lookupLoadedDlls0 (see comment in resolveDll) */ +void unloaderUnloadDll(uintptr_t entry) { + DllEntry *dll = (DllEntry*)entry; + Thread *self = threadSelf(); + void *on_unload; + + fastDisableSuspend(self); + on_unload = nativeLibSym(dll->handle, "JNI_OnUnload"); + fastEnableSuspend(self); + + TRACE("<DLL: Unloading loader %p DLL %s\n", dll->loader, dll->name); + + if(on_unload != NULL) { + initJNILrefs(); + (*(void (*)(JavaVM*, void*))on_unload)(&jni_invoke_intf, NULL); + } - if(unloader || on_unload == NULL) { - TRACE("<DLL: Unloading DLL %s\n", dll->name); + fastDisableSuspend(self); + nativeLibClose(dll->handle); + fastEnableSuspend(self); + + sysFree(dll->name); + sysFree(dll); +} - if(on_unload != NULL) { - initJNILrefs(); - (*(void (*)(JavaVM*, void*))on_unload)(&jni_invoke_intf, NULL); - } +/* Called from GC when unloading Dlls for an unreachable classloader. + This only handles Dlls without a JNI_OnUnload function as these + will be handled by an unloader object */ +void unloadDll(DllEntry *dll) { + void *on_unload = nativeLibSym(dll->handle, "JNI_OnUnload"); + + if(on_unload == NULL) { + TRACE("<DLL: Unloading loader %p DLL %s\n", dll->loader, dll->name); nativeLibClose(dll->handle); sysFree(dll->name); @@ -435,10 +500,6 @@ } } -void unloaderUnloadDll(uintptr_t entry) { - unloadDll((DllEntry*)entry, TRUE); -} - #undef ITERATE #define ITERATE(ptr) \ { \ @@ -461,7 +522,7 @@ { \ DllEntry *dll = (DllEntry*)*ptr; \ if(dll->loader == loader) { \ - unloadDll(dll, FALSE); \ + unloadDll(dll); \ *ptr = NULL; \ unloaded++; \ } \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/resolve.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/resolve.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/resolve.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/resolve.c 2013-11-18 04:45:44.000000000 +0100 @@ -134,6 +134,7 @@ char *classname; int name_idx = CP_CLASS(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_Class) goto retry; @@ -199,6 +200,7 @@ int cl_idx = CP_METHOD_CLASS(cp, cp_index); int name_type_idx = CP_METHOD_NAME_TYPE(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != tag) goto retry; @@ -278,6 +280,7 @@ int cl_idx = CP_METHOD_CLASS(cp, cp_index); int name_type_idx = CP_METHOD_NAME_TYPE(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_InterfaceMethodref) goto retry; @@ -330,6 +333,7 @@ int cl_idx = CP_FIELD_CLASS(cp, cp_index); int name_type_idx = CP_FIELD_NAME_TYPE(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_Fieldref) goto retry; @@ -393,6 +397,7 @@ Object *string; int idx = CP_STRING(cp, cp_index); + MBARRIER(); if(CP_TYPE(cp, cp_index) != CONSTANT_String) goto retry; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/symbol.h new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/symbol.h --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/symbol.h 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/symbol.h 2013-11-18 04:45:44.000000000 +0100 @@ -160,7 +160,6 @@ \ /* Array class names */\ action(array_C, "[C"), \ - action(array_B, "[B"), \ action(array_java_lang_Class, "[Ljava/lang/Class;"), \ action(array_java_lang_String, "[Ljava/lang/String;"), \ action(array_java_lang_reflect_Field, "[Ljava/lang/reflect/Field;"), \ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/thread.c new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/thread.c --- old/jamvm-ac22c9948434e528ece451642b4ebde40953ee7e/src/thread.c 2013-08-28 03:29:48.000000000 +0200 +++ new/jamvm-ec18fb9e49e62dce16c5094ef1527eed619463aa/src/thread.c 2013-11-18 04:45:44.000000000 +0100 @@ -1,6 +1,6 @@ /* - * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012 - * Robert Lougher <rob@jamvm.org.uk>. + * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, + * 2012, 2013 Robert Lougher <rob@jamvm.org.uk>. * * This file is part of JamVM. * @@ -606,10 +606,11 @@ printException(); } -void detachThread(Thread *thread) { +void *detachThread(Thread *thread) { + Object *keep_alive; ExecEnv *ee = thread->ee; - Object *jThread = ee->thread; - Object *group = INST_DATA(jThread, Object*, group_offset); + Object *java_thread = ee->thread; + Object *group = INST_DATA(java_thread, Object*, group_offset); /* If there's an exception pending, it is uncaught */ if(exceptionOccurred0(ee)) @@ -621,28 +622,30 @@ /* remove thread from thread group */ executeMethod(group, (CLASS_CB(group->class))-> - method_table[rmveThrd_mtbl_idx], jThread); + method_table[rmveThrd_mtbl_idx], java_thread); /* Remove thread from the ID map hash table */ deleteThreadFromHash(thread); - objectLock(jThread); + objectLock(java_thread); - /* Mark the thread as terminated. This state is used in - determining if the thread is alive and so must be - done before notifying joining threads */ - classlibSetThreadState(thread, TERMINATED); - classlibMarkThreadTerminated(jThread); + /* Mark the thread as terminated. This state is used in determining + if the thread is alive and so must be done before notifying joining + threads. The VM thread structure is tied to a Java-level object + (see comment below). The keep_alive is an object which must be + kept alive to prevent the structure from being freed while we are + still accessing it */ + keep_alive = classlibMarkThreadTerminated(java_thread); /* Notify any threads waiting on the thread object - these are joining this thread */ - objectNotifyAll(jThread); + objectNotifyAll(java_thread); - objectUnlock(jThread); + objectUnlock(java_thread); - /* Thread's about to die, so no need to save registers for - scanning. Also no need to enable suspend afterwards. */ - disableSuspend0(thread, &group); + /* Thread's about to die, so no need to enable suspend + afterwards. */ + disableSuspend(thread); /* Grab global lock, and update thread structures protected by it (thread list, thread ID and number of daemon threads) */ @@ -659,7 +662,7 @@ freeThreadID(thread->id); /* Handle daemon thread status */ - if(!INST_DATA(jThread, int, daemon_offset)) + if(!INST_DATA(java_thread, int, daemon_offset)) non_daemon_thrds--; pthread_mutex_unlock(&lock); @@ -689,6 +692,7 @@ setThreadSelf(NULL); TRACE("Thread %p id: %d detached from VM\n", thread, thread->id); + return keep_alive; } void *threadStart(void *arg) { ++++++ java-1_7_0-openjdk-ppc-stackoverflow.patch ++++++ diff -r 0505a797849f openjdk/hotspot/src/os/linux/vm/os_linux.cpp --- a/openjdk/hotspot/src/os/linux/vm/os_linux.cpp Wed Oct 23 05:23:32 2013 +0100 +++ b/openjdk/hotspot/src/os/linux/vm/os_linux.cpp Thu Oct 24 14:21:47 2013 +0000 @@ -4845,6 +4845,7 @@ pthread_mutex_init(&dl_mutex, NULL); +NOT_ZERO ( // If the pagesize of the VM is greater than 8K determine the appropriate // number of initial guard pages. The user can change this with the // command line arguments, if needed. @@ -4853,6 +4854,7 @@ StackRedPages = 1; StackShadowPages = round_to((StackShadowPages*Linux::vm_default_page_size()), vm_page_size()) / vm_page_size(); } +) } // To install functions for atexit system call @@ -4905,9 +4907,16 @@ // size. Add a page for compiler2 recursion in main thread. // Add in 2*BytesPerWord times page size to account for VM stack during // class initialization depending on 32 or 64 bit VM. +NOT_ZERO ( os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed, (size_t)(StackYellowPages+StackRedPages+StackShadowPages) * Linux::page_size() + (2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::vm_default_page_size()); +) +ZERO_ONLY ( + os::Linux::min_stack_allowed = MAX2(os::Linux::min_stack_allowed, + (size_t)(StackYellowPages+StackRedPages+StackShadowPages+ + 2*BytesPerWord COMPILER2_PRESENT(+1)) * Linux::page_size()); +) size_t threadStackSizeInBytes = ThreadStackSize * K; if (threadStackSizeInBytes != 0 && ++++++ openjdk-7-src-b147-no-return-in-nonvoid-hotspot.patch ++++++ --- icedtea-2.3.2/openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp.old +++ icedtea-2.3.2/openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp @@ -528,6 +528,7 @@ err.report_and_die(); ShouldNotReachHere(); + return 0; // to make gcc happy } void os::Linux::init_thread_fpu_state(void) { --- icedtea-2.3.2/openjdk/hotspot/src/share/vm/utilities/debug.hpp 2012-08-30 21:29:26.000000000 +0200 +++ icedtea-2.3.2/openjdk/hotspot/src/share/vm/utilities/debug.hpp 2012-09-06 00:27:08.074437225 +0200 @@ -206,14 +206,14 @@ // error reporting helper functions void report_vm_error(const char* file, int line, const char* error_msg, - const char* detail_msg = NULL); -void report_fatal(const char* file, int line, const char* message); + const char* detail_msg = NULL) __attribute__((noreturn)); +void report_fatal(const char* file, int line, const char* message) __attribute__((noreturn)); void report_vm_out_of_memory(const char* file, int line, size_t size, - const char* message); -void report_should_not_call(const char* file, int line); -void report_should_not_reach_here(const char* file, int line); -void report_unimplemented(const char* file, int line); -void report_untested(const char* file, int line, const char* message); + const char* message) __attribute__((noreturn)); +void report_should_not_call(const char* file, int line) __attribute__((noreturn)); +void report_should_not_reach_here(const char* file, int line) __attribute__((noreturn)); +void report_unimplemented(const char* file, int line) __attribute__((noreturn)); +void report_untested(const char* file, int line, const char* message) __attribute__((noreturn)); void warning(const char* format, ...); ++++++ openjdk-7-src-b147-no-return-in-nonvoid.patch ++++++ --- /var/tmp/diff_new_pack.Obwip0/_old 2014-06-25 06:58:10.000000000 +0200 +++ /var/tmp/diff_new_pack.Obwip0/_new 2014-06-25 06:58:10.000000000 +0200 @@ -16,38 +16,3 @@ } ---- icedtea-2.3.2/openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp.old -+++ icedtea-2.3.2/openjdk/hotspot/src/os_cpu/linux_x86/vm/os_linux_x86.cpp -@@ -528,6 +528,7 @@ - err.report_and_die(); - - ShouldNotReachHere(); -+ return 0; // to make gcc happy - } - - void os::Linux::init_thread_fpu_state(void) { ---- icedtea-2.3.2/openjdk/hotspot/src/share/vm/utilities/debug.hpp 2012-08-30 21:29:26.000000000 +0200 -+++ icedtea-2.3.2/openjdk/hotspot/src/share/vm/utilities/debug.hpp 2012-09-06 00:27:08.074437225 +0200 -@@ -206,14 +206,14 @@ - - // error reporting helper functions - void report_vm_error(const char* file, int line, const char* error_msg, -- const char* detail_msg = NULL); --void report_fatal(const char* file, int line, const char* message); -+ const char* detail_msg = NULL) __attribute__((noreturn)); -+void report_fatal(const char* file, int line, const char* message) __attribute__((noreturn)); - void report_vm_out_of_memory(const char* file, int line, size_t size, -- const char* message); --void report_should_not_call(const char* file, int line); --void report_should_not_reach_here(const char* file, int line); --void report_unimplemented(const char* file, int line); --void report_untested(const char* file, int line, const char* message); -+ const char* message) __attribute__((noreturn)); -+void report_should_not_call(const char* file, int line) __attribute__((noreturn)); -+void report_should_not_reach_here(const char* file, int line) __attribute__((noreturn)); -+void report_unimplemented(const char* file, int line) __attribute__((noreturn)); -+void report_untested(const char* file, int line, const char* message) __attribute__((noreturn)); - - void warning(const char* format, ...); - - -- To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org For additional commands, e-mail: opensuse-commit+help@opensuse.org
participants (1)
-
root@hilbert.suse.de