has anyone succeeded with gcc 4.x.x on Linux ?
I'm making an attempt with Fedora Core 5 (GCC 4.1.1). Right now I'm running into the same problems that others have posted about, but I'm not giving up easily... Hopefully I'll have a good bunch of time this week to put into getting this working.
I'll post if I have any success.
I have Jace building and creating proxy classes that cleanly compile under GCC 4.1.1. The only modification I needed to make to the Jace source (aside from those listed in the bugs section) was to clean up the "template <> inline jobject java_cast<jobject>" in javacast.h/tsd/tsp. The inlined template needed to be in the header file, not in the template specialization header files. I haven't yet had the opportunity to unit test my built code on the Linux machine, so I know it builds... not necessarily that it runs.
I have been struggling with this for some time now. First, do the examples compile and run with gcc 4.1.x? Second, is there a summary somewhere regarding how to take the current release to a state with all bug fixes and enhancements included?
Thanx for you help,
I can't answer the question about the examples on Linux, but I put together an archive of the files I'm patching for my builds <a href="http://www.greenlightlabs.com/jace">here</a>.
With these changes, my application is currently building with VS2005, G++ 4.1.1 (FC5), and Intel's ICC 9.1.037. Unfortunately, my build files are highly integrated with my application, so it'd be quite a bit of work to separate them. However, I'm not doing much on the g++ command line aside from the "-fPIC" option. For VS2005, I'm setting some preprocessor compiler options: "WIN32;_LIB;JACE_EXPORTS;_CRT_SECURE_NO_DEPRECATE".
I now have my Jace-based application running in RHEL4. I ran into one additional issue related to pthreads that I hacked around for now. I'm working on the 'right' fix, but in the meantime you'll need to explicitly call jace::helper::onProcessCreation immediately after the jace::helper::createVm and jace::helper::getJavaVM calls. Without this call, the JavaVM will SEGFAULT due to the classLoader being uninititlized.