
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