OSDN Git Service

Remove /usr/X11R6/lib from default list.
authorJoakim Tjernlund <joakim.tjernlund@transmode.se>
Mon, 27 Sep 2004 09:40:55 +0000 (09:40 -0000)
committerJoakim Tjernlund <joakim.tjernlund@transmode.se>
Mon, 27 Sep 2004 09:40:55 +0000 (09:40 -0000)
Move /lib and /usr/lib first in ld.so.cache.
Ignore duplicate /lib and /usr/lib in ld.so.conf

utils/ldconfig.c

index d47c9e0..acb78a2 100644 (file)
@@ -874,18 +874,28 @@ int main(int argc, char **argv)
        /* look ma, no defaults */
        if (!nodefault)
        {
+           scan_dir(UCLIBC_RUNTIME_PREFIX "lib");
+           scan_dir(UCLIBC_RUNTIME_PREFIX "usr/lib");
+
            /* I guess the defaults aren't good enough */
            if ((extpath = get_extpath()))
            {
-               for (cp = strtok(extpath, DIR_SEP); cp;
-                       cp = strtok(NULL, DIR_SEP))
+               for (cp = strtok(extpath, DIR_SEP); cp; cp = strtok(NULL, DIR_SEP)) {
+                       /* strip traling slashes */
+                       int len = strlen(cp);
+                       if (len) 
+                               while (cp[--len] == '/' && len)
+                                       cp[len] = 0;
+                       if (strcmp(UCLIBC_RUNTIME_PREFIX "lib", cp) == 0 ||
+                           strcmp(UCLIBC_RUNTIME_PREFIX "usr/lib", cp) == 0) {
+                               if (verbose >= 0)
+                                       warnx("Path `%s' given more than once\n", cp);
+                               continue;
+                       }
                    scan_dir(cp);
+               }
                free(extpath);
            }
-
-           scan_dir(UCLIBC_RUNTIME_PREFIX "/usr/X11R6/lib");
-           scan_dir(UCLIBC_RUNTIME_PREFIX "/usr/lib");
-           scan_dir(UCLIBC_RUNTIME_PREFIX "/lib");
        }
 
 #ifdef USE_CACHE