From mboxrd@z Thu Jan 1 00:00:00 1970 From: Troy Kisky Date: Tue, 07 Feb 2012 17:49:17 -0700 Subject: [U-Boot] [PATCH v2 1/2] RFC: create u-boot-common.lds In-Reply-To: References: <1328660414-7551-1-git-send-email-troy.kisky@boundarydevices.com> Message-ID: <4F31C68D.5020400@boundarydevices.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de On 2/7/2012 5:39 PM, Graeme Russ wrote: > Hi Troy, > > On Wed, Feb 8, 2012 at 11:20 AM, Troy Kisky > wrote: >> This makes adding linker defined tables easier >> as only 1 lds file (include/u-boot-common.lds) >> will need to be touched instead of 193 files. >> >> Signed-off-by: Troy Kisky >> --- > >> diff --git a/arch/arm/cpu/arm1136/u-boot.lds b/arch/arm/cpu/arm1136/u-boot.lds >> index d1e2851..fe07097 100644 >> --- a/arch/arm/cpu/arm1136/u-boot.lds >> +++ b/arch/arm/cpu/arm1136/u-boot.lds >> @@ -52,12 +52,7 @@ SECTIONS >> *(.data) >> } >> >> - . = ALIGN(4); >> - >> - . = .; >> - __u_boot_cmd_start = .; >> - .u_boot_cmd : { *(.u_boot_cmd) } >> - __u_boot_cmd_end = .; >> +#include >> >> . = ALIGN(4); >> > Ick! A #define in the middle of a file :( > > I would rather see the code block you are replacing #defined in > include/u-boot-common.lds.h and then use the define at the desired > location in the arch lds file. This will allow multiple 'functional > linker blocks' to be defined that the acrch scripts can arrange as they > see fit. > > Also, ALIGN(4) may not always be a given, so maybe we should pass that in > as a parameter? > > Hmmm....maybe something like (most likely not syntactically correct): > > #define U_BOOT_LDS_SECTION(section, alignment) \ > . = ALIGN(alignment); \ > U_BOOT_LDS_SYMBOL(section ## _start) = .; > . ## section : { KEEP(*(. ## section)) } > U_BOOT_LDS_SYMBOL(section ## _end) = .; > > > So we can simply, in the arch lds: > > U_BOOT_LDS_SECTION(text, 4) > U_BOOT_LDS_SECTION(u_boot_cmd, 4) > U_BOOT_LDS_SECTION(rodata, 4) > U_BOOT_LDS_SECTION(data, 4) > U_BOOT_LDS_SECTION(dynsym, 4) > > Regards, > > Graeme > That works fine for existing sections.. i.e U_BOOT_LDS_SECTION(u_boot_cmd, 4) but what about the next patch in the series? Do you want me to change all lds files again? I hope you have a better idea for how to handle patch 2/2. Thanks for the feedback. Troy