[FFmpeg-devel] [PATCH v2 1/1] configure: Refactor setting of feature test macro _XOPEN_SOURCE

Hendrik Leppkes h.leppkes at gmail.com
Fri Sep 19 13:05:50 CEST 2014

On Thu, Sep 18, 2014 at 8:24 PM, Jörg Krause <jkrause at posteo.de> wrote:

> On 09/18/2014 07:10 PM, Reimar Döffinger wrote:
>> On 18.09.2014, at 17:26, Michael Niedermayer <michaelni at gmx.at> wrote:
>>> On Thu, Sep 18, 2014 at 04:22:27PM +0200, Jörg Krause wrote:
>>>> glibc, uclibc, and musl uses feature test macros to expose definitions
>>>> conforming to the standards ISO C, POSIX and extensions. According to
>>>> which feature test macros are defined by the user or the compiler,
>>>> the header file <features.h> used by these libraries internally defines
>>>> various other macros.
>>>> glibc and uclibc also defines release test macros, eg __GLIBC__ and
>>>> __UCLIBC__ in <features.h>. musl does not have (and do not want) such
>>>> a macro like __MUSL__.
>>>> Building ffmpeg with the musl toolchain needs the feature test macro
>>>> _XOPEN_SOURCE=600 to be defined. As it is not possible to detect musl
>>>> check for the <features.h> header file, which is assumed to be specific
>>>> to glibc, uclibc, and musl.
>>>> Signed-off-by: Jörg Krause <jkrause at posteo.de>
>>>> ---
>>>> Changes  v1 -> v2:
>>>>   - do not set _XOPEN_SOURCE twice for glibc and uclibc
>>> why do you not add the musl check at the end of the if/elif chain as
>>> suggested ?
>>> does that have some issue or problem ?
>>> now your patch removes POSIX_C_SOURCE=200112 for glibc & uclibc
>>> maybe thats ok, maybe its not but it certainly doesnt belong in a
>>> patch that adds musl support
>>> If you think this change is desireable, please submit a seperate
>>> patch
>> May I suggest to change configure to always add these (POSIX_C_SOURCE and
>> _XOPEN_SOURCE) and we just remove them specifically for cases that cause
>> issues?
>> And this time _document_ why we even have these hacks.
>> Because as it it's impossible to know if all those special case are there
>> for a reason or if they only exist because it's fun and nicely obfuscates
>> configure.
> LGTM. I also discussed with the people at the musl mailing list and this
> was their opinion to. First define the default and then add the hacks.
libav has also been working on this particular issue, and they are just
adding _DEFAULT_SOURCE to the defines if the specific libc is unknown.
Would that work?

- Hendrik

More information about the ffmpeg-devel mailing list