TROUBLE with gcj 4.1.1 for arm-wince-pe
"Craig Vanderborgh" <[email protected]>
| Newsgroups | gmane.comp.gcc.java.devel |
|---|---|
| Message-ID | <[email protected]> |
Hello and Happy New Year! I am trying to bring up gcj 4.1.1 for arm-wince-pe, using binutils 2.18.50. So far C, C++, and the binutils all seem to be working well for arm-wince-pe (Windows CE 5 and Windows Mobile 5/6). The problems I'm having are with our older libgcj. After taking a close look at libgcj/classpath 4.1.1, I decided to try to reuse our older libgcj that's derived from gcc-3.3. This version of libgcj has many fixes and enhancements we added, but more importantly - its use results in much smaller executables. Porting our old libgcj-3.3 to the new 4.1.1 toolchain was a pretty straightforward affair. Most of the compilation problems I had to fix were due to illegal access of private class members and so on. After a few days of porting work, I had our libgcj-3.3 compiling under gcj-4.1.1. Then all hell broke loose. The linked test programs (e.g. HelloWorld.java) run, but crash early on in _Jv_CreateJavaVM. An examination of the situation shows that Java classes seen from the C++ code (e.g. in prims.cc, natClassLoader.cc, natClass.cc and so on) are really messed up. In one case, with java.lang.reflect.Modifier, I observed that invoking the method Modifier.isAbstract(int) from C++ with: java::lang::reflect::Modifier::isAbstract(foo); results in an ENTIRELY DIFFERENT METHOD being invoked. It's so screwed up that I am completely lost and need some input. Is there some *elemental* reason why I can't port libgcj-3.3 to gcj-4.1.1? Do I have to change some things in the gcj 4.1.1 compiler build to do this? Where should I look? I am deadly serious about seeing this effort through to completion, please try to ease the suffering on this end if you possibly can. Thanks in advance, Craig Vanderborgh Voxware Incorporated