diff options
author | Alan Modra <amodra@gmail.com> | 2007-05-11 06:39:05 +0000 |
---|---|---|
committer | Alan Modra <amodra@gmail.com> | 2007-05-11 06:39:05 +0000 |
commit | 016687f8ba456b033639a2174da7a0fc35428eb8 (patch) | |
tree | a533ef04e5f97a7b5ee279a260d558bdc4b98907 /bfd/elf32-ppc.h | |
parent | ece5ef60797fafabe50aae16758ecb33b033871d (diff) | |
download | binutils-016687f8ba456b033639a2174da7a0fc35428eb8.zip binutils-016687f8ba456b033639a2174da7a0fc35428eb8.tar.gz binutils-016687f8ba456b033639a2174da7a0fc35428eb8.tar.bz2 |
bfd/
* elf32-ppc.h (ppc_elf_select_plt_layout): Update prototype.
(enum ppc_elf_plt_type): Move from..
* elf32-ppc.c: ..here.
(struct ppc_elf_obj_tdata): Add makes_plt_call and has_rel16.
(struct ppc_elf_link_hash_table): Reorder. Add old_bfd. Delete
can_use_new_plt. Make is_vxworks a bitfield.
(ppc_elf_link_hash_table_create): Don't clear is_vxworks (again).
(ppc_elf_check_relocs): Update setting of reloc flags. Set old_bfd.
(ppc_elf_select_plt_layout): Modify parameters. Use bfd reloc
flags to better detect object files needing old bss-style plt.
Allow secure plt to be used without rel16 relocs being detected.
Warn if secure plt request cannot be allowed.
ld/
* emultempl/ppc32elf.em (plt_style): New variable.
(old_plt): Delete.
(ppc_after_open): Adjust ppc_elf_select_plt_layout call.
(PARSE_AND_LIST_PROLOGUE): Define OPTION_NEW_PLT, renumber
OPTION_OLD_PLT, OPTION_OLD_GOT and OPTION_STUBSYMS.
(PARSE_AND_LIST_LONGOPTS, PARSE_AND_LIST_OPTIONS): Add secure-plt.
(PARSE_AND_LIST_ARGS_CASES): Handle OPTION_NEW_PLT.
* ld.texinfo (--secure-plt): Document.
Diffstat (limited to 'bfd/elf32-ppc.h')
-rw-r--r-- | bfd/elf32-ppc.h | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/bfd/elf32-ppc.h b/bfd/elf32-ppc.h index 5f8f63a..f5383a7 100644 --- a/bfd/elf32-ppc.h +++ b/bfd/elf32-ppc.h @@ -1,5 +1,5 @@ /* PowerPC-specific support for 64-bit ELF. - Copyright 2003, 2005 Free Software Foundation, Inc. + Copyright 2003, 2005, 2007 Free Software Foundation, Inc. This file is part of BFD, the Binary File Descriptor library. @@ -17,7 +17,15 @@ You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ -int ppc_elf_select_plt_layout (bfd *, struct bfd_link_info *, int, int); +enum ppc_elf_plt_type { + PLT_UNSET, + PLT_OLD, + PLT_NEW, + PLT_VXWORKS +}; + +int ppc_elf_select_plt_layout (bfd *, struct bfd_link_info *, + enum ppc_elf_plt_type, int); asection *ppc_elf_tls_setup (bfd *, struct bfd_link_info *); bfd_boolean ppc_elf_tls_optimize (bfd *, struct bfd_link_info *); void ppc_elf_set_sdata_syms (bfd *, struct bfd_link_info *); |