[FFmpeg-devel] [PATCH] Fix pkg-config detection when using a cross-prefix

Michael Niedermayer michaelni at gmx.at
Tue Jul 3 04:07:08 CEST 2012

On Mon, Jul 02, 2012 at 03:47:40PM -0400, Kyle Schwarz wrote:
> On 7/2/2012 3:42 PM, Michael Niedermayer wrote:
> >On Mon, Jul 02, 2012 at 01:37:50PM -0400, Kyle Schwarz wrote:
> >>On 7/2/2012 1:03 PM, Michael Niedermayer wrote:
> >>>On Fri, Jun 29, 2012 at 10:08:06PM -0400, Kyle Schwarz wrote:
> >>>>On 6/29/2012 11:04 AM, Michael Niedermayer wrote:
> >>>>>On Fri, Jun 29, 2012 at 10:58:28AM -0400, Derek Buitenhuis wrote:
> >>>>>>On 29/06/2012 2:30 AM, Kyle Schwarz wrote:
> >>>>>>>The attached patch resolves a pkg-config issue.
> >>>>>>>
> >>>>>>>When a cross-prefix is used, FFmpeg searches for a cross-prefixed
> >>>>>>>pkg-config, and fails to use pkg-config if none if found.
> >>>>>>>
> >>>>>>>This patch allows a native system pkg-config to be used if a prefixed
> >>>>>>>one is not found.
> >>>>>>
> >>>>>>This seems like it could go quite wrong in some situations...
> >>>>>
> >>>>>seconded
> >>>>
> >>>>Can you give me an example of when it could go bad?
> >>>
> >>>
> >>>assume you have libfoo 0.1 installed on your host and you cross
> >>>compile and link to libfoo 9.0.
> >>>the hosts pkg-config will search the hosts .pc files which will
> >>>contain "instructions" to link to libfoo 0.1. Thes 2 libs may depend
> >>>on different other libs, need different linker flags and be in
> >>>different directories
> >>
> >>The PKG_CONFIG_PATH is what controls where the .pc files are found.
> >>
> >>>The problem i see is not using the hosts pkg-config but rather the
> >>>hosts installed .pc files. But the hosts pkg-config will use them
> >>>by default and i dont see something that would prevent it
> >>
> >
> >>As long as the PKG_CONFIG_PATH is set properly the host system libs
> >>will not be used.
> >
> >who or what would set this path ?
> Everyone using the native pkg-config or installed their libs to a
> prefixed dir.

I dont use the native pkg-config, thus i dont set the path. with
your patch though configure would use the native pkg-config behind my
back and silently fail in cryptic ways

If you want to use the native pkg-config as a fallback then the
code you add should check that PKG_CONFIG_LIBDIR is set. If if its not
set it shouldnt use the native pkg-config

> >i think configure doesnt set nor check it (at least my grep failed
> >to find any indication for it)
> >a seperate pkg-config binary could use a different path ... so it
> >wouldnt need PKG_CONFIG_PATH set ...
> >but if we would use the hosts then it certainly would be bad if the
> >path isnt set.
> No one compiles a pkg-config for a cross toolchain. It has a lot of

maybe not but people do create prefixed pkg-config wrapers that set
the PATHes and run the native pkg-config. This is alot more robust as
well. Consider configure needing to run pkg-config for the host and
the target at different stages. It wont work with 1 tool and 1 prior
to configure set environment variable.

Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

It is what and why we do it that matters, not just one of them.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: Digital signature
URL: <http://ffmpeg.org/pipermail/ffmpeg-devel/attachments/20120703/813cc660/attachment.asc>

More information about the ffmpeg-devel mailing list