[FFmpeg-devel] YASM Generation error in dsputil_yasm.asm and workaround
Gilles Sabourin
gilles.sabourin at free.fr
Sun Sep 11 10:41:54 CEST 2011
Hi,
Since August, 16th, i have problem to generate "libavcodec/x86/dsputil_yasm.asm". It gives the following errors :
YASM libavcodec/x86/dsputil_yasm.o
libavcodec/x86/dsputil_yasm.asm:1122: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1122: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1122: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1122: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1122: error: undefined symbol `CLIPD_MMX.loop' (first use)
libavcodec/x86/dsputil_yasm.asm:1122: error: (Each undefined symbol is reported only once.)
libavcodec/x86/dsputil_yasm.asm:1125: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1125: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1125: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1125: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1127: error: undefined symbol `CLIPD_SSE2.loop' (first use)
libavcodec/x86/dsputil_yasm.asm:1130: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1130: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1130: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1130: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1130: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1130: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1130: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1130: error: instruction expected after label
libavcodec/x86/dsputil_yasm.asm:1130: error: undefined symbol `CLIPD_SSE41.loop' (first use)
make: *** [libavcodec/x86/dsputil_yasm.o] Error 1
I am currently using openSUSE, and YASM version is :
# yasm --version
yasm 1.1.0.2352
Finally I found that the problem was commit 38e06c2, where clipd macros have moved from libavcodec/x86/dsputil_yasm.asm to libavutil/x86/x86util.asm :
commit 38e06c2969184b5b55ec41d0c053b2480ab52846
Author: Ronald S. Bultje <rsbultje at gmail.com>
Date: Tue Aug 16 21:23:53 2011 -0700
Move clipd macros to x86util.asm.
This allows sharing them between multiple .asm files.
libavcodec/x86/dsputil_yasm.asm | 34 +---------------------------------
libavutil/x86/x86util.asm | 33 +++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 33 deletions(-)
Having a look at the code, i can't see anything wrong; macro have moved, but an include has been properly added in dsputil_yasm.asm.
However, i am not a YASM expert but i guess this is a YASM bug.
Up to now i have simply reverted 38e06c2, since noone seemed to use this common part elsewhere in the code.
Greetings,
Gilles
More information about the ffmpeg-devel
mailing list