Opened 22 months ago

Closed 6 months ago

Last modified 6 months ago

#6017 closed defect (fixed)

--disable-everything keeps nvidia stuff enabled

Reported by: kierank Owned by:
Priority: normal Component: build system
Version: git-master Keywords:
Cc: Blocked By:
Blocking: Reproduced by developer: no
Analyzed by developer: no

Description

./configure --disable-everything has:

cuda cuvid nvenc
enabled

This shouldn't be the case.

Change History (5)

comment:1 Changed 6 months ago by richardpl

Is this still correct?

comment:2 Changed 6 months ago by jamrial

There's --disable-autodetect for this kind of thing. Same with zlib and every other autodetected library.

comment:3 follow-up: Changed 6 months ago by Gyan

--disable-autodetect is blunt, and is, IMHO, the wrong tack.

The test for an external lib should be whether there's at least one enabled component making use of the lib, and if not, that lib shouldn't be linked e.g.,

--disable-everything --enable-libx264 should fail since lavc/libx264.c isn't enabled and libx264 is expressly specified.

--disable-everything --enable-encoder=png should be successful and link (autodetected) zlib but not cuda..etc.

comment:4 Changed 6 months ago by cehoyos

  • Component changed from undetermined to build system
  • Resolution set to fixed
  • Status changed from new to closed
  • Version changed from unspecified to git-master

Apparently fixed in e3c1219c7c7457f4b157cfb299e4387c1ebdabe7

Note that changing the behaviour of --disable-everything breaks regression tests and has to avoided at all costs.

comment:5 in reply to: ↑ 3 Changed 6 months ago by heleppkes

Replying to Gyan:

The test for an external lib should be whether there's at least one enabled component making use of the lib, and if not, that lib shouldn't be linked e.g.,

The NVIDIA functionality never links in any libraries either way, so complaining that configure shows it as present from auto-detection was always rather of an artificial complaint if anything (it basically just indicated the presence of the header files).

Additionally to the above, this was also facilitated because the CUDA/NVENC headers were being shipped with FFmpeg, but have since moved into their own repository, so if you don't actually make the headers available, it won't actually detect anything anymore.

Last edited 6 months ago by heleppkes (previous) (diff)
Note: See TracTickets for help on using tickets.