[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