Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 22 Aug 2019 14:43:29 +0000
From:      bugzilla-noreply@freebsd.org
To:        ports-bugs@FreeBSD.org
Subject:   [Bug 240037] emulators/qemu-user-static: READ_SPECIALREG(ID_AA64ISAR0_EL1) crashes qemu on aarch64
Message-ID:  <bug-240037-7788@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D240037

            Bug ID: 240037
           Summary: emulators/qemu-user-static:
                    READ_SPECIALREG(ID_AA64ISAR0_EL1) crashes qemu on
                    aarch64
           Product: Ports & Packages
           Version: Latest
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: Individual Port(s)
          Assignee: sbruno@FreeBSD.org
          Reporter: jbeich@FreeBSD.org
                CC: mikael.urankar@gmail.com
          Assignee: sbruno@FreeBSD.org
             Flags: maintainer-feedback?(sbruno@FreeBSD.org)

If a port tries to detect CPU features during build poudriere hangs. The ca=
use
appears a qemu crash e.g.,

$ poudriere testport -j 112aarch64 security/nss
[...]
gmake[4]: Leaving directory 'cmd/shlibsign/mangle'
cd OPT.OBJ ; sh 'cmd/shlibsign/.'/sign.sh 'cmd/shlibsign/../../../dist/OPT.=
OBJ'
\
'cmd/shlibsign/OPT.OBJ' FreeBSD \
'cmd/shlibsign/../../../dist/OPT.OBJ/lib'
'cmd/shlibsign/../../../dist/OPT.OBJ/lib/libsoftokn3.so'
cmd/shlibsign/OPT.OBJ/shlibsign -v -i
cmd/shlibsign/../../../dist/OPT.OBJ/lib/libsoftokn3.so
qemu:handle_cpu_signal received signal outside vCPU context @ pc=3D0x602e5b=
07

$ cat a.c
#include <sys/types.h>
#include <machine/armreg.h>
#include <stdio.h>

int main(void)
{
  uint64_t id_aa64isar0;
  id_aa64isar0 =3D READ_SPECIALREG(ID_AA64ISAR0_EL1);
  if (ID_AA64ISAR0_AES(id_aa64isar0) =3D=3D ID_AA64ISAR0_AES_BASE) {
    printf("AES found\n");
  }
  if (ID_AA64ISAR0_AES(id_aa64isar0) =3D=3D ID_AA64ISAR0_AES_PMULL) {
    printf("PMULL found\n");
  }
  if (ID_AA64ISAR0_SHA1(id_aa64isar0) =3D=3D ID_AA64ISAR0_SHA1_BASE) {
    printf("SHA1 found\n");
  }
  if (ID_AA64ISAR0_SHA2(id_aa64isar0) =3D=3D ID_AA64ISAR0_SHA2_BASE) {
    printf("SHA2 found\n");
  }
  return 0;
}

$ cc a.c
$ ./a.out
qemu: uncaught target signal 4 (Illegal instruction) - core dumped
Illegal instruction

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-240037-7788>