Re: [FFmpeg-devel] [PATCH] configure: call flatten_extralibs in a subshell

2017-11-16 Thread Timo Rothenpieler

applied



smime.p7s
Description: S/MIME Cryptographic Signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] configure: call flatten_extralibs in a subshell

2017-11-16 Thread Timo Rothenpieler

will push soon if nobody objects



smime.p7s
Description: S/MIME Cryptographic Signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] configure: call flatten_extralibs in a subshell

2017-11-14 Thread James Almer
On 11/14/2017 11:35 AM, Timo Rothenpieler wrote:
> 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.

Seems to work after removing the second unique. Thanks a lot!

> 
>> +    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
>>
> 
> 
> 
> ___
> ffmpeg-devel mailing list
> ffmpeg-devel@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
> 

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


Re: [FFmpeg-devel] [PATCH] configure: call flatten_extralibs in a subshell

2017-11-14 Thread Timo Rothenpieler

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






smime.p7s
Description: S/MIME Cryptographic Signature
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel


[FFmpeg-devel] [PATCH] configure: call flatten_extralibs in a subshell

2017-11-14 Thread 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
+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

___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel