[FFmpeg-devel] [PATCH] configure: fix module dependencies on zlib

Michael Niedermayer michael at niedermayer.cc
Mon Nov 20 21:25:14 EET 2017


On Mon, Nov 20, 2017 at 02:58:58PM -0300, James Almer wrote:
> On 11/20/2017 2:34 PM, Michael Niedermayer wrote:
> > On Sun, Nov 19, 2017 at 04:00:11PM -0300, James Almer wrote:
> >> select should not be used with external libraries. It's mean to soft
> >> enable internal modules/features.
> >>
> >> Signed-off-by: James Almer <jamrial at gmail.com>
> >> ---
> >>  configure | 48 ++++++++++++++++++++++++++----------------------
> >>  1 file changed, 26 insertions(+), 22 deletions(-)
> > 
> > btw, is all the *suggest= zlib stuff correct ?
> > 
> > at least in the past configure could not handle a mix of
> > dependancies which turned targets on and which turned sources off
> > as the order in which they where executed resilted in different
> > outcomes
> 
> 'foo_suggest="bar"' nowadays is basically the same as doing 'enabled foo
> && enable_weak bar && enabled bar && append foo_extralibs
> $bar_extralibs'. It does not disable foo under any circumstances.
> 
> enable_weak can't enable what was hard disabled, and zlib being
> autodetected will be either hard enabled or hard disabled by the
> automated check or by a command line option by the time dependency
> checks are made.

IIRC the issue i remember was:

'foo_suggest="bar"' or 'foo_select="bar"'
AND
'dot_deps="bar"'

had in the past unpredictable behavior because if foo_suggest/select is
evaluated first dot will be enabled and if dot_deps is evaluated first
dot would stay disabled.

That is the dependency solver would produce different results when
one would not expect it. On top of that the dependency solver recursivly
evaluted things making it a tad bit unpredictable what would get
evaluated first.

I remember thinking back then that all dependancies should be clear
one way, eiter only deps or only selects/suggest. (which was the case
back then for nearly all things as i rememer checking)

But its a while ago that i looked at this so i might misremember a detail
and there where various changes since then in configure.

but after a bit of looking now, i found my grep command i used to check
for this issue:

egrep '(suggest|select)=' configure | sed 's/.*=//;s/"//g' | tr ' ' '\n' | sort | uniq > select.tmp
egrep '(deps|deps_any)=' configure | sed 's/.*=//;s/"//g' | tr ' ' '\n' | sort | uniq >dep.tmp
cat select.tmp dep.tmp |sort | uniq -d

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

Awnsering whenever a program halts or runs forever is
On a turing machine, in general impossible (turings halting problem).
On any real computer, always possible as a real computer has a finite number
of states N, and will either halt in less than N cycles or never halt.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 181 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20171120/24dcfd49/attachment.sig>


More information about the ffmpeg-devel mailing list