Sophie

Sophie

distrib > Mandriva > 2009.1 > i586 > media > main-release-src > by-pkgid > dc722e1baca9b6df9fa9c9fa80921cba > files > 3

pkgconfig-0.23-4mdv2009.1.src.rpm

diff -p -up pkg-config-0.23/main.c.biarch pkg-config-0.23/main.c
--- pkg-config-0.23/main.c.biarch	2008-01-16 23:06:48.000000000 +0100
+++ pkg-config-0.23/main.c	2008-02-07 10:47:06.000000000 +0100
@@ -29,6 +29,11 @@
 #include <string.h>
 #include <ctype.h>
 #include <stdio.h>
+#if defined(__linux__)
+#include <sys/stat.h>
+#include <sys/syscall.h>
+#include <sys/personality.h>
+#endif
 
 #ifdef G_OS_WIN32
 #define STRICT
@@ -170,6 +175,17 @@ pkg_uninstalled (Package *pkg)
   return FALSE;
 }
 
+#if defined(__linux__)
+static int
+is_dir(const char *path)
+{
+  struct stat st;
+  if (stat(path, &st) < 0)
+    return 0;
+  return S_ISDIR(st.st_mode);
+}
+#endif
+
 int
 main (int argc, char **argv)
 {
@@ -202,6 +218,9 @@ main (int argc, char **argv)
   char **search_dirs;
   char **iter;
   gboolean need_newline;
+#if defined(__linux__)
+  long personality;
+#endif
 
   const char *pkgname;
   Package *pkg;
@@ -293,6 +312,12 @@ main (int argc, char **argv)
     }
   else
     {
+#if defined(__linux__)
+	personality = syscall(SYS_personality, 0xffffffff);
+	if ((personality & PER_MASK) == PER_LINUX32 && is_dir(LIBDIR_PATH32))
+		add_search_dirs(PKG_CONFIG_PC_PATH32, G_SEARCHPATH_SEPARATOR_S);
+	else 
+#endif
       add_search_dirs(PKG_CONFIG_PC_PATH, G_SEARCHPATH_SEPARATOR_S);
     }
 
diff -p -up pkg-config-0.23/configure.in.biarch pkg-config-0.23/configure.in
--- pkg-config-0.23/configure.in.biarch	2008-01-16 23:48:07.000000000 +0100
+++ pkg-config-0.23/configure.in	2008-02-07 10:49:11.000000000 +0100
@@ -18,8 +18,11 @@ AC_DEFUN([PKG_CONFIG_FIND_PC_PATH],
    AC_MSG_RESULT([$pc_path])],
  [pc_path='${libdir}/pkgconfig:${datadir}/pkgconfig'])
  AC_SUBST([pc_path])
-
 ])
+libdir_path32="$libdir/pkgconfig/32"
+AC_DEFINE_UNQUOTED(LIBDIR_PATH32, ["$libdir_path32"], [libdir pkgconfig path for 32 personality])
+pc_path32="$libdir/pkgconfig/32:$datadir/pkgconfig"
+AC_DEFINE_UNQUOTED(PKG_CONFIG_PC_PATH32, ["$pc_path32"], [path for 32 personality])
 
 PKG_CONFIG_FIND_PC_PATH