[ecj] 26/145: Import Debian changes 3.2.2-0

Emmanuel Bourg ebourg-guest at moszumanska.debian.org
Tue Mar 27 23:11:24 BST 2018


This is an automated email from the git hooks/post-receive script.

ebourg-guest pushed a commit to branch master
in repository ecj.

commit 47a418fe45fcd9855d6845d1ba722815598a37c2
Merge: 77d682e e9edad9
Author: Matthias Klose <doko at debian.org>
Date:   Sat Mar 3 19:37:46 2007 +0100

    Import Debian changes 3.2.2-0
    
    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.

 debian/changelog                                   |   16 +
 debian/control                                     |   46 +-
 debian/ecj-bootstrap-gcj.install                   |    3 -
 debian/ecj-bootstrap-gcj.prerm                     |    6 -
 debian/ecj-bootstrap.install                       |    2 -
 debian/ecj-bootstrap.manpages                      |    1 -
 debian/ecj-bootstrap.postinst                      |    9 -
 debian/ecj-bootstrap.prerm                         |    6 -
 debian/ecj-gcj.install                             |    3 +
 ...ecj-bootstrap-gcj.postinst => ecj-gcj.postinst} |    0
 .../{ecj-bootstrap-gcj.postrm => ecj-gcj.postrm}   |    0
 debian/{ecj-bootstrap.1 => ecj.1}                  |    0
 debian/ecj.install                                 |    2 +
 debian/ecj.links                                   |    1 +
 debian/ecj.manpages                                |    1 +
 debian/ecj.postinst                                |    6 +
 debian/ecj.prerm                                   |    5 +
 debian/patches/ecj-gccmain.diff                    |  511 ++++++
 debian/patches/ecj-square-bracket-classpath.diff   |  103 ++
 debian/rules                                       |   85 +-
 ecj-bootstrap => ecj                               |    4 +-
 ecj-bootstrap                                      |    4 +-
 .../eclipse/jdt/internal/compiler/ClassFile.java   |    4 +-
 .../eclipse/jdt/internal/compiler/Compiler.java    |   10 +-
 .../jdt/internal/compiler/IProblemFactory.java     |    3 +-
 .../eclipse/jdt/internal/compiler/ast/ASTNode.java |    8 +-
 .../internal/compiler/ast/ArrayInitializer.java    |    1 +
 .../compiler/ast/ArrayQualifiedTypeReference.java  |    4 +
 .../jdt/internal/compiler/ast/CastExpression.java  |   35 +-
 .../internal/compiler/ast/ClassLiteralAccess.java  |    9 +-
 .../eclipse/jdt/internal/compiler/ast/Clinit.java  |   32 +-
 .../jdt/internal/compiler/ast/Expression.java      |   19 +-
 .../jdt/internal/compiler/ast/FieldReference.java  |  122 +-
 .../internal/compiler/ast/LocalDeclaration.java    |   74 +-
 .../jdt/internal/compiler/ast/MemberValuePair.java |   60 +-
 .../internal/compiler/ast/MethodDeclaration.java   |   17 +-
 .../ast/ParameterizedQualifiedTypeReference.java   |    2 +-
 .../compiler/ast/QualifiedNameReference.java       |   20 +-
 .../compiler/ast/QualifiedTypeReference.java       |    4 +
 .../internal/compiler/ast/SingleNameReference.java |   95 +-
 .../jdt/internal/compiler/ast/TypeReference.java   |   10 +-
 .../jdt/internal/compiler/batch/FileFinder.java    |   29 +-
 .../jdt/internal/compiler/batch/FileSystem.java    |    4 +-
 .../jdt/internal/compiler/batch/GCCMain.java       |  495 ------
 .../eclipse/jdt/internal/compiler/batch/Main.java  | 1714 +++++++++-----------
 .../internal/compiler/batch/messages.properties    |   93 +-
 .../jdt/internal/compiler/codegen/CodeStream.java  |   59 +-
 .../compiler/codegen/FieldNameAndTypeCache.java    |  167 --
 .../compiler/codegen/MethodNameAndTypeCache.java   |  168 --
 .../compiler/codegen/StackMapFrameCodeStream.java  |   73 +-
 .../compiler/flow/UnconditionalFlowInfo.java       |    5 +-
 .../compiler/lookup/BinaryTypeBinding.java         |   52 +-
 .../jdt/internal/compiler/lookup/ClassScope.java   |   62 +-
 .../compiler/lookup/CompilationUnitScope.java      |    7 +-
 .../internal/compiler/lookup/ElementValuePair.java |    5 +
 .../compiler/lookup/LookupEnvironment.java         |   41 +-
 .../internal/compiler/lookup/MethodVerifier15.java |    8 +-
 .../compiler/lookup/MissingBinaryTypeBinding.java  |   58 +
 .../compiler/lookup/ParameterizedTypeBinding.java  |    2 +-
 .../jdt/internal/compiler/lookup/Scope.java        |   30 +-
 .../compiler/lookup/SourceTypeBinding.java         |   15 +-
 .../compiler/lookup/SyntheticMethodBinding.java    |    2 +-
 .../lookup/UnresolvedAnnotationBinding.java        |   34 +-
 .../lookup/UnresolvedReferenceBinding.java         |    9 +-
 .../jdt/internal/compiler/parser/Parser.java       |    8 +-
 .../compiler/problem/AbortCompilation.java         |    5 +-
 .../internal/compiler/problem/DefaultProblem.java  |   14 +-
 .../compiler/problem/DefaultProblemFactory.java    |    6 +-
 .../internal/compiler/problem/ProblemHandler.java  |   47 +-
 .../internal/compiler/problem/ProblemReporter.java |  304 ++--
 .../internal/compiler/util/GenericXMLWriter.java   |  117 ++
 .../eclipse/jdt/internal/compiler/util/Util.java   |   41 +
 72 files changed, 2618 insertions(+), 2399 deletions(-)

