9d2a30e
=== modified file 'pkg.c'
9d2a30e
--- pkg.c	2008-03-23 20:39:07 +0000
9d2a30e
+++ pkg.c	2008-06-06 18:49:58 +0000
9d2a30e
@@ -936,31 +936,44 @@
9d2a30e
   g_slist_foreach (system_directories, (GFunc) g_free, NULL);
9d2a30e
   g_slist_free (system_directories);
9d2a30e
 
9d2a30e
+
9d2a30e
+  system_directories = g_slist_prepend (NULL, "/usr/lib");
9d2a30e
 #ifdef PREFER_LIB64
9d2a30e
-#define SYSTEM_LIBDIR "/usr/lib64"
9d2a30e
-#else
9d2a30e
-#define SYSTEM_LIBDIR "/usr/lib"
9d2a30e
+  system_directories = g_slist_prepend (system_directories, "/usr/lib64");
9d2a30e
 #endif
9d2a30e
   count = 0;
9d2a30e
   iter = pkg->L_libs;
9d2a30e
   while (iter != NULL)
9d2a30e
     {
9d2a30e
-      if (strcmp (iter->data, "-L" SYSTEM_LIBDIR) == 0 ||
9d2a30e
-          strcmp (iter->data, "-L " SYSTEM_LIBDIR) == 0)
9d2a30e
+      GSList *subiter = system_directories;
9d2a30e
+      while (subiter != NULL)
9d2a30e
         {
9d2a30e
-          debug_spew ("Package %s has -L" SYSTEM_LIBDIR " in Libs\n",
9d2a30e
-                      pkg->name);
9d2a30e
-          if (g_getenv ("PKG_CONFIG_ALLOW_SYSTEM_LIBS") == NULL)
9d2a30e
-            {              
9d2a30e
-              iter->data = NULL;
9d2a30e
-              ++count;
9d2a30e
-              debug_spew ("Removing -L" SYSTEM_LIBDIR " from libs for %s\n", pkg->key);
9d2a30e
+          gboolean is_system = FALSE;
9d2a30e
+          const char *linker_arg = iter->data;
9d2a30e
+          const char *system_libpath = subiter->data;
9d2a30e
+          if (strncmp (linker_arg, "-L ", 3) == 0 &&
9d2a30e
+              strcmp (linker_arg + 3, system_libpath) == 0)
9d2a30e
+            is_system = TRUE;
9d2a30e
+          else if (strncmp (linker_arg, "-L", 2) == 0 &&
9d2a30e
+              strcmp (linker_arg + 2, system_libpath) == 0)
9d2a30e
+            is_system = TRUE;
9d2a30e
+          if (is_system)
9d2a30e
+            {
9d2a30e
+              debug_spew ("Package %s has -L %s in Libs\n",
9d2a30e
+                          pkg->name, system_libpath);
9d2a30e
+              if (g_getenv ("PKG_CONFIG_ALLOW_SYSTEM_LIBS") == NULL)
9d2a30e
+                {              
9d2a30e
+                  iter->data = NULL;
9d2a30e
+                  ++count;
9d2a30e
+                  debug_spew ("Removing -L %s from libs for %s\n", system_libpath, pkg->key);
9d2a30e
+                  break;
9d2a30e
+                }
9d2a30e
             }
9d2a30e
+          subiter = subiter->next;
9d2a30e
         }
9d2a30e
-
9d2a30e
       iter = iter->next;
9d2a30e
     }
9d2a30e
-#undef SYSTEM_LIBDIR
9d2a30e
+  g_slist_free (system_directories);
9d2a30e
 
9d2a30e
   while (count)
9d2a30e
     {
9d2a30e