Messages in this thread | | | Subject | Re: [PATCH] iio: Use type header from kernel tree | From | Laura Abbott <> | Date | Mon, 12 Sep 2016 08:22:17 -0700 |
| |
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 >
| |