[Ffmpeg-devel] [BUG] Compilation failure when using --disable-opts

Michael Niedermayer michaelni
Wed Mar 14 19:04:53 CET 2007


Hi

On Wed, Mar 14, 2007 at 04:34:26PM +0100, Panagiotis Issaris wrote:
> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Hi
> 
> Michael Niedermayer schreef:
> > On Wed, Mar 14, 2007 at 01:56:09PM +0100, Panagiotis Issaris wrote:
> >> Michael Niedermayer schreef:
> >>> On Thu, Mar 08, 2007 at 09:46:33PM +0100, Panagiotis Issaris wrote:
> >>>> Michael Niedermayer schreef:
> >>>>> On Thu, Mar 08, 2007 at 07:46:55PM +0100, Panagiotis Issaris wrote:
> >>>>>> Michael Niedermayer schreef:
> >>>>>>> On Thu, Mar 08, 2007 at 06:16:46PM +0100, Guillaume Poirier wrote:
> >>>>>>>> Panagiotis Issaris wrote:
> >>>>>>>>> When configuring FFmpeg revision 8295 (most recent SVN) to disable
> >>>>>>>>> optimizations (for easier debugging), the cabac.c file fails to compile:
> >>>>>>>>> "can't find a register in class ???GENERAL_REGS??? while reloading ???asm???"
> >>>>>>>>>
> >>>>>>>>> I've tried using several versions of GCC. Any tips on how to fix this?
> >>>>>>>> [...]
> >>>>>>> what would be correct is:
> >>>>>>> #if defined(ARCH_X86) && defined(CONFIG_EBP) && defined(CONFIG_EBX)
> >>>>>> What would CONFIG_EBP mean? Looking at the naming of the other CONFIG_*
> >>>>>> options, I'd say it means the "EBP" and "EBX" "features" would be
> >>>>>> enabled :) although it is quite unlikely EBP and EBX have other meanings
> >>>>>> than the obvious (register names).
> >>>>> yes CONFIG_EBP means that the EBP register is available
> >>>>> with gcc this is the case if and only if -fomit-frame-pointer is used
> >>>> This indeed fails to compile if -fomit-frame-pointer isn't used _if_
> >>>> optimization is turned on:
> >>>>
> >>>> int main() { asm volatile ("" ::: "ebp"); }
> >>>>
> >>>> With -O0 or without -Ox flag (which is what is used when --enable-opts
> >>>> is passed to configure) the testapp compiles fine in either case.
> >>>>
> >>>> So, with the flags used for the compilation of cabac.c, the testapp
> >>>> compiles fine.
> >>> compiles yes, works no
> >>>
> >>> try
> >>> int main() {
> >>>     volatile int i=0;
> >>>     asm volatile (
> >>>         "xorl %%ebp, %%ebp"
> >>>     ::: "%ebp");
> >>>     return i;
> >>> }
> >>>
> >>> this will crash with -O0 and without -fomit-frame-pointer
> >> Hmm. Yes, but this would mean I'd have to add a testcase which checks if
> >> the above code crashes...
> > 
> > doesnt a simple check_exec or whatever it was in configure work
> You are right, it already existed.
> 
> The attached patch defines CONFIG_EBP in config.h if EBP is available.
> 
>  configure |   16 ++++++++++++++++
>  1 file changed, 16 insertions(+)

looks ok but iam not configure maintainer

[...]
-- 
Michael     GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB

I have never wished to cater to the crowd; for what I know they do not
approve, and what they approve I do not know. -- Epicurus
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20070314/b5708037/attachment.pgp>



More information about the ffmpeg-devel mailing list