All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] iio: Use type header from kernel tree
@ 2016-09-09 15:24 Laura Abbott
  2016-09-09 15:35   ` Daniel Baluta
  0 siblings, 1 reply; 6+ messages in thread
From: Laura Abbott @ 2016-09-09 15:24 UTC (permalink / raw)
  To: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler
  Cc: Laura Abbott, linux-iio, linux-kernel


The iio tools have been updated as new event types have been added to
the kernel. The tools currently use the standard system headers which
means that the system may not have the newest defintitions. This leads
to build failures when building newer tools on older hosts:

gcc -Wall -g -D_GNU_SOURCE   -c -o iio_event_monitor.o
iio_event_monitor.c
iio_event_monitor.c:59:3: error: ‘IIO_UVINDEX’ undeclared here (not in a
function)
  [IIO_UVINDEX] = "uvindex",
   ^~~~~~~~~~~
iio_event_monitor.c:59:3: error: array index in initializer not of
integer type
iio_event_monitor.c:59:3: note: (near initialization for
‘iio_chan_type_name_spec’)
iio_event_monitor.c:97:3: error: ‘IIO_MOD_LIGHT_UV’ undeclared here (not
in a function)
  [IIO_MOD_LIGHT_UV] = "uv",
   ^~~~~~~~~~~~~~~~
iio_event_monitor.c:97:3: error: array index in initializer not of
integer type
iio_event_monitor.c:97:3: note: (near initialization for
‘iio_modifier_names’)
<builtin>: recipe for target 'iio_event_monitor.o' failed

Switch to using the header from the kernel tree to ensure the newest
defintions are always picked up.

Signed-off-by: Laura Abbott <labbott@redhat.com>
---
 tools/iio/iio_event_monitor.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/tools/iio/iio_event_monitor.c b/tools/iio/iio_event_monitor.c
index d9b7e0f..f02523d 100644
--- a/tools/iio/iio_event_monitor.c
+++ b/tools/iio/iio_event_monitor.c
@@ -26,7 +26,7 @@
 #include <sys/ioctl.h>
 #include "iio_utils.h"
 #include <linux/iio/events.h>
-#include <linux/iio/types.h>
+#include "../../include/uapi/linux/iio/types.h"
 
 static const char * const iio_chan_type_name_spec[] = {
 	[IIO_VOLTAGE] = "voltage",
-- 
2.7.4

^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: Use type header from kernel tree
  2016-09-09 15:24 [PATCH] iio: Use type header from kernel tree Laura Abbott
@ 2016-09-09 15:35   ` Daniel Baluta
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Baluta @ 2016-09-09 15:35 UTC (permalink / raw)
  To: Laura Abbott
  Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, linux-iio, Linux Kernel Mailing List

On Fri, Sep 9, 2016 at 6:24 PM, Laura Abbott <labbott@redhat.com> wrote:
>
> The iio tools have been updated as new event types have been added to
> the kernel. The tools currently use the standard system headers which
> means that the system may not have the newest defintitions. This leads
> to build failures when building newer tools on older hosts:
>
> gcc -Wall -g -D_GNU_SOURCE   -c -o iio_event_monitor.o
> iio_event_monitor.c
> iio_event_monitor.c:59:3: error: ‘IIO_UVINDEX’ undeclared here (not in a
> function)
>   [IIO_UVINDEX] = "uvindex",
>    ^~~~~~~~~~~
> iio_event_monitor.c:59:3: error: array index in initializer not of
> integer type
> iio_event_monitor.c:59:3: note: (near initialization for
> ‘iio_chan_type_name_spec’)
> iio_event_monitor.c:97:3: error: ‘IIO_MOD_LIGHT_UV’ undeclared here (not
> in a function)
>   [IIO_MOD_LIGHT_UV] = "uv",
>    ^~~~~~~~~~~~~~~~
> iio_event_monitor.c:97:3: error: array index in initializer not of
> integer type
> iio_event_monitor.c:97:3: note: (near initialization for
> ‘iio_modifier_names’)
> <builtin>: recipe for target 'iio_event_monitor.o' failed
>
> Switch to using the header from the kernel tree to ensure the newest
> defintions are always picked up.
>
> Signed-off-by: Laura Abbott <labbott@redhat.com>

Hi Laura,

Thanks for your patch. The solution here would be to install the
headers for your
new kernel in order to use the updated types.

