On 25/08/2008, Andrew John Hughes <[EMAIL PROTECTED]> 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. > > Cheers, > -- > Andrew :-) > > Support Free Java! > Contribute to GNU Classpath and the OpenJDK > http://www.gnu.org/software/classpath > http://openjdk.java.net > > 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)) + $(CLASSES.export) + $(foreach innerclass,$(subst $$,\$$,$(EXPORTED_inner)), \ + $(JAVAH_CMD) \ + -o $(CLASSHDRDIR)/$(subst .,_,$(subst \$$,_,$(innerclass))).h \ + $(innerclass)) +++ openjdk-ecj/jdk/make/sun/awt/FILES_export_unix.gmk 2008-08-25 3:13:37.000000000 +0100 @@ -223,3 +223,5 @@ sun/awt/CausedFocusEvent.java \ sun/awt/motif/MEmbedCanvasPeer.java +EXPORTED_inner = \ + sun.java2d.opengl.OGLContext$$OGLContextCaps 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: ../../../src/share/native/sun/java2d/opengl/OGLContext.c:855: error: 'sun_java2d_opengl_OGLContext_OGLContextCaps_CAPS_TEXNONSQUARE' 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. -- Andrew :-) Support Free Java! Contribute to GNU Classpath and the OpenJDK http://www.gnu.org/software/classpath http://openjdk.java.net PGP Key: 94EFD9D8 (http://subkeys.pgp.net) Fingerprint: F8EF F1EA 401E 2E60 15FA 7927 142C 2591 94EF D9D8