diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2017-03-23 00:04:56 +0100 |
---|---|---|
committer | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2017-04-04 11:45:55 +0200 |
commit | d2b73875c3b8a6ec518c1424eaf92c1257fa40aa (patch) | |
tree | cada6306eeb88e435a76daf3886fc671bb4d569b | |
parent | 1d3a136fe592e47d86e2772a426a01188c1972a2 (diff) | |
download | buildroot-d2b73875c3b8a6ec518c1424eaf92c1257fa40aa.tar.gz buildroot-d2b73875c3b8a6ec518c1424eaf92c1257fa40aa.zip |
gst-ffmpeg: work-around bogus configure logic on SPARC
The libav version built into the gst-ffmpeg code produces a bogus
binary on SPARC, which causes the following error of the
check-bin-arch script:
ERROR: architecture for ./usr/lib/gstreamer-0.10/libgstffmpeg.so is Sparc v8+, should be Sparc
ERROR: architecture for ./usr/lib/gstreamer-0.10/libgstpostproc.so is Sparc v8+, should be Sparc
ERROR: architecture for ./usr/lib/gstreamer-0.10/libgstffmpegscale.so is Sparc v8+, should be Sparc
The problem is the following bit of code in
gst-lib/ext/libav/configure:
elif enabled sparc; then
enabled vis && check_asm vis '"pdist %f0, %f0, %f0"' -mcpu=ultrasparc &&
add_cflags -mcpu=ultrasparc -mtune=ultrasparc
I.e, it checks if the architecture supports the pdist
instruction... but forces -mcpu to ultrasparc while doing so. So it's
like "let's see if this Ultrasparc instruction exists when I force the
compiler to think I'm using Ultrasparc", which is non-sensical. This
has been fixed later on in libav upstream:
https://git.libav.org/?p=libav.git;a=commit;h=6aa93689abe8c095cec9fa828c2dee3131008995
However, this commit cannot be backported as-is since the shell
function check_inline_asm did not exist in the old libav version
bundled in gst-ffmpeg.
Therefore, we take the simpler route of disabling the VIS
optimizations on SPARCv8 and Leon3.
Fixes:
http://autobuild.buildroot.net/results/e82d179c3d4f92ad7423693a4b1d42379a3f5411/
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
-rw-r--r-- | package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk b/package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk index 22911cda68..6f41efb0a5 100644 --- a/package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk +++ b/package/gstreamer/gst-ffmpeg/gst-ffmpeg.mk @@ -80,6 +80,12 @@ else GST_FFMPEG_CONF_EXTRA_OPTS += --disable-altivec endif +# libav configure script misdetects the VIS optimizations as being +# available, so forcefully disable them. +ifeq ($(BR2_sparc_v8)$(BR2_sparc_leon3),y) +GST_FFMPEG_CONF_EXTRA_OPTS += --disable-vis +endif + ifeq ($(BR2_STATIC_LIBS),) GST_FFMPEG_CONF_EXTRA_OPTS += --enable-pic endif |