[PATCH] readelf: Report if no GOT section found
Sam James
sam@gentoo.org
Tue Sep 2 18:39:23 GMT 2025
Jan Beulich <jbeulich@suse.com> writes:
> On 02.09.2025 15:22, H.J. Lu wrote:
>> On Mon, Sep 1, 2025 at 11:01 PM Jan Beulich <jbeulich@suse.com> wrote:
>>>
>>> On 01.09.2025 20:00, H.J. Lu wrote:
>>>> @@ -21123,6 +21127,15 @@ process_got_section_contents (Filedata * filedata)
>>>> }
>>>>
>>>> out:
>>>> + if (! found)
>>>> + {
>>>> + if (filedata->is_separate)
>>>> + printf (_("\nThere is no GOT section in linked file '%s'.\n"),
>>>> + filedata->file_name);
>>>> + else
>>>> + printf (_("\nThere is no GOT section in this file.\n"));
>>>> + }
>>>
>>> I think that no such warning should appear when --got-contents wasn't used,
>>> but was implied from --all.
>>>
>>
>> It just follows "readelf -a" for other options:
>>
>> [hjl@gnu-cfl-3 tmp]$ rm x.c
>> [hjl@gnu-cfl-3 tmp]$ touch x.c
>> [hjl@gnu-cfl-3 tmp]$ gcc -c x.c
>> [hjl@gnu-cfl-3 tmp]$ readelf -a x.o
>> ELF Header:
>> Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
>> Class: ELF64
>> Data: 2's complement, little endian
>> Version: 1 (current)
>> OS/ABI: UNIX - System V
>> ABI Version: 0
>> Type: REL (Relocatable file)
>> Machine: Advanced Micro Devices X86-64
>> Version: 0x1
>> Entry point address: 0x0
>> Start of program headers: 0 (bytes into file)
>> Start of section headers: 304 (bytes into file)
>> Flags: 0x0
>> Size of this header: 64 (bytes)
>> Size of program headers: 0 (bytes)
>> Number of program headers: 0
>> Size of section headers: 64 (bytes)
>> Number of section headers: 10
>> Section header string table index: 9
>>
>> Section Headers:
>> [Nr] Name Type Address Offset
>> Size EntSize Flags Link Info Align
>> [ 0] NULL 0000000000000000 00000000
>> 0000000000000000 0000000000000000 0 0 0
>> [ 1] .text PROGBITS 0000000000000000 00000040
>> 0000000000000000 0000000000000000 AX 0 0 1
>> [ 2] .data PROGBITS 0000000000000000 00000040
>> 0000000000000000 0000000000000000 WA 0 0 1
>> [ 3] .bss NOBITS 0000000000000000 00000040
>> 0000000000000000 0000000000000000 WA 0 0 1
>> [ 4] .comment PROGBITS 0000000000000000 00000040
>> 000000000000002f 0000000000000001 MS 0 0 1
>> [ 5] .note.GNU-stack PROGBITS 0000000000000000 0000006f
>> 0000000000000000 0000000000000000 0 0 1
>> [ 6] .note.gnu.pr[...] NOTE 0000000000000000 00000070
>> 0000000000000030 0000000000000000 A 0 0 8
>> [ 7] .symtab SYMTAB 0000000000000000 000000a0
>> 0000000000000030 0000000000000018 8 2 8
>> [ 8] .strtab STRTAB 0000000000000000 000000d0
>> 0000000000000005 0000000000000000 0 0 1
>> [ 9] .shstrtab STRTAB 0000000000000000 000000d5
>> 0000000000000058 0000000000000000 0 0 1
>> Key to Flags:
>> W (write), A (alloc), X (execute), M (merge), S (strings), I (info),
>> L (link order), O (extra OS processing required), G (group), T (TLS),
>> C (compressed), x (unknown), o (OS specific), E (exclude),
>> D (mbind), l (large), p (processor specific)
>>
>> There are no section groups in this file.
>>
>> There are no program headers in this file.
>>
>> There is no dynamic section in this file.
>>
>> There are no relocations in this file.
>> No processor specific unwind information to decode
>>
>> Symbol table '.symtab' contains 2 entries:
>> Num: Value Size Type Bind Vis Ndx Name
>> 0: 0000000000000000 0 NOTYPE LOCAL DEFAULT UND
>> 1: 0000000000000000 0 FILE LOCAL DEFAULT ABS x.c
>>
>> No version information found in this file.
>
> Hmm, that's not very nice imo, but well - okay then.
I find it annoying but I assumed people were fine with it. We could add
a --verbose to get those 'notes' but I don't know if it's worth it
(testsuite churn).
>
> Jan
sam
More information about the Binutils
mailing list