Message ID | 20180830095748.30297-1-david.degrave@mind.be |
---|---|
State | Changes Requested |
Headers | show |
Series | [1/1] linux/linux.mk: Use '-isystem' instead of '-I' in HOST_CFLAGS | expand |
Hello, On Thu, 30 Aug 2018 11:57:48 +0200, David De Grave (Essensium/Mind) wrote: > Since the last update of the DTC package, linux build breaks at some point > with the following error: > > In file included from {output}/host/include/libfdt.h:54:0, > from scripts/dtc/libfdt/fdt.c:54: > {output}/host/include/libfdt_env.h:82:24: error: redefinition of \ > ‘fdt16_to_cpu’ > static inline uint16_t fdt16_to_cpu(fdt16_t x) > ^~~~~~~~~~~~ > In file included from scripts/dtc/libfdt/fdt.c:51:0: > scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of \ > ‘fdt16_to_cpu’ was here > > This is because the HOST_CFLAGS is added before Linux's makefile add it's > own local ones (-Iscripts/dtc/libfdt), resulting in a mix of local and host > headers beeing used. > > So, to fix this the '-I' is substituted by '-isystem' to let it search for > the headers in the right location first. > > Signed-off-by: David De Grave (Essensium/Mind) <david.degrave@mind.be> > --- > linux/linux.mk | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) I suspect this one is superseded by your new patch series http://patchwork.ozlabs.org/project/buildroot/list/?series=63524, so I've marked this patch as Changes Requested. Note that http://patchwork.ozlabs.org/project/buildroot/list/?series=63524 doesn't contain PATCH 2/3 due to a patchwork issue when associating patches to series, but PATCH 2/3 has been recorded by patchwork. Best regards, Thomas
Hi Thomas, Indeed the series can replace that one... Thanks. Regards, David. On Sat, Sep 1, 2018 at 9:55 AM, Thomas Petazzoni < thomas.petazzoni@bootlin.com> wrote: > Hello, > > On Thu, 30 Aug 2018 11:57:48 +0200, David De Grave (Essensium/Mind) > wrote: > > Since the last update of the DTC package, linux build breaks at some > point > > with the following error: > > > > In file included from {output}/host/include/libfdt.h:54:0, > > from scripts/dtc/libfdt/fdt.c:54: > > {output}/host/include/libfdt_env.h:82:24: error: redefinition of \ > > ‘fdt16_to_cpu’ > > static inline uint16_t fdt16_to_cpu(fdt16_t x) > > ^~~~~~~~~~~~ > > In file included from scripts/dtc/libfdt/fdt.c:51:0: > > scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of > \ > > ‘fdt16_to_cpu’ was here > > > > This is because the HOST_CFLAGS is added before Linux's makefile add it's > > own local ones (-Iscripts/dtc/libfdt), resulting in a mix of local and > host > > headers beeing used. > > > > So, to fix this the '-I' is substituted by '-isystem' to let it search > for > > the headers in the right location first. > > > > Signed-off-by: David De Grave (Essensium/Mind) <david.degrave@mind.be> > > --- > > linux/linux.mk | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > I suspect this one is superseded by your new patch series > http://patchwork.ozlabs.org/project/buildroot/list/?series=63524, so > I've marked this patch as Changes Requested. > > Note that > http://patchwork.ozlabs.org/project/buildroot/list/?series=63524 > doesn't contain PATCH 2/3 due to a patchwork issue when associating > patches to series, but PATCH 2/3 has been recorded by patchwork. > > Best regards, > > Thomas > -- > Thomas Petazzoni, CTO, Bootlin (formerly Free Electrons) > Embedded Linux and Kernel engineering > https://bootlin.com >
On 01/09/2018 09:55, Thomas Petazzoni wrote: > Hello, > > On Thu, 30 Aug 2018 11:57:48 +0200, David De Grave (Essensium/Mind) > wrote: >> Since the last update of the DTC package, linux build breaks at some point >> with the following error: >> >> In file included from {output}/host/include/libfdt.h:54:0, >> from scripts/dtc/libfdt/fdt.c:54: >> {output}/host/include/libfdt_env.h:82:24: error: redefinition of \ >> ‘fdt16_to_cpu’ >> static inline uint16_t fdt16_to_cpu(fdt16_t x) >> ^~~~~~~~~~~~ >> In file included from scripts/dtc/libfdt/fdt.c:51:0: >> scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of \ >> ‘fdt16_to_cpu’ was here >> >> This is because the HOST_CFLAGS is added before Linux's makefile add it's >> own local ones (-Iscripts/dtc/libfdt), resulting in a mix of local and host >> headers beeing used. >> >> So, to fix this the '-I' is substituted by '-isystem' to let it search for >> the headers in the right location first. >> >> Signed-off-by: David De Grave (Essensium/Mind) <david.degrave@mind.be> >> --- >> linux/linux.mk | 2 +- >> 1 file changed, 1 insertion(+), 1 deletion(-) > > I suspect this one is superseded by your new patch series > http://patchwork.ozlabs.org/project/buildroot/list/?series=63524, so > I've marked this patch as Changes Requested. Actually, the idea was to apply this patch on master because it fixes a bug, and the series on next because it is more invasive. It turns out, however, that the problem only occurs for the beaglebone kernel on github, because that one builds its fdtoverlay host tool. "Normal" kernels don't build libfdt at all for the host, so the error reported doesn't occur. > > Note that > http://patchwork.ozlabs.org/project/buildroot/list/?series=63524 > doesn't contain PATCH 2/3 due to a patchwork issue when associating > patches to series, but PATCH 2/3 has been recorded by patchwork. Patch 2/3 actually doesn't apply, it's a revert of this patch... So I've marked that one as N/A. Regards, Arnout > > Best regards, > > Thomas >
diff --git a/linux/linux.mk b/linux/linux.mk index 675e7906a8..a31617ca22 100644 --- a/linux/linux.mk +++ b/linux/linux.mk @@ -115,7 +115,7 @@ LINUX_EXTRA_DOWNLOADS += $(ARCH_XTENSA_OVERLAY_URL) endif LINUX_MAKE_FLAGS = \ - HOSTCC="$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS)" \ + HOSTCC="$(HOSTCC) $(patsubst -I%,-isystem %,$(HOST_CFLAGS)) $(HOST_LDFLAGS)" \ ARCH=$(KERNEL_ARCH) \ INSTALL_MOD_PATH=$(TARGET_DIR) \ CROSS_COMPILE="$(TARGET_CROSS)" \
Since the last update of the DTC package, linux build breaks at some point with the following error: In file included from {output}/host/include/libfdt.h:54:0, from scripts/dtc/libfdt/fdt.c:54: {output}/host/include/libfdt_env.h:82:24: error: redefinition of \ ‘fdt16_to_cpu’ static inline uint16_t fdt16_to_cpu(fdt16_t x) ^~~~~~~~~~~~ In file included from scripts/dtc/libfdt/fdt.c:51:0: scripts/dtc/libfdt/libfdt_env.h:81:24: note: previous definition of \ ‘fdt16_to_cpu’ was here This is because the HOST_CFLAGS is added before Linux's makefile add it's own local ones (-Iscripts/dtc/libfdt), resulting in a mix of local and host headers beeing used. So, to fix this the '-I' is substituted by '-isystem' to let it search for the headers in the right location first. Signed-off-by: David De Grave (Essensium/Mind) <david.degrave@mind.be> --- linux/linux.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)