On Thu, Jul 15, 2010 at 4:09 PM, Kai Tietz <[email protected]> wrote:
> 2010/7/15 Ozkan Sezer <[email protected]>:
>> On Thu, Jul 15, 2010 at 3:11 PM, [email protected] <[email protected]> wrote:
>>> Hi,
>>> On 15/07/2010 9:50 PM, Kai Tietz wrote:
>>>> 2010/7/15 Kai Tietz<[email protected]>:
>>>>> 2010/7/15 [email protected]<[email protected]>:
>>>>>> Hi
>>>>>> On 15/07/2010 8:47 PM, Prof Brian Ripley wrote:
>>>>>>> We're working towards switching over to post-April snapshots, but we
>>>>>>> have 1000s of R packages to recompile.  A couple of those (so far)
>>>>>>> have thrown up header conflicts.
>>>>>>>
>>>>>>> Specifically for this report I used
>>>>>>> mingw-w64-1.0-bin_i686-mingw_20100702.zip but I first found the
>>>>>>> problem with a Linux cross-compiler snapshot. This is a distillation
>>>>>>> of a very much more complex issue involving BOOST headers.
>>>>>>>
>>>>>>> If I compile the two-line C++ file test.cpp
>>>>>>>
>>>>>>> #include<process.h>
>>>>>>> #include<cstdlib>
>>>>>>>
>>>>>>> with x86_64-w64-mingw32-g++ -c test.cpp I get
>>>>>>>
>>>>>>> In file included from test.cpp:2:0:
>>>>>>> e:/r/w64/gcc-4.5.1/lib/gcc/../../x86_64-w64-mingw32/include/c++/4.5.1/cstdlib:166:11:
>>>>>>> error: '::_Exit' has not been declared
>>>>>>> e:/r/w64/gcc-4.5.1/lib/gcc/../../x86_64-w64-mingw32/include/c++/4.5.1/cstdlib:204:22:
>>>>>>> error: '__gnu_cxx::_Exit' has not been declared
>>>>>>>
>>>>>>> This code works in the 20100405 snapshot (of 4.4.4).  I have a simple
>>>>>>> workaround (#include<cstdlib>    at the top of the affected files), but
>>>>>>> the code concerned is not mine and I don't believe that should be
>>>>>>> necessary.  The conflict is caused by this block of code
>>>>>>>
>>>>>>> #ifndef _CRT_TERMINATE_DEFINED
>>>>>>> #define _CRT_TERMINATE_DEFINED
>>>>>>>      void __cdecl __MINGW_NOTHROW exit(int _Code) 
>>>>>>> __MINGW_ATTRIB_NORETURN;
>>>>>>>      _CRTIMP void __cdecl __MINGW_NOTHROW _exit(int _Code) 
>>>>>>> __MINGW_ATTRIB_NORETURN;
>>>>>>>
>>>>>>> #pragma push_macro("abort")
>>>>>>> #undef abort
>>>>>>>      void __cdecl __declspec(noreturn) abort(void);
>>>>>>> #pragma pop_macro("abort")
>>>>>>>
>>>>>>> #endif
>>>>>>>
>>>>>>> I'd welcome advice about the correct fix here.
>>>>>>>
>>>>>>> Brian Ripley
>>>>>>>
>>>>>>
>>>>>> I think if you build your own compiler and then you do --disable-c99
>>>>>> this problem will go away but the issue probably isn't there just
>>>>>> because of c99 enabled.
>>>>>> I have encountered this issue on another level of software where this
>>>>>> can be a header inclusion order problem or C99 get enabled problem.
>>>>>> I was investigating such compile problem and found that
>>>>>> incompatibilities when c99 enabled when you include C headers in mixed
>>>>>> fashion with C++ headers this problem tends to occur.
>>>>>> However, it can be simply work-around problem, or alternatively you can
>>>>>> disable-c99.
>>>>>> But it seems you're using the compiler by the buildbot...
>>>>>> Maybe someone else can shed more light on this issue.
>>>>>>
>>>>>> ------------------------------------------------------------------------------
>>>>>> This SF.net email is sponsored by Sprint
>>>>>> What will you do first with EVO, the first 4G phone?
>>>>>> Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
>>>>>> _______________________________________________
>>>>>> Mingw-w64-public mailing list
>>>>>> [email protected]
>>>>>> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>>>>>>
>>>>>
>>>>> The issue is in libstdc++ headers. Here the _Exit doesn't get (as
>>>>> other runtime functions of stdlib.h) no put into std:: namespace. So
>>>>> this is an issue to be address to gcc bugzilla. AFAIR there is already
>>>>> a report for it, but I am not sure.
>>>>> I don't see here a good solution for this to fix this in our headers,
>>>>> but maybe someone of you have an idea how to solve it on our site.
>>>>>
>>>>> Regards,
>>>>> Kai
>>>>>
>>>>> --
>>>>> |  (\_/) This is Bunny. Copy and paste
>>>>> | (='.'=) Bunny into your signature to help
>>>>> | (")_(") him gain world domination
>>>>>
>>>>
>>>> I see the issue in our headers. I prepare a fix for it soon. It would
>>>> be nice if you could test the patch, if it fixes your problem
>>>> (Committed at revision 2837 to trunk).
>>>>
>>>> Thanks for reporting it,
>>>> Kai
>>>>
>>>
>>> Kai:
>>> Thanks for the hot patch at revision 2837
>>> I tried the patched headers and tried to compile the affected software
>>> library again! This time it compiles successfully!
>>> Great! Now no more need to work around it.
>>>
>>> Best Regards
>>
>> Kai, can you apply the fix to 1.0 branch, too? (Or sholud I do it?)
>>
>> --
>> Ozkan
>>
>
> Feel free to merge it into 1.0. Sorry, I am at office at the moment
> and pretty busy. I can do this not before evening.
>
> Cheers,
> Kai
>
> --
> |  (\_/) This is Bunny. Copy and paste
> | (='.'=) Bunny into your signature to help
> | (")_(") him gain world domination
>

Merged back to v1.0 branch at rev. 2839.

--
Ozkan

------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Mingw-w64-public mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to