buildrootschalter/package/pkg-config/pkg-config-0.25-fix-variable.patch
Peter Korsgaard 117a8ea0ea pkg-config: only prepend sysroot to includedir / libdir
Only append sysroot to includedir / libdir, and not to other variables,
when a variable is requested (--variable=<name>), similar to how it
is done for the -I / -L flags in cflags/ldflags.

The problem is that pkg-config doesn't have any explicit cross compilation
support, so there's some confusion about what are host paths and what are
target ones.  Includedir / libdir are paths for the (cross) compiler, so
those should normally have sysroot prepended, but other variables might
refer to target paths instead.

This fixes the installation of the xfonts-* packages, which uses
pkg-config --variable=fontrootdir fontutil to figure out the target
installation location for fonts.

Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
2011-03-10 11:36:18 +01:00

30 lines
983 B
Diff

[PATCH] prefix sysroot to include/libdir path variables
Prefix includedir / libdir variable values with sysroot if a variable is
requested (--variable=<name>), similar to how it's done for -I / -L flags.
This is sometimes used to find header files (E.G. in gst-plugins configure),
so ensure the sysroot'ed files are used.
Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk>
---
main.c | 5 +++++
1 file changed, 5 insertions(+)
Index: pkg-config-0.25/main.c
===================================================================
--- pkg-config-0.25.orig/main.c
+++ pkg-config-0.25/main.c
@@ -700,6 +700,11 @@
if (variable_name)
{
char *str = packages_get_var (packages, variable_name);
+ /* include/lib variable? */
+ if (pcsysrootdir &&
+ (!strcmp(variable_name, "includedir") ||
+ !strcmp(variable_name, "libdir")))
+ printf ("%s/", pcsysrootdir);
printf ("%s", str);
g_free (str);
need_newline = TRUE;