diff --cc debian/changelog
index bf985ae,0000000..313a9e0
mode 100644,000000..100644
--- a/debian/changelog
+++ b/debian/changelog
@@@ -1,287 -1,0 +1,303 @@@
++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/control
index c85bbfa,0000000..726a0f3
mode 100644,000000..100644
--- a/debian/control
+++ b/debian/control
@@@ -1,29 -1,0 +1,45 @@@
- Source: ecj-bootstrap
++Source: ecj
 +Section: devel
 +Priority: optional
 +Maintainer: Debian Java Maintainers <pkg-java-maintainers at lists.alioth.debian.org>
 +Uploaders: Jerry Haltom <wasabi at larvalstage.net>, Michael Koch <konqueror at gmx.de>, Matthias Klose <doko at debian.org>
- Build-Depends: cdbs (>= 0.4.26), debhelper (>= 4.1.0), gcj-4.1 (>= 4.1.1-13), fastjar, ant, zip, dpkg (>= 1.13.19), python, time
++Build-Depends: cdbs (>= 0.4.26), debhelper (>= 5), gcj-4.1 (>= 4.1.2-1), libgcj-bc (>= 4.1.2-1), fastjar, ant, zip, dpkg (>= 1.13.19), python, time
++Build-Conflicts: ecj-bootstrap-gcj (<< 3.2.2)
 +Standards-Version: 3.7.2
 +
- Package: ecj-bootstrap
++Package: ecj
 +Architecture: all
- Depends: gij-4.1 (>= 4.1.1-13), libgcj7-jar (>= 4.1.1), java-common (>= 0.23)
- Recommends: ecj-bootstrap-gcj
++Depends: gij-4.1 (>= 4.1.2-1), libgcj7-jar (>= 4.1.2-1), java-common (>= 0.23)
++Recommends: ecj-gcj
++Conflicts: ecj-bootstrap (<< 3.2.2)
++Replaces: ecj-bootstrap (<< 3.2.2)
 +Suggests: ant
- Provides: ecj
 +Description: standalone version of the Eclipse Java compiler
