[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-Id: <20130319.190631.2091411479204926509.davem@davemloft.net>
Date: Tue, 19 Mar 2013 19:06:31 -0400 (EDT)
From: David Miller <davem@...emloft.net>
To: daniel.baluta@...il.com
Cc: willemb@...gle.com, edumazet@...gle.com, netdev@...r.kernel.org
Subject: Re: [PATCH net-next] packet: Fix compile error
From: Daniel Baluta <daniel.baluta@...il.com>
Date: Wed, 20 Mar 2013 00:46:38 +0200
> On Wed, Mar 20, 2013 at 12:07 AM, David Miller <davem@...emloft.net> wrote:
>> From: Daniel Baluta <dbaluta@...acom.com>
>> Date: Wed, 20 Mar 2013 00:01:21 +0200
>>
>>> PACKET_FANOUT_ROLLOVER and PACKET_FANOUT_FLAG_ROLLOVER are not declared in
>>> <tree>/usr/include/linux/if_packet.h together with the other PACKET_FANOUT_* macros
>>> as one would expect. This causes the following compilation error:
>>> <snip>
>>> psock_fanout.c: In function ‘test_control_single’:
>>> psock_fanout.c:230:23: error: ‘PACKET_FANOUT_ROLLOVER’ undeclared (first use in this function)
>>> </snip>
>>>
>>> Signed-off-by: Daniel Baluta <dbaluta@...acom.com>
>>
>> No, in fact, all of these should be removed completely.
>>
>> They are provided by the header files under linux/usr/include which
>> get created by the "make headers_install" rule.
>>
>> So you either need to run the "make headers_install" rule before
>> building the tests, or install the updated headers under /usr/include
>> on your test machine.
>>
>> I'll remove the defines from the test, thanks for pointing this
>> out.
>
> Sorry if I am missing something but I don't think it's necessary to
> "make headers_install" because selftests compilaton target already
> include -I../../../../usr/include/ that points to linux/usr/include.
"make headers_install" populates the top-level usr/include/ with
actual header files.
You need to do this, unless you have the header check kconfig option
enabled.
That's how the tests can obtain the version of the headers in the
kernel tree in which they live, rather than the system headers.
> Anyhow, this is not an issue :). The problem is that there is no definition
> for PACKET_FANOUT_ROLLOVER or PACKET_FANOUT_FLAG_ROLLOVER,
> and the compilation still fails:
>
> $ make
> gcc -Wall -I../../../../usr/include/ -o psock_fanout psock_fanout.c
> psock_fanout.c: In function ‘test_control_single’:
> psock_fanout.c:212:23: error: ‘PACKET_FANOUT_ROLLOVER’ undeclared
> (first use in this function)
>
> On your system where does PACKET_FANOUT_ROLLOVER gets defined?
In include/uapi/linux/if_packet.h via usr/include/linux/if_packet.h
Powered by blists - more mailing lists