diff options
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 10 | ||||
-rw-r--r-- | bfd/elflink.h | 10 | ||||
-rw-r--r-- | bfd/elfxx-ia64.c | 1 | ||||
-rw-r--r-- | bfd/version.h | 2 |
4 files changed, 20 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index cec8e28..5d387c0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -1,3 +1,13 @@ +2003-03-28 H.J. Lu <hjl@gnu.org> + + * elflink.h (elf_link_add_object_symbols): Correctly combine + visibilities. + +2003-03-27 Jakub Jelinek <jakub@redhat.com> + + * elfxx-ia64.c (elfNN_ia64_relax_section): Reset self_dtpmod_offset + to -1 before recomputing got offsets. + 2003-03-26 Andreas Schwab <schwab@suse.de> * elf32-m68k.c (WILL_CALL_FINISH_DYNAMIC_SYMBOL): Define. diff --git a/bfd/elflink.h b/bfd/elflink.h index c39120d..3af34ee 100644 --- a/bfd/elflink.h +++ b/bfd/elflink.h @@ -1940,7 +1940,7 @@ elf_link_add_object_symbols (abfd, info) might be needed here. */ if (isym->st_other != 0) { - unsigned char hvis, symvis, other; + unsigned char hvis, symvis, other, nvis; /* Take the balance of OTHER from the definition. */ other = (definition ? isym->st_other : h->other); @@ -1949,8 +1949,14 @@ elf_link_add_object_symbols (abfd, info) /* Combine visibilities, using the most constraining one. */ hvis = ELF_ST_VISIBILITY (h->other); symvis = ELF_ST_VISIBILITY (isym->st_other); + if (! hvis) + nvis = symvis; + else if (! symvis) + nvis = hvis; + else + nvis = hvis < symvis ? hvis : symvis; - h->other = other | (hvis > symvis ? hvis : symvis); + h->other = other | nvis; } /* Set a flag in the hash table entry indicating the type of diff --git a/bfd/elfxx-ia64.c b/bfd/elfxx-ia64.c index d46d78c..c423057 100644 --- a/bfd/elfxx-ia64.c +++ b/bfd/elfxx-ia64.c @@ -1032,6 +1032,7 @@ elfNN_ia64_relax_section (abfd, sec, link_info, again) struct elfNN_ia64_allocate_data data; data.info = link_info; data.ofs = 0; + ia64_info->self_dtpmod_offset = (bfd_vma) -1; elfNN_ia64_dyn_sym_traverse (ia64_info, allocate_global_data_got, &data); elfNN_ia64_dyn_sym_traverse (ia64_info, allocate_global_fptr_got, &data); diff --git a/bfd/version.h b/bfd/version.h index 6d6a9a8..0757b92 100644 --- a/bfd/version.h +++ b/bfd/version.h @@ -1,3 +1,3 @@ -#define BFD_VERSION_DATE 20030326 +#define BFD_VERSION_DATE 20030330 #define BFD_VERSION @bfd_version@ #define BFD_VERSION_STRING @bfd_version_string@ |