-  This package provides a standalone version of the Eclipse JDT compiler which is
-  distributed as part of Eclipse. It passes the JCK (Java Compatibility Kit) and
-  is compatible with Java 1.3, 1.4, 1.5 and 1.6.
++ This package provides a standalone version of the Eclipse JDT compiler which
++ is distributed as part of Eclipse. It passes the JCK (Java Compatibility Kit)
++ and is compatible with Java 1.3, 1.4, 1.5 and 1.6.
 +
- Package: ecj-bootstrap-gcj
++Package: ecj-gcj
 +Architecture: any
- Depends: ecj-bootstrap (>= ${source:Version}), ${shlibs:Depends}
- Recommends: java-gcj-compat (>= 1.0.63)
++Depends: ecj (>= ${source:Version}), ${shlibs:Depends}
++Recommends: java-gcj-compat (>= 1.0.69)
++Replaces: ecj-bootstrap-gcj (<< 3.2.2)
 +Description: standalone version of the Eclipse Java compiler (native version)
-  This package provides a standalone version of the Eclipse JDT compiler which is
-  distributed as part of Eclipse. It passes the JCK (Java Compatibility Kit) and
-  is compatible with Java 1.3, 1.4, 1.5 and 1.6.
++ This package provides a standalone version of the Eclipse JDT compiler which
++ is distributed as part of Eclipse. It passes the JCK (Java Compatibility Kit)
++ and is compatible with Java 1.3, 1.4, 1.5 and 1.6.
 + .
 + This package contains a native version of ecj built using gcj.
