[U-Boot] [PATCH] Fix out-of-tree tools/fdt build
Jerry Van Baren
gvb.uboot at gmail.com
Mon Sep 8 06:10:43 CEST 2008
The fdt header files must come from the u-boot versions when building
the tools (we must use the same definitions in the tools as in the
u-boot image). To ensure this, generate the "fdt_host.h" file in the
Makefile to use the full path to the u-boot fdt header files.
Signed-off-by: Gerald Van Baren <vanbaren at cideas.com>
---
This is *NOT* a final answer. I'm still getting a build error that I
cannot figure out so I figured I would appeal to the Wisdom of the List.
In this patch, I'm auto-generating the fdt_host.h header to specifically
include the u-boot fdt headers (as opposed to the host's headers).
There may be better way(s) of doing this and there are the aforementioned
errors to fix. Treat this as a challenge for improvements. ;-)
Thanks,
gvb
Makefile | 1 +
include/image.h | 4 ++++
tools/Makefile | 36 ++++++++++++++++++++++++++----------
tools/fdt_host.h | 28 ----------------------------
tools/mkimage.h | 2 +-
5 files changed, 32 insertions(+), 39 deletions(-)
delete mode 100644 tools/fdt_host.h
diff --git a/Makefile b/Makefile
index 8d82ef5..be08685 100644
--- a/Makefile
+++ b/Makefile
@@ -3152,6 +3152,7 @@ clean:
@rm -f $(obj)nand_spl/{u-boot-spl,u-boot-spl.map,System.map}
@rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl-2k.bin,ipl-4k.bin,ipl.map}
@rm -f $(obj)api_examples/demo $(VERSION_FILE)
+ @rm -f $(SRCTREE)/tools/fdt_host.h
@find $(OBJTREE) -type f \
\( -name 'core' -o -name '*.bak' -o -name '*~' \
-o -name '*.o' -o -name '*.a' \) -print \
diff --git a/include/image.h b/include/image.h
index 9be806e..f28e9fc 100644
--- a/include/image.h
+++ b/include/image.h
@@ -55,9 +55,13 @@
#endif
#if defined(CONFIG_FIT)
+#ifndef USE_HOSTCC
#include <fdt.h>
#include <libfdt.h>
#include <fdt_support.h>
+#else
+#include <fdt_host.h>
+#endif
#define CONFIG_MD5 /* FIT images need MD5 support */
#endif
diff --git a/tools/Makefile b/tools/Makefile
index 21ea1c2..5ab5456 100644
--- a/tools/Makefile
+++ b/tools/Makefile
@@ -124,9 +124,11 @@ BINS := $(addprefix $(obj),$(BIN_FILES))
CPPFLAGS = -idirafter $(SRCTREE)/include \
-idirafter $(OBJTREE)/include2 \
-idirafter $(OBJTREE)/include \
+ -idirafter $(OBJTREE)/tools \
-DTEXT_BASE=$(TEXT_BASE) -DUSE_HOSTCC
CFLAGS = $(HOST_CFLAGS) $(CPPFLAGS) -O
+
# No -pedantic switch to avoid libfdt compilation warnings
FIT_CFLAGS = -Wall $(CPPFLAGS) -O
@@ -190,10 +192,10 @@ $(obj)md5.o: $(obj)md5.c
$(obj)sha1.o: $(obj)sha1.c
$(CC) -g $(CFLAGS) -c -o $@ $<
-$(obj)image.o: $(obj)image.c
+$(obj)image.o: $(obj)image.c $(obj)fdt_host.h
$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
-$(obj)mkimage.o: $(src)mkimage.c
+$(obj)mkimage.o: $(src)mkimage.c $(obj)fdt_host.h
$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
$(obj)ncb.o: $(src)ncb.c
@@ -208,19 +210,19 @@ $(obj)inca-swap-bytes.o: $(src)inca-swap-bytes.c
$(obj)mpc86x_clk.o: $(src)mpc86x_clk.c
$(CC) -g $(CFLAGS) -c -o $@ $<
-$(obj)fdt.o: $(obj)fdt.c
+$(obj)fdt.o: $(obj)fdt.c $(obj)fdt_host.h
$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
-$(obj)fdt_ro.o: $(obj)fdt_ro.c
+$(obj)fdt_ro.o: $(obj)fdt_ro.c $(obj)fdt_host.h
$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
-$(obj)fdt_rw.o: $(obj)fdt_rw.c
+$(obj)fdt_rw.o: $(obj)fdt_rw.c $(obj)fdt_host.h
$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
-$(obj)fdt_strerror.o: $(obj)fdt_strerror.c
+$(obj)fdt_strerror.o: $(obj)fdt_strerror.c $(obj)fdt_host.h
$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
-$(obj)fdt_wip.o: $(obj)fdt_wip.c
+$(obj)fdt_wip.o: $(obj)fdt_wip.c $(obj)fdt_host.h
$(CC) -g $(FIT_CFLAGS) -c -o $@ $<
subdirs:
@@ -266,9 +268,6 @@ $(obj)image.c:
if [ ! -f $(obj)mkimage.h ] ; then \
ln -s $(src)../tools/mkimage.h $(obj)mkimage.h; \
fi
- if [ ! -f $(obj)fdt_host.h ] ; then \
- ln -s $(src)../tools/fdt_host.h $(obj)fdt_host.h; \
- fi
$(obj)fdt.c: $(obj)libfdt_internal.h
@rm -f $(obj)fdt.c
@@ -297,6 +296,23 @@ $(obj)libfdt_internal.h:
$(LOGO_H): $(obj)bmp_logo $(LOGO_BMP)
$(obj)./bmp_logo $(LOGO_BMP) >$@
+#
+# fdt_host.h has to point to the u-boot version of the libfdt headers
+#
+$(obj)fdt_host.h:
+ echo "Auto-generating fdt_host.h"
+ @echo "/* AUTO GENERATED, do not edit manually */" > $@
+ @echo "" >> $@
+ @echo "#ifndef __FDT_HOST_H__" >> $@
+ @echo "#define __FDT_HOST_H__" >> $@
+ @echo "" >> $@
+ @echo "/* Include u-boot, *not* the host, version of libfdt include files */" >> $@
+ @echo "#include \"$(SRCTREE)/include/fdt.h\"" >> $@
+ @echo "#include \"$(SRCTREE)/include/libfdt.h\"" >> $@
+ @echo "#include \"$(SRCTREE)/include/fdt_support.h\"" >> $@
+ @echo "" >> $@
+ @echo "#endif /* __FDT_HOST_H__ */" >> $@
+
#########################################################################
# defines $(obj).depend target
diff --git a/tools/fdt_host.h b/tools/fdt_host.h
deleted file mode 100644
index 085013e..0000000
--- a/tools/fdt_host.h
+++ /dev/null
@@ -1,28 +0,0 @@
-/*
- * (C) Copyright 2008 Semihalf
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of
- * the License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
- * MA 02111-1307 USA
- */
-
-#ifndef __FDT_HOST_H__
-#define __FDT_HOST_H__
-
-/* Make sure to include u-boot version of libfdt include files */
-#include "../include/fdt.h"
-#include "../include/libfdt.h"
-#include "../include/fdt_support.h"
-
-#endif /* __FDT_HOST_H__ */
diff --git a/tools/mkimage.h b/tools/mkimage.h
index a2d5248..be94a02 100644
--- a/tools/mkimage.h
+++ b/tools/mkimage.h
@@ -33,7 +33,7 @@
#include <time.h>
#include <unistd.h>
#include <sha1.h>
-#include "fdt_host.h"
+#include <fdt_host.h>
#define MKIMAGE_DEBUG
--
1.5.6.5
More information about the U-Boot
mailing list