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

login
register
mail settings
Submitter François Revol
Date March 18, 2011, 9:03 p.m.
Message ID <1300482183-17836-1-git-send-email-revol@free.fr>
Download mbox | patch
Permalink /patch/87578/
State Accepted
Headers show

Comments

François Revol - March 18, 2011, 9:03 p.m.
- 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(-)
Wolfgang Denk - March 18, 2011, 10:38 p.m.
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
François Revol - March 18, 2011, 10:55 p.m.
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.
Wolfgang Denk - May 12, 2011, 8:47 p.m.
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

Patch

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 */