++
++Package: ecj-bootstrap
++Architecture: all
++Depends: ecj 
++Recommends: ecj-bootstrap-gcj
++Description: standalone version of the Eclipse Java compiler (transitional package)
++ This is a transitional package; it can safely be removed.
++
++Package: ecj-bootstrap-gcj
++Architecture: all
++Depends: ecj-bootstrap (>= ${source:Version}), ecj-gcj (>= ${source:Version})
++Description: standalone version of the Eclipse Java compiler (transitional package)
++ This is a transitional package; it can safely be removed.
diff --cc debian/ecj-gcj.install
index 0000000,0000000..5ba8567
new file mode 100644
--- /dev/null
+++ b/debian/ecj-gcj.install
@@@ -1,0 -1,0 +1,3 @@@
++debian/tmp/usr/bin/ecj-gcj
++debian/tmp/usr/lib/gcj/eclipse-ecj.jar.so
++debian/tmp/usr/share/gcj
diff --cc debian/ecj-gcj.postinst
index 6901eaa,0000000..6901eaa
mode 100644,000000..100644
--- a/debian/ecj-gcj.postinst
+++ b/debian/ecj-gcj.postinst
diff --cc debian/ecj-gcj.postrm
index e6c5b04,0000000..e6c5b04
mode 100644,000000..100644
--- a/debian/ecj-gcj.postrm
+++ b/debian/ecj-gcj.postrm
diff --cc debian/ecj.1
index 68d6c57,0000000..68d6c57
mode 100644,000000..100644
--- a/debian/ecj.1
+++ b/debian/ecj.1
diff --cc debian/ecj.install
index 0000000,0000000..5c694a7
new file mode 100644
--- /dev/null
+++ b/debian/ecj.install
@@@ -1,0 -1,0 +1,2 @@@
++debian/tmp/usr/bin/ecj
++debian/tmp/usr/share/java/eclipse-ecj.jar
diff --cc debian/ecj.links
index 0000000,0000000..f6a8ada
new file mode 100644
--- /dev/null
+++ b/debian/ecj.links
@@@ -1,0 -1,0 +1,1 @@@
++/usr/share/java/eclipse-ecj.jar /usr/share/java/ecj.jar
diff --cc debian/ecj.manpages
index 0000000,0000000..bd1e496
new file mode 100644
--- /dev/null
+++ b/debian/ecj.manpages
@@@ -1,0 -1,0 +1,1 @@@
++debian/ecj.1
diff --cc debian/ecj.postinst
index 0000000,0000000..b2f1b68
new file mode 100644
--- /dev/null
+++ b/debian/ecj.postinst
@@@ -1,0 -1,0 +1,6 @@@
++#! /bin/sh -e
++
++update-alternatives --quiet --install /usr/bin/javac javac /usr/bin/ecj 143 \
++  --slave /usr/share/man/man1/javac.1.gz javac.1.gz /usr/share/man/man1/ecj.1.gz
++
++#DEBHELPER#
diff --cc debian/ecj.prerm
index 0000000,0000000..b7920e1
new file mode 100644
--- /dev/null
+++ b/debian/ecj.prerm
@@@ -1,0 -1,0 +1,5 @@@
++#! /bin/sh -e
++
++update-alternatives --quiet --remove javac /usr/bin/ecj
++
++#DEBHELPER#
diff --cc debian/patches/ecj-gccmain.diff
index 0000000,0000000..f4efeea
new file mode 100644
--- /dev/null
+++ b/debian/patches/ecj-gccmain.diff
@@@ -1,0 -1,0 +1,511 @@@
++diff -urN ./src~/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/GCCMain.java ./src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/GCCMain.java
++--- ./src~/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/GCCMain.java	1970-01-01 01:00:00.000000000 +0100
+++++ ./src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/GCCMain.java	2007-03-03 19:55:20.000000000 +0100
++@@ -0,0 +1,495 @@
+++/**
+++ * 
+++ */
+++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.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];
+++		String templates[] = new String[AccessRuleSet.MESSAGE_TEMPLATES_LENGTH];
+++		templates[0] = this.bind(
+++			"template.restrictedAccess.type", //$NON-NLS-1$
+++			new String[] {"{0}", currentClasspathName}); //$NON-NLS-1$ 
+++		templates[1] = this.bind(
+++			"template.restrictedAccess.constructor", //$NON-NLS-1$
+++			new String[] {"{0}", currentClasspathName}); //$NON-NLS-1$ 
+++		templates[2] = this.bind(
+++			"template.restrictedAccess.method", //$NON-NLS-1$
+++			new String[] {"{0}", "{1}", currentClasspathName}); //$NON-NLS-1$ //$NON-NLS-2$ 
+++		templates[3] = this.bind(
+++			"template.restrictedAccess.field", //$NON-NLS-1$
+++			new String[] {"{0}", "{1}", currentClasspathName}); //$NON-NLS-1$ //$NON-NLS-2$ 
+++		AccessRuleSet accessRuleSet = new AccessRuleSet(accessRules, templates);
+++		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,
+++			boolean useEnableJavadoc) 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, useEnableJavadoc);
+++	}
+++
+++	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, false);
+++		handleWarningToken("pkg-default-method", enable, false);
+++		handleWarningToken("masked-catch-block", enable, false);
+++		handleWarningToken("all-deprecation", enable, false);
+++		handleWarningToken("unused-local", enable, false);
+++		handleWarningToken("unused-label", enable, false);
+++		handleWarningToken("static-receiver", enable, false);
+++		handleWarningToken("indirect-static", enable, false);
+++		handleWarningToken("no-effect-assign", enable, false);
+++		handleWarningToken("char-concat", enable, false);
+++		handleWarningToken("useless-type-check", enable, false);
+++		handleWarningToken("final-bound", enable, false);
+++		handleWarningToken("assert-identifier", enable, false);
+++		handleWarningToken("enum-identifier", enable, false);
+++		handleWarningToken("finally", enable, false);
+++		handleWarningToken("varargs-cast", enable, false);
+++		handleWarningToken("unused", enable, false);
+++		handleWarningToken("forbidden", enable, false);
+++	}
+++
+++	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.destinationPath = arg;
+++				this.generatePackagesStructure = true;
+++			} 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, false);
+++			} else if (currentArg.startsWith("-W")) { //$NON-NLS-1$
+++				handleWarningToken(currentArg.substring(2), true, false);
+++			} 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.repetitions = 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);
+++	}
+++}
++diff -urN ./src~/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/messages.properties ./src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/messages.properties
++--- ./src~/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/messages.properties	2007-02-12 19:46:33.000000000 +0100
+++++ ./src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/messages.properties	2007-03-03 19:55:20.000000000 +0100
++@@ -249,3 +249,8 @@
++ template.restrictedAccess.constructor = The constructor {0} is not accessible due to restriction on classpath entry {1}
++ template.restrictedAccess.field = The field {0} from the type {1} is not accessible due to restriction on classpath entry {2}
++ template.restrictedAccess.method = The method {0} from the type {1} is not accessible due to restriction on classpath entry {2}
+++
+++# GCCMain messages.
+++gcc.zipArg=-fzip-target requires argument
+++gcc.zipDepArg=-fzip-dependency requires argument
+++gcc.noClasspath=no classpath specified
diff --cc debian/patches/ecj-square-bracket-classpath.diff
index 0000000,0000000..8f92877
new file mode 100644
--- /dev/null
+++ b/debian/patches/ecj-square-bracket-classpath.diff
@@@ -1,0 -1,0 +1,103 @@@
++diff -urN ./src~/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/Main.java ./src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/Main.java
++--- ./src~/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/Main.java	2007-02-12 19:46:45.000000000 +0100
+++++ ./src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/batch/Main.java	2007-03-03 19:56:45.000000000 +0100
++@@ -2723,6 +2723,10 @@
++ 	ArrayList currentRuleSpecs = new ArrayList(defaultSize);
++ 	StringTokenizer tokenizer = new StringTokenizer(currentPath,
++ 			File.pathSeparator + "[]", true); //$NON-NLS-1$
+++	ArrayList tokens = new ArrayList();
+++	while (tokenizer.hasMoreTokens()) {
+++		tokens.add(tokenizer.nextToken());
+++	}
++ 	// state machine
++ 	final int start = 0; 
++ 	final int readyToClose = 1;
++@@ -2737,14 +2741,20 @@
++ 	// 'path[' 'path1;path2['
++ 	final int rulesReadyToClose = 6;
++ 	// 'path[rule' 'path[rule1;rule2'
+++	final int bracketOpened = 7;
+++	// '.*[.*'
+++	final int bracketClosed = 8;
+++	// '.*([.*])+'
++ 	final int error = 99;
++ 	int state = start;
++ 	String token = null;
++-	while (tokenizer.hasMoreTokens() && state != error) {
++-		token = tokenizer.nextToken();
+++    int cursor = 0, tokensNb = tokens.size(), bracket = -1;
+++    while (cursor < tokensNb && state != error) {
+++        token = (String) tokens.get(cursor++);
++ 		if (token.equals(File.pathSeparator)) {
++ 			switch (state) {
++ 			case start:
+++	        case bracketOpened:
++ 				break;
++ 			case readyToClose:
++ 			case readyToCloseEndingWithRules:
++@@ -2757,14 +2767,21 @@
++ 			case rulesReadyToClose:
++ 				state = rulesNeedAnotherRule;
++ 				break;
+++			case bracketClosed:
+++				cursor = bracket + 1;
+++				state = rulesStart;
+++				break;
++ 			default:
++ 				state = error;
++ 			}
++ 		} else if (token.equals("[")) { //$NON-NLS-1$
++ 			switch (state) {
++ 			case readyToClose:
++-				state = rulesStart;
+++				bracket = cursor - 1;
+++			case bracketClosed:
+++				state = bracketOpened;
++ 				break;
+++			case bracketOpened:
++ 			default:
++ 				state = error;
++ 			}
++@@ -2773,6 +2790,10 @@
++ 			case rulesReadyToClose:
++ 				state = readyToCloseEndingWithRules;
++ 				break;
+++			case bracketOpened:
+++				state = bracketClosed;
+++				break;
+++			case bracketClosed:
++ 			default:
++ 				state = error;
++ 			}
++@@ -2789,10 +2810,22 @@
++ 				state = rulesReadyToClose;
++ 				currentRuleSpecs.add(token);
++ 				break;
+++            case bracketClosed:
+++                for (int i = bracket; i < cursor ; i++) {
+++                	currentClasspathName += (String) tokens.get(i);
+++                }
+++			    state = readyToClose;
+++			    break;
+++			case bracketOpened:
+++			    break;
++ 			default:
++ 				state = error;
++ 			}
++ 		}
+++		if (state == bracketClosed && cursor == tokensNb) {
+++			cursor = bracket + 1;
+++			state = rulesStart;
+++		}
++ 	}
++ 	switch(state) {
++ 		case readyToClose:
++@@ -2801,6 +2834,8 @@
++ 			addNewEntry(paths, currentClasspathName, currentRuleSpecs, 
++ 				customEncoding, isSourceOnly);
++ 			break;
+++        case bracketOpened:
+++        case bracketClosed:
++ 		default :
++ 			// we go on anyway
++ 			this.logger.logIncorrectClasspath(currentPath);
diff --cc debian/rules
index b78f2ac,0000000..cdcd821
mode 100755,000000..100755
--- a/debian/rules
+++ b/debian/rules
@@@ -1,148 -1,0 +1,177 @@@
 +#!/usr/bin/make -f
 +
 +include /usr/share/cdbs/1/rules/debhelper.mk
 +include /usr/share/cdbs/1/rules/simple-patchsys.mk
 +
 +gcc_version = 4.1
 +ant_version = 1.6
 +ant_version =
 +GCJ = gcj-$(gcc_version)
 +GIJ = gij-$(gcc_version)
 +GCJDBTOOL = gcj-dbtool-$(gcc_version)
 +
 +DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
 +
 +with_native := yes
 +with_rebuild := yes
 +
 +ifneq (,$(findstring $(DEB_HOST_ARCH), arm))
 +  with_rebuild := no
 +endif
 +
++JAR = eclipse-ecj.jar
++
 +default: build
 +
- eclipse_root = ../eclipse-3.1.2/source-tree
++eclipse_root = ../eclipse-3.2.2/source-tree
 +
 +get-source:
 +	test -d $(eclipse_root)
 +	rm -rf src
 +	mkdir -p src/org.eclipse.jdt.core
 +	cp -a $(eclipse_root)/plugins/org.eclipse.jdt.core/compiler/org \
 +		src/org.eclipse.jdt.core/
 +	cp -a $(eclipse_root)/plugins/org.eclipse.jdt.core/batch/org/eclipse/jdt/internal/compiler/batch \
 +		src/org.eclipse.jdt.core/org/eclipse/jdt/internal/compiler/
 +
 +	cp -a $(eclipse_root)/plugins/org.eclipse.jdt.core/antadapter/org/eclipse/jdt/core/JDTCompilerAdapter.java \
 +		src/org.eclipse.jdt.core/org/eclipse/jdt/core/
 +	cp -a $(eclipse_root)/plugins/org.eclipse.jdt.core/antadapter/org/eclipse/jdt/internal/antadapter \
 +		src/org.eclipse.jdt.core/org/eclipse/jdt/internal/
 +
 +
- build/ecj-bootstrap:: build/stamp-bytecode build/stamp-nativecode
++build/ecj:: build/stamp-bytecode build/stamp-nativecode
 +
 +build/stamp-bytecode:
 +	rm -rf build/bin
 +	mkdir -p build/bin
 +
 +	cp -r src/org.eclipse.jdt.core/org build/bin/
 +	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
++ifeq (0,1)
 +	set -e; \
 +	for list in $$(find build/bin -name 'ecj-sources.*'); do \
 +	    echo "building files in $$list ..."; \
- 	    $(GCJ) -d build/bin -C -g \
++	    echo $(GCJ) -d build/bin -C -g \
++		-I/usr/share/ant$(ant_version)/lib/ant.jar \
++		-Ibuild/bin \
++		@$$list; \
++	    $(GCJ) -v -d build/bin -C -g \
 +		-I/usr/share/ant$(ant_version)/lib/ant.jar \
 +		-Ibuild/bin \
 +		@$$list; \
 +	done
- 
++else
++	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
++endif
 +	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/ecj.jar
++	fastjar -c -C build/bin . -f build/bootstrap/$(JAR)
 +
 +ifeq ($(with_rebuild),yes)
 +	rm -rf build/bin
 +	mkdir -p build/bin
 +	cp -r src/org.eclipse.jdt.core/org build/bin/
 +
 +	time $(GIJ) \
- 	    -classpath build/bootstrap/ecj.jar:/usr/share/ant$(ant_version)/lib/ant.jar \
++	    -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/ecj.jar
++	fastjar -c -C build/bin . -f build/dist/$(JAR)
 +else
 +	mkdir -p build/dist
- 	cp -p build/bootstrap/ecj.jar build/dist/ecj.jar
++	cp -p build/bootstrap/$(JAR) build/dist/$(JAR)
 +endif
 +	mkdir -p build/exe
- 	cp build/dist/ecj.jar build/exe/ecj-standalone.jar
++	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)
- 	: # ecj.jar.so
++	: # $(JAR).so
 +  ifneq (,$(filter $(DEB_HOST_ARCH), hppa))
 +	$(GCJ) \
 +	    -O2 -g -Wl,-Bsymbolic,-O1 -shared -fPIC -fjni -findirect-dispatch \
