diff options
author | Giulio Benetti <giulio.benetti@micronovasrl.com> | 2018-10-17 14:49:12 +0200 |
---|---|---|
committer | Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> | 2019-01-29 00:16:10 +0100 |
commit | 483db9908985d023b858c0b59d4016f9abb4b6f9 (patch) | |
tree | 9c59846d22eef9e7a3aee6ec0f86e6892dd41cb6 | |
parent | 01aacbf942198f919ce878d257edc6a47e756e45 (diff) | |
download | buildroot-483db9908985d023b858c0b59d4016f9abb4b6f9.tar.gz buildroot-483db9908985d023b858c0b59d4016f9abb4b6f9.zip |
ffmpeg: fix static linking build failure when using libavutil
If a package tries to static link with libavutil it fails due to the
lack of libavutil private dependencies in libavutil.pc (-ldrm in this
case).
Add patch to:
- Check if libdrm is present.
- Add it to Libs.private: in libavutil.pc if present.
Fixes:
http://autobuild.buildroot.net/results/766/766de487f394490df8c712652ac364ebb4a3ab14/
http://autobuild.buildroot.net/results/041/041e29dfddb2da3309ac7d34a576c60c5a75fe4d/
http://autobuild.buildroot.net/results/780/78061b61cfe3f42554a475c048d54dacacfe11d5/
http://autobuild.buildroot.net/results/275/275e4e0030d26c029085b408cfb272d5633969c6/
http://autobuild.buildroot.net/results/515/5152dcca58944cf732d09fba6e6c9af8a9243c75/
http://autobuild.buildroot.net/results/395/395be1a9cab824b82ef34c2ebd84d54243029b33/
Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com>
Signed-off-by: Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>
-rw-r--r-- | package/ffmpeg/0002-configure-add-LIBDRM-to-Libs.private.patch | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/package/ffmpeg/0002-configure-add-LIBDRM-to-Libs.private.patch b/package/ffmpeg/0002-configure-add-LIBDRM-to-Libs.private.patch new file mode 100644 index 0000000000..5493473d0f --- /dev/null +++ b/package/ffmpeg/0002-configure-add-LIBDRM-to-Libs.private.patch @@ -0,0 +1,68 @@ +From e1e11d404eec24c158ae1241d6573c263e57a7b9 Mon Sep 17 00:00:00 2001 +From: Giulio Benetti <giulio.benetti@micronovasrl.com> +Date: Wed, 17 Oct 2018 13:13:10 +0200 +Subject: [PATCH] configure: add LIBDRM to Libs.private + +When static linking programs using ffmpeg libraries, if linking against +libavutil, -ldrm is listed before -lavutil. This leads to linking +failure due to undefined reference of drmGetVersion() and +drmFreeVersion(). +This is why when pkg-config create libavutil.pc doesn't append -ldrm +to Libs.private:. + +- Create LIBDRM=-ldrm in case libdrm is enabled. +- Add privatelibs_avutil variable for explicit private libraries to be + appended to Libs.private: +- Add $LIBDRM to privatelibs_avutil. + +Signed-off-by: Giulio Benetti <giulio.benetti@micronovasrl.com> +--- + configure | 3 ++- + ffbuild/pkgconfig_generate.sh | 3 ++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/configure b/configure +index 7377046d0a..0996d8a85d 100755 +--- a/configure ++++ b/configure +@@ -5919,7 +5919,7 @@ enabled libcelt && require libcelt celt/celt.h celt_decode -lcelt0 && + die "ERROR: libcelt must be installed and version must be >= 0.11.0."; } + enabled libcaca && require_pkg_config libcaca caca caca.h caca_create_canvas + enabled libdc1394 && require_pkg_config libdc1394 libdc1394-2 dc1394/dc1394.h dc1394_new +-enabled libdrm && require_pkg_config libdrm libdrm xf86drm.h drmGetVersion ++enabled libdrm && require_pkg_config libdrm libdrm xf86drm.h drmGetVersion && LIBDRM="-ldrm" + enabled libfdk_aac && { use_pkg_config libfdk_aac fdk-aac "fdk-aac/aacenc_lib.h" aacEncOpen || + { require libfdk_aac fdk-aac/aacenc_lib.h aacEncOpen -lfdk-aac && + warn "using libfdk without pkg-config"; } } +@@ -7097,6 +7097,7 @@ LIBPREF=${LIBPREF} + LIBSUF=${LIBSUF} + + extralibs_avutil="$LIBRT $LIBM" ++privatelibs_avutil="$LIBDRM" + extralibs_avcodec="$extralibs" + extralibs_avformat="$extralibs" + extralibs_avdevice="$extralibs" +diff --git a/ffbuild/pkgconfig_generate.sh b/ffbuild/pkgconfig_generate.sh +index e5de6716d2..b86486a107 100755 +--- a/ffbuild/pkgconfig_generate.sh ++++ b/ffbuild/pkgconfig_generate.sh +@@ -13,6 +13,7 @@ name=lib${shortname} + fullname=${name}${build_suffix} + comment=$2 + libs=$(eval echo \$extralibs_${shortname}) ++privatelibs=$(eval echo \$privatelibs_${shortname}) + deps=$(eval echo \$${shortname}_deps) + + for dep in $deps; do +@@ -39,7 +40,7 @@ Requires: $($shared || echo $requires) + Requires.private: $($shared && echo $requires) + Conflicts: + Libs: -L\${libdir} $rpath -l${fullname#lib} $($shared || echo $libs) +-Libs.private: $($shared && echo $libs) ++Libs.private: $($shared && echo $libs) ${privatelibs} + Cflags: -I\${includedir} + EOF + +-- +2.17.1 + |