From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from air.basealt.ru (air.basealt.ru [194.107.17.39]) by sourceware.org (Postfix) with ESMTPS id 847113858413 for ; Mon, 20 Mar 2023 14:44:41 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 847113858413 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=basealt.ru Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=basealt.ru Received: by air.basealt.ru (Postfix, from userid 490) id 93CDF2F2022A; Mon, 20 Mar 2023 14:44:40 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-Spam-Level: X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00,GIT_PATCH_0,KAM_DMARC_STATUS,SPF_HELO_NONE,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 Received: from asheplyakov-rocket.. (unknown [193.43.9.250]) by air.basealt.ru (Postfix) with ESMTPSA id 214942F20238; Mon, 20 Mar 2023 14:44:30 +0000 (UTC) From: Alexey Sheplyakov To: elfutils-devel@sourceware.org Cc: Alexey Sheplyakov Subject: [PATCH] LoongArch: implemented a basic machine flag check Date: Mon, 20 Mar 2023 18:45:02 +0400 Message-Id: <20230320144502.3807720-1-asheplyakov@basealt.ru> X-Mailer: git-send-email 2.33.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit List-Id: 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 --- 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