HomeFreeBSD

MFH: r427378

Description

MFH: r427378

Fix booting the arm64 kernel when built with clang 3.9.0

Clang 3.9.0 changes how weak extern is handled. They now use the got to
handle them. This is a problem as ld.bfd doesn't fill out any default value
in the got so pointers become NULL. This caused the kernel to fail to boot
as we use this in linker sets.

This fixes the issue by setting a default value in the got. The kernel
still loads data through it, but because we always load it at a fixed
virtual address the address it finds is valid.

Requested by: andrew
Approved by: ports-secteam (with hat), bapt
Differential Revision: https://reviews.freebsd.org/D8622

Details

Provenance
junovitchAuthored on
Differential Revision
D8622: Fix booting the arm64 kernel when built with clang 3.9.0
Parents
rP428027: - Update to 1.8.17
Branches
Unknown
Tags
Unknown