Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

#3694 closed defect (fixed)

Compile error on VIA C3

Reported by: anonymous Owned by: Janne Grunau
Priority: minor Milestone: 0.21
Component: mythtv Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

This is a Compile error on VIA C3:
ccache gcc -c -pipe -march=c3 -Wall -Wno-switch -Wdisabled-optimization -Wpointer-arith -Wredundant-decls -Wno-pointer-sign -w -fomit-frame-pointer -O2 -fomit-frame-pointer -D_REENTRANT -DPIC -fPIC -DMMX -Di386 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -DPREFIX=\"/usr/local\" -DLIBDIR=\"/usr/local/lib\" -DHAVE_AV_CONFIG_H -D_LARGEFILE_SOURCE -DHAVE_XVMC -DHAVE_XVMC_VLD -DQT_NO_DEBUG -DQT_THREAD_SUPPORT -DQT_SHARED -DQT_TABLET_SUPPORT -I/usr/lib/qt-3.3/mkspecs/default -I. -I.. -I../.. -I../libavutil -I../libswscale -I/usr/lib/qt-3.3/include -o motion_est.o motion_est.c
motion_est_template.c: In Funktion »qpel_motion_search«:
motion_est_template.c:413: Fehler: in der Klasse »GENERAL_REGS« konnte während des Neuladens von »asm« kein Register gefunden werden

Attachments (2)

config.log (2.3 KB) - added by l-case@… 12 years ago.
config.err (49.1 KB) - added by l-case@… 12 years ago.

Download all attachments as: .zip

Change History (8)

Changed 12 years ago by l-case@…

Attachment: config.log added

Changed 12 years ago by l-case@…

Attachment: config.err added

comment:1 Changed 12 years ago by Rich D.

This appears to be a problem with the CPY3_IF_LT macro. The configure script is defining HAVE_CMOV when run without overriding the detection of the CPU. The C3 processor (except the C3-2) does not support the cmov instruction, so this assembly won't work.

The ffmpeg mailing list discusses this and for that project they have proposed some solution.

I am currently attempting to compile after running configure specifying --tune=c3 and --arch=586 --enable-mmx and hope that this will work around the bug.

comment:2 Changed 12 years ago by danielk

Milestone: unknown0.21
Owner: changed from Isaac Richards to Janne Grunau
Version: unknownhead

It looks like the cmov stuff is being set near line 1370 in ./configure while the arch_raw isn't set until about line 2000, so obviously it doesn't work.

Janne, can you look at this?

I know you want to follow the ffmpeg configure as closely as possible. Maybe we should move the MythTV processor detection stuff above the cmov setting? We created this because the ffmpeg architecture detection relies on uname -m which is hardly ever correct.

comment:3 Changed 12 years ago by Rich D.

Just to follow-up, After a very long compile (wow this 600MHz CPU is slow), it all built fine and works. I was able to use --tune=c3 --arch=586 --enable-mmx --enable-proc-opt

comment:4 Changed 12 years ago by Janne Grunau

Status: newassigned

The cmov detection is already different than ffmpeg. And it doesn't work because it depends on uname -m where it's clearly a processor feature.

I'll fix it.

comment:5 Changed 12 years ago by Janne Grunau

Resolution: fixed
Status: assignedclosed

(In [14038]) Fixes #3694. removes arch based cmov enabling for x86_32

Replaced by check of processor flags Fixes compilation error on Via C3

comment:6 Changed 12 years ago by Janne Grunau

(In [14607]) Refs #3694. restores cmov detection for --cpu=

Note: See TracTickets for help on using tickets.