When emerging mythfrontend-0.17, failure to include -momit-leaf-frame-pointer in the filter-flags section of the mythfrontend-0.17 ebuild will result in failure of libavcodec if the user has -momit-leaf-frame-pointer in their /etc/make.conf file. Once -momit-leaf-frame-pointer is included, the line: is-flag "-march=pentium4" && replace-flags "-O3" "-O2" becomes unnecessary because the noted bugs have already either been fixed in the mythtv source (bug 67832) or only pertain to the larger, general mythtv ebuild (81610) and not necessarily to mythfrontend itself. Thus potentially useful -O3 optimizations are unnecessarily being removed from the mythfrontend compile. Reproducible: Always Steps to Reproduce: 1. Include -momit-leaf-frame-pointer as part of your CFLAGS variable in /etc/make.conf 2. emerge mythfrontend Actual Results: llocate.o liba52/bit_allocate.c libpostproc/postprocess_template.c: In function `postProcess_MMX': libpostproc/postprocess_template.c:3198: error: can't find a register in class `GENERAL_REGS' while reloading `asm' libpostproc/postprocess_template.c:3198: error: can't find a register in class `GENERAL_REGS' while reloading `asm' libpostproc/postprocess_template.c:3283: error: can't find a register in class `GENERAL_REGS' while reloading `asm' libpostproc/postprocess_template.c:3283: error: can't find a register in class `GENERAL_REGS' while reloading `asm' make: *** [postprocess.o] Error 1 make: *** Waiting for unfinished jobs.... make: Leaving directory `/var/tmp/portage/mythfrontend-0.17/work/mythtv-0.17/libs/libavcodec' Expected Results: Modifying filter-flags in the mythfrontend-0.17.ebuild to include -momit-leaf-frame-pointer should circumvent the libavcodec error and allow mythfrontend to successfully compile. The following three lines should also be unnecessary for mythfrontend-0.17 and will allow the user to take advantage of O3 optimizations. is-flag "-march=pentium4" && replace-flags "-O3" "-O2" is-flag "-march=pentium4" && replace-flags "-0s" "-O2" is-flag "-march=athlon-xp" && replace-flags "-O3" "-O2"
No one that's complained of these problems before has used -momit-leaf-frame-pointer and I haven't used it ever and I've seen these problems. It's not just this flag that does it.