[mythtv] Myth doesn't compile under FC3
Daniel Thor Kristjansson
danielk at mrl.nyu.edu
Wed Nov 10 14:23:19 UTC 2004
On Tue, 9 Nov 2004, Chris Petersen wrote:
]Trying to compile myth under fc3, and I get the following error:
]i386/dsputil_mmx.c: In function `h263_h_loop_filter_mmx':
]i386/dsputil_mmx.c:634: error: can't find a register in class `GENERAL_REGS'
]while reloading `asm'
This is due to a bug in gcc's new register allocator. The old one was
buggy too but we've all already worked around it's bugs. There are two
work arounds. One is to break assembler blocks into smaller pieces so
that the compiler can spill more variables onto the stack. The other is
to remove the assembler blocks from the C files and place them in gas
files and link them in. The problem with the first solution is that it
makes the code less efficient, and the problem with the second solution
is that it makes the code more complex.
In some of my non-myth coding I've been using a mix of the two
solutions, hopefully the first won't be terribly inefficient once the
register allocator is fixed.
BTW another work around is to just use different compiler options,
changing the optimization flags can sometimes free some registers.
There is some code in gcc 4.0 that will make debugging work better
with -fomit-frame-pointer
-- Daniel
More information about the mythtv-dev
mailing list