coverity

Coverity support on FreeBSD


Trying to run Coverity Scan I get

paulf> /home/paulf/Downloads/cov-analysis-freebsd64-2022.6.0/bin/cov-build --dir /home/paulf/scratch/cov-int gmake -j 4
Coverity Build Capture (64-bit) version 2022.6.0 on FreeBSD 13.1-RELEASE-p6 amd64
Internal version numbers: 9501b3bfc3 p-2022.6-push-41

Platform info:
Sysname = FreeBSD
Release = 13.1-RELEASE-p6
Machine = amd64

[ERROR] This platform is not supported by Coverity.
[ERROR] See documentation for the list of supported platforms.

Looking at the binary

paulf> file /home/paulf/Downloads/cov-analysis-freebsd64-2022.6.0/bin/cov-build                                        
/home/paulf/Downloads/cov-analysis-freebsd64-2022.6.0/bin/cov-build: ELF 64-bit LSB executable, x86-64, version 1 (FreeBSD), dynamically linked, interpreter /libexec/ld-elf.so.1, for FreeBSD 8.3, stripped

Wow, that's old. It is now very difficult to get something that old up and running. FreeBSD 12.2 is the oldest I have.

I can't see anywhere the "list of supported platforms" that includes platforms other than Windows macOS and Linux.

What is the most recent FreeBSD version that Coverity Scan will run on?


Solution

  • Confusingly, the Coverity Supported Platforms, Languages, and Compilers (which says it describes version 2020.12) web page indeed does not mention FreeBSD, even though the Coverity Static Analysis Datasheet PDF (which says it describes version 2022.12) lists "FreeBSD" among the supported platforms, although it does not specify what versions of FreeBSD are supported. It is possible that the Coverity documentation is more specific, but that isn't publicly available (and I don't have access to it anymore; I'm a former Synopsys employee).

    As explained in the answer to SO question Scan service and "This platform is not supported by Coverity", the message "This platform is not supported by Coverity." is produced by an explicit check that the OS is among those documented to be supported. The check is meant, in part, to guard against running on too-new versions that haven't been tested by Synopsys. (This rationale is questionable, of course.)

    This check has an escape hatch: set the COVERITY_UNSUPPORTED environment variable to 1 beforehand. As the name implies, this is meant as a "use at your own risk" mechanism, but in practice, if things don't go spectacularly wrong, it's probably safe.

    Ideally, you should also contact Coverity support to inform them there is a FreeBSD version that needs to be admitted to the official support list.

    Also, don't worry about the "FreeBSD 8.3" in the output of file. That is the minimum version the binary requires, and is intentionally a fairly old version in order to maximize the set of versions that will work.