To self-reply and top post, I got rid of the dynamic header type #f not handled warnings by omitting rpath in the library. Still crash on throw though.
On 10/22/13 11:46 AM, "Carl Wallace" <[email protected]> wrote: >I am continuing my effort to get exception handling working with an >external library. Here's a summary of current status. Any help is >welcome. > >I have a restartless extension (.xpi file) that installs modutil, pcscd >and coolkey. The modutil utility is from the Fennec build, the other two >are external to the Mozilla build. The extension may need to be a >non-restartless extension ultimately but for now it is restartless. The >rough actions performed by the extension are as follows: > >1) Copy binaries and a few library files to fennec/bin. I could not run >the binaries from the folder within the extension but execution from a >newly created bin folder works fine. The extension also sets up folders >and copies configuration files required by pcscd. >2) During installation the extension starts pcscd and uses modutil to >register an sdcard with the NSS store used by Fennec during the >installation. Exceptions are thrown and caught successfully during this >registration. >3) During browser start-up, the extension starts pcscd and adds the bin >folder to LD_LIBRARY_PATH. >4) When browsing to a page that requires TLS client authentication, the >browser loads the coolkey library which interacts with the pcscd service. >A PIN prompt is displayed then the application crashes when an exception >is thrown inside the coolkey library. > >The exception is part of a throw/catch I added to libcoolkey to make sure >I always hit an exception until this is resolved. The libcoolkey library >is linked against gnustl_shared. The .so is installed by the extension. >I know this .so is loaded as the behavior when I move the .so file is >different (I am not prompted for a PIN and the browsers continues to an >error page displayed by the server). Initially I was using NDK n8e but >have also tried with n9. > >I noticed the following warnings in logcat shortly before a crash: > > E GeckoLinker: >/data/data/org.mozilla.fennec_cwallace/bin/libcoolkeypk11.so: Warning: >dynamic header type #f not handled > E GeckoLinker: >/data/data/org.mozilla.fennec_cwallace/bin/libcoolkeypk11.so: Warning: >unhandled flags #8 not handled > > >Several NSS libraries also generate the unhandled flags warning, but the >dynamic header type warning only appears for the library that is causing >the crash. Are these warnings problematic? It seems strange that >exceptions are thrown/caught when the library is loaded by modutil, but >not when loaded by the browser. > >I have tried using gnustl and stlport in both static and shared forms. >When using stlport (static or shared), the coolkey library cannot be >loaded with the following error: > > "Cannot load library: reloc_library[1310]: 5237 cannot locate >'_ZNSsD1Ev'? > >As above, I confirmed the shared version of stlport is being used by >moving the library and observing a different error. Unlike the gnustl >behavior, I am unable to load libcoolkey into modutil when it is linked >against stlport. > > _______________________________________________ mobile-firefox-dev mailing list [email protected] https://mail.mozilla.org/listinfo/mobile-firefox-dev

