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