From: Mario R. <mar...@go...> - 2007-02-15 19:44:11
|
I've sent this message to the xine-user list, but I got no answer. I think it's more appropriate here. I've recently upgraded to xine-lib-1.1.4 (which I've compiled from sources) and most of the time I get this warning from ffmpeg: "Compiler did not align stack variables. Libavcodec has been miscompiled and may be very slow or crash. This is not a bug in libavcodec, but in the compiler. Do not report crashes to FFmpeg developers." My system is Fedora Core 5, gcc 4.1.1 (RPM). This is the configure I use ./configure --without-esound --without-arts After a bit of investigation I've found a compiler switch that could be the cause -mpreferred-stack-boundary=2 which is in all xine's Makefiles. This switch is enabled (if supported) from "m4/optimizations.m4". Without this switch xine seems to work and no warning is reported. FFMPEG's developpers don't like this switch http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/2007-February/052348.html I don't have a fully understanding of the whole situation and it's possible that I've done something wrong. Does anybody know more about it? PS: the same happens for the latest CVS. Cheers. |
From: Diego 'F. <fla...@ge...> - 2007-02-15 19:54:09
|
On Thursday 15 February 2007, Mario Rossi wrote: > which is in all xine's Makefiles. This switch is enabled (if > supported) from "m4/optimizations.m4". > Without this switch xine seems to work and no warning is reported. You can, in the mean time, avoid the usage of that switch=20 with --disable-optimizations . Of course, it does make sense to just remove it altogether: (from man gcc) | This extra alignment does consume extra stack space, and generally | increases code size. Code that is sensitive to stack space usage, such as | embedded systems and operating system kernels, may want to reduce the | preferred alignment to -mpreferred-stack-boundary=3D2. =2D-=20 Diego "Flameeyes" Petten=F2 - http://farragut.flameeyes.is-a-geek.org/ Gentoo/Alt lead, Gentoo/FreeBSD, Video, Sound, ALSA, PAM, KDE, CJK, Ruby ... |
From: Reinhard T. <sir...@ta...> - 2007-02-16 10:07:47
|
"Mario Rossi" <mar...@go...> writes: > I've sent this message to the xine-user list, but I got no answer. I > think it's more appropriate here. > > I've recently upgraded to xine-lib-1.1.4 (which I've compiled from > sources) and most of the time I get this warning from ffmpeg: > > "Compiler did not align stack variables. Libavcodec has been miscompiled > and may be very slow or crash. This is not a bug in libavcodec, > but in the compiler. Do not report crashes to FFmpeg developers." Yes, I noticed this as well, but didn't come to bring it up here. Here my observations so far: Xine adds -mpreferred-stack-boundary=3D2 to CFLAGS. This is done to reduce Stack usage, but costs performance. On some Architectures, which require alignment, I supose GCC to enforce alignment anyways. I personally think this optiomisiation questionable and would probably suggest to just drop this compiler switch. Can perhaps someone of the xine dinosaurs comment on why this was done at all? I've CCed Miguel; according to `bzr annotate`, he was the last one who touched that part of the file xine/m4/optimizations.m4. Miguel, could you perhaps comment on this switch? Why was it introduced in the first place? =2D-=20 Gruesse/greetings, Reinhard Tartler, KeyID 945348A4 |