Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 55202 - xine-lib-1_rc5 failes to compile
Summary: xine-lib-1_rc5 failes to compile
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Media-video project
URL:
Whiteboard:
Keywords:
: 52380 (view as bug list)
Depends on:
Blocks:
 
Reported: 2004-06-25 17:45 UTC by Kathy Wills
Modified: 2004-07-06 12:31 UTC (History)
6 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
linux-headers-2.6.7-appCompat.patch.diff (linux-headers-2.6.7-appCompat.patch.diff,1.21 KB, patch)
2004-06-30 09:56 UTC, Tuan Van (RETIRED)
Details | Diff
edited xine-lib-1_rc5-r2.ebuild (xine-lib-1_rc5-r2.ebuild,5.03 KB, text/plain)
2004-06-30 20:41 UTC, Chris Smith
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Kathy Wills 2004-06-25 17:45:33 UTC
Emerge of xine-lib failed at dxr3_decode_video.c:189

Reproducible: Always
Steps to Reproduce:
1.emerge xine-lib
2.
3.

Actual Results:  
dxr3_decode_video.c: In function `dxr3_open_plugin':
dxr3_decode_video.c:147: sorry, unimplemented: inlining failed in call to
'dxr3_present': function body not available
dxr3_decode_video.c:189: sorry, unimplemented: called from here
make[3]: *** [dxr3_decode_video.lo] Error 1
make[3]: Leaving directory
`/var/tmp/portage/xine-lib-1_rc5/work/xine-lib-1-rc5/src/dxr3'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5/work/xine-lib-1-rc5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory
`/var/tmp/portage/xine-lib-1_rc5/work/xine-lib-1-rc5'make: *** [all] Error 2

!!! ERROR: media-libs/xine-lib-1_rc5 failed.
!!! Function src_compile, Line 128, Exitcode 2
!!! Parallel make failed

Expected Results:  
Expected it to emerge.

Portage 2.0.50-r8 (default-x86-1.4, gcc-3.4.0, glibc-2.3.4.20040605-r1,
2.6.7-rc3-love2)
=================================================================
System uname: 2.6.7-rc3-love2 i686 Pentium III (Coppermine)
Gentoo Base System version 1.4.16
Autoconf: sys-devel/autoconf-2.59-r4
Automake: sys-devel/automake-1.8.5-r1
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CFLAGS="-march=pentium3 -mtune=i686 -O2 -funroll-loops -pipe -fno-unit-at-a-time"
CHOST="i686-pc-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/lib/mozilla/defaults/pref
/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/bind
/var/qmail/control"
CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d"
CXXFLAGS="-march=pentium3 -mtune=i686 -O2 -funroll-loops -pipe -fno-unit-at-a-time"
DISTDIR="/usr/portage/distfiles"
FEATURES="autoaddcvs ccache sandbox"
GENTOO_MIRRORS="ftp://ftp.ucsb.edu/pub/mirrors/linux/gentoo/
http://mirror.clarkson.edu/pub/distributions/gentoo/"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/local/bmg-main
/usr/local/bmg-gnome-current"
SYNC="rsync://rsync.us.gentoo.org/gentoo-portage"
USE="X alsa apm avi berkdb cdr crypt cups doc encode esd foomaticdb gdbm gif
gimp gimp-print gnome gtk gtk2 imlib java jpeg libg++ libwww mad mikmod motif
mozilla mpeg ncurses nls nptl oggvorbis opengl oss pam pdflib perl png python
quicktime readline samba sdl slang spell ssl svga tcltk tcpd tetex truetype x86
xml2 xmms xv zlib"
Comment 1 Tuan Van (RETIRED) gentoo-dev 2004-06-27 08:33:34 UTC
drop the "-fno-unit-at-a-time" from your CFLAGS and try again.
Comment 2 Kathy Wills 2004-06-27 20:11:50 UTC
Thanks it worked. That means don't use it for xine-lib but have to use it in order for transcode to compile would sure be nice if they would all accept the same CFlAGS.
Comment 3 Martin Holzer (RETIRED) gentoo-dev 2004-06-28 04:06:12 UTC
now filtering this flag in xine-lib-1_rc5-r1
Comment 4 SpanKY gentoo-dev 2004-06-29 12:31:07 UTC
*** Bug 52380 has been marked as a duplicate of this bug. ***
Comment 5 Kathy Wills 2004-06-30 05:10:43 UTC
Removing "-fno-unit-at-a-time" from the CFLAGS does not work with xine-lib-1_rc5-r2 it still fails with the same error. So the problem has not been fixed.
Comment 6 Chris Smith 2004-06-30 08:05:06 UTC
Want to add that I'm seeing this same problem with xine-lib-1_rc5-r2. However xine-lib-1_rc5-r1 two days ago compiled just fine.
Comment 7 Tuan Van (RETIRED) gentoo-dev 2004-06-30 08:13:13 UTC
Kathy and Chris, please post the header of the failed ebuild.
Comment 8 Chris Smith 2004-06-30 08:19:31 UTC
Requested header of failed ebuild:# $Header: /var/cvsroot/gentoo-x86/media-libs/xine-lib/xine-lib-1_rc5-r2.ebuild,v 1.8 2004/06/30 01:20:22 vapier Exp $

Also speaking of headers, I notice that there's a kernel headers patch being applied and in case it matters at all my linux-headers were at 2.6.7 when xine-lib-1_rc5-r1 was compiled but has since been upgraded to 2.6.7-r1.
Comment 9 Tuan Van (RETIRED) gentoo-dev 2004-06-30 09:56:54 UTC
Created attachment 34499 [details, diff]
linux-headers-2.6.7-appCompat.patch.diff

Chris, if you know how to patch, please copy sys-kernel/linux-headers to your
overlay and applied the attached patch, emerge linux-headers then try again.
Thanks.
Comment 10 Chris Smith 2004-06-30 10:15:36 UTC
Lang,

I will try to figure that out later but I'm out the door right now.
As a note I created a "Frankenbuild" by adding a dxr3 use flag (with an appropriate use_enable line) so that the ebuild would skip compiling the dxr3 plugin (isn't this only usable with a specific hardware device?), yet the compile croaked at:

 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 -DSIMPLE_IDCT -DHAVE_AV_CONFIG_H -DRUNTIME_CPUDETECT -DUSE_FASTMEMCPY -DCONFIG_RISKY -DCONFIG_DECODERS -DXINE_MPEG_ENCODER -DCONFIG_ZLIB -O3 -pipe -fomit-frame-pointer -falign-functions=4 -falign-loops=4 -falign-jumps=4 -mpreferred-stack-boundary=2 -fexpensive-optimizations -fschedule-insns2 -fno-strict-aliasing -ffast-math -funroll-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 -O2 -march=pentium4 -fomit-frame-pointer -fforce-mem -pipe -s -fno-stack-protector -fno-web -O1 -mno-sse2 -mno-sse3 -ffunction-sections -MT h263.lo -MD -MP -MF .deps/h263.Tpo -c h263.c -o .libs/h263.o
h263.c: In function `mpeg4_decode_partition_a':
h263.c:69: sorry, unimplemented: inlining failed in call to 'mpeg4_decode_dc': function body not available
h263.c:3324: sorry, unimplemented: called from here
make[5]: *** [h263.lo] Error 1
Comment 11 Kathy Wills 2004-06-30 10:21:37 UTC
I'm not sure how to get the header for the failed ebuild but sounds like I may have the same setup as Chris so will try the patch to my linux-headers.
Comment 12 Kathy Wills 2004-06-30 11:49:17 UTC
The patch for linux-headers did not fix the problem. How do I find the xine-lib headers that you want. Here is what I get when I try to emerge after applying the patch:

