|
|
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 |
|