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 "Samisa Abeysinghe (JIRA)" <ji...@apache.org> on 2010/03/04 15:51:27 UTC

[jira] Commented: (AXIS2C-1441) [AIX] util/include/axutil_utils_defines.h should not map AXIS2_CALL to __stdcall on non-Windows platforms

    [ https://issues.apache.org/jira/browse/AXIS2C-1441?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12841307#action_12841307 ] 

Samisa Abeysinghe commented on AXIS2C-1441:
-------------------------------------------

This issue occurs because we have not tested on AIX ever before.  So __stdcall  defaults for Windows. 

We got to test with both Linux and Windows before applying the patch 

> [AIX] util/include/axutil_utils_defines.h should not map AXIS2_CALL to __stdcall on non-Windows platforms
> ---------------------------------------------------------------------------------------------------------
>
>                 Key: AXIS2C-1441
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1441
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: guththila, platforms/unix, util
>    Affects Versions: 1.6.0, 1.7.0, Current (Nightly)
>         Environment: AIX 5.2 ; Visual Age C++ 6.0 ; Insure++ 7.1
>            Reporter: Olivier Mengué
>             Fix For: 1.7.0
>
>         Attachments: AXIS2C-1441.patch
>
>
> __stdcall is a Microsoft specific keyword that should be used only for Win32 builds.
> (reference: http://msdn.microsoft.com/en-us/library/zxk0tw93%28VS.80%29.aspx )
>  However util/include/axutil_utils_defines.h contains this code:
> ========================================
> #if defined(__GNUC__)
> #if defined(__i386)
> #define AXIS2_CALL __attribute__((cdecl))
> #define AXIS2_WUR __attribute__((warn_unused_result))
> #else
> #define AXIS2_CALL
> #define AXIS2_WUR
> #endif
> #else
> #if defined(__unix)
> #define AXIS2_CALL
> #define AXIS2_WUR
> #else                           /* WIN32 */
> #define AXIS2_CALL __stdcall
> #define AXIS2_WUR
> #endif
> #endif
> ========================================
> On AIX platforms, the C preprocessor doesn't have the __unix define and Insure++ doesn't know the __stdcall keyword.
> So this makes Insure++ fail to compile such function variable declaration as AXIS2_CALL is mapped to __stdcall:
> ========================================
>     void *(
>         AXIS2_CALL
>         * my_fn)();
> ========================================

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: c-dev-unsubscribe@axis.apache.org
For additional commands, e-mail: c-dev-help@axis.apache.org