Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 08 May 2017 21:22:00 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 219153] head, stable/11, release/11.0.1: libkvm (& more?) not updated to handle powerpc/powerpc64 ET_DYN based vmcore.* 's and such
Message-ID:  <bug-219153-8@https.bugs.freebsd.org/bugzilla/>

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

            Bug ID: 219153
           Summary: head, stable/11, release/11.0.1: libkvm (& more?) not
                    updated to handle powerpc/powerpc64 ET_DYN based
                    vmcore.* 's and such
           Product: Base System
           Version: CURRENT
          Hardware: powerpc
                OS: Any
            Status: New
          Severity: Affects Only Me
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: markmi@dsl-only.net

[stable/11 and release/11.0.1 likely have the same
issue but the work would start in head so I picked
CURRENT since multi-select is not available.]

powerpc and powerpc64 use position independent kernels
these days and as such have kd->nlehdr.e_type =3D=3D ET_DYN
(stated in libkvm terms).

But libkvm rejects all but ET_EXEC via:

_kvm_probe_elf_kernel(kvm_t *kd, int class, int machine)
{

        return (kd->nlehdr.e_ident[EI_CLASS] =3D=3D class &&
            kd->nlehdr.e_type =3D=3D ET_EXEC &&
            kd->nlehdr.e_machine =3D=3D machine);
}

There may be more than just this test needed
to work for ET_DYN for all I know.

But the test being unchanged suggests that libkvm
was not adjusted at all to be compatible with the
newer type of kernels that powerpc and powerpc64
switched to.

There may be more infrastructure around than just
libkvm that has not been updated to handle ET_DYN
based kernels for at least powerpc and powerpc64,
where they are in use for sure.

FYI:

20150307:
        The 32-bit PowerPC kernel has been changed to a position-independent
        executable. This can only be booted with a version of loader(8)
        newer than January 31, 2015, so make sure to update both world and
        kernel before rebooting.

. . .

20150131:
        The powerpc64 kernel has been changed to a position-independent
        executable. This can only be booted with a new version of loader(8),
        so make sure to update both world and kernel before rebooting.

--=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-219153-8>