Modify

Ticket #6841 (closed Bugs: fixed)

Opened 2 years ago

Last modified 22 months ago

Are __cdecl and __stdcall ambiguous in CE?

Reported by: viboes Owned by: igaztanaga
Milestone: To Be Determined Component: intrusive
Version: Boost 1.49.0 Severity: Problem
Keywords: wince Cc:

Description

It seems that cdecl and stdcall are the same in this platform.

Test output: VeecoFTC - thread - container__thread_vector_p_lib / msvc-9.0~wm5~stlport5.2
Rev 78187 / Wed, 25 Apr 2012 04:24:15 +0000
Report Time: Fri, 27 Apr 2012 20:28:57 +0000

Compile [2012-04-26 12:54:33 UTC]: fail

    call "%BOOST_ROOT%/TestTools/VSVars32-VC9-WM5.bat" x86 >nul
cl /Zm800 -nologo @"D:\BoostRT\results\boost\bin.v2\libs\thread\test\container__thread_vector_p_lib.test\msvc-9.0~wm5~stlport5.2\debug\stdlib-stlport-5.2~evc9~arm\threads\container\thread_vector_pass.obj.rsp" 

thread_vector_pass.cpp
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\winnt.h(384) : warning C4201: nonstandard extension used : nameless struct/union
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\winnt.h(403) : warning C4201: nonstandard extension used : nameless struct/union
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\winnt.h(6041) : warning C4201: nonstandard extension used : nameless struct/union
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\winnt.h(6050) : warning C4201: nonstandard extension used : nameless struct/union
C:\Program Files\Windows CE Tools\wce500\Windows Mobile 5.0 Pocket PC SDK\include\ARMV4I\winbase.h(1139) : warning C4201: nonstandard extension used : nameless struct/union
D:\BoostRT\boost\boost/thread/win32/thread_primitives.hpp(389) : warning C4127: conditional expression is constant
D:\BoostRT\boost\boost/thread/win32/thread_primitives.hpp(406) : warning C4127: conditional expression is constant
D:\BoostRT\boost\boost/intrusive/detail/mpl.hpp(165) : error C2953: 'boost::intrusive::detail::is_unary_or_binary_function_impl<R(__cdecl *)(void)>' : class template has already been defined
        D:\BoostRT\boost\boost/intrusive/detail/mpl.hpp(157) : see declaration of 'boost::intrusive::detail::is_unary_or_binary_function_impl<R(__cdecl *)(void)>'
D:\BoostRT\boost\boost/intrusive/detail/mpl.hpp(197) : error C2953: 'boost::intrusive::detail::is_unary_or_binary_function_impl<R(__cdecl *)(T0)>' : class template has already been defined
        D:\BoostRT\boost\boost/intrusive/detail/mpl.hpp(189) : see declaration of 'boost::intrusive::detail::is_unary_or_binary_function_impl<R(__cdecl *)(T0)>'
D:\BoostRT\boost\boost/intrusive/detail/mpl.hpp(229) : error C2953: 'boost::intrusive::detail::is_unary_or_binary_function_impl<R(__cdecl *)(T0,T1)>' : class template has already been defined
        D:\BoostRT\boost\boost/intrusive/detail/mpl.hpp(221) : see declaration of 'boost::intrusive::detail::is_unary_or_binary_function_impl<R(__cdecl *)(T0,T1)>'

Attachments

boost-intrusive-mpl.hpp.patch Download (437 bytes) - added by davedeakins 2 years ago.
patch to adjust mpl.hpp

Change History

comment:1 Changed 2 years ago by Ulrich Eckhardt <ulrich.eckhardt@…>

  • Keywords wince added

If you peek around the Windows CE headers, you will find that one is #defined to the other. I remember that you can use those before the according headers are included, which can mess things up if you have code like this (from the top of my head, not actually compiled):

    int __cdecl foo();
    #include <windows.h>
    int __cdecl foo()
    { return 42; }

BTW: I see that you are currently trying to take care of the CE port. If you add the "wince" keyword, all those tickets are easier to find. I also need a CE port, but I'm currently swamped with other work, so at best I can watch what's going on and try to help out.

comment:2 Changed 2 years ago by davedeakins

I actually had a little bit of time to look at this and built the attached simple patch for mpl.hpp. After applying it, nearly all of the intrusive tests seem pass without issue on WinCE.

Changed 2 years ago by davedeakins

patch to adjust mpl.hpp

comment:3 Changed 22 months ago by igaztanaga

  • Status changed from new to closed
  • Resolution set to fixed

Fixed at revision 78474 in trunk

View

Add a comment

Modify Ticket

Change Properties
<Author field>
Action
as closed
The resolution will be deleted. Next status will be 'reopened'
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.