Opened 17 years ago
Closed 17 years ago
Last modified 17 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)
Changed 17 years ago by
Attachment: | config.log added |
---|
Changed 17 years ago by
Attachment: | config.err added |
---|
comment:1 Changed 17 years ago by
comment:2 Changed 17 years ago by
Milestone: | unknown → 0.21 |
---|---|
Owner: | changed from Isaac Richards to Janne Grunau |
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 Changed 17 years ago by
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 17 years ago by
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 Changed 17 years ago by
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.