That is you should run make headers_install.

$ make help | grep headers
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH

You can use INSTALL_HDR_PATH to put the headers in a custom directory
and tell gcc to also include this directory when searching for include headers.

Daniel.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: Use type header from kernel tree
@ 2016-09-09 15:35   ` Daniel Baluta
  0 siblings, 0 replies; 6+ messages in thread
From: Daniel Baluta @ 2016-09-09 15:35 UTC (permalink / raw)
  To: Laura Abbott
  Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, linux-iio, Linux Kernel Mailing List

On Fri, Sep 9, 2016 at 6:24 PM, Laura Abbott <labbott@redhat.com> wrote:
>
> The iio tools have been updated as new event types have been added to
> the kernel. The tools currently use the standard system headers which
> means that the system may not have the newest defintitions. This leads
> to build failures when building newer tools on older hosts:
>
> gcc -Wall -g -D_GNU_SOURCE   -c -o iio_event_monitor.o
> iio_event_monitor.c
> iio_event_monitor.c:59:3: error: =E2=80=98IIO_UVINDEX=E2=80=99 undeclared=
 here (not in a
> function)
>   [IIO_UVINDEX] =3D "uvindex",
>    ^~~~~~~~~~~
> iio_event_monitor.c:59:3: error: array index in initializer not of
> integer type
> iio_event_monitor.c:59:3: note: (near initialization for
> =E2=80=98iio_chan_type_name_spec=E2=80=99)
> iio_event_monitor.c:97:3: error: =E2=80=98IIO_MOD_LIGHT_UV=E2=80=99 undec=
lared here (not
> in a function)
>   [IIO_MOD_LIGHT_UV] =3D "uv",
>    ^~~~~~~~~~~~~~~~
> iio_event_monitor.c:97:3: error: array index in initializer not of
> integer type
> iio_event_monitor.c:97:3: note: (near initialization for
> =E2=80=98iio_modifier_names=E2=80=99)
> <builtin>: recipe for target 'iio_event_monitor.o' failed
>
> Switch to using the header from the kernel tree to ensure the newest
> defintions are always picked up.
>
> Signed-off-by: Laura Abbott <labbott@redhat.com>

Hi Laura,

Thanks for your patch. The solution here would be to install the
headers for your
new kernel in order to use the updated types.

That is you should run make headers_install.

$ make help | grep headers
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH

You can use INSTALL_HDR_PATH to put the headers in a custom directory
and tell gcc to also include this directory when searching for include head=
ers.

Daniel.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: Use type header from kernel tree
  2016-09-09 15:35   ` Daniel Baluta
  (?)
@ 2016-09-09 15:47   ` Laura Abbott
  2016-09-10 15:01     ` Jonathan Cameron
  -1 siblings, 1 reply; 6+ messages in thread
From: Laura Abbott @ 2016-09-09 15:47 UTC (permalink / raw)
  To: Daniel Baluta
  Cc: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald-Stadler, linux-iio, Linux Kernel Mailing List

On 09/09/2016 08:35 AM, Daniel Baluta wrote:
> On Fri, Sep 9, 2016 at 6:24 PM, Laura Abbott <labbott@redhat.com> wrote:
>>
>> The iio tools have been updated as new event types have been added to
>> the kernel. The tools currently use the standard system headers which
>> means that the system may not have the newest defintitions. This leads
>> to build failures when building newer tools on older hosts:
>>
>> gcc -Wall -g -D_GNU_SOURCE   -c -o iio_event_monitor.o
>> iio_event_monitor.c
>> iio_event_monitor.c:59:3: error: ‘IIO_UVINDEX’ undeclared here (not in a
>> function)
>>   [IIO_UVINDEX] = "uvindex",
>>    ^~~~~~~~~~~
>> iio_event_monitor.c:59:3: error: array index in initializer not of
>> integer type
>> iio_event_monitor.c:59:3: note: (near initialization for
>> ‘iio_chan_type_name_spec’)
>> iio_event_monitor.c:97:3: error: ‘IIO_MOD_LIGHT_UV’ undeclared here (not
>> in a function)
>>   [IIO_MOD_LIGHT_UV] = "uv",
>>    ^~~~~~~~~~~~~~~~
>> iio_event_monitor.c:97:3: error: array index in initializer not of
>> integer type
>> iio_event_monitor.c:97:3: note: (near initialization for
>> ‘iio_modifier_names’)
>> <builtin>: recipe for target 'iio_event_monitor.o' failed
>>
>> Switch to using the header from the kernel tree to ensure the newest
>> defintions are always picked up.
>>
>> Signed-off-by: Laura Abbott <labbott@redhat.com>
>
> Hi Laura,
>
> Thanks for your patch. The solution here would be to install the
> headers for your
> new kernel in order to use the updated types.
>
> That is you should run make headers_install.
>
> $ make help | grep headers
>   headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH
>
> You can use INSTALL_HDR_PATH to put the headers in a custom directory
> and tell gcc to also include this directory when searching for include headers.
>

