[FFmpeg-devel] [PATCH] configure: call flatten_extralibs in a subshell
Timo Rothenpieler
timo at rothenpieler.org
Tue Nov 14 15:50:12 EET 2017
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
+ 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
--
2.14.2
More information about the ffmpeg-devel
mailing list