Re: [patch] update ecj to ecj-3.8.2/4.2.2
- Original Message - From: Andrew Hughes gnu.and...@redhat.com To: Jon VanAlten jon.vanal...@redhat.com Cc: Matthias Klose d...@ubuntu.com, GCJ-patches java-patc...@gcc.gnu.org, classpath@gnu.org, Tom Tromey tro...@redhat.com Sent: Monday, April 15, 2013 5:34:49 PM Subject: Re: [patch] update ecj to ecj-3.8.2/4.2.2 - Original Message - - Original Message - From: Matthias Klose d...@ubuntu.com To: GCJ-patches java-patc...@gcc.gnu.org Cc: Jon VanAlten jon.vanal...@redhat.com, classpath@gnu.org, Tom Tromey tro...@redhat.com Sent: Monday, April 15, 2013 6:21:45 AM Subject: [patch] update ecj to ecj-3.8.2/4.2.2 It looks like this ecj is already used within the Fedora disto, however only locally patched (at least I couldn't find any mail sent to java-patches). My bad. I honestly didn't have any idea what the upstream process would be. My history in the free java world starts after openjdk/icedtea, so all the gcj fluff isn't really known well to me, and I don't really know where to look for information (pointers appreciated! :D ). So I sort of let it slip through the cracks. I did bring it up on an earlier thread[1], and it seems like by accident it also went to java-patches. Now I know for next time, if and when there is a next time. Don't feel bad, Jon. It's not your fault. I was around for the gcj fluff (perhaps wording it better would be a good idea though) and I still have no idea how this is updated, despite asking on this list at least once. And to be honest, I still don't. Hah, ok then hopefully those that *do* know their way around can offer up a pointer to some documentation (possibly preceded by creating and publishing said documentation) :) Just to make sure, I don't mean fluff in a derogatory sense at all! Rather, I thank the forebearers of the free java community for doing all that great work. It's just that now, since there is very little active work on those bits (as I understand it because there is very little need for active work), I haven't had the opportunity to learn the ins and outs, and so it all seems like a big black box to me, such that I fall back on speaking of it in generic terms like fluff by which I mean just stuff, not at all inconsequential. cheers, jon
[patch] update ecj to ecj-3.8.2/4.2.2
The ecj.jar provided on ftp://gcc.gnu.org/pub/java wasn't updated anymore since 2008, having no support for java7. It looks like this ecj is already used within the Fedora disto, however only locally patched (at least I couldn't find any mail sent to java-patches). Find attached the changes required to build a new ecj.jar from the R3_8_2 git tag. The built files can be found at http://people.debian.org/~doko/tmp/eclipse-gcj/. The resulting gcj -C looks fine, building libjava with the new ecj.jar doesn't show any regressions, and the testsuite doesn't show any regressions. However the filenames for some generated class and header files have changed for inner classes: $ svn status|grep UIDefaults|sort -k1 ! classpath/lib/javax/swing/UIDefaults$1.class ! classpath/lib/javax/swing/UIDefaults$2.class ! classpath/lib/javax/swing/UIDefaults$3.class ! classpath/lib/javax/swing/UIDefaults$4.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$1.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$2.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$3.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$4.class ! javax/swing/UIDefaults$1.h ! javax/swing/UIDefaults$2.h ! javax/swing/UIDefaults$3.h ! javax/swing/UIDefaults$4.h ? javax/swing/UIDefaults$ProxyLazyValue$1.h ? javax/swing/UIDefaults$ProxyLazyValue$2.h ? javax/swing/UIDefaults$ProxyLazyValue$3.h ? javax/swing/UIDefaults$ProxyLazyValue$4.h M classpath/lib/javax/swing/plaf/basic/SharedUIDefaults.class M classpath/lib/javax/swing/UIDefaults.class M classpath/lib/javax/swing/UIDefaults$ProxyLazyValue.class M classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class See the attached svn-status.gz file for a complete diff (replace ! with D, ? with A). - I'd like to ask Tom (or somebody else) to look at the patches for the rhug/java repository. - Ask to rebuild the .class and .h files using this new ecj.jar on the trunk, after the ecj.jar is uploaded. There are issues building OpenJDK and IcedTea with this new compiler. Please see the IcedTea ML for a follow-up posting. Matthias 2013-04-13 Matthias Klose d...@ubuntu.com * Makefile (TAG): Set to R3_8_2 (cvsroot, login): Remove, (checkout): Download from git repository. (compile): Compile for 1.5, catch errors copying resource files, don't include the META-INF file. * org/eclipse/jdt/internal/compiler/batch/GCCMain.java: Adopt to new API. Index: Makefile === RCS file: /cvs/rhug/eclipse-gcj/Makefile,v retrieving revision 1.10 diff -u -r1.10 Makefile --- Makefile28 Sep 2009 17:38:31 - 1.10 +++ Makefile13 Apr 2013 16:03:28 - @@ -1,4 +1,4 @@ -TAG = R3_5_1 +TAG = R3_8_2 cvsroot = :pserver:anonym...@dev.eclipse.org:/cvsroot/eclipse @@ -11,13 +11,27 @@ $(MAKE) compile $(MAKE) ecj.jar ecj-source.tar.bz2 -login: - cvs -d $(cvsroot) login - checkout: - cvs -d $(cvsroot) co -r$(TAG) org.eclipse.jdt.core +# git clone -b R3_8_maintenance git://git.eclipse.org/gitroot/jdt/eclipse.jdt.core.git +# wget http://git.eclipse.org/c/jdt/eclipse.jdt.core.git/snapshot/$(TAG).tar.gz + tar xf $(TAG).tar.gz + rm -rf org.eclipse.jdt.core + mkdir org.eclipse.jdt.core + cp $(TAG)/org.eclipse.jdt.core/scripts/about.html \ + org.eclipse.jdt.core/. + cp $(TAG)/org.eclipse.jdt.core/scripts/build.xml \ + org.eclipse.jdt.core/. + tar -c -f - -C $(TAG)/org.eclipse.jdt.core/compiler org \ + | tar -x -f - -C org.eclipse.jdt.core/ + find org.eclipse.jdt.core -name CheckDebugAttributes.java | xargs -r rm -f + find org.eclipse.jdt.core -name BuildJarIndex.java | xargs -r rm -f + tar -c -f - -C $(TAG)/org.eclipse.jdt.core/batch org \ + | tar -x -f - -C org.eclipse.jdt.core/ + mkdir -p org.eclipse.jdt.core/META-INF/services + printf 'org.eclipse.jdt.internal.compiler.tool.EclipseCompiler #Eclipse compiler' \ + org.eclipse.jdt.core/META-INF/services/javax.tools.JavaCompiler -SOURCES = org org.eclipse.jdt.core/batch org.eclipse.jdt.core/compiler +SOURCES = org org.eclipse.jdt.core OUTPUT = bin @@ -31,17 +45,19 @@ compile: @mkdir -p $(OUTPUT) find $(SOURCES) -name '*.java' List - ecj -d $(OUTPUT) -1.4 -nowarn -g @List + ecj -d $(OUTPUT) -1.5 -nowarn -g @List + set -e; \ here=`pwd`; for dir in $(SOURCES); do \ - (cd $$dir; find . -name '*.properties' -o -name '*.rsc' | \ + (cd $$dir; find . -name '*.properties' -o -name '*.props' -o -name '*.rsc' | \ while read x; do \ echo cp $$x $$here/$(OUTPUT)/$$x; \ +mkdir -p $$(dirname $$here/$(OUTPUT)/$$x); \ cp $$x
Re: [patch] update ecj to ecj-3.8.2/4.2.2
- Original Message - The ecj.jar provided on ftp://gcc.gnu.org/pub/java wasn't updated anymore since 2008, having no support for java7. It looks like this ecj is already used within the Fedora disto, however only locally patched (at least I couldn't find any mail sent to java-patches). Find attached the changes required to build a new ecj.jar from the R3_8_2 git tag. The built files can be found at http://people.debian.org/~doko/tmp/eclipse-gcj/. The resulting gcj -C looks fine, building libjava with the new ecj.jar doesn't show any regressions, and the testsuite doesn't show any regressions. However the filenames for some generated class and header files have changed for inner classes: $ svn status|grep UIDefaults|sort -k1 ! classpath/lib/javax/swing/UIDefaults$1.class ! classpath/lib/javax/swing/UIDefaults$2.class ! classpath/lib/javax/swing/UIDefaults$3.class ! classpath/lib/javax/swing/UIDefaults$4.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$1.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$2.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$3.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$4.class ! javax/swing/UIDefaults$1.h ! javax/swing/UIDefaults$2.h ! javax/swing/UIDefaults$3.h ! javax/swing/UIDefaults$4.h ? javax/swing/UIDefaults$ProxyLazyValue$1.h ? javax/swing/UIDefaults$ProxyLazyValue$2.h ? javax/swing/UIDefaults$ProxyLazyValue$3.h ? javax/swing/UIDefaults$ProxyLazyValue$4.h M classpath/lib/javax/swing/plaf/basic/SharedUIDefaults.class M classpath/lib/javax/swing/UIDefaults.class M classpath/lib/javax/swing/UIDefaults$ProxyLazyValue.class M classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class See the attached svn-status.gz file for a complete diff (replace ! with D, ? with A). - I'd like to ask Tom (or somebody else) to look at the patches for the rhug/java repository. - Ask to rebuild the .class and .h files using this new ecj.jar on the trunk, after the ecj.jar is uploaded. There are issues building OpenJDK and IcedTea with this new compiler. Please see the IcedTea ML for a follow-up posting. Matthias Is this ecj buildable with gcj? My experience of 3.8 is that it isn't buildable without the javax.lang.model code that is now in GNU Classpath, but hasn't yet been merged to gcj (it's not yet ready for that). -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
Re: [patch] update ecj to ecj-3.8.2/4.2.2
Am 15.04.2013 15:28, schrieb Andrew Hughes: - Original Message - The ecj.jar provided on ftp://gcc.gnu.org/pub/java wasn't updated anymore since 2008, having no support for java7. It looks like this ecj is already used within the Fedora disto, however only locally patched (at least I couldn't find any mail sent to java-patches). Find attached the changes required to build a new ecj.jar from the R3_8_2 git tag. The built files can be found at http://people.debian.org/~doko/tmp/eclipse-gcj/. The resulting gcj -C looks fine, building libjava with the new ecj.jar doesn't show any regressions, and the testsuite doesn't show any regressions. However the filenames for some generated class and header files have changed for inner classes: $ svn status|grep UIDefaults|sort -k1 ! classpath/lib/javax/swing/UIDefaults$1.class ! classpath/lib/javax/swing/UIDefaults$2.class ! classpath/lib/javax/swing/UIDefaults$3.class ! classpath/lib/javax/swing/UIDefaults$4.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$1.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$2.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$3.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$4.class ! javax/swing/UIDefaults$1.h ! javax/swing/UIDefaults$2.h ! javax/swing/UIDefaults$3.h ! javax/swing/UIDefaults$4.h ? javax/swing/UIDefaults$ProxyLazyValue$1.h ? javax/swing/UIDefaults$ProxyLazyValue$2.h ? javax/swing/UIDefaults$ProxyLazyValue$3.h ? javax/swing/UIDefaults$ProxyLazyValue$4.h M classpath/lib/javax/swing/plaf/basic/SharedUIDefaults.class M classpath/lib/javax/swing/UIDefaults.class M classpath/lib/javax/swing/UIDefaults$ProxyLazyValue.class M classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class See the attached svn-status.gz file for a complete diff (replace ! with D, ? with A). - I'd like to ask Tom (or somebody else) to look at the patches for the rhug/java repository. - Ask to rebuild the .class and .h files using this new ecj.jar on the trunk, after the ecj.jar is uploaded. There are issues building OpenJDK and IcedTea with this new compiler. Please see the IcedTea ML for a follow-up posting. Matthias Is this ecj buildable with gcj? My experience of 3.8 is that it isn't buildable without the javax.lang.model code that is now in GNU Classpath, but hasn't yet been merged to gcj (it's not yet ready for that). I used gcj-4.8 -C -g -I/usr/share/ant/lib/ant.jar @files and that seems to work well enough to build libjava.
Re: [patch] update ecj to ecj-3.8.2/4.2.2
- Original Message - Am 15.04.2013 15:28, schrieb Andrew Hughes: - Original Message - The ecj.jar provided on ftp://gcc.gnu.org/pub/java wasn't updated anymore since 2008, having no support for java7. It looks like this ecj is already used within the Fedora disto, however only locally patched (at least I couldn't find any mail sent to java-patches). Find attached the changes required to build a new ecj.jar from the R3_8_2 git tag. The built files can be found at http://people.debian.org/~doko/tmp/eclipse-gcj/. The resulting gcj -C looks fine, building libjava with the new ecj.jar doesn't show any regressions, and the testsuite doesn't show any regressions. However the filenames for some generated class and header files have changed for inner classes: $ svn status|grep UIDefaults|sort -k1 ! classpath/lib/javax/swing/UIDefaults$1.class ! classpath/lib/javax/swing/UIDefaults$2.class ! classpath/lib/javax/swing/UIDefaults$3.class ! classpath/lib/javax/swing/UIDefaults$4.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$1.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$2.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$3.class ? classpath/lib/javax/swing/UIDefaults$ProxyLazyValue$4.class ! javax/swing/UIDefaults$1.h ! javax/swing/UIDefaults$2.h ! javax/swing/UIDefaults$3.h ! javax/swing/UIDefaults$4.h ? javax/swing/UIDefaults$ProxyLazyValue$1.h ? javax/swing/UIDefaults$ProxyLazyValue$2.h ? javax/swing/UIDefaults$ProxyLazyValue$3.h ? javax/swing/UIDefaults$ProxyLazyValue$4.h M classpath/lib/javax/swing/plaf/basic/SharedUIDefaults.class M classpath/lib/javax/swing/UIDefaults.class M classpath/lib/javax/swing/UIDefaults$ProxyLazyValue.class M classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class See the attached svn-status.gz file for a complete diff (replace ! with D, ? with A). - I'd like to ask Tom (or somebody else) to look at the patches for the rhug/java repository. - Ask to rebuild the .class and .h files using this new ecj.jar on the trunk, after the ecj.jar is uploaded. There are issues building OpenJDK and IcedTea with this new compiler. Please see the IcedTea ML for a follow-up posting. Matthias Is this ecj buildable with gcj? My experience of 3.8 is that it isn't buildable without the javax.lang.model code that is now in GNU Classpath, but hasn't yet been merged to gcj (it's not yet ready for that). I used gcj-4.8 -C -g -I/usr/share/ant/lib/ant.jar @files and that seems to work well enough to build libjava. Compiling source in /mnt/builder/portage.build/portage/dev-java/eclipse-ecj-4.2.1/work ... * bootstrapping ecj with /usr/lib/gcj-jdk-4.8.0/bin/javac ... 1. ERROR in org/eclipse/jdt/internal/compiler/apt/dispatch/RoundDispatcher.java (at line 21) import javax.annotation.processing.RoundEnvironment; The import javax.annotation cannot be resolved -- 2. ERROR in org/eclipse/jdt/internal/compiler/apt/dispatch/RoundDispatcher.java (at line 22) import javax.lang.model.element.Element; ^^ The import javax.lang cannot be resolved -- 3. ERROR in org/eclipse/jdt/internal/compiler/apt/dispatch/RoundDispatcher.java (at line 23) import javax.lang.model.element.TypeElement; ^^ The import javax.lang cannot be resolved and so on... 78 problems (78 errors) * ERROR: dev-java/eclipse-ecj-4.2.1 failed (compile phase): Are you using a complete ecj or deleting some classes? -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
Re: [patch] update ecj to ecj-3.8.2/4.2.2
Am 15.04.2013 16:02, schrieb Andrew Hughes: Are you using a complete ecj or deleting some classes? I did use what I did send in the patch, and what should be same as is in the current version of ecj.jar as distributed on gcc.gnu.org.
Re: [patch] update ecj to ecj-3.8.2/4.2.2
- Original Message - Am 15.04.2013 16:02, schrieb Andrew Hughes: Are you using a complete ecj or deleting some classes? I did use what I did send in the patch, and what should be same as is in the current version of ecj.jar as distributed on gcc.gnu.org. It's not clear from that patch what exactly is being compiled. I do see some rm calls so I suspect bits of ecj are being deleted. I'd rather we wait until the javax.lang.model work is merged and a more complete ecj can be used. -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07
Re: [patch] update ecj to ecj-3.8.2/4.2.2
- Original Message - - Original Message - From: Matthias Klose d...@ubuntu.com To: GCJ-patches java-patc...@gcc.gnu.org Cc: Jon VanAlten jon.vanal...@redhat.com, classpath@gnu.org, Tom Tromey tro...@redhat.com Sent: Monday, April 15, 2013 6:21:45 AM Subject: [patch] update ecj to ecj-3.8.2/4.2.2 It looks like this ecj is already used within the Fedora disto, however only locally patched (at least I couldn't find any mail sent to java-patches). My bad. I honestly didn't have any idea what the upstream process would be. My history in the free java world starts after openjdk/icedtea, so all the gcj fluff isn't really known well to me, and I don't really know where to look for information (pointers appreciated! :D ). So I sort of let it slip through the cracks. I did bring it up on an earlier thread[1], and it seems like by accident it also went to java-patches. Now I know for next time, if and when there is a next time. Don't feel bad, Jon. It's not your fault. I was around for the gcj fluff (perhaps wording it better would be a good idea though) and I still have no idea how this is updated, despite asking on this list at least once. And to be honest, I still don't. cheers, jon [1] http://mail.openjdk.java.net/pipermail/distro-pkg-dev/2013-March/022168.html -- Andrew :) Free Java Software Engineer Red Hat, Inc. (http://www.redhat.com) PGP Key: 248BDC07 (https://keys.indymedia.org/) Fingerprint = EC5A 1F5E C0AD 1D15 8F1F 8F91 3B96 A578 248B DC07