
Hello,
on some systems (for example Fedora Core 4) U-Boot builds with the following wanrings only:
... In file included from /home/wd/git/u-boot/include/libfdt_env.h:33, from fdt.c:51: /usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead! In file included from /home/wd/git/u-boot/include/libfdt_env.h:33, from fdt_ro.c:51: /usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead! In file included from /home/wd/git/u-boot/include/libfdt_env.h:33, from fdt_rw.c:51: /usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead! In file included from /home/wd/git/u-boot/include/libfdt_env.h:33, from fdt_strerror.c:51: /usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead! In file included from /home/wd/git/u-boot/include/libfdt_env.h:33, from fdt_wip.c:51: /usr/include/asm/byteorder.h:6:2: warning: #warning using private kernel header; include <endian.h> instead! ...
The suggested change works in image.h, for example like this:
=======================================================================
diff --git a/include/image.h b/include/image.h index 82e6345..1598b61 100644 --- a/include/image.h +++ b/include/image.h @@ -33,27 +33,29 @@ #ifndef __IMAGE_H__ #define __IMAGE_H__
-#include <asm/byteorder.h> -#include <command.h> - -#ifndef USE_HOSTCC -#include <lmb.h> -#include <linux/string.h> -#include <asm/u-boot.h> - -#else +#if USE_HOSTCC +#include <endian.h>
/* new uImage format support enabled on host */ #define CONFIG_FIT 1 #define CONFIG_OF_LIBFDT 1 #define CONFIG_FIT_VERBOSE 1 /* enable fit_format_{error,warning}() */
+#else + +#include <lmb.h> +#include <linux/string.h> +#include <asm/u-boot.h> +#include <asm/byteorder.h> + #endif /* USE_HOSTCC */
#if defined(CONFIG_FIT) && !defined(CONFIG_OF_LIBFDT) #error "CONFIG_OF_LIBFDT not enabled, required by CONFIG_FIT!" #endif
+#include <command.h> + #if defined(CONFIG_FIT) #include <fdt.h> #include <libfdt.h>
=======================================================================
However, for the FDT code this doesn't help, as we then will get unresolved references for fdt32_to_cpu(), cpu_to_fdt32(), fdt64_to_cpu() and cpu_to_fdt64().
The 32 bit accesses couldbe worked around by using htonl() resp. ntohl(), but I don't know a good way for the 64 bit cases.
Is there a clean and portable way to do this?
Best regards,
Wolfgang Denk