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