Opened 19 years ago
Closed 19 years ago
Last modified 19 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)
Change History (8)
by , 19 years ago
| Attachment: | config.log added |
|---|
by , 19 years ago
| Attachment: | config.err added |
|---|
comment:1 by , 19 years ago
comment:2 by , 19 years ago
| Milestone: | unknown → 0.21 |
|---|---|
| Owner: | changed from to |
| Version: | unknown → head |
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 by , 19 years ago
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 by , 19 years ago
| Status: | new → assigned |
|---|
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 by , 19 years ago
| Resolution: | → fixed |
|---|---|
| Status: | assigned → closed |

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.