This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Build failure


Hi Nick,

Sorry for that, we did not try it on 32bit machine. :-(
From our side we have no objections to your patch.
Thanks for the fix.

Cheers,
Cupertino

PS: BTW, indeed in the Changelog our last names got reverse with the first ones.
For future reference, Miranda and Zissulescu are our last names. ;-)

> -----Original Message-----
> From: Nick Clifton [mailto:nickc@redhat.com]
> Sent: Thursday, January 21, 2016 11:59 AM
> To: Cupertino.Miranda@synopsys.com; Claudiu.Zissulescu@synopsys.com
> Cc: binutils@sourceware.org
> Subject: ARC: Build failure
> 
> Hi Miranda, Hi Zissulescu,
> 
>   I have just started encountering a build failure when building an
>   all-targets toolchain configured for a 32-bit host:
> 
> bfd/elf32-arc.c: In function 'elf_arc_finish_dynamic_symbol':
> bfd/elf32-arc.c:2248:21: error: cast from pointer to integer of different size [-
> Werror=pointer-to-int-cast]
>        bfd_vma loc = (bfd_vma) srelbss->contents
>                      ^
> bfd/elf32-arc.c:2257:52: error: cast to pointer from integer of different size [-
> Werror=int-to-pointer-cast]
>        bfd_elf32_swap_reloca_out (output_bfd, &rel, (bfd_byte *) loc);
>                                                     ^
>   There are several more failures like this.
> 
>   I am not sure why you are using a bfd_vma to hold the location value,
>   but a patch like the one below fixes the build problem for me.  Do you
>   have any objections to my applying it ?
> 
> Cheers
>   Nick
> 
> diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index 0931c4e..8a46a2c 100644
> --- a/bfd/elf32-arc.c
> +++ b/bfd/elf32-arc.c
> @@ -55,9 +55,9 @@ name_for_global_symbol (struct elf_link_hash_entry
> *h)
>    {									\
>      struct elf_link_hash_table *_htab = elf_hash_table (info);		\
>      Elf_Internal_Rela _rel;						\
> -    bfd_vma _loc;							\
> +    bfd_byte * _loc;							\
>  									\
> -    _loc = (bfd_vma) _htab->srel##SECTION->contents			\
> +    _loc = _htab->srel##SECTION->contents				\
>        + ((_htab->srel##SECTION->reloc_count)				\
>  	 * sizeof (Elf32_External_Rela));				\
>      _htab->srel##SECTION->reloc_count++;				\
> @@ -65,7 +65,7 @@ name_for_global_symbol (struct elf_link_hash_entry
> *h)
>      _rel.r_offset = (_htab->s##SECTION)->output_section->vma
> 	\
>        + (_htab->s##SECTION)->output_offset + OFFSET;			\
>      _rel.r_info = ELF32_R_INFO (SYM_IDX, TYPE);
> 	\
> -    bfd_elf32_swap_reloca_out (BFD, &_rel, (bfd_byte *) _loc);
> 	\
> +    bfd_elf32_swap_reloca_out (BFD, &_rel, _loc);			\
>    }
> 
>  struct arc_local_data
> @@ -2245,8 +2245,8 @@ GOT_OFFSET = 0x%x, GOT_VMA = 0x%x, INDEX =
> %d, ADDEND = 0x%x\n",
>  	bfd_get_section_by_name (h->root.u.def.section->owner,
>  				 ".rela.bss");
> 
> -      bfd_vma loc = (bfd_vma) srelbss->contents
> -		    + (srelbss->reloc_count * sizeof (Elf32_External_Rela));
> +      bfd_byte * loc = srelbss->contents
> +	+ (srelbss->reloc_count * sizeof (Elf32_External_Rela));
>        srelbss->reloc_count++;
> 
>        Elf_Internal_Rela rel;
> @@ -2254,7 +2254,7 @@ GOT_OFFSET = 0x%x, GOT_VMA = 0x%x, INDEX =
> %d, ADDEND = 0x%x\n",
>        rel.r_offset = rel_offset;
>        rel.r_info = ELF32_R_INFO (h->dynindx, R_ARC_COPY);
> 
> -      bfd_elf32_swap_reloca_out (output_bfd, &rel, (bfd_byte *) loc);
> +      bfd_elf32_swap_reloca_out (output_bfd, &rel, loc);
>      }
> 
>    /* Mark _DYNAMIC and _GLOBAL_OFFSET_TABLE_ as absolute.  */


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]