Мы только что обновили наш сервер сборки с Ubuntu 16.x до 18.04.1, и я больше не могу заставить работать Coverity.
Per Сканирование Coverity не удается собратьс _GNU_SOURCE, определенным , у меня есть контейнер Docker на нашем компьютере с Ubuntu 18.04.1, который устанавливает пакет gcc-6
(в этом контейнере не установлено никакого другого gcc - это только gcc-6
).
Per TravisCI / Coverity: Предупреждение - файлы не были отправлены , я также запустил в своем контейнере следующее: /coverity/cov-analysis-linux64-7.6.0/bin/cov-configure --comptype gcc --compiler gcc-6 --template
.Кажется, что это сгенерировало файл /coverity/cov-analysis-linux64-7.6.0/config/coverity_config.xml
Когда я конфигурирую / собираю наше программное обеспечение (libfabric, от https://github.com/ofiwg/libfabric) в контейнере, оно собирается просто отлично. Однако, если я пытаюсь его собратьчерез cov-build
я получаю ошибки компиляции. Например, вот команда cov-build
для сборки только одного файла из libfabric:
# Clear out the Coverity meta data dir, just to be sure
$ rm -rf cov-data
$ /coverity/cov-analysis-linux64-7.6.0/bin/cov-build \
-dir cov-data make src/fi_tostr.lo
Вот фрагмент соответствующего вывода из файла cov-build/build-log.txt
показывающий, где скрылся сбой:
[STATUS] Compiling src/fi_tostr.c
/coverity/cov-analysis-linux64-7.6.0/bin/cov-emit --dir=/home/jsquyres/git/libfabric/cov-data --ignore_path=/tmp/cov-0/a35264b27887fab7178c6bf7ab1117a9/cov-configure --ignore_path=/tmp/cov-0/a35264b27887fab7178c6bf7ab1117a9/cov-0/49f277832f55e48469661625f8083203 -w --no_stdarg_builtin --incompat_proto --add_type_modifier=__coverity___fpreg --add_type_modifier=__coverity___float80 --add_type_modifier=__coverity___float128 --no_predefined_cplusplus --gnu_version=60400 --no_predefines --restrict --gnu_carriage_return_line_terminator --no_multiline_string --no_trigraphs --c99 --allow__bool --pre_preinclude /home/jsquyres/git/libfabric/cov-data/emit/394646c6191c/config/5fe0c6b2b8489d2ab05d2434d738b5ac/gcc-config-0/coverity-macro-compat.h --pre_preinclude /home/jsquyres/git/libfabric/cov-data/emit/394646c6191c/config/5fe0c6b2b8489d2ab05d2434d738b5ac/gcc-config-0/coverity-compiler-compat.h --preinclude /coverity/cov-analysis-linux64-7.6.0/config/template-gcc-config-8/../user_nodefs.h --gcc -I . -I include -I prov/sockets/include -I prov/sockets --sys_include /usr/lib/gcc/x86_64-linux-gnu/6/include --sys_include /usr/local/include --sys_include /usr/lib/gcc/x86_64-linux-gnu/6/include-fixed --sys_include /usr/include/x86_64-linux-gnu --sys_include /usr/include -DHAVE_CONFIG_H -DNDEBUG -DPROVDLDIR="/usr/local/lib/libfabric" -DRDMADIR="@rdmadir@" -DSYSCONFDIR="/usr/local/etc" -D_GNU_SOURCE -D__OPTIMIZE__ -D__USE_XOPEN2K8 --type_sizes=e16Pdlx8fi4s2 --type_alignments=e16Pdlx8fi4s2 --size_t_type=m --wchar_t_type=i --ptrdiff_t_type=l src/fi_tostr.c
"/usr/lib/gcc/x86_64-linux-gnu/6/include/stdatomic.h", line 40: error #65:
expected a ";"
typedef _Atomic _Bool atomic_bool;
^
"/usr/lib/gcc/x86_64-linux-gnu/6/include/stdatomic.h", line 41: error #84:
invalid combination of type specifiers
typedef _Atomic char atomic_char;
^
Кто-нибудь знает, как заставить Покровительство понять эти типы?