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_dict *, struct elf_sym_strtab *, bfd_size_type,
- struct elf_strtab_hash *);
+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 bfd_boolean ldemul_print_symbol
(struct bfd_link_hash_entry *hash_entry, void *ptr);
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_dict *, 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. */