On Sat, Jun 12, 2021 at 02:14:58PM +0000, Charlene Wendling wrote:
> Hi,
> 
> I've built a macppc kernel without the ALTIVEC option on one of my G4s
> to test a port fix for G3s [0], and as i'm testing some ports i've
> opened a can of worms that is leading me to pixman. Namely, i run:
>

Hi,

is that with the update to pixman 0.40 that I posted last week or so,
or the 0.38.4 version from -current ? (but normally it doesn't
matter).



> kern.version=OpenBSD 6.9-current (NOALTIVEC) #1: Fri Jun 11 19:47:02
> 
> If i run www/midori, i get that backtrace:
> 
> > $ env DISPLAY=:0 egdb midori
> > Reading symbols from midori...done.
> > (gdb) run
> > [...]
> > Thread 1 received signal SIGILL, Illegal instruction.
> > (gdb) bt
> > #0  0xf05f9b84 in vec_lvsl(int, unsigned int const*) (__a=0,
> >     __b=0xfffb69a0) at /usr/lib/clang/11.1.0/include/altivec.h:4047
> > #1  vmx_combine_over_u_mask (dest=0xd52a64f0, src=0xfffb6980,
> >     mask=0xfffb69a0, width=6) at pixman-vmx.c:236
> > #2  0xf05ed7e4 in vmx_combine_over_u (imp=0xe91ba000, #op=PIXMAN_OP_OVER,
> >     dest=0xd52a64f0, src=0xfffb6980, mask=0xfffb69a0, width=6) at
> >     pixman-vmx.c:277
> > #3  0xf05cadf8 in general_composite_rect (imp=0xe91c7000,
> >     #info=0xfffbc9e8 at pixman-general.c:223
> > #4  0xf03aa4e4 in pixman_image_composite32 (op=PIXMAN_OP_OVER,
> >     src=0xd5cbbe00, mask=0xc4c1a900, dest=0xcd40c300, src_x=192,
> >     src_y=219, mask_x=0, mask_y=0, dest_x=28, dest_y=6, width=6,
> >     height=1) at pixman.c:700
> > #5  0xe9247468 in _inplace_spans () from /usr/local/lib/libcairo.so.13.0
> 
> It looks to me it's heading to pixman/pixman-implementation.c, but it's
> not built with "-maltivec -mabi=altivec" (see the build log [1]), so i
> am assuming i'm wrong and going nowhere.

Normally from my build logs on macppc configure is probing for
VMX/Altivec:

checking whether to use VMX/Altivec intrinsics... yes

and then sets

VMX_CFLAGS='-maltivec -mabi=altivec'

for the build.

If it's not the case it probably means that removing 'option ALTIVEC'
from the kernel is not equivalent to running on a G3 machine.

I'm not sure we should support building pixman on kernel without
ALTIVEC.

And finally, looking at this remined me of the commit message for
pixman/pixmman-vmx.c 1.9 :

 | revert pixman-vmx.c to the version of pixman-0.32.8.
 | gcc 4.2 is not able to compile the new version.
 | XXX switch back to 0.34 once macppc switches to clang.

I need to check that too ... before committing 0.40...

-- 
Matthieu Herrb

Reply via email to