| # Copyright Microsoft and CHERIoT Contributors. |
| # SPDX-License-Identifier: MIT |
| |
| SECTIONS |
| { |
| . = 0; |
| .compartment_export_table : ALIGN(8) |
| { |
| # Space for the compartment's PCC and GDC |
| . = . + 16; |
| # And no compartment error handler. See the |
| # compartment_export_table section in sdk/compartment.ldscript |
| # and errorHandler in the sdk/core/switcher |
| LONG(-1); |
| # Array of compartment exports |
| *(.compartment_exports); |
| } |
| # Lay out the code. We ensure that the three capabilities that are used |
| # for scanning memory are provided. |
| .text : |
| { |
| HIDDEN(__compartment_pcc_start = .); |
| *(.text .text.*); |
| *(.data.rel.ro); |
| *(.rodata .rodata.*); |
| } |
| # Lay out all of the globals. |
| .data : |
| { |
| *(.data .data.*); |
| *(.sdata .sdata.*); |
| *(.bss .bss.*); |
| *(.sbss .sbss.*); |
| } |
| # Throw some stuff away that we don't need. |
| /DISCARD/ : |
| { |
| *(.comment); |
| } |
| } |