[lttng-dev] Babeltrace2 - compilation error with intel18

Rocky Dunlap dunlap at ucar.edu
Fri Mar 20 17:55:16 EDT 2020


Simon,

I was able to get past the issue by passing "--enable-compile-warnings=yes"
to configure.

It get a lot further, then fails here:

gcc -pthread -shared -L/apps/intel/intelpython3/lib
-Wl,-rpath=/apps/intel/intelpython3/lib,--no-as-needed
-Wl,-z,noexecstack,-z,relro,-z,now -L../../../../src/lib/.libs -pthread
-lgmodule-2.0 -lglib-2.0 -pthread -lgmodule-2.0 -lglib-2.0 -pthread
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -pthread -pthread
-I/usr/include/glib-2.0 -I/usr/lib64/glib-2.0/include -fno-strict-aliasing
-Wnested-externs -Wmissing-prototypes -Wstrict-prototypes
-Wdeclaration-after-statement -Wimplicit-function-declaration
-Wold-style-definition -Wjump-misses-init -Wall -Wextra -Wundef
-Wwrite-strings -Wpointer-arith -Wmissing-declarations -Wredundant-decls
-Wno-unused-parameter -Wno-missing-field-initializers -Wformat=2
-Wcast-align -Wformat-nonliteral -Wformat-security -Wsign-compare
-Wstrict-aliasing -Wshadow -Winline -Wpacked -Wmissing-format-attribute
-Wmissing-noreturn -Winit-self -Wmissing-include-dirs
-Wunused-but-set-variable -Warray-bounds -Wreturn-type -Wswitch-enum
-Wswitch-default -Wduplicated-cond -Wduplicated-branches -Wlogical-op
-Wrestrict -Wnull-dereference -Wdouble-promotion -Wno-sign-compare
-Wno-inline -Wno-declaration-after-statement -Wno-switch-enum
-Wno-switch-default -Wno-packed -Wno-pointer-arith -Wno-format-nonliteral
-Wno-double-promotion -Wno-cast-align -Wno-cast-function-type
-Wno-error=unused-parameter -Wno-error=missing-field-initializers
-Wno-error=sign-compare -Wno-error=inline
-Wno-error=declaration-after-statement -Wno-error=switch-enum
-Wno-error=switch-default -Wno-error=packed -Wno-error=pointer-arith
-Wno-error=format-nonliteral -Wno-error=double-promotion
-Wno-error=cast-align -Wno-error=cast-function-type -Wold-style-definition
-Werror=implicit-function-declaration -g -O2 -Wno-shadow
-Wno-null-dereference -I../../../../include -I../../../../src
-I../../../../src -include common/config.h -I./bt2
build/temp.linux-x86_64-3.6/bt2/native_bt.o
build/temp.linux-x86_64-3.6/./bt2/logging.o
../../../../src/autodisc/.libs/libbabeltrace2-autodisc.a
../../../../src/logging/.libs/libbabeltrace2-logging.a
../../../../src/common/.libs/libbabeltrace2-common.a
../../../../src/py-common/.libs/libbabeltrace2-py-common.a
../../../../src/string-format/.libs/libbabeltrace2-string-format.a
-L/apps/intel/intelpython3/lib -lbabeltrace2 -lglib-2.0 -lpython3.6m -o
build/build_lib/bt2/_native_bt.cpython-36m-x86_64-linux-gnu.so
gcc: error: unrecognized command line option ‘-Wduplicated-cond’
gcc: error: unrecognized command line option ‘-Wduplicated-branches’
gcc: error: unrecognized command line option ‘-Wrestrict’
gcc: error: unrecognized command line option ‘-Wnull-dereference’
error: command 'gcc' failed with exit status 1
make[4]: *** [build-python-bindings.stamp] Error 1

I am surprised that this is using "gcc" here, shouldn't it be using "icc"
since I have CC=icc?

Or maybe it is supposed to be using gcc?  I think if I update the GCC
compiler version then it will get past this issue as well, but I just
wanted confirmation that this indeed should be using a combination of gcc
and icc?

If it should be icc, can you point me to where in the configure/make system
I can make this change to force it to use what's sets as CC instead of
defaulting to GCC?

Rocky

On Fri, Mar 20, 2020 at 3:47 PM Simon Marchi <simark at simark.ca> wrote:

> On 2020-03-20 5:10 p.m., Rocky Dunlap via lttng-dev wrote:
> > I am trying to compile BT2 with Python bindings using Intel18.  I
> receive the following error during the build:
> Hi Rocky,
>
> I don't think we claim to support the Intel compiler, so you might be a bit
> on your own here.  Although if you want to send patches to fix the build
> using
> that compiler, I don't have anything against that.
>
> >
> > In file included from py-common.c(31):
> > /apps/intel/intelpython3/include/python3.6m/Python.h(149): error #193:
> zero used for undefined preprocessing identifier "_MSC_VER"
> >   #if _MSC_VER
> >       ^
> >
> > In file included from py-common.c(31):
> > /apps/intel/intelpython3/include/python3.6m/Python.h(151): error #193:
> zero used for undefined preprocessing identifier "__clang__"
> >   #elif __clang__ || __GNUC__
> >         ^
>
> It took me a bit of time to understand that this is Intel's Python 3
> distribution, not CPython.
>
> I think it's technically valid to use an undefined macro in a preprocessor
> condition like that, in which case it gets replaced with 0 (as the error
> message mentions).  The compiler is trying to be helpful and warns you,
> because
> relying on that behavior is a bit fragile, and often a sign of a mistake
> somewhere.  But since this happens in a library you are using, I think
> your best
> bet is just to disable this warning.
>
> > py-common.c(187): error #3179: deprecated conversion of string literal
> to char* (should be const char*)
> >   format_exc_func_name = py_exc_tb ? "format_exception" :
>
> I really don't understand this one, as format_exc_func_name is a const
> char *
> in our code.
>
> Simon
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.lttng.org/pipermail/lttng-dev/attachments/20200320/658950d6/attachment.htm>


More information about the lttng-dev mailing list