[U-Boot] [PATCH] Fix building tools alone with host compiler

- don't include config.h when building with host cc, - HOSTCFLAGS was defined with the wrong name, so wasn't used, - make sure make finds sources outside of tools/.
Signed-off-by: François Revol revol@free.fr --- tools/Makefile | 6 +++--- tools/imximage.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-)
diff --git a/tools/Makefile b/tools/Makefile index 623f908..1ca497e 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -140,7 +140,7 @@ NOPEDOBJS := $(addprefix $(obj),$(NOPED_OBJ_FILES-y)) # Use native tools and options # Define __KERNEL_STRICT_NAMES to prevent typedef overlaps # -HOSTCPPFLAGS = -idirafter $(SRCTREE)/include \ +HOSTCFLAGS = -idirafter $(SRCTREE)/include \ -idirafter $(OBJTREE)/include2 \ -idirafter $(OBJTREE)/include \ -I $(SRCTREE)/lib/libfdt \ @@ -201,10 +201,10 @@ $(obj)ubsha1$(SFX): $(obj)os_support.o $(obj)sha1.o $(obj)ubsha1.o $(HOSTCC) $(HOSTCFLAGS) $(HOSTLDFLAGS) -o $@ $^
# Some of the tool objects need to be accessed from outside the tools directory -$(obj)%.o: $(SRCTREE)/common/%.c +$(subst common/,,$(filter common/%,$(EXT_OBJ_FILES-y))): $(obj)%.o: $(SRCTREE)/common/%.c $(HOSTCC) -g $(HOSTCFLAGS_NOPED) -c -o $@ $<
-$(obj)%.o: $(SRCTREE)/lib/%.c +$(subst lib/,,$(filter lib/%,$(EXT_OBJ_FILES-y))): $(obj)%.o: $(SRCTREE)/lib/%.c $(HOSTCC) -g $(HOSTCFLAGS) -c -o $@ $<
$(obj)%.o: $(SRCTREE)/lib/libfdt/%.c diff --git a/tools/imximage.h b/tools/imximage.h index 38ca6be..38d8742 100644 --- a/tools/imximage.h +++ b/tools/imximage.h @@ -24,7 +24,9 @@ #ifndef _IMXIMAGE_H_ #define _IMXIMAGE_H_
+#ifndef USE_HOSTCC #include <config.h> +#endif
#define MAX_HW_CFG_SIZE_V2 121 /* Max number of registers imx can set for v2 */ #define MAX_HW_CFG_SIZE_V1 60 /* Max number of registers imx can set for v1 */

Dear =?UTF-8?q?Fran=C3=A7ois=20Revol?=,
which exact problem is your patch supposed to fix?
In message 1300482183-17836-1-git-send-email-revol@free.fr you wrote:
- don't include config.h when building with host cc,
- HOSTCFLAGS was defined with the wrong name, so wasn't used,
What makes you think so? Top-level "config.mk" defines
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \ $(HOSTCPPFLAGS)
?
- make sure make finds sources outside of tools/.
Again, which exact problem are you trying to fix?
Best regards,
Wolfgang Denk

Hi,
Le 18 mars 2011 à 23:38, Wolfgang Denk a écrit :
which exact problem is your patch supposed to fix?
Building mkimage alone without having to set up the rest, on OSX.
In message 1300482183-17836-1-git-send-email-revol@free.fr you wrote:
- don't include config.h when building with host cc,
- HOSTCFLAGS was defined with the wrong name, so wasn't used,
What makes you think so? Top-level "config.mk" defines
HOSTCFLAGS = -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer \ $(HOSTCPPFLAGS)
Somehow it doesn't get used here:
$ make tools make -C tools all /Volumes/Data/devel/u-boot/u-boot/common/env_embedded.c:28:20: error: config.h: No such file or directory /Volumes/Data/devel/u-boot/u-boot/tools/envcrc.c:35:20: error: config.h: No such file or directory gcc -g -Os -D__KERNEL__ -I/Volumes/Data/devel/u-boot/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem /usr/lib/gcc/i686-apple-darwin10/4.2.1/include -pipe -Wall -Wstrict-prototypes -fno-stack-protector -o crc32.o crc32.c -c i686-apple-darwin10-gcc-4.2.1: crc32.c: No such file or directory i686-apple-darwin10-gcc-4.2.1: no input files make[1]: *** [crc32.o] Error 1 make: *** [tools] Error 2
2nd pass (it doesn't like dep stuff):
$ make tools make -C tools all gcc -g -Os -D__KERNEL__ -I/Volumes/Data/devel/u-boot/u-boot/include -fno-builtin -ffreestanding -nostdinc -isystem /usr/lib/gcc/i686-apple-darwin10/4.2.1/include -pipe -Wall -Wstrict-prototypes -fno-stack-protector -o crc32.o crc32.c -c i686-apple-darwin10-gcc-4.2.1: crc32.c: No such file or directory i686-apple-darwin10-gcc-4.2.1: no input files make[1]: *** [crc32.o] Error 1 make: *** [tools] Error 2
Been this way for a year at least, never managed to build it before. I recall trying passing all sort of stuff to make, probably after asking on IRC but it didn't make it either.
- make sure make finds sources outside of tools/.
Again, which exact problem are you trying to fix?
i686-apple-darwin10-gcc-4.2.1: crc32.c: No such file or directory
François.

Dear =?UTF-8?q?Fran=C3=A7ois=20Revol?=,
In message 1300482183-17836-1-git-send-email-revol@free.fr you wrote:
- don't include config.h when building with host cc,
- HOSTCFLAGS was defined with the wrong name, so wasn't used,
- make sure make finds sources outside of tools/.
Signed-off-by: François Revol revol@free.fr
tools/Makefile | 6 +++--- tools/imximage.h | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-)
Applied, thanks.
Best regards,
Wolfgang Denk
participants (2)
-
François Revol
-
Wolfgang Denk