A GCC maintainer has spoken up and said they will accept a patch to
rename __in and __out to other things:

https://gcc.gnu.org/ml/gcc-help/2017-05/msg00152.html

As soon as I have a bit of free time, I will submit such a patch to
them, though LH_Mouse might beat me to it.

So in the long term, we can have __in and  __out, and we can have
compatibility with libstdc++v3.  I'd rather not change mingw-w64.

In the MSYS2 project, we've already dealt with this issue by
generating a patch for libstdc++v3 using this command I put together:

    sed -ri 's/\b(__in|__out)\b/_&/g' $(egrep -rl '\b(__in|__out)\b'
libstdc++-v3/{include,config})

If you are compiling your own mingw-w64 toolchain, you should be
capable of just running that line of code before building GCC to fix
the name collision.

If you are a user who is using a broken mingw-w64 toolchain, you
should tell the people who built it about the line above, but in the
meantime, you can edit driverspecs.h with a text editor and uncomment
the lines that define __in and __out.

So I think the status quo is totally fine.

But if we do change mingw-w64, I can revert your change in my builds,
and that works too, and it's just as easy as getting other toolchain
builders to run the sed command.  If we do change mingw-w64, what
would be the timeline for reverting that change?  Would we wait until
the offending versions of libstdc++ have been replaced by fixed stable
for versions for, say, 5 years?

--David Grayson

On Wed, May 17, 2017 at 6:18 AM, Mateusz <mateu...@poczta.onet.pl> wrote:
> W dniu 2017-05-17 o 13:10, Kai Tietz pisze:
>> Hello,
>>
>> I dislike such a change.  As if somebody wants to driverspec.h, op
>> will need these symbols defined.  Otherwise build will badly fail.
>> So this brings us back to the reasoning of this ... adding to
>> specstrings.h the include of driverspecs.h.  IMHO this shouldn't be
>> done always.  The best solution would be something like to include
>> driverspecs.h in specstring.h only, if user intends to use ddk.
>> Otherwise we shouldn't include this header at all.
>>
>> Any thoughts?
>>
>> Regards,
>> Kai
>
> We could roll back commit [b7f44b].
>
> Now there are new commits and this should be fixed.
>
> Mateusz
>
>
>
>>
>>
>> 2017-05-17 12:34 GMT+02:00 Mateusz <mateu...@poczta.onet.pl>:
>>> We really should do something with '__in' and '__out' from driverspecs.h.
>>>
>>> Please review.
>>>
>>>
>>> ------------------------------------------------------------------------------
>>> Check out the vibrant tech community on one of the world's most
>>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>>> _______________________________________________
>>> Mingw-w64-public mailing list
>>> Mingw-w64-public@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>>>
>>
>> ------------------------------------------------------------------------------
>> Check out the vibrant tech community on one of the world's most
>> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
>> _______________________________________________
>> Mingw-w64-public mailing list
>> Mingw-w64-public@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public
>>
>
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, Slashdot.org! http://sdm.link/slashdot
> _______________________________________________
> Mingw-w64-public mailing list
> Mingw-w64-public@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to