#6017 closed defect (fixed)
--disable-everything keeps nvidia stuff enabled
| Reported by: | Kieran Kunhya | 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 by , 8 years ago
comment:2 by , 8 years ago
There's --disable-autodetect for this kind of thing. Same with zlib and every other autodetected library.
follow-up: 5 comment:3 by , 8 years ago
--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 by , 8 years ago
| Component: | undetermined → build system |
|---|---|
| Resolution: | → fixed |
| Status: | new → closed |
| Version: | unspecified → 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 by , 8 years ago
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.
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.



Is this still correct?