On 7/26/14, Stephen Kitt <li...@sk2.org> wrote:
> Hi Rafaël,
>
> On Sat, 26 Jul 2014 12:52:44 +0200, Rafaël Carré <fun...@videolan.org>
> wrote:
>> On 07/21/14 23:21, Stephen Kitt wrote:
>> >    * Merge upstream implementation of strtok_r, so it's available on
>> >      Windows XP. Thanks to Gianluigi Tiesi for pointing out the
>> > problem,
>> >      and to Jonathan Young for pointing out that he'd fixed it
>> > upstream.
>> >      (Closes: #755448.)
>>
>> This change breaks VLC, as the strtok_r prototype is not available
>> anymore.
>>
>> According to:
>> http://anonscm.debian.org/gitweb/?p=collab-maint/mingw-w64.git;a=blobdiff;f=debian/patches/strtok_r.patch;h=95e4b5e974f19b5725ad3bd349ac74ec6b2d994d;hp=c4aa476dd10754657fe752ee1aeab9cfa4871a83;hb=8625b8bcfd8a66d92ddbb76391e25ddf9e077857;hpb=362f462455a593a5316c72fdf39dc6df342b3da5
>> the prototype is only defined under the condition:
>> #if defined (_SVID_SOURCE) || defined (_BSD_SOURCE) || (_POSIX_C_SOURCE
>> >= 1) || defined(_XOPEN_SOURCE) || defined (_POSIX_SOURCE)
>
> This condition perfectly matches the glibc strtok_r documentation (see
> http://man7.org/linux/man-pages/man3/strtok.3.html for example or your
> local
> glibc documentation). But POSIX doesn't specify any conditions (see
> http://pubs.opengroup.org/onlinepubs/009695399/functions/strtok.html for
> details).
>
>> However autoconf defines neither of these, but only _GNU_SOURCE
>>
>> glibc's features.h defines all the above features if _GNU_SOURCE is
>> defined,
>> but mingw-w64 does not.
>
> I'm not sure it makes sense for mingw-w64 to support _GNU_SOURCE, because
> _GNU_SOURCE requests GNU extensions, which aren't available in the
> Microsoft
> runtime. (One could argue that this could be used to request GNU-compatible
> extensions provided by mingw-w64 of course...)
>
>> I suggest removing the ifdef altogether, as strtok_r will always be
>> available.
>
> Strictly speaking, VLC should define one of the relevant _SOURCE macros
> (beyond _GNU_SOURCE) to conform to the glibc documentation (on glibc
> platforms), and that would fix the problem as a side-effect on mingw-w64.
> But
> I agree with you, removing the ifdef in mingw-w64 should be fine and would
> also fix the problem...

My vote goes for removing the condition altogether and making
the prototype always available please.

--
O.S.

------------------------------------------------------------------------------
Want fast and easy access to all the code in your enterprise? Index and
search up to 200,000 lines of code with a free copy of Black Duck
Code Sight - the same software that powers the world's largest code
search on Ohloh, the Black Duck Open Hub! Try it now.
http://p.sf.net/sfu/bds
_______________________________________________
Mingw-w64-public mailing list
Mingw-w64-public@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/mingw-w64-public

Reply via email to