[ http://issues.apache.org/jira/browse/AXISCPP-533?page=history ]
Mark Whitlock closed AXISCPP-533:
---------------------------------
Resolution: Fixed
I have fixed this as suggested by or'ing in RTLD_GLOBAL to the dlopen call on
AIX and Linux. Windows and OS/400 do not pass in these flags in the same way.
> Inter shared library exception handling broken on Linux
> -------------------------------------------------------
>
> Key: AXISCPP-533
> URL: http://issues.apache.org/jira/browse/AXISCPP-533
> Project: Axis-C++
> Type: Bug
> Components: Basic Architecture
> Versions: current (nightly)
> Environment: GNU specific (as far as I know)
> Reporter: Tim Bartley
> Assignee: Mark Whitlock
>
> On Linux, actually on systems where the compiler and common libraries are g++
> and gnu and glibc, exception handling between shared libraries is broken. It
> is broken because the same class in different shared libraries is treated
> differently so that an HTTPTransportException thrown by a channel library
> does not match "catch (HTTPTransportException& e)" in the transport library.
> Refer to http://gcc.gnu.org/faq.html#dso for details.
> The fix is to load the subordinate library with RTLD_GLOBAL flag.
> As far as I know this is GNU specific but may apply to other platforms.
> It's possible that others are not seeing this because the context in which I
> am running Axis is from within an application that itself dynamically loads a
> library that depends on Axis.
> Cheers,
> Tim
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
If you want more information on JIRA, or have a bug to report see:
http://www.atlassian.com/software/jira