JFYI, could not find it in an overlay of yours
Bump (as requested by Betelgeuse) AfC
*** Bug 183120 has been marked as a duplicate of this bug. ***
Created attachment 134996 [details] Ebuild for 0.96.1 Ebuild for 0.96.1, tested on ppc64.
Andrew, I tried this manually and couldn't get it to work. A discussion on #classpath revealed that classpath was not tested with Sun Java 1.5 (this blew my mind, but anyway) and it is not supported. So... what DID you build this with? For whatever reason configure doesn't pick up the ecj installed on my system. I even tried hacking the ebuild to force it using --with-ecj and --with-ecj-jar= and it ignored it. AfC
I've built this on both ppc64 with the OpenJDK javac and on x86_64 with JDK 6. The latter found an issue with the gstreamer peer being built and the gconf peer not being built (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=33982) but this has been fixed. I just need to get hold of the patch file so I can include it with this build. I saw this discussion on #classpath (just missed it actually). I've seen the same 1.5 failure and I couldn't see a way of fixing it (though I'll have another look). The code works with 1.6 and ecj, so it looks like a bug in 1.5's javac, but hopefully we can work round it. It only occurred since EnumSet was changed by dalibor in 0.96. As to ecj not working, it looks for a binary on the path called 'ecj'. I know on mine this doesn't work because my script to run ecj is in my local bin directory and emerge is running as root. If you have a system wide script for it (which Gentoo doesn't include as far as I can tell), then it will run. The JAR option is actually unrelated. It's used to build the com.sun.tools.javac.Main wrapper and was added afterwards I guess. I should be able to patch this though so that it can actually run ecj using that JAR file instead if --with-ecj is specified. I'm actually think having both ecj and javac options is a bit confusing but I guess it's related to ecj being installed on a lot of distributions and using more options to execute it. FWIW, he --with-javac option will take anything so you should be able to specify something like 'java -mx384M -cp ecj.jar org.eclipse.jdt.internal.compiler.batch.Main' ironically enough.
(In reply to comment #5) > > As to ecj not working, it looks for a binary on the path called 'ecj'. I know > on mine this doesn't work because my script to run ecj is in my local bin > directory and emerge is running as root. If you have a system wide script for > it (which Gentoo doesn't include as far as I can tell), then it will run. The > JAR option is actually unrelated. We do install it. It's just versioned to avoid collisions: betelgeuse@pena ~ $ qlist ecj|grep bin /usr/bin/ecj-3.2 /usr/bin/ecj-3.3 You should be able to give this as an argument to configure. It wouldn't be a bad idea to /usr/bin/ecj of course.
Yes, we can easily pass that to configure as part of the ebuild but is there a way to work out which one (if any) the user has installed?
(In reply to comment #7) > Yes, we can easily pass that to configure as part of the ebuild but is there a > way to work out which one (if any) the user has installed? > You depend on one slot and use that one.
In the long run, we really need a /usr/bin/ecj alternative for this then.
Created attachment 138241 [details, diff] Ebuild for 0.96.1 with Mario's patch and ecj 3.2
Created attachment 138243 [details, diff] Patch to fix PR33982 (building without gconf but with gstreamer)
This new version should use ecj 3.2 and also includes the build fix (PR33982) relating to GConf/GStreamer. Can someone please test? Thanks.
I couldn't get this to compile as the java compiler runs out of memory in its VM. I have created a patch to fix this though, which upstream say works on javac but possibly not ecj.
Created attachment 144276 [details, diff] Makes the VM used by javac larger
BUMP -- new version 0.97 released Stephen, the new release should solve the memory issues for any compiler that will take the -J option. javac will work fine with this on 0.96.1 as well, but not ecj (as we tested separately). ecj ignores the -J option so it has to be passed in your script to run ecj. A proper javac wrapper should do this. Let me know if issues remain with this.
Created attachment 144668 [details] 0.97 ebuild
(In reply to comment #16) > Created an attachment (id=144668) [edit] > 0.97 ebuild > * Applying pr33982.diff ... * Failed Patch: pr33982.diff ! * ( /usr/portage/dev-java/gnu-classpath/files/pr33982.diff ) Is this needed?
version bump committed with fixes for dependencies etc