[v1,1/1] bfd: microblaze: Fix automated build errors

Message ID 20231007071110.401935-1-neal.frager@amd.com
State Superseded, archived
Headers
Series [v1,1/1] bfd: microblaze: Fix automated build errors |

Checks

Context Check Description
linaro-tcwg-bot/tcwg_binutils_check--master-arm success Testing passed
linaro-tcwg-bot/tcwg_binutils_build--master-arm success Testing passed
linaro-tcwg-bot/tcwg_binutils_build--master-aarch64 success Testing passed
linaro-tcwg-bot/tcwg_binutils_check--master-aarch64 success Testing passed

Commit Message

Neal Frager Oct. 7, 2023, 7:11 a.m. UTC
  This patch fixes the following automated build errors:
https://builder.sourceware.org/buildbot/#/builders/80/builds/2101/steps/4/logs/stdio
https://builder.sourceware.org/buildbot/#/builders/72/builds/3405/steps/4/logs/stdio

Signed-off-by: Neal Frager <neal.frager@amd.com>
---
 bfd/elf32-microblaze.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
  

Comments

Vladimir Mezentsev Oct. 7, 2023, 6:56 p.m. UTC | #1
On 10/7/23 00:11, Neal Frager wrote:
> This patch fixes the following automated build errors:
> https://builder.sourceware.org/buildbot/#/builders/80/builds/2101/steps/4/logs/stdio
> https://builder.sourceware.org/buildbot/#/builders/72/builds/3405/steps/4/logs/stdio
>
> Signed-off-by: Neal Frager <neal.frager@amd.com>
> ---
>   bfd/elf32-microblaze.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
> index a8ced43c08a..96bb63fbd2e 100644
> --- a/bfd/elf32-microblaze.c
> +++ b/bfd/elf32-microblaze.c
> @@ -1986,7 +1986,7 @@ microblaze_elf_relax_section (bfd *abfd,
>   		/* Validate the in-band val.  */
>   		val = bfd_get_32 (abfd, contents + irel->r_offset);
>   		if (val != irel->r_addend && ELF32_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) {
> -		    fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend);
> +		    fprintf(stderr, "%d: CORRUPT relax reloc %x %x\n", __LINE__, val, irel->r_addend);

The type of irel->r_addend is "bfd_vma".
"bfd_vma" can be "unsigned long" or "unsigned int".

Perhaps the correct fix is:
   fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, (unsigned long) irel->r_addend);
or
   fprintf(stderr, "%d: CORRUPT relax reloc %x %llx\n", __LINE__, val, (unsigned long long) irel->r_addend);
  
Neal Frager Oct. 9, 2023, 6:13 a.m. UTC | #2
Hi Vladimir,

> This patch fixes the following automated build errors:
> https://builder.sourceware.org/buildbot/#/builders/80/builds/2101/step
> s/4/logs/stdio 
> https://builder.sourceware.org/buildbot/#/builders/72/builds/3405/step
> s/4/logs/stdio
>
> Signed-off-by: Neal Frager <neal.frager@amd.com>
> ---
>   bfd/elf32-microblaze.c | 4 ++--
>   1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c index 
> a8ced43c08a..96bb63fbd2e 100644
> --- a/bfd/elf32-microblaze.c
> +++ b/bfd/elf32-microblaze.c
> @@ -1986,7 +1986,7 @@ microblaze_elf_relax_section (bfd *abfd,
>   		/* Validate the in-band val.  */
>   		val = bfd_get_32 (abfd, contents + irel->r_offset);
>   		if (val != irel->r_addend && ELF32_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) {
> -		    fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend);
> +		    fprintf(stderr, "%d: CORRUPT relax reloc %x %x\n", __LINE__, 
> +val, irel->r_addend);

> The type of irel->r_addend is "bfd_vma".
> "bfd_vma" can be "unsigned long" or "unsigned int".

> Perhaps the correct fix is:
>  fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, (unsigned long) irel->r_addend); or
>  fprintf(stderr, "%d: CORRUPT relax reloc %x %llx\n", __LINE__, val, (unsigned long long) irel->r_addend);

