Steps to reproduce: 1.-emerge xine-lib Actual Results: gcc -DHAVE_CONFIG_H -I. -I. -I../.. -I../.. -I../../include -I../../include -I../../src -I../../src/xine-engine -I../../src/xine-engine -I../../src/xine-utils -I../../src/input -I../../src/input -Wa,-m7400 -O3 -pipe -fomit-frame-pointer -fexpensive-optimizations -fschedule-insns2 -fno-strict-aliasing -ffast-math -funroll-loops -funroll-all-loops -finline-functions -Wall -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -DXINE_COMPILE -Wpointer-arith -Wnested-externs -Wcast-align -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -DENABLE_IPV6 -O2 -pipe -mcpu=7450 -mtune=7450 -c idct_altivec.c -MT idct_altivec.lo -MD -MP -MF .deps/idct_altivec.TPlo -fPIC -DPIC -o .libs/idct_altivec.o idct_altivec.c:629: error: syntax error before "signed" idct_altivec.c:630: error: `vector' undeclared here (not in a function) idct_altivec.c:630: error: syntax error before "signed" idct_altivec.c:630: error: initializer element is not constant idct_altivec.c:630: error: (near initialization for `constants[0]') idct_altivec.c:631: error: `vector' undeclared here (not in a function) idct_altivec.c:631: error: syntax error before "signed" idct_altivec.c:631: error: initializer element is not constant idct_altivec.c:631: error: (near initialization for `constants[1]') idct_altivec.c:632: error: `vector' undeclared here (not in a function) idct_altivec.c:632: error: syntax error before "signed" idct_altivec.c:632: error: initializer element is not constant idct_altivec.c:632: error: (near initialization for `constants[2]') idct_altivec.c:633: error: `vector' undeclared here (not in a function) idct_altivec.c:633: error: syntax error before "signed" idct_altivec.c:633: error: initializer element is not constant idct_altivec.c:633: error: (near initialization for `constants[3]') idct_altivec.c:634: error: `vector' undeclared here (not in a function) idct_altivec.c:634: error: syntax error before "signed" idct_altivec.c:635: error: initializer element is not constant idct_altivec.c:635: error: (near initialization for `constants[4]') idct_altivec.c:637: error: syntax error before "signed" idct_altivec.c:639: warning: no previous prototype for `mpeg2_idct_copy_altivec' idct_altivec.c: In function `mpeg2_idct_copy_altivec': idct_altivec.c:640: error: `vector' undeclared (first use in this function) idct_altivec.c:640: error: (Each undeclared identifier is reported only once idct_altivec.c:640: error: for each function it appears in.) idct_altivec.c:640: error: syntax error before "unsigned" idct_altivec.c:642: error: `c4' undeclared (first use in this function) idct_altivec.c:642: warning: implicit declaration of function `vec_splat' idct_altivec.c:642: error: `a0' undeclared (first use in this function) idct_altivec.c:642: error: `a1' undeclared (first use in this function) idct_altivec.c:642: error: `a2' undeclared (first use in this function) idct_altivec.c:642: error: `mc4' undeclared (first use in this function) idct_altivec.c:642: error: `ma2' undeclared (first use in this function) idct_altivec.c:642: error: `bias' undeclared (first use in this function) idct_altivec.c:642: error: syntax error before "signed" idct_altivec.c:642: error: `zero' undeclared (first use in this function) idct_altivec.c:642: warning: implicit declaration of function `vec_splat_s16' idct_altivec.c:642: error: `shift' undeclared (first use in this function) idct_altivec.c:642: warning: implicit declaration of function `vec_splat_u16' idct_altivec.c:642: error: `vx0' undeclared (first use in this function) idct_altivec.c:642: warning: implicit declaration of function `vec_mradds' idct_altivec.c:642: warning: implicit declaration of function `vec_sl' idct_altivec.c:642: error: `block' undeclared (first use in this function) idct_altivec.c:642: error: `vx1' undeclared (first use in this function) idct_altivec.c:642: error: `vx2' undeclared (first use in this function) idct_altivec.c:642: error: `vx3' undeclared (first use in this function) idct_altivec.c:642: error: `vx4' undeclared (first use in this function) idct_altivec.c:642: error: `vx5' undeclared (first use in this function) idct_altivec.c:642: error: `vx6' undeclared (first use in this function) idct_altivec.c:642: error: `vx7' undeclared (first use in this function) idct_altivec.c:642: error: `t1' undeclared (first use in this function) idct_altivec.c:642: error: `t8' undeclared (first use in this function) idct_altivec.c:642: warning: implicit declaration of function `vec_subs' idct_altivec.c:642: error: `t7' undeclared (first use in this function) idct_altivec.c:642: error: `t3' undeclared (first use in this function) idct_altivec.c:642: error: `t5' undeclared (first use in this function) idct_altivec.c:642: warning: implicit declaration of function `vec_adds' idct_altivec.c:642: error: `t0' undeclared (first use in this function) idct_altivec.c:642: error: `t2' undeclared (first use in this function) idct_altivec.c:642: error: `t4' undeclared (first use in this function) idct_altivec.c:642: error: `t6' undeclared (first use in this function) idct_altivec.c:642: error: `vy0' undeclared (first use in this function) idct_altivec.c:642: error: `vy7' undeclared (first use in this function) idct_altivec.c:642: error: `vy1' undeclared (first use in this function) idct_altivec.c:642: error: `vy6' undeclared (first use in this function) idct_altivec.c:642: error: `vy2' undeclared (first use in this function) idct_altivec.c:642: error: `vy5' undeclared (first use in this function) idct_altivec.c:642: error: `vy3' undeclared (first use in this function) idct_altivec.c:642: error: `vy4' undeclared (first use in this function) idct_altivec.c:642: warning: implicit declaration of function `vec_mergeh' idct_altivec.c:642: warning: implicit declaration of function `vec_mergel' idct_altivec.c:642: warning: implicit declaration of function `vec_sra' idct_altivec.c:649: error: `tmp' undeclared (first use in this function) idct_altivec.c:649: warning: implicit declaration of function `vec_packsu' idct_altivec.c:649: warning: implicit declaration of function `vec_ste' idct_altivec.c:649: error: syntax error before "unsigned" idct_altivec.c:649: error: syntax error before "unsigned" idct_altivec.c:649: error: `dest' undeclared (first use in this function) idct_altivec.c:649: error: `stride' undeclared (first use in this function) idct_altivec.c:650: error: syntax error before "unsigned" idct_altivec.c:650: error: syntax error before "unsigned" idct_altivec.c:651: error: syntax error before "unsigned" idct_altivec.c:651: error: syntax error before "unsigned" idct_altivec.c:652: error: syntax error before "unsigned" idct_altivec.c:652: error: syntax error before "unsigned" idct_altivec.c:653: error: syntax error before "unsigned" idct_altivec.c:653: error: syntax error before "unsigned" idct_altivec.c:654: error: syntax error before "unsigned" idct_altivec.c:654: error: syntax error before "unsigned" idct_altivec.c:655: error: syntax error before "unsigned" idct_altivec.c:655: error: syntax error before "unsigned" idct_altivec.c:656: error: syntax error before "unsigned" idct_altivec.c:656: error: syntax error before "unsigned" idct_altivec.c:657: warning: implicit declaration of function `memset' idct_altivec.c: At top level: idct_altivec.c:660: error: syntax error before "signed" idct_altivec.c:662: warning: no previous prototype for `mpeg2_idct_add_altivec' idct_altivec.c: In function `mpeg2_idct_add_altivec': idct_altivec.c:663: error: `vector' undeclared (first use in this function) idct_altivec.c:663: error: syntax error before "unsigned" idct_altivec.c:669: error: `c4' undeclared (first use in this function) idct_altivec.c:669: error: `a0' undeclared (first use in this function) idct_altivec.c:669: error: `a1' undeclared (first use in this function) idct_altivec.c:669: error: `a2' undeclared (first use in this function) idct_altivec.c:669: error: `mc4' undeclared (first use in this function) idct_altivec.c:669: error: `ma2' undeclared (first use in this function) idct_altivec.c:669: error: `bias' undeclared (first use in this function) idct_altivec.c:669: error: syntax error before "signed" idct_altivec.c:669: error: `zero' undeclared (first use in this function) idct_altivec.c:669: error: `shift' undeclared (first use in this function) idct_altivec.c:669: error: `vx0' undeclared (first use in this function) idct_altivec.c:669: error: `block' undeclared (first use in this function) idct_altivec.c:669: error: `vx1' undeclared (first use in this function) idct_altivec.c:669: error: `vx2' undeclared (first use in this function) idct_altivec.c:669: error: `vx3' undeclared (first use in this function) idct_altivec.c:669: error: `vx4' undeclared (first use in this function) idct_altivec.c:669: error: `vx5' undeclared (first use in this function) idct_altivec.c:669: error: `vx6' undeclared (first use in this function) idct_altivec.c:669: error: `vx7' undeclared (first use in this function) idct_altivec.c:669: error: `t1' undeclared (first use in this function) idct_altivec.c:669: error: `t8' undeclared (first use in this function) idct_altivec.c:669: error: `t7' undeclared (first use in this function) idct_altivec.c:669: error: `t3' undeclared (first use in this function) idct_altivec.c:669: error: `t5' undeclared (first use in this function) idct_altivec.c:669: error: `t0' undeclared (first use in this function) idct_altivec.c:669: error: `t2' undeclared (first use in this function) idct_altivec.c:669: error: `t4' undeclared (first use in this function) idct_altivec.c:669: error: `t6' undeclared (first use in this function) idct_altivec.c:669: error: `vy0' undeclared (first use in this function) idct_altivec.c:669: error: `vy7' undeclared (first use in this function) idct_altivec.c:669: error: `vy1' undeclared (first use in this function) idct_altivec.c:669: error: `vy6' undeclared (first use in this function) idct_altivec.c:669: error: `vy2' undeclared (first use in this function) idct_altivec.c:669: error: `vy5' undeclared (first use in this function) idct_altivec.c:669: error: `vy3' undeclared (first use in this function) idct_altivec.c:669: error: `vy4' undeclared (first use in this function) idct_altivec.c:671: error: `p0' undeclared (first use in this function) idct_altivec.c:671: warning: implicit declaration of function `vec_lvsl' idct_altivec.c:671: error: `dest' undeclared (first use in this function) idct_altivec.c:672: error: `p1' undeclared (first use in this function) idct_altivec.c:672: error: `stride' undeclared (first use in this function) idct_altivec.c:673: error: `p' undeclared (first use in this function) idct_altivec.c:673: warning: implicit declaration of function `vec_splat_u8' idct_altivec.c:674: error: `perm0' undeclared (first use in this function) idct_altivec.c:675: error: `perm1' undeclared (first use in this function) idct_altivec.c:686: error: `tmp' undeclared (first use in this function) idct_altivec.c:686: warning: implicit declaration of function `vec_ld' idct_altivec.c:686: error: `tmp2' undeclared (first use in this function) idct_altivec.c:686: error: syntax error before "signed" idct_altivec.c:686: error: `tmp3' undeclared (first use in this function) idct_altivec.c:686: error: syntax error before "unsigned" idct_altivec.c:686: error: syntax error before "unsigned" idct_altivec.c:687: error: syntax error before "signed" idct_altivec.c:687: error: syntax error before "unsigned" idct_altivec.c:687: error: syntax error before "unsigned" idct_altivec.c:688: error: syntax error before "signed" idct_altivec.c:688: error: syntax error before "unsigned" idct_altivec.c:688: error: syntax error before "unsigned" idct_altivec.c:689: error: syntax error before "signed" idct_altivec.c:689: error: syntax error before "unsigned" idct_altivec.c:689: error: syntax error before "unsigned" idct_altivec.c:690: error: syntax error before "signed" idct_altivec.c:690: error: syntax error before "unsigned" idct_altivec.c:690: error: syntax error before "unsigned" idct_altivec.c:691: error: syntax error before "signed" idct_altivec.c:691: error: syntax error before "unsigned" idct_altivec.c:691: error: syntax error before "unsigned" idct_altivec.c:692: error: syntax error before "signed" idct_altivec.c:692: error: syntax error before "unsigned" idct_altivec.c:692: error: syntax error before "unsigned" idct_altivec.c:693: error: syntax error before "signed" idct_altivec.c:693: error: syntax error before "unsigned" idct_altivec.c:693: error: syntax error before "unsigned" make[3]: *** [idct_altivec.lo] Error 1 make[3]: Leaving directory `/var/tmp/portage/xine-lib-1_rc3-r2/work/xine-lib-1-rc3b/src/libmpeg2' make[2]: *** [all-recursive] Error 1 make[2]: Leaving directory `/var/tmp/portage/xine-lib-1_rc3-r2/work/xine-lib-1-rc3b/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/var/tmp/portage/xine-lib-1_rc3-r2/work/xine-lib-1-rc3b' make: *** [all] Error 2 !!! ERROR: media-libs/xine-lib-1_rc3-r2 failed. !!! Function src_compile, Line 105, Exitcode 2 !!! Parallel make failed Expected Results: >>> Regenerating /etc/ld.so.cache... * Caching service dependencies... >>> media-libs/xine-lib-1_rc3-r2 merged. emerge info output: americana root # emerge info Portage 2.0.50-r2 (default-ppc-2004.0, gcc-3.3.3, glibc-2.3.3_pre20040207-r0, 2.6.3-benh2) ================================================================= System uname: 2.6.3-benh2 ppc 7455, altivec supported Gentoo Base System version 1.4.3.13p1 ccache version 2.3 [enabled] Autoconf: sys-devel/autoconf-2.59-r3 Automake: sys-devel/automake-1.8.2 ACCEPT_KEYWORDS="ppc ~ppc" AUTOCLEAN="yes" CFLAGS="-O2 -pipe -mcpu=7450 -maltivec -mabi=altivec -mtune=7450" CHOST="powerpc-unknown-linux-gnu" COMPILER="gcc3" CONFIG_PROTECT="/etc /usr/X11R6/lib/X11/xkb /usr/kde/2/share/config /usr/kde/3.2/share/config /usr/kde/3/share/config /usr/share/config /usr/share/texmf/dvipdfm/config/ /usr/share/texmf/dvips/config/ /usr/share/texmf/tex/generic/config/ /usr/share/texmf/tex/platex/config/ /usr/share/texmf/xdvi/ /var/lib/pbbuttonsd /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -pipe -mcpu=7450 -maltivec -mabi=altivec -mtune=7450" DISTDIR="/usr/portage/distfiles" FEATURES="ccache fixpackages" GENTOO_MIRRORS="http://ftp.caliu.info/pub/gentoo http://gentoo.oregonstate.edu http://www.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://192.168.232.1/portage" USE="X aalib alsa altivec arts berkdb cdr crypt cscope cups dga dvd encode fbcon flash foomaticdb gd gdbm gif gphoto2 gpm gtk gtk2 imagemagick imap imlib innodb ipv6 java javascript joystick jpeg kde lame lcms libwww mad maildir mitshm motif mpeg ncurses net nls oggvorbis opengl oss pam perl png ppc python qt qtmt radeon readline ruby samba sdl slang socks5 spell ssl tcpd tetex tiff truetype usb vim-with-x xml xml2 xv xvid zlib linguas_es" Observations: The error said: !!! Parallel make failed So, perhaps MAKEOPTS=-j1 emerge xine-lib do the trick, but i can't test it ATM.
*** Bug 46272 has been marked as a duplicate of this bug. ***
MAKEOPTS=-j1 emerge xine-lib does not do the trick I tried it : MAKEOPTS=-j1 emerge xine-lib something wrong with it ? and I got the some error again dct_altivec.c:692: error: syntax error before "signed" idct_altivec.c:692: error: syntax error before "unsigned" idct_altivec.c:692: error: syntax error before "unsigned" idct_altivec.c:693: error: syntax error before "signed" idct_altivec.c:693: error: syntax error before "unsigned" idct_altivec.c:693: error: syntax error before "unsigned" make[3]: *** [idct_altivec.lo] Fehler 1 make[3]: Leaving directory `/var/tmp/portage/xine-lib-1_rc3-r2/work/xine-lib-1-rc3b/src/libmpeg2' make[2]: *** [all-recursive] Fehler 1 make[2]: Leaving directory `/var/tmp/portage/xine-lib-1_rc3-r2/work/xine-lib-1-rc3b/src' make[1]: *** [all-recursive] Fehler 1 make[1]: Leaving directory `/var/tmp/portage/xine-lib-1_rc3-r2/work/xine-lib-1-rc3b' make: *** [all] Fehler 2 !!! ERROR: media-libs/xine-lib-1_rc3-r2 failed. !!! Function src_compile, Line 105, Exitcode 2 !!! Parallel make failed and i saw at the ebuild file : .... econf \ `use_enable X x11` \ `use_enable esd` \ `use_enable nls` \ `use_enable alsa` \ `use_enable arts` \ `use_enable aalib` \ `use_enable oggvorbis ogg` `use_enable oggvorbis vorbis` \ `use_enable sdl sdltest` \ `use_enable ipv6` \ `use_enable directfb` \ ${myconf} || die "Configure failed" emake -j1 || die "Parallel make failed" ... so i guess, its just running "once". the next try, just running now, is I delete the altivec things in the ebuild, because, if i remember right, xine will do it by itself to determine what is avaible or not. krgds, Frank
does rc3-r3 or rc4 work for you ?
No, rc4 fails in the same place. rc3 fails as well. By the way, am I the only experiencing this issue?
After some testing, i realized that the problem was caused by -mcpu=7450. The best soution would be provide a patch for the xine-lib sources, but I can't do it. A temporal solution maybe a patch (I provide it) for the ebuild for replacing -mcpu=7450 for -mtune=7450, which works well.
Created attachment 30754 [details, diff] fix-mtune7450-cflags.diff
from man gcc: -mtune=cpu_type Set the instruction scheduling parameters for machine type cpu_type, but do not set the instruction set or register set that the option -mcpu=cpu_type would. The same values for -mcpu=cpu_type can be used for -mtune=cpu_type, but the only useful values are those that select a par- ticular cpu implementation. Those are cypress, supersparc, hypersparc, f930, f934, sparclite86x, tsc701, ultrasparc, and ultrasparc3. So the flag mcpu can be directly deleted, mtune won't optimize code.
The real solution is fix the libmpeg2 implementation xine people uses, that was reported long time ago and I think at least twice. Dario: Read better the gcc man you are reporting the sparc section not the ppc one. That is the correct one: -mtune=cpu_type Set the instruction scheduling parameters for machine type cpu_type, but do not set the architecture type, register usage, or choice of mnemonics, as -mcpu=cpu_type would. The same values for cpu_type are used for -mtune as for -mcpu. If both are specified, the code generated will use the archi- tecture, registers, and mnemonics set by -mcpu, but the scheduling parameters set by -mtune.
*** Bug 51927 has been marked as a duplicate of this bug. ***
It's a bug in the configure.ac-file of xine-lib. And additionally, a small bug in src/libmpeg2/*_altivec.c. I am working on a patch.
Look also at bug 54913.
This bug also occurs for xine-lib-1-rc5/src/libmpeg2/idct_altivec.c. The change between rc4a and rc5 causing this is: diff xine-lib-1-rc4a/src/libmpeg2/idct_altivec.c xine-lib-1-rc5/src/libmpeg2/idct_altivec.c 28c28 < #ifdef ARCH_PPC --- > #if defined (ARCH_PPC) && defined (ENABLE_ALTIVEC)
Jonathan: Fix for rc5-r2 is in the CVS and will show up on the mirrors in a few hours. Otherwise look at Bug 55460.