2 // RUN
: llvm-mc
-filetype
=obj
-arm-add-build-attributes
-triple
=armv7a-none-linux-gnueabi
%s
-o
%t
3 // RUN
: ld.lld
--hash-style
=sysv
%t --shared
-o
%t2
4 // RUN
: llvm-readobj
--relocations
%t2 | FileCheck
%s
5 // RUN
: llvm-objdump
-s
--triple
=armv7a-none-linux-gnueabi
%t2 | FileCheck
--check-prefix
=CHECK-EXTAB-NEXT
%s
7 // Check that the relative R_ARM_PREL31 relocation can access
a PLT entry
8 // for when the personality routine is referenced from
a shared library.
9 // Also check that the R_ARM_NONE no-op relocation can
be used in
a shared
12 // Will produce an ARM.exidx entry with an R_ARM_NONE relocation to
13 // __aeabi_unwind_cpp_pr0
14 .section .text.func1, "ax",%progbits
21 // Will produce
a R_ARM_PREL31 relocation with respect to the PLT entry of
22 // __gxx_personality_v0
23 .section .text.func2, "ax",%progbits
28 .personality __gxx_personality_v0
34 .section .text.__aeabi_unwind_cpp_pr0, "ax", %progbits
35 .global __aeabi_unwind_cpp_pr0
36 __aeabi_unwind_cpp_pr0
:
39 // CHECK
: Relocations
[
40 // CHECK-NEXT
: Section
{{.*}} .rel.plt {
41 // CHECK-NEXT
: 0x302DC R_ARM_JUMP_SLOT __gxx_personality_v0
43 // CHECK-EXTAB
: Contents of section
.ARM.extab:
44 // 0x0238 + 0x1038 = 0x1270 = __gxx_personality_v0
(PLT
)
45 // CHECK-EXTAB-NEXT
: 0238 38000100 b0b0b000
00000000