[Intel-wired-lan] [PATCH net v2] i40e/iavf: use better trace path

Jacob Keller jacob.e.keller at intel.com
Wed Jan 8 22:55:14 UTC 2020


On 1/8/2020 2:49 PM, Jacob Keller wrote:
> On 1/2/2020 6:23 PM, Jesse Brandeburg wrote:
>> I'm seeing compilation fail of the i40e/iavf driver for some reason.
>> I just checked 5.5-rc4 and the tip of net/net-next and all fail.
>> Fails all the way back to v5.1 at least, I didn't check further back.
>>
>> repro steps:
>> $ gcc -v
>> gcc version 9.2.1 20190827 (Red Hat 9.2.1-1) (GCC)
>>
>> $ git checkout -b my-net davem-net/master
>> $ make mrproper
>> $ make O=../my-net.obj defconfig allmodconfig modules_prepare
>> $ make O=../my-net.obj M=drivers/net/ethernet/intel/i40e
>>
>> make[1]: Entering directory '/home/jbrandeb/git/my-net.obj'
>>   CC [M]  drivers/net/ethernet/intel/i40e/i40e_main.o
>> In file included from
>> /home/jbrandeb/git/linux2/drivers/net/ethernet/intel/i40e/i40e_trace.h:209,
>>                  from /home/jbrandeb/git/linux2/drivers/net/ethernet/intel/i40e/i40e_main.c:20:
>> /home/jbrandeb/git/linux2/include/trace/define_trace.h:95:42: fatal error: ./i40e_trace.h: No such file or directory
>>    95 | #include TRACE_INCLUDE(TRACE_INCLUDE_FILE)
>>       |                                          ^
>> compilation terminated.
>> make[2]: *** [/home/jbrandeb/git/linux2/scripts/Makefile.build:266: drivers/net/ethernet/intel/i40e/i40e_main.o] Error 1
>> make[1]: *** [/home/jbrandeb/git/linux2/Makefile:1693: drivers/net/ethernet/intel/i40e] Error 2
>> make[1]: Leaving directory '/home/jbrandeb/git/my-net.obj'
>> make: *** [Makefile:179: sub-make] Error 2
>>
>> Just for sanity, I tried building the ice driver the same as above and
>> it succeeds, so the build does work for some drivers.
>>
> 
> So.. ice works for some reason but i40e and iavf do not? Is the ice
> driver using a path relative to the root?
> 
>> So fix the include path for the i40e driver trace file to be relative
>> to the kernel root like (some) other drivers do.
> 
> I'd really like to know why this isn't required by all drivers...
> 

It looks like this is handled in driver's Makefile via:

ccflags-y += -I$(src)>-->------->-------# needed for trace events

or the following:

CFLAGS_trace.o := -I$(src)

This seems like the preferred solution when building with a separate
object tree.

Thanks,
Jake


More information about the Intel-wired-lan mailing list