diff options
| author | Tianhao Wang <shrik3@mailbox.org> | 2024-04-18 03:03:27 +0200 |
|---|---|---|
| committer | Tianhao Wang <shrik3@mailbox.org> | 2024-06-11 15:16:34 +0200 |
| commit | 35d1a6ef41fa716503925226837cf0f0b8894a90 (patch) | |
| tree | a07d9d3073e802af03922c9d4732ad2f988cf6cb /defs/x86_64-linker.ld | |
| parent | 4c7dec80c02db70d9592bbe91f00145c0eb7a40e (diff) | |
linker: "optimize" section arrangements
1. throw vectors in a custom ".reserved" section
2. throw idt in a NOLOAD ".reserved_0" section: save some binary size
(like .bss) since we don't care for its initial value.
3. squash all ".data.*" sections from rust into ".data"
Diffstat (limited to 'defs/x86_64-linker.ld')
| -rw-r--r-- | defs/x86_64-linker.ld | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/defs/x86_64-linker.ld b/defs/x86_64-linker.ld index aee69aa..3d54187 100644 --- a/defs/x86_64-linker.ld +++ b/defs/x86_64-linker.ld @@ -12,12 +12,26 @@ SECTIONS .data : { - *(".data.idt") - *(".data.vectors") *(".data") + *(".data.*") *(".data$") } + .reserved : { + *(".reserved") + *(".reserved.*") + } + + /* + * basically the same as BSS, but I want some flexibility and I don't care + * for zeroing because it's explicitly overwritten anyways. I KNOW WHAT I'M + * DOING! An example is the idt. + */ + .reserved_0 (NOLOAD) : { + *(".reserved_0") + *(".reserved_0.*") + } + .rodata : { *(".rodata") |
