2001-12-04 Orjan Friberg <orjanf@axis.com>
* solib.c (solib_open): Make path relative if search for absolute path failed. If search for relative path in solib_search_path failed, fall back to search for basename only.
This commit is contained in:
parent
7c7a201a79
commit
ba5f0d88f3
@ -1,3 +1,9 @@
|
||||
2001-12-04 Orjan Friberg <orjanf@axis.com>
|
||||
|
||||
* solib.c (solib_open): Make path relative if search for absolute path
|
||||
failed. If search for relative path in solib_search_path failed, fall
|
||||
back to search for basename only.
|
||||
|
||||
2001-12-03 Martin M. Hunt <hunt@redhat.com>
|
||||
|
||||
* serial.h: Add a note to serial_open.
|
||||
|
23
gdb/solib.c
23
gdb/solib.c
@ -131,10 +131,33 @@ solib_open (char *in_pathname, char **found_pathname)
|
||||
found_file = open (temp_pathname, O_RDONLY, 0);
|
||||
}
|
||||
|
||||
/* If the search in solib_absolute_prefix failed, and the path name is
|
||||
absolute at this point, make it relative. (openp will try and open the
|
||||
file according to its absolute path otherwise, which is not what we want.)
|
||||
Affects subsequent searches for this solib. */
|
||||
if (found_file < 0 && IS_ABSOLUTE_PATH (in_pathname))
|
||||
{
|
||||
/* First, get rid of any drive letters etc. */
|
||||
while (!IS_DIR_SEPARATOR (*in_pathname))
|
||||
in_pathname++;
|
||||
|
||||
/* Next, get rid of all leading dir separators. */
|
||||
while (IS_DIR_SEPARATOR (*in_pathname))
|
||||
in_pathname++;
|
||||
}
|
||||
|
||||
/* If not found, next search the solib_search_path (if any). */
|
||||
if (found_file < 0 && solib_search_path != NULL)
|
||||
found_file = openp (solib_search_path,
|
||||
1, in_pathname, O_RDONLY, 0, &temp_pathname);
|
||||
|
||||
/* If not found, next search the solib_search_path (if any) for the basename
|
||||
only (ignoring the path). This is to allow reading solibs from a path
|
||||
that differs from the opened path. */
|
||||
if (found_file < 0 && solib_search_path != NULL)
|
||||
found_file = openp (solib_search_path,
|
||||
1, lbasename (in_pathname), O_RDONLY, 0,
|
||||
&temp_pathname);
|
||||
|
||||
/* If not found, next search the inferior's $PATH environment variable. */
|
||||
if (found_file < 0 && solib_search_path != NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user