[U-Boot] idirafter causes host sha256.h to be included

Jeroen Hofstee dasuboot at myspectrum.nl
Sat May 24 23:09:39 CEST 2014


Hello Simon,

On vr, 2014-05-23 at 15:37 -1000, Simon Glass wrote:

> On 9 May 2014 12:31, Jeroen Hofstee <dasuboot at myspectrum.nl> wrote:
> > Hello,
> >
> > tools/Makefile uses the following substitution
> >
> > HOST_EXTRACFLAGS += -include $(srctree)/include/libfdt_env.h \
> >                 $(patsubst -I%,-idirafter%, $(UBOOTINCLUDE)) \
> >                 ...
> >
> > Which adds -idirafterinclude when compiling image-fit.c. Since
> > mentioned file includes sha256.h, which is a system include on FreeBSD,
> > the system version is included instead of the intended U-boot
> > include/sha256.h and building fails. Without the substitution it builds
> > successfully.
> >
> > What is the intention of using idirafter?
> 
> I believe this is so that U-Boot headers are available when building.
> You might need to add a work-around like we have for libfdt_env.h. It
> is also possible that there is a more general solution, sorry I'm not
> sure what it might be.
> 

Thanks for mentioning the libfdt_env.h. As mentioned in the thread
discussing the patch errno.h is one of the reasons to require the
dirafter, since the tools need the host version of it. A possible
solution could perhaps be to place such standard headers in a separate
directory and only include it for an u-boot build. The tools can then be
compiled without the idirafter and not including this location as an
include path.

Regards,
Jeroen



More information about the U-Boot mailing list