From 91751f1c9062e14b659d7dfdb6779e26018f60a3 Mon Sep 17 00:00:00 2001 From: Nick Clifton Date: Tue, 23 Dec 2008 09:01:51 +0000 Subject: Remove STT_IFUNC support. --- binutils/ChangeLog | 7 +++++++ binutils/doc/binutils.texi | 4 ---- binutils/objdump.c | 2 -- binutils/readelf.c | 41 ++--------------------------------------- 4 files changed, 9 insertions(+), 45 deletions(-) (limited to 'binutils') diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 87f139ce7f..241e6b0f97 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,10 @@ +2008-12-23 Nick Clifton + + * objdump.c (dump_reloc_set): Remove STT_IFUNC support. + * readelf.c (dump_relocations): Likewise. + (get_symbol_type): Likewise. + * doc/binutils.texi: Likewise. + 2008-12-18 Ralf Wildenhues * configure: Regenerate. diff --git a/binutils/doc/binutils.texi b/binutils/doc/binutils.texi index 4c1f02423a..d816e7a196 100644 --- a/binutils/doc/binutils.texi +++ b/binutils/doc/binutils.texi @@ -729,10 +729,6 @@ The symbol is in an initialized data section for small objects. Some object file formats permit more efficient access to small data objects, such as a global int variable as opposed to a large global array. -@item I -The symbol is an indirect reference to another symbol. This is a @sc{gnu} -extension to the a.out object file format which is rarely used. - @item i The symbol is in a section specific to the implementation of DLLs. diff --git a/binutils/objdump.c b/binutils/objdump.c index ac5fa0d4af..8bfb2a5eb5 100644 --- a/binutils/objdump.c +++ b/binutils/objdump.c @@ -2722,8 +2722,6 @@ dump_reloc_set (bfd *abfd, asection *sec, arelent **relpp, long relcount) if (sym_name) { objdump_print_symname (abfd, NULL, *q->sym_ptr_ptr); - if ((*q->sym_ptr_ptr)->flags & BSF_INDIRECT_FUNCTION) - printf ("() "); } else { diff --git a/binutils/readelf.c b/binutils/readelf.c index 81cde343e5..21af7b33db 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -1251,38 +1251,9 @@ dump_relocations (FILE *file, printf (" "); - if (ELF_ST_TYPE (psym->st_info) == STT_IFUNC) - { - const char * name; - unsigned int len; - unsigned int width = is_32bit_elf ? 8 : 14; - - /* Relocations against IFUNC symbols do not use the value of - the symbol as the address to relocate against. Instead - they invoke the function named by the symbol and use its - result as the address for relocation. - - To indicate this to the user, do not display the value of - the symbol in the "Symbols's Value" field. Instead show - its name followed by () as a hint that the symbol is - invoked. */ - - if (strtab == NULL - || psym->st_name == 0 - || psym->st_name >= strtablen) - name = "??"; - else - name = strtab + psym->st_name; - - len = print_symbol (width, name); - printf ("()%-*s", len <= width ? (width + 1) - len : 1, " "); - } - else - { - print_vma (psym->st_value, LONG_HEX); + print_vma (psym->st_value, LONG_HEX); - printf (is_32bit_elf ? " " : " "); - } + printf (is_32bit_elf ? " " : " "); if (psym->st_name == 0) { @@ -7065,14 +7036,6 @@ get_symbol_type (unsigned int type) if (type == STT_HP_STUB) return "HP_STUB"; } - else if (elf_header.e_ident[EI_OSABI] == ELFOSABI_LINUX - || elf_header.e_ident[EI_OSABI] == ELFOSABI_HURD - /* GNU/Linux is still using the default value 0. */ - || elf_header.e_ident[EI_OSABI] == ELFOSABI_NONE) - { - if (type == STT_IFUNC) - return "IFUNC"; - } snprintf (buff, sizeof (buff), _(": %d"), type); } -- cgit v1.2.1