Message ID | 20190425192240.5925-1-simon.k.r.goldschmidt@gmail.com |
---|---|
State | Accepted |
Commit | 1b1d8c19f5b4b799232eee70e8916cd2491872ec |
Delegated to: | Tom Rini |
Headers | show |
Series | [U-Boot,v5,1/2] spl: fix linker size check off-by-one errors | expand |
On 25.04.19 21:22, Simon Goldschmidt wrote: > This fixes SPL linker script size checks for 3 lds files where the size > checks were implemented as "x < YYY_MAX_SIZE". > > Fix the size checks to be "x <= YYY_MAX_SIZE" instead. After updating Ubuntu to 19.04 today, the new 8.3 gcc makes smartweb_defconfig fail compiling SPL without this because __image_copy_end==0x1000 I guess we're lucky travis uses gcc 7.3... (or, are we?) Regards, Simon > > Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> > --- > > Changes in v5: > - added patch to fix linker size checks off-by-one error > > arch/arm/cpu/u-boot-spl.lds | 6 +++--- > arch/arm/mach-at91/arm926ejs/u-boot-spl.lds | 4 ++-- > arch/microblaze/cpu/u-boot-spl.lds | 2 +- > 3 files changed, 6 insertions(+), 6 deletions(-) > > diff --git a/arch/arm/cpu/u-boot-spl.lds b/arch/arm/cpu/u-boot-spl.lds > index a2aa93a735..97899a567f 100644 > --- a/arch/arm/cpu/u-boot-spl.lds > +++ b/arch/arm/cpu/u-boot-spl.lds > @@ -79,16 +79,16 @@ SECTIONS > } > > #if defined(IMAGE_MAX_SIZE) > -ASSERT(__image_copy_end - __image_copy_start < (IMAGE_MAX_SIZE), \ > +ASSERT(__image_copy_end - __image_copy_start <= (IMAGE_MAX_SIZE), \ > "SPL image too big"); > #endif > > #if defined(CONFIG_SPL_BSS_MAX_SIZE) > -ASSERT(__bss_end - __bss_start < (CONFIG_SPL_BSS_MAX_SIZE), \ > +ASSERT(__bss_end - __bss_start <= (CONFIG_SPL_BSS_MAX_SIZE), \ > "SPL image BSS too big"); > #endif > > #if defined(CONFIG_SPL_MAX_FOOTPRINT) > -ASSERT(__bss_end - _start < (CONFIG_SPL_MAX_FOOTPRINT), \ > +ASSERT(__bss_end - _start <= (CONFIG_SPL_MAX_FOOTPRINT), \ > "SPL image plus BSS too big"); > #endif > diff --git a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds > index 3955bea23a..74f6355229 100644 > --- a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds > +++ b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds > @@ -52,11 +52,11 @@ SECTIONS > } > > #if defined(IMAGE_MAX_SIZE) > -ASSERT(__image_copy_end - __start < (IMAGE_MAX_SIZE), \ > +ASSERT(__image_copy_end - __start <= (IMAGE_MAX_SIZE), \ > "SPL image too big"); > #endif > > #if defined(CONFIG_SPL_BSS_MAX_SIZE) > -ASSERT(__bss_end - __bss_start < (CONFIG_SPL_BSS_MAX_SIZE), \ > +ASSERT(__bss_end - __bss_start <= (CONFIG_SPL_BSS_MAX_SIZE), \ > "SPL image BSS too big"); > #endif > diff --git a/arch/microblaze/cpu/u-boot-spl.lds b/arch/microblaze/cpu/u-boot-spl.lds > index 99c62b51a1..3387eb7189 100644 > --- a/arch/microblaze/cpu/u-boot-spl.lds > +++ b/arch/microblaze/cpu/u-boot-spl.lds > @@ -57,6 +57,6 @@ SECTIONS > } > > #if defined(CONFIG_SPL_MAX_FOOTPRINT) > -ASSERT(__end - _start < (CONFIG_SPL_MAX_FOOTPRINT), \ > +ASSERT(__end - _start <= (CONFIG_SPL_MAX_FOOTPRINT), \ > "SPL image plus BSS too big"); > #endif >
On Thu, Apr 25, 2019 at 09:22:39PM +0200, Simon Goldschmidt wrote: > This fixes SPL linker script size checks for 3 lds files where the size > checks were implemented as "x < YYY_MAX_SIZE". > > Fix the size checks to be "x <= YYY_MAX_SIZE" instead. > > Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> Applied to u-boot/master, thanks!
diff --git a/arch/arm/cpu/u-boot-spl.lds b/arch/arm/cpu/u-boot-spl.lds index a2aa93a735..97899a567f 100644 --- a/arch/arm/cpu/u-boot-spl.lds +++ b/arch/arm/cpu/u-boot-spl.lds @@ -79,16 +79,16 @@ SECTIONS } #if defined(IMAGE_MAX_SIZE) -ASSERT(__image_copy_end - __image_copy_start < (IMAGE_MAX_SIZE), \ +ASSERT(__image_copy_end - __image_copy_start <= (IMAGE_MAX_SIZE), \ "SPL image too big"); #endif #if defined(CONFIG_SPL_BSS_MAX_SIZE) -ASSERT(__bss_end - __bss_start < (CONFIG_SPL_BSS_MAX_SIZE), \ +ASSERT(__bss_end - __bss_start <= (CONFIG_SPL_BSS_MAX_SIZE), \ "SPL image BSS too big"); #endif #if defined(CONFIG_SPL_MAX_FOOTPRINT) -ASSERT(__bss_end - _start < (CONFIG_SPL_MAX_FOOTPRINT), \ +ASSERT(__bss_end - _start <= (CONFIG_SPL_MAX_FOOTPRINT), \ "SPL image plus BSS too big"); #endif diff --git a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds index 3955bea23a..74f6355229 100644 --- a/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds +++ b/arch/arm/mach-at91/arm926ejs/u-boot-spl.lds @@ -52,11 +52,11 @@ SECTIONS } #if defined(IMAGE_MAX_SIZE) -ASSERT(__image_copy_end - __start < (IMAGE_MAX_SIZE), \ +ASSERT(__image_copy_end - __start <= (IMAGE_MAX_SIZE), \ "SPL image too big"); #endif #if defined(CONFIG_SPL_BSS_MAX_SIZE) -ASSERT(__bss_end - __bss_start < (CONFIG_SPL_BSS_MAX_SIZE), \ +ASSERT(__bss_end - __bss_start <= (CONFIG_SPL_BSS_MAX_SIZE), \ "SPL image BSS too big"); #endif diff --git a/arch/microblaze/cpu/u-boot-spl.lds b/arch/microblaze/cpu/u-boot-spl.lds index 99c62b51a1..3387eb7189 100644 --- a/arch/microblaze/cpu/u-boot-spl.lds +++ b/arch/microblaze/cpu/u-boot-spl.lds @@ -57,6 +57,6 @@ SECTIONS } #if defined(CONFIG_SPL_MAX_FOOTPRINT) -ASSERT(__end - _start < (CONFIG_SPL_MAX_FOOTPRINT), \ +ASSERT(__end - _start <= (CONFIG_SPL_MAX_FOOTPRINT), \ "SPL image plus BSS too big"); #endif
This fixes SPL linker script size checks for 3 lds files where the size checks were implemented as "x < YYY_MAX_SIZE". Fix the size checks to be "x <= YYY_MAX_SIZE" instead. Signed-off-by: Simon Goldschmidt <simon.k.r.goldschmidt@gmail.com> --- Changes in v5: - added patch to fix linker size checks off-by-one error arch/arm/cpu/u-boot-spl.lds | 6 +++--- arch/arm/mach-at91/arm926ejs/u-boot-spl.lds | 4 ++-- arch/microblaze/cpu/u-boot-spl.lds | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-)