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 <[email protected]> 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 <[email protected]> Sun, 15 Feb 2009 22:34:28 +0100 ++ +ecj (3.3.0+0728-11) unstable; urgency=low + + * Build again for alpha. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> Wed, 09 Apr 2008 04:12:54 +0200 + +ecj (3.3.0+0728-8) unstable; urgency=low + + * Fix build failure on alpha. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Sat, 25 Aug 2007 12:35:30 +0200 + +ecj (3.3.0-2) unstable; urgency=low + + * Apply fix for upstream report #195317. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Sun, 29 Apr 2007 22:19:47 +0200 + +ecj (3.2.2-1) unstable; urgency=low + + * Upload to unstable. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Tue, 9 Jan 2007 00:09:22 +0100 + +ecj-bootstrap (3.2.1-3) unstable; urgency=low + + * Add missing build dependency. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Sun, 13 Aug 2006 13:01:45 +0200 + +ecj-bootstrap (3.2-1) unstable; urgency=low + + * New upstream version. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Sun, 26 Feb 2006 21:00:44 +0000 + +ecj-bootstrap (3.1.2-2ubuntu2) dapper; urgency=low + + * Build using gcj-4.1. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> Thu, 9 Feb 2006 16:33:45 +0000 + +ecj-bootstrap (3.1.2-1) unstable; urgency=low + + * New upstream version. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Sat, 11 Jun 2005 16:57:27 +0000 + +ecj-bootstrap (3.0.1-3) experimental; urgency=low + + * Synchronize. + + -- Matthias Klose <[email protected]> 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 <[email protected]> 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 <[email protected]> Sun, 22 May 2005 15:53:07 +0000 + +ecj-bootstrap (3.0.1-1ubuntu5) hoary; urgency=low + + * Fixed path to ant.jar. + + -- Jerry Haltom <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> Fri, 11 Feb 2005 20:37:21 +0000 + +ecj-bootstrap (3.0.1-0) unstable; urgency=low + + * Initial release. + + -- Jerry Haltom <[email protected]> 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:[email protected]:/cvsroot/eclipse login + cvs -z3 -d :pserver:[email protected]:/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 _______________________________________________ pkg-java-commits mailing list [email protected] http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-java-commits

