Skip to contentSkip to conversation

Makefile : fix generation of cpu related asm-offsets.h

PATCH New Stefano Babic 3 participants 10 messages Aug 17, 2011 – Sep 7, 2011

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 Makefile : fix generation of cpu related asm-offsets.h

commit 0edf8b5b2fa0d210ebc4d6da0fd1aceeb7e44e47 breaks building on a different directory with the O= parameter. The patch wil fix this issue, generating always asm-offsets.h before the other targets.

---

Note: the patch fixes the issue, however I generate an empty asm-offsets.c for boards that do not have one. Is there a better way to reach the goal ?

 Makefile |   19 ++++++++++++++++++-
 rules.mk |   10 ----------
 2 files changed, 18 insertions(+), 11 deletions(-)
Makefile +18 -1
index f8ae883..10b2498 100644
@@ -460,7 +460,8 @@ updater:
 # parallel sub-makes creating .depend files simultaneously.
 depend dep:	$(TIMESTAMP_FILE) $(VERSION_FILE) \
 		$(obj)include/autoconf.mk \
-		$(obj)include/generated/generic-asm-offsets.h
+		$(obj)include/generated/generic-asm-offsets.h \
+		$(obj)include/asm/arch/asm-offsets.h
 		for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \
 			$(MAKE) -C $$dir _depend ; done
 
@@ -519,6 +520,22 @@ $(obj)lib/asm-offsets.s:	$(obj)include/autoconf.mk.dep \
 		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
 		-o $@ $(src)lib/asm-offsets.c -c -S
 
