Opened 17 years ago

Closed 17 years ago

#1073 closed defect (fixed)

compilation failure on PPC without AltiVec

Reported by: eternalsword@… Owned by: diego@…
Priority: normal Component: build system
Version: HEAD Severity: normal
Keywords: Cc: eternalsword@…
Blocked By: Blocking:
Reproduced by developer: no Analyzed by developer: no

Description

I'll attach full logs of running configure and make in a reply. I've got svn revision 26606 on a fully up to date debian testing. I'm using the debian-multimedia repository for some of the libraries. I built x264 against whatever the current git head was two days ago.

I have tried building with --disable-altivec with no difference. I have tried building with --enable-altivec and it builds successfully but get the following error when I try to run it.

MPlayer dev-SVN-r26606-4.2.3 (C) 2000-2008 MPlayer Team
AltiVec not found
CPU: PowerPC

Playing somefile.mov.
libavformat file format detected.

MPlayer interrupted by signal 4 in module: demux_open

  • MPlayer crashed by an 'Illegal Instruction'. It usually happens when you run it on a CPU different than the one it was compiled/optimized for. Verify this!
  • MPlayer crashed by bad usage of CPU/FPU/RAM. Recompile MPlayer with --enable-debug and make a 'gdb' backtrace and disassembly. Details in DOCS/HTML/en/bugreports_what.html#bugreports_crash.
  • MPlayer crashed. This shouldn't happen. It can be a bug in the MPlayer code _or_ in your drivers _or_ in your gcc version. If you think it's MPlayer's fault, please read DOCS/HTML/en/bugreports.html and follow the instructions there. We can't and won't help unless you provide this information when reporting a possible bug.

Attachments (8)

configure.full.log (9.3 KB ) - added by eternalsword@… 17 years ago.
This is the output from running ./configure
configure.log (118.7 KB ) - added by eternalsword@… 17 years ago.
The configure log
make.full.log (371.6 KB ) - added by eternalsword@… 17 years ago.
This is the output from running make
mplayer_1.0.rc2svn20071207-0.3.diff (339.9 KB ) - added by eternalsword@… 17 years ago.
diff file used by debian-multimedia control system
configure.full.2.log (9.3 KB ) - added by eternalsword@… 17 years ago.
full configure output r26632
configure.2.log (119.2 KB ) - added by eternalsword@… 17 years ago.
configure log file r26632
make.full.2.log (370.0 KB ) - added by eternalsword@… 17 years ago.
make log r26632
trunk.diff (45.1 KB ) - added by eternalsword@… 17 years ago.
diff between mplayer libmpeg2 and svn://svn.videolan.org/libmpeg2/trunk

Download all attachments as: .zip

Change History (31)

by eternalsword@…, 17 years ago

Attachment: configure.full.log added

This is the output from running ./configure

comment:1 by eternalsword@…, 17 years ago

by eternalsword@…, 17 years ago

Attachment: configure.log added

The configure log

comment:2 by eternalsword@…, 17 years ago

by eternalsword@…, 17 years ago

Attachment: make.full.log added

This is the output from running make

comment:3 by eternalsword@…, 17 years ago

after running a simple ./configure

comment:4 by eternalsword@…, 17 years ago

Here's the full cpu information as provided by the proc system.

cat /proc/cpuinfo
processor : 0
cpu : 750CXe
temperature : 19-21 C (uncalibrated)
clock : 600.000000MHz
revision : 34.20 (pvr 0008 2214)
bogomips : 49.79
timebase : 24960000
platform : PowerMac
machine : PowerMac4,1
motherboard : PowerMac4,1 MacRISC2 MacRISC Power Macintosh
detected as : 256 (iMac "Flower Power")
pmac flags : 00000010
L2 cache : 256K unified
pmac-generation : NewWorld

comment:5 by eternalsword@…, 17 years ago

Cc: eternalsword@… added

comment:6 by eternalsword@…, 17 years ago

I tried using the mplayer made available by the debian-multimedia repository and that one worked. Here's the mplayer version output: MPlayer dev-SVN-r25315

by eternalsword@…, 17 years ago

diff file used by debian-multimedia control system

comment:7 by eternalsword@…, 17 years ago

I'm including this because when I tried to build the working revision used by debian-multimedia, the build failed (though at a different point, see error below). So their diff file is probably a good starting point for figuring out what's wrong.

The error I got when building debian-multimedia's working revision was