Thank you for your input.  I will implement your solution in v3 of the patch.

Just to be sure, both lines should be cast set to (unsigned long), correct?  The "(unsigned long long)" that you used on the second fprintf statement was just a typo?

Thank you for your help.

Best regards,
Neal Frager
AMD
  
Vladimir Mezentsev Oct. 9, 2023, 4:05 p.m. UTC | #3
Hi Neal,

On 10/8/23 23:13, Frager, Neal wrote:
> Hi Vladimir,
>
>> This patch fixes the following automated build errors:
>> https://builder.sourceware.org/buildbot/#/builders/80/builds/2101/step
>> s/4/logs/stdio
>> https://builder.sourceware.org/buildbot/#/builders/72/builds/3405/step
>> s/4/logs/stdio
>>
>> Signed-off-by: Neal Frager <neal.frager@amd.com>
>> ---
>>    bfd/elf32-microblaze.c | 4 ++--
>>    1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c index
>> a8ced43c08a..96bb63fbd2e 100644
>> --- a/bfd/elf32-microblaze.c
>> +++ b/bfd/elf32-microblaze.c
>> @@ -1986,7 +1986,7 @@ microblaze_elf_relax_section (bfd *abfd,
>>    		/* Validate the in-band val.  */
>>    		val = bfd_get_32 (abfd, contents + irel->r_offset);
>>    		if (val != irel->r_addend && ELF32_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) {
>> -		    fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend);
>> +		    fprintf(stderr, "%d: CORRUPT relax reloc %x %x\n", __LINE__,
>> +val, irel->r_addend);
>> The type of irel->r_addend is "bfd_vma".
>> "bfd_vma" can be "unsigned long" or "unsigned int".
>> Perhaps the correct fix is:
>>   fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, (unsigned long) irel->r_addend); or
>>   fprintf(stderr, "%d: CORRUPT relax reloc %x %llx\n", __LINE__, val, (unsigned long long) irel->r_addend);
> Thank you for your input.  I will implement your solution in v3 of the patch.
>
> Just to be sure, both lines should be cast set to (unsigned long), correct?  The "(unsigned long long)" that you used on the second fprintf statement was just a typo?

  The "bfd_vma" type is defined outside elf32-microblaze.c
You don't know who determines this.
It can be "unsigned long long" and irel->r_addendIn can be very large.
In this case, we need to use the format "%llx" and convert the argument 
to the required format ((unsigned long long) for %llx)..

-Vladimir


>
> Thank you for your help.
>
> Best regards,
> Neal Frager
> AMD
  

Patch

diff --git a/bfd/elf32-microblaze.c b/bfd/elf32-microblaze.c
index a8ced43c08a..96bb63fbd2e 100644
--- a/bfd/elf32-microblaze.c
+++ b/bfd/elf32-microblaze.c
@@ -1986,7 +1986,7 @@  microblaze_elf_relax_section (bfd *abfd,
 		/* Validate the in-band val.  */
 		val = bfd_get_32 (abfd, contents + irel->r_offset);
 		if (val != irel->r_addend && ELF32_R_TYPE (irel->r_info) == R_MICROBLAZE_32_NONE) {
-		    fprintf(stderr, "%d: CORRUPT relax reloc %x %lx\n", __LINE__, val, irel->r_addend);
+		    fprintf(stderr, "%d: CORRUPT relax reloc %x %x\n", __LINE__, val, irel->r_addend);
 		}
 		irel->r_addend -= (efix - sfix);
 		/* Should use HOWTO.  */
@@ -2071,7 +2071,7 @@  microblaze_elf_relax_section (bfd *abfd,
 
 		  val = bfd_get_32 (abfd, ocontents + irelscan->r_offset);
 		  if (val != irelscan->r_addend) {
-			fprintf(stderr, "%d: CORRUPT relax reloc! %x %lx\n", __LINE__, val, irelscan->r_addend);
+			fprintf(stderr, "%d: CORRUPT relax reloc! %x %x\n", __LINE__, val, irelscan->r_addend);
 		  }
 
 		  irelscan->r_addend -= calc_fixup (irelscan->r_addend, 0, sec);