C++ library dependencies not provided
On linux, When attempting to wrap Oracle's 32-bit java plugin JRE version 1.6.0.24 (aka libnpjp2.so), nspluginwrapper reports a missing dependency (__gxx_personality_vo). The problem arises because the plugin expects the standard C++ runtime library to be loaded (stdlibc++.so). This problem could arise with other plugins as well.
It is worth noting that this patch will permit users to run the popular WebEx meeting client on 64-bit browsers. This client requires native 32-bit libraries on linux, and therefore will not run on a 64-bit JVM.
With the following patch, nspluginwrapper will create a wrapper for 32 bit Java without complaint. The JRE appears to execute correctly. My only discomfort with it is that I have hard-coded version 6 of the standard C++ library. It may be more appropriate to allow the most recent version to be selected.
--- npw-viewer.c 2011-06-30 23:18:57.000000000 -0400
+++ nspluginwrapper-1.4.4/src/npw-viewer.c 2012-03-11 14:09:35.104158681 -0400
@@ -5128,6 +5128,17 @@
}
handles[n_handles++] = handle;
dlerror();
+#else
+ /* Install libstdc++ for java */
+ const char libstcpp[] = "libstdc++.so.6";
+ D(bug(" trying to open standard C++ runtime '%s'\n", libstcpp ));
+ if ((handle = dlopen(libstcpp, RTLD_LAZY|RTLD_GLOBAL)) == NULL) {
+ npw_printf("ERROR: %s\n", dlerror());
+ return 1;
+ }
+ handles[n_handles++] = handle;
+ dlerror();
+
#endif
D(bug(" %s\n", plugin_path));
if ((handle = dlopen(plugin_path, RTLD_LAZY)) == NULL) {