Eli the Bearded
2015-10-23 21:39:18 UTC
I've got an old version of mplayer, which seems to have a bug, so I
wanted to build the latest to see if it has been fixed, but it's not
working in ways that make me suspect build environment issues.
My system is Ubuntu 12.04:
$ gcc --version
gcc-4.6.real (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
$ yasm --version
yasm 1.1.0.2352
Compiled on Jun 10 2011.
Copyright (c) 2001-2010 Peter Johnson and other Yasm developers.
Run yasm --license for licensing overview and summary.
For the record, I tried, with *identical* results, the
MPlayer-1.2.tar.xz package and today's (2015-10-23)
mplayer-checkout-snapshot.tar.bz2. Since I want to check on a bugfix,
I'd prefer to use the snapshot source.
"./configure --prefix=$HOME/lib" works and runs to completion, but the
compile fails on the first file with:
cc -MMD -MP -Wundef -Wall -Wno-switch -Wno-parentheses -Wpointer-arith
-Wredundant-decls -Werror=format-security -Wstrict-prototypes
-Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign
-Wdeclaration-after-statement -std=gnu99
-Werror-implicit-function-declaration -D_POSIX_C_SOURCE=200112
-D_XOPEN_SOURCE=600 -D_ISOC99_SOURCE -I. -Iffmpeg -O4 -march=native
-mtune=native -pipe -ffast-math -fomit-frame-pointer -fno-tree-vectorize
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -fpie
-DPIC -D_REENTRANT -I/usr/include/p11-kit-1
-I/home/username/lib/include -I/usr/include/freetype2 -DZLIB_CONST
-I/home/username/lib/include -c -o command.o command.c
{standard input}: Assembler messages:
{standard input}:3249: Error: no such instruction: `vfmadd312ss 12(%rsp),%xmm1,%xmm0'
make: *** [command.o] Error 1
Checking the usual sources, I find that errors of that format usualy
come from bad options for -march / -mtune. I tried replacing "native"
with the option gcc emits:
$ gcc -march=native -Q --help=target | grep march
-march= corei7-avx
So "-march=corei7-avx -mtune=corei7-avx". That works for a long time,
but then I hit another assembly issue:
YASM libavcodec/x86/hevc_idct.o
libavcodec/x86/hevc_idct.asm:88: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:89: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:89: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
libavcodec/x86/hevc_idct.asm:104: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:104: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
libavcodec/x86/hevc_idct.asm:105: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:105: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
libavcodec/x86/hevc_idct.asm:120: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:120: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
libavcodec/x86/hevc_idct.asm:121: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:121: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
make[1]: *** [libavcodec/x86/hevc_idct.o] Error 1
All of those are from lines similar to:
%if HAVE_AVX2_EXTERNAL
INIT_YMM avx2
IDCT_DC 16, 2, 10
IDCT_DC 32, 8, 10
%endif ;HAVE_AVX2_EXTERNAL
Should I just go ahead and define HAVE_AVX2_EXTERNAL to 0 in
ffmpeg/config.asm ? (/proc/cpuinfo *does* show an "avx2" flag)
Thanks for any tips,
Elijah
wanted to build the latest to see if it has been fixed, but it's not
working in ways that make me suspect build environment issues.
My system is Ubuntu 12.04:
$ gcc --version
gcc-4.6.real (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3
Copyright (C) 2011 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE.
$ yasm --version
yasm 1.1.0.2352
Compiled on Jun 10 2011.
Copyright (c) 2001-2010 Peter Johnson and other Yasm developers.
Run yasm --license for licensing overview and summary.
For the record, I tried, with *identical* results, the
MPlayer-1.2.tar.xz package and today's (2015-10-23)
mplayer-checkout-snapshot.tar.bz2. Since I want to check on a bugfix,
I'd prefer to use the snapshot source.
"./configure --prefix=$HOME/lib" works and runs to completion, but the
compile fails on the first file with:
cc -MMD -MP -Wundef -Wall -Wno-switch -Wno-parentheses -Wpointer-arith
-Wredundant-decls -Werror=format-security -Wstrict-prototypes
-Wmissing-prototypes -Wdisabled-optimization -Wno-pointer-sign
-Wdeclaration-after-statement -std=gnu99
-Werror-implicit-function-declaration -D_POSIX_C_SOURCE=200112
-D_XOPEN_SOURCE=600 -D_ISOC99_SOURCE -I. -Iffmpeg -O4 -march=native
-mtune=native -pipe -ffast-math -fomit-frame-pointer -fno-tree-vectorize
-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -fpie
-DPIC -D_REENTRANT -I/usr/include/p11-kit-1
-I/home/username/lib/include -I/usr/include/freetype2 -DZLIB_CONST
-I/home/username/lib/include -c -o command.o command.c
{standard input}: Assembler messages:
{standard input}:3249: Error: no such instruction: `vfmadd312ss 12(%rsp),%xmm1,%xmm0'
make: *** [command.o] Error 1
Checking the usual sources, I find that errors of that format usualy
come from bad options for -march / -mtune. I tried replacing "native"
with the option gcc emits:
$ gcc -march=native -Q --help=target | grep march
-march= corei7-avx
So "-march=corei7-avx -mtune=corei7-avx". That works for a long time,
but then I hit another assembly issue:
YASM libavcodec/x86/hevc_idct.o
libavcodec/x86/hevc_idct.asm:88: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:89: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:89: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
libavcodec/x86/hevc_idct.asm:104: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:104: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
libavcodec/x86/hevc_idct.asm:105: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:105: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
libavcodec/x86/hevc_idct.asm:120: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:120: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
libavcodec/x86/hevc_idct.asm:121: error: instruction expected after label
libavcodec/x86/hevc_idct.asm:121: error: redefinition of `vpbroadcastw.loop'
libavcodec/x86/hevc_idct.asm:88: error: `vpbroadcastw.loop' previously defined here
make[1]: *** [libavcodec/x86/hevc_idct.o] Error 1
All of those are from lines similar to:
%if HAVE_AVX2_EXTERNAL
INIT_YMM avx2
IDCT_DC 16, 2, 10
IDCT_DC 32, 8, 10
%endif ;HAVE_AVX2_EXTERNAL
Should I just go ahead and define HAVE_AVX2_EXTERNAL to 0 in
ffmpeg/config.asm ? (/proc/cpuinfo *does* show an "avx2" flag)
Thanks for any tips,
Elijah