+2022-09-02 Aaron Merey <amerey@redhat.com>
+
+ * aout-target.h (MY_find_nearest_line_with_alt): New macro.
+ * bfd-in2.h: Regenerate.
+ * bfd.c (bfd_find_nearest_line_with_alt): New macro.
+ * binary.c (binary_find_nearest_line_with_alt): New macro.
+ * coff-rs6000.c (_bfd_xcoff_find_nearest_line_with_alt): New macro.
+ (rs6000_xcoff64_vec): Add coff_find_nearest_line_with_alt.
+ * dwarf2.c (_bfd_dwarf2_find_nearest_line): Calls
+ _bfd_dwarf2_find_nearest_line_with_alt.
+ (_bfd_dwarf2_find_nearest_line_with_alt): New function. Implements the
+ former _bfd_dwarf2_find_nearest_line. Adds parameter alt_filename.
+ Attempt to open alt_filename and use it as the .dwz file if not NULL.
+ * elf-bfd.h (_bfd_elf_find_nearest_line_with_alt): New declaration.
+ * elf.c (_bfd_elf_find_nearest_line): Calls
+ _bfd_elf_find_nearest_line_with_alt.
+ (_bfd_elf_find_nearest_line_with_alt): New function. Implements the
+ former _bfd_elf_find_nearest_line. Adds parameter alt_filename.
+ * elf32-mips.c (bfd_elf32_find_nearest_line_with_alt): New macro.
+ * elf64-mips.c (bfd_elf64_find_nearest_line_with_alt): New macro.
+ * elfn32-mips.c (bfd_elf32_find_nearest_line_with_alt): New macro.
+ * elfxx-mips.h (_bfd_mips_elf_find_nearest_line_with_alt): New macro.
+ * elfxx-target.h (bfd_elfNN_find_nearest_line_with_alt): New macro.
+ * i386mdos.c (msdos_find_nearest_line_with_alt): New macro.
+ * ihex.c (ihex_find_nearest_line_with_alt): New macro.
+ * libbfd-in.h (_bfd_nosymbols_find_nearest_line_with_alt): New
+ declaration.
+ (_bfd_dwarf2_find_nearest_line_with_alt): New declaration.
+ * libbfd.h: Regenerate.
+ * libcoff-in.h (coff_find_nearest_line_with_alt): New macro.
+ * libcoff.h: Regenerate.
+ * libecoff.h (_bfd_ecoff_find_nearest_line_with_alt): New macro.
+ * mach-o.h (bfd_mach_o_find_nearest_line_with_alt): New macro.
+ * mmo.c (mmo_find_nearest_line_with_alt): New macro.
+ * pef.c (bfd_pef_find_nearest_line_with_alt): New macro.
+ * plugin.c (bfd_plugin_find_nearest_line_with_alt): New macro.
+ * ppcboot.c (ppcboot_find_nearest_line_with_alt): New macro.
+ * som.h (som_find_nearest_line_with_alt): New macro.
+ * srec.c (srec_find_nearest_line_with_alt): New macro.
+ * syms.c (_bfd_nosymbols_find_nearest_line_with_alt): New function.
+ * targets.c (BFD_JUMP_TABLE_SYMBOLS): Add symbol for
+ NAME##_find_nearest_line_with_alt.
+ (_bfd_find_nearest_line_with_alt): Add declaration.
+ * tekhex.c (tekhex_find_nearest_line_with_alt): New macro.
+ * verilog.c (verilog_find_nearest_line_with_alt): New macro.
+ * vms-alpha.c (_bfd_vms_find_nearest_line_with_alt): New macro.
+ * wasm-module.c (wasm_find_nearest_line_with_alt): New macro.
+ * xsym.c (bfd_sym_find_nearest_line_with_alt): New macro.
+
2022-09-02 Frederic Cambus <fred@statdns.com>
* config.bfd (arm-*-openbsd*): Restore target.
#ifndef MY_find_nearest_line
#define MY_find_nearest_line NAME (aout, find_nearest_line)
#endif
+#ifndef MY_find_nearest_line_with_alt
+#define MY_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
+#endif
#ifndef MY_find_line
#define MY_find_line _bfd_nosymbols_find_line
#endif
BFD_SEND (abfd, _bfd_find_nearest_line, \
(abfd, syms, sec, off, file, func, line, NULL))
+#define bfd_find_nearest_line_with_alt(abfd, alt_filename, sec, syms, off, \
+ file, func, line, disc) \
+ BFD_SEND (abfd, _bfd_find_nearest_line_with_alt, \
+ (abfd, alt_filename, syms, sec, off, file, func, line, disc))
+
#define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
line, disc) \
BFD_SEND (abfd, _bfd_find_nearest_line, \
NAME##_bfd_is_target_special_symbol, \
NAME##_get_lineno, \
NAME##_find_nearest_line, \
+ NAME##_find_nearest_line_with_alt, \
NAME##_find_line, \
NAME##_find_inliner_info, \
NAME##_bfd_make_debug_symbol, \
struct bfd_section *, bfd_vma,
const char **, const char **,
unsigned int *, unsigned int *);
+ bool (*_bfd_find_nearest_line_with_alt) (bfd *, const char *,
+ struct bfd_symbol **,
+ struct bfd_section *, bfd_vma,
+ const char **, const char **,
+ unsigned int *, unsigned int *);
bool (*_bfd_find_line) (bfd *, struct bfd_symbol **,
struct bfd_symbol *, const char **,
unsigned int *);
. BFD_SEND (abfd, _bfd_find_nearest_line, \
. (abfd, syms, sec, off, file, func, line, NULL))
.
+.#define bfd_find_nearest_line_with_alt(abfd, alt_filename, sec, syms, off, \
+. file, func, line, disc) \
+. BFD_SEND (abfd, _bfd_find_nearest_line_with_alt, \
+. (abfd, alt_filename, syms, sec, off, file, func, line, disc))
+.
.#define bfd_find_nearest_line_discriminator(abfd, sec, syms, off, file, func, \
. line, disc) \
. BFD_SEND (abfd, _bfd_find_nearest_line, \
#define binary_bfd_is_local_label_name bfd_generic_is_local_label_name
#define binary_get_lineno _bfd_nosymbols_get_lineno
#define binary_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define binary_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define binary_find_line _bfd_nosymbols_find_line
#define binary_find_inliner_info _bfd_nosymbols_find_inliner_info
#define binary_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
coff_bfd_is_target_special_symbol
#define _bfd_xcoff_get_lineno coff_get_lineno
#define _bfd_xcoff_find_nearest_line coff_find_nearest_line
+#define _bfd_xcoff_find_nearest_line_with_alt \
+coff_find_nearest_line_with_alt
#define _bfd_xcoff_find_line coff_find_line
#define _bfd_xcoff_find_inliner_info coff_find_inliner_info
#define _bfd_xcoff_bfd_make_debug_symbol coff_bfd_make_debug_symbol
coff_bfd_is_target_special_symbol,
coff_get_lineno,
coff_find_nearest_line,
+ coff_find_nearest_line_with_alt,
coff_find_line,
coff_find_inliner_info,
coff_bfd_make_debug_symbol,
coff_bfd_is_target_special_symbol,
coff_get_lineno,
coff_find_nearest_line,
+ coff_find_nearest_line_with_alt,
coff_find_line,
coff_find_inliner_info,
coff_bfd_make_debug_symbol,
return result;
}
-/* Find the source code location of SYMBOL. If SYMBOL is NULL
- then find the nearest source code location corresponding to
- the address SECTION + OFFSET.
- Returns 1 if the line is found without error and fills in
- FILENAME_PTR and LINENUMBER_PTR. In the case where SYMBOL was
- NULL the FUNCTIONNAME_PTR is also filled in.
- Returns 2 if partial information from _bfd_elf_find_function is
- returned (function and maybe file) by looking at symbols. DWARF2
- info is present but not regarding the requested code location.
- Returns 0 otherwise.
- SYMBOLS contains the symbol table for ABFD.
- DEBUG_SECTIONS contains the name of the dwarf debug sections. */
+/* See _bfd_dwarf2_find_nearest_line_with_alt. */
int
_bfd_dwarf2_find_nearest_line (bfd *abfd,
unsigned int *discriminator_ptr,
const struct dwarf_debug_section *debug_sections,
void **pinfo)
+{
+ return _bfd_dwarf2_find_nearest_line_with_alt
+ (abfd, NULL, symbols, symbol, section, offset, filename_ptr,
+ functionname_ptr, linenumber_ptr, discriminator_ptr, debug_sections,
+ pinfo);
+}
+
+/* Find the source code location of SYMBOL. If SYMBOL is NULL
+ then find the nearest source code location corresponding to
+ the address SECTION + OFFSET.
+ Returns 1 if the line is found without error and fills in
+ FILENAME_PTR and LINENUMBER_PTR. In the case where SYMBOL was
+ NULL the FUNCTIONNAME_PTR is also filled in.
+ Returns 2 if partial information from _bfd_elf_find_function is
+ returned (function and maybe file) by looking at symbols. DWARF2
+ info is present but not regarding the requested code location.
+ Returns 0 otherwise.
+ SYMBOLS contains the symbol table for ABFD.
+ DEBUG_SECTIONS contains the name of the dwarf debug sections.
+ If ALT_FILENAME is given, attempt to open the file and use it
+ as the .gnu_debugaltlink file. Otherwise this file will be
+ searched for when needed. */
+
+int
+_bfd_dwarf2_find_nearest_line_with_alt
+ (bfd *abfd,
+ const char *alt_filename,
+ asymbol **symbols,
+ asymbol *symbol,
+ asection *section,
+ bfd_vma offset,
+ const char **filename_ptr,
+ const char **functionname_ptr,
+ unsigned int *linenumber_ptr,
+ unsigned int *discriminator_ptr,
+ const struct dwarf_debug_section *debug_sections,
+ void **pinfo)
{
/* Read each compilation unit from the section .debug_info, and check
to see if it contains the address we are searching for. If yes,
stash = (struct dwarf2_debug *) *pinfo;
+ if (stash->alt.bfd_ptr == NULL && alt_filename != NULL)
+ {
+ bfd *alt_bfd = bfd_openr (alt_filename, NULL);
+
+ if (alt_bfd == NULL)
+ /* bfd_openr will have set the bfd_error. */
+ return false;
+ if (!bfd_check_format (alt_bfd, bfd_object))
+ {
+ bfd_set_error (bfd_error_wrong_format);
+ bfd_close (alt_bfd);
+ return false;
+ }
+
+ stash->alt.bfd_ptr = alt_bfd;
+ }
+
do_line = symbol != NULL;
if (do_line)
{
extern bool _bfd_elf_find_nearest_line
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *);
+extern bool _bfd_elf_find_nearest_line_with_alt
+ (bfd *, const char *, asymbol **, asection *, bfd_vma,
+ const char **, const char **, unsigned int *, unsigned int *);
extern bool _bfd_elf_find_line
(bfd *, asymbol **, asymbol *, const char **, unsigned int *);
extern bool _bfd_elf_find_inliner_info
const char **functionname_ptr,
unsigned int *line_ptr,
unsigned int *discriminator_ptr)
+{
+ return _bfd_elf_find_nearest_line_with_alt (abfd, NULL, symbols, section,
+ offset, filename_ptr,
+ functionname_ptr, line_ptr,
+ discriminator_ptr);
+}
+
+/* Find the nearest line to a particular section and offset,
+ for error reporting. ALT_BFD representing a .gnu_debugaltlink file
+ can be optionally specified. */
+
+bool
+_bfd_elf_find_nearest_line_with_alt (bfd *abfd,
+ const char *alt_filename,
+ asymbol **symbols,
+ asection *section,
+ bfd_vma offset,
+ const char **filename_ptr,
+ const char **functionname_ptr,
+ unsigned int *line_ptr,
+ unsigned int *discriminator_ptr)
{
bool found;
- if (_bfd_dwarf2_find_nearest_line (abfd, symbols, NULL, section, offset,
- filename_ptr, functionname_ptr,
- line_ptr, discriminator_ptr,
- dwarf_debug_sections,
- &elf_tdata (abfd)->dwarf2_find_line_info))
+ if (_bfd_dwarf2_find_nearest_line_with_alt (abfd, alt_filename, symbols, NULL,
+ section, offset, filename_ptr,
+ functionname_ptr, line_ptr,
+ discriminator_ptr,
+ dwarf_debug_sections,
+ &elf_tdata (abfd)->dwarf2_find_line_info))
return true;
if (_bfd_dwarf1_find_nearest_line (abfd, symbols, section, offset,
_bfd_mips_elf_is_target_special_symbol
#define bfd_elf32_get_synthetic_symtab _bfd_mips_elf_get_synthetic_symtab
#define bfd_elf32_find_nearest_line _bfd_mips_elf_find_nearest_line
+#define bfd_elf32_find_nearest_line_with_alt \
+ _bfd_mips_elf_find_nearest_line_with_alt
#define bfd_elf32_find_inliner_info _bfd_mips_elf_find_inliner_info
#define bfd_elf32_new_section_hook _bfd_mips_elf_new_section_hook
#define bfd_elf32_set_section_contents _bfd_mips_elf_set_section_contents
#define bfd_elf64_bfd_is_target_special_symbol \
_bfd_mips_elf_is_target_special_symbol
#define bfd_elf64_find_nearest_line _bfd_mips_elf_find_nearest_line
+#define bfd_elf64_find_nearest_line_with_alt \
+ _bfd_mips_elf_find_nearest_line_with_alt
#define bfd_elf64_find_inliner_info _bfd_mips_elf_find_inliner_info
#define bfd_elf64_new_section_hook _bfd_mips_elf_new_section_hook
#define bfd_elf64_set_section_contents _bfd_mips_elf_set_section_contents
#define bfd_elf32_bfd_is_target_special_symbol \
_bfd_mips_elf_is_target_special_symbol
#define bfd_elf32_find_nearest_line _bfd_mips_elf_find_nearest_line
+#define bfd_elf32_find_nearest_line_with_alt \
+ _bfd_mips_elf_find_nearest_line_with_alt
#define bfd_elf32_find_inliner_info _bfd_mips_elf_find_inliner_info
#define bfd_elf32_new_section_hook _bfd_mips_elf_new_section_hook
#define bfd_elf32_set_section_contents _bfd_mips_elf_set_section_contents
extern bool _bfd_mips_elf_find_nearest_line
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *);
+#define _bfd_mips_elf_find_nearest_line_with_alt \
+ _bfd_nosymbols_find_nearest_line_with_alt
extern bool _bfd_mips_elf_find_inliner_info
(bfd *, const char **, const char **, unsigned int *);
extern bool _bfd_mips_elf_set_section_contents
#ifndef bfd_elfNN_find_nearest_line
#define bfd_elfNN_find_nearest_line _bfd_elf_find_nearest_line
#endif
+#ifndef bfd_elfNN_find_nearest_line_with_alt
+#define bfd_elfNN_find_nearest_line_with_alt \
+ _bfd_elf_find_nearest_line_with_alt
+#endif
#ifndef bfd_elfNN_find_line
#define bfd_elfNN_find_line _bfd_elf_find_line
#endif
#define msdos_get_symbol_version_string \
_bfd_nosymbols_get_symbol_version_string
#define msdos_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define msdos_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define msdos_find_line _bfd_nosymbols_find_line
#define msdos_find_inliner_info _bfd_nosymbols_find_inliner_info
#define msdos_get_lineno _bfd_nosymbols_get_lineno
#define ihex_bfd_is_local_label_name _bfd_nosymbols_bfd_is_local_label_name
#define ihex_get_lineno _bfd_nosymbols_get_lineno
#define ihex_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define ihex_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define ihex_find_line _bfd_nosymbols_find_line
#define ihex_find_inliner_info _bfd_nosymbols_find_inliner_info
#define ihex_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *)
ATTRIBUTE_HIDDEN;
+extern bool _bfd_nosymbols_find_nearest_line_with_alt
+ (bfd *, const char *, asymbol **, asection *, bfd_vma,
+ const char **, const char **, unsigned int *, unsigned int *)
+ ATTRIBUTE_HIDDEN;
extern bool _bfd_nosymbols_find_line
(bfd *, asymbol **, asymbol *, const char **, unsigned int *)
ATTRIBUTE_HIDDEN;
const char **, const char **, unsigned int *, unsigned int *,
const struct dwarf_debug_section *, void **) ATTRIBUTE_HIDDEN;
+/* Find the nearest line using DWARF 2 debugging information, with
+ the option of specifying a .gnu_debugaltlink file. */
+extern int _bfd_dwarf2_find_nearest_line_with_alt
+ (bfd *, const char *, asymbol **, asymbol *, asection *, bfd_vma,
+ const char **, const char **, unsigned int *, unsigned int *,
+ const struct dwarf_debug_section *, void **) ATTRIBUTE_HIDDEN;
+
/* Find the bias between DWARF addresses and real addresses. */
extern bfd_signed_vma _bfd_dwarf2_find_symbol_bias
(asymbol **, void **) ATTRIBUTE_HIDDEN;
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *)
ATTRIBUTE_HIDDEN;
+extern bool _bfd_nosymbols_find_nearest_line_with_alt
+ (bfd *, const char *, asymbol **, asection *, bfd_vma,
+ const char **, const char **, unsigned int *, unsigned int *)
+ ATTRIBUTE_HIDDEN;
extern bool _bfd_nosymbols_find_line
(bfd *, asymbol **, asymbol *, const char **, unsigned int *)
ATTRIBUTE_HIDDEN;
const char **, const char **, unsigned int *, unsigned int *,
const struct dwarf_debug_section *, void **) ATTRIBUTE_HIDDEN;
+/* Find the nearest line using DWARF 2 debugging information, with
+ the option of specifying a .gnu_debugaltlink file. */
+extern int _bfd_dwarf2_find_nearest_line_with_alt
+ (bfd *, const char *, asymbol **, asymbol *, asection *, bfd_vma,
+ const char **, const char **, unsigned int *, unsigned int *,
+ const struct dwarf_debug_section *, void **) ATTRIBUTE_HIDDEN;
+
/* Find the bias between DWARF addresses and real addresses. */
extern bfd_signed_vma _bfd_dwarf2_find_symbol_bias
(asymbol **, void **) ATTRIBUTE_HIDDEN;
extern bool coff_find_nearest_line
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *);
+#define coff_find_nearest_line_with_alt \
+ _bfd_nosymbols_find_nearest_line_with_alt
#define coff_find_line _bfd_nosymbols_find_line
struct dwarf_debug_section;
extern bool coff_find_nearest_line_with_names
extern bool coff_find_nearest_line
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *);
+#define coff_find_nearest_line_with_alt \
+ _bfd_nosymbols_find_nearest_line_with_alt
#define coff_find_line _bfd_nosymbols_find_line
struct dwarf_debug_section;
extern bool coff_find_nearest_line_with_names
extern bool _bfd_ecoff_find_nearest_line
(bfd *, asymbol **, asection *, bfd_vma,
const char **, const char **, unsigned int *, unsigned int *);
+#define _bfd_ecoff_find_nearest_line_with_alt \
+ _bfd_nosymbols_find_nearest_line_with_alt
#define _bfd_ecoff_find_line _bfd_nosymbols_find_line
#define _bfd_ecoff_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define _bfd_ecoff_read_minisymbols _bfd_generic_read_minisymbols
asection *, bfd_vma,
const char **, const char **,
unsigned int *, unsigned int *);
+#define bfd_mach_o_find_nearest_line_with_alt \
+ _bfd_nosymbols_find_nearest_line_with_alt
#define bfd_mach_o_find_line _bfd_nosymbols_find_line
bool bfd_mach_o_close_and_cleanup (bfd *);
bool bfd_mach_o_free_cached_info (bfd *);
/* FIXME: We can do better on this one, if we have a dwarf2 .debug_line
section or if MMO line numbers are implemented. */
#define mmo_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define mmo_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define mmo_find_line _bfd_nosymbols_find_line
#define mmo_find_inliner_info _bfd_nosymbols_find_inliner_info
#define mmo_make_empty_symbol _bfd_generic_make_empty_symbol
#define bfd_pef_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false
#define bfd_pef_get_lineno _bfd_nosymbols_get_lineno
#define bfd_pef_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define bfd_pef_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define bfd_pef_find_line _bfd_nosymbols_find_line
#define bfd_pef_find_inliner_info _bfd_nosymbols_find_inliner_info
#define bfd_pef_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string
#define bfd_plugin_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false
#define bfd_plugin_get_lineno _bfd_nosymbols_get_lineno
#define bfd_plugin_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define bfd_plugin_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define bfd_plugin_find_line _bfd_nosymbols_find_line
#define bfd_plugin_find_inliner_info _bfd_nosymbols_find_inliner_info
#define bfd_plugin_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string
#define ppcboot_bfd_is_local_label_name bfd_generic_is_local_label_name
#define ppcboot_get_lineno _bfd_nosymbols_get_lineno
#define ppcboot_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define ppcboot_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define ppcboot_find_line _bfd_nosymbols_find_line
#define ppcboot_find_inliner_info _bfd_nosymbols_find_inliner_info
#define ppcboot_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define R_HPPA_BEGIN_TRY R_BEGIN_TRY
#define R_HPPA_END_TRY R_END_TRY
+#define som_find_nearest_line_with_alt \
+ _bfd_nosymbols_find_nearest_line_with_alt
+
/* Exported functions, mostly for use by GAS. */
bool bfd_som_set_section_attributes
(asection *, int, int, unsigned int, int);
#define srec_bfd_is_local_label_name bfd_generic_is_local_label_name
#define srec_get_lineno _bfd_nosymbols_get_lineno
#define srec_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define srec_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define srec_find_line _bfd_nosymbols_find_line
#define srec_find_inliner_info _bfd_nosymbols_find_inliner_info
#define srec_make_empty_symbol _bfd_generic_make_empty_symbol
return _bfd_bool_bfd_false_error (abfd);
}
+bool
+_bfd_nosymbols_find_nearest_line_with_alt
+ (bfd *abfd,
+ const char *alt_filename ATTRIBUTE_UNUSED,
+ asymbol **symbols ATTRIBUTE_UNUSED,
+ asection *section ATTRIBUTE_UNUSED,
+ bfd_vma offset ATTRIBUTE_UNUSED,
+ const char **filename_ptr ATTRIBUTE_UNUSED,
+ const char **functionname_ptr ATTRIBUTE_UNUSED,
+ unsigned int *line_ptr ATTRIBUTE_UNUSED,
+ unsigned int *discriminator_ptr ATTRIBUTE_UNUSED)
+{
+ return _bfd_bool_bfd_false_error (abfd);
+}
+
bool
_bfd_nosymbols_find_line (bfd *abfd,
asymbol **symbols ATTRIBUTE_UNUSED,
. NAME##_bfd_is_target_special_symbol, \
. NAME##_get_lineno, \
. NAME##_find_nearest_line, \
+. NAME##_find_nearest_line_with_alt, \
. NAME##_find_line, \
. NAME##_find_inliner_info, \
. NAME##_bfd_make_debug_symbol, \
. struct bfd_section *, bfd_vma,
. const char **, const char **,
. unsigned int *, unsigned int *);
+. bool (*_bfd_find_nearest_line_with_alt) (bfd *, const char *,
+. struct bfd_symbol **,
+. struct bfd_section *, bfd_vma,
+. const char **, const char **,
+. unsigned int *, unsigned int *);
. bool (*_bfd_find_line) (bfd *, struct bfd_symbol **,
. struct bfd_symbol *, const char **,
. unsigned int *);
#define tekhex_bfd_is_local_label_name bfd_generic_is_local_label_name
#define tekhex_get_lineno _bfd_nosymbols_get_lineno
#define tekhex_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define tekhex_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define tekhex_find_line _bfd_nosymbols_find_line
#define tekhex_find_inliner_info _bfd_nosymbols_find_inliner_info
#define tekhex_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string
#define verilog_bfd_is_local_label_name bfd_generic_is_local_label_name
#define verilog_get_lineno _bfd_nosymbols_get_lineno
#define verilog_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define verilog_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define verilog_find_inliner_info _bfd_nosymbols_find_inliner_info
#define verilog_make_empty_symbol _bfd_generic_make_empty_symbol
#define verilog_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define alpha_vms_find_inliner_info _bfd_nosymbols_find_inliner_info
#define alpha_vms_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define alpha_vms_find_nearest_line _bfd_vms_find_nearest_line
+#define alpha_vms_find_nearest_line_with_alt \
+ _bfd_nosymbols_find_nearest_line_with_alt
#define alpha_vms_find_line _bfd_nosymbols_find_line
#define alpha_vms_bfd_is_local_label_name vms_bfd_is_local_label_name
#define wasm_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false
#define wasm_get_lineno _bfd_nosymbols_get_lineno
#define wasm_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define wasm_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define wasm_find_line _bfd_nosymbols_find_line
#define wasm_find_inliner_info _bfd_nosymbols_find_inliner_info
#define wasm_bfd_make_debug_symbol _bfd_nosymbols_bfd_make_debug_symbol
#define bfd_sym_bfd_is_target_special_symbol _bfd_bool_bfd_asymbol_false
#define bfd_sym_get_lineno _bfd_nosymbols_get_lineno
#define bfd_sym_find_nearest_line _bfd_nosymbols_find_nearest_line
+#define bfd_sym_find_nearest_line_with_alt _bfd_nosymbols_find_nearest_line_with_alt
#define bfd_sym_find_line _bfd_nosymbols_find_line
#define bfd_sym_find_inliner_info _bfd_nosymbols_find_inliner_info
#define bfd_sym_get_symbol_version_string _bfd_nosymbols_get_symbol_version_string