From e91795abb4f4d32cafe89f0f0cb4ad9ad8e2760d Mon Sep 17 00:00:00 2001 From: Richard Purdie Date: Mon, 17 Sep 2007 08:18:14 +0000 Subject: pkgconfig: Add sysroot support patch (from pkgconfig mailing list) git-svn-id: https://svn.o-hand.com/repos/poky/trunk@2741 311d38ba-8fff-0310-9ca6-ca027cbcb966 --- .../pkgconfig/pkgconfig-0.22/sysroot-support.patch | 102 +++++++++++++++++++++ meta/packages/pkgconfig/pkgconfig.inc | 3 +- 2 files changed, 104 insertions(+), 1 deletion(-) create mode 100644 meta/packages/pkgconfig/pkgconfig-0.22/sysroot-support.patch (limited to 'meta') diff --git a/meta/packages/pkgconfig/pkgconfig-0.22/sysroot-support.patch b/meta/packages/pkgconfig/pkgconfig-0.22/sysroot-support.patch new file mode 100644 index 000000000..2e4f796cc --- /dev/null +++ b/meta/packages/pkgconfig/pkgconfig-0.22/sysroot-support.patch @@ -0,0 +1,102 @@ +Add support for PKG_CONFIG_SYSROOT_DIR to pkgconfig + +--- + main.c | 5 ++++- + pkg-config.1 | 9 +++++++++ + pkg.c | 14 +++++++++++++- + pkg.h | 3 +++ + 4 files changed, 29 insertions(+), 2 deletions(-) + +Index: pkg-config-0.22/main.c +=================================================================== +--- pkg-config-0.22.orig/main.c 2007-09-14 10:20:15.000000000 +0100 ++++ pkg-config-0.22/main.c 2007-09-14 10:22:41.000000000 +0100 +@@ -46,6 +46,8 @@ + static int want_debug_spew = 0; + static int want_verbose_errors = 0; + static int want_stdout_errors = 0; ++char *pcsysrootdir = NULL; ++ + + void + debug_spew (const char *format, ...) +@@ -196,7 +198,7 @@ main (int argc, char **argv) + GString *str; + GSList *packages = NULL; + char *search_path; +- char *pcbuilddir; ++ char *pcbuilddir; + const char *pkglibdir; + char **search_dirs; + char **iter; +@@ -345,6 +347,7 @@ main (int argc, char **argv) + } + } + #endif ++ pcsysrootdir = getenv ("PKG_CONFIG_SYSROOT_DIR"); + + pcbuilddir = getenv ("PKG_CONFIG_TOP_BUILD_DIR"); + if (pcbuilddir) +Index: pkg-config-0.22/pkg.c +=================================================================== +--- pkg-config-0.22.orig/pkg.c 2007-09-14 10:20:15.000000000 +0100 ++++ pkg-config-0.22/pkg.c 2007-09-14 10:22:41.000000000 +0100 +@@ -479,11 +479,23 @@ string_list_to_string (GSList *list) + GSList *tmp; + GString *str = g_string_new (""); + char *retval; ++ int offset=0; + + tmp = list; + while (tmp != NULL) + { +- g_string_append (str, tmp->data); ++ if (pcsysrootdir != NULL) ++ { ++ if (!strncmp(tmp->data,"-I",2) || ++ !strncmp(tmp->data,"-L",2)) ++ { ++ offset=2; ++ g_string_append_c (str,((char*)tmp->data)[0]); ++ g_string_append_c (str,((char*)tmp->data)[1]); ++ g_string_append (str,pcsysrootdir); ++ } ++ } ++ g_string_append (str, tmp->data+offset); + g_string_append_c (str, ' '); + + tmp = g_slist_next (tmp); +Index: pkg-config-0.22/pkg-config.1 +=================================================================== +--- pkg-config-0.22.orig/pkg-config.1 2007-09-14 10:20:15.000000000 +0100 ++++ pkg-config-0.22/pkg-config.1 2007-09-14 10:23:08.000000000 +0100 +@@ -260,6 +260,15 @@ Don't strip -I/usr/include out of cflags + Don't strip -L/usr/lib out of libs + + .TP ++.I "PKG_CONFIG_SYSROOT_DIR" ++Modify -I and -L to use the directories located in target sysroot. ++this option is usefull when crosscompiling package that use pkg-config ++to determine CFLAGS anf LDFLAGS. -I and -L are modified to point to ++the new system root. this means that a -I/usr/include/libfoo will ++become -I/var/target/usr/include/libfoo with a PKG_CONFIG_SYSROOT_DIR ++equal to /var/target (same rule apply to -L) ++ ++.TP + .I "PKG_CONFIG_LIBDIR" + Replaces the default \fIpkg-config\fP search directory. + +Index: pkg-config-0.22/pkg.h +=================================================================== +--- pkg-config-0.22.orig/pkg.h 2007-09-14 10:20:15.000000000 +0100 ++++ pkg-config-0.22/pkg.h 2007-09-14 10:22:41.000000000 +0100 +@@ -123,6 +123,9 @@ void disable_private_libs(void); + /* If TRUE, do not automatically prefer uninstalled versions */ + extern gboolean disable_uninstalled; + ++/* string that contain environment */ ++extern char* pcsysrootdir; ++ + #ifdef G_OS_WIN32 + /* If TRUE, do not automatically define "prefix" while + * parsing each .pc file */ diff --git a/meta/packages/pkgconfig/pkgconfig.inc b/meta/packages/pkgconfig/pkgconfig.inc index 47c077a8d..ed9e7e69a 100644 --- a/meta/packages/pkgconfig/pkgconfig.inc +++ b/meta/packages/pkgconfig/pkgconfig.inc @@ -5,9 +5,10 @@ It replaces the ubiquitous *-config scripts you may have \ seen with a single tool." HOMEPAGE = "http://pkg-config.freedesktop.org/wiki/" LICENSE = "GPL" -PR = "r1" +PR = "r2" SRC_URI = "http://pkgconfig.freedesktop.org/releases/pkg-config-${PV}.tar.gz \ + file://sysroot-support.patch;patch=1 \ file://glibconfig-sysdefs.h" S = "${WORKDIR}/pkg-config-${PV}/" -- cgit v1.2.3