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

Reply via email to