- 	    -o build/dist/ecj.jar.so build/dist/ecj.jar
- 	$(GCJDBTOOL) -f build/dist/ecj-bootstrap.db \
- 	    build/dist/ecj.jar.so /usr/lib/gcj/ecj.jar.so \
- 		|| touch build/dist/ecj-bootstrap.db
++	    -o build/dist/$(JAR).so build/dist/$(JAR)
++	$(GCJDBTOOL) -f build/dist/eclipse-ecj.db \
++	    build/dist/$(JAR).so /usr/lib/gcj/$(JAR).so \
++		|| touch build/dist/eclipse-ecj.db
 +  else
 +	PYTHONPATH=$(CURDIR)/debian time python debian/aot-compile \
++	    --gcj=$(GCJ) --dbtool=$(GCJDBTOOL) \
 +	    -L /usr/lib/gcj build/dist build/dist
- 	mv build/dist/ecj.jar.db build/dist/ecj-bootstrap.db
++	mv build/dist/$(JAR).db build/dist/eclipse-ecj.db
 +  endif
 +
- 	: # ecj-bootstrap-gcj
++	: # ecj-gcj
 +	time $(GCJ) \
 +	    -O2 -g -Wl,-O1 \
 +	    --main=org.eclipse.jdt.internal.compiler.batch.Main \
