mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-06 14:49:38 +08:00
compile: set debug compile: Display GCC driver filename
As discussed in How to use compile & execute function in GDB https://sourceware.org/ml/gdb/2015-04/msg00026.html GDB currently searches for compilers on /usr/bin/ARCH-OS-gcc and chooses a match from there. However, it is not currently possible for the user to display which compiler was selected. Up until now, GDB's compiler interface was not up-to-date with GCC's one, which means that it wasn't possible to obtain this information. This patch implements the mechanisms necessary for that. gdb/ChangeLog 2017-08-23 Jan Kratochvil <jan.kratochvil@redhat.com> * compile/compile.c (compile_to_object): Conditionally call set_verbose. Conditionally call compile or compile_v0. include/ChangeLog 2017-08-23 Jan Kratochvil <jan.kratochvil@redhat.com> * gcc-interface.h (enum gcc_base_api_version): Add GCC_FE_VERSION_1. (struct gcc_base_vtable): Rename compile to compile_v0. Update comment for compile. New methods set_verbose and compile.
This commit is contained in:

committed by
Sergio Durigan Junior

parent
f6a36b0c9e
commit
e68c32d53e
@ -1,3 +1,8 @@
|
|||||||
|
2017-08-23 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
* compile/compile.c (compile_to_object): Conditionally call
|
||||||
|
set_verbose. Conditionally call compile or compile_v0.
|
||||||
|
|
||||||
2017-08-07 Weimin Pan <weimin.pan@oracle.com>
|
2017-08-07 Weimin Pan <weimin.pan@oracle.com>
|
||||||
|
|
||||||
* sparc64-tdep.h: (adi_normalize_address): New export.
|
* sparc64-tdep.h: (adi_normalize_address): New export.
|
||||||
|
@ -516,6 +516,9 @@ compile_to_object (struct command_line *cmd, const char *cmd_string,
|
|||||||
get_args (compiler, gdbarch, &argc, &argv);
|
get_args (compiler, gdbarch, &argc, &argv);
|
||||||
gdb_argv argv_holder (argv);
|
gdb_argv argv_holder (argv);
|
||||||
|
|
||||||
|
if (compiler->fe->ops->version >= GCC_FE_VERSION_1)
|
||||||
|
compiler->fe->ops->set_verbose (compiler->fe, compile_debug);
|
||||||
|
|
||||||
error_message = compiler->fe->ops->set_arguments (compiler->fe, triplet_rx,
|
error_message = compiler->fe->ops->set_arguments (compiler->fe, triplet_rx,
|
||||||
argc, argv);
|
argc, argv);
|
||||||
if (error_message != NULL)
|
if (error_message != NULL)
|
||||||
@ -556,8 +559,12 @@ compile_to_object (struct command_line *cmd, const char *cmd_string,
|
|||||||
/* Call the compiler and start the compilation process. */
|
/* Call the compiler and start the compilation process. */
|
||||||
compiler->fe->ops->set_source_file (compiler->fe, fnames.source_file ());
|
compiler->fe->ops->set_source_file (compiler->fe, fnames.source_file ());
|
||||||
|
|
||||||
if (!compiler->fe->ops->compile (compiler->fe, fnames.object_file (),
|
if (compiler->fe->ops->version >= GCC_FE_VERSION_1)
|
||||||
compile_debug))
|
ok = compiler->fe->ops->compile (compiler->fe, fnames.object_file ());
|
||||||
|
else
|
||||||
|
ok = compiler->fe->ops->compile_v0 (compiler->fe, fnames.object_file (),
|
||||||
|
compile_debug);
|
||||||
|
if (!ok)
|
||||||
error (_("Compilation failed."));
|
error (_("Compilation failed."));
|
||||||
|
|
||||||
if (compile_debug)
|
if (compile_debug)
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2017-08-23 Jan Kratochvil <jan.kratochvil@redhat.com>
|
||||||
|
|
||||||
|
* gcc-interface.h (enum gcc_base_api_version): Add
|
||||||
|
GCC_FE_VERSION_1.
|
||||||
|
(struct gcc_base_vtable): Rename compile to compile_v0. Update
|
||||||
|
comment for compile. New methods set_verbose and compile.
|
||||||
|
|
||||||
2017-08-21 Alexander Fedotov <alexander.fedotov@nxp.com>
|
2017-08-21 Alexander Fedotov <alexander.fedotov@nxp.com>
|
||||||
Edmar Wienskoski <edmar.wienskoski@nxp.com>
|
Edmar Wienskoski <edmar.wienskoski@nxp.com>
|
||||||
|
|
||||||
|
@ -44,7 +44,10 @@ struct gcc_base_context;
|
|||||||
|
|
||||||
enum gcc_base_api_version
|
enum gcc_base_api_version
|
||||||
{
|
{
|
||||||
GCC_FE_VERSION_0 = 0
|
GCC_FE_VERSION_0 = 0,
|
||||||
|
|
||||||
|
/* Deprecated method compile_v0. Added method set_verbose and compile. */
|
||||||
|
GCC_FE_VERSION_1 = 1,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* The operations defined by the GCC base API. This is the vtable for
|
/* The operations defined by the GCC base API. This is the vtable for
|
||||||
@ -93,18 +96,35 @@ struct gcc_base_vtable
|
|||||||
const char *message),
|
const char *message),
|
||||||
void *datum);
|
void *datum);
|
||||||
|
|
||||||
/* Perform the compilation. FILENAME is the name of the resulting
|
/* Deprecated GCC_FE_VERSION_0 variant of the GCC_FE_VERSION_1
|
||||||
object file. VERBOSE can be set to cause GCC to print some
|
compile method. GCC_FE_VERSION_0 version verbose parameter has
|
||||||
information as it works. Returns true on success, false on
|
been replaced by the set_verbose method. */
|
||||||
error. */
|
|
||||||
|
|
||||||
int /* bool */ (*compile) (struct gcc_base_context *self,
|
int /* bool */ (*compile_v0) (struct gcc_base_context *self,
|
||||||
const char *filename,
|
const char *filename,
|
||||||
int /* bool */ verbose);
|
int /* bool */ verbose);
|
||||||
|
|
||||||
/* Destroy this object. */
|
/* Destroy this object. */
|
||||||
|
|
||||||
void (*destroy) (struct gcc_base_context *self);
|
void (*destroy) (struct gcc_base_context *self);
|
||||||
|
|
||||||
|
/* VERBOSE can be set to non-zero to cause GCC to print some
|
||||||
|
information as it works. Calling this method overrides its
|
||||||
|
possible previous calls.
|
||||||
|
|
||||||
|
This method is only available since GCC_FE_VERSION_1. */
|
||||||
|
|
||||||
|
void (*set_verbose) (struct gcc_base_context *self,
|
||||||
|
int /* bool */ verbose);
|
||||||
|
|
||||||
|
/* Perform the compilation. FILENAME is the name of the resulting
|
||||||
|
object file. Either set_triplet_regexp or set_driver_filename must
|
||||||
|
be called before. Returns true on success, false on error.
|
||||||
|
|
||||||
|
This method is only available since GCC_FE_VERSION_1. */
|
||||||
|
|
||||||
|
int /* bool */ (*compile) (struct gcc_base_context *self,
|
||||||
|
const char *filename);
|
||||||
};
|
};
|
||||||
|
|
||||||
/* The GCC object. */
|
/* The GCC object. */
|
||||||
|
Reference in New Issue
Block a user