Bug#842513: vlc: immediate crash on launch on powerpc

Adrian Bunk bunk at stusta.de
Mon Oct 31 21:13:00 UTC 2016


Control: retitle -1 vlc: configure.ac altivec setting broken

On Sun, Oct 30, 2016 at 11:40:50AM +0000, James Cowgill wrote:
>...
> On 30/10/16 00:16, Robert Ou wrote:
> > On Sat, Oct 29, 2016 at 3:43 PM, James Cowgill <jcowgill at debian.org> wrote:
> >> Control: tags -1 help
> >> Control: severity -1 grave
> >>
> >> Hi,
> >>
> >> On 29/10/16 23:00, Robert Ou wrote:
> >>> Package: src:vlc
> >>> Version: 2.2.4-7
> >>> Severity: normal
> >>>
> >>> Dear Maintainer,
> >>>
> >>> I decided I wanted to test the performance of Debian PowerPC on my
> >>> ancient iMac, and I discovered that vlc will immediately crash with an
> >>> illegal instruction right after showing the "Privacy and Network Access
> >>> Policy" window and before showing the main window. The crashes look like
> >>> the following:
> >>>
> >>> [ 1560.952016] vlc[997]: unhandled signal 4 at 0ea48f58 nip 0ea48f58 lr 0ea48f4c code 30001
> >>
> >> As powerpc is a release architecture, this bug is RC.
> >>
> >> I tried running vlc on partch. It managed to get further, but then
> >> segfaulted inside QT so it's probably a separate issue. I also had to
> >> run it in xvfb so it probably gets different results.
> >>
> >> Specifically what powerpc hardware do you have? Could you run vlc within
> >> gdb to determine which instruction it SIGILLs on (try 'layout asm')?
> > 
> > I was testing on a first-generation iMac with a 333 MHz PowerPC 750
> > (G3). Running vlc under gdb shows that the crash occurs in
> > libqt4_plugin.so in QRect::adjusted. The crash occurs on a "lvx
> > v0,r10,r5" opcode, which is an Altivec opcode. The G3 however does not
> > support Altivec. Here is a backtrace and some more debug information:
> 
> This explains it. From the PowerPC FAQ:
> https://wiki.debian.org/PowerPC/FAQ#VLC_crashes_on_startup._What.27s_up_with_that.3F
> 
> "
> If VLC immediately crashes, it's probably because you're on a G3 and
> VLC was compiled with Altivec instructions. To use VLC on a G3, you
> must compile it with the configure option --disable-altivec.
> "
> 
> Having said that, I think adding something to vlc's preinst to prevent
> installation on systems without altivec would be a good idea here.
>...

This actually looks like a bug in upstream configure.ac to me:
    VLC_ADD_CFLAGS([libvlccore],[${ac_cv_c_altivec}])
    ALTIVEC_CFLAGS="$ALTIVEC_FLAGS ${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}"
    VLC_ADD_CFLAGS([deinterlace],[${ac_cv_c_altivec} ${ac_cv_c_altivec_abi}])

It is correct that this adds -maltivec to AltiVec-specific code,
and vlc has proper autodetection to run this only when AltiVec
is actually present.

The VLC_ADD_CFLAGS here look just wrong - it is not the job of 
configure.ac to add such flags to generic code (whatever march
and hardware features are present is defined through compiler
defaults and the CFLAGS passed by the user).

> Thanks,
> James

cu
Adrian

-- 

       "Is there not promise of rain?" Ling Tan asked suddenly out
        of the darkness. There had been need of rain for many days.
       "Only a promise," Lao Er said.
                                       Pearl S. Buck - Dragon Seed



More information about the pkg-multimedia-maintainers mailing list