Hi all, I'm trying to reemerge ffmpeg for days now. It just doesn't work. I tried also -r3. This is what it says with -r5: rm -f libavformat.a ar rc libavformat.a utils.o cutils.o os_support.o allformats.o mpeg.o mpegts.o mpegtsenc.o ffm.o crc.o img.o img2.o raw.o rm.o avienc.o avidec.o wav.o swf.o au.o gif.o mov.o mpjpeg.o dv.o yuv4mpeg.o 4xm.o flvenc.o flvdec.o movenc.o psxstr.o idroq.o ipmovie.o nut.o wc3movie.o mp3.o westwood.o segafilm.o idcin.o flic.o sierravmd.o matroska.o sol.o electronicarts.o nsvdec.o asf.o asf-enc.o pnm.o yuv.o png.o jpeg.o gifdec.o sgi.o avio.o aviobuf.o file.o framehook.o i686-pc-linux-gnu-gcc -shared -o libavformat.so utils.o cutils.o os_support.o allformats.o mpeg.o mpegts.o mpegtsenc.o ffm.o crc.o img.o img2.o raw.o rm.o avienc.o avidec.o wav.o swf.o au.o gif.o mov.o mpjpeg.o dv.o yuv4mpeg.o 4xm.o flvenc.o flvdec.o movenc.o psxstr.o idroq.o ipmovie.o nut.o wc3movie.o mp3.o westwood.o segafilm.o idcin.o flic.o sierravmd.o matroska.o sol.o electronicarts.o nsvdec.o asf.o asf-enc.o pnm.o yuv.o png.o jpeg.o gifdec.o sgi.o avio.o aviobuf.o file.o framehook.o -lm -lz -lpthread -ldl -lavcodec -L../libavcodec ranlib libavformat.a make[1]: Leaving directory `/var/tmp/portage/ffmpeg-0.4.9_p20050226-r5/work/ffmpeg-0.4.9-p20050226-shared/libavformat' i686-pc-linux-gnu-gcc -Wl,--warn-common -rdynamic -g -o ffmpeg_g ffmpeg.o cmdutils.o -L./libavformat -lavformat -L./libavcodec -lavcodec -lm -lz -lpthread -ldl -lxvidcore i686-pc-linux-gnu-gcc -Wl,--warn-common -rdynamic -g -o output_example output_example.o -L./libavformat -lavformat -L./libavcodec -lavcodec -lm -lz -lpthread -ldl -lxvidcore /usr/lib/libpostproc.so.0: undefined reference to `fast_memcpy' collect2: ld returned 1 exit status make: *** [ffmpeg_g] Error 1 make: *** Waiting for unfinished jobs.... /usr/lib/libpostproc.so.0: undefined reference to `fast_memcpy' collect2: ld returned 1 exit status make: *** [output_example] Error 1 This happens with -r3: i686-pc-linux-gnu-gcc -O3 -Wall -Wno-switch -O2 -march=athlon-xp -pipe -fomit-frame-pointer -fPIC -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o xvidff.o xvidff.c i686-pc-linux-gnu-gcc -O3 -Wall -Wno-switch -O2 -march=athlon-xp -pipe -fomit-frame-pointer -fPIC -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o oggvorbis.o oggvorbis.c oggvorbis.c: In function `oggvorbis_decode_frame': oggvorbis.c:246: warning: unused variable `i' i686-pc-linux-gnu-gcc -O3 -Wall -Wno-switch -O2 -march=athlon-xp -pipe -fomit-frame-pointer -fPIC -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/fdct_mmx.o i386/fdct_mmx.c i686-pc-linux-gnu-gcc -O3 -Wall -Wno-switch -O2 -march=athlon-xp -pipe -fomit-frame-pointer -fPIC -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/cputest.o i386/cputest.c i686-pc-linux-gnu-gcc -O3 -Wall -Wno-switch -O2 -march=athlon-xp -pipe -fomit-frame-pointer -fPIC -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o i386/dsputil_mmx.o i386/dsputil_mmx.c In file included from i386/dsputil_mmx.c:165: i386/dsputil_mmx_avg.h: In function `put_pixels4_l2_3dnow': i386/dsputil_mmx_avg.h:58: error: can't find a register in class `BREG' while reloading `asm' i386/dsputil_mmx.c: In function `dsputil_init_mmx': i386/dsputil_mmx.c:3076: warning: assignment from incompatible pointer type i386/dsputil_mmx.c:3077: warning: assignment from incompatible pointer type i386/dsputil_mmx.c: At top level: i386/dsputil_mmx_rnd.h:59: warning: `put_no_rnd_pixels8_l2_mmx' defined but not used i386/dsputil_mmx_rnd.h:155: warning: `put_no_rnd_pixels16_l2_mmx' defined but not used i386/dsputil_mmx_rnd.h:300: warning: `avg_no_rnd_pixels4_mmx' defined but not used i386/dsputil_mmx_rnd.h:59: warning: `put_pixels8_l2_mmx' defined but not used i386/dsputil_mmx_rnd.h:155: warning: `put_pixels16_l2_mmx' defined but not used make[1]: *** [i386/dsputil_mmx.o] Error 1 make[1]: Leaving directory `/var/tmp/portage/ffmpeg-0.4.9_p20050226-r3/work/ffmpeg-0.4.9-p20050226-shared/libavcodec' make: *** [lib] Error 2 Cheers Sebastian Reproducible: Always Steps to Reproduce: 1. 2. 3. emerge info Portage 2.0.51.19 (default-linux/x86/2005.0, gcc-3.3.5-20050130, glibc-2.3.4.20041102-r1, 2.6.12-rc3 i686) ================================================================= System uname: 2.6.12-rc3 i686 AMD Athlon(tm) XP 1700+ Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.5 [2.3.5 (#1, May 5 2005, 13:34:23)] ccache version 2.3 [enabled] dev-lang/python: 2.3.5 sys-apps/sandbox: [Not Present] sys-devel/autoconf: 2.59-r6, 2.13 sys-devel/automake: 1.6.3, 1.9.5, 1.7.9-r1, 1.4_p6, 1.5, 1.8.5-r3 sys-devel/binutils: 2.15.92.0.2-r7 sys-devel/libtool: 1.5.16 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=athlon-xp -pipe -fomit-frame-pointer" DISTDIR="/data/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms strict" GENTOO_MIRRORS="ftp://sunsite.rwth-aachen.de/pub/Linux/gentoo" LINGUAS="de" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.informatik.rwth-aachen.de/gentoo-portage" USE="3dnow 3dnowext X alsa crypt cups dvb dvd foomaticdb gnome gtk gtk2 ithreads jpeg mad mmap mmx mmxext ncurses nls no_wxgtk1 oggvorbis png ppds readline rtc spell sse ssl threads truetype truetype-fonts userlocales x86 xv xvid zlib linguas_de userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
-r5 should be fixed now, emerge sync and try again. *** This bug has been marked as a duplicate of 90916 ***
a bug about cflags and mmx assembly is different from a link issue.
I can't reproduce the issue locally
I
I´m going to try here... the problem is that there are two bugs mixed together here.
I found the issue, and this is really weired. The error said "/usr/lib/libpostproc.so.0: undefined reference to `fast_memcpy'". After reading this error three times it came to me that is means that there's something it doesn't like about /usr/lib/libpostproc.so.0 and that it doesn't complaing about /var/tmp/portage/path-to-ffmpeg/usr/lib/libpostproc.so.0. So I removed /usr/lib/libpostproc.so.0 and afterwards -r5 compiled fine. But why the heck is it looking at its predecessor anyway? qpkg -f /usr/lib/libpostproc.so.0 media-video/ffmpeg * Maybe removing this "check" would be a good idea? Please close if you feel it's the thing to do. Cheers Sebastian
The mmx issue I had with r3 is gone in r5. Oh, and the libpostproc.so.0 is really only a link to libpostproc.so.0.0.1. That one was overwritten during the succesful emerge. Maybe it would have been able to yield a bit more useful info. Sorry. Cheers Sebastian
-r5 builds fine here, so maybe just the upgrade from some old version does not work.
Hi Jakub, did you read what I wrote in the two postings above? ;-) Cheers Sebastian
Anyway, I find it a little off that ffmpeg checks a previous version of libpostproc that it is supposed to overwrite. But thanks to you for fixing the mmx issue, Jakub! Cheers Sebastian
I'll try to find what's wrong there, thanks for the input
Hi! It happened on my box because I had installed mplayer cvs. Allthough emerging a regular mplayer (1.0_pre6-r4) apparently doesn't install /usr/lib/libpostproc.so.0 and /usr/lib/libpostproc.so.0.0.1, installing a cvs mplayer with --enable-shared-pp does. Possibly the cvs version of libpostproc inherits things the older version that comes with ffmpeg doesn't know about, like the reference to `fast_memcpy'. Just a hunch :) Sebastian
I guess I could mark it worksforme since I can't reproduce it locally
True, but on the other hand maybe devs should remove the shared-pp stuff from mplayer ebuilds. 1. It evidently doesn't work anyway. libpostproc doesn't get installed by the mplayer ebuilds. 2. If someone wanted libpostproc he should install ffmpeg anyway. That way no version conflicts will arise with the rest of the ffmpeg stuff. Cheers Sebastian
Created attachment 58458 [details, diff] patch to remove faulty shared-pp behaviour from mplayer 1.0_pre7
I'm gonna close this. Works for gentoo I think.