reset ppc_altivec if 'option ALTIVEC' is not present.
authormatthieu <matthieu@openbsd.org>
Mon, 14 Jun 2021 06:10:44 +0000 (06:10 +0000)
committermatthieu <matthieu@openbsd.org>
Mon, 14 Jun 2021 06:10:44 +0000 (06:10 +0000)
This makes sysctl machdep.altivec return 0 in this case, allowing
applications to select the non-altivec code path.
Issue with pixman reported by cwen@  ok jca@ gkoehler@ deraadt@

sys/arch/macppc/macppc/cpu.c

index a3ef26c..24f0af1 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: cpu.c,v 1.83 2020/05/29 04:42:24 deraadt Exp $ */
+/*     $OpenBSD: cpu.c,v 1.84 2021/06/14 06:10:44 matthieu Exp $ */
 
 /*
  * Copyright (c) 1997 Per Fogelstrom
@@ -275,6 +275,9 @@ cpuattach(struct device *parent, struct device *dev, void *aux)
                snprintf(cpu_model, sizeof(cpu_model), "Version %x", cpu);
                break;
        }
+#ifndef ALTIVEC                        /* altivec support absent from kernel */
+       ppc_altivec = 0;
+#endif
        snprintf(cpu_model + strlen(cpu_model),
            sizeof(cpu_model) - strlen(cpu_model),
            " (Revision 0x%x)", pvr & 0xffff);