* solib.c (solib_open): If path is relative, look for it
literally. This matches the behaviour of the GNU dynamic linker more closely.
This commit is contained in:
parent
3cd4dda73e
commit
b21f0843bf
|
@ -1,3 +1,9 @@
|
||||||
|
2000-12-22 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
|
* solib.c (solib_open): If path is relative, look for it
|
||||||
|
literally. This matches the behaviour of the GNU dynamic linker
|
||||||
|
more closely.
|
||||||
|
|
||||||
2000-12-22 Fernando Nasser <fnasser@redhat.com>
|
2000-12-22 Fernando Nasser <fnasser@redhat.com>
|
||||||
|
|
||||||
* README: Suggest building in an empty directory.
|
* README: Suggest building in an empty directory.
|
||||||
|
|
15
gdb/solib.c
15
gdb/solib.c
|
@ -85,13 +85,13 @@ static char *solib_search_path = NULL;
|
||||||
|
|
||||||
Search order:
|
Search order:
|
||||||
* If path is absolute, look in SOLIB_ABSOLUTE_PREFIX.
|
* If path is absolute, look in SOLIB_ABSOLUTE_PREFIX.
|
||||||
* If path is absolute, look for it literally (unmodified).
|
* If path is absolute or relative, look for it literally (unmodified).
|
||||||
* Look in SOLIB_SEARCH_PATH.
|
* Look in SOLIB_SEARCH_PATH.
|
||||||
* Look in inferior's $PATH.
|
* Look in inferior's $PATH.
|
||||||
* Look in inferior's $LD_LIBRARY_PATH.
|
* Look in inferior's $LD_LIBRARY_PATH.
|
||||||
|
|
||||||
RETURNS
|
RETURNS
|
||||||
|
|
||||||
file handle for opened solib, or -1 for failure. */
|
file handle for opened solib, or -1 for failure. */
|
||||||
|
|
||||||
int
|
int
|
||||||
|
@ -100,16 +100,17 @@ solib_open (char *in_pathname, char **found_pathname)
|
||||||
int found_file = -1;
|
int found_file = -1;
|
||||||
char *temp_pathname = NULL;
|
char *temp_pathname = NULL;
|
||||||
|
|
||||||
if (ROOTED_P (in_pathname))
|
if (strchr (in_pathname, SLASH_CHAR))
|
||||||
{
|
{
|
||||||
if (solib_absolute_prefix == NULL)
|
if (! ROOTED_P (in_pathname) || solib_absolute_prefix == NULL)
|
||||||
temp_pathname = in_pathname;
|
temp_pathname = in_pathname;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
int prefix_len = strlen (solib_absolute_prefix);
|
int prefix_len = strlen (solib_absolute_prefix);
|
||||||
|
|
||||||
/* Remove trailing slashes from absolute prefix. */
|
/* Remove trailing slashes from absolute prefix. */
|
||||||
while (prefix_len > 0 && SLASH_P (solib_absolute_prefix[prefix_len - 1]))
|
while (prefix_len > 0
|
||||||
|
&& SLASH_P (solib_absolute_prefix[prefix_len - 1]))
|
||||||
prefix_len--;
|
prefix_len--;
|
||||||
|
|
||||||
/* Cat the prefixed pathname together. */
|
/* Cat the prefixed pathname together. */
|
||||||
|
@ -117,8 +118,8 @@ solib_open (char *in_pathname, char **found_pathname)
|
||||||
strncpy (temp_pathname, solib_absolute_prefix, prefix_len);
|
strncpy (temp_pathname, solib_absolute_prefix, prefix_len);
|
||||||
temp_pathname[prefix_len] = '\0';
|
temp_pathname[prefix_len] = '\0';
|
||||||
strcat (temp_pathname, in_pathname);
|
strcat (temp_pathname, in_pathname);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Now see if we can open it. */
|
/* Now see if we can open it. */
|
||||||
found_file = open (temp_pathname, O_RDONLY, 0);
|
found_file = open (temp_pathname, O_RDONLY, 0);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue