[ecj] 19/37: Imported Debian patch 3.4.2-1
Emmanuel Bourg
ebourg-guest at moszumanska.debian.org
Wed Jun 25 23:35:11 UTC 2014
This is an automated email from the git hooks/post-receive script.
ebourg-guest pushed a commit to branch master
in repository ecj.
commit 639e99597a0d83a9ba419c4b5c6b7afe53d245a6
Merge: f91422e adf6409
Author: Matthias Klose <doko at debian.org>
Date: Sun Feb 15 22:34:28 2009 +0100
Imported Debian patch 3.4.2-1
debian/changelog | 7 +
debian/patches/ecj-gccmain.diff | 510 --
debian/rules | 4 +-
gcc.properties | 5 +
.../jdt/core/compiler/CategorizedProblem.java | 41 +-
.../eclipse/jdt/core/compiler/CharOperation.java | 553 +-
.../jdt/core/compiler/CompilationProgress.java | 87 +
.../org/eclipse/jdt/core/compiler/IProblem.java | 56 +-
.../jdt/core/compiler/InvalidInputException.java | 8 +-
.../jdt/core/compiler/batch/BatchCompiler.java | 86 +
.../eclipse/jdt/internal/compiler/ClassFile.java | 6406 ++++++++++++++------
.../jdt/internal/compiler/ClassFilePool.java | 40 +-
.../jdt/internal/compiler/CompilationResult.java | 67 +-
.../eclipse/jdt/internal/compiler/Compiler.java | 251 +-
.../jdt/internal/compiler/IProblemFactory.java | 44 +-
.../jdt/internal/compiler/ProcessTaskManager.java | 176 +
.../eclipse/jdt/internal/compiler/ReadManager.java | 194 +
.../eclipse/jdt/internal/compiler/ast/ASTNode.java | 127 +-
.../compiler/ast/AbstractMethodDeclaration.java | 46 +-
.../compiler/ast/AllocationExpression.java | 30 +-
.../jdt/internal/compiler/ast/Annotation.java | 32 +-
.../jdt/internal/compiler/ast/Argument.java | 55 +-
.../compiler/ast/ArrayAllocationExpression.java | 5 +-
.../internal/compiler/ast/ArrayInitializer.java | 6 +-
.../jdt/internal/compiler/ast/ArrayReference.java | 318 +-
.../internal/compiler/ast/ArrayTypeReference.java | 6 +-
.../jdt/internal/compiler/ast/Assignment.java | 22 +-
.../internal/compiler/ast/BinaryExpression.java | 10 +-
.../jdt/internal/compiler/ast/BranchStatement.java | 2 +-
.../jdt/internal/compiler/ast/CaseStatement.java | 4 +-
.../jdt/internal/compiler/ast/CastExpression.java | 917 +--
.../internal/compiler/ast/ClassLiteralAccess.java | 9 +-
.../eclipse/jdt/internal/compiler/ast/Clinit.java | 6 +-
.../compiler/ast/CombinedBinaryExpression.java | 34 +-
.../compiler/ast/CompilationUnitDeclaration.java | 199 +-
.../compiler/ast/ConstructorDeclaration.java | 38 +-
.../jdt/internal/compiler/ast/EqualExpression.java | 4 +-
.../compiler/ast/ExplicitConstructorCall.java | 227 +-
.../jdt/internal/compiler/ast/Expression.java | 869 ++-
.../internal/compiler/ast/FieldDeclaration.java | 31 +-
.../jdt/internal/compiler/ast/FieldReference.java | 291 +-
.../internal/compiler/ast/ForeachStatement.java | 32 +-
.../jdt/internal/compiler/ast/Initializer.java | 31 +-
.../eclipse/jdt/internal/compiler/ast/Javadoc.java | 15 +-
.../compiler/ast/JavadocAllocationExpression.java | 4 +-
.../compiler/ast/JavadocArgumentExpression.java | 13 +-
.../compiler/ast/JavadocFieldReference.java | 37 +-
.../compiler/ast/JavadocImplicitTypeReference.java | 67 +-
.../internal/compiler/ast/JavadocMessageSend.java | 12 +-
.../ast/JavadocQualifiedTypeReference.java | 65 +-
.../compiler/ast/JavadocSingleTypeReference.java | 80 +-
.../internal/compiler/ast/LabeledStatement.java | 39 +-
.../internal/compiler/ast/LocalDeclaration.java | 7 +-
.../internal/compiler/ast/MarkerAnnotation.java | 8 +-
.../jdt/internal/compiler/ast/MemberValuePair.java | 4 +-
.../jdt/internal/compiler/ast/MessageSend.java | 52 +-
.../internal/compiler/ast/MethodDeclaration.java | 79 +-
.../internal/compiler/ast/NormalAnnotation.java | 5 +-
.../ast/ParameterizedQualifiedTypeReference.java | 124 +-
.../ast/ParameterizedSingleTypeReference.java | 149 +-
.../ast/QualifiedAllocationExpression.java | 186 +-
.../compiler/ast/QualifiedNameReference.java | 180 +-
.../compiler/ast/QualifiedThisReference.java | 6 +-
.../compiler/ast/QualifiedTypeReference.java | 31 +-
.../jdt/internal/compiler/ast/ReturnStatement.java | 21 +-
.../compiler/ast/SingleMemberAnnotation.java | 5 +-
.../internal/compiler/ast/SingleNameReference.java | 1494 ++---
.../internal/compiler/ast/SingleTypeReference.java | 19 +-
.../internal/compiler/ast/SubRoutineStatement.java | 9 +
.../jdt/internal/compiler/ast/SwitchStatement.java | 7 +-
.../compiler/ast/SynchronizedStatement.java | 3 +-
.../jdt/internal/compiler/ast/ThrowStatement.java | 3 +-
.../jdt/internal/compiler/ast/TryStatement.java | 18 +-
.../jdt/internal/compiler/ast/TypeDeclaration.java | 135 +-
.../jdt/internal/compiler/ast/TypeReference.java | 153 +-
.../jdt/internal/compiler/ast/UnaryExpression.java | 34 +-
.../jdt/internal/compiler/ast/Wildcard.java | 72 +-
.../compiler/batch/ClasspathDirectory.java | 8 +-
.../jdt/internal/compiler/batch/ClasspathJar.java | 179 +-
.../internal/compiler/batch/ClasspathLocation.java | 6 +-
.../jdt/internal/compiler/batch/FileSystem.java | 30 +-
.../jdt/internal/compiler/batch/GCCMain.java | 481 ++
.../eclipse/jdt/internal/compiler/batch/Main.java | 2554 ++++----
.../internal/compiler/batch/messages.properties | 77 +-
.../compiler/classfmt/ClassFileConstants.java | 30 +-
.../compiler/classfmt/ClassFileReader.java | 263 +-
.../jdt/internal/compiler/classfmt/FieldInfo.java | 12 +-
.../jdt/internal/compiler/classfmt/MethodInfo.java | 15 +-
.../compiler/codegen/AttributeNamesConstants.java | 4 +-
.../jdt/internal/compiler/codegen/BranchLabel.java | 22 +-
.../internal/compiler/codegen/CharArrayCache.java | 21 +-
.../jdt/internal/compiler/codegen/CodeStream.java | 357 +-
.../internal/compiler/codegen/ConstantPool.java | 1572 ++---
.../internal/compiler/codegen/StackMapFrame.java | 108 +-
.../compiler/codegen/StackMapFrameCodeStream.java | 2759 ++-------
.../compiler/codegen/VerificationTypeInfo.java | 41 +-
.../internal/compiler/env/AccessRestriction.java | 36 +-
.../jdt/internal/compiler/env/AccessRuleSet.java | 57 +-
.../internal/compiler/env/IBinaryAnnotation.java | 2 +-
.../jdt/internal/compiler/env/IBinaryType.java | 8 +-
.../flow/ExceptionHandlingFlowContext.java | 45 +-
.../internal/compiler/flow/LoopingFlowContext.java | 1 +
.../internal/compiler/impl/CompilerOptions.java | 99 +-
.../jdt/internal/compiler/impl/CompilerStats.java | 43 +
.../compiler/lookup/AnnotationBinding.java | 31 +-
.../jdt/internal/compiler/lookup/ArrayBinding.java | 30 +-
.../compiler/lookup/BinaryTypeBinding.java | 215 +-
.../jdt/internal/compiler/lookup/Binding.java | 9 +-
.../jdt/internal/compiler/lookup/BlockScope.java | 63 +-
.../internal/compiler/lookup/CaptureBinding.java | 73 +-
.../jdt/internal/compiler/lookup/ClassScope.java | 282 +-
.../compiler/lookup/CompilationUnitScope.java | 66 +-
.../internal/compiler/lookup/ElementValuePair.java | 9 +-
.../jdt/internal/compiler/lookup/FieldBinding.java | 106 +-
.../internal/compiler/lookup/LocalTypeBinding.java | 110 +-
.../compiler/lookup/LocalVariableBinding.java | 29 +-
.../compiler/lookup/LookupEnvironment.java | 414 +-
.../internal/compiler/lookup/MethodBinding.java | 280 +-
.../jdt/internal/compiler/lookup/MethodScope.java | 747 ++-
.../internal/compiler/lookup/MethodVerifier.java | 155 +-
.../internal/compiler/lookup/MethodVerifier15.java | 256 +-
...aryTypeBinding.java => MissingTypeBinding.java} | 37 +-
.../lookup/MostSpecificExceptionMethodBinding.java | 35 +
.../compiler/lookup/NestedTypeBinding.java | 4 +-
.../internal/compiler/lookup/PackageBinding.java | 110 +-
.../lookup/ParameterizedGenericMethodBinding.java | 71 +-
.../lookup/ParameterizedMethodBinding.java | 52 +-
.../compiler/lookup/ParameterizedTypeBinding.java | 340 +-
.../compiler/lookup/ProblemReferenceBinding.java | 52 +-
.../internal/compiler/lookup/RawTypeBinding.java | 52 +-
.../internal/compiler/lookup/ReferenceBinding.java | 133 +-
.../jdt/internal/compiler/lookup/Scope.java | 669 +-
.../compiler/lookup/SourceTypeBinding.java | 116 +-
.../compiler/lookup/SyntheticMethodBinding.java | 27 +-
.../jdt/internal/compiler/lookup/TagBits.java | 5 +-
.../jdt/internal/compiler/lookup/TypeBinding.java | 833 +--
.../compiler/lookup/TypeVariableBinding.java | 113 +-
.../lookup/UnresolvedAnnotationBinding.java | 2 +-
.../lookup/UnresolvedReferenceBinding.java | 14 +-
.../internal/compiler/lookup/VariableBinding.java | 19 +-
.../internal/compiler/lookup/WildcardBinding.java | 373 +-
.../jdt/internal/compiler/messages.properties | 5 +-
.../compiler/parser/AbstractCommentParser.java | 632 +-
.../internal/compiler/parser/JavadocParser.java | 90 +-
.../compiler/parser/JavadocTagConstants.java | 24 +-
.../jdt/internal/compiler/parser/Parser.java | 1207 ++--
.../compiler/parser/ParserBasicInformation.java | 22 +-
.../compiler/parser/RecoveredAnnotation.java | 233 +
.../internal/compiler/parser/RecoveredBlock.java | 72 +-
.../internal/compiler/parser/RecoveredElement.java | 23 +-
.../internal/compiler/parser/RecoveredField.java | 64 +-
.../compiler/parser/RecoveredInitializer.java | 97 +-
.../compiler/parser/RecoveredLocalVariable.java | 58 +-
.../internal/compiler/parser/RecoveredMethod.java | 148 +-
.../internal/compiler/parser/RecoveredType.java | 172 +-
.../internal/compiler/parser/RecoveredUnit.java | 63 +-
.../jdt/internal/compiler/parser/Scanner.java | 59 +-
.../internal/compiler/parser/ScannerHelper.java | 5 +-
.../internal/compiler/parser/TerminalTokens.java | 18 +-
.../compiler/parser/diagnose/DiagnoseParser.java | 49 +-
.../jdt/internal/compiler/parser/parser1.rsc | Bin 25962 -> 25978 bytes
.../jdt/internal/compiler/parser/parser10.rsc | Bin 264 -> 268 bytes
.../jdt/internal/compiler/parser/parser11.rsc | Bin 264 -> 268 bytes
.../jdt/internal/compiler/parser/parser12.rsc | Bin 264 -> 268 bytes
.../jdt/internal/compiler/parser/parser13.rsc | Bin 264 -> 268 bytes
.../jdt/internal/compiler/parser/parser14.rsc | Bin 1206 -> 1224 bytes
.../jdt/internal/compiler/parser/parser15.rsc | Bin 944 -> 944 bytes
.../jdt/internal/compiler/parser/parser16.rsc | Bin 1914 -> 1940 bytes
.../jdt/internal/compiler/parser/parser17.rsc | Bin 696 -> 701 bytes
.../jdt/internal/compiler/parser/parser18.rsc | Bin 7906 -> 8111 bytes
.../jdt/internal/compiler/parser/parser19.rsc | 3 +-
.../jdt/internal/compiler/parser/parser2.rsc | Bin 24570 -> 24576 bytes
.../jdt/internal/compiler/parser/parser20.rsc | Bin 12974 -> 13078 bytes
.../jdt/internal/compiler/parser/parser21.rsc | Bin 5568 -> 5608 bytes
.../jdt/internal/compiler/parser/parser22.rsc | Bin 620 -> 624 bytes
.../jdt/internal/compiler/parser/parser23.rsc | Bin 64 -> 68 bytes
.../jdt/internal/compiler/parser/parser24.rsc | Bin 620 -> 624 bytes
.../jdt/internal/compiler/parser/parser3.rsc | Bin 1914 -> 1940 bytes
.../jdt/internal/compiler/parser/parser4.rsc | Bin 3388 -> 3416 bytes
.../jdt/internal/compiler/parser/parser5.rsc | Bin 1914 -> 1940 bytes
.../jdt/internal/compiler/parser/parser6.rsc | Bin 976 -> 980 bytes
.../jdt/internal/compiler/parser/parser7.rsc | Bin 222 -> 222 bytes
.../jdt/internal/compiler/parser/parser8.rsc | Bin 620 -> 624 bytes
.../jdt/internal/compiler/parser/parser9.rsc | Bin 15722 -> 16146 bytes
.../compiler/parser/readableNames.properties | 12 +-
.../compiler/problem/DefaultProblemFactory.java | 75 +-
.../internal/compiler/problem/ProblemHandler.java | 30 +-
.../internal/compiler/problem/ProblemReporter.java | 688 ++-
.../internal/compiler/problem/messages.properties | 58 +-
.../jdt/internal/compiler/util/HashSetOfInt.java | 129 +
.../jdt/internal/compiler/util/Messages.java | 5 +-
.../jdt/internal/compiler/util/ObjectVector.java | 4 +-
.../internal/compiler/util/SuffixConstants.java | 17 +-
.../eclipse/jdt/internal/compiler/util/Util.java | 349 +-
194 files changed, 20567 insertions(+), 13628 deletions(-)
diff --cc debian/changelog
index 6954187,0000000..f9a4512
mode 100644,000000..100644
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,421 -1,0 +1,428 @@@
++ecj (3.4.2-1) unstable; urgency=low
++
++ * New upstream version 3.4.2, built from the v_894_R34x tag,
++ R3_4_maintenance branch.
++
++ -- Matthias Klose <doko at debian.org> Sun, 15 Feb 2009 22:34:28 +0100
++
+ecj (3.3.0+0728-11) unstable; urgency=low
+
+ * Build again for alpha.
+
+ -- Matthias Klose <doko at debian.org> Sun, 01 Feb 2009 09:31:00 +0100
+
+ecj (3.3.0+0728-10) unstable; urgency=low
+
+ * libecj-java: Recommend default-jre-headless | java2-runtime-headless
+ instead of java2-runtime.
+
+ -- Matthias Klose <doko at debian.org> Sat, 06 Sep 2008 10:52:13 +0000
+
+ecj (3.3.0+0728-9) unstable; urgency=low
+
+ * Don't build on alpha, arm, hppa.
+
+ -- Matthias Klose <doko at debian.org> Wed, 09 Apr 2008 04:12:54 +0200
+
+ecj (3.3.0+0728-8) unstable; urgency=low
+
+ * Fix build failure on alpha.
+
+ -- Matthias Klose <doko at debian.org> Thu, 24 Jan 2008 19:58:40 +0100
+
+ecj (3.3.0+0728-7) unstable; urgency=low
+
+ * Build using gcj-4.3 on all archs but alpha.
+
+ -- Matthias Klose <doko at debian.org> Thu, 24 Jan 2008 19:11:08 +0100
+
+ecj (3.3.0+0728-6) unstable; urgency=low
+
+ * Build-depend on libecj-java on arm.
+
+ -- Matthias Klose <doko at debian.org> Mon, 14 Jan 2008 22:07:01 +0100
+
+ecj (3.3.0+0728-5) unstable; urgency=medium
+
+ * Make ecj architecture dependent, dependencies depend on the jvm used.
+ * ecj: Depend on gij-x.y.
+
+ -- Matthias Klose <doko at debian.org> Thu, 06 Sep 2007 19:22:58 +0200
+
+ecj (3.3.0+0728-4) unstable; urgency=low
+
+ * Fix name of renamed jar file (Michael Koch).
+
+ -- Matthias Klose <doko at debian.org> Wed, 05 Sep 2007 00:08:06 +0200
+
+ecj (3.3.0+0728-3) unstable; urgency=medium
+
+ * Use ecj-standalone.jar to build the ecj-gcj and ecj1 binaries.
+ * ecj-gcj: Depend on ecj. Closes: #440259.
+
+ -- Matthias Klose <doko at debian.org> Thu, 30 Aug 2007 23:33:08 +0200
+
+ecj (3.3.0+0728-2) unstable; urgency=low
+
+ * Tighten build-dependency on libgcj-bc.
+
+ -- Matthias Klose <doko at debian.org> Sat, 25 Aug 2007 20:12:38 +0200
+
+ecj (3.3.0+0728-1) unstable; urgency=medium
+
+ * New upstream version, taken from the R3_3_maintenance tag.
+ * Build using gcj-4.2 on all architectures except alpha and m68k.
+ * Stop building the ecj-bootstrap and ecj-bootstrap-gcj packages.
+ * Build a libecj-java-gcj package.
+ * Build an ecj1 package on arm, BC-compile ecj1.
+ * Update debian/copyright, eclipse is EPL, not CPL anymore.
+
+ -- Matthias Klose <doko at debian.org> Sat, 25 Aug 2007 12:35:30 +0200
+
+ecj (3.3.0-2) unstable; urgency=low
+
+ * Apply fix for upstream report #195317.
+
+ -- Matthias Klose <doko at debian.org> Fri, 20 Jul 2007 12:05:37 +0200
+
+ecj (3.3.0-1) unstable; urgency=low
+
+ * New upstream release.
+ * Don't reference the transitional bootstrap package in the README.
+ Closes: #426887.
+ * Split out the library into libecj-java. Closes: #421621.
+
+ -- Matthias Klose <doko at ubuntu.com> Sat, 7 Jul 2007 02:13:27 +0200
+
+ecj (3.3~M7-2) unstable; urgency=low
+
+ * debian/control: Make ecj and ecj-gcj conflict and replace their
+ eclipse-ecj and eclipse-ecj-gcj counterparts. Closes: #421302.
+
+ -- Michael Koch <konqueror at gmx.de> Sun, 20 May 2007 09:57:58 -0100
+
+ecj (3.3~M7-1) unstable; urgency=low
+
+ * New upstream release.
+ - Fixes issues with classes extending java.io.PrintWriter and implementing
+ some random interface. Closes: #424504.
+ - Removed debian/patches/ecj-square-bracket-classpath.diff.
+ Applied upstream.
+
+ -- Michael Koch <konqueror at gmx.de> Fri, 18 May 2007 09:32:35 -0100
+
+ecj (3.2.2-2) unstable; urgency=low
+
+ * Loosen dependency on gij-4.1, libgcj7-jar. Closes: #421488.
+
+ -- Matthias Klose <doko at debian.org> Sun, 29 Apr 2007 22:19:47 +0200
+
+ecj (3.2.2-1) unstable; urgency=low
+
+ * Upload to unstable.
+
+ -- Matthias Klose <doko at debian.org> Fri, 27 Apr 2007 01:04:45 +0200
+
+ecj (3.2.2-0) experimental; urgency=low
+
+ * New upstream version.
+ - Update patches.
+ * (Build-)depend on gcj generics backport.
+ * Build-Conflicts with ecj-bootstrap-gcj (<< 3.2.2).
+ * Merge from Ubuntu:
+ - Split out patches.
+ - Add ecj-square-bracket-classpath.diff.
+ - ecj-bootstrap: Add compatibilty script ecj-bootstrap.
+ - Install the jar as eclipse-ecj.jar, provide an ecj.jar symlink.
+ - Rename source and binary package to ecj.
+ - Pass gcj and gcj-dbtool versions to aot-compile.
+
+ -- Matthias Klose <doko at debian.org> Sat, 3 Mar 2007 19:37:46 +0100
+
+ecj-bootstrap (3.2.1-6) unstable; urgency=low
+
+ * Fix PR java/30585 (-Werror and -Wall not working). Taken from the rhug
+ repository.
+
+ -- Matthias Klose <doko at debian.org> Sat, 3 Feb 2007 14:16:47 +0100
+
+ecj-bootstrap (3.2.1-5) unstable; urgency=low
+
+ * debian/control: Call it a "standalone" version, not a "bootstrap"
+ version. The package is used as the compiler in java-gcj-compat-dev
+ as well. See also #396170.
+
+ -- Matthias Klose <doko at debian.org> Thu, 11 Jan 2007 20:44:40 +0100
+
+ecj-bootstrap (3.2.1-4) unstable; urgency=medium
+
+ * Refactor batch/org/eclipse/jdt/internal/compiler/batch/Main.java,
+ add batch/org/eclipse/jdt/internal/compiler/batch/GCCMain.java,
+ needed to bootstrap GCC-4.3.
+
+ -- Matthias Klose <doko at debian.org> Tue, 9 Jan 2007 00:09:22 +0100
+
+ecj-bootstrap (3.2.1-3) unstable; urgency=low
+
+ * Add missing build dependency.
+
+ -- Matthias Klose <doko at debian.org> Sun, 8 Oct 2006 01:40:00 +0200
+
+ecj-bootstrap (3.2.1-2) unstable; urgency=low
+
+ * Add 1.6 compatibility in package description.
+ * Use own copy of aot-compile to build with less memory resources
+ on arm and m68k.
+ * Build the standalone binary without -fjni -findirect-dispatch.
+
+ -- Matthias Klose <doko at debian.org> Sat, 7 Oct 2006 23:38:47 +0200
+
+ecj-bootstrap (3.2.1-1) unstable; urgency=medium
+
+ * New upstream version.
+ * ecj-bootstrap-gcj: Add postrm script.
+
+ -- Matthias Klose <doko at debian.org> Tue, 3 Oct 2006 09:35:39 +0200
+
+ecj-bootstrap (3.2-3) unstable; urgency=low
+
+ * Install classmap db in /usr/share/gcj/classmap.db, install jar.so
+ in /usr/lib/gcj.
+ * ecj-bootstrap-gcj.postinst: Use rebuild-gcj-db.
+ * Build depend on gcj-4.1 (>= 4.1.1-13).
+
+ -- Matthias Klose <doko at debian.org> Sat, 2 Sep 2006 13:55:21 +0000
+
+ecj-bootstrap (3.2-2) experimental; urgency=low
+
+ * Build using the gcj backport from experimental.
+ * Do not build the binary ecj.
+
+ -- Matthias Klose <doko at debian.org> Sun, 13 Aug 2006 13:01:45 +0200
+
+ecj-bootstrap (3.2-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Matthias Klose <doko at debian.org> Mon, 31 Jul 2006 18:16:52 +0000
+
+ecj-bootstrap (3.1.2-6) unstable; urgency=low
+
+ * ecj-bootstrap-gcj: Do not register an alternative for ecj.
+ * ecj-bootstrap: Use ecj-bootstrap-gcj, if available.
+ * The above changes set the bootclasspath to /usr/share/java/libgcj-4.1.jar,
+ if no bootclasspath is set. Closes: #361608, #361806.
+ * Do not try to rebuild the jar file using the gij on arm and m68k.
+
+ -- Matthias Klose <doko at debian.org> Thu, 1 Jun 2006 22:55:00 +0200
+
+ecj-bootstrap (3.1.2-5) unstable; urgency=low
+
+ * Updated Standards-Version to 3.7.2. No changes needed.
+
+ -- Michael Koch <konqueror at gmx.de> Sat, 6 May 2006 16:25:40 +0000
+
+ecj-bootstrap (3.1.2-4) unstable; urgency=low
+
+ * Build using gij-4.1/gcj-4.1.
+ * Rebuild using ecj on all architectures.
+ * Remove conflict on virtual package ecj.
+
+ -- Matthias Klose <doko at debian.org> Sat, 1 Apr 2006 11:29:03 +0000
+
+ecj-bootstrap (3.1.2-3) experimental; urgency=low
+
+ * Build using gcj-4.1, upload to experimental.
+
+ -- Matthias Klose <doko at debian.org> Sat, 28 Jan 2006 08:35:09 +0000
+
+ecj-bootstrap (3.1.2-2ubuntu3) dapper; urgency=low
+
+ * Use gij-4.1 in the package scripts.
+
+ -- Matthias Klose <doko at ubuntu.com> Sun, 26 Feb 2006 21:00:44 +0000
+
+ecj-bootstrap (3.1.2-2ubuntu2) dapper; urgency=low
+
+ * Build using gcj-4.1.
+
+ -- Matthias Klose <doko at ubuntu.com> Sun, 19 Feb 2006 01:07:40 +0000
+
+ecj-bootstrap (3.1.2-2build1) dapper; urgency=low
+
+ * Require gcj-4.0.2-9 to build.
+
+ -- Matthias Klose <doko at ubuntu.com> Thu, 16 Feb 2006 03:18:22 +0000
+
+ecj-bootstrap (3.1.2-2) unstable; urgency=low
+
+ * Set the bootclasspath to /usr/share/java/libgcj-4.0.jar, if not called
+ with the -bootclasspath and /usr/lib/jvm/java-gcj/jre/lib/rt.jar does
+ not exist (java-gcj-compat not installed). Closes: #350542.
+
+ -- Matthias Klose <doko at debian.org> Thu, 9 Feb 2006 16:33:45 +0000
+
+ecj-bootstrap (3.1.2-1) unstable; urgency=low
+
+ * New upstream version.
+
+ -- Matthias Klose <doko at debian.org> Sat, 28 Jan 2006 08:09:25 +0000
+
+ecj-bootstrap (3.1.1-4) unstable; urgency=low
+
+ * Depend on libgcj6-jar instead of libgcj6-common.
+
+ -- Matthias Klose <doko at debian.org> Thu, 5 Jan 2006 19:14:49 +0000
+
+ecj-bootstrap (3.1.1-3.1) unstable; urgency=low
+
+ [ Arnaud Fontaine ]
+ * NMU: added a backslash at the end of the first line of
+ 'debian/ecj-bootstrap-gcj.postinst'. Closes: #335031.
+
+ -- Christoph Berg <myon at debian.org> Sat, 29 Oct 2005 12:09:06 +0200
+
+ecj-bootstrap (3.1.1-3) unstable; urgency=low
+
+ * On arm and hppa, don't rebuild ecj using gij.
+
+ -- Matthias Klose <doko at debian.org> Thu, 20 Oct 2005 19:08:20 +0000
+
+ecj-bootstrap (3.1.1-2) unstable; urgency=low
+
+ * Add a javac alternative (priority higher than gcj).
+ * ecj-bootstrap-gcj: Add slave alternative for the man page.
+ Addresses #328743.
+
+ -- Matthias Klose <doko at debian.org> Thu, 20 Oct 2005 00:11:27 +0200
+
+ecj-bootstrap (3.1.1-1) unstable; urgency=low
+
+ * New upstream version.
+ * Remove bootstrap workaround, tighten build dependency to gcj-4.0.2.
+ * Fix symlink to manpage (closes: #330080).
+
+ -- Matthias Klose <doko at debian.org> Sat, 1 Oct 2005 18:32:05 +0200
+
+ecj-bootstrap (3.0.93-1) unstable; urgency=low
+
+ * New upstream version (3.1rc3). Taken from the eclipse-3.1 package,
+ file ecj.zip.
+
+ -- Matthias Klose <doko at debian.org> Wed, 14 Sep 2005 12:54:56 +0000
+
+ecj-bootstrap (3.0.1-4ubuntu6) breezy; urgency=low
+
+ * Only build one java file per gcj call, ignore errors on first
+ build. Closes: #327161, Ubuntu 14938.
+ * Add more error checking in debian/rules.
+ * Install manual page for ecj alternative as well.
+
+ -- Matthias Klose <doko at ubuntu.com> Wed, 14 Sep 2005 14:19:57 +0200
+
+ecj-bootstrap (3.0.1-4ubuntu5) breezy; urgency=low
+
+ * Reenable ecj-bootstrap-gcj. (Build-)depend on fixed gcj-4.0.
+
+ -- Matthias Klose <doko at ubuntu.com> Sat, 2 Jul 2005 08:25:02 +0000
+
+ecj-bootstrap (3.0.1-4ubuntu4) breezy; urgency=low
+
+ * Temporarily disable building ecj-bootstrap-gcj. FTBFS on amd64. Unbreak
+ ant's dependency on ecj (>= 3.0.1-4ubuntu2).
+
+ -- Matthias Klose <doko at ubuntu.com> Thu, 30 Jun 2005 09:59:20 +0000
+
+ecj-bootstrap (3.0.1-4ubuntu3) breezy; urgency=low
+
+ * Include manpages for ecj-bootstrap and ecj-bootstrap-gcj (closes: #316641).
+
+ -- Jeff Bailey <jbailey at ubuntu.com> Wed, 29 Jun 2005 14:52:57 +0000
+
+ecj-bootstrap (3.0.1-4ubuntu2) breezy; urgency=low
+
+ * Merged ecj-adapter.jar into ecj.jar in preparation for Eclipse 3.1
+ upgrade. Upstream has laid out ecj in this fashion.
+ * Removed java-gcj-compat bits which were unneccassary.
+ * Added native versions of the ecj binary and ecj.jar in a new package
+ named ecj-bootstrap-gcj. This increases the compilation speed of
+ packages built with this copy of ecj.
+ * Added new alternatives for /usr/bin/ecj for the native version.
+ * First package successfully creating a classmap.db.
+
+ -- Jerry Haltom <wasabi at larvalstage.net> Tue, 14 Jun 2005 21:38:29 -0500
+
+ecj-bootstrap (3.0.1-4ubuntu1) breezy; urgency=low
+
+ * Add a /usr/bin/ecj binary.
+
+ -- Matthias Klose <doko at ubuntu.com> Sat, 11 Jun 2005 16:57:27 +0000
+
+ecj-bootstrap (3.0.1-3) experimental; urgency=low
+
+ * Synchronize.
+
+ -- Matthias Klose <doko at debian.org> Wed, 1 Jun 2005 23:24:48 +0200
+
+ecj-bootstrap (3.0.1-1ubuntu6) breezy; urgency=low
+
+ * Now provides 'ecj' which will also be provided by the future
+ eclipse-ecj package built from full Eclipse source.
+ * Removed universe/ from Section.
+ * Now refering to libgcj-4.0.jar instead of 4.0.0.jar to handle
+ changing versions better.
+
+ -- Jerry Haltom <wasabi at larvalstage.net> Wed, 1 Jun 2005 14:12:16 -0500
+
+ecj-bootstrap (3.0.1-2) experimental; urgency=low
+
+ * Upload to experimental, set maintainer to Debian Java Matainers,
+ request by Michael Koch.
+
+ -- Matthias Klose <doko at debian.org> Sun, 22 May 2005 15:53:07 +0000
+
+ecj-bootstrap (3.0.1-1ubuntu5) hoary; urgency=low
+
+ * Fixed path to ant.jar.
+
+ -- Jerry Haltom <wasabi at larvalstage.net> Mon, 28 Mar 2005 20:17:03 -0600
+
+ecj-bootstrap (3.0.1-1ubuntu4) hoary; urgency=low
+
+ * Added build of Ant adapter. This introduces a circular dependency
+ on ecj-bootstrap and Ant.
+
+ -- Jerry Haltom <wasabi at larvalstage.net> Sun, 27 Mar 2005 22:51:13 -0600
+
+ecj-bootstrap (3.0.1-1ubuntu3) hoary; urgency=low
+
+ * Added missing dependency on libgcj6-common.
+
+ -- Jerry Haltom <wasabi at larvalstage.net> Wed, 23 Feb 2005 22:45:00 -0600
+
+ecj-bootstrap (3.0.1-1ubuntu2) hoary; urgency=low
+
+ * Removed argument modification from ecj and moved it to ecj-wrapper in the
+ style of gcj-wrapper.
+ * Jeff Bailey corrected the Posix-compliant argument expansion in
+ ecj-wrapper with the help of David Weinehall.
+ * ecj now rebuilds with itself as a sanity test.
+
+ -- Jerry Haltom <wasabi at larvalstage.net> Mon, 14 Feb 2005 20:34:25 -0600
+
+ecj-bootstrap (3.0.1-1ubuntu1) hoary; urgency=low
+
+ * First upload to Ubuntu.
+
+ * Tighten build deps. Use "ecj" instead of "ecj-bootstrap" to
+ allow ant to depend on ecj | ecj-bootstrap.
+
+ * Posixify wrapper
+
+ -- Jeff Bailey <jbailey at ubuntu.com> Fri, 11 Feb 2005 20:37:21 +0000
+
+ecj-bootstrap (3.0.1-0) unstable; urgency=low
+
+ * Initial release.
+
+ -- Jerry Haltom <wasabi at larvalstage.net> Wed, 09 Feb 2005 19:36:07 -0600
diff --cc debian/rules
index 2875449,0000000..07c6e10
mode 100755,000000..100755
--- a/debian/rules
+++ b/debian/rules
@@@ -1,237 -1,0 +1,239 @@@
+#!/usr/bin/make -f
+
+include /usr/share/cdbs/1/rules/debhelper.mk
+include /usr/share/cdbs/1/rules/simple-patchsys.mk
+
+DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
+
+GCC_VERSION = 4.3
+LIBGCJ_EXT = 9
+LIBGCJ_SOVER = 90
+REQ_VERSION = 4.3.3
+
+ant_version = 1.7
+ant_version =
+GCJ = gcj-$(GCC_VERSION)
+GIJ = gij-$(GCC_VERSION)
+GCJDBTOOL = gcj-dbtool-$(GCC_VERSION)
+GCJSUBDIR = /usr/lib/gcj-$(GCC_VERSION)-$(LIBGCJ_SOVER)
+
+with_native := yes
+with_rebuild := yes
+with_sourcebuild := yes
+
+ifneq (,$(filter $(DEB_HOST_ARCH), arm armel))
+ with_rebuild := no
+endif
+
+ifneq (,$(filter $(DEB_HOST_ARCH), arm))
+ with_sourcebuild := no
+endif
+
+DEB_DH_GENCONTROL_ARGS = -- \
+ '-Vpkg:gij=$(GIJ) (>= $(REQ_VERSION))' \
+ '-Vpkg:libgcjjar=libgcj$(LIBGCJ_EXT)-jar (>= $(REQ_VERSION))'
+
+JAR = eclipse-ecj.jar
+
+default: build
+
+eclipse_root = $(CURDIR)/../eclipse
+
+build/ecj:: build/stamp-bytecode build/stamp-nativecode
+
+build/stamp-bytecode:
+ifneq (,$(findstring $(DEB_HOST_ARCH),arm hppa))
+ @echo 'ecj is not built anymore on this architecture.'
+ @echo 'People insist on 100% compatible packages without providing any help.'
+ @echo 'The porter lists are quiet on the topic of better gij/gcj support for
+ @echo 'these architectures.'
+ false
+endif
+ rm -rf build/bin
+ mkdir -p build/bin
+
+ifeq ($(with_sourcebuild),yes)
+ cp -r src/org.eclipse.jdt.core/org build/bin/
++ cat gcc.properties \
++ >> build/bin/org/eclipse/jdt/internal/compiler/batch/messages.properties
+ rm -rf build/bin/org/eclipse/jdt/internal/compiler/apt
+ rm -rf build/bin/org/eclipse/jdt/internal/compiler/tool
+
+ find build/bin -name '*.java' > build/sourcefiles
+ split -l 25 build/sourcefiles ecj-sources.
+ ls -l
+ mv ecj-sources.* build/bin
+ ls -l . build/bin
+
+ set -e; \
+ for list in $$(find build/bin -name 'ecj-sources.*'); do \
+ echo "building files in $$list ..."; \
+ echo $(GCJ) -d build/bin -C -g \
+ -I/usr/share/ant$(ant_version)/lib/ant.jar \
+ -Ibuild/bin \
+ $$(cat $$list); \
+ $(GCJ) -v -d build/bin -C -g \
+ -I/usr/share/ant$(ant_version)/lib/ant.jar \
+ -Ibuild/bin \
+ $$(cat $$list); \
+ done
+
+ find build/bin -name 'sources.list' -exec rm -f {} \;
+ find build/bin -name '*.java' -exec rm -f {} \;
+ find build/bin -name '*.html' -exec rm -f {} \;
+
+ mkdir -p build/bootstrap
+ fastjar -c -C build/bin . -f build/bootstrap/$(JAR)
+
+ ifeq ($(with_rebuild),yes)
+ : # rebuild the compiler
+ rm -rf build/bin
+ mkdir -p build/bin
+ cp -r src/org.eclipse.jdt.core/org build/bin/
+ rm -rf build/bin/org/eclipse/jdt/internal/compiler/apt
+ rm -rf build/bin/org/eclipse/jdt/internal/compiler/tool
+
+ time $(GIJ) \
+ -classpath build/bootstrap/$(JAR):/usr/share/ant$(ant_version)/lib/ant.jar \
+ org.eclipse.jdt.internal.compiler.batch.Main \
+ -bootclasspath /usr/share/java/libgcj-$(GCC_VERSION).jar \
+ build/bin
+
+ find build/bin -name '*.java' -exec rm -f {} \;
+ find build/bin -name '*.html' -exec rm -f {} \;
+
+ mkdir -p build/dist
+ fastjar -c -C build/bin . -f build/dist/$(JAR)
+ else
+ mkdir -p build/dist
+ cp -p build/bootstrap/$(JAR) build/dist/$(JAR)
+ endif
+else
+ mkdir -p build/bin
+ unzip -d build/bin -q /usr/share/java/eclipse-ecj.jar
+ mkdir -p build/dist
+ cp -p /usr/share/java/eclipse-ecj.jar build/dist/$(JAR)
+endif
+ mkdir -p build/exe
+ cp build/dist/$(JAR) build/exe/ecj-standalone.jar
+ zip -d build/exe/ecj-standalone.jar \
+ 'org/eclipse/jdt/core/JDTCompilerAdapter*'
+
+ touch build/stamp-bytecode
+
+build/stamp-nativecode: build/stamp-bytecode
+ find build/dist -name '*.jar.*.jar' | xargs -r rm -f
+ifeq ($(with_native),yes)
+ : # $(JAR).so
+
+ cd build/bin && find -name '*.rsc' -o -name '*.properties' \
+ | fastjar -c -@ - -f $(CURDIR)/build/resources.jar
+ $(GCJ) \
+ -c -O2 -g -fPIC -fjni -findirect-dispatch \
+ -o build/dist/resources.o build/resources.jar
+ cp -p build/dist/resources.o build/exe/
+
+ PYTHONPATH=$(CURDIR)/debian \
+ RPATH=-Wl,-rpath,$(GCJSUBDIR) \
+ time python debian/aot-compile \
+ --gcj=$(GCJ) --dbtool=$(GCJDBTOOL) \
+ -L /usr/lib/gcj build/dist build/dist
+
+ PYTHONPATH=$(CURDIR)/debian \
+ RPATH=-Wl,-rpath,$(GCJSUBDIR) \
+ time python debian/aot-compile \
+ --gcj=$(GCJ) --dbtool=$(GCJDBTOOL) \
+ -L /usr/lib/gcj build/exe build/exe
+
+ ifeq (0,1)
+ : # ecj-gcj
+ time $(GCJ) \
+ -O1 -g -Wl,-O1 -Wl,-rpath,$(GCJSUBDIR) \
+ --main=org.eclipse.jdt.internal.compiler.batch.Main \
+ -o build/dist/ecj-gcj build/exe/ecj-standalone.jar
+ : # ecj1
+ time $(GCJ) \
+ -O1 -g -Wl,-O1 -Wl,-rpath,$(GCJSUBDIR) \
+ --main=org.eclipse.jdt.internal.compiler.batch.GCCMain \
+ -o build/dist/ecj1 build/exe/ecj-standalone.jar
+ endif
+endif
+ touch build/stamp-nativecode
+
+
+install/libecj-java::
+ mkdir -p debian/tmp/usr/share/java
+ install -m 644 build/dist/$(JAR) debian/tmp/usr/share/java/
+
+install/ecj::
+ mkdir -p debian/tmp/usr/bin
+ sed 's/@ver@/$(GCC_VERSION)/g' debian/ecj.in \
+ > debian/tmp/usr/bin/ecj
+ chmod 755 debian/tmp/usr/bin/ecj
+
+install/libecj-java-gcj::
+ifeq ($(with_native),yes)
+ mkdir -p debian/tmp/usr/lib/gcj
+ install -m 644 build/dist/$(JAR).so debian/tmp/usr/lib/gcj
+
+ mkdir -p debian/tmp/usr/share/gcj/classmap.d
+ install -m 644 build/dist/*.db \
+ debian/tmp/usr/share/gcj/classmap.d/
+endif
+
+install/ecj1::
+ifeq ($(with_native),yes)
+ mkdir -p debian/ecj1/usr/lib/gcc
+ install -m 755 build/exe/ecj1 debian/ecj1/usr/lib/gcc/
+endif
+
+install/ecj-gcj::
+ifeq ($(with_native),yes)
+ mkdir -p debian/tmp/usr/bin
+ install -m 755 build/exe/ecj-gcj debian/tmp/usr/bin/
+endif
+ mkdir -p debian/ecj-gcj/usr/bin
+
+ mkdir -p debian/ecj-gcj/usr/share/man/man1
+ ln -sf ecj.1.gz \
+ debian/ecj-gcj/usr/share/man/man1/ecj-gcj.1.gz
+
+binary-predeb/ecj1::
+# sed -i 's/libgcj[1-9][^,]*//;s/,,/,/' debian/ecj1.substvars
+
+binary-predeb/ecj-gcj::
+# sed -i 's/libgcj[1-9][^,]*//;s/,,/,/' debian/ecj-gcj.substvars
+
+clean::
+ rm -rf build
+ rm -f debian/*.pyc
+
+get-source:
+ rm -rf org.eclipse.jdt.core
+ @echo Press enter for the password
+ cvs -d :pserver:anonymous at dev.eclipse.org:/cvsroot/eclipse login
+ cvs -z3 -d :pserver:anonymous at dev.eclipse.org:/cvsroot/eclipse \
- co -r R3_3_maintenance org.eclipse.jdt.core
++ co -r v_894_R34x org.eclipse.jdt.core
+ rm -rf tmp-src
+ mkdir -p tmp-src/org.eclipse.jdt.core
+ cp -p org.eclipse.jdt.core/scripts/about.html \
+ tmp-src/org.eclipse.jdt.core/
+ cp -p org.eclipse.jdt.core/scripts/build.xml \
+ tmp-src/org.eclipse.jdt.core/
+ tar -c -f - -C org.eclipse.jdt.core/compiler org \
+ | tar -x -f - -C tmp-src/org.eclipse.jdt.core/
+
+ tar -c -f - -C org.eclipse.jdt.core/antadapter org META-INF \
+ | tar -x -f - -C tmp-src/org.eclipse.jdt.core/
+ find tmp-src -name CheckDebugAttributes.java | xargs -r rm -f
+
+ tar -c -f - -C org.eclipse.jdt.core/batch org \
+ | tar -x -f - -C tmp-src/org.eclipse.jdt.core/
+
+ mkdir -p tmp-src/org.eclipse.jdt.core/META-INF/services
+ cp -p org.eclipse.jdt.core/scripts/META-INF/MANIFEST.MF \
+ tmp-src/org.eclipse.jdt.core/META-INF/
+ printf 'org.eclipse.jdt.internal.compiler.tool.EclipseCompiler #Eclipse compiler' \
+ > tmp-src/org.eclipse.jdt.core/META-INF/services/javax.tools.JavaCompiler
+
+ find tmp-src -name CVS | xargs -r rm -rf
diff --cc gcc.properties
index 0000000,0000000..84690ec
new file mode 100644
--- /dev/null
+++ b/gcc.properties
@@@ -1,0 -1,0 +1,5 @@@
++
++# GCCMain messages.
++gcc.zipArg=-fzip-target requires argument
++gcc.zipDepArg=-fzip-dependency requires argument
++gcc.noClasspath=no classpath specified
diff --cc src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/GCCMain.java
index 0000000,0000000..33e93cc
new file mode 100644
--- /dev/null
+++ b/src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/GCCMain.java
@@@ -1,0 -1,0 +1,481 @@@
++/**
++ *
++ */
++package org.eclipse.jdt.internal.compiler.batch;
++
++import java.io.BufferedOutputStream;
++import java.io.BufferedReader;
++import java.io.ByteArrayInputStream;
++import java.io.File;
++import java.io.FileOutputStream;
++import java.io.FileReader;
++import java.io.IOException;
++import java.io.InputStreamReader;
++import java.io.OutputStream;
++import java.io.PrintWriter;
++import java.io.UnsupportedEncodingException;
++import java.util.ArrayList;
++import java.util.HashSet;
++import java.util.Iterator;
++import java.util.Map;
++import java.util.StringTokenizer;
++import java.util.zip.CRC32;
++import java.util.zip.ZipEntry;
++import java.util.zip.ZipOutputStream;
++
++import org.eclipse.jdt.core.compiler.InvalidInputException;
++import org.eclipse.jdt.internal.compiler.ClassFile;
++import org.eclipse.jdt.internal.compiler.CompilationResult;
++import org.eclipse.jdt.internal.compiler.env.AccessRestriction;
++import org.eclipse.jdt.internal.compiler.env.AccessRule;
++import org.eclipse.jdt.internal.compiler.env.AccessRuleSet;
++import org.eclipse.jdt.internal.compiler.impl.CompilerOptions;
++import org.eclipse.jdt.internal.compiler.util.Messages;
++import org.eclipse.jdt.internal.compiler.util.SuffixConstants;
++
++/**
++ * This is an alternate entry point for the command-line compiler which
++ * is simpler to integrate into GCC. In particular the option processing
++ * is more GNU-like and the recognized options are similar to those supported
++ * by other GCC front ends.
++ */
++public class GCCMain extends Main {
++
++ // All the compilation units specified on the command line.
++ private HashSet commandLineCompilationUnits = new HashSet();
++ // True if we are only checking syntax.
++ private boolean syntaxOnly;
++ // If not null, the name of the output zip file.
++ // If null, we are generating class files in the file system,
++ // not a zip file.
++ private String zipDestination;
++ // The zip stream to which we're writing, or null if it hasn't been opened.
++ private ZipOutputStream zipStream;
++
++ // If not null, the name of the zip file to which dependency class files
++ // should be written.
++ private String zipDependencyDestination;
++ // The zip stream to which dependency files should be written.
++ private ZipOutputStream zipDependencyStream;
++
++ public GCCMain(PrintWriter outWriter, PrintWriter errWriter,
++ boolean systemExitWhenFinished) {
++ super(outWriter, errWriter, systemExitWhenFinished);
++ this.logger.setEmacs();
++ }
++
++ public GCCMain(PrintWriter outWriter, PrintWriter errWriter,
++ boolean systemExitWhenFinished, Map customDefaultOptions) {
++ super(outWriter, errWriter, systemExitWhenFinished,
++ customDefaultOptions);
++ this.logger.setEmacs();
++ }
++
++ private void fail(Exception t) {
++ this.logger.logException(t);
++ System.exit(1);
++ }
++
++ public CompilationUnit[] getCompilationUnits() throws InvalidInputException {
++ CompilationUnit[] units = super.getCompilationUnits();
++ for (int i = 0; i < units.length; ++i)
++ this.commandLineCompilationUnits.add(units[i]);
++ return units;
++ }
++
++ private String combine(char[] one, char[] two) {
++ StringBuffer b = new StringBuffer();
++ b.append(one);
++ b.append(two);
++ return b.toString();
++ }
++
++ private ZipOutputStream getZipOutput() throws IOException {
++ if (this.zipDestination != null && this.zipStream == null) {
++ OutputStream os;
++ if ("-".equals(this.zipDestination)) { //$NON-NLS-1$
++ os = System.out;
++ } else {
++ os = new FileOutputStream(this.zipDestination);
++ }
++ zipStream = new ZipOutputStream(new BufferedOutputStream(os));
++ zipStream.setMethod(ZipOutputStream.STORED);
++ }
++ return zipStream;
++ }
++
++ private ZipOutputStream getDependencyOutput() throws IOException {
++ if (this.zipDependencyDestination != null && this.zipDependencyStream == null) {
++ OutputStream os = new FileOutputStream(zipDependencyDestination);
++ zipDependencyStream = new ZipOutputStream(new BufferedOutputStream(os));
++ zipDependencyStream.setMethod(ZipOutputStream.STORED);
++ }
++ return zipDependencyStream;
++ }
++
++ public void outputClassFiles(CompilationResult unitResult) {
++ if (this.syntaxOnly) {
++ return;
++ }
++ if (this.zipDestination == null) {
++ // Nothing special to do here.
++ super.outputClassFiles(unitResult);
++ return;
++ }
++ if (unitResult == null || unitResult.hasErrors()) {
++ return;
++ }
++
++ // If we are compiling with indirect dispatch, we don't need
++ // any dependent classes. If we are using the C++ ABI, then we
++ // do need the dependencies in order to do proper layout.
++ boolean gcjCompile = this.commandLineCompilationUnits.contains(unitResult.getCompilationUnit());
++ if (this.zipDependencyDestination == null && !gcjCompile) {
++ return;
++ }
++
++ try {
++ ZipOutputStream dest = gcjCompile ? getZipOutput() : getDependencyOutput();
++ ClassFile[] classFiles = unitResult.getClassFiles();
++ for (int i = 0; i < classFiles.length; ++i) {
++ ClassFile classFile = classFiles[i];
++ String filename = combine(classFile.fileName(), SuffixConstants.SUFFIX_class);
++ if (this.verbose)
++ this.out.println(
++ Messages.bind(
++ Messages.compilation_write,
++ new String[] {
++ String.valueOf(this.exportedClassFilesCounter+1),
++ filename
++ }));
++ ZipEntry entry = new ZipEntry(filename);
++ byte[] contents = classFile.getBytes();
++ CRC32 crc = new CRC32();
++ crc.update(contents);
++ entry.setSize(contents.length);
++ entry.setCrc(crc.getValue());
++ dest.putNextEntry(entry);
++ dest.write(contents);
++ dest.closeEntry();
++ }
++ } catch (IOException err) {
++ fail(err);
++ }
++ }
++
++ private String getArgument(String option) {
++ int index = option.indexOf('=');
++ return option.substring(index + 1);
++ }
++
++ private void addPath(ArrayList result, String currentClasspathName) {
++ String customEncoding = null;
++ AccessRule[] accessRules = new AccessRule[0];
++ AccessRuleSet accessRuleSet = new AccessRuleSet(accessRules, AccessRestriction.COMMAND_LINE, currentClasspathName);
++ FileSystem.Classpath currentClasspath = FileSystem
++ .getClasspath(currentClasspathName,
++ customEncoding, accessRuleSet);
++ if (currentClasspath != null) {
++ result.add(currentClasspath);
++ }
++ }
++
++ private void parsePath(ArrayList result, String path) {
++ StringTokenizer iter = new StringTokenizer(path, File.pathSeparator);
++ while (iter.hasMoreTokens()) {
++ addPath(result, iter.nextToken());
++ }
++ }
++
++ protected void handleWarningToken(String token, boolean isEnabling) throws InvalidInputException {
++ // Recognize this for compatibility with older versions of gcj.
++ if ("deprecated".equals(token)) //$NON-NLS-1$
++ token = "deprecation"; //$NON-NLS-1$
++ else if ("static-access".equals(token) //$NON-NLS-1$
++ || "dep-ann".equals(token) //$NON-NLS-1$
++ || "over-ann".equals(token)) { //$NON-NLS-1$
++ // Some exceptions to the warning naming rule.
++ } else if ("extraneous-semicolon".equals(token)) { //$NON-NLS-1$
++ // Compatibility with earlier versions of gcj.
++ token = "semicolon"; //$NON-NLS-1$
++ } else {
++ // Turn "foo-bar-baz" into eclipse-style "fooBarBaz".
++ StringBuffer newToken = new StringBuffer(token.length());
++ StringTokenizer t = new StringTokenizer(token, "-"); //$NON-NLS-1$
++ boolean first = true;
++ while (t.hasMoreTokens()) {
++ String next = t.nextToken();
++ if (first) {
++ newToken.append(next);
++ first = false;
++ } else {
++ newToken.append(Character.toUpperCase(next.charAt(0)));
++ newToken.append(next.substring(1));
++ }
++ }
++ token = newToken.toString();
++ }
++ super.handleWarningToken(token, isEnabling);
++ }
++
++ private void turnWarningsToErrors() {
++ Object[] entries = this.options.entrySet().toArray();
++ for (int i = 0, max = entries.length; i < max; i++) {
++ Map.Entry entry = (Map.Entry) entries[i];
++ if (!(entry.getKey() instanceof String))
++ continue;
++ if (!(entry.getValue() instanceof String))
++ continue;
++ if (((String) entry.getValue()).equals(CompilerOptions.WARNING)) {
++ this.options.put(entry.getKey(), CompilerOptions.ERROR);
++ }
++ }
++ }
++
++ /**
++ * Set the debug level to the indicated value. The level should be
++ * between 0 and 2, inclusive, but this is not checked.
++ * @param level the debug level
++ */
++ private void setDebugLevel(int level) {
++ this.options.put(
++ CompilerOptions.OPTION_LocalVariableAttribute,
++ level > 1 ? CompilerOptions.GENERATE : CompilerOptions.DO_NOT_GENERATE);
++ this.options.put(
++ CompilerOptions.OPTION_LineNumberAttribute,
++ level > 0 ? CompilerOptions.GENERATE : CompilerOptions.DO_NOT_GENERATE);
++ this.options.put(
++ CompilerOptions.OPTION_SourceFileAttribute,
++ CompilerOptions.GENERATE);
++ }
++
++ private void readFileList(String file, ArrayList result) {
++ try {
++ BufferedReader b = new BufferedReader(new FileReader(file));
++ String line;
++ while ((line = b.readLine()) != null) {
++ if (line.endsWith(SUFFIX_STRING_java))
++ result.add(line);
++ }
++ b.close();
++ } catch (IOException err) {
++ fail(err);
++ }
++ }
++
++ private void readAllFileListFiles(ArrayList fileList, ArrayList result) {
++ Iterator it = fileList.iterator();
++ while (it.hasNext()) {
++ readFileList((String) it.next(), result);
++ }
++ }
++
++ private void handleWall(boolean enable) throws InvalidInputException {
++ // A somewhat arbitrary list. We use the GCC names
++ // here, and the local handleWarningToken translates
++ // for us.
++ handleWarningToken("constructor-name", enable);
++ handleWarningToken("pkg-default-method", enable);
++ handleWarningToken("masked-catch-block", enable);
++ handleWarningToken("all-deprecation", enable);
++ handleWarningToken("unused-local", enable);
++ handleWarningToken("unused-label", enable);
++ handleWarningToken("static-receiver", enable);
++ handleWarningToken("indirect-static", enable);
++ handleWarningToken("no-effect-assign", enable);
++ handleWarningToken("char-concat", enable);
++ handleWarningToken("useless-type-check", enable);
++ handleWarningToken("final-bound", enable);
++ handleWarningToken("assert-identifier", enable);
++ handleWarningToken("enum-identifier", enable);
++ handleWarningToken("finally", enable);
++ handleWarningToken("varargs-cast", enable);
++ handleWarningToken("unused", enable);
++ handleWarningToken("forbidden", enable);
++ }
++
++ public void configure(String[] argv) throws InvalidInputException {
++ if ((argv == null) || (argv.length == 0)) {
++ // This is a "can't happen".
++ System.exit(1);
++ }
++
++ ArrayList files = new ArrayList();
++ ArrayList otherFiles = new ArrayList();
++ String classpath = null;
++ boolean haveFileList = false;
++ boolean inhibitAllWarnings = false;
++ boolean treatWarningsAsErrors = false;
++
++ for (int i = 0; i < argv.length; ++i) {
++ String currentArg = argv[i];
++
++ if (currentArg.startsWith("-fencoding=")) { //$NON-NLS-1$
++ // Simply accept the last one.
++ String encoding = getArgument(currentArg);
++ try { // ensure encoding is supported
++ new InputStreamReader(new ByteArrayInputStream(new byte[0]), encoding);
++ } catch (UnsupportedEncodingException e) {
++ throw new InvalidInputException(
++ this.bind("configure.unsupportedEncoding", encoding)); //$NON-NLS-1$
++ }
++ this.options.put(CompilerOptions.OPTION_Encoding, encoding);
++ } else if (currentArg.startsWith("-foutput-class-dir=")) { //$NON-NLS-1$
++ String arg = getArgument(currentArg);
++ if (this.destinationPath != null) {
++ StringBuffer errorMessage = new StringBuffer();
++ errorMessage.append("-d"); //$NON-NLS-1$
++ errorMessage.append(' ');
++ errorMessage.append(arg);
++ throw new InvalidInputException(
++ this.bind("configure.duplicateOutputPath", errorMessage.toString())); //$NON-NLS-1$
++ }
++ this.setDestinationPath(arg);
++ } else if (currentArg.startsWith("-fbootclasspath=")) { //$NON-NLS-1$
++ classpath = getArgument(currentArg);
++ } else if (currentArg.equals("-fzip-target")) { //$NON-NLS-1$
++ ++i;
++ if (i >= argv.length)
++ throw new InvalidInputException(this.bind("gcc.zipArg")); //$NON-NLS-1$
++ this.zipDestination = argv[i];
++ } else if (currentArg.equals("-fzip-dependency")) { //$NON-NLS-1$
++ ++i;
++ if (i >= argv.length)
++ throw new InvalidInputException(this.bind("gcc.zipDepArg")); //$NON-NLS-1$
++ this.zipDependencyDestination = argv[i];
++ } else if (currentArg.startsWith("-g")) { //$NON-NLS-1$
++ if (currentArg.equals("-g0")) { //$NON-NLS-1$
++ setDebugLevel(0);
++ } else if (currentArg.equals("-g2") || currentArg.equals("-g3") //$NON-NLS-1$ //$NON-NLS-2$
++ || currentArg.equals("-g")) { //$NON-NLS-1$
++ setDebugLevel(2);
++ } else {
++ // Handle -g1 but also things like -gstabs.
++ setDebugLevel(1);
++ }
++ } else if (currentArg.equals("-Werror")) { //$NON-NLS-1$
++ treatWarningsAsErrors = true;
++ } else if (currentArg.equals("-Wno-error")) { //$NON-NLS-1$
++ treatWarningsAsErrors = false;
++ } else if (currentArg.equals("-Wall")) { //$NON-NLS-1$
++ handleWall(true);
++ } else if (currentArg.equals("-Wno-all")) { //$NON-NLS-1$
++ handleWall(false);
++ } else if (currentArg.startsWith("-Wno-")) { //$NON-NLS-1$
++ handleWarningToken(currentArg.substring(5), false);
++ } else if (currentArg.startsWith("-W")) { //$NON-NLS-1$
++ handleWarningToken(currentArg.substring(2), true);
++ } else if (currentArg.equals("-w")) { //$NON-NLS-1$
++ inhibitAllWarnings = true;
++ } else if (currentArg.startsWith("-O")) { //$NON-NLS-1$
++ // Ignore.
++ } else if (currentArg.equals("-v")) { //$NON-NLS-1$
++ this.verbose = true;
++ } else if (currentArg.equals("-fsyntax-only")) { //$NON-NLS-1$
++ this.syntaxOnly = true;
++ } else if (currentArg.startsWith("-fsource=")) { //$NON-NLS-1$
++ currentArg = getArgument(currentArg);
++ if (currentArg.equals("1.3")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_3);
++ } else if (currentArg.equals("1.4")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_4);
++ } else if (currentArg.equals("1.5") || currentArg.equals("5") || currentArg.equals("5.0")) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
++ this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_5);
++ } else if (currentArg.equals("1.6") || currentArg.equals("6") || currentArg.equals("6.0")) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
++ this.options.put(CompilerOptions.OPTION_Source, CompilerOptions.VERSION_1_6);
++ } else {
++ throw new InvalidInputException(this.bind("configure.source", currentArg)); //$NON-NLS-1$
++ }
++ } else if (currentArg.startsWith("-ftarget=")) { //$NON-NLS-1$
++ currentArg = getArgument(currentArg);
++ if (currentArg.equals("1.1")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_1);
++ } else if (currentArg.equals("1.2")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_2);
++ } else if (currentArg.equals("1.3")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_3);
++ } else if (currentArg.equals("1.4")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_4);
++ } else if (currentArg.equals("1.5") || currentArg.equals("5") || currentArg.equals("5.0")) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_5);
++ } else if (currentArg.equals("1.6") || currentArg.equals("6") || currentArg.equals("6.0")) { //$NON-NLS-1$//$NON-NLS-2$ //$NON-NLS-3$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_1_6);
++ } else if (currentArg.equals("jsr14")) { //$NON-NLS-1$
++ this.options.put(CompilerOptions.OPTION_TargetPlatform, CompilerOptions.VERSION_JSR14);
++ } else {
++ throw new InvalidInputException(this.bind("configure.targetJDK", currentArg)); //$NON-NLS-1$
++ }
++ } else if (currentArg.equals("-ffilelist-file")) { //$NON-NLS-1$
++ haveFileList = true;
++ } else if (currentArg.endsWith(SuffixConstants.SUFFIX_STRING_java)) {
++ files.add(currentArg);
++ } else if (currentArg.charAt(0) == '-'){
++ // FIXME: error if not a file?
++ } else {
++ otherFiles.add(currentArg);
++ }
++ }
++
++ // Read the file list file. We read them all, but really there
++ // will only be one.
++ if (haveFileList)
++ readAllFileListFiles(otherFiles, files);
++
++ this.filenames = (String[]) files.toArray(new String[0]);
++ this.encodings = new String[this.filenames.length];
++ this.destinationPaths = new String[this.filenames.length];
++ for (int i = 0; i < this.filenames.length; ++i)
++ this.destinationPaths[i] = this.destinationPath;
++
++ // Classpath processing.
++ ArrayList result = new ArrayList();
++ if (classpath == null)
++ throw new InvalidInputException(this.bind("gcc.noClasspath")); //$NON-NLS-1$
++ parsePath(result, classpath);
++
++ // We must always create both output files, even if one is not used.
++ // That way we will always pass valid zip file on to jc1.
++ try {
++ getZipOutput();
++ getDependencyOutput();
++ } catch (IOException err) {
++ fail(err);
++ }
++
++ if (inhibitAllWarnings)
++ disableWarnings();
++ if (treatWarningsAsErrors)
++ turnWarningsToErrors();
++
++ this.checkedClasspaths = new FileSystem.Classpath[result.size()];
++ result.toArray(this.checkedClasspaths);
++
++ this.logger.logCommandLineArguments(argv);
++ this.logger.logOptions(this.options);
++ this.logger.logClasspath(this.checkedClasspaths);
++
++ this.maxRepetition = 1;
++ }
++
++ public boolean compile(String[] argv) {
++ boolean result = super.compile(argv);
++ try {
++ if (zipStream != null) {
++ zipStream.finish();
++ zipStream.close();
++ }
++ if (zipDependencyStream != null) {
++ zipDependencyStream.finish();
++ zipDependencyStream.close();
++ }
++ } catch (IOException err) {
++ fail(err);
++ }
++ return result;
++ }
++
++ public static void main(String[] argv) {
++ boolean result = new GCCMain(new PrintWriter(System.out), new PrintWriter(System.err), false).compile(argv);
++ System.exit(result ? 0 : 1);
++ }
++}
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-java/ecj.git
More information about the pkg-java-commits
mailing list