Automatic date update in version.in
[deliverable/binutils-gdb.git] / ld / ldemul.h
index ca165ac957046df6acec4b31ae232c18d921bba4..1e0bdc07786daa4d8d97270455415637852cc267 100644 (file)
@@ -1,5 +1,5 @@
 /* ld-emul.h - Linker emulation header file
-   Copyright (C) 1991-2020 Free Software Foundation, Inc.
+   Copyright (C) 1991-2021 Free Software Foundation, Inc.
 
    This file is part of the GNU Binutils.
 
@@ -62,17 +62,17 @@ extern void ldemul_create_output_section_statements
   (void);
 extern lang_output_section_statement_type *ldemul_place_orphan
   (asection *, const char *, int);
-extern bfd_boolean ldemul_parse_args
+extern bool ldemul_parse_args
   (int, char **);
 extern void ldemul_add_options
   (int, char **, int, struct option **, int, struct option **);
-extern bfd_boolean ldemul_handle_option
+extern bool ldemul_handle_option
   (int);
-extern bfd_boolean ldemul_unrecognized_file
+extern bool ldemul_unrecognized_file
   (struct lang_input_statement_struct *);
-extern bfd_boolean ldemul_recognized_file
+extern bool ldemul_recognized_file
   (struct lang_input_statement_struct *);
-extern bfd_boolean ldemul_open_dynamic_archive
+extern bool ldemul_open_dynamic_archive
   (const char *, struct search_dirs *, struct lang_input_statement_struct *);
 extern char *ldemul_default_target
   (int, char**);
@@ -109,10 +109,12 @@ extern void ldemul_extra_map_file_text
 extern int ldemul_emit_ctf_early
   (void);
 /* Called from per-target code to examine the strtab and symtab.  */
-extern void ldemul_examine_strtab_for_ctf
-  (struct ctf_file *, struct elf_sym_strtab *, bfd_size_type,
-   struct elf_strtab_hash *);
-extern bfd_boolean ldemul_print_symbol
+extern void ldemul_acquire_strings_for_ctf
+  (struct ctf_dict *, struct elf_strtab_hash *);
+extern void ldemul_new_dynsym_for_ctf
+  (struct ctf_dict *, int symidx, struct elf_internal_sym *);
+
+extern bool ldemul_print_symbol
   (struct bfd_link_hash_entry *hash_entry, void *ptr);
 
 typedef struct ld_emulation_xfer_struct {
@@ -168,7 +170,7 @@ typedef struct ld_emulation_xfer_struct {
   /* Try to open a dynamic library.  ARCH is an architecture name, and
      is normally the empty string.  ENTRY is the lang_input_statement
      that should be opened.  */
-  bfd_boolean (*open_dynamic_archive)
+  bool (*open_dynamic_archive)
     (const char *arch, struct search_dirs *,
      struct lang_input_statement_struct *entry);
 
@@ -184,7 +186,7 @@ typedef struct ld_emulation_xfer_struct {
 
   /* Parse args which the base linker doesn't understand.
      Return TRUE if the arg needs no further processing.  */
-  bfd_boolean (*parse_args) (int, char **);
+  bool (*parse_args) (int, char **);
 
   /* Hook to add options to parameters passed by the base linker to
      getopt_long and getopt_long_only calls.  */
@@ -193,11 +195,11 @@ typedef struct ld_emulation_xfer_struct {
 
   /* Companion to the above to handle an option.  Returns TRUE if it is
      one of our options.  */
-  bfd_boolean (*handle_option) (int);
+  bool (*handle_option) (int);
 
   /* Run to handle files which are not recognized as object files or
      archives.  Return TRUE if the file was handled.  */
-  bfd_boolean (*unrecognized_file)
+  bool (*unrecognized_file)
     (struct lang_input_statement_struct *);
 
   /* Run to list the command line options which parse_args handles.  */
@@ -205,7 +207,7 @@ typedef struct ld_emulation_xfer_struct {
 
   /* Run to specially handle files which *are* recognized as object
      files or archives.  Return TRUE if the file was handled.  */
-  bfd_boolean (*recognized_file)
+  bool (*recognized_file)
     (struct lang_input_statement_struct *);
 
   /* Called when looking for libraries in a directory specified
@@ -230,18 +232,26 @@ typedef struct ld_emulation_xfer_struct {
   int (*emit_ctf_early)
     (void);
 
-  /* Called to examine the string and symbol table late enough in linking that
-     they are finally laid out.  If emit_ctf_early returns true, this is not
-     called and ldemul_maybe_emit_ctf() emits CTF in 'early' mode: otherwise, it
-     waits until 'late'. (Late mode needs explicit support at per-target link
-     time to get called at all).  If set, called by ld when the examine_strtab
+  /* Called to examine the string table late enough in linking that it is
+     finally laid out.  If emit_ctf_early returns true, this is not called, and
+     ldemul_maybe_emit_ctf emits CTF in 'early' mode: otherwise, it waits
+     until 'late'. (Late mode needs explicit support at per-target link time to
+     get called at all).  If set, called by ld when the examine_strtab
      bfd_link_callback is invoked by per-target code.  */
-  void (*examine_strtab_for_ctf) (struct ctf_file *, struct elf_sym_strtab *,
-                                 bfd_size_type, struct elf_strtab_hash *);
+  void (*acquire_strings_for_ctf) (struct ctf_dict *, struct elf_strtab_hash *);
+
+  /* Called when a new symbol is added to the dynamic symbol table.  If
+     emit_ctf_early returns true, this is not called, and ldemul_maybe_emit_ctf
+     emits CTF in 'early' mode: otherwise, it waits until 'late'. (Late mode
+     needs explicit support at per-target link time to get called at all).  If
+     set, called by ld when the ctf_new_symbol bfd_link_callback is invoked by
+     per-target code.  Called with a NULL symbol when no further symbols will be
+     provided.  */
+  void (*new_dynsym_for_ctf) (struct ctf_dict *, int, struct elf_internal_sym *);
 
   /* Called when printing a symbol to the map file.   AIX uses this
      hook to flag gc'd symbols.  */
-  bfd_boolean (*print_symbol)
+  bool (*print_symbol)
     (struct bfd_link_hash_entry *hash_entry, void *ptr);
 
 } ld_emulation_xfer_type;
This page took 0.024647 seconds and 4 git commands to generate.