[FFmpeg-devel] [PATCH] configure: check if dlfcn.h is present for ladspa and frei0r, if not abort early

James Almer jamrial at gmail.com
Sun Dec 2 21:10:09 EET 2018


On 12/2/2018 4:07 PM, Paul B Mahol wrote:
> On 12/2/18, James Almer <jamrial at gmail.com> wrote:
>> On 12/2/2018 3:53 PM, Paul B Mahol wrote:
>>> On 12/2/18, James Almer <jamrial at gmail.com> wrote:
>>>> On 12/2/2018 2:51 PM, Paul B Mahol wrote:
>>>>> Fixes #4517.
>>>>>
>>>>> Signed-off-by: Paul B Mahol <onemda at gmail.com>
>>>>> ---
>>>>>  configure | 4 ++--
>>>>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/configure b/configure
>>>>> index 2af6c0d797..7c55274efa 100755
>>>>> --- a/configure
>>>>> +++ b/configure
>>>>> @@ -6065,11 +6065,11 @@ enabled chromaprint       && require chromaprint
>>>>> chromaprint.h chromaprint_get_v
>>>>>  enabled decklink          && { require_headers DeckLinkAPI.h &&
>>>>>                                 { test_cpp_condition
>>>>> DeckLinkAPIVersion.h
>>>>> "BLACKMAGIC_DECKLINK_API_VERSION >= 0x0a090500" || die "ERROR: Decklink
>>>>> API version must be >= 10.9.5."; } }
>>>>>  enabled libndi_newtek     && require_headers Processing.NDI.Lib.h
>>>>> -enabled frei0r            && require_headers frei0r.h
>>>>> +enabled frei0r            && require_headers frei0r.h &&
>>>>> require_headers
>>>>> dlfcn.h
>>>>>  enabled gmp               && require gmp gmp.h mpz_export -lgmp
>>>>>  enabled gnutls            && require_pkg_config gnutls gnutls
>>>>> gnutls/gnutls.h gnutls_global_init
>>>>>  enabled jni               && { [ $target_os = "android" ] &&
>>>>> check_headers jni.h && enabled pthreads || die "ERROR: jni not found"; }
>>>>> -enabled ladspa            && require_headers ladspa.h
>>>>> +enabled ladspa            && require_headers ladspa.h &&
>>>>> require_headers
>>>>> dlfcn.h
>>>>>  enabled libaom            && require_pkg_config libaom "aom >= 1.0.0"
>>>>> aom/aom_codec.h aom_codec_version
>>>>>  enabled lv2               && require_pkg_config lv2 lilv-0
>>>>> "lilv/lilv.h"
>>>>> lilv_world_new
>>>>>  enabled libiec61883       && require libiec61883 libiec61883/iec61883.h
>>>>> iec61883_cmp_connect -lraw1394 -lavc1394 -lrom1394 -liec61883
>>>>>
>>>>
>>>> Both filters already depend on libdl being present, which also implies
>>>> dlfcn.h (The check for libdl uses it). How is that not enough?
>>>
>>> Filters != library support enabled
>>>
>>> Please read bug report I linked, it explains it.
>>>
>>> In short not having dflcn.h header would pass those options but would
>>> disable filters later.
>>> Proper way is to abort early.
>>
>> Do those libraries need dlfcn.h, or only the filters? If the former,
>> then the libraries are not meant to depend on the presence of libdl.
>> Hence the dep being for the filters.
>>
>> In any case, since both libraries are only used by one filter each, i
>> guess this is ok. But instead of adding a new require_headers check just
>> reuse the existing one to check both headers.
> 
> How do I do that?

require_headers "frei0r.h dlfcn.h"
require_headers "ladspa.h dlfcn.h"

Untested, but should work.


More information about the ffmpeg-devel mailing list