summaryrefslogtreecommitdiff
path: root/binutils
diff options
context:
space:
mode:
authorNick Clifton <nickc@redhat.com>2008-12-23 09:01:51 +0000
committerNick Clifton <nickc@redhat.com>2008-12-23 09:01:51 +0000
commit91751f1c9062e14b659d7dfdb6779e26018f60a3 (patch)
treedd4eb5d8d06529a3c4c4b0c75aebb7715d36801f /binutils
parente6f16d642a4a5a04f9e08e3998cc09e435d18671 (diff)
downloadbinutils-redhat-91751f1c9062e14b659d7dfdb6779e26018f60a3.tar.gz
Remove STT_IFUNC support.
Diffstat (limited to 'binutils')
-rw-r--r--binutils/ChangeLog7
-rw-r--r--binutils/doc/binutils.texi4
-rw-r--r--binutils/objdump.c2
-rw-r--r--binutils/readelf.c41
4 files changed, 9 insertions, 45 deletions
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 <nickc@redhat.com>
+
+ * 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 <Ralf.Wildenhues@gmx.de>
* 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), _("<OS specific>: %d"), type);
}