forked from Imagelibrary/binutils-gdb
binutils, ld: work with --disable-libctf
This unfortunately means conditionalizing out all the libctf code, but
the result is not too unbearably ugly, if a bit repetitive. I have
stubbed out code in the !ENABLE_LIBCTF path to avoid extra redundant
ifdefs where it seems that might be helpful. (The stubs are not too
disruptive, but I've tried to keep them on one line where possible to
avoid filling up the screen with stubs that nobody would care about.
If this is too much of a coding style violation I can change it.)
Changes since v2: use GCC_ENABLE rather than repeating all the
AC_ARG_ENABLE stuff over and over again.
ld/
* configure.ac [--enable-libctf]: New, default yes.
Set ENABLE_LIBCTF accordingly.
* Makefile.am [!ENABLE_LIBCTF]: Empty LIBCTF.
* configure: Regenerate.
* config.in: Regenerate.
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* ldlang.c (ctf_output): Conditionalize on ENABLE_LIBCTF.
(ldlang_open_ctf): Likewise.
(lang_merge_ctf): Likewise.
(ldlang_ctf_apply_strsym): Likewise.
(lang_write_ctf): Likewise.
(ldlang_write_ctf_late): Likewise.
(ldlang_open_ctf) [!ENABLE_LIBCTF]: Warn about the presence of CTF
sections.
(lang_merge_ctf) [!ENABLE_LIBCTF]: New stub.
(ldlang_ctf_apply_strsym) [!ENABLE_LIBCTF]: Likewise.
(lang_write_ctf) [!ENABLE_LIBCTF]: Likewise.
(ldlang_write_ctf_late) [!ENABLE_LIBCTF]: Likewise.
* ldelfgen.c (ldelf_emit_ctf_early): Conditionalize on
ENABLE_LIBCTF.
(struct ctf_strsym_iter_cb_arg): Likewise.
(ldelf_ctf_strtab_iter_cb): Likewise.
(ldelf_ctf_symbols_iter_cb): Likewise.
(ldelf_examine_strtab_for_ctf): Likewise.
(ldelf_emit_ctf_early) [!ENABLE_LIBCTF]: New stub.
(ldelf_examine_strtab_for_ctf) [!ENABLE_LIBCTF]: New stub.
binutils/
* configure.ac [--enable-libctf]: New, default yes.
Set ENABLE_LIBCTF accordingly.
* Makefile.am [!ENABLE_LIBCTF]: Empty LIBCTF and LIBCTF_NOBFD.
* configure: Regenerate.
* config.in: Regenerate.
* Makefile.in: Regenerate.
* aclocal.m4: Regenerate.
* objdump.c (usage): Conditionalize portions on ENABLE_LIBCTF.
(option_values): Likewise.
(long_options): Likewise.
(main): Likewise.
(dump_ctf_indent_lines): Conditionalize out when !ENABLE_LIBCTF.
(make_ctfsect): Likewise.
(dump_ctf_archive_member): Likewise.
(dump_ctf) [ENABLE_LIBCTF]: Likewise.
(dump_ctf) [!ENABLE_LIBCTF]: New empty stub.
* readelf.c (options): Conditionalize portions on ENABLE_LIBCTF.
(usage): Likewise.
(process_section_contents): Likewise.
(shdr_to_ctf_sect): Conditionalize out when !ENABLE_LIBCTF.
(dump_ctf_indent_lines): Likewise.
(dump_section_as_ctf) [ENABLE_LIBCTF]: Likewise.
This commit is contained in:
@@ -235,7 +235,13 @@ usage (FILE *stream, int status)
|
||||
=gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n\
|
||||
=addr,=cu_index,=links,=follow-links]\n\
|
||||
Display DWARF info in the file\n\
|
||||
"));
|
||||
#ifdef ENABLE_LIBCTF
|
||||
fprintf (stream, _("\
|
||||
--ctf=SECTION Display CTF info from SECTION\n\
|
||||
"));
|
||||
#endif
|
||||
fprintf (stream, _("\
|
||||
-t, --syms Display the contents of the symbol table(s)\n\
|
||||
-T, --dynamic-syms Display the contents of the dynamic symbol table\n\
|
||||
-r, --reloc Display the relocation entries in the file\n\
|
||||
@@ -284,9 +290,12 @@ usage (FILE *stream, int status)
|
||||
--dwarf-depth=N Do not display DIEs at depth N or greater\n\
|
||||
--dwarf-start=N Display DIEs starting with N, at the same depth\n\
|
||||
or deeper\n\
|
||||
--dwarf-check Make additional dwarf internal consistency checks.\
|
||||
\n\
|
||||
--ctf-parent=SECTION Use SECTION as the CTF parent\n\
|
||||
--dwarf-check Make additional dwarf internal consistency checks.\n"));
|
||||
#ifdef ENABLE_LIBCTF
|
||||
fprintf (stream, _("\
|
||||
--ctf-parent=SECTION Use SECTION as the CTF parent\n"));
|
||||
#endif
|
||||
fprintf (stream, _("\
|
||||
--visualize-jumps Visualize jumps by drawing ASCII art lines\n\
|
||||
--visualize-jumps=color Use colors in the ASCII art\n\
|
||||
--visualize-jumps=extended-color Use extended 8-bit color codes\n\
|
||||
@@ -328,8 +337,10 @@ enum option_values
|
||||
OPTION_NO_RECURSE_LIMIT,
|
||||
OPTION_INLINES,
|
||||
OPTION_SOURCE_COMMENT,
|
||||
#ifdef ENABLE_LIBCTF
|
||||
OPTION_CTF,
|
||||
OPTION_CTF_PARENT,
|
||||
#endif
|
||||
OPTION_VISUALIZE_JUMPS
|
||||
};
|
||||
|
||||
@@ -375,8 +386,10 @@ static struct option long_options[]=
|
||||
{"special-syms", no_argument, &dump_special_syms, 1},
|
||||
{"include", required_argument, NULL, 'I'},
|
||||
{"dwarf", optional_argument, NULL, OPTION_DWARF},
|
||||
#ifdef ENABLE_LIBCTF
|
||||
{"ctf", required_argument, NULL, OPTION_CTF},
|
||||
{"ctf-parent", required_argument, NULL, OPTION_CTF_PARENT},
|
||||
#endif
|
||||
{"stabs", no_argument, NULL, 'G'},
|
||||
{"start-address", required_argument, NULL, OPTION_START_ADDRESS},
|
||||
{"stop-address", required_argument, NULL, OPTION_STOP_ADDRESS},
|
||||
@@ -4026,6 +4039,7 @@ dump_bfd_header (bfd *abfd)
|
||||
}
|
||||
|
||||
|
||||
#ifdef ENABLE_LIBCTF
|
||||
/* Formatting callback function passed to ctf_dump. Returns either the pointer
|
||||
it is passed, or a pointer to newly-allocated storage, in which case
|
||||
dump_ctf() will free it when it no longer needs it. */
|
||||
@@ -4167,6 +4181,11 @@ dump_ctf (bfd *abfd, const char *sect_name, const char *parent_name)
|
||||
free (parentdata);
|
||||
free (ctfdata);
|
||||
}
|
||||
#else
|
||||
static void
|
||||
dump_ctf (bfd *abfd ATTRIBUTE_UNUSED, const char *sect_name ATTRIBUTE_UNUSED,
|
||||
const char *parent_name ATTRIBUTE_UNUSED) {}
|
||||
#endif
|
||||
|
||||
|
||||
static void
|
||||
@@ -5348,6 +5367,7 @@ main (int argc, char **argv)
|
||||
case OPTION_DWARF_CHECK:
|
||||
dwarf_check = TRUE;
|
||||
break;
|
||||
#ifdef ENABLE_LIBCTF
|
||||
case OPTION_CTF:
|
||||
dump_ctf_section_info = TRUE;
|
||||
dump_ctf_section_name = xstrdup (optarg);
|
||||
@@ -5356,6 +5376,7 @@ main (int argc, char **argv)
|
||||
case OPTION_CTF_PARENT:
|
||||
dump_ctf_parent_name = xstrdup (optarg);
|
||||
break;
|
||||
#endif
|
||||
case 'G':
|
||||
dump_stab_section_info = TRUE;
|
||||
seenflag = TRUE;
|
||||
|
||||
Reference in New Issue
Block a user