[FFmpeg-trac] #459(avcodec:new): YASM Generation error in dsputil_yasm.asm & workaround

FFmpeg trac at avcodec.org
Sun Sep 11 13:52:13 CEST 2011


#459: YASM Generation error in dsputil_yasm.asm & workaround
-------------------------------------+-------------------------------------
             Reporter:  sabouring    |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  avcodec      |                  Version:  git-
             Keywords:  yasm clipd   |  master
  macro                              |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 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.

-- 
Ticket URL: <https://ffmpeg.org/trac/ffmpeg/ticket/459>
FFmpeg <http://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list