ENTRY(_start)
SECTIONS
{
- /* Read-only sections, merged into text segment: */
- PROVIDE (__executable_start = 0x8000); . = 0x8000;
- .text :
+ PROVIDE (__executable_start = 0x8000);
+ . = SEGMENT_START("text-segment", 0x8000) + SIZEOF_HEADERS;
+ /* Start of the executable code region. */
+ . = 0x9000;
+ .plt : ALIGN(16) { *(.plt) *(.iplt) }
+ . = 0x10000;
+ .text :
{
*(.before)
*(.text)
*(.after)
} =0
- . = 0x9000;
- .got : { *(.got) *(.got.plt)}
. = 0x12340000;
- .far : { *(.far) }
- .ARM.attributes 0 : { *(.ARM.attributes) }
+ .far : { *(.far) }
+ /* Start of the Read Write Data region. */
+ . = ALIGN (CONSTANT (MAXPAGESIZE)) - ((CONSTANT (MAXPAGESIZE) - .) & (CONSTANT (MAXPAGESIZE) - 1));
+ .got : { *(.got) *(.got.plt)}
+ /* Start of the metadata region. */
+ .ARM.attributes 0 : { KEEP (*(.ARM.attributes)) }
}
.*: file format elf64-(little|big)aarch64
SYMBOL TABLE:
-0+8000 l d \.text 0+ \.text
-0+0000 l df \*ABS\* 0+ .*
-0+8000 g \.text 0+ _start
+0+10000 l d \.text 0+ \.text
+0+00000 l df \*ABS\* 0+ .*
+0+10000 g \.text 0+ _start
Contents of section .text:
- 8000 1f2003d5 .*
+ 10000 1f2003d5 .*
-Disassembly of section .text:
-
-0+8000 \<_start>:
- 8000: d503201f nop
+Disassembly of section \.text:
+0+10000 \<_start>:
+ 10000: d503201f nop
.*: file format elf64-(little|big)aarch64
DYNAMIC SYMBOL TABLE:
-0+8000 g DF \.text 0+4 _start
-0+0000 D \*UND\* 0+ foo
-0+8008 g DF \.text 0+ bar
+0+10000 g DF \.text 0+4 _start
+0+00000 D \*UND\* 0+ foo
+0+10008 g DF \.text 0+ bar
+
+Disassembly of section \.plt:
+
+0+9000 \<\.plt\>:
+ 9000: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
+ 9004: f00919b0 adrp x16, 12340000 \<_GLOBAL_OFFSET_TABLE_\>
+ 9008: f9400e11 ldr x17, \[x16, #24\]
+ 900c: 91006210 add x16, x16, #0x18
+ 9010: d61f0220 br x17
+ 9014: d503201f nop
+ 9018: d503201f nop
+ 901c: d503201f nop
+ 9020: f00919b0 adrp x16, 12340000 \<_GLOBAL_OFFSET_TABLE_\>
+ 9024: f9401211 ldr x17, \[x16, #32\]
+ 9028: 91008210 add x16, x16, #0x20
+ 902c: d61f0220 br x17
Disassembly of section .text:
-0+8000 \<_start\>:
- 8000: 9400000c bl 8030 \<.*>
-
-0+8004 \<hidfn\>:
- 8004: 8a000000 and x0, x0, x0
-
-0+8008 \<bar\>:
- 8008: 14000001 b 800c \<foo\>
-
-0+800c \<foo\>:
- 800c: 97fffffe bl 8004 \<hidfn\>
-
-Disassembly of section .plt:
-
-0+8010 \<\.plt\>:
- 8010: a9bf7bf0 stp x16, x30, \[sp, #-16\]!
- 8014: b0000010 adrp x16, 9000 .*
- 8018: f9400e11 ldr x17, \[x16, #24\]
- 801c: 91006210 add x16, x16, #0x18
- 8020: d61f0220 br x17
- 8024: d503201f nop
- 8028: d503201f nop
- 802c: d503201f nop
- 8030: b0000010 adrp x16, 9000 .*
- 8034: f9401211 ldr x17, \[x16, #32\]
- 8038: 91008210 add x16, x16, #0x20
- 803c: d61f0220 br x17
+0+10000 \<_start\>:
+ 10000: 97ffe408 bl 9020 \<\.plt\+0x20>
+
+0+10004 \<hidfn\>:
+ 10004: 8a000000 and x0, x0, x0
+
+0+10008 \<bar\>:
+ 10008: 14000001 b 1000c \<foo\>
+
+0+1000c \<foo\>:
+ 1000c: 97fffffe bl 10004 \<hidfn\>
.*: file format elf64-(little|big)aarch64
SYMBOL TABLE:
-0+8000 l d \.text 0+ \.text
-0+0000 l df \*ABS\* 0+ .*
-0+8000 g \.text 0+ _start
+0+10000 l d \.text 0+ \.text
+0+00000 l df \*ABS\* 0+ .*
+0+10000 g \.text 0+ _start
Contents of section .text:
- 8000 1f2003d5 .*
+ 10000 1f2003d5 .*
-Disassembly of section .text:
+Disassembly of section \.text:
-0+8000 \<_start>:
- 8000: d503201f nop
+0+10000 \<_start>:
+ 10000: d503201f nop