Ticket #1932 (closed defect: fixed)
Error in <dering_MMX2> when configured with --disable-optimizations --disable-mmx on x86-32
| Reported by: | Morion | Owned by: | |
|---|---|---|---|
| Priority: | important | Component: | postproc |
| Version: | git-master | Keywords: | build regression |
| Cc: | Blocked By: | ||
| Blocking: | Reproduced by developer: | yes | |
| Analyzed by developer: | no |
Description
I've got following error during 'make' (in MinGW at Windows):
{{{libpostproc/postprocess_template.c: In function ‘dering_MMX2’:
libpostproc/postprocess_template.c:1045:5: error: can’t find a register in class ‘GENERAL_REGS’ while reloading ‘asm’
libpostproc/postprocess_template.c:1045:5: error: ‘asm’ operand has impossible constraints}}}
Using commit ba353436a375b92659366aeec8c0139da08f8a0b. Configure string:
./configure --prefix=build --enable-gpl --enable-w32threads --enable-runtime-cpudetect --enable-memalign-hack --enable-libx264 --enable-shared --disable-static --disable-optimizations --disable-mmx --disable-stripping --extra-cflags=" -I/c/ffmpeg/x264/staticbuild/include" --extra-ldflags="-L/c/ffmpeg/x264/staticbuild/lib"
Found the related ticket https://ffmpeg.org/trac/ffmpeg/ticket/1695, it says that the problem is fixed in commit ec36aa69448f20a78d8c4588265022e0b2272ab5. Checked this commit, it's in the tree but the problem is still there.
Attachments
Change History
comment:1 Changed 6 months ago by Morion
Tried to omit --disable-mmx option but get the same result. So seems as this error is produced by --disable-optimizations.
comment:2 Changed 6 months ago by cehoyos
I am unable to reproduce the compilation problem.
Could you confirm that "./configure --disable-optimizations" is sufficient to trigger it?
Please run the minimal needed configure line, run make again, then run "make V=1" and post the complete, uncut console output of the last run here.
comment:3 follow-up: ↓ 4 Changed 6 months ago by michael
- Status changed from new to closed
- Resolution set to invalid
- Summary changed from Error in <dering_MMX2> when configured with --disable-optimizations --disable-mmx to Error in <dering_MMX2> when configured with --disable-optimizations --disable-mmx on x86-32
--disable-optimization without --disable-asm is not possible on x86-32. gcc is too buggy for this. On 64bit, gcc has twice as many registers so it should work.
You can thus either enable optimizations, disable asm or compile for x86-64 if your platform supports it
You can also use --disable-mmx --disable-runtume-cpudetect instead if you prefer
Iam closing this as invalid as its a gcc bug not a ffmpeg bug. But iam not opposed to consider some workaround if theres some volunteer who wants to maintain such workarounds.



