* elf32-s390.c (allocate_dynrelocs, elf_s390_relocate_section):

Fix WILL_CALL_FINISH_DYNAMIC_SYMBOL call.
	(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead of INFO.
	* elf64-s390.c: Likewise.
This commit is contained in:
Martin Schwidefsky 2003-05-09 16:41:42 +00:00
parent 3cd9fdd546
commit 4ec72bdef8
3 changed files with 15 additions and 8 deletions

View File

@ -1,3 +1,10 @@
2003-05-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
* elf32-s390.c (allocate_dynrelocs, elf_s390_relocate_section):
Fix WILL_CALL_FINISH_DYNAMIC_SYMBOL call.
(WILL_CALL_FINISH_DYNAMIC_SYMBOL): Pass SHARED instead of INFO.
* elf64-s390.c: Likewise.
2003-05-09 Martin Schwidefsky <schwidefsky@de.ibm.com> 2003-05-09 Martin Schwidefsky <schwidefsky@de.ibm.com>
* elf32-s390.c (ELIMINATE_COPY_RELOCS): Define as one. * elf32-s390.c (ELIMINATE_COPY_RELOCS): Define as one.

View File

@ -1644,9 +1644,9 @@ elf_s390_adjust_dynamic_symbol (info, h)
will be called from elflink.h. If elflink.h doesn't call our will be called from elflink.h. If elflink.h doesn't call our
finish_dynamic_symbol routine, we'll need to do something about finish_dynamic_symbol routine, we'll need to do something about
initializing any .plt and .got entries in elf_s390_relocate_section. */ initializing any .plt and .got entries in elf_s390_relocate_section. */
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \ #define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
((DYN) \ ((DYN) \
&& ((INFO)->shared \ && ((SHARED) \
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
&& ((H)->dynindx != -1 \ && ((H)->dynindx != -1 \
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)) || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
@ -1691,7 +1691,7 @@ allocate_dynrelocs (h, inf)
} }
if (info->shared if (info->shared
|| WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h))
{ {
asection *s = htab->splt; asection *s = htab->splt;
@ -2339,7 +2339,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
off = h->got.offset; off = h->got.offset;
dyn = htab->elf.dynamic_sections_created; dyn = htab->elf.dynamic_sections_created;
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h) if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
|| (info->shared || (info->shared
&& (info->symbolic && (info->symbolic
|| h->dynindx == -1 || h->dynindx == -1

View File

@ -1616,9 +1616,9 @@ elf_s390_adjust_dynamic_symbol (info, h)
will be called from elflink.h. If elflink.h doesn't call our will be called from elflink.h. If elflink.h doesn't call our
finish_dynamic_symbol routine, we'll need to do something about finish_dynamic_symbol routine, we'll need to do something about
initializing any .plt and .got entries in elf_s390_relocate_section. */ initializing any .plt and .got entries in elf_s390_relocate_section. */
#define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, INFO, H) \ #define WILL_CALL_FINISH_DYNAMIC_SYMBOL(DYN, SHARED, H) \
((DYN) \ ((DYN) \
&& ((INFO)->shared \ && ((SHARED) \
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \
&& ((H)->dynindx != -1 \ && ((H)->dynindx != -1 \
|| ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)) || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0))
@ -1663,7 +1663,7 @@ allocate_dynrelocs (h, inf)
} }
if (info->shared if (info->shared
|| WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h))
{ {
asection *s = htab->splt; asection *s = htab->splt;
@ -2312,7 +2312,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section,
off = h->got.offset; off = h->got.offset;
dyn = htab->elf.dynamic_sections_created; dyn = htab->elf.dynamic_sections_created;
if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info, h) if (! WILL_CALL_FINISH_DYNAMIC_SYMBOL (dyn, info->shared, h)
|| (info->shared || (info->shared
&& (info->symbolic && (info->symbolic
|| h->dynindx == -1 || h->dynindx == -1