mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-08-05 21:50:21 +08:00
* configure.ac (DEBUGDIR_RELOCATABLE): Define for debugdir inside
exec_prefix. (TARGET_SYSTEM_ROOT_RELOCATABLE): Allow for exec_prefix being '${prefix}'. * configure, config.in: Regenerate. * defs.h (debug_file_directory): Declare. * main.c (captured_main): Canonicalize gdb_sysroot. Assume TARGET_SYSTEM_ROOT is defined. Initialize debug_file_directory and relocate it if DEBUGDIR_RELOCATABLE. * symfile.c (debug_file_directory): Make non-static. (find_separate_debug_file): Look for debug info for SYSROOT/PATH in DEBUGDIR/PATH if DEBUGDIR is inside SYSROOT. (_initialize_symfile): Don't initialize debug_file_directory here.
This commit is contained in:
53
gdb/main.c
53
gdb/main.c
@ -221,19 +221,60 @@ captured_main (void *data)
|
||||
if (res == 0)
|
||||
{
|
||||
xfree (gdb_sysroot);
|
||||
gdb_sysroot = TARGET_SYSTEM_ROOT;
|
||||
gdb_sysroot = xstrdup (TARGET_SYSTEM_ROOT);
|
||||
}
|
||||
}
|
||||
else
|
||||
gdb_sysroot = TARGET_SYSTEM_ROOT;
|
||||
gdb_sysroot = xstrdup (TARGET_SYSTEM_ROOT);
|
||||
#else
|
||||
#if defined (TARGET_SYSTEM_ROOT)
|
||||
gdb_sysroot = TARGET_SYSTEM_ROOT;
|
||||
gdb_sysroot = xstrdup (TARGET_SYSTEM_ROOT);
|
||||
#endif
|
||||
|
||||
/* Canonicalize the sysroot path. */
|
||||
if (*gdb_sysroot)
|
||||
{
|
||||
char *canon_sysroot = lrealpath (gdb_sysroot);
|
||||
if (canon_sysroot)
|
||||
{
|
||||
xfree (gdb_sysroot);
|
||||
gdb_sysroot = canon_sysroot;
|
||||
}
|
||||
}
|
||||
|
||||
#ifdef DEBUGDIR_RELOCATABLE
|
||||
debug_file_directory = make_relative_prefix (argv[0], BINDIR, DEBUGDIR);
|
||||
if (debug_file_directory)
|
||||
{
|
||||
struct stat s;
|
||||
int res = 0;
|
||||
|
||||
if (stat (debug_file_directory, &s) == 0)
|
||||
if (S_ISDIR (s.st_mode))
|
||||
res = 1;
|
||||
|
||||
if (res == 0)
|
||||
{
|
||||
xfree (debug_file_directory);
|
||||
debug_file_directory = xstrdup (DEBUGDIR);
|
||||
}
|
||||
}
|
||||
else
|
||||
debug_file_directory = xstrdup (DEBUGDIR);
|
||||
#else
|
||||
gdb_sysroot = "";
|
||||
#endif
|
||||
debug_file_directory = xstrdup (DEBUGDIR);
|
||||
#endif
|
||||
|
||||
/* Canonicalize the debugfile path. */
|
||||
if (*debug_file_directory)
|
||||
{
|
||||
char *canon_debug = lrealpath (debug_file_directory);
|
||||
if (canon_debug)
|
||||
{
|
||||
xfree (debug_file_directory);
|
||||
debug_file_directory = canon_debug;
|
||||
}
|
||||
}
|
||||
|
||||
/* There will always be an interpreter. Either the one passed into
|
||||
this captured main, or one specified by the user at start up, or
|
||||
the console. Initialize the interpreter to the one requested by
|
||||
|
Reference in New Issue
Block a user