OpenJDK b33 and IcedTea
Andrew John Hughes
gnu_andrew at member.fsf.org
Mon Aug 25 23:46:00 UTC 2008
On 25/08/2008, Andrew John Hughes <gnu_andrew at member.fsf.org> wrote:
> IcedTea b33 appears to fix the CORBA issue I found with b32, so I've
> moved straight to working on that rather than b32. However, there are
> again a number of issues building this in IcedTea and I haven't
> managed to overcome the latest as yet.
> So far:
> * A number of the AWT classes started using @Override for interface
> methods. Most versions of ecj don't support this so I've extended the
> icedtea-override.patch to remove these.
> * To avoid the issues seen on this list with various /bin/sh
> substitutes, the NIO generator seems to have been replaced with a Java
> version instead. This Java version as packaged in b33 won't work with
> Classpath-based solutions like GCJ due to two issues: the use of
> java.util.Scanner (only added to Classpath in the last week) and a bug
> in java.util.regex.Matcher. Current CVS Classpath (which hopefully
> will soon become 0.98) should be able to work with the vanilla version
> but earlier version will need the fixes now in icedtea-ecj.patch.
> I'm currently stuck on this strange issue whereby
> sun_java2d_opengl_OGLContext_OGLContextCaps.h is not being generated.
> Has anyone else seen this? To try for yourself, you can get a b33
> IcedTea from http://fuseyism.com/hg/icedtea.
> Andrew :-)
> Support Free Java!
> Contribute to GNU Classpath and the OpenJDK
> PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
> Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8
Further on this, with Mark's help via IRC, I made the following
additions to icedtea-ecj.patch:
+++ openjdk-ecj/jdk/make/common/Rules.gmk 2008-08-26 00:30:58.000000000 +0100
- +- $(CLASSES.export) $(subst $$,\$$,$(EXPORTED_inner))
+ $(foreach innerclass,$(subst $$,\$$,$(EXPORTED_inner)), \
+ $(JAVAH_CMD) \
+ -o $(CLASSHDRDIR)/$(subst .,_,$(subst \$$,_,$(innerclass))).h \
+++ openjdk-ecj/jdk/make/sun/awt/FILES_export_unix.gmk 2008-08-25
@@ -223,3 +223,5 @@
+EXPORTED_inner = \
The first change generally gets round the ambiguity in the naming of
header files generated from inner classes by explicitly specifying an
output file name for members of EXPORTED_inner. By default, gjavah
keeps the $ in the filename, while javah replaces it with _ -- neither
behaviour is formally specified.
The second more specific change adds
sun.java2d.opengl.OGLContext$OGLContextCaps to EXPORTED_inner as it
doesn't seem to be added and thus generated at all, even with the
wrong output name.
There's still an issue; the build can now find the header but javah
and gjavah appear to name them differently:
undeclared (first use in this function)
gjavah only generates a subset and encodes them wrongly:
#define sun_java2d_opengl_OGLContext_00024OGLContextCaps_CAPS_STORED_ALPHA 2L
Again, the latest IcedTea version is at http://fuseyism.com/hg/icedtea.
Support Free Java!
Contribute to GNU Classpath and the OpenJDK
PGP Key: 94EFD9D8 (http://subkeys.pgp.net)
Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8
More information about the build-dev