Hi Reimar,I remember that back then, when powerpc was still a release 
architecture in Debian, we built two flavors of the ffmpeg libraries -- one 
with altivec and one 
without:https://salsa.debian.org/multimedia-team/ffmpeg/-/blob/debian/master/debian/rules#L184That
 code is still there, so I wonder why your linker doesn't pick up the flavor 
that matches your processor's instruction set.Cheers, - Fabian Von 
meinem/meiner Galaxy gesendet
-------- Ursprüngliche Nachricht --------Von: Reimar Döffinger 
<reimar.doeffin...@gmx.de> Datum: 06.06.23  20:24  (GMT+01:00) An: Lorenzo 
<plore...@disroot.org>, 448...@bugs.debian.org Betreff: Bug#448105: mplayer: 
Illegal Instruction in init_audio_codec > On 6 Jun 2023, at 15:17, Reimar 
Döffinger <reimar.doeffin...@gmx.de> wrote:> >> Disable altivec for everyone 
doesn't seem a good compromise to me, I'm>> going to build twice on powerpc and 
let the user decide which one to use> > To be clear: as MPlayer has no 
hand-written altivec, I I expect only a maybe 5-10% or so degradation (pure 
guess), the most performance critical stuff in FFmpeg should not be 
affected.So, funny thing. I installed debian-ppc on qemu g3 emulated 
system.What did I find out:- xfce4 crashes with illegal instruction- ffmpeg 
does not crash, but only because it is built with --disable-altivec which makes 
it basically unusably slow on e.g. G4 systems.So there is no winning.So for 
practical purposes, you can just as well compile MPlayer with 
--disable-altivec, since FFmpeg is compiled this way the speed of MPlayer won't 
make a relevant difference.On the details what goes on here (skip if you do not 
like rants):What is the source of all these issues? gccIn the past, -maltivec 
was used to just enable support for altivec intrinsics.However gcc then changed 
and generated Altivec instructions even from plain C code.While that makes 
sense in a way, it meant code everywhere broke on non-altivec systems.This 
includes FFmpeg.For packages important enough/depending on maintainer, the 
"solution" was to disable altivec completely, making these programs vastly 
slower on Altivec enabled computers.Others like xfce4 and MPlayer only work on 
PPC systems with Altivec.Without extensive code and build system changes, this 
seems now an unsolvable situation.Unless someone adds an option like -faltivec 
that Apple had, which allows the intrinsics but not compiler generation of 
altivec instructions (I think gcc maintainers at one point said they could not 
do that).clang has both -faltivec and -maltivec, but neither are properly 
documented, so who knows if they would help here or not.Either way, without 
someone EXTREMELY motivated, this seems not solvable (switching to clang with 
-faltivec if it were to work just MIGHT have a chance).I guess it's a lesson in 
not buying into architectures where the creators don't have their shit together 
enough to get even the basics right - and upstreamed... (I guess it's mostly 
solved by PPC being as good as dead now).(don't get me wrong, I still sometimes 
boot my old MacMini with G4 and update to latest Debian, but I think the ISA is 
just dead at this point, unfortunately).Sorry for the long rant,Reimar

Reply via email to