- 	    -o build/exe/ecj-bootstrap-gcj build/exe/ecj-standalone.jar
++	    -o build/exe/ecj-gcj build/exe/ecj-standalone.jar
 +endif
 +
 +	touch build/stamp-nativecode
 +
 +
- install/ecj-bootstrap::
++install/ecj::
 +	mkdir -p debian/tmp/usr/share/java
- 	install -m 644 build/dist/ecj.jar debian/tmp/usr/share/java/
++	install -m 644 build/dist/$(JAR) debian/tmp/usr/share/java/
 +
 +	mkdir -p debian/tmp/usr/bin
- 	install -m 755 ecj-bootstrap debian/tmp/usr/bin/
++	install -m 755 ecj debian/tmp/usr/bin/
 +
- install/ecj-bootstrap-gcj::
++install/ecj-gcj::
 +ifeq ($(with_native),yes)
 +	mkdir -p debian/tmp/usr/lib/gcj
- 	install -m 644 build/dist/ecj.jar.so 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/ecj-bootstrap.db \
++	install -m 644 build/dist/eclipse-ecj.db \
 +		debian/tmp/usr/share/gcj/classmap.d/
 +
 +	mkdir -p debian/tmp/usr/bin
- 	install -m 755 build/exe/ecj-bootstrap-gcj debian/tmp/usr/bin/
++	install -m 755 build/exe/ecj-gcj debian/tmp/usr/bin/
 +endif