dxr3_decode_video.c: In function `dxr3_open_plugin':
dxr3_decode_video.c:147: sorry, unimplemented: inlining failed in call to 'dxr3_present': function body not available
dxr3_decode_video.c:189: sorry, unimplemented: called from here
make[3]: *** [dxr3_decode_video.lo] Error 1
make[3]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5-r2/work/xine-lib-1-rc5/src/dxr3'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5-r2/work/xine-lib-1-rc5/src'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/var/tmp/portage/xine-lib-1_rc5-r2/work/xine-lib-1-rc5'
make: *** [all] Error 2

!!! ERROR: media-libs/xine-lib-1_rc5-r2 failed.
!!! Function src_compile, Line 138, Exitcode 2
!!! Parallel make failed
Comment 13 Chris Smith 2004-06-30 12:54:19 UTC
Ditto - same as Kathy reports - linux-headers patch does not resolve issue and error is the same as she provides.

I also tried rebuilding all of the xine-lib dependencies as there's a report on the forum that this resolved the issue for someone, but that was fruitless as well in this case.
Comment 14 Chris Smith 2004-06-30 13:08:12 UTC
Looks to be a gcc-3.4.0 compat problem. I switched gcc-3.3.3 and all went fine.
Comment 15 P Nienaber 2004-06-30 14:26:11 UTC
Getting the same errors here with media-libs/xine-lib-1_rc5-r2:

dxr3_decode_video.c: In function `dxr3_open_plugin':
dxr3_decode_video.c:147: sorry, unimplemented: inlining failed in call to 'dxr3_present': function body not available
dxr3_decode_video.c:189: sorry, unimplemented: called from here
dxr3_decode_video.c: In function `dxr3_decode_data':

CFLAGS here aren't too interesting, though:
CFLAGS="-march=k8 -O2 -pipe"
Comment 16 Chris Smith 2004-06-30 14:55:01 UTC
Would still like to know about the dxr3 plug. Is there any reason to build this without the associated hardware being present or planned?
Comment 17 P Nienaber 2004-06-30 15:01:37 UTC
Sounds pointless to me...99%+ of people do not have these cards, and software decoding now yields higher quality output.  Unfortunately this may mean another use flag for antiquated hardware (ugh)... given the obvious stats, though, it should probably me omitted by default.
Comment 18 Tuan Van (RETIRED) gentoo-dev 2004-06-30 15:43:37 UTC
gcc-3.4: open the ebuild
-        is-flag -O? || append-flags -O2 #31243
+        is-flag -O? || append-flags -O2 #31243

I think gcc-3.4 doesn't like inline with O1
Comment 19 Tuan Van (RETIRED) gentoo-dev 2004-06-30 15:44:45 UTC
sorry, should be
-        is-flag -O? || append-flags -O1 #31243
+        is-flag -O? || append-flags -O2 #31243
Comment 20 Anders Rune Jensen (RETIRED) gentoo-dev 2004-06-30 16:19:11 UTC
About building dxr3. There is no use-flags because there are not that many programs which would use such a flag, and those who do will autodetect if the dxr3 headers has been installed. I'm very confident that this should also happen in xine-lib.

Building xine-lib 1.0-rc5 by unpacking it somewhere and compiling it the normal way works for me. 
Comment 21 Chris Smith 2004-06-30 16:29:24 UTC
Lang,

-        is-flag -O? || append-flags -O1 #31243
+        is-flag -O? || append-flags -O2 #31243
 
Works just fine here with gcc-3.4.0. Maybe it should be:

-        is-flag -O? || append-flags -O1 #31243
+        is-flag -O? || append-flags -O2 #55202

Chris
 
Comment 22 Chris Smith 2004-06-30 16:33:27 UTC
Anders,

"About building dxr3. There is no use-flags because there are not that many programs which would use such a flag"

Without a use-flag it appears to get built by default yet it is a configure option. Is there some use at all for it without specific supporting hardware?

Chris
Comment 23 Anders Rune Jensen (RETIRED) gentoo-dev 2004-06-30 18:17:09 UTC
Chris you are correct. There is no need to the video output driver dxr3 if you don't own a card. And it doesn't get detected automaticly. Your patch works for me  :-)
Comment 24 Kathy Wills 2004-06-30 18:24:15 UTC
Thanks Lang and Chris, the change in the following did the job.

-        is-flag -O? || append-flags -O1 #31243
+        is-flag -O? || append-flags -O2 #55202
Comment 25 P Nienaber 2004-06-30 19:08:36 UTC
Works for me, too.  Thanks -- perhaps it's time for a bump to -r3?

And yeah, I totally agree that there is no need for a dxr(3) USE flag, as it's such an amazingly tiny portion of the userbase that would use it, and they'd get better results without the card anyways.
Comment 26 Chris Smith 2004-06-30 20:41:31 UTC
Created attachment 34554 [details]
edited xine-lib-1_rc5-r2.ebuild

This is my edited xine-lib-1_rc5-r2.ebuild, which with the proper guidance from
real developers may become xine-lib-1_rc5-r3.ebuild. It works for me and has
Lang's fix for gcc-3.4.0.
It also introduces the drx3 use-flag. Without the flag the drx3 plugin (which
nobody seems to need or desire) would be built by default as that is the normal
default for the source. If it's turned off in Gentoo land without a use-flag
(not built by default) than the silent minority who actually want the plugin
have no way to compile it using emerge. The addition of the local drx3 use-flag
means it will not be built by default (a good thing, yes?), but only when the
use-flag is set. I don't see a whole lot of choice, but then again I'm not a
developer or programmer, just a user.
Comment 27 Travis Tilley (RETIRED) gentoo-dev 2004-07-01 14:12:28 UTC
[ "`gcc-fullversion`" == "3.4.0" ] && append-flags -fno-web #49509

ugh. that line is ugly as sin... i say we get rid of that -and- fix this bug with:

if [ "`gcc-major-version`" -ge "3" -a "`gcc-minor-version`" -ge "4" ]; then
append-flags -fno-web #49509
append-flags -funit-at-a-time #55202
fi

and then also replace "is-flag -O? || append-flags -O1 #31243" with "replace-flags -O0 -O1 #31243" so that it doesnt FORCE -O1 when it doesnt need to.
Comment 28 Travis Tilley (RETIRED) gentoo-dev 2004-07-01 19:17:25 UTC
on an unrelated note, this bug should (accent on should) be fixed in gcc 3.4.1...

14950 [non unit-at-a-time] always_inline does not mix with templates and -O0

that PR is listed as fixed.
Comment 29 Duncan Hill 2004-07-06 10:32:23 UTC
Travis (if you read this),
# gcc-config -c
x86_64-pc-linux-gnu-3.4.1

dxr3_decode_video.c: In function `dxr3_open_plugin':
dxr3_decode_video.c:147: sorry, unimplemented: inlining failed in call to 'dxr3_present': function body not available
dxr3_decode_video.c:189: sorry, unimplemented: called from here
dxr3_decode_video.c: In function `dxr3_decode_data':
dxr3_decode_video.c:584: warning: long long int format, int64_t arg (arg 4)
dxr3_decode_video.c:612: warning: int format, different type arg (arg 4)

Thats the 'naked' ebuild for r2.  With the change to the -O flag as suggested, it appears happy (didn't use the dxr flag ebuild).

--- !targe sym /usr/lib/libxine.so.1
--- !targe sym /usr/lib/libxine.so
 * Caching service dependencies...
 * Caching service dependencies...
>>> Auto-cleaning packages ...

>>> No outdated packages were found on your system.

Built.  Dunno if it runs.
Comment 30 Travis Tilley (RETIRED) gentoo-dev 2004-07-06 12:31:17 UTC
fixed in cvs. give it some time to reach rsync