Commit: Fix building elf32-msp430.c on 32-bit hosts

Message ID 877e0t2t9i.fsf@redhat.com
State New
Headers show
Series
  • Commit: Fix building elf32-msp430.c on 32-bit hosts
Related show

Commit Message

Nick Clifton Feb. 11, 2020, 12:38 p.m.
Hi Guys,

  I am applying the patch below to fix building the elf32-msp430.c file
  on 32-bit hosts where addresses are ints rather than longs...

Cheers
  Nick

bfd/ChangeLog
2020-02-11  Nick Clifton  <nickc@redhat.com>

	* elf32-msp430.c (msp430_final_link_relocate): Always use longs
	for addresses in print statements.
	(msp430_elf_relax_delete_bytes): Likewise.
	(msp430_elf_relax_add_words): Likewise.
	(msp430_elf_relax_section): Likewise.

Comments

Jozef Lawrynowicz Feb. 11, 2020, 1:01 p.m. | #1
On Tue, 11 Feb 2020 12:38:49 +0000
Nick Clifton <nickc@redhat.com> wrote:

> Hi Guys,

> 

>   I am applying the patch below to fix building the elf32-msp430.c file

>   on 32-bit hosts where addresses are ints rather than longs...

> 

> Cheers

>   Nick


Whoops, thanks for fixing that.

Jozef
> 

> bfd/ChangeLog

> 2020-02-11  Nick Clifton  <nickc@redhat.com>

> 

> 	* elf32-msp430.c (msp430_final_link_relocate): Always use longs

> 	for addresses in print statements.

> 	(msp430_elf_relax_delete_bytes): Likewise.

> 	(msp430_elf_relax_add_words): Likewise.

> 	(msp430_elf_relax_section): Likewise.

> 

> diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c

> index 4d68d40f67..784c32ed02 100644

> --- a/bfd/elf32-msp430.c

> +++ b/bfd/elf32-msp430.c

> @@ -746,8 +746,8 @@ msp430_final_link_relocate (reloc_howto_type *	   howto,

>  

>    if (debug_relocs)

>      printf ("writing relocation (%p) at 0x%lx type: %d\n", rel,

> -	    input_section->output_section->vma + input_section->output_offset

> -	    + rel->r_offset, howto->type);

> +	    (long) (input_section->output_section->vma + input_section->output_offset

> +		    + rel->r_offset), howto->type);

>    if (sym_diff_section != NULL)

>      {

>        BFD_ASSERT (sym_diff_section == input_section);

> @@ -1671,7 +1671,7 @@ msp430_elf_relax_delete_bytes (bfd * abfd, asection * sec, bfd_vma addr,

>    toaddr = sec->size;

>    if (debug_relocs)

>      printf ("      deleting %d bytes between 0x%lx to 0x%lx\n",

> -	    count, addr, toaddr);

> +	    count, (long) addr, (long) toaddr);

>  

>    irel = elf_section_data (sec)->relocs;

>    irelend = irel + sec->reloc_count;

> @@ -1721,13 +1721,13 @@ msp430_elf_relax_delete_bytes (bfd * abfd, asection * sec, bfd_vma addr,

>  	{

>  	  if (debug_relocs)

>  	    printf ("      adjusting value of local symbol %s from 0x%lx ",

> -		    name, isym->st_value);

> +		    name, (long) isym->st_value);

>  	  if (isym->st_value < addr + count)

>  	    isym->st_value = addr;

>  	  else

>  	    isym->st_value -= count;

>  	  if (debug_relocs)

> -	    printf ("to 0x%lx\n", isym->st_value);

> +	    printf ("to 0x%lx\n", (long) isym->st_value);

>  	}

>        /* Adjust the function symbol's size as well.  */

>        else if (ELF_ST_TYPE (isym->st_info) == STT_FUNC

> @@ -1788,7 +1788,7 @@ msp430_elf_relax_add_words (bfd * abfd, asection * sec, bfd_vma addr,

>    asection *p;

>    if (debug_relocs)

>      printf ("      adding %d words at 0x%lx\n", num_words,

> -	    sec->output_section->vma + sec->output_offset + addr);

> +	    (long) (sec->output_section->vma + sec->output_offset + addr));

>  

>    contents = elf_section_data (sec)->this_hdr.contents;

>    sec_end = sec->size;

> @@ -1832,7 +1832,7 @@ msp430_elf_relax_add_words (bfd * abfd, asection * sec, bfd_vma addr,

>  	  printf ("      adjusting value of local symbol %s from 0x%lx to "

>  		  "0x%lx\n", bfd_elf_string_from_elf_section

>  		  (abfd, symtab_hdr->sh_link, isym->st_name),

> -		  isym->st_value, isym->st_value + num_bytes);

> +		  (long) isym->st_value, (long)(isym->st_value + num_bytes));

>  	isym->st_value += num_bytes;

>        }

>  

> @@ -1881,7 +1881,7 @@ msp430_elf_relax_section (bfd * abfd, asection * sec,

>  

>    if (debug_relocs)

>      printf ("Relaxing %s (%p), output_offset: 0x%lx sec size: 0x%lx\n",

> -	    sec->name, sec, sec->output_offset, sec->size);

> +	    sec->name, sec, (long) sec->output_offset, (long) sec->size);

>  

>    symtab_hdr = & elf_tdata (abfd)->symtab_hdr;

>  

> @@ -1955,11 +1955,12 @@ msp430_elf_relax_section (bfd * abfd, asection * sec,

>  

>  	  if (debug_relocs)

>  	    printf ("    processing reloc at 0x%lx for local sym: %s "

> -		    "st_value: 0x%lx adj value: 0x%lx\n", sec->output_offset

> -		    + sec->output_section->vma + irel->r_offset,

> +		    "st_value: 0x%lx adj value: 0x%lx\n",

> +		    (long) (sec->output_offset + sec->output_section->vma

> +			    + irel->r_offset),

>  		    bfd_elf_string_from_elf_section (abfd, symtab_hdr->sh_link,

>  						     isym->st_name),

> -		    isym->st_value, symval);

> +		    (long) isym->st_value, (long) symval);

>  	}

