[Bug libgcj/51615] Condition Variable queue state corruption and infinite loop

pashev.igor at gmail dot com gcc-bugzilla@gcc.gnu.org
Sun Jan 11 22:12:00 GMT 2015


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=51615

--- Comment #3 from Igor Pashev <pashev.igor at gmail dot com> ---
I managed to work around this issue by disabling multithreaded compilation in
ECJ:


---
ecj-3.10.1.orig/src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/Main.java
+++
ecj-3.10.1/src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/Main.java
@@ -4106,7 +4106,7 @@ public void performCompilation() {
        this.batchCompiler.remainingIterations =
this.maxRepetition-this.currentRepetition/*remaining iterations including this
one*/;
        // temporary code to allow the compiler to revert to a single thread
        String setting = System.getProperty("jdt.compiler.useSingleThread");
//$NON-NLS-1$
-       this.batchCompiler.useSingleThread = setting != null &&
setting.equals("true"); //$NON-NLS-1$
+       this.batchCompiler.useSingleThread = setting == null ||
setting.equals("true"); //$NON-NLS-1$

        if (this.compilerOptions.complianceLevel >= ClassFileConstants.JDK1_6
                        && this.compilerOptions.processAnnotations) {


The I recompiled eclipse-ecj.jar on a system without this issue (Debian Linux
amd64), copied this jar to my system and rebuilt ecj.




P. S. I think Debian Linux/amd64 is also affected, see Bug 51615, but
multithreaded compilation works there.



More information about the Gcc-bugs mailing list