Opened 5 years ago

Closed 5 years ago

Last modified 5 years ago

#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 (3)

config.asm (42.2 KB) - added by Morion 5 years ago.
config.h (43.0 KB) - added by Morion 5 years ago.
config.log (244.3 KB) - added by Morion 5 years ago.

Download all attachments as: .zip

Change History (8)

Changed 5 years ago by Morion

Changed 5 years ago by Morion

Changed 5 years ago by Morion

comment:1 Changed 5 years 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 5 years 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: Changed 5 years ago by michael

  • Resolution set to invalid
  • Status changed from new to closed
  • 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.

comment:4 in reply to: ↑ 3 Changed 5 years ago by cehoyos

Replying to michael:

--disable-optimization without --disable-asm is not possible on x86-32.

It only fails with --enable-gpl (without --disable-postproc).

comment:5 Changed 5 years ago by cehoyos

  • Component changed from undetermined to postproc
  • Keywords build regression added
  • Reproduced by developer set
  • Resolution changed from invalid to fixed
  • Version changed from unspecified to git-master

Fixed in 7a259a5 (Feb 9).

Note: See TracTickets for help on using tickets.