PR ld/10047
authorAlan Modra <amodra@gmail.com>
Tue, 14 Apr 2009 03:17:21 +0000 (03:17 +0000)
committerAlan Modra <amodra@gmail.com>
Tue, 14 Apr 2009 03:17:21 +0000 (03:17 +0000)
* ldfile.c (find_scripts_dir): Use make_relative_prefix to find
ldscripts in build tree.  Don't repeat search for ../lib/ldscripts.

ld/ChangeLog
ld/ldfile.c

index 58144b6b82a50d3d426d5daccaae61443a295135..6e7f2e8a510ab58abcaec8ee29c9d96b32b3592a 100644 (file)
@@ -1,3 +1,9 @@
+2009-04-14  Alan Modra  <amodra@bigpond.net.au>
+
+       PR ld/10047
+       * ldfile.c (find_scripts_dir): Use make_relative_prefix to find
+       ldscripts in build tree.  Don't repeat search for ../lib/ldscripts.
+
 2009-04-13  H.J. Lu  <hongjiu.lu@intel.com>
 
        * ldfile.c (ldfile_find_command_file): Revert the last change.
 2009-04-13  H.J. Lu  <hongjiu.lu@intel.com>
 
        * ldfile.c (ldfile_find_command_file): Revert the last change.
index 422416a8b442a92d57febe60195fe51ee79ec999..3c59a20819695d728cd84cd48db0582abc5577d5 100644 (file)
@@ -1,6 +1,6 @@
 /* Linker file opening and searching.
    Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002,
 /* Linker file opening and searching.
    Copyright 1991, 1992, 1993, 1994, 1995, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2007, 2008, 2009 Free Software Foundation, Inc.
 
    This file is part of the GNU Binutils.
 
 
    This file is part of the GNU Binutils.
 
@@ -477,15 +477,12 @@ check_for_scripts_dir (char *dir)
    SCRIPTDIR (passed from Makefile)
             (adjusted according to the current location of the binary)
    SCRIPTDIR (passed from Makefile)
    SCRIPTDIR (passed from Makefile)
             (adjusted according to the current location of the binary)
    SCRIPTDIR (passed from Makefile)
-   the dir where this program is (for using it from the build tree)
-   the dir where this program is/../lib
-            (for installing the tool suite elsewhere).  */
+   the dir where this program is (for using it from the build tree).  */
 
 static char *
 find_scripts_dir (void)
 {
 
 static char *
 find_scripts_dir (void)
 {
-  char *end, *dir;
-  size_t dirlen;
+  char *dir;
 
   dir = make_relative_prefix (program_name, BINDIR, SCRIPTDIR);
   if (dir)
 
   dir = make_relative_prefix (program_name, BINDIR, SCRIPTDIR);
   if (dir)
@@ -508,37 +505,14 @@ find_scripts_dir (void)
     return SCRIPTDIR;
 
   /* Look for "ldscripts" in the dir where our binary is.  */
     return SCRIPTDIR;
 
   /* Look for "ldscripts" in the dir where our binary is.  */
-  end = strrchr (program_name, '/');
-#ifdef HAVE_DOS_BASED_FILE_SYSTEM
-  {
-    /* We could have \foo\bar, or /foo\bar.  */
-    char *bslash = strrchr (program_name, '\\');
-
-    if (end == NULL || (bslash != NULL && bslash > end))
-      end = bslash;
-  }
-#endif
+  dir = make_relative_prefix (program_name, ".", ".");
+  if (dir)
+    {
+      if (check_for_scripts_dir (dir))
+       return dir;
+      free (dir);
+    }
 
 
-  if (end == NULL)
-    /* Don't look for ldscripts in the current directory.  There is
-       too much potential for confusion.  */
-    return NULL;
-
-  dirlen = end - program_name;
-  /* Make a copy of program_name in dir.
-     Leave room for later "/../lib".  */
-  dir = xmalloc (dirlen + sizeof ("/../lib"));
-  strncpy (dir, program_name, dirlen);
-  dir[dirlen] = '\0';
-
-  if (check_for_scripts_dir (dir))
-    return dir;
-
-  /* Look for "ldscripts" in <the dir where our binary is>/../lib.  */
-  strcpy (dir + dirlen, "/../lib");
-  if (check_for_scripts_dir (dir))
-    return dir;
-  free (dir);
   return NULL;
 }
 
   return NULL;
 }
 
This page took 0.028034 seconds and 4 git commands to generate.