[FFmpeg-devel] [PATCH] Add --enable-rpath option to add -Wl, -rpath to pkg-config files.

Timothy Gu timothygu99 at gmail.com
Sun Nov 10 23:11:14 CET 2013


On Nov 10, 2013 12:18 AM, "Reimar Döffinger" <Reimar.Doeffinger at gmx.de>
wrote:
>
> This allows installing into e.g. /usr/lib/ffmpeg and binaries linked
> against ffmpeg will pick these .so file while binaries linked against
> some fork or different version will pick the libraries in /usr/lib.
> There will be still some issues for binaries that (indirectly) end up
> depending on multiple variants, but for the simpler cases it should allow
> different applications to use different (compatible) variants that
> are installed at the same time.
>
> Signed-off-by: Reimar Döffinger <Reimar.Doeffinger at gmx.de>
> ---
>  configure | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 2db047a..f84e8a8 100755
> --- a/configure
> +++ b/configure
> @@ -87,6 +87,8 @@ Standard options:
>    --shlibdir=DIR           install shared libs in DIR [PREFIX/lib]
>    --incdir=DIR             install includes in DIR [PREFIX/include]
>    --mandir=DIR             install man page in DIR [PREFIX/share/man]
> +  --enable-rpath           use rpath to allow installing libraries in
paths
> +                           not part of the dynamic linker search path
>
>  Licensing options:
>    --enable-gpl             allow use of GPL code, the resulting libs
> @@ -1609,6 +1611,7 @@ CMDLINE_SELECT="
>      logging
>      lto
>      optimizations
> +    rpath
>      stripping
>  "
>
> @@ -4458,6 +4461,7 @@ enabled extra_warnings && check_cflags -Winline
>  # add some linker flags
>  check_ldflags -Wl,--warn-common
>  check_ldflags
-Wl,-rpath-link=libpostproc:libswresample:libswscale:libavfilter:libavdevice:libavformat:libavcodec:libavutil:libavresample
> +enabled rpath && add_ldflags -Wl,-rpath=$libdir
>  test_ldflags -Wl,-Bsymbolic && append SHFLAGS -Wl,-Bsymbolic
>
>  enabled xmm_clobber_test &&
> @@ -4976,7 +4980,7 @@ Version: $version
>  Requires: $(enabled shared || echo $requires)
>  Requires.private: $(enabled shared && echo $requires)
>  Conflicts:
> -Libs: -L\${libdir} -l${shortname} $(enabled shared || echo $libs)
> +Libs: -L\${libdir} $(enabled rpath && echo "-Wl,-rpath,\${libdir}")
-l${shortname} $(enabled shared || echo $libs)
>  Libs.private: $(enabled shared && echo $libs)
>  Cflags: -I\${includedir}
>  EOF
> --
> 1.8.4.2

So here is another problem: wouldn't multiple pkg-config files with the
same name conflict?

Timothy


More information about the ffmpeg-devel mailing list