This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Patch] modify search order in solib.c:solib_open


Okay.  Here's my patch, this time using pine so my indentation won't get
buggered.  Applied.

cheers,

Kris

2003-06-19  Kris Warkentin  <kewarken@qnx.com>

	* solib.c (solib_open): Change tests for whether to search
	LD_LIBRARY_PATH and PATH to better deal with remotes.  Update
	comments.

Index: solib.c
===================================================================
RCS file: /cvs/src/src/gdb/solib.c,v
retrieving revision 1.57
diff -c -p -r1.57 solib.c
*** solib.c	11 Jun 2003 13:16:29 -0000	1.57
--- solib.c	20 Jun 2003 12:16:50 -0000
*************** static char *solib_search_path = NULL;
*** 87,99 ****
     (or set of directories, as in LD_LIBRARY_PATH) to search for all
     shared libraries if not found in SOLIB_ABSOLUTE_PREFIX.

!    Search order:
!    * If path is absolute, look in SOLIB_ABSOLUTE_PREFIX.
!    * If path is absolute or relative, look for it literally
(unmodified).
     * Look in SOLIB_SEARCH_PATH.
     * If available, use target defined search function.
!    * Look in inferior's $PATH.
!    * Look in inferior's $LD_LIBRARY_PATH.

     RETURNS

--- 87,105 ----
     (or set of directories, as in LD_LIBRARY_PATH) to search for all
     shared libraries if not found in SOLIB_ABSOLUTE_PREFIX.

!    Search algorithm:
!    * If there is a solib_absolute_prefix and path is absolute:
!    *   Search for solib_absolute_prefix/path.
!    * else
!    *   Look for it literally (unmodified).
     * Look in SOLIB_SEARCH_PATH.
     * If available, use target defined search function.
!    * If solib_absolute_prefix is NOT set, perform the following two
searches:
!    *   Look in inferior's $PATH.
!    *   Look in inferior's $LD_LIBRARY_PATH.
!    *
!    * The last check avoids doing this search when targetting remote
!    * machines since solib_absolute_prefix will almost always be set.

     RETURNS

*************** solib_open (char *in_pathname, char **fo
*** 148,154 ****
          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);
--- 154,160 ----
          in_pathname++;
      }

!   /* If not found, 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);
*************** solib_open (char *in_pathname, char **fo
*** 167,179 ****
                   (in_pathname, O_RDONLY, &temp_pathname);

    /* If not found, next search the inferior's $PATH environment
variable. */
!   if (found_file < 0 && solib_search_path != NULL)
      found_file = openp (get_in_environ (inferior_environ, "PATH"),
  			1, in_pathname, O_RDONLY, 0, &temp_pathname);

    /* If not found, next search the inferior's $LD_LIBRARY_PATH
       environment variable. */
!   if (found_file < 0 && solib_search_path != NULL)
      found_file = openp (get_in_environ (inferior_environ,
"LD_LIBRARY_PATH"),
  			1, in_pathname, O_RDONLY, 0, &temp_pathname);

--- 173,185 ----
                   (in_pathname, O_RDONLY, &temp_pathname);

    /* If not found, next search the inferior's $PATH environment
variable. */
!   if (found_file < 0 && solib_absolute_prefix == NULL)
      found_file = openp (get_in_environ (inferior_environ, "PATH"),
  			1, in_pathname, O_RDONLY, 0, &temp_pathname);

    /* If not found, next search the inferior's $LD_LIBRARY_PATH
       environment variable. */
!   if (found_file < 0 && solib_absolute_prefix == NULL)
      found_file = openp (get_in_environ (inferior_environ,
"LD_LIBRARY_PATH"),
  			1, in_pathname, O_RDONLY, 0, &temp_pathname);




Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]