Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#1932 closed defect (fixed)

Error in <dering_MMX2> when configured with --disable-optimizations --disable-mmx on x86-32

Reported by: Aleksey 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 Aleksey 12 years ago.
config.h (43.0 KB ) - added by Aleksey 12 years ago.
config.log (244.3 KB ) - added by Aleksey 12 years ago.

Download all attachments as: .zip

Change History (8)

by Aleksey, 12 years ago

Attachment: config.asm added

by Aleksey, 12 years ago

Attachment: config.h added

by Aleksey, 12 years ago

Attachment: config.log added

comment:1 by Aleksey, 12 years ago

Tried to omit --disable-mmx option but get the same result. So seems as this error is produced by --disable-optimizations.

comment:2 by Carl Eugen Hoyos, 12 years ago

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 by Michael Niedermayer, 12 years ago

Resolution: invalid
Status: newclosed
Summary: Error in <dering_MMX2> when configured with --disable-optimizations --disable-mmxError 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.

in reply to:  3 comment:4 by Carl Eugen Hoyos, 12 years ago

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 by Carl Eugen Hoyos, 12 years ago

Component: undeterminedpostproc
Keywords: build regression added
Reproduced by developer: set
Resolution: invalidfixed
Version: unspecifiedgit-master

Fixed in 7a259a5 (Feb 9).

Note: See TracTickets for help on using tickets.