Re: compilation failure with CONFIG_VFIO_PCI_NVLINK2
From: Alexey Kardashevskiy
Date: Mon Jan 07 2019 - 02:25:23 EST
On 07/01/2019 13:58, Alexey Kardashevskiy wrote:
> On 04/01/2019 02:08, Laura Abbott wrote:
>> On 1/3/19 5:49 AM, Alexey Kardashevskiy wrote:
>>> On 03/01/2019 03:37, Laura Abbott wrote:
>>>> I got a compilation failure when building with CONFIG_VFIO_PCI_NVLINK2
>>>> + make -s 'HOSTCFLAGS=-O2 -g -pipe -Wall -Werror=format-security
>>>> -Wp,-D_FORTIFY_SOURCE=2 -Wp,-D_GLIBCXX_ASSERTIONS -fexceptions
>>>> -fstack-protector-strong -grecord-gcc-switches
>>>> -specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 -m64 -mcpu=power8
>>>> -mtune=power8 -fasynchronous-unwind-tables -fstack-clash-protection'
>>>> 'HOSTLDFLAGS=-Wl,-z,relro -Wl,--as-neededÂ -Wl,-z,now
>>>> -specs=/usr/lib/rpm/redhat/redhat-hardened-ld -Wl,--build-id=uuid'
>>>> ARCH=powerpc -j4 modules
>>>> BUILDSTDERR: In file included from drivers/vfio/pci/trace.h:102,
>>>> BUILDSTDERR:ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ from
>>>> BUILDSTDERR: ./include/trace/define_trace.h:89:42: fatal error:
>>>> ./trace.h: No such file or directory
>>>> BUILDSTDERR:Â #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
>>>> BUILDSTDERR:ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ ^
>>>> BUILDSTDERR: compilation terminated.
>>>> BUILDSTDERR: make: *** [scripts/Makefile.build:277:
>>>> drivers/vfio/pci/vfio_pci_nvlink2.o] Error 1
>>>> BUILDSTDERR: make: *** [scripts/Makefile.build:492: drivers/vfio/pci]
>>>> Error 2
>>>> BUILDSTDERR: make: *** [scripts/Makefile.build:492: drivers/vfio]
>>>> Error 2
>>>> BUILDSTDERR: make: *** [Makefile:1053: drivers] Error 2
>>>> BUILDSTDERR: make: *** Waiting for unfinished jobs....
>>>> I don't know enough about ftrace building to make a guess here.
>>>> Config is attacked.
>>> What gcc is this and what is the exact sha1 of the tree? gcc8 prints
>>> other error with your config in drivers/scsi/esas2r/esas2r_ioctl.c but
>>> not this one so I am curious.
>> gcc (GCC) 8.2.1 20181215 (Red Hat 8.2.1-6)
>> sha 8e143b90e4d45cca3dc53760d3cfab988bc74571
> Your config and this sha1 still make "make oldconfig" ask few questions
> and then it compiles just fine, are you sure about the config?
> These are questions on "make oldconfig":
> Kernel Live Patching (LIVEPATCH) [N/y/?] (NEW)
> Stack Protector buffer overflow detection (STACKPROTECTOR) [Y/n/?] (NEW)
> Strong Stack Protector (STACKPROTECTOR_STRONG) [Y/n/?] (NEW)
> Do NOT protect notrace function from kprobe events
> (KPROBE_EVENTS_ON_NOTRACE) [N/y/?] (NEW)
Ok, I figured it out. This is because you compile in tree while I
compile out of tree (with O=builddir) and the difference is that in my
case gcc gets these additional -I$(src) statements and in your case you
need to add them manually:
mine V=1 (has -I/home/aik/p/kernel/drivers/vfio/pci and
This is where it happens:
I'd rather prefer to fix this in scripts/Makefile.lib#n143 than doing
-I$(src) but this is what everybody does already and therefore I guess
"[PATCH] vfio_pci: Add local source directory as include" from
https://patchwork.kernel.org/patch/10748803/ is correct.
>>>> Also, would it be possible to switch this option from def_bool to
>>>> bool? I can't turn it off directly when it's def_bool.
>>> Why? Honestly I'd rather fix the compile error.
>> It's not just about this error, there may be other situations where
>> it would be good to have this turned off.
> Oh well I think I misunderstood what "def_bool" actually does (it does
> not make much sense without "if" conditions). I'll post a patch.
I've had a quick discussion here, and the point is that the distros are
going to enable this anyway and it is quite hard to think of a scenario
when we want VFIO_PCI and POWERNV but not this NVLINK2 support. What
scenario do you have in mind?