Re: compilation failure with CONFIG_VFIO_PCI_NVLINK2

From: Alexey Kardashevskiy
Date: Sun Jan 06 2019 - 21:58:09 EST




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:
>>> Hi,
>>>
>>> I got a compilation failure when building with CONFIG_VFIO_PCI_NVLINK2
>>> enabled:
>>>
>>> + 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-hardened-cc1
>>> -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
>>> drivers/vfio/pci/vfio_pci_nvlink2.c:29:
>>> 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[3]: *** [scripts/Makefile.build:277:
>>> drivers/vfio/pci/vfio_pci_nvlink2.o] Error 1
>>> BUILDSTDERR: make[2]: *** [scripts/Makefile.build:492: drivers/vfio/pci]
>>> Error 2
>>> BUILDSTDERR: make[1]: *** [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)



>>>
>>> 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.



--
Alexey