diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2003-05-09 16:41:42 +0000 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2003-05-09 16:41:42 +0000 |
commit | 4ec72bdef89669d10d51cf76c0698461026b8f15 (patch) | |
tree | 8f320ccc98d37c4c7c1700cca6bd0e63bcbad719 | |
parent | 3cd9fdd54620ef11bc2bee35ba2c9c9c9cb4686a (diff) | |
download | gdb-4ec72bdef89669d10d51cf76c0698461026b8f15.zip gdb-4ec72bdef89669d10d51cf76c0698461026b8f15.tar.gz gdb-4ec72bdef89669d10d51cf76c0698461026b8f15.tar.bz2 |
* 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.
-rw-r--r-- | bfd/ChangeLog | 7 | ||||
-rw-r--r-- | bfd/elf32-s390.c | 8 | ||||
-rw-r--r-- | bfd/elf64-s390.c | 8 |
3 files changed, 15 insertions, 8 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index 4a2bc48..0cf4ea3 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,5 +1,12 @@ 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> + * elf32-s390.c (ELIMINATE_COPY_RELOCS): Define as one. (elf_s390_adjust_dynamic_symbol): For weak symbols, copy ELF_LINK_NON_GOT_REF from weakdef. diff --git a/bfd/elf32-s390.c b/bfd/elf32-s390.c index c411e31..9475f60 100644 --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -1644,9 +1644,9 @@ elf_s390_adjust_dynamic_symbol (info, h) will be called from elflink.h. If elflink.h doesn't call our finish_dynamic_symbol routine, we'll need to do something about 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) \ - && ((INFO)->shared \ + && ((SHARED) \ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \ && ((H)->dynindx != -1 \ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)) @@ -1691,7 +1691,7 @@ allocate_dynrelocs (h, inf) } if (info->shared - || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) + || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h)) { asection *s = htab->splt; @@ -2339,7 +2339,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, off = h->got.offset; 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->symbolic || h->dynindx == -1 diff --git a/bfd/elf64-s390.c b/bfd/elf64-s390.c index b8c0b6a..98555f2 100644 --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -1616,9 +1616,9 @@ elf_s390_adjust_dynamic_symbol (info, h) will be called from elflink.h. If elflink.h doesn't call our finish_dynamic_symbol routine, we'll need to do something about 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) \ - && ((INFO)->shared \ + && ((SHARED) \ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) == 0) \ && ((H)->dynindx != -1 \ || ((H)->elf_link_hash_flags & ELF_LINK_FORCED_LOCAL) != 0)) @@ -1663,7 +1663,7 @@ allocate_dynrelocs (h, inf) } if (info->shared - || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, info, h)) + || WILL_CALL_FINISH_DYNAMIC_SYMBOL (1, 0, h)) { asection *s = htab->splt; @@ -2312,7 +2312,7 @@ elf_s390_relocate_section (output_bfd, info, input_bfd, input_section, off = h->got.offset; 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->symbolic || h->dynindx == -1 |