From mboxrd@z Thu Jan 1 00:00:00 1970 From: simark@simark.ca (Simon Marchi) Date: Fri, 20 Mar 2020 17:47:56 -0400 Subject: [lttng-dev] Babeltrace2 - compilation error with intel18 In-Reply-To: References: Message-ID: 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