That's a pretty ugly solution. We want to build this as part of Fedora
and installing another local copy of the headers in the build environment
complicates an already complicated build process. This is more work
for users building on their own as well. Several other tools in the tools
directory already use the headers from the kernel tree, is there a reason
iio doesn't want to as well?

Thanks,
Laura

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: Use type header from kernel tree
  2016-09-09 15:47   ` Laura Abbott
@ 2016-09-10 15:01     ` Jonathan Cameron
  2016-09-12 15:22       ` Laura Abbott
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Cameron @ 2016-09-10 15:01 UTC (permalink / raw)
  To: Laura Abbott, Daniel Baluta
  Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler,
	linux-iio, Linux Kernel Mailing List, ben

On 09/09/16 16:47, Laura Abbott wrote:
> On 09/09/2016 08:35 AM, Daniel Baluta wrote:
>> On Fri, Sep 9, 2016 at 6:24 PM, Laura Abbott <labbott@redhat.com> wrote:
>>>
>>> The iio tools have been updated as new event types have been added to
>>> the kernel. The tools currently use the standard system headers which
>>> means that the system may not have the newest defintitions. This leads
>>> to build failures when building newer tools on older hosts:
>>>
>>> gcc -Wall -g -D_GNU_SOURCE   -c -o iio_event_monitor.o
>>> iio_event_monitor.c
>>> iio_event_monitor.c:59:3: error: ‘IIO_UVINDEX’ undeclared here (not in a
>>> function)
>>>   [IIO_UVINDEX] = "uvindex",
>>>    ^~~~~~~~~~~
>>> iio_event_monitor.c:59:3: error: array index in initializer not of
>>> integer type
>>> iio_event_monitor.c:59:3: note: (near initialization for
>>> ‘iio_chan_type_name_spec’)
>>> iio_event_monitor.c:97:3: error: ‘IIO_MOD_LIGHT_UV’ undeclared here (not
>>> in a function)
>>>   [IIO_MOD_LIGHT_UV] = "uv",
>>>    ^~~~~~~~~~~~~~~~
>>> iio_event_monitor.c:97:3: error: array index in initializer not of
>>> integer type
>>> iio_event_monitor.c:97:3: note: (near initialization for
>>> ‘iio_modifier_names’)
>>> <builtin>: recipe for target 'iio_event_monitor.o' failed
>>>
>>> Switch to using the header from the kernel tree to ensure the newest
>>> defintions are always picked up.
>>>
>>> Signed-off-by: Laura Abbott <labbott@redhat.com>
>>
>> Hi Laura,
>>
>> Thanks for your patch. The solution here would be to install the
>> headers for your
>> new kernel in order to use the updated types.
>>
>> That is you should run make headers_install.
>>
>> $ make help | grep headers
>>   headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH
>>
>> You can use INSTALL_HDR_PATH to put the headers in a custom directory
>> and tell gcc to also include this directory when searching for include headers.
>>
> 
> That's a pretty ugly solution. We want to build this as part of Fedora
> and installing another local copy of the headers in the build environment
> complicates an already complicated build process. This is more work
> for users building on their own as well. Several other tools in the tools
> directory already use the headers from the kernel tree, is there a reason
> iio doesn't want to as well?
This got raised as a suggestion for discussion at the kernel summit this
year.  Clearly a somewhat contentious topic ;)

https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2016-September/003829.html

I'd prefer to see some resolution on that discussion before making any changes.
Looks like there are some moves afoot to standardise a lot of this stuff in
tools.

I've cc'd Ben who raised this particular issue in the first place.

Jonathan
> 
> Thanks,
> Laura

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] iio: Use type header from kernel tree
  2016-09-10 15:01     ` Jonathan Cameron
