Broken .hidden support in current binutils on ia32
H . J . Lu
hjl@lucon.org
Mon Jun 5 15:11:00 GMT 2000
On Mon, Jun 05, 2000 at 11:49:10PM +0200, Martin v. Loewis wrote:
> > At the moment, I'm talking about the 2.10 release candidate. But I'll check
> > the latest binutils release and see if it works.
>
> Oops, the release candidate. I believe the recent changes to the ELF
> visibility support have not been propagated to the release branch.
>
> Since the ELF visibility support in binutils 2.10 will be broken
> without these changes, and since GCC 3 will rely on a working support
> for .hidden (or none at all), I think it is really important that
> these patches get merged into the release branch.
>
> HJ, would you agree with this judgement? If so, (and if there is a
> chance to get this into 2.10.0), would you be able to identify the
> relevant patches? I could also try to do this - again, if there is a
> chance that this still gets into 2.10.
There are quite a few changes for the ELF visibility to work right. I
can try to create a patch for 2.10. But I am afraid I don't have the
time to make sure it work correctly for 2.10.
BTW, I am enclosing the ChangLog entries here.
H.J.
---
2000-06-05 H.J. Lu <hjl@gnu.org>
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Don't flag
an error when seeing an undefined symbol with hidden/internal
attribute. It is handled in *_relocate_section ().
2000-05-30 H.J. Lu <hjl@gnu.org>
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Clear the
visibility bits if the symbol is undefined. Correctly handle
weak undefined symbols with hidden and internal attributes.
* elflink.h (elf_link_add_object_symbols): Always turn the
symbol into local if it has the hidden or internal attribute.
2000-05-23 H.J. Lu <hjl@gnu.org>
* elf64-alpha.c (elf64_alpha_relocate_section): Check
h->root.other not h->other.
* elf32-mips.c (mips_elf_calculate_relocation): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Fix a typo.
2000-05-23 H.J. Lu <hjl@gnu.org>
* elf32-i386.c (elf_i386_relocate_section): Don't allow the
undefined symbol with the non-default visibility attributes.
* elf-hppa.h (elf_hppa_relocate_section): Likewise.
* elf32-arm.h (elf32_arm_relocate_section): Likewise.
* elf32-i370.c (i370_elf_relocate_section): Likewise.
* elf32-m68k.c (elf_m68k_relocate_section): Likewise.
* elf32-mcore.c (mcore_elf_relocate_section): Likewise.
* elf32-mips.c (mips_elf_calculate_relocation): Likewise.
* elf32-ppc.c (ppc_elf_relocate_section): Likewise.
* elf32-sparc.c (elf32_sparc_relocate_section): Likewise.
* elf64-alpha.c (elf64_alpha_relocate_section): Likewise.
* elf64-ia64.c (elf64_ia64_relocate_section): Likewise.
* elf64-sparc.c (sparc64_elf_relocate_section): Likewise.
2000-05-22 H.J. Lu <hjl@gnu.org>
* elflink.h (elf_link_output_extsym): Clear the visibility
field for symbols not defined locally.
2000-05-03 Martin v. Löwis <loewis@informatik.hu-berlin.de>
* elflink.h (elf_link_add_object_symbols): Reset dynindx for
hidden and internal symbols.
(elf_fix_symbol_flags): Clear NEEDS_PLT for symbols with
visibility.
* elflink.c (_bfd_elf_link_record_dynamic_symbol): Do not
assign a PLT or GOT entry to symbols with hidden and
internal visibility.
More information about the Gcc-bugs
mailing list