>        else

>  	{

> @@ -1983,9 +1984,11 @@ msp430_elf_relax_section (bfd * abfd, asection * sec,

>  		    + h->root.u.def.section->output_offset);

>  	  if (debug_relocs)

>  	    printf ("    processing reloc at 0x%lx for global sym: %s "

> -		    "st_value: 0x%lx adj value: 0x%lx\n", sec->output_offset

> -		    + sec->output_section->vma + irel->r_offset,

> -		    h->root.root.string, h->root.u.def.value, symval);

> +		    "st_value: 0x%lx adj value: 0x%lx\n",

> +		    (long) (sec->output_offset + sec->output_section->vma

> +		    + irel->r_offset),

> +	      h->root.root.string, (long) h->root.u.def.value,

> +	      (long) symval);

>  	}

>  

>        /* For simplicity of coding, we are going to modify the section

> @@ -2176,11 +2179,12 @@ msp430_elf_relax_section (bfd * abfd, asection * sec,

>  

>  	    if (debug_relocs)

>  	      printf ("    processing reloc at 0x%lx for local sym: %s "

> -		      "st_value: 0x%lx adj value: 0x%lx\n", sec->output_offset

> -		      + sec->output_section->vma + irel->r_offset,

> +		      "st_value: 0x%lx adj value: 0x%lx\n",

> +		      (long) (sec->output_offset + sec->output_section->vma

> +			      + irel->r_offset),

>  		      bfd_elf_string_from_elf_section

>  		      (abfd, symtab_hdr->sh_link, isym->st_name),

> -		      isym->st_value, symval);

> +		      (long) isym->st_value, (long) symval);

>  	  }

>  	else

>  	  {

> @@ -2204,9 +2208,11 @@ msp430_elf_relax_section (bfd * abfd, asection * sec,

>  		      + h->root.u.def.section->output_offset);

>  	    if (debug_relocs)

>  	      printf ("    processing reloc at 0x%lx for global sym: %s "

> -		      "st_value: 0x%lx adj value: 0x%lx\n", sec->output_offset

> -		      + sec->output_section->vma + irel->r_offset,

> -		      h->root.root.string, h->root.u.def.value, symval);

> +		      "st_value: 0x%lx adj value: 0x%lx\n", (long)

> +		      (sec->output_offset + sec->output_section->vma

> +		       + irel->r_offset),

> +		      h->root.root.string, (long) h->root.u.def.value,

> +		      (long) symval);

>  	  }

>  

>  	/* For simplicity of coding, we are going to modify the section

>

Patch

diff --git a/bfd/elf32-msp430.c b/bfd/elf32-msp430.c
index 4d68d40f67..784c32ed02 100644
--- a/bfd/elf32-msp430.c
+++ b/bfd/elf32-msp430.c
@@ -746,8 +746,8 @@  msp430_final_link_relocate (reloc_howto_type *	   howto,
 
   if (debug_relocs)
     printf ("writing relocation (%p) at 0x%lx type: %d\n", rel,
-	    input_section->output_section->vma + input_section->output_offset
-	    + rel->r_offset, howto->type);
+	    (long) (input_section->output_section->vma + input_section->output_offset
+		    + rel->r_offset), howto->type);
   if (sym_diff_section != NULL)
     {
       BFD_ASSERT (sym_diff_section == input_section);
@@ -1671,7 +1671,7 @@  msp430_elf_relax_delete_bytes (bfd * abfd, asection * sec, bfd_vma addr,
   toaddr = sec->size;
   if (debug_relocs)
     printf ("      deleting %d bytes between 0x%lx to 0x%lx\n",
-	    count, addr, toaddr);
+	    count, (long) addr, (long) toaddr);
 
   irel = elf_section_data (sec)->relocs;
   irelend = irel + sec->reloc_count;
@@ -1721,13 +1721,13 @@  msp430_elf_relax_delete_bytes (bfd * abfd, asection * sec, bfd_vma addr,
 	{
 	  if (debug_relocs)
 	    printf ("      adjusting value of local symbol %s from 0x%lx ",
-		    name, isym->st_value);
+		    name, (long) isym->st_value);
 	  if (isym->st_value < addr + count)
 	    isym->st_value = addr;
 	  else
 	    isym->st_value -= count;
 	  if (debug_relocs)
-	    printf ("to 0x%lx\n", isym->st_value);
+	    printf ("to 0x%lx\n", (long) isym->st_value);
 	}
       /* Adjust the function symbol's size as well.  */
       else if (ELF_ST_TYPE (isym->st_info) == STT_FUNC
@@ -1788,7 +1788,7 @@  msp430_elf_relax_add_words (bfd * abfd, asection * sec, bfd_vma addr,
   asection *p;
   if (debug_relocs)
     printf ("      adding %d words at 0x%lx\n", num_words,
-	    sec->output_section->vma + sec->output_offset + addr);
+	    (long) (sec->output_section->vma + sec->output_offset + addr));
 
   contents = elf_section_data (sec)->this_hdr.contents;
   sec_end = sec->size;
@@ -1832,7 +1832,7 @@  msp430_elf_relax_add_words (bfd * abfd, asection * sec, bfd_vma addr,
 	  printf ("      adjusting value of local symbol %s from 0x%lx to "
 		  "0x%lx\n", bfd_elf_string_from_elf_section
 		  (abfd, symtab_hdr->sh_link, isym->st_name),
-		  isym->st_value, isym->st_value + num_bytes);
+		  (long) isym->st_value, (long)(isym->st_value + num_bytes));
 	isym->st_value += num_bytes;
       }
 
