Do not build libctf for targets that do not use the ELF file format.
top * configure.ac (noconfigdirs): Add libctf if the target does not use the ELF file format. * configure: Regenerate. binutils* configure.ac (LIBCTF): Export. Set to empty for non-ELF based targets. (HAVE_LIBCTF): Define if libctf support is available. * Makefile.am (LIBCTF): Set value to @LIBCTF@. * objdump.c: Make CTF code conditional upon HAVE_LIBCTF being defined. * readelf.c: Likewise. * configure: Regenerate. * Makefile.in: Regenerate. * config.in: Regenerate.
This commit is contained in:
parent
9698cf9b1c
commit
90bd54236c
12 changed files with 202 additions and 13 deletions
|
@ -56,7 +56,9 @@
|
|||
#include "bucomm.h"
|
||||
#include "elfcomm.h"
|
||||
#include "dwarf.h"
|
||||
#ifdef HAVE_LIBCTF
|
||||
#include "ctf-api.h"
|
||||
#endif
|
||||
#include "getopt.h"
|
||||
#include "safe-ctype.h"
|
||||
#include "dis-asm.h"
|
||||
|
@ -99,9 +101,11 @@ static bfd_boolean with_source_code; /* -S */
|
|||
static int show_raw_insn; /* --show-raw-insn */
|
||||
static int dump_dwarf_section_info; /* --dwarf */
|
||||
static int dump_stab_section_info; /* --stabs */
|
||||
#ifdef HAVE_LIBCTF
|
||||
static int dump_ctf_section_info; /* --ctf */
|
||||
static char *dump_ctf_section_name;
|
||||
static char *dump_ctf_parent_name; /* --ctf-parent */
|
||||
#endif
|
||||
static int do_demangle; /* -C, --demangle */
|
||||
static bfd_boolean disassemble; /* -d */
|
||||
static bfd_boolean disassemble_all; /* -D */
|
||||
|
@ -228,8 +232,12 @@ usage (FILE *stream, int status)
|
|||
=frames-interp,=str,=loc,=Ranges,=pubtypes,\n\
|
||||
=gdb_index,=trace_info,=trace_abbrev,=trace_aranges,\n\
|
||||
=addr,=cu_index,=links,=follow-links]\n\
|
||||
Display DWARF info in the file\n\
|
||||
--ctf=SECTION Display CTF info from SECTION\n\
|
||||
Display DWARF info in the file\n"));
|
||||
#ifdef HAVE_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\
|
||||
|
@ -278,8 +286,11 @@ usage (FILE *stream, int status)
|
|||
--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\
|
||||
\n"));
|
||||
#ifdef HAVE_LIBCTF
|
||||
fprintf (stream, _("\
|
||||
--ctf-parent=SECTION Use SECTION as the CTF parent\n\n"));
|
||||
#endif
|
||||
list_supported_targets (program_name, stream);
|
||||
list_supported_architectures (program_name, stream);
|
||||
|
||||
|
@ -314,9 +325,11 @@ enum option_values
|
|||
OPTION_DWARF_START,
|
||||
OPTION_RECURSE_LIMIT,
|
||||
OPTION_NO_RECURSE_LIMIT,
|
||||
OPTION_INLINES,
|
||||
#ifdef HAVE_LIBCTF
|
||||
OPTION_CTF,
|
||||
OPTION_CTF_PARENT
|
||||
OPTION_CTF_PARENT,
|
||||
#endif
|
||||
OPTION_INLINES
|
||||
};
|
||||
|
||||
static struct option long_options[]=
|
||||
|
@ -359,8 +372,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 HAVE_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},
|
||||
|
@ -3199,6 +3214,7 @@ dump_bfd_header (bfd *abfd)
|
|||
}
|
||||
|
||||
|
||||
#ifdef HAVE_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. */
|
||||
|
@ -3216,6 +3232,7 @@ dump_ctf_indent_lines (ctf_sect_names_t sect ATTRIBUTE_UNUSED,
|
|||
}
|
||||
|
||||
/* Make a ctfsect suitable for ctf_bfdopen_ctfsect(). */
|
||||
|
||||
static ctf_sect_t
|
||||
make_ctfsect (const char *name, bfd_byte *data,
|
||||
bfd_size_type size)
|
||||
|
@ -3331,8 +3348,8 @@ dump_ctf (bfd *abfd, const char *sect_name, const char *parent_name)
|
|||
free (parentdata);
|
||||
free (ctfdata);
|
||||
}
|
||||
#endif /* HAVE_LIBCTF */
|
||||
|
||||
|
||||
static void
|
||||
dump_bfd_private_header (bfd *abfd)
|
||||
{
|
||||
|
@ -4043,8 +4060,10 @@ dump_bfd (bfd *abfd, bfd_boolean is_mainfile)
|
|||
dump_symbols (abfd, TRUE);
|
||||
if (dump_dwarf_section_info)
|
||||
dump_dwarf (abfd);
|
||||
#ifdef HAVE_LIBCTF
|
||||
if (dump_ctf_section_info)
|
||||
dump_ctf (abfd, dump_ctf_section_name, dump_ctf_parent_name);
|
||||
#endif
|
||||
if (dump_stab_section_info)
|
||||
dump_stabs (abfd);
|
||||
if (dump_reloc_info && ! disassemble)
|
||||
|
@ -4484,6 +4503,7 @@ main (int argc, char **argv)
|
|||
case OPTION_DWARF_CHECK:
|
||||
dwarf_check = TRUE;
|
||||
break;
|
||||
#ifdef HAVE_LIBCTF
|
||||
case OPTION_CTF:
|
||||
dump_ctf_section_info = TRUE;
|
||||
dump_ctf_section_name = xstrdup (optarg);
|
||||
|
@ -4492,6 +4512,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;
|
||||
|
@ -4551,9 +4572,10 @@ main (int argc, char **argv)
|
|||
}
|
||||
|
||||
free_only_list ();
|
||||
#ifdef HAVE_LIBCTF
|
||||
free (dump_ctf_section_name);
|
||||
free (dump_ctf_parent_name);
|
||||
|
||||
#endif
|
||||
END_PROGRESS (program_name);
|
||||
|
||||
return exit_status;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue