[ 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

Reply via email to