bug-binutils
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Bug binutils/17677] _bfd_elf_get_synthetic_symtab runs in O(n^2) comple


From: cvs-commit at gcc dot gnu.org
Subject: [Bug binutils/17677] _bfd_elf_get_synthetic_symtab runs in O(n^2) complexity after commit 5840bf271c87c3fc14739173fdc91c6a14057130
Date: Fri, 05 Dec 2014 01:00:47 +0000

https://sourceware.org/bugzilla/show_bug.cgi?id=17677

--- Comment #4 from cvs-commit at gcc dot gnu.org <cvs-commit at gcc dot 
gnu.org> ---
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "gdb and binutils".

The branch, binutils-2_25-branch has been updated
       via  875896e3e6880ec4c27b4fdfc37ae44881e11ca8 (commit)
      from  f6989d5268fbd213d889e3d81f8972dd429b1bbf (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=875896e3e6880ec4c27b4fdfc37ae44881e11ca8

commit 875896e3e6880ec4c27b4fdfc37ae44881e11ca8
Author: H.J. Lu <address@hidden>
Date:   Thu Dec 4 14:19:41 2014 -0800

    Add _bfd_elf_ifunc_get_synthetic_symtab

    In i386 and x86-64 binaries with ifunc, relocations against .got.plt
    section may not be in the same order as entries in PLT section.  This
    patch adds _bfd_elf_ifunc_get_synthetic_symtab.  It takes a function
    pointer which returns an array of PLT entry symbol values.  It calls
    the function pointer to get the PLT entry symbol value array indexed
    by relocation index, instead of calling plt_sym_val on each relocation
    index.

        PR binutils/17677
        * elf-bfd.h (_bfd_elf_ifunc_get_synthetic_symtab): New prototype.
        * elf-ifunc.c (_bfd_elf_ifunc_get_synthetic_symtab): New
        function.
        * elf32-i386.c (elf_i386_plt_sym_val): Removed.
        (elf_backend_plt_sym_val): Likewise.
        (elf_i386_get_plt_sym_val): New.
        (elf_i386_get_synthetic_symtab): Likewise.
        (bfd_elf32_get_synthetic_symtab): Likewise.
        * elf64-x86-64.c (elf_x86_64_plt_sym_val): Removed.
        (elf_x86_64_plt_sym_val_offset_plt_bnd): Likewise.
        (elf_backend_plt_sym_val): Likewise.
        (elf_x86_64_get_plt_sym_val): New.
        (elf_x86_64_get_synthetic_symtab): Use
        _bfd_elf_ifunc_get_synthetic_symtab.
        (bfd_elf64_get_synthetic_symtab): Don't undefine for NaCl.

-----------------------------------------------------------------------

Summary of changes:
 bfd/ChangeLog      |   19 ++++
 bfd/elf-bfd.h      |    3 +
 bfd/elf-ifunc.c    |  125 ++++++++++++++++++++++++++++
 bfd/elf32-i386.c   |  101 ++++++++++++++++-------
 bfd/elf64-x86-64.c |  235 ++++++++++++++++-----------------------------------
 5 files changed, 292 insertions(+), 191 deletions(-)

-- 
You are receiving this mail because:
You are on the CC list for the bug.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]