Opened 11 years ago

Closed 11 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: Analyzed by developer:

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

Download all attachments as: .zip

Change History (31)

Changed 11 years ago by eternalsword@…

This is the output from running ./configure

comment:1 Changed 11 years ago by eternalsword@…

Changed 11 years ago by eternalsword@…

The configure log

comment:2 Changed 11 years ago by eternalsword@…

Changed 11 years ago by eternalsword@…

This is the output from running make

comment:3 Changed 11 years ago by eternalsword@…

after running a simple ./configure

comment:4 Changed 11 years ago by eternalsword@…

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 Changed 11 years ago by eternalsword@…

  • Cc eternalsword@… added

comment:6 Changed 11 years ago by eternalsword@…

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

Changed 11 years ago by eternalsword@…

diff file used by debian-multimedia control system

comment:7 Changed 11 years ago by eternalsword@…

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 Changed 11 years ago by eternalsword@…

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 Changed 11 years ago by diego@…

  • Status changed from new to assigned

comment:10 Changed 11 years ago by diego@…

  • Summary changed from build fails on imac graphite ppc 750CXe to compilation failure on PPC without AltiVec

comment:11 Changed 11 years ago by diego@…

  • Resolution set to fixed
  • Status changed from assigned to closed

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 Changed 11 years ago by eternalsword@…

  • Resolution fixed deleted
  • Status changed from closed to reopened

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

Changed 11 years ago by eternalsword@…

full configure output r26632

comment:13 Changed 11 years ago by eternalsword@…

  • attachments.isobsolete changed from 0 to 1

Changed 11 years ago by eternalsword@…

configure log file r26632

comment:14 Changed 11 years ago by eternalsword@…

  • attachments.isobsolete changed from 0 to 1

Changed 11 years ago by eternalsword@…

make log r26632

comment:15 Changed 11 years ago by eternalsword@…

  • attachments.isobsolete changed from 0 to 1

comment:16 Changed 11 years ago by diego@…

  • attachments.mimetype changed from application/octet-stream to text/plain

comment:17 Changed 11 years ago by eternalsword@…

  • Resolution set to fixed
  • Status changed from reopened to closed

problem fixed as of revision 26642

comment:18 Changed 11 years ago by eternalsword@…

  • Resolution fixed deleted
  • Status changed from closed to reopened

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 Changed 11 years ago by eternalsword@…

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

Changed 11 years ago by eternalsword@…

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

comment:20 Changed 11 years ago by eternalsword@…

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

comment:21 Changed 11 years ago by eternalsword@…

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 Changed 11 years ago by eternalsword@…

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 Changed 11 years ago by diego@…

  • Resolution set to fixed
  • Status changed from reopened to closed

Next try, should really be fixed now...

Note: See TracTickets for help on using tickets.