This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug libgcj/51615] Condition Variable queue state corruption and infinite loop
- From: "pashev.igor at gmail dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Sun, 11 Jan 2015 22:12:33 +0000
- Subject: [Bug libgcj/51615] Condition Variable queue state corruption and infinite loop
- Auto-submitted: auto-generated
- References: <bug-51615-4 at http dot gcc dot gnu dot org/bugzilla/>
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.