Opened 2 years ago

Closed 14 months ago

Last modified 14 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 14 months ago by richardpl

Is this still correct?

comment:2 Changed 14 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 14 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 14 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 14 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 14 months ago by heleppkes (previous) (diff)
Note: See TracTickets for help on using tickets.