[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