xref: /aosp_15_r20/bionic/tests/libs/segment_gap_outer.lds (revision 8d67ca893c1523eb926b9080dbe4e2ffd2a27ba1)
1*8d67ca89SAndroid Build Coastguard WorkerSECTIONS {
2*8d67ca89SAndroid Build Coastguard Worker  # This starts off fairly normal: rodata, text, dynamic, data, bss with
3*8d67ca89SAndroid Build Coastguard Worker  # appropriate alignment between them.
4*8d67ca89SAndroid Build Coastguard Worker  . = SIZEOF_HEADERS;
5*8d67ca89SAndroid Build Coastguard Worker  .rodata : {*(.rodata .rodata.*)}
6*8d67ca89SAndroid Build Coastguard Worker  . = ALIGN(CONSTANT (MAXPAGESIZE));
7*8d67ca89SAndroid Build Coastguard Worker  .text : {*(.text .text.*)}
8*8d67ca89SAndroid Build Coastguard Worker  . = ALIGN(CONSTANT (MAXPAGESIZE));
9*8d67ca89SAndroid Build Coastguard Worker  .dynamic : {*(.dynamic)}
10*8d67ca89SAndroid Build Coastguard Worker  . = ALIGN(CONSTANT (MAXPAGESIZE));
11*8d67ca89SAndroid Build Coastguard Worker  .data : {*(.data .data.*)}
12*8d67ca89SAndroid Build Coastguard Worker  .bss : {*(.bss .bss.*)}
13*8d67ca89SAndroid Build Coastguard Worker
14*8d67ca89SAndroid Build Coastguard Worker  # Now create the gap. We need a text segment first to prevent the linker from
15*8d67ca89SAndroid Build Coastguard Worker  # merging .bss with .custom_bss.
16*8d67ca89SAndroid Build Coastguard Worker  . = ALIGN(CONSTANT (MAXPAGESIZE));
17*8d67ca89SAndroid Build Coastguard Worker  .custom_text : {
18*8d67ca89SAndroid Build Coastguard Worker    *(.custom_text);
19*8d67ca89SAndroid Build Coastguard Worker  }
20*8d67ca89SAndroid Build Coastguard Worker
21*8d67ca89SAndroid Build Coastguard Worker  # Place custom_bss at the end of the gap.
22*8d67ca89SAndroid Build Coastguard Worker  . = 0x1000000;
23*8d67ca89SAndroid Build Coastguard Worker  .custom_bss : {
24*8d67ca89SAndroid Build Coastguard Worker    *(.custom_bss);
25*8d67ca89SAndroid Build Coastguard Worker  }
26*8d67ca89SAndroid Build Coastguard Worker}
27