+$(obj)include/asm/arch/asm-offsets.h:	$(obj)include/autoconf.mk.dep \
+	$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
+	@echo Generating $@
+	tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
+
+$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s:	$(obj)include/autoconf.mk.dep check_cpu_asm_offsets
+	@mkdir -p $(obj)$(CPUDIR)/$(SOC)
+	$(CC) -DDO_DEPS_ONLY \
+		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
+		-o $@ $(src)$(CPUDIR)/$(SOC)/asm-offsets.c -c -S
+
+#	$(src)$(CPUDIR)/$(SOC)/asm-offsets.c
+check_cpu_asm_offsets:
+	if [ ! -f $(src)$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
+        touch $(src)$(CPUDIR)/$(SOC)/asm-offsets.c;fi
+
 #########################################################################
 else	# !config.mk
 all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
rules.mk +0 -10
index 5fd12a0..c2860e5 100644
@@ -42,14 +42,4 @@ $(HOSTOBJS): $(obj)%.o: %.c
 $(NOPEDOBJS): $(obj)%.o: %.c
 	$(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c
 
-$(TOPDIR)/include/asm/arch/asm-offsets.h:	$(TOPDIR)/include/autoconf.mk.dep \
-	$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s
-	@echo Generating $@
-	$(TOPDIR)/tools/scripts/make-asm-offsets $(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s $@
-
-$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s:	$(TOPDIR)/include/autoconf.mk.dep \
-	$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.c
-	$(CC) -DDO_DEPS_ONLY \
-		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
-		-o $@ $(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.c -c -S
 #########################################################################
Signature · 1 line
1.7.1
#1 lore raw

PATCH 1/1 Makefile : fix generation of cpu related asm-offsets.h

Dear Stefano

Am 17.08.2011 12:12, schrieb Stefano Babic:

Quoted 10 lines

commit 0edf8b5b2fa0d210ebc4d6da0fd1aceeb7e44e47 breaks building on a different directory with the O= parameter. The patch wil fix this issue, generating always asm-offsets.h before the other targets.

---

Note: the patch fixes the issue, however I generate an empty asm-offsets.c for boards that do not have one. Is there a better way to reach the goal ?

Wouldn't it be possible to just create an empty asm-offsets.h if there is no asm-offsets.c?

And maybe it is handy to add the auto-generated files (asm-offsets.s/h) to the list of removed files of the clean or distclean target.

Regards
Matthias

#2 lore raw

PATCH 1/1 Makefile : fix generation of cpu related asm-offsets.h

Quoted 11 lines · Matthias Wei?er

Dear Stefano

Am 17.08.2011 12:12, schrieb Stefano Babic:

Quoted 8 lines

commit 0edf8b5b2fa0d210ebc4d6da0fd1aceeb7e44e47 breaks building on a different directory with the O= parameter. The patch wil fix this issue, generating always asm-offsets.h before the other targets.

---

Quoted 7 lines
Quoted 4 lines

Note: the patch fixes the issue, however I generate an empty asm-offsets.c
for boards that do not have one. Is there a better way to reach the goal ?

Wouldn't it be possible to just create an empty asm-offsets.h if there is no asm-offsets.c?

Yes, this is surely possible - but I do not know another clean way to do this as adding an if..then..fi script inside the rule, as I did now creating an empty asm-offsets.c.

Really I wanted to fix this issue changing the dependencies, but I have not found a solution. Now it works (as for generic-asm-offsets.h) because asm-offsets.h is always generated as first target.

Quoted 2 lines

And maybe it is handy to add the auto-generated files (asm-offsets.s/h) to the list of removed files of the clean or distclean target.

Agree, they must be added as well.

Regards,
Stefano

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================
#3 lore raw

PATCH v2 1/1 Makefile : fix generation of cpu related asm-offsets.h

In reply to Stefano Babic

commit 0edf8b5b2fa0d210ebc4d6da0fd1aceeb7e44e47 breaks building on a different directory with the O= parameter. The patch wil fix this issue, generating always asm-offsets.h before the other targets.

---

Changes since V1:

- use an empty asm-offsets.s instead of asm-offsets.c (M. Weisser)
- add asm-offsets.{h,s} to the make clean target (M. Weisser)

 Makefile |   20 +++++++++++++++++++-
 rules.mk |   10 ----------
 2 files changed, 19 insertions(+), 11 deletions(-)
Makefile +19 -1
index a641f8f..c68aaee 100644
@@ -464,7 +464,8 @@ updater:
 # parallel sub-makes creating .depend files simultaneously.
 depend dep:	$(TIMESTAMP_FILE) $(VERSION_FILE) \
 		$(obj)include/autoconf.mk \
-		$(obj)include/generated/generic-asm-offsets.h
+		$(obj)include/generated/generic-asm-offsets.h \
+		$(obj)include/asm/arch/asm-offsets.h
 		for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \
 			$(MAKE) -C $$dir _depend ; done
 
@@ -527,6 +528,21 @@ $(obj)lib/asm-offsets.s:	$(obj)include/autoconf.mk.dep \
 		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
 		-o $@ $(src)lib/asm-offsets.c -c -S
 
+$(obj)include/asm/arch/asm-offsets.h:	$(obj)include/autoconf.mk.dep \
+	$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
+	@echo Generating $@
+	tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
+
+$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s:	$(obj)include/autoconf.mk.dep
+	@mkdir -p $(obj)$(CPUDIR)/$(SOC)
+	if [ -f $(src)$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
+		$(CC) -DDO_DEPS_ONLY \
+		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
+			-o $@ $(src)$(CPUDIR)/$(SOC)/asm-offsets.c -c -S; \
+	else \
+		touch $(src)$(CPUDIR)/$(SOC)/asm-offsets.s; \
+	fi
+
 #########################################################################
 else	# !config.mk
 all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
@@ -927,6 +943,8 @@ clean:
 	       $(obj)arch/blackfin/cpu/init.{lds,elf}
 	@rm -f $(obj)include/bmp_logo.h
 	@rm -f $(obj)lib/asm-offsets.s
+	@rm -f $(obj)include/asm/arch/asm-offsets.h
+	@rm -f $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
 	@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
 	@rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl.map}
 	@rm -f $(obj)mmc_spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,u-boot-spl.bin,u-boot-mmc-spl.bin}
rules.mk +0 -10
index a6bae62..d79fcd3 100644
@@ -42,14 +42,4 @@ $(HOSTOBJS): $(obj)%.o: %.c
 $(NOPEDOBJS): $(obj)%.o: %.c
 	$(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c
 
-$(TOPDIR)/include/asm/arch/asm-offsets.h:	$(TOPDIR)/include/autoconf.mk.dep \
-	$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s
-	@echo Generating $@
-	$(TOPDIR)/tools/scripts/make-asm-offsets $(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s $@
-
-$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s:	$(TOPDIR)/include/autoconf.mk.dep \
-	$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.c
-	$(CC) -DDO_DEPS_ONLY \
-		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
-		-o $@ $(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.c -c -S
 #########################################################################
Signature · 1 line
1.7.1
#4 lore raw

PATCH v3 1/1 Makefile : fix generation of cpu related asm-offsets.h

In reply to Stefano Babic

commit 0edf8b5b2fa0d210ebc4d6da0fd1aceeb7e44e47 breaks building on a different directory with the O= parameter. The patch wil fix this issue, generating always asm-offsets.h before the other targets.

CC Matthias Weisser <[email protected]>
CC Wolfgang Denk <[email protected]>

---

Note: V2 breaks *all* not ARM boards
Put the generated asm-offsets.h into include/generated, because this directory is common to all architectures.

 Makefile                                |   20 +++++++++++++++++++-
 arch/arm/cpu/arm1136/mx35/Makefile      |    2 --
 arch/arm/cpu/arm926ejs/mb86r0x/Makefile |    2 --
 arch/arm/cpu/arm926ejs/mx25/Makefile    |    2 --
 arch/arm/cpu/arm926ejs/mx27/Makefile    |    2 --
 arch/arm/cpu/armv7/mx5/Makefile         |    2 --
 arch/arm/cpu/armv7/mx5/lowlevel_init.S  |    2 +-
 arch/arm/include/asm/arch-mx25/macro.h  |    2 +-
 board/freescale/mx35pdk/lowlevel_init.S |    2 +-
 board/logicpd/imx27lite/lowlevel_init.S |    2 +-
 board/syteco/jadecpu/lowlevel_init.S    |    2 +-
 board/syteco/zmx25/lowlevel_init.S      |    2 +-
 rules.mk                                |   10 ----------
 13 files changed, 25 insertions(+), 27 deletions(-)
Makefile +19 -1
index 6abc319..493a668 100644
@@ -464,7 +464,8 @@ updater:
 # parallel sub-makes creating .depend files simultaneously.
 depend dep:	$(TIMESTAMP_FILE) $(VERSION_FILE) \
 		$(obj)include/autoconf.mk \
-		$(obj)include/generated/generic-asm-offsets.h
+		$(obj)include/generated/generic-asm-offsets.h \
+		$(obj)include/generated/asm-offsets.h
 		for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \
 			$(MAKE) -C $$dir _depend ; done
 
@@ -527,6 +528,21 @@ $(obj)lib/asm-offsets.s:	$(obj)include/autoconf.mk.dep \
 		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
 		-o $@ $(src)lib/asm-offsets.c -c -S
 
+$(obj)include/generated/asm-offsets.h:	$(obj)include/autoconf.mk.dep \
+	$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
+	@echo Generating $@
+	tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
+
+$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s:	$(obj)include/autoconf.mk.dep
+	@mkdir -p $(obj)$(CPUDIR)/$(SOC)
+	if [ -f $(src)$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
+		$(CC) -DDO_DEPS_ONLY \
+		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
+			-o $@ $(src)$(CPUDIR)/$(SOC)/asm-offsets.c -c -S; \
+	else \
+		touch $(src)$(CPUDIR)/$(SOC)/asm-offsets.s; \
+	fi
+
 #########################################################################
 else	# !config.mk
 all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
@@ -916,6 +932,8 @@ clean:
 	       $(obj)arch/blackfin/cpu/init.{lds,elf}
 	@rm -f $(obj)include/bmp_logo.h
 	@rm -f $(obj)lib/asm-offsets.s
+	@rm -f $(obj)include/generated/asm-offsets.h
+	@rm -f $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
 	@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
 	@rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl.map}
 	@rm -f $(obj)mmc_spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,u-boot-spl.bin,u-boot-mmc-spl.bin}
arch/arm/cpu/arm1136/mx35/Makefile +0 -2
index 284cdc5..469397c 100644
@@ -39,8 +39,6 @@ all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
-$(OBJS) : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 
 #########################################################################
 
arch/arm/cpu/arm926ejs/mb86r0x/Makefile +0 -2
index 974d0be..bab048b 100644
@@ -37,8 +37,6 @@ all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
-$(OBJS) : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 #########################################################################
 
 # defines $(obj).depend target
arch/arm/cpu/arm926ejs/mx25/Makefile +0 -2
index 9219c06..3c2a65e 100644
@@ -34,8 +34,6 @@ all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
-$(OBJS) : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 #########################################################################
 
 # defines $(obj).depend target
arch/arm/cpu/arm926ejs/mx27/Makefile +0 -2
index 7ac1a21..0e112b3 100644
@@ -34,8 +34,6 @@ all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
-$(OBJS) : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 #########################################################################
 
 # defines $(obj).depend target
arch/arm/cpu/armv7/mx5/Makefile +0 -2
index 6e13cc3..e8be9c9 100644
@@ -45,6 +45,4 @@ include $(SRCTREE)/rules.mk
 
 sinclude $(obj).depend
 
-lowlevel_init.o : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 #########################################################################
arch/arm/cpu/armv7/mx5/lowlevel_init.S +1 -1
index 6c66b42..7e37221 100644
@@ -21,7 +21,7 @@
 
 #include <config.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 /*
  * L2CC Cache setup/invalidation/disable
arch/arm/include/asm/arch-mx25/macro.h +1 -1
index 276c71c..3b694da 100644
@@ -31,7 +31,7 @@
 #ifdef __ASSEMBLY__
 
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 .macro init_aips
 	write32	IMX_AIPS1_BASE + AIPS_MPR_0_7, 0x77777777
board/freescale/mx35pdk/lowlevel_init.S +1 -1
index 9fd04cb..698c4cf 100644
@@ -21,7 +21,7 @@
 
 #include <config.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 #include "mx35pdk.h"
 
 /*
board/logicpd/imx27lite/lowlevel_init.S +1 -1
index e2cdecb..873634f 100644
@@ -26,7 +26,7 @@
 #include <version.h>
 #include <asm/macro.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 SOC_ESDCTL_BASE_W:	.word	IMX_ESD_BASE
 SOC_SI_ID_REG_W:	.word	IMX_SYSTEM_CTL_BASE
board/syteco/jadecpu/lowlevel_init.S +1 -1
index 5ad4dce..b01f087 100644
@@ -30,7 +30,7 @@
 #include <version.h>
 #include <asm/macro.h>
 #include <asm/arch/mb86r0x.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 /* Set up the platform, once the cpu has been initialized */
 .globl lowlevel_init
board/syteco/zmx25/lowlevel_init.S +1 -1
index 8e63de0..1002674 100644
@@ -27,7 +27,7 @@
 #include <asm/macro.h>
 #include <asm/arch/macro.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 /*
  * clocks
rules.mk +0 -10
index a6bae62..d79fcd3 100644
@@ -42,14 +42,4 @@ $(HOSTOBJS): $(obj)%.o: %.c
 $(NOPEDOBJS): $(obj)%.o: %.c
 	$(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c
 
-$(TOPDIR)/include/asm/arch/asm-offsets.h:	$(TOPDIR)/include/autoconf.mk.dep \
-	$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s
-	@echo Generating $@
-	$(TOPDIR)/tools/scripts/make-asm-offsets $(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s $@
-
-$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s:	$(TOPDIR)/include/autoconf.mk.dep \
-	$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.c
-	$(CC) -DDO_DEPS_ONLY \
-		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
-		-o $@ $(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.c -c -S
 #########################################################################
Signature · 1 line
1.7.1
#5 lore raw

PATCH v3 1/1 Makefile : fix generation of cpu related asm-offsets.h

Dear Stefano Babic,

Quoted 5 lines · In message <[email protected]> you wrote:

commit 0edf8b5b2fa0d210ebc4d6da0fd1aceeb7e44e47 breaks building on a different directory with the O= parameter. The patch wil fix this issue, generating always asm-offsets.h before the other targets.

Quoted 8 lines
CC Matthias Weisser <[email protected]>
CC Wolfgang Denk <[email protected]>

---

Note: V2 breaks *all* not ARM boards
Put the generated asm-offsets.h into include/generated, because this directory is common to all architectures.

This one is not that much better:

Configuring for apollon board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm1136/omap24xx/asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
make: *** Waiting for unfinished jobs....
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
Configuring for da850evm board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm926ejs/davinci/asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
Configuring for dvlhost board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/ixp//asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
Configuring for efikamx - Board: efikamx, Options: IMX_CONFIG=board/efikamx/imximage.cfg
text data bss dec hex filename
184792 4104 206516 395412 60894 /work/wd/tmp-arm/u-boot
Configuring for harmony board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/armv7/tegra2/asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
make: *** Waiting for unfinished jobs....
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
Configuring for imx27lite board...
text data bss dec hex filename
242780 7812 236232 486824 76da8 /work/wd/tmp-arm/u-boot
Configuring for imx31_phycore board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm1136/mx31/asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
make: *** Waiting for unfinished jobs....
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
Configuring for imx31_phycore_eet board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm1136/mx31/asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
Configuring for ixdp425 board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/ixp//asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
Configuring for ixdpg425 board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/ixp//asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
Configuring for jadecpu board...
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm926ejs/mb86r0x/asm-offsets.s: No such file or directory
make: *** [/work/wd/tmp-arm/include/generated/asm-offsets.h] Error 1
arm-linux-size: '/work/wd/tmp-arm/u-boot': No such file
...

etc. etc.

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Shakespeare's Law of Prototyping: (Hamlet III, iv, 156-160)
        O, throw away the worser part of it,
        And live the purer with the other half.
#6 lore raw

PATCH v3 1/1 Makefile : fix generation of cpu related asm-offsets.h

Dear Stefano,

Quoted 2 lines · In message <[email protected]> I wrote:

This one is not that much better:

Maybe it helps debugging - here is an observation:

Quoted 3 lines

sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm1136/omap24xx/asm-offsets.s: No such file or directory
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm926ejs/davinci/asm-offsets.s: No such file or directory
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/ixp//asm-offsets.s: No such file or directory

Mind the inconsistency - see the double slash after "ixp".

Best regards,

Wolfgang Denk

Signature · 6 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
"The combination of a number of things to make existence worthwhile."
"Yes, the philosophy of 'none,' meaning 'all.'"
	-- Spock and Lincoln, "The Savage Curtain", stardate 5906.4
#7 lore raw

PATCH v3 1/1 Makefile : fix generation of cpu related asm-offsets.h

Quoted 2 lines · Wolfgang Denk

Dear Stefano,

Hi Wolfgang,

Quoted 11 lines
Quoted 2 lines · In message <[email protected]> I wrote:

This one is not that much better:

Maybe it helps debugging - here is an observation:

Quoted 3 lines

sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm1136/omap24xx/asm-offsets.s: No such file or directory
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/arm926ejs/davinci/asm-offsets.s: No such file or directory
sed: can't read /work/wd/tmp-arm/arch/arm/cpu/ixp//asm-offsets.s: No such file or directory

Mind the inconsistency - see the double slash after "ixp".

An evident error is :

+ else \
+ touch $(src)$(CPUDIR)/$(SOC)/asm-offsets.s; \
+ fi

Then an asm-offsets.s not in the out-of-tree directory is generated. I send V4 of the patch.

Changing that I can compile clean the da850evm board, and mostly of other boards you report broken. However, I cannot compile the harmony, but is seem to me this is an unrelated issue:

I did it with:
make O=~/Projects/imx/tmp harmony

and I get this error:
common/board.o ../common/board.c -c
Assembler messages:
Fatal error: can't create /home/stefano/Projects/imx/tmp/board/nvidia/harmony/../common/board.o:
No such file or directory

This looks related that the Makefile in the board directory refers always to the common code in ../common, that is not found using the out-of-tree.

Best regards,
Stefano Babic

Signature · 5 lines
=====================================================================
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-0 Fax: +49-8142-66989-80  Email: office at denx.de
=====================================================================
#8 lore raw

PATCH v4 1/1 Makefile : fix generation of cpu related asm-offsets.h

In reply to Stefano Babic

commit 0edf8b5b2fa0d210ebc4d6da0fd1aceeb7e44e47 breaks building on a different directory with the O= parameter. The patch wil fix this issue, generating always asm-offsets.h before the other targets.

CC Matthias Weisser <[email protected]>
CC Wolfgang Denk <[email protected]>

---

Note: V2 breaks *all* not ARM boards
Put the generated asm-offsets.h into include/generated, because this directory is common to all architectures.

Changes since V3: the empty asm-offsets.s was generated under src, and not in the directory indicated by $(obj), required for out-of-tree buildeing.

 Makefile                                |   20 +++++++++++++++++++-
 arch/arm/cpu/arm1136/mx35/Makefile      |    2 --
 arch/arm/cpu/arm926ejs/mb86r0x/Makefile |    2 --
 arch/arm/cpu/arm926ejs/mx25/Makefile    |    2 --
 arch/arm/cpu/arm926ejs/mx27/Makefile    |    2 --
 arch/arm/cpu/armv7/mx5/Makefile         |    2 --
 arch/arm/cpu/armv7/mx5/lowlevel_init.S  |    2 +-
 arch/arm/include/asm/arch-mx25/macro.h  |    2 +-
 board/freescale/mx35pdk/lowlevel_init.S |    2 +-
 board/logicpd/imx27lite/lowlevel_init.S |    2 +-
 board/syteco/jadecpu/lowlevel_init.S    |    2 +-
 board/syteco/zmx25/lowlevel_init.S      |    2 +-
 rules.mk                                |   10 ----------
 13 files changed, 25 insertions(+), 27 deletions(-)
Makefile +19 -1
index 6abc319..cfa8071 100644
@@ -464,7 +464,8 @@ updater:
 # parallel sub-makes creating .depend files simultaneously.
 depend dep:	$(TIMESTAMP_FILE) $(VERSION_FILE) \
 		$(obj)include/autoconf.mk \
-		$(obj)include/generated/generic-asm-offsets.h
+		$(obj)include/generated/generic-asm-offsets.h \
+		$(obj)include/generated/asm-offsets.h
 		for dir in $(SUBDIRS) $(CPUDIR) $(dir $(LDSCRIPT)) ; do \
 			$(MAKE) -C $$dir _depend ; done
 
@@ -527,6 +528,21 @@ $(obj)lib/asm-offsets.s:	$(obj)include/autoconf.mk.dep \
 		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
 		-o $@ $(src)lib/asm-offsets.c -c -S
 
+$(obj)include/generated/asm-offsets.h:	$(obj)include/autoconf.mk.dep \
+	$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
+	@echo Generating $@
+	tools/scripts/make-asm-offsets $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s $@
+
+$(obj)$(CPUDIR)/$(SOC)/asm-offsets.s:	$(obj)include/autoconf.mk.dep
+	@mkdir -p $(obj)$(CPUDIR)/$(SOC)
+	if [ -f $(src)$(CPUDIR)/$(SOC)/asm-offsets.c ];then \
+		$(CC) -DDO_DEPS_ONLY \
+		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
+			-o $@ $(src)$(CPUDIR)/$(SOC)/asm-offsets.c -c -S; \
+	else \
+		touch $@; \
+	fi
+
 #########################################################################
 else	# !config.mk
 all $(obj)u-boot.hex $(obj)u-boot.srec $(obj)u-boot.bin \
@@ -916,6 +932,8 @@ clean:
 	       $(obj)arch/blackfin/cpu/init.{lds,elf}
 	@rm -f $(obj)include/bmp_logo.h
 	@rm -f $(obj)lib/asm-offsets.s
+	@rm -f $(obj)include/generated/asm-offsets.h
+	@rm -f $(obj)$(CPUDIR)/$(SOC)/asm-offsets.s
 	@rm -f $(obj)nand_spl/{u-boot.lds,u-boot-nand_spl.lds,u-boot-spl,u-boot-spl.map,System.map}
 	@rm -f $(obj)onenand_ipl/onenand-{ipl,ipl.bin,ipl.map}
 	@rm -f $(obj)mmc_spl/{u-boot.lds,u-boot-spl,u-boot-spl.map,u-boot-spl.bin,u-boot-mmc-spl.bin}
arch/arm/cpu/arm1136/mx35/Makefile +0 -2
index 284cdc5..469397c 100644
@@ -39,8 +39,6 @@ all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
-$(OBJS) : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 
 #########################################################################
 
arch/arm/cpu/arm926ejs/mb86r0x/Makefile +0 -2
index 974d0be..bab048b 100644
@@ -37,8 +37,6 @@ all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
-$(OBJS) : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 #########################################################################
 
 # defines $(obj).depend target
arch/arm/cpu/arm926ejs/mx25/Makefile +0 -2
index 9219c06..3c2a65e 100644
@@ -34,8 +34,6 @@ all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
-$(OBJS) : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 #########################################################################
 
 # defines $(obj).depend target
arch/arm/cpu/arm926ejs/mx27/Makefile +0 -2
index 7ac1a21..0e112b3 100644
@@ -34,8 +34,6 @@ all:	$(obj).depend $(LIB)
 $(LIB):	$(OBJS)
 	$(call cmd_link_o_target, $(OBJS))
 
-$(OBJS) : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 #########################################################################
 
 # defines $(obj).depend target
arch/arm/cpu/armv7/mx5/Makefile +0 -2
index 6e13cc3..e8be9c9 100644
@@ -45,6 +45,4 @@ include $(SRCTREE)/rules.mk
 
 sinclude $(obj).depend
 
-lowlevel_init.o : $(TOPDIR)/include/asm/arch/asm-offsets.h
-
 #########################################################################
arch/arm/cpu/armv7/mx5/lowlevel_init.S +1 -1
index 6c66b42..7e37221 100644
@@ -21,7 +21,7 @@
 
 #include <config.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 /*
  * L2CC Cache setup/invalidation/disable
arch/arm/include/asm/arch-mx25/macro.h +1 -1
index 276c71c..3b694da 100644
@@ -31,7 +31,7 @@
 #ifdef __ASSEMBLY__
 
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 .macro init_aips
 	write32	IMX_AIPS1_BASE + AIPS_MPR_0_7, 0x77777777
board/freescale/mx35pdk/lowlevel_init.S +1 -1
index 9fd04cb..698c4cf 100644
@@ -21,7 +21,7 @@
 
 #include <config.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 #include "mx35pdk.h"
 
 /*
board/logicpd/imx27lite/lowlevel_init.S +1 -1
index e2cdecb..873634f 100644
@@ -26,7 +26,7 @@
 #include <version.h>
 #include <asm/macro.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 SOC_ESDCTL_BASE_W:	.word	IMX_ESD_BASE
 SOC_SI_ID_REG_W:	.word	IMX_SYSTEM_CTL_BASE
board/syteco/jadecpu/lowlevel_init.S +1 -1
index 5ad4dce..b01f087 100644
@@ -30,7 +30,7 @@
 #include <version.h>
 #include <asm/macro.h>
 #include <asm/arch/mb86r0x.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 /* Set up the platform, once the cpu has been initialized */
 .globl lowlevel_init
board/syteco/zmx25/lowlevel_init.S +1 -1
index 8e63de0..1002674 100644
@@ -27,7 +27,7 @@
 #include <asm/macro.h>
 #include <asm/arch/macro.h>
 #include <asm/arch/imx-regs.h>
-#include <asm/arch/asm-offsets.h>
+#include <generated/asm-offsets.h>
 
 /*
  * clocks
rules.mk +0 -10
index a6bae62..d79fcd3 100644
@@ -42,14 +42,4 @@ $(HOSTOBJS): $(obj)%.o: %.c
 $(NOPEDOBJS): $(obj)%.o: %.c
 	$(HOSTCC) $(HOSTCFLAGS_NOPED) $(HOSTCFLAGS_$(@F)) $(HOSTCFLAGS_$(BCURDIR)) -o $@ $< -c
 
-$(TOPDIR)/include/asm/arch/asm-offsets.h:	$(TOPDIR)/include/autoconf.mk.dep \
-	$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s
-	@echo Generating $@
-	$(TOPDIR)/tools/scripts/make-asm-offsets $(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s $@
-
-$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.s:	$(TOPDIR)/include/autoconf.mk.dep \
-	$(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.c
-	$(CC) -DDO_DEPS_ONLY \
-		$(CFLAGS) $(CFLAGS_$(BCURDIR)/$(@F)) $(CFLAGS_$(BCURDIR)) \
-		-o $@ $(TOPDIR)/$(CPUDIR)/$(SOC)/asm-offsets.c -c -S
 #########################################################################
Signature · 1 line
1.7.1
#9 lore raw

PATCH v4 1/1 Makefile : fix generation of cpu related asm-offsets.h

Dear Stefano Babic,

Quoted 17 lines · In message <[email protected]> you wrote:

commit 0edf8b5b2fa0d210ebc4d6da0fd1aceeb7e44e47 breaks building on a different directory with the O= parameter. The patch wil fix this issue, generating always asm-offsets.h before the other targets.

CC Matthias Weisser <[email protected]>
CC Wolfgang Denk <[email protected]>

---

Note: V2 breaks *all* not ARM boards
Put the generated asm-offsets.h into include/generated, because this directory is common to all architectures.

Changes since V3: the empty asm-offsets.s was generated under src, and not in the directory indicated by $(obj), required for out-of-tree buildeing.

Quoted 14 lines
 Makefile                                |   20 +++++++++++++++++++-
 arch/arm/cpu/arm1136/mx35/Makefile      |    2 --
 arch/arm/cpu/arm926ejs/mb86r0x/Makefile |    2 --
 arch/arm/cpu/arm926ejs/mx25/Makefile    |    2 --
 arch/arm/cpu/arm926ejs/mx27/Makefile    |    2 --
 arch/arm/cpu/armv7/mx5/Makefile         |    2 --
 arch/arm/cpu/armv7/mx5/lowlevel_init.S  |    2 +-
 arch/arm/include/asm/arch-mx25/macro.h  |    2 +-
 board/freescale/mx35pdk/lowlevel_init.S |    2 +-
 board/logicpd/imx27lite/lowlevel_init.S |    2 +-
 board/syteco/jadecpu/lowlevel_init.S    |    2 +-
 board/syteco/zmx25/lowlevel_init.S      |    2 +-
 rules.mk                                |   10 ----------
 13 files changed, 25 insertions(+), 27 deletions(-)

Applied, thanks.

Best regards,

Wolfgang Denk

Signature · 5 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd at denx.de
Those who do not  understand  Unix  are  condemned  to  reinvent  it,
poorly.              - Henry Spencer, University of Toronto Unix hack