* [PATCH] libebl: Do not require EI_OSABI for IFUNC.
@ 2022-11-24 12:23 Martin Liška
2022-11-24 12:33 ` Mark Wielaard
0 siblings, 1 reply; 3+ messages in thread
From: Martin Liška @ 2022-11-24 12:23 UTC (permalink / raw)
To: elfutils-devel; +Cc: Mark Wielaard
Similar fix to:
https://sourceware.org/bugzilla/show_bug.cgi?id=29718
Ready for master?
Thanks,
Martin
PR 29826
libebl/ChangeLog:
* eblsymboltypename.c (ebl_symbol_type_name):
Do not require EI_OSABI for IFUNC
---
libebl/eblsymboltypename.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/libebl/eblsymboltypename.c b/libebl/eblsymboltypename.c
index 0ff1722a..3b8e7ee9 100644
--- a/libebl/eblsymboltypename.c
+++ b/libebl/eblsymboltypename.c
@@ -65,9 +65,9 @@ ebl_symbol_type_name (Ebl *ebl, int symbol, char *buf, size_t len)
snprintf (buf, len, "LOPROC+%d", symbol - STT_LOPROC);
else if (symbol == STT_GNU_IFUNC
&& ebl != NULL
- && (ident = elf_getident (ebl->elf, NULL)) != NULL
- && ident[EI_OSABI] == ELFOSABI_LINUX)
- return "GNU_IFUNC";
+ && (ident = elf_getident (ebl->elf, NULL)) != NULL)
+ return "GNU_IFUNC"; /* Ignore EI_OSABI
+ as STT_GNU_IFUNC is a reserved name. */
else if (symbol >= STT_LOOS && symbol <= STT_HIOS)
snprintf (buf, len, "LOOS+%d", symbol - STT_LOOS);
else
--
2.38.1
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] libebl: Do not require EI_OSABI for IFUNC.
2022-11-24 12:23 [PATCH] libebl: Do not require EI_OSABI for IFUNC Martin Liška
@ 2022-11-24 12:33 ` Mark Wielaard
2022-11-25 13:06 ` Martin Liška
0 siblings, 1 reply; 3+ messages in thread
From: Mark Wielaard @ 2022-11-24 12:33 UTC (permalink / raw)
To: Martin Liška, elfutils-devel
Hi Martin,
On Thu, 2022-11-24 at 13:23 +0100, Martin Liška wrote:
> Similar fix to:
> https://sourceware.org/bugzilla/show_bug.cgi?id=29718
>
> Ready for master?
Assuming runtime, glibc/ld.so, accepts this without EI_OSABI set to
ELFOSABI_LINUX, it seems ok to print it as GNU_IFUNC.
> else if (symbol == STT_GNU_IFUNC
> && ebl != NULL
> - && (ident = elf_getident (ebl->elf, NULL)) != NULL
> - && ident[EI_OSABI] == ELFOSABI_LINUX)
> - return "GNU_IFUNC";
> + && (ident = elf_getident (ebl->elf, NULL)) != NULL)
> + return "GNU_IFUNC"; /* Ignore EI_OSABI
> + as STT_GNU_IFUNC is a reserved name. */
Note that you technically also don't need the elf_getident call
anymore, except as sanity check that the ELF header can be read
properly.
OK, with and without that change.
Cheers,
Mark
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] libebl: Do not require EI_OSABI for IFUNC.
2022-11-24 12:33 ` Mark Wielaard
@ 2022-11-25 13:06 ` Martin Liška
0 siblings, 0 replies; 3+ messages in thread
From: Martin Liška @ 2022-11-25 13:06 UTC (permalink / raw)
To: Mark Wielaard, elfutils-devel
On 11/24/22 13:33, Mark Wielaard wrote:
> Hi Martin,
>
> On Thu, 2022-11-24 at 13:23 +0100, Martin Liška wrote:
>> Similar fix to:
>> https://sourceware.org/bugzilla/show_bug.cgi?id=29718
>>
>> Ready for master?
>
> Assuming runtime, glibc/ld.so, accepts this without EI_OSABI set to
> ELFOSABI_LINUX, it seems ok to print it as GNU_IFUNC.
>
>> else if (symbol == STT_GNU_IFUNC
>> && ebl != NULL
>> - && (ident = elf_getident (ebl->elf, NULL)) != NULL
>> - && ident[EI_OSABI] == ELFOSABI_LINUX)
>> - return "GNU_IFUNC";
>> + && (ident = elf_getident (ebl->elf, NULL)) != NULL)
>> + return "GNU_IFUNC"; /* Ignore EI_OSABI
>> + as STT_GNU_IFUNC is a reserved name. */
>
> Note that you technically also don't need the elf_getident call
> anymore, except as sanity check that the ELF header can be read
> properly.
>
> OK, with and without that change.
Sorry, I decided to scratch this as it violates the standard:
https://sourceware.org/bugzilla/show_bug.cgi?id=29718#c6
Cheers,
Martin
>
> Cheers,
>
> Mark
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-11-25 13:06 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-11-24 12:23 [PATCH] libebl: Do not require EI_OSABI for IFUNC Martin Liška
2022-11-24 12:33 ` Mark Wielaard
2022-11-25 13:06 ` Martin Liška
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).