svn commit: r356180 - head/sys/conf
Ian Lepore
ian at freebsd.org
Sun Dec 29 18:20:27 UTC 2019
On Sun, 2019-12-29 at 18:17 +0000, Ian Lepore wrote:
> Author: ian
> Date: Sun Dec 29 18:17:12 2019
> New Revision: 356180
> URL: https://svnweb.freebsd.org/changeset/base/356180
>
> Log:
> Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker
> symbols from the linked kernel.
>
> The main thrust of this change is to generate a kernel that has the arm
> "marker" symbols stripped. Marker symbols start with $a, $d, $t or $x, and
> are emitted by the compiler to tell other toolchain components about the
> locations of data embedded in the instruction stream (literal-pool
> stuff). They are used for generating mixed-endian binaries (which we don't
> support). The linked kernel has approximately 21,000 such symbols in it,
> wasting space (500K in kernel.full, 190K in the final linked kernel), and
> sometimes obscuring function names in stack tracebacks.
>
> This change also simplifies the way the kernel is linked. Instead of using
> sed to generate two different ldscript files to generate both an elf kernel
> and a binary (elf headers stripped) kernel, we now use a single ldscript
> that refers to a "text_start" symbol, and we provide the value for that
> symbol using --defsym on the linker command line.
>
Doh!
Differential Revision: https://reviews.freebsd.org/D22922
-- Ian
More information about the svn-src-all
mailing list