2 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64-pc-freebsd
%s
-o
%t.o
3 // RUN
: llvm-mc
-filetype
=obj
-triple
=aarch64-pc-freebsd
%p
/Inputs
/relocation-copy.s
-o
%t2.o
4 // RUN
: ld.lld
-shared
%t2.o
-soname fixed-length-string.so
-o
%t2.so
5 // RUN
: ld.lld
--no-relax
%t.o
%t2.so
-o
%t
6 // RUN
: llvm-readobj
-S
-r
--symbols
%t | FileCheck
%s
7 // RUN
: llvm-objdump
--no-print-imm-hex
-d
--no-show-raw-insn
%t | FileCheck
--check-prefix
=CODE
%s
8 // RUN
: llvm-objdump
-s
--section
=.rodata %t | FileCheck --check-prefix=RODATA %s
20 // CHECK-NEXT
: Type
: SHT_NOBITS
21 // CHECK-NEXT
: Flags
[
22 // CHECK-NEXT
: SHF_ALLOC
23 // CHECK-NEXT
: SHF_WRITE
25 // CHECK-NEXT
: Address
: 0x2303F0
26 // CHECK-NEXT
: Offset
:
27 // CHECK-NEXT
: Size
: 24
30 // CHECK-NEXT
: AddressAlignment
: 16
32 // CHECK
: Relocations
[
33 // CHECK-NEXT
: Section
({{.*}}) .rela.dyn {
34 // CHECK-NEXT
: 0x2303F0 R_AARCH64_COPY x
0x0
35 // CHECK-NEXT
: 0x230400 R_AARCH64_COPY y
0x0
36 // CHECK-NEXT
: 0x230404 R_AARCH64_COPY z
0x0
42 // CHECK-NEXT
: Value
: 0x2303F0
43 // CHECK-NEXT
: Size
: 4
44 // CHECK-NEXT
: Binding
: Global
45 // CHECK-NEXT
: Type
: Object
47 // CHECK-NEXT
: Section
: .bss
49 // CHECK-NEXT
: Value
: 0x230400
50 // CHECK-NEXT
: Size
: 4
51 // CHECK-NEXT
: Binding
: Global
52 // CHECK-NEXT
: Type
: Object
54 // CHECK-NEXT
: Section
: .bss
56 // CHECK-NEXT
: Value
: 0x230404
57 // CHECK-NEXT
: Size
: 4
58 // CHECK-NEXT
: Binding
: Global
59 // CHECK-NEXT
: Type
: Object
61 // CHECK-NEXT
: Section
: .bss
64 // CODE
: Disassembly of section
.text:
66 // CODE-NEXT
: <_start
>:
67 // S
+ A - P
= 0x2303f0 + 0 - 0x21031c = 131284
68 // CODE-NEXT
: 21031c
: adr x1
, 0x2303f0
69 // Page
(S
+ A) - Page
(P
) = Page
(0x230400) - Page
(0x210320) = 131072
70 // CODE-NEXT
: 210320: adrp x2
, 0x230000
71 // (S
+ A) & 0xFFF = (0x230400 + 0) & 0xFFF = 1024
72 // CODE-NEXT
: 210324: add x2
, x2
, #1024
74 // RODATA
: Contents of section
.rodata:
76 // RODATA-NEXT
: 200318 04042300