* [PATCH] dtc: Use quotes to include header files [not found] <7947240.7yktm8fT2X@wuerfel> @ 2014-12-16 2:13 ` Chris Packham 2014-12-16 14:44 ` Jon Loeliger 2015-01-29 15:56 ` Grant Likely 0 siblings, 2 replies; 5+ messages in thread From: Chris Packham @ 2014-12-16 2:13 UTC (permalink / raw) To: Grant Likely, Rob Herring Cc: devicetree, jdl, arnd, linux-kernel, Chris Packham, linux-arm-kernel Currently in arch and driver code that needs early access to the flattened device tree it is necessary to add specific CFLAGS so that when scripts/dtc/libfdt/libfdt.h is included the C preprocessor is able to locate the libfdt versions of libfdt_env.h and fdt.h without generating an error. We already provide an alternative linux-specific version of libfdt_env.h and directly include scripts/dtc/libfdt/fdt.h so the inclusion by scripts/dtc/libfdt/libfdt.h is a no-op thanks to the inclusion guards. By using quotes in scripts/dtc/libfdt/libfdt.h it picks up fdt.h and libfdt_env.h from the source directory without needing to add CFLAGS for the sources that happen to include linux/libfdt.h. Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> --- Hi, This probably should come via git://git.jdl.com/software/dtc.git however this appears to be inaccessible at the moment. Is this still the canonical source for the device tree compiler and libfdt or has it been moved? How much deviation from the canonical source are we prepared to live with in the kernel? This came up on the arm-LKML[1]. Basically in the name of backwards compatibility I need to add a .dt_fixup to add some required nodes to the flattened device tree prior to the tree being un-flattened and processed. This is a trick powerpc makes use of fairly extensively and there are a few other instances of this. For the files that include linux/libfdt.h we currently also have to specify additional CFLAGS to satisfy the CPP. $ git grep '<linux/libfdt.h>' arch/mips/cavium-octeon/octeon-platform.c:#include <linux/libfdt.h> arch/mips/cavium-octeon/setup.c:#include <linux/libfdt.h> arch/mips/mti-sead3/sead3-setup.c:#include <linux/libfdt.h> arch/powerpc/kernel/prom.c:#include <linux/libfdt.h> drivers/firmware/efi/libstub/fdt.c:#include <linux/libfdt.h> drivers/of/fdt.c:#include <linux/libfdt.h> drivers/of/fdt_address.c:#include <linux/libfdt.h> $ git grep -e '-I.*dtc/libfdt' arch/mips/cavium-octeon/Makefile:CFLAGS_octeon-platform.o = -I$(src)/../../../scripts/dtc/libfdt arch/mips/cavium-octeon/Makefile:CFLAGS_setup.o = -I$(src)/../../../scripts/dtc/libfdt arch/mips/mti-sead3/Makefile:CFLAGS_sead3-setup.o = -I$(src)/../../../scripts/dtc/libfdt arch/powerpc/kernel/Makefile:CFLAGS_prom.o = -I$(src)/../../../scripts/dtc/libfdt drivers/firmware/efi/libstub/Makefile:CFLAGS_fdt.o += -I$(srctree)/scripts/dtc/libfdt/ drivers/of/Makefile:CFLAGS_fdt.o = -I$(src)/../../scripts/dtc/libfdt drivers/of/Makefile:CFLAGS_fdt_address.o = -I$(src)/../../scripts/dtc/libfdt lib/Makefile: $(eval CFLAGS_$(file) = -I$(src)/../scripts/dtc/libfdt)) Simply by switching to using quotes we can avoid having this extra step. Assuming that this patch is acceptable a follow on clean up would be to remove the instances of CFLAGS_... listed above. Regards, Chris -- [1] - http://lists.infradead.org/pipermail/linux-arm-kernel/2014-December/310840.html scripts/dtc/libfdt/libfdt.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/dtc/libfdt/libfdt.h b/scripts/dtc/libfdt/libfdt.h index 73f4975..ea1ddcd 100644 --- a/scripts/dtc/libfdt/libfdt.h +++ b/scripts/dtc/libfdt/libfdt.h @@ -51,8 +51,8 @@ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#include <libfdt_env.h> -#include <fdt.h> +#include "libfdt_env.h" +#include "fdt.h" #define FDT_FIRST_SUPPORTED_VERSION 0x10 #define FDT_LAST_SUPPORTED_VERSION 0x11 -- 2.2.0.rc0 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] dtc: Use quotes to include header files 2014-12-16 2:13 ` [PATCH] dtc: Use quotes to include header files Chris Packham @ 2014-12-16 14:44 ` Jon Loeliger 2015-01-29 15:56 ` Grant Likely 1 sibling, 0 replies; 5+ messages in thread From: Jon Loeliger @ 2014-12-16 14:44 UTC (permalink / raw) To: Chris Packham Cc: devicetree, arnd, linux-kernel, Rob Herring, Grant Likely, linux-arm-kernel So, like, Chris Packham said: > Hi, > > This probably should come via git://git.jdl.com/software/dtc.git however > this appears to be inaccessible at the moment. Is this still the > canonical source for the device tree compiler and libfdt or has it been > moved? How much deviation from the canonical source are we prepared to > live with in the kernel? That is because the official DTC repository has moved to git.kernel.org! > Currently in arch and driver code that needs early access to the > flattened device tree it is necessary to add specific CFLAGS so that > when scripts/dtc/libfdt/libfdt.h is included the C preprocessor is able > to locate the libfdt versions of libfdt_env.h and fdt.h without > generating an error. > > We already provide an alternative linux-specific > version of libfdt_env.h and directly include scripts/dtc/libfdt/fdt.h > so the inclusion by scripts/dtc/libfdt/libfdt.h is a no-op thanks to the > inclusion guards. > > By using quotes in scripts/dtc/libfdt/libfdt.h it picks up fdt.h and > libfdt_env.h from the source directory without needing to add CFLAGS for > the sources that happen to include linux/libfdt.h. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > --- and: > diff --git a/scripts/dtc/libfdt/libfdt.h b/scripts/dtc/libfdt/libfdt.h > index 73f4975..ea1ddcd 100644 > --- a/scripts/dtc/libfdt/libfdt.h > +++ b/scripts/dtc/libfdt/libfdt.h > @@ -51,8 +51,8 @@ > * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > > -#include <libfdt_env.h> > -#include <fdt.h> > +#include "libfdt_env.h" > +#include "fdt.h" > > #define FDT_FIRST_SUPPORTED_VERSION 0x10 > #define FDT_LAST_SUPPORTED_VERSION 0x11 Hmm. I seem to recall that the use of angle brackets was intentional. I believe that was predicated on installing the FDT library on some target machine and needing it to be able to find the other header files in an installation, not source, directory. Minor repository spelunking suggests that the angle brackets have been around since Day Zero: commit 3da0f9a10dfa9b615d06c350c7b9fe29f360a6e0 David? HTH?, jdl ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] dtc: Use quotes to include header files 2014-12-16 2:13 ` [PATCH] dtc: Use quotes to include header files Chris Packham 2014-12-16 14:44 ` Jon Loeliger @ 2015-01-29 15:56 ` Grant Likely [not found] ` <20150129155646.BBA8AC413BE-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org> 1 sibling, 1 reply; 5+ messages in thread From: Grant Likely @ 2015-01-29 15:56 UTC (permalink / raw) To: Rob Herring Cc: jdl, arnd, devicetree, linux-kernel, linux-arm-kernel, Chris Packham On Tue, 16 Dec 2014 15:13:24 +1300 , Chris Packham <chris.packham@alliedtelesis.co.nz> wrote: > Currently in arch and driver code that needs early access to the > flattened device tree it is necessary to add specific CFLAGS so that > when scripts/dtc/libfdt/libfdt.h is included the C preprocessor is able > to locate the libfdt versions of libfdt_env.h and fdt.h without > generating an error. > > We already provide an alternative linux-specific > version of libfdt_env.h and directly include scripts/dtc/libfdt/fdt.h > so the inclusion by scripts/dtc/libfdt/libfdt.h is a no-op thanks to the > inclusion guards. > > By using quotes in scripts/dtc/libfdt/libfdt.h it picks up fdt.h and > libfdt_env.h from the source directory without needing to add CFLAGS for > the sources that happen to include linux/libfdt.h. > > Signed-off-by: Chris Packham <chris.packham@alliedtelesis.co.nz> > --- > Hi, > > This probably should come via git://git.jdl.com/software/dtc.git however > this appears to be inaccessible at the moment. Is this still the > canonical source for the device tree compiler and libfdt or has it been > moved? How much deviation from the canonical source are we prepared to > live with in the kernel? > > This came up on the arm-LKML[1]. Basically in the name of backwards > compatibility I need to add a .dt_fixup to add some required nodes to > the flattened device tree prior to the tree being un-flattened and > processed. This is a trick powerpc makes use of fairly extensively and > there are a few other instances of this. > > For the files that include linux/libfdt.h we currently also have to > specify additional CFLAGS to satisfy the CPP. > > $ git grep '<linux/libfdt.h>' > arch/mips/cavium-octeon/octeon-platform.c:#include <linux/libfdt.h> > arch/mips/cavium-octeon/setup.c:#include <linux/libfdt.h> > arch/mips/mti-sead3/sead3-setup.c:#include <linux/libfdt.h> > arch/powerpc/kernel/prom.c:#include <linux/libfdt.h> > drivers/firmware/efi/libstub/fdt.c:#include <linux/libfdt.h> > drivers/of/fdt.c:#include <linux/libfdt.h> > drivers/of/fdt_address.c:#include <linux/libfdt.h> > > $ git grep -e '-I.*dtc/libfdt' > arch/mips/cavium-octeon/Makefile:CFLAGS_octeon-platform.o = -I$(src)/../../../scripts/dtc/libfdt > arch/mips/cavium-octeon/Makefile:CFLAGS_setup.o = -I$(src)/../../../scripts/dtc/libfdt > arch/mips/mti-sead3/Makefile:CFLAGS_sead3-setup.o = -I$(src)/../../../scripts/dtc/libfdt > arch/powerpc/kernel/Makefile:CFLAGS_prom.o = -I$(src)/../../../scripts/dtc/libfdt > drivers/firmware/efi/libstub/Makefile:CFLAGS_fdt.o += -I$(srctree)/scripts/dtc/libfdt/ > drivers/of/Makefile:CFLAGS_fdt.o = -I$(src)/../../scripts/dtc/libfdt > drivers/of/Makefile:CFLAGS_fdt_address.o = -I$(src)/../../scripts/dtc/libfdt > lib/Makefile: $(eval CFLAGS_$(file) = -I$(src)/../scripts/dtc/libfdt)) > > Simply by switching to using quotes we can avoid having this extra step. > > Assuming that this patch is acceptable a follow on clean up would be to > remove the instances of CFLAGS_... listed above. > > Regards, > Chris > -- > [1] - http://lists.infradead.org/pipermail/linux-arm-kernel/2014-December/310840.html > > scripts/dtc/libfdt/libfdt.h | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/scripts/dtc/libfdt/libfdt.h b/scripts/dtc/libfdt/libfdt.h > index 73f4975..ea1ddcd 100644 > --- a/scripts/dtc/libfdt/libfdt.h > +++ b/scripts/dtc/libfdt/libfdt.h > @@ -51,8 +51,8 @@ > * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. > */ > > -#include <libfdt_env.h> > -#include <fdt.h> > +#include "libfdt_env.h" > +#include "fdt.h" Until this is resolved with upstream DTC, what about adding dummy libfdt.h, libfdt_env.h and fdt.h to include/linux? That would get this out of the blocker path for merging this code. g. ^ permalink raw reply [flat|nested] 5+ messages in thread
[parent not found: <20150129155646.BBA8AC413BE-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>]
* Re: [PATCH] dtc: Use quotes to include header files [not found] ` <20150129155646.BBA8AC413BE-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org> @ 2015-01-29 16:30 ` Rob Herring 2015-01-30 16:21 ` Chris Packham 1 sibling, 0 replies; 5+ messages in thread From: Rob Herring @ 2015-01-29 16:30 UTC (permalink / raw) To: Grant Likely Cc: Chris Packham, Rob Herring, Jon Loeliger, Arnd Bergmann, devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org On Thu, Jan 29, 2015 at 9:56 AM, Grant Likely <grant.likely-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> wrote: > On Tue, 16 Dec 2014 15:13:24 +1300 > , Chris Packham <chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> > wrote: >> Currently in arch and driver code that needs early access to the >> flattened device tree it is necessary to add specific CFLAGS so that >> when scripts/dtc/libfdt/libfdt.h is included the C preprocessor is able >> to locate the libfdt versions of libfdt_env.h and fdt.h without >> generating an error. [...] >> diff --git a/scripts/dtc/libfdt/libfdt.h b/scripts/dtc/libfdt/libfdt.h >> index 73f4975..ea1ddcd 100644 >> --- a/scripts/dtc/libfdt/libfdt.h >> +++ b/scripts/dtc/libfdt/libfdt.h >> @@ -51,8 +51,8 @@ >> * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >> */ >> >> -#include <libfdt_env.h> >> -#include <fdt.h> >> +#include "libfdt_env.h" >> +#include "fdt.h" > > Until this is resolved with upstream DTC, what about adding dummy > libfdt.h, libfdt_env.h and fdt.h to include/linux? That would get this > out of the blocker path for merging this code. 2 of those already exist. Is it only a matter of adding fdt.h or is there more to it? This could also be carried as part of the import script to fix up. Rob -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] dtc: Use quotes to include header files [not found] ` <20150129155646.BBA8AC413BE-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org> 2015-01-29 16:30 ` Rob Herring @ 2015-01-30 16:21 ` Chris Packham 1 sibling, 0 replies; 5+ messages in thread From: Chris Packham @ 2015-01-30 16:21 UTC (permalink / raw) To: Grant Likely Cc: Rob Herring, jdl-CYoMK+44s/E, arnd-r2nGTMty4D4, devicetree-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Thu, 29 Jan 2015, Grant Likely wrote: > On Tue, 16 Dec 2014 15:13:24 +1300 > , Chris Packham <chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> > wrote: >> Currently in arch and driver code that needs early access to the >> flattened device tree it is necessary to add specific CFLAGS so that >> when scripts/dtc/libfdt/libfdt.h is included the C preprocessor is able >> to locate the libfdt versions of libfdt_env.h and fdt.h without >> generating an error. >> >> We already provide an alternative linux-specific >> version of libfdt_env.h and directly include scripts/dtc/libfdt/fdt.h >> so the inclusion by scripts/dtc/libfdt/libfdt.h is a no-op thanks to the >> inclusion guards. >> >> By using quotes in scripts/dtc/libfdt/libfdt.h it picks up fdt.h and >> libfdt_env.h from the source directory without needing to add CFLAGS for >> the sources that happen to include linux/libfdt.h. >> >> Signed-off-by: Chris Packham <chris.packham-6g8wRflRTwXFdCa3tKVlE6U/zSkkHjvu@public.gmane.org> >> --- >> Hi, >> >> This probably should come via git://git.jdl.com/software/dtc.git however >> this appears to be inaccessible at the moment. Is this still the >> canonical source for the device tree compiler and libfdt or has it been >> moved? How much deviation from the canonical source are we prepared to >> live with in the kernel? >> >> This came up on the arm-LKML[1]. Basically in the name of backwards >> compatibility I need to add a .dt_fixup to add some required nodes to >> the flattened device tree prior to the tree being un-flattened and >> processed. This is a trick powerpc makes use of fairly extensively and >> there are a few other instances of this. >> >> For the files that include linux/libfdt.h we currently also have to >> specify additional CFLAGS to satisfy the CPP. >> >> $ git grep '<linux/libfdt.h>' >> arch/mips/cavium-octeon/octeon-platform.c:#include <linux/libfdt.h> >> arch/mips/cavium-octeon/setup.c:#include <linux/libfdt.h> >> arch/mips/mti-sead3/sead3-setup.c:#include <linux/libfdt.h> >> arch/powerpc/kernel/prom.c:#include <linux/libfdt.h> >> drivers/firmware/efi/libstub/fdt.c:#include <linux/libfdt.h> >> drivers/of/fdt.c:#include <linux/libfdt.h> >> drivers/of/fdt_address.c:#include <linux/libfdt.h> >> >> $ git grep -e '-I.*dtc/libfdt' >> arch/mips/cavium-octeon/Makefile:CFLAGS_octeon-platform.o = -I$(src)/../../../scripts/dtc/libfdt >> arch/mips/cavium-octeon/Makefile:CFLAGS_setup.o = -I$(src)/../../../scripts/dtc/libfdt >> arch/mips/mti-sead3/Makefile:CFLAGS_sead3-setup.o = -I$(src)/../../../scripts/dtc/libfdt >> arch/powerpc/kernel/Makefile:CFLAGS_prom.o = -I$(src)/../../../scripts/dtc/libfdt >> drivers/firmware/efi/libstub/Makefile:CFLAGS_fdt.o += -I$(srctree)/scripts/dtc/libfdt/ >> drivers/of/Makefile:CFLAGS_fdt.o = -I$(src)/../../scripts/dtc/libfdt >> drivers/of/Makefile:CFLAGS_fdt_address.o = -I$(src)/../../scripts/dtc/libfdt >> lib/Makefile: $(eval CFLAGS_$(file) = -I$(src)/../scripts/dtc/libfdt)) >> >> Simply by switching to using quotes we can avoid having this extra step. >> >> Assuming that this patch is acceptable a follow on clean up would be to >> remove the instances of CFLAGS_... listed above. >> >> Regards, >> Chris >> -- >> [1] - http://lists.infradead.org/pipermail/linux-arm-kernel/2014-December/310840.html >> >> scripts/dtc/libfdt/libfdt.h | 4 ++-- >> 1 file changed, 2 insertions(+), 2 deletions(-) >> >> diff --git a/scripts/dtc/libfdt/libfdt.h b/scripts/dtc/libfdt/libfdt.h >> index 73f4975..ea1ddcd 100644 >> --- a/scripts/dtc/libfdt/libfdt.h >> +++ b/scripts/dtc/libfdt/libfdt.h >> @@ -51,8 +51,8 @@ >> * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. >> */ >> >> -#include <libfdt_env.h> >> -#include <fdt.h> >> +#include "libfdt_env.h" >> +#include "fdt.h" > > Until this is resolved with upstream DTC, what about adding dummy > libfdt.h, libfdt_env.h and fdt.h to include/linux? That would get this > out of the blocker path for merging this code. > > g. > I'm traveling right now but I could work up an example patch next week. >From the other discussions I think there are arguments in favor of keeping the angle brackets for the userspace libfdt usage. Any change in the kernel either adding dummy files in the system include path or performing a subsititution in an import script would probably be permanent. -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2015-01-30 16:21 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <7947240.7yktm8fT2X@wuerfel>
2014-12-16 2:13 ` [PATCH] dtc: Use quotes to include header files Chris Packham
2014-12-16 14:44 ` Jon Loeliger
2015-01-29 15:56 ` Grant Likely
[not found] ` <20150129155646.BBA8AC413BE-WNowdnHR2B42iJbIjFUEsiwD8/FfD2ys@public.gmane.org>
2015-01-29 16:30 ` Rob Herring
2015-01-30 16:21 ` Chris Packham
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox