[U-Boot] Removal of generated asm-offsets.s/h

Hi
If a soc automatically generates asm-offsets.s/h in its makefile it isn't removed by a make clean or make distclean. See mx35 as an example. Even adding a clean: target to the SoCs makefile doesn't help. What would be the right way to remove these files with make clean?
Regards Matthias Weißer

Dear =?ISO-8859-15?Q?Matthias_Wei=DFer?=,
In message 4E0B3331.9030605@arcor.de you wrote:
If a soc automatically generates asm-offsets.s/h in its makefile it isn't removed by a make clean or make distclean. See mx35 as an example. Even adding a clean: target to the SoCs makefile doesn't help. What would be the right way to remove these files with make clean?
Add it to the list of files to remove in the top level Makefile?
Best regards,
Wolfgang Denk

Am 29.06.2011 16:20, schrieb Wolfgang Denk:
Dear =?ISO-8859-15?Q?Matthias_Wei=DFer?=,
In message4E0B3331.9030605@arcor.de you wrote:
If a soc automatically generates asm-offsets.s/h in its makefile it isn't removed by a make clean or make distclean. See mx35 as an example. Even adding a clean: target to the SoCs makefile doesn't help. What would be the right way to remove these files with make clean?
Add it to the list of files to remove in the top level Makefile?
Well, thats is not that easy. The generated asm-offsets.h file ends up in arch/arm/include/asm/arch-mx35/ after a "make mx35pdk_config" "make" "make distclean" run. It is generated to include/asm/arch/ in the SoCs makefile so I don't understand why it ends up in arch/arm/include/asm/arch-mx35/
I don't think it makes sense to add a entry for each SoC using auto generated asm-offset files to the top level makefile. Same goes for the .s file as we shouldn't remove all .s files in the tree.
Matthias

On 06/29/2011 05:00 PM, Matthias Weißer wrote:
Am 29.06.2011 16:20, schrieb Wolfgang Denk:
Dear =?ISO-8859-15?Q?Matthias_Wei=DFer?=,
Hi Matthias,
In message4E0B3331.9030605@arcor.de you wrote:
If a soc automatically generates asm-offsets.s/h in its makefile it isn't removed by a make clean or make distclean. See mx35 as an example. Even adding a clean: target to the SoCs makefile doesn't help. What would be the right way to remove these files with make clean?
Add it to the list of files to remove in the top level Makefile?
Well, thats is not that easy. The generated asm-offsets.h file ends up in arch/arm/include/asm/arch-mx35/ after a "make mx35pdk_config" "make" "make distclean" run. It is generated to include/asm/arch/ in the SoCs makefile so I don't understand why it ends up in arch/arm/include/asm/arch-mx35/
There is an explicit rule in arch/arm/cpu/arm1136/mx35/Makefile. It seems to me the right place to put the generated file. It is an include header, and it should be the include directory for the desired soc, in this case arch/arm/include/asm/arch-mx35/
I don't think it makes sense to add a entry for each SoC using auto generated asm-offset files to the top level makefile. Same goes for the .s file as we shouldn't remove all .s files in the tree.
Is it not enough to add the following lines to the central Makefile, as suggested by Wolfgang:
@rm -f arch/$(ARCH)/include/asm/arch-$(SOC)/asm-offsets.h @rm -f $(CPUDIR)/$(SOC)/asm-offsets.s
The files are removed, as I now tested. And we do not need to add an entry for each CPU/SOC...
Best regards, Stefano Babic

