// REQUIRES: arm, aarch64 // RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %p/Inputs/arm-shared.s -o %t.a32.so.o // RUN: ld.lld -shared %t.a32.so.o -soname=so -o %t.a32.so // RUN: llvm-mc -filetype=obj -triple=armv7a-none-linux-gnueabi %s -o %t.a32.o // RUN: ld.lld -pie --pack-dyn-relocs=none %t.a32.o %t.a32.so -o %t2.a32 // RUN: llvm-readobj -r %t2.a32 | FileCheck --check-prefix=UNPACKED32 %s // Unpacked should have the relative relocations in their natural order. // UNPACKED32: Section ({{.+}}) .rel.dyn { // UNPACKED32-NEXT: 0x331C R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3320 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3324 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3328 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x332C R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3330 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3334 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3338 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3340 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3344 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3348 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x334C R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3350 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3354 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3358 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3364 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3368 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x336C R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3370 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3374 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3378 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x337C R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3380 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3384 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x3389 R_ARM_RELATIVE - 0x0 // UNPACKED32-NEXT: 0x333C R_ARM_ABS32 bar2 0x0 // UNPACKED32-NEXT: 0x3360 R_ARM_ABS32 bar2 0x0 // UNPACKED32-NEXT: 0x338D R_ARM_ABS32 bar2 0x0 // UNPACKED32-NEXT: 0x3391 R_ARM_ABS32 bar2 0x0 // UNPACKED32-NEXT: 0x3395 R_ARM_ABS32 bar2 0x0 // UNPACKED32-NEXT: 0x3399 R_ARM_ABS32 bar2 0x0 // UNPACKED32-NEXT: 0x339D R_ARM_ABS32 bar2 0x0 // UNPACKED32-NEXT: 0x335C R_ARM_ABS32 zed2 0x0 // UNPACKED32-NEXT: } // RUN: ld.lld -pie --pack-dyn-relocs=android %t.a32.o %t.a32.so -o %t3.a32 // RUN: llvm-readobj -S --dynamic-table %t3.a32 | FileCheck --check-prefix=ANDROID32-HEADERS %s // RUN: llvm-readobj -r %t3.a32 | FileCheck --check-prefix=ANDROID32 %s // ANDROID32-HEADERS: Index: 1 // ANDROID32-HEADERS-NEXT: Name: .dynsym // ANDROID32-HEADERS: Name: .rel.dyn // ANDROID32-HEADERS-NEXT: Type: SHT_ANDROID_REL // ANDROID32-HEADERS-NEXT: Flags [ (0x2) // ANDROID32-HEADERS-NEXT: SHF_ALLOC (0x2) // ANDROID32-HEADERS-NEXT: ] // ANDROID32-HEADERS-NEXT: Address: [[ADDR:.*]] // ANDROID32-HEADERS-NEXT: Offset: [[ADDR]] // ANDROID32-HEADERS-NEXT: Size: [[SIZE:.*]] // ANDROID32-HEADERS-NEXT: Link: 1 // ANDROID32-HEADERS-NEXT: Info: 0 // ANDROID32-HEADERS-NEXT: AddressAlignment: 4 // ANDROID32-HEADERS-NEXT: EntrySize: 1 // ANDROID32-HEADERS: 0x6000000F ANDROID_REL [[ADDR]] // ANDROID32-HEADERS: 0x60000010 ANDROID_RELSZ [[SIZE]] // Packed should have the groups of non-relative reloations first, followed // by the larger groups of relative relocations (i.e. the 8 and 9 followed // by the 7.) // ANDROID32: Section ({{.+}}) .rel.dyn { // ANDROID32-NEXT: 0x324C R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3250 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3254 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3258 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x325C R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3260 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3264 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3268 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3294 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3298 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x329C R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x32A0 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x32A4 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x32A8 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x32AC R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x32B0 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x32B4 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3270 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3274 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3278 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x327C R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3280 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3284 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x3288 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x32B9 R_ARM_RELATIVE - 0 // ANDROID32-NEXT: 0x326C R_ARM_ABS32 bar2 0 // ANDROID32-NEXT: 0x3290 R_ARM_ABS32 bar2 0 // ANDROID32-NEXT: 0x32BD R_ARM_ABS32 bar2 0 // ANDROID32-NEXT: 0x32C1 R_ARM_ABS32 bar2 0 // ANDROID32-NEXT: 0x32C5 R_ARM_ABS32 bar2 0 // ANDROID32-NEXT: 0x32C9 R_ARM_ABS32 bar2 0 // ANDROID32-NEXT: 0x32CD R_ARM_ABS32 bar2 0 // ANDROID32-NEXT: 0x328C R_ARM_ABS32 zed2 0 // ANDROID32-NEXT: } // RUN: ld.lld -pie --pack-dyn-relocs=relr %t.a32.o %t.a32.so -o %t4.a32 // RUN: llvm-readobj -S --dynamic-table %t4.a32 | FileCheck --check-prefix=RELR32-HEADERS %s // RUN: llvm-readobj -r --raw-relr %t4.a32 | FileCheck --check-prefix=RAW-RELR32 %s // RUN: llvm-readobj -r %t4.a32 | FileCheck --check-prefix=RELR32 %s // RELR32-HEADERS: Index: 1 // RELR32-HEADERS-NEXT: Name: .dynsym // RELR32-HEADERS: Name: .relr.dyn // RELR32-HEADERS-NEXT: Type: SHT_RELR // RELR32-HEADERS-NEXT: Flags [ (0x2) // RELR32-HEADERS-NEXT: SHF_ALLOC (0x2) // RELR32-HEADERS-NEXT: ] // RELR32-HEADERS-NEXT: Address: [[ADDR:.*]] // RELR32-HEADERS-NEXT: Offset: [[ADDR]] // RELR32-HEADERS-NEXT: Size: 8 // RELR32-HEADERS-NEXT: Link: 0 // RELR32-HEADERS-NEXT: Info: 0 // RELR32-HEADERS-NEXT: AddressAlignment: 4 // RELR32-HEADERS-NEXT: EntrySize: 4 // RELR32-HEADERS: 0x00000024 RELR [[ADDR]] // RELR32-HEADERS: 0x00000023 RELRSZ 0x8 // RELR32-HEADERS: 0x00000025 RELRENT 0x4 // SHT_RELR section contains address/bitmap entries // encoding the offsets for relative relocation. // RAW-RELR32: Section ({{.+}}) .relr.dyn { // RAW-RELR32-NEXT: 0x327C // RAW-RELR32-NEXT: 0x7FCFEFF // RAW-RELR32-NEXT: } // Decoded SHT_RELR section is same as UNPACKED, // but contains only the relative relocations. // Any relative relocations with odd offset stay in SHT_REL. // RELR32: Section ({{.+}}) .rel.dyn { // RELR32-NEXT: 0x32E9 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x329C R_ARM_ABS32 bar2 0x0 // RELR32-NEXT: 0x32C0 R_ARM_ABS32 bar2 0x0 // RELR32-NEXT: 0x32ED R_ARM_ABS32 bar2 0x0 // RELR32-NEXT: 0x32F1 R_ARM_ABS32 bar2 0x0 // RELR32-NEXT: 0x32F5 R_ARM_ABS32 bar2 0x0 // RELR32-NEXT: 0x32F9 R_ARM_ABS32 bar2 0x0 // RELR32-NEXT: 0x32FD R_ARM_ABS32 bar2 0x0 // RELR32-NEXT: 0x32BC R_ARM_ABS32 zed2 0x0 // RELR32-NEXT: } // RELR32-NEXT: Section ({{.+}}) .relr.dyn { // RELR32-NEXT: 0x327C R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x3280 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x3284 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x3288 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x328C R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x3290 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x3294 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x3298 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32A0 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32A4 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32A8 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32AC R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32B0 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32B4 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32B8 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32C4 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32C8 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32CC R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32D0 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32D4 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32D8 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32DC R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32E0 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: 0x32E4 R_ARM_RELATIVE - 0x0 // RELR32-NEXT: } // RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %p/Inputs/shared2.s -o %t.a64.so.o // RUN: ld.lld -shared %t.a64.so.o -soname=so -o %t.a64.so // RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %t.a64.o // RUN: ld.lld -pie --pack-dyn-relocs=none %t.a64.o %t.a64.so -o %t2.a64 // RUN: llvm-readobj -r %t2.a64 | FileCheck --check-prefix=UNPACKED64 %s // UNPACKED64: Section ({{.+}}) .rela.dyn { // UNPACKED64-NEXT: 0x30680 R_AARCH64_RELATIVE - 0x1 // UNPACKED64-NEXT: 0x30688 R_AARCH64_RELATIVE - 0x2 // UNPACKED64-NEXT: 0x30690 R_AARCH64_RELATIVE - 0x3 // UNPACKED64-NEXT: 0x30698 R_AARCH64_RELATIVE - 0x4 // UNPACKED64-NEXT: 0x306A0 R_AARCH64_RELATIVE - 0x5 // UNPACKED64-NEXT: 0x306A8 R_AARCH64_RELATIVE - 0x6 // UNPACKED64-NEXT: 0x306B0 R_AARCH64_RELATIVE - 0x7 // UNPACKED64-NEXT: 0x306B8 R_AARCH64_RELATIVE - 0x8 // UNPACKED64-NEXT: 0x306C8 R_AARCH64_RELATIVE - 0x1 // UNPACKED64-NEXT: 0x306D0 R_AARCH64_RELATIVE - 0x2 // UNPACKED64-NEXT: 0x306D8 R_AARCH64_RELATIVE - 0x3 // UNPACKED64-NEXT: 0x306E0 R_AARCH64_RELATIVE - 0x4 // UNPACKED64-NEXT: 0x306E8 R_AARCH64_RELATIVE - 0x5 // UNPACKED64-NEXT: 0x306F0 R_AARCH64_RELATIVE - 0x6 // UNPACKED64-NEXT: 0x306F8 R_AARCH64_RELATIVE - 0x7 // UNPACKED64-NEXT: 0x30710 R_AARCH64_RELATIVE - 0x1 // UNPACKED64-NEXT: 0x30718 R_AARCH64_RELATIVE - 0x2 // UNPACKED64-NEXT: 0x30720 R_AARCH64_RELATIVE - 0x3 // UNPACKED64-NEXT: 0x30728 R_AARCH64_RELATIVE - 0x4 // UNPACKED64-NEXT: 0x30730 R_AARCH64_RELATIVE - 0x5 // UNPACKED64-NEXT: 0x30738 R_AARCH64_RELATIVE - 0x6 // UNPACKED64-NEXT: 0x30740 R_AARCH64_RELATIVE - 0x7 // UNPACKED64-NEXT: 0x30748 R_AARCH64_RELATIVE - 0x8 // UNPACKED64-NEXT: 0x30750 R_AARCH64_RELATIVE - 0x9 // UNPACKED64-NEXT: 0x30759 R_AARCH64_RELATIVE - 0xA // UNPACKED64-NEXT: 0x306C0 R_AARCH64_ABS64 bar2 0x1 // UNPACKED64-NEXT: 0x30708 R_AARCH64_ABS64 bar2 0x0 // UNPACKED64-NEXT: 0x30761 R_AARCH64_ABS64 bar2 0x0 // UNPACKED64-NEXT: 0x30769 R_AARCH64_ABS64 bar2 0x0 // UNPACKED64-NEXT: 0x30771 R_AARCH64_ABS64 bar2 0x1 // UNPACKED64-NEXT: 0x30779 R_AARCH64_ABS64 bar2 0x1 // UNPACKED64-NEXT: 0x30781 R_AARCH64_ABS64 bar2 0x0 // UNPACKED64-NEXT: 0x30700 R_AARCH64_ABS64 zed2 0x0 // UNPACKED64-NEXT: } // RUN: ld.lld -pie --pack-dyn-relocs=android %t.a64.o %t.a64.so -o %t3.a64 // RUN: llvm-readobj -S --dynamic-table %t3.a64 | FileCheck --check-prefix=ANDROID64-HEADERS %s // RUN: llvm-readobj -r %t3.a64 | FileCheck --check-prefix=ANDROID64 %s // ANDROID64-HEADERS: Index: 1 // ANDROID64-HEADERS-NEXT: Name: .dynsym // ANDROID64-HEADERS: Name: .rela.dyn // ANDROID64-HEADERS-NEXT: Type: SHT_ANDROID_RELA // ANDROID64-HEADERS-NEXT: Flags [ (0x2) // ANDROID64-HEADERS-NEXT: SHF_ALLOC (0x2) // ANDROID64-HEADERS-NEXT: ] // ANDROID64-HEADERS-NEXT: Address: [[ADDR:.*]] // ANDROID64-HEADERS-NEXT: Offset: [[ADDR]] // ANDROID64-HEADERS-NEXT: Size: [[SIZE:.*]] // ANDROID64-HEADERS-NEXT: Link: 1 // ANDROID64-HEADERS-NEXT: Info: 0 // ANDROID64-HEADERS-NEXT: AddressAlignment: 8 // ANDROID64-HEADERS-NEXT: EntrySize: 1 // ANDROID64-HEADERS: 0x0000000060000011 ANDROID_RELA [[ADDR]] // ANDROID64-HEADERS: 0x0000000060000012 ANDROID_RELASZ [[SIZE]] // ANDROID64: Section ({{.+}}) .rela.dyn { // ANDROID64-NEXT: 0x303E0 R_AARCH64_RELATIVE - 0x1 // ANDROID64-NEXT: 0x303E8 R_AARCH64_RELATIVE - 0x2 // ANDROID64-NEXT: 0x303F0 R_AARCH64_RELATIVE - 0x3 // ANDROID64-NEXT: 0x303F8 R_AARCH64_RELATIVE - 0x4 // ANDROID64-NEXT: 0x30400 R_AARCH64_RELATIVE - 0x5 // ANDROID64-NEXT: 0x30408 R_AARCH64_RELATIVE - 0x6 // ANDROID64-NEXT: 0x30410 R_AARCH64_RELATIVE - 0x7 // ANDROID64-NEXT: 0x30418 R_AARCH64_RELATIVE - 0x8 // ANDROID64-NEXT: 0x30470 R_AARCH64_RELATIVE - 0x1 // ANDROID64-NEXT: 0x30478 R_AARCH64_RELATIVE - 0x2 // ANDROID64-NEXT: 0x30480 R_AARCH64_RELATIVE - 0x3 // ANDROID64-NEXT: 0x30488 R_AARCH64_RELATIVE - 0x4 // ANDROID64-NEXT: 0x30490 R_AARCH64_RELATIVE - 0x5 // ANDROID64-NEXT: 0x30498 R_AARCH64_RELATIVE - 0x6 // ANDROID64-NEXT: 0x304A0 R_AARCH64_RELATIVE - 0x7 // ANDROID64-NEXT: 0x304A8 R_AARCH64_RELATIVE - 0x8 // ANDROID64-NEXT: 0x304B0 R_AARCH64_RELATIVE - 0x9 // ANDROID64-NEXT: 0x30428 R_AARCH64_RELATIVE - 0x1 // ANDROID64-NEXT: 0x30430 R_AARCH64_RELATIVE - 0x2 // ANDROID64-NEXT: 0x30438 R_AARCH64_RELATIVE - 0x3 // ANDROID64-NEXT: 0x30440 R_AARCH64_RELATIVE - 0x4 // ANDROID64-NEXT: 0x30448 R_AARCH64_RELATIVE - 0x5 // ANDROID64-NEXT: 0x30450 R_AARCH64_RELATIVE - 0x6 // ANDROID64-NEXT: 0x30458 R_AARCH64_RELATIVE - 0x7 // ANDROID64-NEXT: 0x304B9 R_AARCH64_RELATIVE - 0xA // ANDROID64-NEXT: 0x30468 R_AARCH64_ABS64 bar2 0x0 // ANDROID64-NEXT: 0x304C1 R_AARCH64_ABS64 bar2 0x0 // ANDROID64-NEXT: 0x304C9 R_AARCH64_ABS64 bar2 0x0 // ANDROID64-NEXT: 0x304E1 R_AARCH64_ABS64 bar2 0x0 // ANDROID64-NEXT: 0x30420 R_AARCH64_ABS64 bar2 0x1 // ANDROID64-NEXT: 0x30460 R_AARCH64_ABS64 zed2 0x0 // ANDROID64-NEXT: 0x304D1 R_AARCH64_ABS64 bar2 0x1 // ANDROID64-NEXT: 0x304D9 R_AARCH64_ABS64 bar2 0x1 // ANDROID64-NEXT: } // RUN: ld.lld -pie --pack-dyn-relocs=relr %t.a64.o %t.a64.so -o %t4.a64 // RUN: llvm-readobj -S --dynamic-table %t4.a64 | FileCheck --check-prefix=RELR64-HEADERS %s // RUN: llvm-readobj -r --raw-relr %t4.a64 | FileCheck --check-prefix=RAW-RELR64 %s // RUN: llvm-readobj -r %t4.a64 | FileCheck --check-prefix=RELR64 %s // RELR64-HEADERS: Index: 1 // RELR64-HEADERS-NEXT: Name: .dynsym // RELR64-HEADERS: Name: .relr.dyn // RELR64-HEADERS-NEXT: Type: SHT_RELR // RELR64-HEADERS-NEXT: Flags [ (0x2) // RELR64-HEADERS-NEXT: SHF_ALLOC (0x2) // RELR64-HEADERS-NEXT: ] // RELR64-HEADERS-NEXT: Address: [[ADDR:.*]] // RELR64-HEADERS-NEXT: Offset: [[ADDR]] // RELR64-HEADERS-NEXT: Size: 16 // RELR64-HEADERS-NEXT: Link: 0 // RELR64-HEADERS-NEXT: Info: 0 // RELR64-HEADERS-NEXT: AddressAlignment: 8 // RELR64-HEADERS-NEXT: EntrySize: 8 // RELR64-HEADERS: 0x0000000000000024 RELR [[ADDR]] // RELR64-HEADERS: 0x0000000000000023 RELRSZ 0x10 // RELR64-HEADERS: 0x0000000000000025 RELRENT 0x8 // SHT_RELR section contains address/bitmap entries // encoding the offsets for relative relocation. // RAW-RELR64: Section ({{.+}}) .relr.dyn { // RAW-RELR64-NEXT: 0x30480 // RAW-RELR64-NEXT: 0x7FCFEFF // RAW-RELR64-NEXT: } // Decoded SHT_RELR section is same as UNPACKED, // but contains only the relative relocations. // Any relative relocations with odd offset stay in SHT_RELA. // RELR64: Section ({{.+}}) .rela.dyn { // RELR64-NEXT: 0x30559 R_AARCH64_RELATIVE - 0xA // RELR64-NEXT: 0x304C0 R_AARCH64_ABS64 bar2 0x1 // RELR64-NEXT: 0x30508 R_AARCH64_ABS64 bar2 0x0 // RELR64-NEXT: 0x30561 R_AARCH64_ABS64 bar2 0x0 // RELR64-NEXT: 0x30569 R_AARCH64_ABS64 bar2 0x0 // RELR64-NEXT: 0x30571 R_AARCH64_ABS64 bar2 0x1 // RELR64-NEXT: 0x30579 R_AARCH64_ABS64 bar2 0x1 // RELR64-NEXT: 0x30581 R_AARCH64_ABS64 bar2 0x0 // RELR64-NEXT: 0x30500 R_AARCH64_ABS64 zed2 0x0 // RELR64-NEXT: } // RELR64-NEXT: Section ({{.+}}) .relr.dyn { // RELR64-NEXT: 0x30480 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30488 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30490 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30498 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304A0 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304A8 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304B0 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304B8 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304C8 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304D0 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304D8 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304E0 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304E8 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304F0 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x304F8 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30510 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30518 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30520 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30528 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30530 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30538 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30540 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30548 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: 0x30550 R_AARCH64_RELATIVE - 0x0 // RELR64-NEXT: } .data .align 2 .dc.a __ehdr_start + 1 .dc.a __ehdr_start + 2 .dc.a __ehdr_start + 3 .dc.a __ehdr_start + 4 .dc.a __ehdr_start + 5 .dc.a __ehdr_start + 6 .dc.a __ehdr_start + 7 .dc.a __ehdr_start + 8 .dc.a bar2 + 1 .dc.a __ehdr_start + 1 .dc.a __ehdr_start + 2 .dc.a __ehdr_start + 3 .dc.a __ehdr_start + 4 .dc.a __ehdr_start + 5 .dc.a __ehdr_start + 6 .dc.a __ehdr_start + 7 .dc.a zed2 .dc.a bar2 .dc.a __ehdr_start + 1 .dc.a __ehdr_start + 2 .dc.a __ehdr_start + 3 .dc.a __ehdr_start + 4 .dc.a __ehdr_start + 5 .dc.a __ehdr_start + 6 .dc.a __ehdr_start + 7 .dc.a __ehdr_start + 8 .dc.a __ehdr_start + 9 .byte 00 .dc.a __ehdr_start + 10 .dc.a bar2 .dc.a bar2 .dc.a bar2 + 1 .dc.a bar2 + 1 .dc.a bar2