From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id D6B1E384AB79 for ; Fri, 19 Apr 2024 10:55:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D6B1E384AB79 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D6B1E384AB79 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713524152; cv=none; b=wfD33RB4yWQHD0RmmUYH9sYOsdgyk6xp6YIOSKG65nkeLFQ6Osg4pk4kLcVn/ARnnF4nDDEtpBIgxiIdnRQrxWXEoIQQjp0G9tguUDK8sBgfCm/jONRVaYCtMa6ADjwAEQcUKJjcpjtKSQ6q4RfOhqQg28OqcoHuFw8guwDFUpg= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1713524152; c=relaxed/simple; bh=MILE8LR6kvLfYbdLLATzNZeeDRaIoMCH57AKjSiBoQw=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=Akv9grBO7zCH/G8Tpan91CAxZHFJd0aFL2uGM51YE4ebgtAZuF9o2//qZilG2sn3hJG7u5F1VhAouhFYi3yZZi+lntsgAxiutcdYRaUFU8N9xfqzzlRzv7zaosZzct7CK6o4mgQeZVpgv9XZKgyJK5xwpyt07+pGid0yl/exvzI= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1713524150; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references:autocrypt:autocrypt; bh=+eDlP0GXeaIF83Qe51uKYZokv7IFy3qY56Hm+J20J/o=; b=hkT2mmoDS5RLZkYijcYlLMLBSUFLckwbwZ6+UTtYdK2rywyIOgjzMLfBTsj60BE748SOqy 2Y583Nxy8QareyahQHl3ct+RNzHL3Ms0nz/1/jR3TrC/AYk0nS3aaUdjAAZV7YlIsZYPiU 7z3pY0keaKJjcLbtR67Nd0+VrrHAFjg= Received: from mail-qv1-f70.google.com (mail-qv1-f70.google.com [209.85.219.70]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-214-KCQ8zk4SPvKvqv1bobuxVg-1; Fri, 19 Apr 2024 06:55:48 -0400 X-MC-Unique: KCQ8zk4SPvKvqv1bobuxVg-1 Received: by mail-qv1-f70.google.com with SMTP id 6a1803df08f44-6990dbf027dso22272316d6.0 for ; Fri, 19 Apr 2024 03:55:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1713524147; x=1714128947; h=in-reply-to:autocrypt:from:content-language:references:cc:to :subject:user-agent:mime-version:date:message-id:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=+eDlP0GXeaIF83Qe51uKYZokv7IFy3qY56Hm+J20J/o=; b=bFsFbx5LzuQCH5WO/97YoyAoDMmx845NbBry8Tlz32jWBdBK6Q+WSkNZwdsttF9NYY tzGdG4h5EzU38IE9fSZibrFUBzli6oXAidF99mOJ8wdCc6AYHYWYgXMuUGJvHhHDJjtq mtbru5NAjpP4OXnE76rfdSd/SnJbCsY9Rq5luNAeuhYWLVUyG9RvrNP4h5lPmbFrRzTP j4Royokvof9kp/TiZ4uee1kOw2Qe0F/WGvEm7yySUXUAaZ8iJrkLf6Tsq3TdblQqXkBg O0g1TqwRCDP2HS8Evm2HFni7/bCo5tps6IvR+NC6N59SORBe6ppZrfDWpdRGkiMoi/DD h/5Q== X-Gm-Message-State: AOJu0YzoQsMWMFkHeaXLSUjAgabCpJDsJotSoYF5KcEQoKgw+YFYtByP caNPt3SMuEBZWMx8QWsDHa0FWhHDuqJKPsr8563U0YBLAyx6yKzLAnHNbxqzeB361BAcGEilgoP DsKYHtmSaR5dj7gm0LBJk1xRfvcK3ZMom97DWj7LwqSFDp8J+LNMw08l4rtRS/aI= X-Received: by 2002:a05:620a:12c4:b0:788:32c4:7d05 with SMTP id e4-20020a05620a12c400b0078832c47d05mr1963031qkl.17.1713524147494; Fri, 19 Apr 2024 03:55:47 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEa37stnee3IyQHFmCgLfUOos8nqFzVFr/KiMY5FI9Vb6zmhbmMMbEP9JNKkJqxHxGGvzSN5Q== X-Received: by 2002:a05:620a:12c4:b0:788:32c4:7d05 with SMTP id e4-20020a05620a12c400b0078832c47d05mr1963013qkl.17.1713524147000; Fri, 19 Apr 2024 03:55:47 -0700 (PDT) Received: from [192.168.1.18] ([79.123.79.31]) by smtp.gmail.com with ESMTPSA id w5-20020ae9e505000000b0078ee852d769sm1467945qkf.52.2024.04.19.03.55.45 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 Apr 2024 03:55:46 -0700 (PDT) Message-ID: Date: Fri, 19 Apr 2024 11:55:44 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: Commit: readelf: Improve display of RELR relocations To: Fangrui Song Cc: binutils@sourceware.org References: <87edbb99kx.fsf@redhat.com> From: Nick Clifton Autocrypt: addr=nickc@redhat.com; keydata= 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 6susi2ReUyNJEJaSnjO5z13TQ1U= In-Reply-To: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------RXYVz1tJBbDBJEum2UxBCeHu" Content-Language: en-GB X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H4,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------RXYVz1tJBbDBJEum2UxBCeHu Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi Fangrui Song, > Relocation section '.relr.dyn' at offset 0x1f4 contains 2 entries: > > Considering REL/RELA output, users might misinterpret "entries" as > "relocation entries" instead of referring to RELR words. > Overall, the number of relocation entries seems more valuable than the > number of RELR words (users can infer the number from the section > size, or the new "Index:" column). A fair point. >> The patch also checks for malformed RELR entries (such as an entry >> with a value of just 1). > > Trailing 1 can be utilized by linkers to avoid convergence issues > (https://reviews.llvm.org/D67164): Interesting. I had not realised that that could happen. So how about the attached patch ? It changes the start of the RELR section display so that it looks something like this: Relocation section '.relr.dyn' at offset 0x1a0 contains 3 entries which relocate 27 locations: It also removes the warning about an no-op bitmap entry. The patch is inefficient in that the section data is loaded twice, once to count the entries and a second time to display them. But this can always be fixed up later if it proves to be a significant overhead. In my testing I did not encounter any delays because of the double load... Cheers Nick --------------RXYVz1tJBbDBJEum2UxBCeHu Content-Type: application/x-troff-man; name="readelf.relr.patch.2" Content-Disposition: attachment; filename="readelf.relr.patch.2" Content-Transfer-Encoding: 7bit diff --git a/binutils/readelf.c b/binutils/readelf.c index e0cf718aa28..02105f49f3e 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -1548,6 +1548,10 @@ get_symbol_at (Elf_Internal_Sym * symtab, Elf_Internal_Sym * best = NULL; uint64_t dist = 0x100000; + /* Paranoia. */ + if (symtab == NULL || nsyms == 0 || strtab == NULL || strtablen == 0) + return NULL; + /* FIXME: Since this function is likely to be called repeatedly with slightly increasing addresses each time, we could speed things up by caching the last returned value and starting our search from there. */ @@ -1624,6 +1628,66 @@ symcmp (const void *p, const void *q) return sp->st_value > sq->st_value ? 1 : (sp->st_value < sq->st_value ? -1 : 0); } +static uint64_t +count_relr_relocations (Filedata * filedata, + Elf_Internal_Shdr * section) +{ + uint64_t * relrs; + uint64_t nentries; + uint64_t i; + uint64_t count; + int entsize; + + if (section == NULL + || section->sh_type != SHT_RELR + || section->sh_size == 0) + return 0; + + /* FIXME: This call to get_data duplicates one that follows in + dump_relr_relocations(). They should be combined into just + one call. */ + relrs = get_data (NULL, filedata, section->sh_offset, 1, + section->sh_size, _("RELR relocation data")); + if (relrs == NULL) + return 0; + + entsize = section->sh_entsize; + if (entsize == 0) + entsize = is_32bit_elf ? 4 : 8; + + nentries = section->sh_size / entsize; + /* It is theoretically possible for nentries to be 1. */ + if (nentries == 0) + return 0; + + for (count = i = 0; i < nentries; i++) + { + uint64_t entry; + + if (entsize == 4) + entry = BYTE_GET (((Elf32_External_Relr *)relrs)[i].r_data); + else + entry = BYTE_GET (((Elf64_External_Relr *)relrs)[i].r_data); + + if ((entry & 1) == 0) + { + ++ count; + } + else + { + if (entry == 1) + continue; + + for (; entry >>= 1;) + if ((entry & 1) == 1) + ++ count; + } + } + + free (relrs); + return count; +} + static bool dump_relr_relocations (Filedata * filedata, Elf_Internal_Shdr * section, @@ -1649,6 +1713,10 @@ dump_relr_relocations (Filedata * filedata, nentries = relr_size / relr_entsize; + /* It is theoretically possible for nentries to be 1. */ + if (nentries == 0) + return true; + if (relr_entsize == sizeof (Elf32_External_Relr)) num_bits_in_entry = 31; else if (relr_entsize == sizeof (Elf64_External_Relr)) @@ -1656,14 +1724,18 @@ dump_relr_relocations (Filedata * filedata, else { warn (_("Unexpected entsize for RELR section\n")); + free (relrs); return false; } - - /* Symbol tables are not sorted on address, but we want a quick lookup - for the symbol associated with each address computed below, so sort - the table now. FIXME: This assumes that the symbol table will not - be used later on for some other purpose. */ - qsort (symtab, nsyms, sizeof (Elf_Internal_Sym), symcmp); + + if (symtab != NULL) + { + /* Symbol tables are not sorted on address, but we want a quick lookup + for the symbol associated with each address computed below, so sort + the table now. FIXME: This assumes that the symbol table will not + be used later on for some other purpose. */ + qsort (symtab, nsyms, sizeof (Elf_Internal_Sym), symcmp); + } if (relr_entsize == 4) printf (_ ("Index: Entry Address Symbolic Address\n")); @@ -1698,7 +1770,9 @@ dump_relr_relocations (Filedata * filedata, /* The least significant bit is ignored. */ if (entry == 1) - warn (_("Malformed RELR bitmap - no significant bits are set\n")); + /* This can actually happen when the linker is allowed to shrink + RELR sections. For more details see: https://reviews.llvm.org/D67164. */ + continue; else if (i == 0) warn (_("Unusual RELR bitmap - no previous entry to set the base address\n")); @@ -9077,12 +9151,31 @@ display_relocations (Elf_Internal_Shdr * section, uint64_t num_rela = rel_size / section->sh_entsize; uint64_t rel_offset = section->sh_offset; - printf (ngettext (" at offset %#" PRIx64 - " contains %" PRIu64 " entry:\n", - " at offset %#" PRIx64 - " contains %" PRId64 " entries:\n", - num_rela), - rel_offset, num_rela); + if (rel_type == reltype_relr) + { + /* Just stating the 'number of entries' in a RELR section can be + misleading, since this is not the number of locations relocated, but + the number of words in the compressed RELR format. So also provide + the number of locations affected. */ + if (num_rela == 1) + /* This is unlikely, but possible. */ + printf (_(" at offset %#" PRIx64 + " contains 1 entry which relocates 1 location:\n"), + rel_offset); + else + printf (_(" at offset %#" PRIx64 " contains %" PRId64 + " entries which relocate %" PRId64 " locations:\n"), + rel_offset, num_rela, count_relr_relocations (filedata, section)); + } + else + { + printf (ngettext (" at offset %#" PRIx64 + " contains %" PRIu64 " entry:\n", + " at offset %#" PRIx64 + " contains %" PRId64 " entries:\n", + num_rela), + rel_offset, num_rela); + } Elf_Internal_Shdr * symsec; Elf_Internal_Sym * symtab = NULL; diff --git a/ld/testsuite/ld-elf/dt-relr-2b.d b/ld/testsuite/ld-elf/dt-relr-2b.d index f9c688087f9..6c66d56eade 100644 --- a/ld/testsuite/ld-elf/dt-relr-2b.d +++ b/ld/testsuite/ld-elf/dt-relr-2b.d @@ -12,7 +12,7 @@ Relocation section '\.rel(a|)\.dyn' at offset 0x[0-9a-f]+ contains 1 entry: #... [0-9a-f]+ +[0-9a-f]+ +R_.*_(RELATIVE|UADDR.*) .* #... -Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries: +Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +data 0001: +[0-9a-f]+ [0-9a-f]+ +data \+ 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-elf/dt-relr-2c.d b/ld/testsuite/ld-elf/dt-relr-2c.d index d9e3698a8f0..cc37375e4e5 100644 --- a/ld/testsuite/ld-elf/dt-relr-2c.d +++ b/ld/testsuite/ld-elf/dt-relr-2c.d @@ -12,7 +12,7 @@ Relocation section '\.rel(a|)\.dyn' at offset 0x[0-9a-f]+ contains 2 entries: #... [0-9a-f]+ +[0-9a-f]+ +R_.*_(RELATIVE|UADDR.*) .* #... -Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries: +Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +.* 0001: +[0-9a-f]+ [0-9a-f]+ +.* diff --git a/ld/testsuite/ld-elf/dt-relr-2d.d b/ld/testsuite/ld-elf/dt-relr-2d.d index 69863bddec4..d149e77bd68 100644 --- a/ld/testsuite/ld-elf/dt-relr-2d.d +++ b/ld/testsuite/ld-elf/dt-relr-2d.d @@ -12,7 +12,7 @@ Relocation section '\.rel(a|)\.dyn' at offset 0x[0-9a-f]+ contains 1 entry: #... [0-9a-f]+ +[0-9a-f]+ +R_.*_(RELATIVE|UADDR.*) .* #... -Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries: +Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +data 0001: +[0-9a-f]+ [0-9a-f]+ +data \+ 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-elf/dt-relr-2e.d b/ld/testsuite/ld-elf/dt-relr-2e.d index e047c0d6529..e6b478cb5f0 100644 --- a/ld/testsuite/ld-elf/dt-relr-2e.d +++ b/ld/testsuite/ld-elf/dt-relr-2e.d @@ -12,7 +12,7 @@ Relocation section '\.rel(a|)\.data' at offset 0x[0-9a-f]+ contains 1 entry: #... [0-9a-f]+ +[0-9a-f]+ +R_.*_(RELATIVE|UADDR.*) .* #... -Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries: +Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +data 0001: +[0-9a-f]+ [0-9a-f]+ +data \+ 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-elf/dt-relr-2i.d b/ld/testsuite/ld-elf/dt-relr-2i.d index a328ccb92e5..2a07fcb1a71 100644 --- a/ld/testsuite/ld-elf/dt-relr-2i.d +++ b/ld/testsuite/ld-elf/dt-relr-2i.d @@ -12,7 +12,7 @@ Relocation section '\.rel(a|)\.dyn' at offset 0x[0-9a-f]+ contains 1 entry: #... [0-9a-f]+ +[0-9a-f]+ +R_.*_(RELATIVE|UADDR.*) .* #... -Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries: +Relocation section '\.relr\.dyn' at offset 0x[0-9a-f]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +data 0001: +[0-9a-f]+ [0-9a-f]+ +data \+ 0x[0-9a-f]+ diff --git a/ld/testsuite/ld-i386/dt-relr-1a.d b/ld/testsuite/ld-i386/dt-relr-1a.d index 89cc636f4bc..282540b8b50 100644 --- a/ld/testsuite/ld-i386/dt-relr-1a.d +++ b/ld/testsuite/ld-i386/dt-relr-1a.d @@ -13,7 +13,7 @@ Relocation section '\.rel\.plt' at offset 0x[0-9a-f]+ contains 1 entry: +Offset +Info +Type +Sym. Value +Symbol's Name [0-9a-f]+ +[0-9a-f]+ +R_386_JUMP_SLOT +0+ +func1 -Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries: +Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +.* 0001: +[0-9a-f]+ [0-9a-f]+ +.* diff --git a/ld/testsuite/ld-i386/dt-relr-1b.d b/ld/testsuite/ld-i386/dt-relr-1b.d index 6e7f3ca0a25..ff027257e15 100644 --- a/ld/testsuite/ld-i386/dt-relr-1b.d +++ b/ld/testsuite/ld-i386/dt-relr-1b.d @@ -16,7 +16,7 @@ Relocation section '\.rel\.plt' at offset 0x[0-9a-f]+ contains 1 entry: +Offset +Info +Type +Sym. Value +Symbol's Name [0-9a-f]+ +[0-9a-f]+ +R_386_JUMP_SLOT +0+ +func1 -Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries: +Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +.* 0001: +[0-9a-f]+ [0-9a-f]+ +.* diff --git a/ld/testsuite/ld-powerpc/abs-pie-relr.r b/ld/testsuite/ld-powerpc/abs-pie-relr.r index e84b0af115b..37c64f38bc6 100644 --- a/ld/testsuite/ld-powerpc/abs-pie-relr.r +++ b/ld/testsuite/ld-powerpc/abs-pie-relr.r @@ -3,6 +3,6 @@ #ld: -melf64ppc -pie --hash-style=sysv -z pack-relative-relocs --defsym a=1 --defsym 'HIDDEN(b=2)' --defsym c=0x123456789abcdef0 #readelf: -rW -Relocation section '\.relr\.dyn' at offset .* contains 1 entry: +Relocation section '\.relr\.dyn' at offset .* contains 1 entry which relocates 1 location: Index: Entry Address Symbolic Address 0000: +[0-9a-f]+ [0-9a-f]+ +x diff --git a/ld/testsuite/ld-powerpc/abs-shared-relr.r b/ld/testsuite/ld-powerpc/abs-shared-relr.r index ce1a7eee339..3f36c5d877f 100644 --- a/ld/testsuite/ld-powerpc/abs-shared-relr.r +++ b/ld/testsuite/ld-powerpc/abs-shared-relr.r @@ -12,7 +12,7 @@ Relocation section '\.rela\.dyn' at offset .* contains 6 entries: 0+10428 0+400000014 R_PPC64_GLOB_DAT 123456789abcdef0 c \+ 0 0+10450 0+400000026 R_PPC64_ADDR64 123456789abcdef0 c \+ 0 -Relocation section '\.relr\.dyn' at offset .* contains 1 entry: +Relocation section '\.relr\.dyn' at offset .* contains 1 entry which relocates 1 location: Index: Entry Address Symbolic Address 0000: +[0-9a-f]+ [0-9a-f]+ +x diff --git a/ld/testsuite/ld-x86-64/dt-relr-1a-x32.d b/ld/testsuite/ld-x86-64/dt-relr-1a-x32.d index 863e97a7980..dd2b73e1f5e 100644 --- a/ld/testsuite/ld-x86-64/dt-relr-1a-x32.d +++ b/ld/testsuite/ld-x86-64/dt-relr-1a-x32.d @@ -13,7 +13,7 @@ Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entry: +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend [0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +func1 \+ 0 -Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries: +Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +.* 0001: +[0-9a-f]+ [0-9a-f]+ +.* diff --git a/ld/testsuite/ld-x86-64/dt-relr-1a.d b/ld/testsuite/ld-x86-64/dt-relr-1a.d index 30af87535c9..c7a74e398a5 100644 --- a/ld/testsuite/ld-x86-64/dt-relr-1a.d +++ b/ld/testsuite/ld-x86-64/dt-relr-1a.d @@ -13,7 +13,7 @@ Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entry: +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend [0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +func1 \+ 0 -Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries: +Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +.* 0001: +[0-9a-f]+ [0-9a-f]+ +.* diff --git a/ld/testsuite/ld-x86-64/dt-relr-1b-x32.d b/ld/testsuite/ld-x86-64/dt-relr-1b-x32.d index 3c37bcd5358..bc582aea1b0 100644 --- a/ld/testsuite/ld-x86-64/dt-relr-1b-x32.d +++ b/ld/testsuite/ld-x86-64/dt-relr-1b-x32.d @@ -16,7 +16,7 @@ Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entry: +Offset +Info +Type +Sym. Value +Symbol's Name \+ Addend [0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +func1 \+ 0 -Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries: +Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +.* 0001: +[0-9a-f]+ [0-9a-f]+ +.* diff --git a/ld/testsuite/ld-x86-64/dt-relr-1b.d b/ld/testsuite/ld-x86-64/dt-relr-1b.d index bc07cf89b26..c3fddb08e20 100644 --- a/ld/testsuite/ld-x86-64/dt-relr-1b.d +++ b/ld/testsuite/ld-x86-64/dt-relr-1b.d @@ -16,7 +16,7 @@ Relocation section '.rela.plt' at offset 0x[0-9a-f]+ contains 1 entry: +Offset +Info +Type +Symbol's Value +Symbol's Name \+ Addend [0-9a-f]+ +[0-9a-f]+ +R_X86_64_JUMP_SLOT +0+ +func1 \+ 0 -Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries: +Relocation section '.relr.dyn' at offset 0x[a-f0-9]+ contains 2 entries which relocate [0-9]+ locations: #... 0000: +[0-9a-f]+ [0-9a-f]+ +.* 0001: +[0-9a-f]+ [0-9a-f]+ +.* --------------RXYVz1tJBbDBJEum2UxBCeHu--