make -C libswscale
make[1]: Entering directory `/home/guest/build/mplayer/libswscale'
cc -DHAVE_AV_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_ISOC9X_SOURCE -I.. -I.. -I../libavutil -Wdisabled-optimization -Wno-pointer-sign -Wdeclaration-after-statement -I. -I.. -I../libavutil -Wall -Wno-switch -Wpointer-arith -Wredundant-decls -O4 -pipe -ffast-math -fomit-frame-pointer -D_REENTRANT -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE64_SOURCE -DHAVE_CONFIG_H -I/usr/include/freetype2 -c -o rgb2rgb.o rgb2rgb.c
In file included from ../libavutil/common.h:86,

from ../libavutil/avutil.h:53,
from swscale.h:31,
from rgb2rgb.c:32:

../libavutil/internal.h:273: error: static declaration of 'llrint' follows non-static declaration
../libavutil/internal.h:294: error: static declaration of 'round' follows non-static declaration
../libavutil/internal.h:301: error: static declaration of 'roundf' follows non-static declaration
make[1]: * [rgb2rgb.o] Error 1
make[1]: Leaving directory `/home/guest/build/mplayer/libswscale'
make:
* [libswscale/libswscale.a] Error 2

I'll try to sort through the diff file to see what might be helpful.

comment:8 by eternalsword@…, 17 years ago

Just to clarify, I have not yet tried applying debian-multimedia's patch, so I have not yet been able to build a working mplayer myself to this point.

comment:9 by diego@…, 17 years ago

Status: newassigned

comment:10 by diego@…, 17 years ago

Summary: build fails on imac graphite ppc 750CXecompilation failure on PPC without AltiVec

comment:11 by diego@…, 17 years ago

Resolution: fixed
Status: assignedclosed

I just fixed the compilation failure. There is still a linking issue left, but I have already analyzed it and will commit a fix shortly.

comment:12 by eternalsword@…, 17 years ago

Resolution: fixed
Status: closedreopened

unfortunately compilation still does not work for me. I'll post updated logs for revision 26632

by eternalsword@…, 17 years ago

Attachment: configure.full.2.log added

full configure output r26632

comment:13 by eternalsword@…, 17 years ago

attachments.isobsolete: 01

by eternalsword@…, 17 years ago

Attachment: configure.2.log added

configure log file r26632

comment:14 by eternalsword@…, 17 years ago

attachments.isobsolete: 01

by eternalsword@…, 17 years ago

Attachment: make.full.2.log added

make log r26632

comment:15 by eternalsword@…, 17 years ago

attachments.isobsolete: 01

comment:16 by diego@…, 17 years ago

attachments.mimetype: application/octet-streamtext/plain

comment:17 by eternalsword@…, 17 years ago

Resolution: fixed
Status: reopenedclosed

problem fixed as of revision 26642

comment:18 by eternalsword@…, 17 years ago

Resolution: fixed
Status: closedreopened

Unfortunately, I spoke too soon. The mplayer that was working was the one from debian-multimedia which I had forgotten to remove. So mplayer built successfully, but I had the MPlayer crashed by an 'Illegal Instruction' error when trying to run it.

comment:19 by eternalsword@…, 17 years ago

the configure from r26643 now forces altivec even when the --disable-altivec flag is provided.

by eternalsword@…, 17 years ago

Attachment: trunk.diff added

diff between mplayer libmpeg2 and svn://svn.videolan.org/libmpeg2/trunk

comment:20 by eternalsword@…, 17 years ago

generated by using: diff -u /build/mplayer/libmpeg2 /build/libmpeg2/libmpeg2

comment:21 by eternalsword@…, 17 years ago

forgot to mention that I am attaching this because I was able to successfully compile and run mpeg2dec from this version of libmpeg2

comment:22 by eternalsword@…, 17 years ago

I was able to build and run r26676 by doing the following, I'm guessing because of the updates to libmpeg2.

1)Run configure
2)Edit config.h to change
#define HAVE_ALTIVEC 1 -> #undef HAVE_ALTIVEC
#define ENABLE_ALTIVEC 1 -> #define ENABLE_ALTIVEC 0
#define HAVE_ALTIVEC_H 1 -> #undef HAVE_ALTIVEC_H
3)Edit config.mak to remove all -maltivec -mabi=altivec occurrences
4)make and make install

I'm guessing undoing the revision 26642 changeset to the configure file will fix having to change the config.h and config.mak files, since as of that revision, I could no longer even manually disable altivec via --disable-altivec

comment:23 by diego@…, 17 years ago

Resolution: fixed
Status: reopenedclosed

Next try, should really be fixed now...

Note: See TracTickets for help on using tickets.