Search order:
* 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 inferior's $PATH.
* Look in inferior's $LD_LIBRARY_PATH.
RETURNS
-
+
file handle for opened solib, or -1 for failure. */
int
int found_file = -1;
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;
else
{
- int prefix_len = strlen (solib_absolute_prefix);
+ int prefix_len = strlen (solib_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--;
/* Cat the prefixed pathname together. */
strncpy (temp_pathname, solib_absolute_prefix, prefix_len);
temp_pathname[prefix_len] = '\0';
strcat (temp_pathname, in_pathname);
-
}
+
/* Now see if we can open it. */
found_file = open (temp_pathname, O_RDONLY, 0);
}
filename = tilde_expand (so->so_name);
- old_chain = make_cleanup (free, filename);
+ old_chain = make_cleanup (xfree, filename);
scratch_chan = solib_open (filename, &scratch_pathname);
if (scratch_chan < 0)
char *bfd_filename = 0;
if (so->sections)
- free (so->sections);
+ xfree (so->sections);
if (so->abfd)
{
}
if (bfd_filename)
- free (bfd_filename);
+ xfree (bfd_filename);
TARGET_SO_FREE_SO (so);
- free (so);
+ xfree (so);
}
addr_width = 16 + 4;
addr_fmt = "016l";
}
+ else
+ {
+ internal_error ("%s:%d: bfd_get_arch_size() returned unknown size %d",
+ __FILE__, __LINE__, arch_size);
+ }
update_solib_list (from_tty, 0);