gdb: add target_ops::supports_displaced_step
[deliverable/binutils-gdb.git] / bfd / elf64-ppc.h
index 9f69e06f60c53932637ffc550207e9fb725ae680..a2ffd4eb72ef56db0aa87d7dd37751dbee2fbf08 100644 (file)
@@ -1,6 +1,5 @@
 /* PowerPC64-specific support for 64-bit ELF.
-   Copyright 2002, 2003, 2004, 2005, 2007, 2008, 2010
-   Free Software Foundation, Inc.
+   Copyright (C) 2002-2020 Free Software Foundation, Inc.
 
    This file is part of BFD, the Binary File Descriptor library.
 
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
-void ppc64_elf_init_stub_bfd
-  (bfd *, struct bfd_link_info *);
+/* Used to pass info between ld and bfd.  */
+struct ppc64_elf_params
+{
+  /* Linker stub bfd.  */
+  bfd *stub_bfd;
+
+  /* Linker call-backs.  */
+  asection * (*add_stub_section) (const char *, asection *);
+  void (*layout_sections_again) (void);
+
+  /* Maximum size of a group of input sections that can be handled by
+     one stub section.  A value of +/-1 indicates the bfd back-end
+     should use a suitable default size.  */
+  bfd_signed_vma group_size;
+
+  /* Whether to use a special call stub for __tls_get_addr.  */
+  int tls_get_addr_opt;
+
+  /* Whether the special call stub should save r4..r12.  */
+  int no_tls_get_addr_regsave;
+
+  /* Whether to allow multiple toc sections.  */
+  int no_multi_toc;
+
+  /* Set if PLT call stubs should load r11.  */
+  int plt_static_chain;
+
+  /* Set if PLT call stubs need to be thread safe on power7+.  */
+  int plt_thread_safe;
+
+  /* Set if individual PLT call stubs should be aligned.  */
+  int plt_stub_align;
+
+  /* Set if PLT call stubs for localentry:0 functions should omit r2 save.  */
+  int plt_localentry0;
+
+  /* Whether to canonicalize .opd so that there are no overlapping
+     .opd entries.  */
+  int non_overlapping_opd;
+
+  /* Whether to emit symbols for stubs.  */
+  int emit_stub_syms;
+
+  /* Whether to generate out-of-line register save/restore for gcc -Os code.  */
+  int save_restore_funcs;
+
+  /* Set when a potential variable is detected in .toc.  */
+  int object_in_toc;
+};
+
+bfd_boolean ppc64_elf_init_stub_bfd
+  (struct bfd_link_info *, struct ppc64_elf_params *);
 bfd_boolean ppc64_elf_edit_opd
-  (struct bfd_link_info *, bfd_boolean);
+  (struct bfd_link_info *);
+bfd_boolean ppc64_elf_inline_plt
+  (struct bfd_link_info *);
 asection *ppc64_elf_tls_setup
-  (struct bfd_link_info *, int, int *);
+  (struct bfd_link_info *);
 bfd_boolean ppc64_elf_tls_optimize
   (struct bfd_link_info *);
 bfd_boolean ppc64_elf_edit_toc
   (struct bfd_link_info *);
-bfd_vma ppc64_elf_toc
-  (bfd *);
+bfd_boolean ppc64_elf_has_small_toc_reloc
+  (asection *);
+bfd_vma ppc64_elf_set_toc
+  (struct bfd_link_info *, bfd *);
 int ppc64_elf_setup_section_lists
-  (struct bfd_link_info *, asection *(*) (const char *, asection *),
-   void (*) (void));
+  (struct bfd_link_info *);
 void ppc64_elf_start_multitoc_partition
   (struct bfd_link_info *);
 bfd_boolean ppc64_elf_next_toc_section
@@ -42,11 +94,11 @@ bfd_boolean ppc64_elf_layout_multitoc
   (struct bfd_link_info *);
 void ppc64_elf_finish_multitoc_partition
   (struct bfd_link_info *);
+bfd_boolean ppc64_elf_check_init_fini
+  (struct bfd_link_info *);
 bfd_boolean ppc64_elf_next_input_section
   (struct bfd_link_info *, asection *);
 bfd_boolean ppc64_elf_size_stubs
-  (struct bfd_link_info *, bfd_signed_vma);
+(struct bfd_link_info *);
 bfd_boolean ppc64_elf_build_stubs
-  (bfd_boolean, struct bfd_link_info *, char **);
-void ppc64_elf_restore_symbols
-  (struct bfd_link_info *info);
+  (struct bfd_link_info *, char **);
This page took 0.023744 seconds and 4 git commands to generate.