Use TARGET_SYSROOT_PREFIX in more places
I found some spots using "target:"; I think it's better to use the define everywhere, so this changes these to use TARGET_SYSROOT_PREFIX. In some spots, is_target_filename is used rather than an explicit check. Approved-By: Andrew Burgess <aburgess@redhat.com>
This commit is contained in:
parent
9a099bc220
commit
9394690cb8
@ -90,7 +90,7 @@ build_id_to_debug_bfd_1 (const std::string &link, size_t build_id_len,
|
||||
/* lrealpath() is expensive even for the usually non-existent files. */
|
||||
gdb::unique_xmalloc_ptr<char> filename_holder;
|
||||
const char *filename = nullptr;
|
||||
if (startswith (link, TARGET_SYSROOT_PREFIX))
|
||||
if (is_target_filename (link))
|
||||
filename = link.c_str ();
|
||||
else if (access (link.c_str (), F_OK) == 0)
|
||||
{
|
||||
|
@ -45,6 +45,14 @@ struct registry_accessor<bfd>
|
||||
|
||||
int is_target_filename (const char *name);
|
||||
|
||||
/* An overload for strings. */
|
||||
|
||||
static inline int
|
||||
is_target_filename (const std::string &name)
|
||||
{
|
||||
return is_target_filename (name.c_str ());
|
||||
}
|
||||
|
||||
/* Returns nonzero if the filename associated with ABFD starts with
|
||||
TARGET_SYSROOT_PREFIX, zero otherwise. */
|
||||
|
||||
|
@ -1413,8 +1413,9 @@ find_separate_debug_file (const char *dir,
|
||||
Keep backward compatibility so that DEBUG_FILE_DIRECTORY being "" will
|
||||
cause "/..." lookups. */
|
||||
|
||||
bool target_prefix = startswith (dir, "target:");
|
||||
const char *dir_notarget = target_prefix ? dir + strlen ("target:") : dir;
|
||||
bool target_prefix = is_target_filename (dir);
|
||||
const char *dir_notarget
|
||||
= target_prefix ? dir + strlen (TARGET_SYSROOT_PREFIX) : dir;
|
||||
std::vector<gdb::unique_xmalloc_ptr<char>> debugdir_vec
|
||||
= dirnames_to_char_ptr_vec (debug_file_directory.c_str ());
|
||||
gdb::unique_xmalloc_ptr<char> canon_sysroot
|
||||
@ -1443,7 +1444,7 @@ find_separate_debug_file (const char *dir,
|
||||
|
||||
for (const gdb::unique_xmalloc_ptr<char> &debugdir : debugdir_vec)
|
||||
{
|
||||
debugfile = target_prefix ? "target:" : "";
|
||||
debugfile = target_prefix ? TARGET_SYSROOT_PREFIX : "";
|
||||
debugfile += debugdir;
|
||||
debugfile += "/";
|
||||
debugfile += drive;
|
||||
@ -1465,7 +1466,7 @@ find_separate_debug_file (const char *dir,
|
||||
{
|
||||
/* If the file is in the sysroot, try using its base path in
|
||||
the global debugfile directory. */
|
||||
debugfile = target_prefix ? "target:" : "";
|
||||
debugfile = target_prefix ? TARGET_SYSROOT_PREFIX : "";
|
||||
debugfile += debugdir;
|
||||
debugfile += "/";
|
||||
debugfile += base_path;
|
||||
@ -1481,12 +1482,13 @@ find_separate_debug_file (const char *dir,
|
||||
prefix -- but if that would yield the empty string, we
|
||||
don't bother at all, because that would just give the
|
||||
same result as above. */
|
||||
if (gdb_sysroot != "target:")
|
||||
if (gdb_sysroot != TARGET_SYSROOT_PREFIX)
|
||||
{
|
||||
debugfile = target_prefix ? "target:" : "";
|
||||
if (startswith (gdb_sysroot, "target:"))
|
||||
debugfile = target_prefix ? TARGET_SYSROOT_PREFIX : "";
|
||||
if (is_target_filename (gdb_sysroot))
|
||||
{
|
||||
std::string root = gdb_sysroot.substr (strlen ("target:"));
|
||||
std::string root
|
||||
= gdb_sysroot.substr (strlen (TARGET_SYSROOT_PREFIX));
|
||||
gdb_assert (!root.empty ());
|
||||
debugfile += root;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user