2016-09-29 2 views
2

Ich versuche, einen Scan unter OS X. Die procedure I am following funktioniert gut unter 32-Bit und 64-Bit-Linux, und ein ähnliches Verfahren funktioniert gut unter Winows mit nmake. Unter O X cov-build versagt mit:Scan-Service und "Diese Plattform wird nicht von Coverity unterstützt"

$ CXXFLAGS="-DNDEBUG -g2 -O3" cov-build --dir cov-int make -j 2 

Coverity Build Capture (64-bit) version 8.5.0.3 on Darwin 12.6.0 x86_64 
Internal version numbers: db70178643 p-kent-push-26368.949 

Platform info: 
Sysname = Darwin 
Release = 12.6.0 
Machine = x86_64 

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

Ein anderer O X-Rechner die gleichen Fehler erzeugt:

$ CXXFLAGS="-DNDEBUG -g2 -O3" cov-build --dir cov-int make -j 2 

Coverity Build Capture (64-bit) version 8.5.0.3 on Darwin 13.4.0 x86_64 
Internal version numbers: db70178643 p-kent-push-26368.949 

Platform info: 
Sysname = Darwin 
Release = 13.4.0 
Machine = x86_64 

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

Ich habe Probleme beim Auffinden der Dokumentation:

$ cov-build --help 
Coverity Build Capture (64-bit) version 8.5.0.3 on Darwin 12.6.0 x86_64 
Internal version numbers: db70178643 p-kent-push-26368.949 

No help found for 'cov-build' 

Coverity Data Sheet Staaten OS X wird unterstützt und eine press release states OS X 10.8 is supported.

  • AIX
  • FreeBSD
  • HP-UX
  • Linux
  • Mac OS X
  • NetBSD
  • Solaris
  • Windows-

Warum erhalte ich [ERROR] This platform is not supported by Coverity, und wie behebe ich es?

+1

Es könnte sich lohnen, 'COVERITY_UNSUPPORTED = 1' zu exportieren, obwohl ich das schon eine ganze Weile nicht mehr ausprobiert habe. –

Antwort

2

Das Problem ist, dass Mac OSX 10.8 nicht in der Coverity-Version unterstützt wird, die Sie verwenden. Es ist leider üblich, dass Apple die Kompatibilität mit Coverity mit OS-Releases leider nicht einhält.

Sie können COVERITY_UNSUPPORTED = 1 exportieren. Dies wird die Überprüfung der Plattform-Unterstützung umgehen, es gibt jedoch keine Garantie, dass die Dinge wie erwartet funktionieren. Sie haben ziemlich gute Erfolgsaussichten.

+0

Danke nochmal Caleb. Wir haben festgestellt, dass wir Ihre Arbeitsumgebung "COVERITY_UNSUPPORTED = 1" benötigen, und wir mussten den Xcode-Compiler von OS X 10.8 vermeiden. Als wir zu MacPorts Clang 3.7 gewechselt sind, lief alles wie erwartet. OS X rundet unsere Rezepte für Plattformen ab.Siehe auch [Anweisungen für Coverity Scan Build] (http://cryptop.com/wiki/Coverity_Scan) in unserem Wiki. – jww

+0

Ich entschuldige mich, dass ich einen mentalen Fehler bei der Zuordnung von Darwin 12.6 zu OSX 12 gemacht habe. Das Problem hierbei ist, dass Coverity OSX 10.8 ab Version 8.0 nicht mehr unterstützt. Der Rest der Ratschläge bleibt gleich - setze die env var und schau was passiert. Die Compiler-Unterstützung ist eine separate Frage - ich freue mich, dass Sie eine Lösung gefunden haben, die für Sie funktioniert. – Caleb

+0

Ich versuche, Coverity 8.5.0.5 auf OS X 10.9 zu starten, und es zeigt die gleichen Symptome, FYI. – Bombe

0

Dies basiert auf den Vorschlägen von Flash Sheridan und Caleb. Das Problem war weniger mit der Plattform und mehr mit dem Compiler. Xcode 5.0 und 5.1 erzeugen den Scan-Build-Ausfall:

CXXFLAGS="-DNDEBUG -g2 -O3" cov-build --dir cov-int make -j 2 
... 

cat cov-int/build-log.txt 
... 

"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../ 
lib/clang/5.0/include/stddef.h", line 29: error #109: 

expression preceding parentheses of apparent call must have 

(pointer-to-) function type 

#if !defined(_PTRDIFF_T) || __has_feature(modules) 


"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../ 
lib/clang/5.0/include/stddef.h", line 31: error #59: 

function call is not allowed in a constant expression 

#if !__has_feature(modules) 
... 

Die zweite Problemumgehung hängt von Flash-Sheridan und Calebs Abhilfe. Es fügt "einen anderen Compiler verwenden" hinzu. Im Folgenden verwenden wir MacPorts Clang 3.7, um einen Scan-Build durchzuführen.

$ CXX=/opt/local/bin/clang++-mp-3.7 COVERITY_UNSUPPORTED=1 CXXFLAGS="-DNDEBUG -g3 -O2" cov-build --dir cov-int make -j 8 
Coverity Build Capture (64-bit) version 8.5.0.3 on Darwin 12.6.0 x86_64 
Internal version numbers: db70178643 p-kent-push-26368.949 

/opt/local/bin/clang++-mp-3.7 -DNDEBUG -g3 -O2 -fPIC -march=native -pipe -c cryptlib.cpp 
/opt/local/bin/clang++-mp-3.7 -DNDEBUG -g3 -O2 -fPIC -march=native -pipe -c cpu.cpp 
... 

Emitted 134 C/C++ compilation units (100%) successfully 

134 C/C++ compilation units (100%) are ready for analysis 
The cov-build utility completed successfully. 

Für alle Interessierten sind wir eine freie und Open-Source-Software-Projekt, und wir nutzen die Coverity Scan Service ohne Aufpreis. Die Dokumentation ist jedoch leicht.

Wenn Sie vorschriftsmäßige Anweisungen zum Ausführen von Scan-Builds für Unix, Linux, OS X und Windows benötigen, lesen Sie Crypto++ wiki | Coverity Scan.

Verwandte Themen