- 	mkdir -p debian/ecj-bootstrap-gcj/usr/share/man/man1
- 	ln -sf ecj-bootstrap.1.gz \
- 	  debian/ecj-bootstrap-gcj/usr/share/man/man1/ecj-bootstrap-gcj.1.gz
++	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
++
++install/ecj-bootstrap::
++	mkdir -p debian/ecj-bootstrap/usr/bin
++	install -m 755 ecj-bootstrap debian/ecj-bootstrap/usr/bin/
 +
++	mkdir -p debian/ecj-bootstrap/usr/share/man/man1
++	ln -sf ecj.1.gz \
++	  debian/ecj-bootstrap/usr/share/man/man1/ecj-bootstrap.1.gz
 +
 +clean::
 +	rm -rf build
 +	rm -f debian/*.pyc
diff --cc ecj
index 9ce7750,0000000..2076605
mode 100644,000000..100644
--- a/ecj
+++ b/ecj
@@@ -1,31 -1,0 +1,31 @@@
 +#! /bin/sh
 +
 +ver=4.1
 +
 +case "$*" in
 +  *-bootclasspath*) ;;
 +  *)
 +    if [ ! -f /usr/lib/jvm/java-gcj/jre/lib/rt.jar ]; then
 +      bcoption="-bootclasspath /usr/share/java/libgcj-$ver.jar"
 +    fi
 +esac
 +
- if [ -x /usr/bin/ecj-bootstrap-gcj ]; then
++if [ -x /usr/bin/ecj-gcj ]; then
 +
-     exec /usr/bin/ecj-bootstrap-gcj \
++    exec /usr/bin/ecj-gcj \
 +	$bcoption ${1+"$@"}
 +
 +else
 +
 +    case $CLASSPATH in
 +      */usr/share/java/ecj.jar*) ;;
 +      *) CLASSPATH=${CLASSPATH:+$CLASSPATH:}/usr/share/java/ecj.jar
 +    esac
 +    export CLASSPATH
 +
 +    exec /usr/bin/gij-$ver \
 +        -Dgnu.gcj.precompiled.db.path=/var/lib/gcj-$ver/classmap.db \
 +        -Djava.ext.dirs=/usr/lib/java-ext:/usr/share/java-ext \
 +        org.eclipse.jdt.internal.compiler.batch.Main $bcoption ${1+"$@"}
 +
 +fi
