public inbox for elfutils@sourceware.org
 help / color / mirror / Atom feed
* [PATCH] LoongArch: implemented a basic machine flag check
@ 2023-03-20 14:45 Alexey Sheplyakov
  2023-03-20 22:35 ` Mark Wielaard
  0 siblings, 1 reply; 2+ messages in thread
From: Alexey Sheplyakov @ 2023-03-20 14:45 UTC (permalink / raw)
  To: elfutils-devel; +Cc: Alexey Sheplyakov

With this patch I can use eu-elflint to verify LoongArch ELF
binaries. Previously eu-elflint was complaining about invalid
machine flags:

$ ./src/elflint --gnu-ld ./src/elflint
invalid machine flags: 0x43
$ echo $?
1

Signed-off-by: Alexey Sheplyakov <asheplyakov@basealt.ru>
---
 backends/loongarch_init.c   | 1 +
 backends/loongarch_symbol.c | 7 +++++++
 2 files changed, 8 insertions(+)

diff --git a/backends/loongarch_init.c b/backends/loongarch_init.c
index a8ed9e81..59d8cc3d 100644
--- a/backends/loongarch_init.c
+++ b/backends/loongarch_init.c
@@ -45,6 +45,7 @@ loongarch_init (Elf *elf __attribute__ ((unused)),
 {
   loongarch_init_reloc (eh);
   HOOK (eh, reloc_simple_type);
+  HOOK (eh, machine_flag_check);
 
   return eh;
 }
diff --git a/backends/loongarch_symbol.c b/backends/loongarch_symbol.c
index 8ba66a09..43306ab8 100644
--- a/backends/loongarch_symbol.c
+++ b/backends/loongarch_symbol.c
@@ -72,3 +72,10 @@ loongarch_reloc_simple_type (Ebl *ebl __attribute__ ((unused)), int type,
       return ELF_T_NUM;
     }
 }
+
+bool
+loongarch_machine_flag_check (GElf_Word flags)
+{
+  return ((flags &~ (EF_LARCH_ABI_MODIFIER_MASK
+		     | EF_LARCH_OBJABI_V1)) == 0);
+}
-- 
2.33.5


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] LoongArch: implemented a basic machine flag check
  2023-03-20 14:45 [PATCH] LoongArch: implemented a basic machine flag check Alexey Sheplyakov
@ 2023-03-20 22:35 ` Mark Wielaard
  0 siblings, 0 replies; 2+ messages in thread
From: Mark Wielaard @ 2023-03-20 22:35 UTC (permalink / raw)
  To: Alexey Sheplyakov; +Cc: elfutils-devel

Hi Alexey,

On Mon, Mar 20, 2023 at 06:45:02PM +0400, Alexey Sheplyakov wrote:
> With this patch I can use eu-elflint to verify LoongArch ELF
> binaries. Previously eu-elflint was complaining about invalid
> machine flags:
> 
> $ ./src/elflint --gnu-ld ./src/elflint
> invalid machine flags: 0x43
> $ echo $?
> 1

Thanks. I quickly peeked at the LoongArch ELF ABI specification and
this is precisely what needs to be checked.

Added a ChangeLog entry to the commit message, a reference to the
bug you filed and pushed.

Cheers,

Mark

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-03-20 22:35 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-03-20 14:45 [PATCH] LoongArch: implemented a basic machine flag check Alexey Sheplyakov
2023-03-20 22:35 ` Mark Wielaard

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).