You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Mark Whitlock (JIRA)" <ax...@ws.apache.org> on 2005/03/16 13:33:20 UTC

[jira] Closed: (AXISCPP-533) Inter shared library exception handling broken on Linux

     [ 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