[FFmpeg-trac] #459(build system:reopened): YASM Generation error in dsputil_yasm.asm & workaround

FFmpeg trac at avcodec.org
Sun Sep 11 17:20:12 CEST 2011


#459: YASM Generation error in dsputil_yasm.asm & workaround
-------------------------------------+-------------------------------------
             Reporter:  sabouring    |                    Owner:
                 Type:  defect       |                   Status:  reopened
             Priority:  normal       |                Component:  build
              Version:  git-master   |  system
             Keywords:  yasm clipd   |               Resolution:
  macro                              |               Blocked By:
             Blocking:               |  Reproduced by developer:  0
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------

Comment (by sabouring):

 Finally! I found that a part the problem is a difference that lies in
 libavcodec/x86/dsputil_yasm.d content.

 The test below works, and the content of dsputil_yasm.d is :

 libavcodec/x86/dsputil_yasm.o: libavcodec/x86/dsputil_yasm.asm config.asm
 \

     ./libavutil/x86/x86inc.asm ./libavutil/x86/x86util.asm

 As you can see, asm files are prefixed by "./"

 The generation fails in my case, and i can see that the content of
 dsputil_yasm.d is :
 libavcodec/x86/dsputil_yasm.o: libavcodec/x86/dsputil_yasm.asm config.asm
 \

     libavcodec/x86/x86inc.asm libavcodec/x86/x86util.asm

 and asm files are NOT prefixed by "./"

 The second case appends when you use a build system like rpm. Also I am
 doing generation under root account. Normally you begin by something like
 : cd /usr/src/package/BUILD ; cd ffmpeg
 and that should be enough to have relative paths from top source
 directory.

 Do you want to reproduce the problem ? Simply put a comment at the include
 in libavcodec/x86/dsputil_yasm.asm (line number 23) :

 ;* %include "x86util.asm"

 gilles at gilles-portable:~/ffmpeg-src> make V=1
 libavcodec/x86/dsputil_yasm.o
 touch .version
 yasm -f elf -m amd64 -g dwarf2 -I. -I./ -I./libavutil/x86/ -Pconfig.asm -I
 libavcodec/x86/ -M -o libavcodec/x86/dsputil_yasm.o
 libavcodec/x86/dsputil_yasm.asm > libavcodec/x86/dsputil_yasm.d
 yasm -f elf -m amd64 -g dwarf2 -I. -I./ -I./libavutil/x86/ -Pconfig.asm -I
 libavcodec/x86/ -o libavcodec/x86/dsputil_yasm.o
 libavcodec/x86/dsputil_yasm.asm
 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] Erreur 1

 This looks like YASM is not able to find libavcodec/x86/dsputil_yasm.asm
 to include an fails. Maybe an explicit path is missing in makefile ?

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


More information about the FFmpeg-trac mailing list