So I've been fighting with getting OpenNMS working off-and-on since the first release of a developer's 1.4.1 JDK. I finally got it mostly working a couple weeks ago, but I was getting weird crashes from the JDK after startup. OpenNMS uses JNI to talk to RRDTool for creating graphs of network data.

I chalked it up to it being a developer release, so when the new JDK came out, I tried again, with the same results. After a bunch of digging, and a post to the java developer's list, I found out the problem is, in fact, that RRDTool uses the gnu getopt (like many packages), so that it can use getopt_long. Since libSystem also contains a getopt, unless you build with twolevel namespaces, you're at the mercy of whatever symbol dyld happens to give you. If you do something that triggers getopt_long, it could go boom.

In the case of the JDK (and probably other stuff), it wants twolevel namespaces so that it can separate things from the VM. When it doesn't get them, it picks the wrong symbol, and RRDTool blows up the VM.

So please, if you've run into issues of things that needed twolevel namespaces, tell the libtool folks. It's only going to get more ugly as time goes on... :P



-------------------------------------------------------
This SF.NET email is sponsored by:
SourceForge Enterprise Edition + IBM + LinuxWorld = Something 2 See!
http://www.vasoftware.com
_______________________________________________
Fink-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/fink-devel

Reply via email to