add infcall_mmap and gcc_target_options gdbarch methods

The compiler needed two new gdbarch methods.

The infcall_mmap method allocates memory in the inferior.
This is used when inserting the object code.

The gcc_target_options method computes some arch-specific gcc options
to pass to the compiler.  This is used to ensure that gcc generates
object code for the correct architecture.

gdb/ChangeLog
2014-12-12  Jan Kratochvil  <jan.kratochvil@redhat.com>

	* arch-utils.c (default_infcall_mmap)
	(default_gcc_target_options): New functions.
	* arch-utils.h (GDB_MMAP_PROT_READ, GDB_MMAP_PROT_WRITE)
	(GDB_MMAP_PROT_EXEC): Define.
	(default_infcall_mmap, default_gcc_target_options): Declare.
	* gdbarch.h: Rebuild.
	* gdbarch.c: Rebuild.
	* gdbarch.sh (infcall_mmap, gcc_target_options): New methods.
This commit is contained in:
Jan Kratochvil
2014-05-14 14:08:57 -06:00
parent 233a8fb382
commit f208eee0f3
6 changed files with 110 additions and 0 deletions

View File

@ -858,6 +858,22 @@ default_skip_permanent_breakpoint (struct regcache *regcache)
regcache_write_pc (regcache, current_pc);
}
CORE_ADDR
default_infcall_mmap (CORE_ADDR size, unsigned prot)
{
error (_("This target does not support inferior memory allocation by mmap."));
}
/* -mcmodel=large is used so that no GOT (Global Offset Table) is needed to be
created in inferior memory by GDB (normally it is set by ld.so). */
char *
default_gcc_target_options (struct gdbarch *gdbarch)
{
return xstrprintf ("-m%d%s", gdbarch_ptr_bit (gdbarch),
gdbarch_ptr_bit (gdbarch) == 64 ? " -mcmodel=large" : "");
}
/* -Wmissing-prototypes */
extern initialize_file_ftype _initialize_gdbarch_utils;