@ 2016-09-12 15:22       ` Laura Abbott
  0 siblings, 0 replies; 6+ messages in thread
From: Laura Abbott @ 2016-09-12 15:22 UTC (permalink / raw)
  To: Jonathan Cameron, Daniel Baluta
  Cc: Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald-Stadler,
	linux-iio, Linux Kernel Mailing List, ben

On 09/10/2016 08:01 AM, Jonathan Cameron wrote:
> On 09/09/16 16:47, Laura Abbott wrote:
>> On 09/09/2016 08:35 AM, Daniel Baluta wrote:
>>> On Fri, Sep 9, 2016 at 6:24 PM, Laura Abbott <labbott@redhat.com> wrote:
>>>>
>>>> The iio tools have been updated as new event types have been added to
>>>> the kernel. The tools currently use the standard system headers which
>>>> means that the system may not have the newest defintitions. This leads
>>>> to build failures when building newer tools on older hosts:
>>>>
>>>> gcc -Wall -g -D_GNU_SOURCE   -c -o iio_event_monitor.o
>>>> iio_event_monitor.c
>>>> iio_event_monitor.c:59:3: error: ‘IIO_UVINDEX’ undeclared here (not in a
>>>> function)
>>>>   [IIO_UVINDEX] = "uvindex",
>>>>    ^~~~~~~~~~~
>>>> iio_event_monitor.c:59:3: error: array index in initializer not of
>>>> integer type
>>>> iio_event_monitor.c:59:3: note: (near initialization for
>>>> ‘iio_chan_type_name_spec’)
>>>> iio_event_monitor.c:97:3: error: ‘IIO_MOD_LIGHT_UV’ undeclared here (not
>>>> in a function)
>>>>   [IIO_MOD_LIGHT_UV] = "uv",
>>>>    ^~~~~~~~~~~~~~~~
>>>> iio_event_monitor.c:97:3: error: array index in initializer not of
>>>> integer type
>>>> iio_event_monitor.c:97:3: note: (near initialization for
>>>> ‘iio_modifier_names’)
>>>> <builtin>: recipe for target 'iio_event_monitor.o' failed
>>>>
>>>> Switch to using the header from the kernel tree to ensure the newest
>>>> defintions are always picked up.
>>>>
>>>> Signed-off-by: Laura Abbott <labbott@redhat.com>
>>>
>>> Hi Laura,
>>>
>>> Thanks for your patch. The solution here would be to install the
>>> headers for your
>>> new kernel in order to use the updated types.
>>>
>>> That is you should run make headers_install.
>>>
>>> $ make help | grep headers
>>>   headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH
>>>
>>> You can use INSTALL_HDR_PATH to put the headers in a custom directory
>>> and tell gcc to also include this directory when searching for include headers.
>>>
>>
>> That's a pretty ugly solution. We want to build this as part of Fedora
>> and installing another local copy of the headers in the build environment
>> complicates an already complicated build process. This is more work
>> for users building on their own as well. Several other tools in the tools
>> directory already use the headers from the kernel tree, is there a reason
>> iio doesn't want to as well?
> This got raised as a suggestion for discussion at the kernel summit this
> year.  Clearly a somewhat contentious topic ;)
>
> https://lists.linuxfoundation.org/pipermail/ksummit-discuss/2016-September/003829.html
>
> I'd prefer to see some resolution on that discussion before making any changes.
> Looks like there are some moves afoot to standardise a lot of this stuff in
> tools.
>
> I've cc'd Ben who raised this particular issue in the first place.
>

Yes, some consistency would be useful across all tools. I really just want
'make' to work on all the tools directories without having to worry about
what kernel/headers are installed. I'll be around ksummit/plumbers so I'm
happy to talk more there.

Thanks,
Laura

> Jonathan
>>
>> Thanks,
>> Laura
>

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-09-12 15:22 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-09-09 15:24 [PATCH] iio: Use type header from kernel tree Laura Abbott
2016-09-09 15:35 ` Daniel Baluta
2016-09-09 15:35   ` Daniel Baluta
2016-09-09 15:47   ` Laura Abbott
2016-09-10 15:01     ` Jonathan Cameron
2016-09-12 15:22       ` Laura Abbott

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.