Re: [PATCH] tools: iio: add ability to pass kernel headers
On 04/20/17 06:53, Sekhar Nori wrote: > On Tuesday 18 April 2017 03:42 PM, Sekhar Nori wrote: >> Hi Jonathan, Randy, >> >> On Friday 14 April 2017 08:53 PM, Jonathan Cameron wrote: >>> On 14/04/17 16:23, Randy Dunlap wrote: On 04/14/17 07:42, Jonathan Cameron wrote: > On 11/04/17 12:06, Sekhar Nori wrote: >> Very often, especially when cross compiling, there is a need >> to pass kernel headers different from those installed on the >> build machine. >> >> Add support for doing this for iio utils by using the >> 'INSTALL_HDR_PATH' environment variable. This is supported by >> 'make headers_install' for installing kernel headers at a >> user specified location. So you will do: >> >> $ make headers_install ARCH=arm INSTALL_HDR_PATH= >> $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= >> >> Signed-off-by: Sekhar Nori> > It's a bit of an oddity as that usually refers to where to put > the headers rather than where they are. > > Is there a more general solution? I couldn't find anything > particularly consistent in tools. Whatever the solution is, it should be used for all tools/, not just iio. >>> Agreed! >> >> Alright, I will try to come up with something more generic and post >> another version. > > I have been looking at this, and coming up with something generic is > more complicated than I thought. The problem is the flexibility thats > allowed in building many of the tools. For example, you can build the > led tools using any of these three methods: > > $ make -C tools/leds > $ make -C /tools leds > $ make -C /tools/leds > > The last one is specifically complicated because it totally bypasses all > top level makefiles. I think adding dependency with a top level makefile > will be a step backwards at least for leds. > > Currently the leds makefile adds '-I../../include/uapi' to CFLAGS to > access the latest kernel headers. Something similar is done for some > other tools too. This makes it work for all the build cases above. I > propose we do something similar for iio too. Thanks for diving into all of that. I am not surprised at what you have found. I believe that you can go ahead with your iio proposal. -- ~Randy
Re: [PATCH] tools: iio: add ability to pass kernel headers
On 04/20/17 06:53, Sekhar Nori wrote: > On Tuesday 18 April 2017 03:42 PM, Sekhar Nori wrote: >> Hi Jonathan, Randy, >> >> On Friday 14 April 2017 08:53 PM, Jonathan Cameron wrote: >>> On 14/04/17 16:23, Randy Dunlap wrote: On 04/14/17 07:42, Jonathan Cameron wrote: > On 11/04/17 12:06, Sekhar Nori wrote: >> Very often, especially when cross compiling, there is a need >> to pass kernel headers different from those installed on the >> build machine. >> >> Add support for doing this for iio utils by using the >> 'INSTALL_HDR_PATH' environment variable. This is supported by >> 'make headers_install' for installing kernel headers at a >> user specified location. So you will do: >> >> $ make headers_install ARCH=arm INSTALL_HDR_PATH= >> $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= >> >> Signed-off-by: Sekhar Nori > > It's a bit of an oddity as that usually refers to where to put > the headers rather than where they are. > > Is there a more general solution? I couldn't find anything > particularly consistent in tools. Whatever the solution is, it should be used for all tools/, not just iio. >>> Agreed! >> >> Alright, I will try to come up with something more generic and post >> another version. > > I have been looking at this, and coming up with something generic is > more complicated than I thought. The problem is the flexibility thats > allowed in building many of the tools. For example, you can build the > led tools using any of these three methods: > > $ make -C tools/leds > $ make -C /tools leds > $ make -C /tools/leds > > The last one is specifically complicated because it totally bypasses all > top level makefiles. I think adding dependency with a top level makefile > will be a step backwards at least for leds. > > Currently the leds makefile adds '-I../../include/uapi' to CFLAGS to > access the latest kernel headers. Something similar is done for some > other tools too. This makes it work for all the build cases above. I > propose we do something similar for iio too. Thanks for diving into all of that. I am not surprised at what you have found. I believe that you can go ahead with your iio proposal. -- ~Randy
Re: [PATCH] tools: iio: add ability to pass kernel headers
On Tuesday 18 April 2017 03:42 PM, Sekhar Nori wrote: > Hi Jonathan, Randy, > > On Friday 14 April 2017 08:53 PM, Jonathan Cameron wrote: >> On 14/04/17 16:23, Randy Dunlap wrote: >>> On 04/14/17 07:42, Jonathan Cameron wrote: On 11/04/17 12:06, Sekhar Nori wrote: > Very often, especially when cross compiling, there is a need > to pass kernel headers different from those installed on the > build machine. > > Add support for doing this for iio utils by using the > 'INSTALL_HDR_PATH' environment variable. This is supported by > 'make headers_install' for installing kernel headers at a > user specified location. So you will do: > > $ make headers_install ARCH=arm INSTALL_HDR_PATH= > $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= > > Signed-off-by: Sekhar NoriIt's a bit of an oddity as that usually refers to where to put the headers rather than where they are. Is there a more general solution? I couldn't find anything particularly consistent in tools. >>> >>> Whatever the solution is, it should be used for all tools/, not just iio. >>> >> Agreed! > > Alright, I will try to come up with something more generic and post > another version. I have been looking at this, and coming up with something generic is more complicated than I thought. The problem is the flexibility thats allowed in building many of the tools. For example, you can build the led tools using any of these three methods: $ make -C tools/leds $ make -C /tools leds $ make -C /tools/leds The last one is specifically complicated because it totally bypasses all top level makefiles. I think adding dependency with a top level makefile will be a step backwards at least for leds. Currently the leds makefile adds '-I../../include/uapi' to CFLAGS to access the latest kernel headers. Something similar is done for some other tools too. This makes it work for all the build cases above. I propose we do something similar for iio too. Thanks, Sekhar
Re: [PATCH] tools: iio: add ability to pass kernel headers
On Tuesday 18 April 2017 03:42 PM, Sekhar Nori wrote: > Hi Jonathan, Randy, > > On Friday 14 April 2017 08:53 PM, Jonathan Cameron wrote: >> On 14/04/17 16:23, Randy Dunlap wrote: >>> On 04/14/17 07:42, Jonathan Cameron wrote: On 11/04/17 12:06, Sekhar Nori wrote: > Very often, especially when cross compiling, there is a need > to pass kernel headers different from those installed on the > build machine. > > Add support for doing this for iio utils by using the > 'INSTALL_HDR_PATH' environment variable. This is supported by > 'make headers_install' for installing kernel headers at a > user specified location. So you will do: > > $ make headers_install ARCH=arm INSTALL_HDR_PATH= > $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= > > Signed-off-by: Sekhar Nori It's a bit of an oddity as that usually refers to where to put the headers rather than where they are. Is there a more general solution? I couldn't find anything particularly consistent in tools. >>> >>> Whatever the solution is, it should be used for all tools/, not just iio. >>> >> Agreed! > > Alright, I will try to come up with something more generic and post > another version. I have been looking at this, and coming up with something generic is more complicated than I thought. The problem is the flexibility thats allowed in building many of the tools. For example, you can build the led tools using any of these three methods: $ make -C tools/leds $ make -C /tools leds $ make -C /tools/leds The last one is specifically complicated because it totally bypasses all top level makefiles. I think adding dependency with a top level makefile will be a step backwards at least for leds. Currently the leds makefile adds '-I../../include/uapi' to CFLAGS to access the latest kernel headers. Something similar is done for some other tools too. This makes it work for all the build cases above. I propose we do something similar for iio too. Thanks, Sekhar
Re: [PATCH] tools: iio: add ability to pass kernel headers
Hi Jonathan, Randy, On Friday 14 April 2017 08:53 PM, Jonathan Cameron wrote: > On 14/04/17 16:23, Randy Dunlap wrote: >> On 04/14/17 07:42, Jonathan Cameron wrote: >>> On 11/04/17 12:06, Sekhar Nori wrote: Very often, especially when cross compiling, there is a need to pass kernel headers different from those installed on the build machine. Add support for doing this for iio utils by using the 'INSTALL_HDR_PATH' environment variable. This is supported by 'make headers_install' for installing kernel headers at a user specified location. So you will do: $ make headers_install ARCH=arm INSTALL_HDR_PATH= $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= Signed-off-by: Sekhar Nori>>> >>> It's a bit of an oddity as that usually refers to where to put >>> the headers rather than where they are. >>> >>> Is there a more general solution? I couldn't find anything >>> particularly consistent in tools. >> >> Whatever the solution is, it should be used for all tools/, not just iio. >> > Agreed! Alright, I will try to come up with something more generic and post another version. Thanks, Sekhar
Re: [PATCH] tools: iio: add ability to pass kernel headers
Hi Jonathan, Randy, On Friday 14 April 2017 08:53 PM, Jonathan Cameron wrote: > On 14/04/17 16:23, Randy Dunlap wrote: >> On 04/14/17 07:42, Jonathan Cameron wrote: >>> On 11/04/17 12:06, Sekhar Nori wrote: Very often, especially when cross compiling, there is a need to pass kernel headers different from those installed on the build machine. Add support for doing this for iio utils by using the 'INSTALL_HDR_PATH' environment variable. This is supported by 'make headers_install' for installing kernel headers at a user specified location. So you will do: $ make headers_install ARCH=arm INSTALL_HDR_PATH= $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= Signed-off-by: Sekhar Nori >>> >>> It's a bit of an oddity as that usually refers to where to put >>> the headers rather than where they are. >>> >>> Is there a more general solution? I couldn't find anything >>> particularly consistent in tools. >> >> Whatever the solution is, it should be used for all tools/, not just iio. >> > Agreed! Alright, I will try to come up with something more generic and post another version. Thanks, Sekhar
Re: [PATCH] tools: iio: add ability to pass kernel headers
On 14/04/17 16:23, Randy Dunlap wrote: > On 04/14/17 07:42, Jonathan Cameron wrote: >> On 11/04/17 12:06, Sekhar Nori wrote: >>> Very often, especially when cross compiling, there is a need >>> to pass kernel headers different from those installed on the >>> build machine. >>> >>> Add support for doing this for iio utils by using the >>> 'INSTALL_HDR_PATH' environment variable. This is supported by >>> 'make headers_install' for installing kernel headers at a >>> user specified location. So you will do: >>> >>> $ make headers_install ARCH=arm INSTALL_HDR_PATH= >>> $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= >>> >>> Signed-off-by: Sekhar Nori>> >> It's a bit of an oddity as that usually refers to where to put >> the headers rather than where they are. >> >> Is there a more general solution? I couldn't find anything >> particularly consistent in tools. > > Whatever the solution is, it should be used for all tools/, not just iio. > Agreed! >>> --- >>> tools/iio/Makefile | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) > >
Re: [PATCH] tools: iio: add ability to pass kernel headers
On 14/04/17 16:23, Randy Dunlap wrote: > On 04/14/17 07:42, Jonathan Cameron wrote: >> On 11/04/17 12:06, Sekhar Nori wrote: >>> Very often, especially when cross compiling, there is a need >>> to pass kernel headers different from those installed on the >>> build machine. >>> >>> Add support for doing this for iio utils by using the >>> 'INSTALL_HDR_PATH' environment variable. This is supported by >>> 'make headers_install' for installing kernel headers at a >>> user specified location. So you will do: >>> >>> $ make headers_install ARCH=arm INSTALL_HDR_PATH= >>> $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= >>> >>> Signed-off-by: Sekhar Nori >> >> It's a bit of an oddity as that usually refers to where to put >> the headers rather than where they are. >> >> Is there a more general solution? I couldn't find anything >> particularly consistent in tools. > > Whatever the solution is, it should be used for all tools/, not just iio. > Agreed! >>> --- >>> tools/iio/Makefile | 2 +- >>> 1 file changed, 1 insertion(+), 1 deletion(-) > >
Re: [PATCH] tools: iio: add ability to pass kernel headers
On 04/14/17 07:42, Jonathan Cameron wrote: > On 11/04/17 12:06, Sekhar Nori wrote: >> Very often, especially when cross compiling, there is a need >> to pass kernel headers different from those installed on the >> build machine. >> >> Add support for doing this for iio utils by using the >> 'INSTALL_HDR_PATH' environment variable. This is supported by >> 'make headers_install' for installing kernel headers at a >> user specified location. So you will do: >> >> $ make headers_install ARCH=arm INSTALL_HDR_PATH= >> $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= >> >> Signed-off-by: Sekhar Nori> > It's a bit of an oddity as that usually refers to where to put > the headers rather than where they are. > > Is there a more general solution? I couldn't find anything > particularly consistent in tools. Whatever the solution is, it should be used for all tools/, not just iio. >> --- >> tools/iio/Makefile | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) -- ~Randy
Re: [PATCH] tools: iio: add ability to pass kernel headers
On 04/14/17 07:42, Jonathan Cameron wrote: > On 11/04/17 12:06, Sekhar Nori wrote: >> Very often, especially when cross compiling, there is a need >> to pass kernel headers different from those installed on the >> build machine. >> >> Add support for doing this for iio utils by using the >> 'INSTALL_HDR_PATH' environment variable. This is supported by >> 'make headers_install' for installing kernel headers at a >> user specified location. So you will do: >> >> $ make headers_install ARCH=arm INSTALL_HDR_PATH= >> $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= >> >> Signed-off-by: Sekhar Nori > > It's a bit of an oddity as that usually refers to where to put > the headers rather than where they are. > > Is there a more general solution? I couldn't find anything > particularly consistent in tools. Whatever the solution is, it should be used for all tools/, not just iio. >> --- >> tools/iio/Makefile | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) -- ~Randy
Re: [PATCH] tools: iio: add ability to pass kernel headers
On 11/04/17 12:06, Sekhar Nori wrote: > Very often, especially when cross compiling, there is a need > to pass kernel headers different from those installed on the > build machine. > > Add support for doing this for iio utils by using the > 'INSTALL_HDR_PATH' environment variable. This is supported by > 'make headers_install' for installing kernel headers at a > user specified location. So you will do: > > $ make headers_install ARCH=arm INSTALL_HDR_PATH= > $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= > > Signed-off-by: Sekhar NoriIt's a bit of an oddity as that usually refers to where to put the headers rather than where they are. Is there a more general solution? I couldn't find anything particularly consistent in tools. > --- > tools/iio/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/iio/Makefile b/tools/iio/Makefile > index 5446d625e17d..75607043d6e2 100644 > --- a/tools/iio/Makefile > +++ b/tools/iio/Makefile > @@ -1,5 +1,5 @@ > CC = $(CROSS_COMPILE)gcc > -CFLAGS += -Wall -g -D_GNU_SOURCE > +CFLAGS += -Wall -g -D_GNU_SOURCE -I$(INSTALL_HDR_PATH)/include > > BINDIR=usr/bin > INSTALL_PROGRAM=install -m 755 -p >
Re: [PATCH] tools: iio: add ability to pass kernel headers
On 11/04/17 12:06, Sekhar Nori wrote: > Very often, especially when cross compiling, there is a need > to pass kernel headers different from those installed on the > build machine. > > Add support for doing this for iio utils by using the > 'INSTALL_HDR_PATH' environment variable. This is supported by > 'make headers_install' for installing kernel headers at a > user specified location. So you will do: > > $ make headers_install ARCH=arm INSTALL_HDR_PATH= > $ make -C tools/iio ARCH=arm INSTALL_HDR_PATH= > > Signed-off-by: Sekhar Nori It's a bit of an oddity as that usually refers to where to put the headers rather than where they are. Is there a more general solution? I couldn't find anything particularly consistent in tools. > --- > tools/iio/Makefile | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/tools/iio/Makefile b/tools/iio/Makefile > index 5446d625e17d..75607043d6e2 100644 > --- a/tools/iio/Makefile > +++ b/tools/iio/Makefile > @@ -1,5 +1,5 @@ > CC = $(CROSS_COMPILE)gcc > -CFLAGS += -Wall -g -D_GNU_SOURCE > +CFLAGS += -Wall -g -D_GNU_SOURCE -I$(INSTALL_HDR_PATH)/include > > BINDIR=usr/bin > INSTALL_PROGRAM=install -m 755 -p >