
Hi.
Let's suppose there is an application in tools directory that requires both "libfdt_env.h" (from uboot tree) and "errno.h" (from host environment). However, as both headers exist at both places, in the uboot tree and on the host environment, there is no way to solve this just by altering the include paths order. For any reshuffling both headers will be taken either from uboot or from host - which is undesired.
True. What we should do is not to tweak the inclusion order.
I guess we should follow what happended in Linux Kernel world:
They split out the user-space API content in separated headers and put them into new include/uapi/ and arch/$(ARCH)/include/uapi/ directories.
So, the right direction we should go is:
- Define the exact tools-API which should be exported to host program space. (For ex. image structure)
- Put the tool-API headers into a new directory. (I have no idea about a good dir name. include/host-api/ ? ) This directory is added to include-path for both U-Boot and host programs.
include include U-Boot ----------> include/host-api/ <-------- Host programs
U-boot includes: include/host-api/ + include/ + arch/$ARCH/include/
Host programs include: include/host-api/ + headers provided by environments
Comments are welcome !
Best Regards Masahiro Yamada