Hi Stefano
Am 29.06.2011 17:48, schrieb Stefano Babic:
Hi Matthias,
In message4E0B3331.9030605@arcor.de you wrote:
If a soc automatically generates asm-offsets.s/h in its makefile it isn't removed by a make clean or make distclean. See mx35 as an example. Even adding a clean: target to the SoCs makefile doesn't help. What would be the right way to remove these files with make clean?
Add it to the list of files to remove in the top level Makefile?
Well, thats is not that easy. The generated asm-offsets.h file ends up in arch/arm/include/asm/arch-mx35/ after a "make mx35pdk_config" "make" "make distclean" run. It is generated to include/asm/arch/ in the SoCs makefile so I don't understand why it ends up in arch/arm/include/asm/arch-mx35/
There is an explicit rule in arch/arm/cpu/arm1136/mx35/Makefile. It seems to me the right place to put the generated file. It is an include header, and it should be the include directory for the desired soc, in this case arch/arm/include/asm/arch-mx35/
If I look into that Makefile I observe the following rule
$(TOPDIR)/include/asm/arch/asm-offsets.h:
And this rule should put the generated header file into include/asm/arch/ which is completly removed by a "make clean". But it ends up in arch/arm/include/asm/arch-mx35/ also. That puzzled me a bit but I must admit that I am not an expert in the u-boot makefile structure.
I don't think it makes sense to add a entry for each SoC using auto generated asm-offset files to the top level makefile. Same goes for the .s file as we shouldn't remove all .s files in the tree.
Is it not enough to add the following lines to the central Makefile, as suggested by Wolfgang:
@rm -f arch/$(ARCH)/include/asm/arch-$(SOC)/asm-offsets.h
This will remove the handwritten asm-offsets.h files which are used in arm/mb86r0x, arm/mx27, arm-mx5 and powerpc/mpc512x. I can change mb86r0x to auto generate the file as I am the maintainer of this SoC. I can also change the other ARM based SoCs but the PowerPC stuff is out of my focus.
@rm -f $(CPUDIR)/$(SOC)/asm-offsets.s
Thats perfect for the generated .s file. I will use this if we find a solution for the .h file in a patch.
The files are removed, as I now tested. And we do not need to add an entry for each CPU/SOC...
See my comments above.
Matthias Weißer

On 06/29/2011 08:37 PM, Matthias Weisser wrote:
Hi Stefano
Hi Matthias,
There is an explicit rule in arch/arm/cpu/arm1136/mx35/Makefile. It seems to me the right place to put the generated file. It is an include header, and it should be the include directory for the desired soc, in this case arch/arm/include/asm/arch-mx35/
If I look into that Makefile I observe the following rule
$(TOPDIR)/include/asm/arch/asm-offsets.h:
And this rule should put the generated header file into include/asm/arch/ which is completly removed by a "make clean".
This is a link. The link is removed, but the file still remains under arch/arm/include/asm/arch-mx35/asm-offsets.h.
But it ends up in arch/arm/include/asm/arch-mx35/ also. That puzzled me a bit but I must admit that I am not an expert in the u-boot makefile structure.
The reason to have a separate asm-offsets.h is that we have general generated offsets (with GENERATED_GBL_DATA_SIZE for example), and SOC offsets. This second asm-offsets.h is put for the mx35 into the specific SOC include directory.
Is it not enough to add the following lines to the central Makefile, as suggested by Wolfgang:
@rm -f arch/$(ARCH)/include/asm/arch-$(SOC)/asm-offsets.h
This will remove the handwritten asm-offsets.h files which are used in arm/mb86r0x, arm/mx27, arm-mx5 and powerpc/mpc512x. I can change mb86r0x to auto generate the file as I am the maintainer of this SoC. I can also change the other ARM based SoCs but the PowerPC stuff is out of my focus.
Agree. We should get rid of handwritten asm-offsets.h. They were written when there was not a tool to generate them. We can start adding the generation for each specific SOC (as you already found, at the moment we have only 4: mb86r0x, mx27, mx5, and mpc512x). When all patches will be integrated, we can add the final patch for the clean target in the main Makefile.
@rm -f $(CPUDIR)/$(SOC)/asm-offsets.s
Thats perfect for the generated .s file. I will use this if we find a solution for the .h file in a patch.
I think the solution is to generate asm-offsets.h, and remove the handwritten files.
Best regards, Stefano Babic
participants (4)
-
Matthias Weisser
-
Matthias Weißer
-
Stefano Babic
-
Wolfgang Denk