diff --cc ecj-bootstrap
index 9ce7750,0000000..2076605
mode 100644,000000..100644
--- a/ecj-bootstrap
+++ b/ecj-bootstrap
@@@ -1,31 -1,0 +1,31 @@@
 +#! /bin/sh
 +
 +ver=4.1
 +
 +case "$*" in
 +  *-bootclasspath*) ;;
 +  *)
 +    if [ ! -f /usr/lib/jvm/java-gcj/jre/lib/rt.jar ]; then
 +      bcoption="-bootclasspath /usr/share/java/libgcj-$ver.jar"
 +    fi
 +esac
 +
- if [ -x /usr/bin/ecj-bootstrap-gcj ]; then
++if [ -x /usr/bin/ecj-gcj ]; then
 +
-     exec /usr/bin/ecj-bootstrap-gcj \
++    exec /usr/bin/ecj-gcj \
 +	$bcoption ${1+"$@"}
 +
 +else
 +
 +    case $CLASSPATH in
 +      */usr/share/java/ecj.jar*) ;;
 +      *) CLASSPATH=${CLASSPATH:+$CLASSPATH:}/usr/share/java/ecj.jar
 +    esac
 +    export CLASSPATH
 +
 +    exec /usr/bin/gij-$ver \
 +        -Dgnu.gcj.precompiled.db.path=/var/lib/gcj-$ver/classmap.db \
 +        -Djava.ext.dirs=/usr/lib/java-ext:/usr/share/java-ext \
 +        org.eclipse.jdt.internal.compiler.batch.Main $bcoption ${1+"$@"}
 +
 +fi

-- 
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