From: Cupertino Miranda Date: Mon, 24 Oct 2016 10:52:04 +0000 (+0200) Subject: [ARC] Disable warning on absolute relocs when symbol is local. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=9d5c718b7a9c46132940f899f40556a77ca462a0;p=binutils-gdb.git [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 * 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. --- diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 6d8e9b19090..ba3691981f7 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,8 @@ +2017-06-08 Cupertino Miranda + + * 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 * elf32-arc.c (ADD_RELA): Changed to only work when dynamic diff --git a/bfd/elf32-arc.c b/bfd/elf32-arc.c index 747faf912da..8aec9eaee9c 100644 --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -1938,7 +1938,8 @@ elf_arc_check_relocs (bfd * abfd, and the dynamic linker can not resolve these. However the error should not occur for e.g. debugging or 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_READONLY) != 0 && ((sec->flags & SEC_CODE) != 0