This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: Commit: Fix building elf32-msp430.c on 32-bit hosts
- From: Jozef Lawrynowicz <jozef dot l at mittosystems dot com>
- To: Nick Clifton <nickc at redhat dot com>
- Cc: binutils at sourceware dot org
- Date: Tue, 11 Feb 2020 13:01:14 +0000
- Subject: Re: Commit: Fix building elf32-msp430.c on 32-bit hosts
- References: <877e0t2t9i.fsf@redhat.com>
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
>