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

Panagiotis Issaris takis.issaris
Wed Mar 14 13:56:09 CET 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi,

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...

With friendly regards,
Takis
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFF9/Dp9kOxLuzz4CkRAlQKAJ4+9eA/qdgEmyxLS8nkF6Lg1GpqDwCeLUcg
oflH723qsR67k8ez/cCfM6g=
=yOVa
-----END PGP SIGNATURE-----




More information about the ffmpeg-devel mailing list