@@ -1881,7 +1881,7 @@  msp430_elf_relax_section (bfd * abfd, asection * sec,
 
   if (debug_relocs)
     printf ("Relaxing %s (%p), output_offset: 0x%lx sec size: 0x%lx\n",
-	    sec->name, sec, sec->output_offset, sec->size);
+	    sec->name, sec, (long) sec->output_offset, (long) sec->size);
 
   symtab_hdr = & elf_tdata (abfd)->symtab_hdr;
 
@@ -1955,11 +1955,12 @@  msp430_elf_relax_section (bfd * abfd, asection * sec,
 
 	  if (debug_relocs)
 	    printf ("    processing reloc at 0x%lx for local sym: %s "
-		    "st_value: 0x%lx adj value: 0x%lx\n", sec->output_offset
-		    + sec->output_section->vma + irel->r_offset,
+		    "st_value: 0x%lx adj value: 0x%lx\n",
+		    (long) (sec->output_offset + sec->output_section->vma
+			    + irel->r_offset),
 		    bfd_elf_string_from_elf_section (abfd, symtab_hdr->sh_link,
 						     isym->st_name),
-		    isym->st_value, symval);
+		    (long) isym->st_value, (long) symval);
 	}
       else
 	{
@@ -1983,9 +1984,11 @@  msp430_elf_relax_section (bfd * abfd, asection * sec,
 		    + h->root.u.def.section->output_offset);
 	  if (debug_relocs)
 	    printf ("    processing reloc at 0x%lx for global sym: %s "
-		    "st_value: 0x%lx adj value: 0x%lx\n", sec->output_offset
-		    + sec->output_section->vma + irel->r_offset,
-		    h->root.root.string, h->root.u.def.value, symval);
+		    "st_value: 0x%lx adj value: 0x%lx\n",
+		    (long) (sec->output_offset + sec->output_section->vma
+		    + irel->r_offset),
+	      h->root.root.string, (long) h->root.u.def.value,
+	      (long) symval);
 	}
 
       /* For simplicity of coding, we are going to modify the section
@@ -2176,11 +2179,12 @@  msp430_elf_relax_section (bfd * abfd, asection * sec,
 
 	    if (debug_relocs)
 	      printf ("    processing reloc at 0x%lx for local sym: %s "
-		      "st_value: 0x%lx adj value: 0x%lx\n", sec->output_offset
-		      + sec->output_section->vma + irel->r_offset,
+		      "st_value: 0x%lx adj value: 0x%lx\n",
+		      (long) (sec->output_offset + sec->output_section->vma
+			      + irel->r_offset),
 		      bfd_elf_string_from_elf_section
 		      (abfd, symtab_hdr->sh_link, isym->st_name),
-		      isym->st_value, symval);
+		      (long) isym->st_value, (long) symval);
 	  }
 	else
 	  {
@@ -2204,9 +2208,11 @@  msp430_elf_relax_section (bfd * abfd, asection * sec,
 		      + h->root.u.def.section->output_offset);
 	    if (debug_relocs)
 	      printf ("    processing reloc at 0x%lx for global sym: %s "
-		      "st_value: 0x%lx adj value: 0x%lx\n", sec->output_offset
-		      + sec->output_section->vma + irel->r_offset,
-		      h->root.root.string, h->root.u.def.value, symval);
+		      "st_value: 0x%lx adj value: 0x%lx\n", (long)
+		      (sec->output_offset + sec->output_section->vma
+		       + irel->r_offset),
+		      h->root.root.string, (long) h->root.u.def.value,
+		      (long) symval);
 	  }
 
 	/* For simplicity of coding, we are going to modify the section