[FFmpeg-devel] [PATCH] configure: call flatten_extralibs in a subshell
Timo Rothenpieler
timo at rothenpieler.org
Tue Nov 14 16:35:24 EET 2017
Am 14.11.2017 um 14:50 schrieb Timo Rothenpieler:
> By putting the call in a subshell, the problem of it spilling
> cleanup-decision from a previous library to other libraries is avoided.
>
> For example, it could have already cleaned up cuda_extralibs in a
> previous library that depended on cuda. Then when it gets to avutil, it
> will never pick up the dependency of avutil to cuda, which depends on
> libdl, which in turn results in a missing -ldl extralib, resulting in
> link failures in certain configurations.
> ---
> configure | 15 +++++++++++----
> 1 file changed, 11 insertions(+), 4 deletions(-)
>
> diff --git a/configure b/configure
> index 3788f26956..1fc6821fe7 100755
> --- a/configure
> +++ b/configure
> @@ -6501,6 +6501,16 @@ flatten_extralibs(){
> fi
> }
>
> +flatten_extralibs_wrapper(){
> + list_name=$1
> + flatten_extralibs $list_name
> + unique $list_name
> + resolve $list_name
> + unique $list_name
Scratch that second unique.
While it does get rid of a bunch of duplicates like double -lX11 or
-lvpx, it breaks MacOS builds, due to it getting rid of all but one
-framework invocations.
> + eval $list_name=\$\(\$ldflags_filter \$$list_name\)
> + eval printf \''%s'\' \""\$$list_name"\"
> +}
> +
> for linkunit in $LIBRARY_LIST; do
> unset current_extralibs
> eval components=\$$(toupper ${linkunit})_COMPONENTS_LIST
> @@ -6513,10 +6523,7 @@ for linkunit in $LIBRARY_LIST; do
> done
>
> for linkunit in $LIBRARY_LIST $PROGRAM_LIST $EXTRALIBS_LIST; do
> - flatten_extralibs ${linkunit}_extralibs
> - unique ${linkunit}_extralibs
> - resolve ${linkunit}_extralibs
> - eval ${linkunit}_extralibs=\$\(\$ldflags_filter \$${linkunit}_extralibs\)
> + eval ${linkunit}_extralibs=\$\(flatten_extralibs_wrapper ${linkunit}_extralibs\)
> done
>
> map 'enabled $v && intrinsics=${v#intrinsics_}' $INTRINSICS_LIST
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: smime.p7s
Type: application/pkcs7-signature
Size: 3994 bytes
Desc: S/MIME Cryptographic Signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171114/9a049bf2/attachment.bin>
More information about the ffmpeg-devel
mailing list