[ARC] Disable warning on absolute relocs when symbol is local.

R_ARC_32 and R_ARC_32_ME cannot be generated as dynamic relocs.
However, a warning message and check_relocs was aborting when this type of
reloc was being resolved to a local symbol.
This is wrong as local symbols are resolvable at link time.

bfd/ChangeLog:

    Cupertino Miranda  <cmiranda@synopsys.com>

	* elf32-arc.c (elf_arc_check_relocs): Added condition to disable
	warning and "Bad value" for local symbols ARC_32 or ARC_32_ME relocs.
This commit is contained in:
Cupertino Miranda
2016-10-24 12:52:04 +02:00
parent be9e3704f9
commit 9d5c718b7a
2 changed files with 7 additions and 1 deletions

View File

@ -1,3 +1,8 @@
2017-06-08 Cupertino Miranda <cmiranda@synopsys.com>
* elf32-arc.c (elf_arc_check_relocs): Added condition to disable
warning and "Bad value" for local symbols ARC_32 or ARC_32_ME relocs.
2017-06-08 Cupertino Miranda <cmiranda@synopsys.com> 2017-06-08 Cupertino Miranda <cmiranda@synopsys.com>
* elf32-arc.c (ADD_RELA): Changed to only work when dynamic * elf32-arc.c (ADD_RELA): Changed to only work when dynamic

View File

@ -1938,7 +1938,8 @@ elf_arc_check_relocs (bfd * abfd,
and the dynamic linker can not resolve these. However and the dynamic linker can not resolve these. However
the error should not occur for e.g. debugging or the error should not occur for e.g. debugging or
non-readonly sections. */ non-readonly sections. */
if ((bfd_link_dll (info) && !bfd_link_pie (info)) if (h != NULL
&& (bfd_link_dll (info) && !bfd_link_pie (info))
&& (sec->flags & SEC_ALLOC) != 0 && (sec->flags & SEC_ALLOC) != 0
&& (sec->flags & SEC_READONLY) != 0 && (sec->flags & SEC_READONLY) != 0
&& ((sec->flags & SEC_CODE) != 0 && ((sec->flags & SEC_CODE) != 0