From nobody Thu Mar 28 15:08:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1568144211; cv=none; d=zoho.com; s=zohoarc; b=J3sY15S5HAjJdJ492hqTnqq537sl5LekRo6N2XmMR+nuPfcVWYXX1moOpo42S/gXUoRo+NEflm79RLgz2qj1bpnZ1kuQLASnthGDFMHB+9sFIOaZ8pbtwmX8r/w2oawG8scadei3L1dKe3OaCbV+OJSLn1+o9Plhsh7UT+w18v4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568144211; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=5XyzKPTEVeMZHoyBnFttJunUqWTPcDprpKPpXz8/JuA=; b=GhFk+RgeA3ylTH7lch9vEwmv2KAs4k7mDWRmaQSBRlsMNnxWBqMxF/G2FHstNcZM1oBlnLSiqLlIZ0xuwAKjH7F7S/BNqnet+//YkkhjAVcVeeMUrEXRtSfLvG4L53m5q8+JcgTUyHU8fK4RKZJ3nAC10zu9Rzhs97XKe7cwg/o= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1568144211695718.1042270989857; Tue, 10 Sep 2019 12:36:51 -0700 (PDT) Received: from localhost ([::1]:44380 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7lwQ-0002o3-83 for importer@patchew.org; Tue, 10 Sep 2019 15:36:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58855) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7lu1-0000vG-Kn for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:14 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i7lu0-0006jh-9Q for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:13 -0400 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]:33750) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i7lu0-0006j7-1X for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:12 -0400 Received: by mail-wr1-x42f.google.com with SMTP id u16so21922418wrr.0 for ; Tue, 10 Sep 2019 12:34:11 -0700 (PDT) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id l5sm491162wmj.4.2019.09.10.12.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Sep 2019 12:34:09 -0700 (PDT) Received: from zen.lan (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id BC91C1FF8C; Tue, 10 Sep 2019 20:34:08 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5XyzKPTEVeMZHoyBnFttJunUqWTPcDprpKPpXz8/JuA=; b=vTpQxAdJ9xknXNw4aCUYvm+cIC5kA4DL2Qc14EeUWTGi+OAlGOtBRh95WXWVH94Jg3 z28cpsdaComFtDOjngozTVfzXRtK2mFlUskHi+4aRV+z0PIozhy9SEBtjjmDJC8fksVv kFAxNjyTlNTrrcp5n1vL/RAAqRyEpPLJf+OW3jWdDBTyFADBwHXpDi6u0iQNEM3kDom0 joq2XD/LHtZveyctgCqqWX258ApFKG7vY9rLaOVAeBqKmiJwVcuKk6UcyNIogbkHF4N1 B2xcuQglqulqMic/nGsTKQYdCmUMa1UrjcPbUd1xZYu7Dwp2jSCG8bPssL2xkILzlPea /CZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5XyzKPTEVeMZHoyBnFttJunUqWTPcDprpKPpXz8/JuA=; b=QgAmif/8OhwaRfKj6sXF5q7Jy6Rvb94AACgs8YG56zKGS8f6Zt3kF8UsjB36IGwzYJ F95cf/1gZJ15OeL21Jv7S431zVYa/8KljVvudipxfElr1hmx8E39ZGx1p60aq1xjQj8D WrlzH1sxPOxJOsNUBzQgsJnSasT9mb6TyBncsKQ1LUrGDhJoRo4Wqyw/RlOz6aQpjmfL 2oBgkUdLl2hQ7U8DRENPqHr0J885OShMyZk7jVRTGAwsLcSrw2PD8t4CizO8+nOuyzu3 l0aXN0xvDmMM59njiDYZ78pC4XKrJk2tBDCVT/ZyJjGuoTBjuEhGJxWSc8w+KczfxAwl otUw== X-Gm-Message-State: APjAAAVGBbx6jirXqGjUkLWkLErqDjCiS6c9/9NHyOkRZ1y2pGiDaWev SIG4NMUDBqlNczd44Vj96k12Mw== X-Google-Smtp-Source: APXvYqyCEDBd91xxb7wScgd6BO98tutxGsl8NiCoFSUi+jkVtPIhQG/gFY/KPz5APtxc3I94ACew/Q== X-Received: by 2002:adf:dc43:: with SMTP id m3mr28062078wrj.118.1568144050368; Tue, 10 Sep 2019 12:34:10 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Tue, 10 Sep 2019 20:34:05 +0100 Message-Id: <20190910193408.28917-2-alex.bennee@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190910193408.28917-1-alex.bennee@linaro.org> References: <20190910193408.28917-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::42f Subject: [Qemu-devel] [PATCH v1 1/4] target/ppc: fix signal delivery for ppc64abi32 X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Riku Voipio , qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-devel@nongnu.org, Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) We were incorrectly setting NIP resulting in a segfault. This fixes linux-test for this ABI. Signed-off-by: Alex Benn=C3=A9e --- linux-user/ppc/signal.c | 4 +++- tests/tcg/configure.sh | 1 + tests/tcg/multiarch/Makefile.target | 5 ----- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/linux-user/ppc/signal.c b/linux-user/ppc/signal.c index 619a56950df..5b82af6cb62 100644 --- a/linux-user/ppc/signal.c +++ b/linux-user/ppc/signal.c @@ -501,7 +501,9 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, int i, err =3D 0; #if defined(TARGET_PPC64) struct target_sigcontext *sc =3D 0; +#if !defined(TARGET_ABI32) struct image_info *image =3D ((TaskState *)thread_cpu->opaque)->info; +#endif #endif =20 rt_sf_addr =3D get_sigframe(ka, env, sizeof(*rt_sf)); @@ -557,7 +559,7 @@ void setup_rt_frame(int sig, struct target_sigaction *k= a, env->gpr[5] =3D (target_ulong) h2g(&rt_sf->uc); env->gpr[6] =3D (target_ulong) h2g(rt_sf); =20 -#if defined(TARGET_PPC64) +#if defined(TARGET_PPC64) && !defined(TARGET_ABI32) if (get_ppc64_abi(image) < 2) { /* ELFv1 PPC64 function pointers are pointers to OPD entries. */ struct target_func_ptr *handler =3D diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh index 6c4a471aeae..e8a1a1495fc 100755 --- a/tests/tcg/configure.sh +++ b/tests/tcg/configure.sh @@ -54,6 +54,7 @@ fi : ${cross_cc_cflags_ppc=3D"-m32"} : ${cross_cc_ppc64=3D"powerpc-linux-gnu-gcc"} : ${cross_cc_cflags_ppc64=3D"-m64"} +: ${cross_cc_cflags_ppc64abi32=3D"-mcpu=3Dpower8"} : ${cross_cc_ppc64le=3D"powerpc64le-linux-gnu-gcc"} : ${cross_cc_cflags_s390x=3D"-m64"} : ${cross_cc_cflags_sparc=3D"-m32 -mv8plus -mcpu=3Dultrasparc"} diff --git a/tests/tcg/multiarch/Makefile.target b/tests/tcg/multiarch/Make= file.target index 6b1e30e2fec..e6893b2e283 100644 --- a/tests/tcg/multiarch/Makefile.target +++ b/tests/tcg/multiarch/Makefile.target @@ -12,11 +12,6 @@ VPATH +=3D $(MULTIARCH_SRC) MULTIARCH_SRCS =3D$(notdir $(wildcard $(MULTIARCH_SRC)/*.c)) MULTIARCH_TESTS =3D$(MULTIARCH_SRCS:.c=3D) =20 -# FIXME: ppc64abi32 linux-test seems to have issues but the other basic te= sts work -ifeq ($(TARGET_NAME),ppc64abi32) -BROKEN_TESTS =3D linux-test -endif - # Update TESTS TESTS +=3D $(filter-out $(BROKEN_TESTS), $(MULTIARCH_TESTS)) =20 --=20 2.20.1 From nobody Thu Mar 28 15:08:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1568144453; cv=none; d=zoho.com; s=zohoarc; b=Di2rg7j992OoK/NOqk4Xmye4C3SBBZhFlZ5L/UKsm5j/lJLsWoMn3mp1+QadmpVS6PNN4LRAuiCCVPLRjbZ5+YPF3LmWPuuZ34QU/O42qfc1CEsE5i1/bOYpWux+c2e25FRaVxDqA2qGJADKzHgxsvYpVo9eKC693eIzN5UbeRg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568144453; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=JsFRcEl2DcaLcclzT+IneVbnyOOq8rTFO8lmcuTBMe4=; b=Vz8yozCMXJ1pDu0FQYaGKxBqVd+TxlbLR5A9ri6yBgyk3gWyAGRn/yhVmo6g0eNM9O5MYt+NYYl8UtLsgs+2ss+khovhFW4YrvKrJM+lrfDB4ISirCCsmGEEs9CLZJAQUx1X5MipSl7sVbmb47c/i4clHhYkeSsI8UBt7ljAE0E= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1568144453501686.6477232021907; Tue, 10 Sep 2019 12:40:53 -0700 (PDT) Received: from localhost ([::1]:44472 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7m0R-0007tl-ME for importer@patchew.org; Tue, 10 Sep 2019 15:40:51 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58996) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7lu8-00011y-Rq for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:25 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i7lu2-0006mA-HM for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:20 -0400 Received: from mail-wr1-x444.google.com ([2a00:1450:4864:20::444]:37267) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i7lu2-0006kU-1p for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:14 -0400 Received: by mail-wr1-x444.google.com with SMTP id i1so21292514wro.4 for ; Tue, 10 Sep 2019 12:34:13 -0700 (PDT) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id m17sm21089285wrs.9.2019.09.10.12.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Sep 2019 12:34:11 -0700 (PDT) Received: from zen.lan (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id 3CB221FF8F; Tue, 10 Sep 2019 20:34:09 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JsFRcEl2DcaLcclzT+IneVbnyOOq8rTFO8lmcuTBMe4=; b=ONaqj+CTn8G/i9Wqg/GAlSrM6b5cEGQJ4mOkSayNCso6uG+jEBpjjIl7udMbVkrnvB m+vuDQWalK0ekS1bf6DokDDiN+I2tH8uc1q7PP501nMiDbNrvl4tjjuyqSFZ4z3HmUce IsEpHQER17KsAtzm2gaM6poRNSL+aF/qxEOtdNyX1wyctkhn3jBM9zWM+vNgrdnu2+uf KNPNIchpw4Qrq3uQdjQjdqrhebhUK4fw2AEKvQh31IHGXG+ESKxhmG4vwNuOF6+Q0Crg 3QB5Yvs885z5/UBD6QtksZK1oVtE1SU3BPMHzsAM0SUQCsxP3wy5F29ItDJ8KpmgkwKP l9KQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JsFRcEl2DcaLcclzT+IneVbnyOOq8rTFO8lmcuTBMe4=; b=KmqZRWU/yKsCwd0VlBLw/gzgetktxR5rWPa5tOqxPy/05uhZRkQLlJHsQbbz9mo5in sry1/c7pECCgFMewaQJDly/iCc+8wK8Qvm1zD54mLNxtjEziPVho7zfx9o7/B/YXxe5I 2YTfYHaPxgjLvrLMGz9ga21MIotuQv/YmBPyiKOXWGp0/A/69gakMZuF4q1ukumHvNtd XfUuBNJTKBrbCaDRXMhCaMkca0CIcQjgfCPboaPVGT68aAu2aV3RLckDv91V45BC+Gew VlzzuGCHf69pRN1DwVF2i58QAzDx69EHb6vNBzGRaLCxwexYPaxPsSazQePEBca192iS iQ/w== X-Gm-Message-State: APjAAAUa0x3GehkSVg7RdVDXpNSnaOCOQmyLvFc3QYkDsnAgLsqSQw7J Nf/ENNLCjBoJXn0yS8z149D7UA== X-Google-Smtp-Source: APXvYqzXRGV/EoI/8ddatC6iRcUwwBxRDVwmDX8VH+TU784R4+XXm4estppoH+KeFR4TaoUscX6SYQ== X-Received: by 2002:adf:e4cd:: with SMTP id v13mr9918723wrm.165.1568144052158; Tue, 10 Sep 2019 12:34:12 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Tue, 10 Sep 2019 20:34:06 +0100 Message-Id: <20190910193408.28917-3-alex.bennee@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190910193408.28917-1-alex.bennee@linaro.org> References: <20190910193408.28917-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::444 Subject: [Qemu-devel] [PATCH v1 2/4] elf: move elf.h to elf/elf.h and split out types X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Cornelia Huck , Sagar Karandikar , "Michael S. Tsirkin" , Anthony Green , Palmer Dabbelt , Mark Cave-Ayland , qemu-devel@nongnu.org, Max Filippov , KONRAD Frederic , Alistair Francis , "Edgar E. Iglesias" , Marek Vasut , Jia Liu , Aleksandar Rikalo , Helge Deller , David Hildenbrand , Halil Pasic , Christian Borntraeger , =?UTF-8?q?Herv=C3=A9=20Poussineau?= , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , David Gibson , Artyom Tarasenko , Eduardo Habkost , Riku Voipio , Fabien Chouteau , "open list:S390-ccw boot" , qemu-arm@nongnu.org, Stafford Horne , =?UTF-8?q?Alex=20Benn=C3=A9e?= , Richard Henderson , "open list:RISC-V TCG CPUs" , Viktor Prutyanov , Thomas Huth , Bastian Koppelmann , Chris Wulff , Laurent Vivier , Michael Walle , "open list:PReP" , Aleksandar Markovic , Paolo Bonzini , Aurelien Jarno Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Most of the users of elf.h just want the standard Elf definitions. The couple that want more than that want an expansion based on ELF_CLASS which can be used for size agnostic code. The later is moved into elf/elf-types.inc.h to make it clearer what it is for. While doing that I also removed the whitespace damage. Signed-off-by: Alex Benn=C3=A9e Acked-by: David Gibson Reviewed-by: Laurent Vivier Reviewed-by: Richard Henderson --- bsd-user/elfload.c | 2 +- contrib/elf2dmp/qemu_elf.h | 2 +- disas.c | 2 +- dump/dump.c | 2 +- dump/win_dump.c | 2 +- hw/alpha/dp264.c | 2 +- hw/arm/armv7m.c | 2 +- hw/arm/boot.c | 2 +- hw/core/loader.c | 3 +- hw/cris/axis_dev88.c | 2 +- hw/cris/boot.c | 2 +- hw/hppa/machine.c | 2 +- hw/i386/multiboot.c | 2 +- hw/i386/pc.c | 2 +- hw/lm32/lm32_boards.c | 2 +- hw/lm32/milkymist.c | 2 +- hw/m68k/an5206.c | 2 +- hw/m68k/mcf5208.c | 2 +- hw/microblaze/boot.c | 2 +- hw/mips/mips_fulong2e.c | 2 +- hw/mips/mips_malta.c | 2 +- hw/mips/mips_mipssim.c | 2 +- hw/mips/mips_r4k.c | 2 +- hw/moxie/moxiesim.c | 2 +- hw/nios2/boot.c | 2 +- hw/openrisc/openrisc_sim.c | 2 +- hw/pci-host/prep.c | 2 +- hw/ppc/e500.c | 2 +- hw/ppc/mac_newworld.c | 2 +- hw/ppc/mac_oldworld.c | 2 +- hw/ppc/ppc440_bamboo.c | 2 +- hw/ppc/prep.c | 2 +- hw/ppc/sam460ex.c | 2 +- hw/ppc/spapr.c | 2 +- hw/ppc/spapr_vio.c | 2 +- hw/ppc/virtex_ml507.c | 2 +- hw/riscv/boot.c | 2 +- hw/s390x/ipl.c | 2 +- hw/sparc/leon3.c | 2 +- hw/sparc/sun4m.c | 2 +- hw/sparc64/sun4u.c | 2 +- hw/tricore/tricore_testboard.c | 2 +- hw/xtensa/sim.c | 2 +- hw/xtensa/xtfpga.c | 2 +- include/elf/elf-types.inc.h | 63 ++++++++++++++++++++++++++++++++ include/{ =3D> elf}/elf.h | 42 --------------------- include/hw/core/generic-loader.h | 2 +- linux-user/arm/cpu_loop.c | 2 +- linux-user/elfload.c | 5 +-- linux-user/main.c | 2 +- linux-user/mips/cpu_loop.c | 2 +- linux-user/riscv/cpu_loop.c | 2 +- target/arm/arch_dump.c | 2 +- target/i386/arch_dump.c | 2 +- target/ppc/arch_dump.c | 2 +- target/ppc/kvm.c | 2 +- target/s390x/arch_dump.c | 2 +- tcg/arm/tcg-target.inc.c | 2 +- tcg/ppc/tcg-target.inc.c | 2 +- tcg/s390/tcg-target.inc.c | 2 +- tcg/tcg.c | 5 ++- util/getauxval.c | 2 +- 62 files changed, 128 insertions(+), 104 deletions(-) create mode 100644 include/elf/elf-types.inc.h rename include/{ =3D> elf}/elf.h (98%) diff --git a/bsd-user/elfload.c b/bsd-user/elfload.c index 32378af7b2e..321ee98b86b 100644 --- a/bsd-user/elfload.c +++ b/bsd-user/elfload.c @@ -509,7 +509,7 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i #define bswaptls(ptr) bswap32s(ptr) #endif =20 -#include "elf.h" +#include "elf/elf.h" =20 struct exec { diff --git a/contrib/elf2dmp/qemu_elf.h b/contrib/elf2dmp/qemu_elf.h index b2f0d9cbc9b..060d148d7f0 100644 --- a/contrib/elf2dmp/qemu_elf.h +++ b/contrib/elf2dmp/qemu_elf.h @@ -7,7 +7,7 @@ #ifndef ELF2DMP_QEMU_ELF_H #define ELF2DMP_QEMU_ELF_H =20 -#include "elf.h" +#include "elf/elf.h" =20 typedef struct QEMUCPUSegment { uint32_t selector; diff --git a/disas.c b/disas.c index 3e2bfa572b1..6f2370cfda7 100644 --- a/disas.c +++ b/disas.c @@ -1,7 +1,7 @@ /* General "disassemble this chunk" code. Used for debugging. */ #include "qemu/osdep.h" #include "disas/dis-asm.h" -#include "elf.h" +#include "elf/elf.h" #include "qemu/qemu-print.h" =20 #include "cpu.h" diff --git a/dump/dump.c b/dump/dump.c index 6fb6e1245ad..6b084a21a2a 100644 --- a/dump/dump.c +++ b/dump/dump.c @@ -14,7 +14,7 @@ #include "qemu/osdep.h" #include "qemu-common.h" #include "qemu/cutils.h" -#include "elf.h" +#include "elf/elf.h" #include "cpu.h" #include "exec/hwaddr.h" #include "monitor/monitor.h" diff --git a/dump/win_dump.c b/dump/win_dump.c index eda2a489742..8232c3cb6b3 100644 --- a/dump/win_dump.c +++ b/dump/win_dump.c @@ -11,7 +11,7 @@ #include "qemu/osdep.h" #include "qemu-common.h" #include "qemu/cutils.h" -#include "elf.h" +#include "elf/elf.h" #include "cpu.h" #include "exec/hwaddr.h" #include "monitor/monitor.h" diff --git a/hw/alpha/dp264.c b/hw/alpha/dp264.c index 51feee85581..87e5c77c69c 100644 --- a/hw/alpha/dp264.c +++ b/hw/alpha/dp264.c @@ -9,7 +9,7 @@ #include "qemu/osdep.h" #include "qemu-common.h" #include "cpu.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/loader.h" #include "alpha_sys.h" #include "qemu/error-report.h" diff --git a/hw/arm/armv7m.c b/hw/arm/armv7m.c index 7a3c48f0026..559586fa527 100644 --- a/hw/arm/armv7m.c +++ b/hw/arm/armv7m.c @@ -15,7 +15,7 @@ #include "hw/arm/boot.h" #include "hw/loader.h" #include "hw/qdev-properties.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/qtest.h" #include "sysemu/reset.h" #include "qemu/error-report.h" diff --git a/hw/arm/boot.c b/hw/arm/boot.c index bf97ef3e339..7818e5b5518 100644 --- a/hw/arm/boot.c +++ b/hw/arm/boot.c @@ -20,7 +20,7 @@ #include "hw/boards.h" #include "sysemu/reset.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/device_tree.h" #include "qemu/config-file.h" #include "qemu/option.h" diff --git a/hw/core/loader.c b/hw/core/loader.c index 32f7cc7c33c..e0c6563e643 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -59,6 +59,7 @@ #include "hw/boards.h" #include "qemu/cutils.h" #include "sysemu/runstate.h" +#include "elf/elf.h" =20 #include =20 @@ -295,7 +296,7 @@ static void *load_at(int fd, off_t offset, size_t size) #endif =20 #define ELF_CLASS ELFCLASS32 -#include "elf.h" +#include "elf/elf-types.inc.h" =20 #define SZ 32 #define elf_word uint32_t diff --git a/hw/cris/axis_dev88.c b/hw/cris/axis_dev88.c index 940c7dd1226..31dc391a637 100644 --- a/hw/cris/axis_dev88.c +++ b/hw/cris/axis_dev88.c @@ -32,7 +32,7 @@ #include "hw/boards.h" #include "hw/cris/etraxfs.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "boot.h" #include "exec/address-spaces.h" #include "sysemu/qtest.h" diff --git a/hw/cris/boot.c b/hw/cris/boot.c index 2d2cc0c7a53..0b8008ca0b2 100644 --- a/hw/cris/boot.c +++ b/hw/cris/boot.c @@ -25,7 +25,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "boot.h" #include "qemu/cutils.h" #include "sysemu/reset.h" diff --git a/hw/hppa/machine.c b/hw/hppa/machine.c index 2736ce835ee..3c121f1a645 100644 --- a/hw/hppa/machine.c +++ b/hw/hppa/machine.c @@ -6,7 +6,7 @@ #include "qemu/osdep.h" #include "qemu-common.h" #include "cpu.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/loader.h" #include "hw/boards.h" #include "qemu/error-report.h" diff --git a/hw/i386/multiboot.c b/hw/i386/multiboot.c index 9a59f954972..54a7e5f048e 100644 --- a/hw/i386/multiboot.c +++ b/hw/i386/multiboot.c @@ -28,7 +28,7 @@ #include "hw/nvram/fw_cfg.h" #include "multiboot.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/sysemu.h" #include "qemu/error-report.h" =20 diff --git a/hw/i386/pc.c b/hw/i386/pc.c index bad866fe44f..e84710a944a 100644 --- a/hw/i386/pc.c +++ b/hw/i386/pc.c @@ -39,7 +39,7 @@ #include "hw/timer/hpet.h" #include "hw/firmware/smbios.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "migration/vmstate.h" #include "multiboot.h" #include "hw/timer/mc146818rtc.h" diff --git a/hw/lm32/lm32_boards.c b/hw/lm32/lm32_boards.c index 5ae308bfcfb..12c60ad9b74 100644 --- a/hw/lm32/lm32_boards.c +++ b/hw/lm32/lm32_boards.c @@ -26,7 +26,7 @@ #include "hw/block/flash.h" #include "hw/boards.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "lm32_hwsetup.h" #include "lm32.h" #include "exec/address-spaces.h" diff --git a/hw/lm32/milkymist.c b/hw/lm32/milkymist.c index 460d322de57..9f3a2f2ff5f 100644 --- a/hw/lm32/milkymist.c +++ b/hw/lm32/milkymist.c @@ -31,7 +31,7 @@ #include "hw/boards.h" #include "hw/loader.h" #include "hw/qdev-properties.h" -#include "elf.h" +#include "elf/elf.h" #include "milkymist-hw.h" #include "hw/display/milkymist_tmu2.h" #include "lm32.h" diff --git a/hw/m68k/an5206.c b/hw/m68k/an5206.c index 54ccbe1a822..12664b872bc 100644 --- a/hw/m68k/an5206.c +++ b/hw/m68k/an5206.c @@ -12,7 +12,7 @@ #include "hw/m68k/mcf.h" #include "hw/boards.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "exec/address-spaces.h" #include "qemu/error-report.h" #include "sysemu/qtest.h" diff --git a/hw/m68k/mcf5208.c b/hw/m68k/mcf5208.c index 012710d057d..42d79bd2f03 100644 --- a/hw/m68k/mcf5208.c +++ b/hw/m68k/mcf5208.c @@ -25,7 +25,7 @@ #include "hw/boards.h" #include "hw/loader.h" #include "hw/sysbus.h" -#include "elf.h" +#include "elf/elf.h" #include "exec/address-spaces.h" =20 #define SYS_FREQ 166666666 diff --git a/hw/microblaze/boot.c b/hw/microblaze/boot.c index bade4d22c00..0c1020cd373 100644 --- a/hw/microblaze/boot.c +++ b/hw/microblaze/boot.c @@ -34,7 +34,7 @@ #include "sysemu/reset.h" #include "sysemu/sysemu.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "qemu/cutils.h" =20 #include "boot.h" diff --git a/hw/mips/mips_fulong2e.c b/hw/mips/mips_fulong2e.c index cf537dd7e63..4ba670cc909 100644 --- a/hw/mips/mips_fulong2e.c +++ b/hw/mips/mips_fulong2e.c @@ -37,7 +37,7 @@ #include "qemu/log.h" #include "hw/loader.h" #include "hw/ide.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/isa/vt82c686.h" #include "hw/timer/mc146818rtc.h" #include "hw/timer/i8254.h" diff --git a/hw/mips/mips_malta.c b/hw/mips/mips_malta.c index 4d9c64b36ab..1c841298363 100644 --- a/hw/mips/mips_malta.c +++ b/hw/mips/mips_malta.c @@ -44,7 +44,7 @@ #include "hw/ide.h" #include "hw/irq.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/timer/mc146818rtc.h" #include "hw/timer/i8254.h" #include "exec/address-spaces.h" diff --git a/hw/mips/mips_mipssim.c b/hw/mips/mips_mipssim.c index 282bbecb24e..d6acd53b3e3 100644 --- a/hw/mips/mips_mipssim.c +++ b/hw/mips/mips_mipssim.c @@ -38,7 +38,7 @@ #include "hw/boards.h" #include "hw/mips/bios.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/sysbus.h" #include "exec/address-spaces.h" #include "qemu/error-report.h" diff --git a/hw/mips/mips_r4k.c b/hw/mips/mips_r4k.c index bc0be265441..7fc2fc51fee 100644 --- a/hw/mips/mips_r4k.c +++ b/hw/mips/mips_r4k.c @@ -27,7 +27,7 @@ #include "hw/mips/bios.h" #include "hw/ide.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/timer/mc146818rtc.h" #include "hw/input/i8042.h" #include "hw/timer/i8254.h" diff --git a/hw/moxie/moxiesim.c b/hw/moxie/moxiesim.c index 57af1b48912..bc1cc8b0bf8 100644 --- a/hw/moxie/moxiesim.c +++ b/hw/moxie/moxiesim.c @@ -37,7 +37,7 @@ #include "hw/loader.h" #include "hw/char/serial.h" #include "exec/address-spaces.h" -#include "elf.h" +#include "elf/elf.h" =20 #define PHYS_MEM_BASE 0x80000000 #define FIRMWARE_BASE 0x1000 diff --git a/hw/nios2/boot.c b/hw/nios2/boot.c index d78bc9ed0e2..ec1eb15bcaa 100644 --- a/hw/nios2/boot.c +++ b/hw/nios2/boot.c @@ -39,7 +39,7 @@ #include "sysemu/reset.h" #include "sysemu/sysemu.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" =20 #include "boot.h" =20 diff --git a/hw/openrisc/openrisc_sim.c b/hw/openrisc/openrisc_sim.c index 79e70493fc7..f21a2962a90 100644 --- a/hw/openrisc/openrisc_sim.c +++ b/hw/openrisc/openrisc_sim.c @@ -24,7 +24,7 @@ #include "cpu.h" #include "hw/irq.h" #include "hw/boards.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/char/serial.h" #include "net/net.h" #include "hw/loader.h" diff --git a/hw/pci-host/prep.c b/hw/pci-host/prep.c index 85d7ba90374..9568746d8e2 100644 --- a/hw/pci-host/prep.c +++ b/hw/pci-host/prep.c @@ -37,7 +37,7 @@ #include "hw/loader.h" #include "hw/or-irq.h" #include "exec/address-spaces.h" -#include "elf.h" +#include "elf/elf.h" =20 #define TYPE_RAVEN_PCI_DEVICE "raven" #define TYPE_RAVEN_PCI_HOST_BRIDGE "raven-pcihost" diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 91cd4c26f91..add6277ad6c 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -36,7 +36,7 @@ #include "hw/ppc/ppc.h" #include "hw/qdev-properties.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/sysbus.h" #include "exec/address-spaces.h" #include "qemu/host-utils.h" diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c index c5bbcc74335..50babbb7a67 100644 --- a/hw/ppc/mac_newworld.c +++ b/hw/ppc/mac_newworld.c @@ -65,7 +65,7 @@ #include "hw/ide.h" #include "hw/loader.h" #include "hw/fw-path-provider.h" -#include "elf.h" +#include "elf/elf.h" #include "qemu/error-report.h" #include "sysemu/kvm.h" #include "sysemu/reset.h" diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c index 0fa680b7499..64fe33cd1f3 100644 --- a/hw/ppc/mac_oldworld.c +++ b/hw/ppc/mac_oldworld.c @@ -44,7 +44,7 @@ #include "hw/ide.h" #include "hw/loader.h" #include "hw/fw-path-provider.h" -#include "elf.h" +#include "elf/elf.h" #include "qemu/error-report.h" #include "sysemu/kvm.h" #include "sysemu/reset.h" diff --git a/hw/ppc/ppc440_bamboo.c b/hw/ppc/ppc440_bamboo.c index 4d95c0f8a88..15f39b332a8 100644 --- a/hw/ppc/ppc440_bamboo.c +++ b/hw/ppc/ppc440_bamboo.c @@ -23,7 +23,7 @@ #include "kvm_ppc.h" #include "sysemu/device_tree.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "exec/address-spaces.h" #include "hw/char/serial.h" #include "hw/ppc/ppc.h" diff --git a/hw/ppc/prep.c b/hw/ppc/prep.c index 4f3c6bf1901..8bd3209dec7 100644 --- a/hw/ppc/prep.c +++ b/hw/ppc/prep.c @@ -49,7 +49,7 @@ #include "sysemu/reset.h" #include "exec/address-spaces.h" #include "trace.h" -#include "elf.h" +#include "elf/elf.h" #include "qemu/units.h" #include "kvm_ppc.h" =20 diff --git a/hw/ppc/sam460ex.c b/hw/ppc/sam460ex.c index 437e214210b..982b80e5bad 100644 --- a/hw/ppc/sam460ex.c +++ b/hw/ppc/sam460ex.c @@ -22,7 +22,7 @@ #include "sysemu/device_tree.h" #include "sysemu/block-backend.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "exec/address-spaces.h" #include "exec/memory.h" #include "ppc440.h" diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 222a325056c..57f8041ec81 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -36,7 +36,7 @@ #include "sysemu/runstate.h" #include "qemu/log.h" #include "hw/fw-path-provider.h" -#include "elf.h" +#include "elf/elf.h" #include "net/net.h" #include "sysemu/device_tree.h" #include "sysemu/cpus.h" diff --git a/hw/ppc/spapr_vio.c b/hw/ppc/spapr_vio.c index 0803649658f..6d90322db0b 100644 --- a/hw/ppc/spapr_vio.c +++ b/hw/ppc/spapr_vio.c @@ -26,7 +26,7 @@ #include "hw/irq.h" #include "qemu/log.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/sysbus.h" #include "sysemu/kvm.h" #include "sysemu/device_tree.h" diff --git a/hw/ppc/virtex_ml507.c b/hw/ppc/virtex_ml507.c index 68625522d8a..ede7da4bbc2 100644 --- a/hw/ppc/virtex_ml507.c +++ b/hw/ppc/virtex_ml507.c @@ -35,7 +35,7 @@ #include "hw/boards.h" #include "sysemu/device_tree.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "qemu/error-report.h" #include "qemu/log.h" #include "qemu/option.h" diff --git a/hw/riscv/boot.c b/hw/riscv/boot.c index 4c63b5cf8a8..9a7b4a5ca87 100644 --- a/hw/riscv/boot.c +++ b/hw/riscv/boot.c @@ -25,7 +25,7 @@ #include "hw/boards.h" #include "hw/loader.h" #include "hw/riscv/boot.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/qtest.h" =20 #if defined(TARGET_RISCV32) diff --git a/hw/s390x/ipl.c b/hw/s390x/ipl.c index ca544d64c5e..cf4e06b633e 100644 --- a/hw/s390x/ipl.c +++ b/hw/s390x/ipl.c @@ -19,7 +19,7 @@ #include "sysemu/sysemu.h" #include "sysemu/tcg.h" #include "cpu.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/loader.h" #include "hw/qdev-properties.h" #include "hw/boards.h" diff --git a/hw/sparc/leon3.c b/hw/sparc/leon3.c index c5f1b1ee72e..735a823fd56 100644 --- a/hw/sparc/leon3.c +++ b/hw/sparc/leon3.c @@ -37,7 +37,7 @@ #include "sysemu/reset.h" #include "hw/boards.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "trace.h" #include "exec/address-spaces.h" =20 diff --git a/hw/sparc/sun4m.c b/hw/sparc/sun4m.c index 6c5a17a0205..d542a6c203c 100644 --- a/hw/sparc/sun4m.c +++ b/hw/sparc/sun4m.c @@ -49,7 +49,7 @@ #include "hw/empty_slot.h" #include "hw/irq.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "trace.h" =20 /* diff --git a/hw/sparc64/sun4u.c b/hw/sparc64/sun4u.c index 1ded2a4c9ab..79b15c8aec3 100644 --- a/hw/sparc64/sun4u.c +++ b/hw/sparc64/sun4u.c @@ -54,7 +54,7 @@ #include "hw/ide/pci.h" #include "hw/loader.h" #include "hw/fw-path-provider.h" -#include "elf.h" +#include "elf/elf.h" #include "trace.h" =20 #define KERNEL_LOAD_ADDR 0x00404000 diff --git a/hw/tricore/tricore_testboard.c b/hw/tricore/tricore_testboard.c index aef3289f8c3..84e8d7b429f 100644 --- a/hw/tricore/tricore_testboard.c +++ b/hw/tricore/tricore_testboard.c @@ -26,7 +26,7 @@ #include "hw/boards.h" #include "hw/loader.h" #include "exec/address-spaces.h" -#include "elf.h" +#include "elf/elf.h" #include "hw/tricore/tricore.h" #include "qemu/error-report.h" =20 diff --git a/hw/xtensa/sim.c b/hw/xtensa/sim.c index 981dbb7bbeb..f8d96fc452c 100644 --- a/hw/xtensa/sim.c +++ b/hw/xtensa/sim.c @@ -32,7 +32,7 @@ #include "sysemu/sysemu.h" #include "hw/boards.h" #include "hw/loader.h" -#include "elf.h" +#include "elf/elf.h" #include "exec/memory.h" #include "exec/address-spaces.h" #include "qemu/error-report.h" diff --git a/hw/xtensa/xtfpga.c b/hw/xtensa/xtfpga.c index 8220c7a3794..5e3ed738fa8 100644 --- a/hw/xtensa/xtfpga.c +++ b/hw/xtensa/xtfpga.c @@ -33,7 +33,7 @@ #include "hw/boards.h" #include "hw/loader.h" #include "hw/qdev-properties.h" -#include "elf.h" +#include "elf/elf.h" #include "exec/memory.h" #include "exec/address-spaces.h" #include "hw/char/serial.h" diff --git a/include/elf/elf-types.inc.h b/include/elf/elf-types.inc.h new file mode 100644 index 00000000000..35163adb2b5 --- /dev/null +++ b/include/elf/elf-types.inc.h @@ -0,0 +1,63 @@ +/* + * Elf Type Specialisation + * + * Copyright (c) 2019 + * Written by Alex Benn=C3=A9e + * + * This code is licensed under the GNU . + */ + +#ifndef _ELF_TYPES_INC_H_ +#define _ELF_TYPES_INC_H_ + +#ifndef ELF_CLASS +#error you must define ELF_CLASS before including elf-types.inc.h +#else + +#if ELF_CLASS =3D=3D ELFCLASS32 + +#define elfhdr elf32_hdr +#define elf_phdr elf32_phdr +#define elf_note elf32_note +#define elf_shdr elf32_shdr +#define elf_sym elf32_sym +#define elf_addr_t Elf32_Off +#define elf_rela elf32_rela + +#ifdef ELF_USES_RELOCA +# define ELF_RELOC Elf32_Rela +#else +# define ELF_RELOC Elf32_Rel +#endif + +#ifndef ElfW +# define ElfW(x) Elf32_ ## x +# define ELFW(x) ELF32_ ## x +#endif + +#else /* ELF_CLASS =3D=3D ELFCLASS64 */ + +#define elfhdr elf64_hdr +#define elf_phdr elf64_phdr +#define elf_note elf64_note +#define elf_shdr elf64_shdr +#define elf_sym elf64_sym +#define elf_addr_t Elf64_Off +#define elf_rela elf64_rela + +#ifdef ELF_USES_RELOCA +# define ELF_RELOC Elf64_Rela +#else +# define ELF_RELOC Elf64_Rel +#endif + +#ifndef ElfW +# define ElfW(x) Elf64_ ## x +# define ELFW(x) ELF64_ ## x +#endif + +#endif /* ELF_CLASS =3D=3D ELFCLASS64 */ +#endif /* ELF_CLASS */ +#else +#error elf-types.inc.h should not be included twice in one compilation unit +#endif /* _ELF_TYPES_INC_H_ */ diff --git a/include/elf.h b/include/elf/elf.h similarity index 98% rename from include/elf.h rename to include/elf/elf.h index 3501e0c8d03..2e264c1a7a0 100644 --- a/include/elf.h +++ b/include/elf/elf.h @@ -1696,49 +1696,7 @@ struct elf32_fdpic_loadmap { }; =20 #ifdef ELF_CLASS -#if ELF_CLASS =3D=3D ELFCLASS32 - -#define elfhdr elf32_hdr -#define elf_phdr elf32_phdr -#define elf_note elf32_note -#define elf_shdr elf32_shdr -#define elf_sym elf32_sym -#define elf_addr_t Elf32_Off -#define elf_rela elf32_rela - -#ifdef ELF_USES_RELOCA -# define ELF_RELOC Elf32_Rela -#else -# define ELF_RELOC Elf32_Rel -#endif - -#else - -#define elfhdr elf64_hdr -#define elf_phdr elf64_phdr -#define elf_note elf64_note -#define elf_shdr elf64_shdr -#define elf_sym elf64_sym -#define elf_addr_t Elf64_Off -#define elf_rela elf64_rela - -#ifdef ELF_USES_RELOCA -# define ELF_RELOC Elf64_Rela -#else -# define ELF_RELOC Elf64_Rel -#endif - -#endif /* ELF_CLASS */ =20 -#ifndef ElfW -# if ELF_CLASS =3D=3D ELFCLASS32 -# define ElfW(x) Elf32_ ## x -# define ELFW(x) ELF32_ ## x -# else -# define ElfW(x) Elf64_ ## x -# define ELFW(x) ELF64_ ## x -# endif -#endif =20 #endif /* ELF_CLASS */ =20 diff --git a/include/hw/core/generic-loader.h b/include/hw/core/generic-loa= der.h index 9ffce1c5a30..ca97affd8e1 100644 --- a/include/hw/core/generic-loader.h +++ b/include/hw/core/generic-loader.h @@ -18,7 +18,7 @@ #ifndef GENERIC_LOADER_H #define GENERIC_LOADER_H =20 -#include "elf.h" +#include "elf/elf.h" #include "hw/qdev-core.h" =20 typedef struct GenericLoaderState { diff --git a/linux-user/arm/cpu_loop.c b/linux-user/arm/cpu_loop.c index 8d65de5b9f4..970fff8b1bc 100644 --- a/linux-user/arm/cpu_loop.c +++ b/linux-user/arm/cpu_loop.c @@ -20,7 +20,7 @@ #include "qemu/osdep.h" #include "qemu-common.h" #include "qemu.h" -#include "elf.h" +#include "elf/elf.h" #include "cpu_loop-common.h" =20 #define get_user_code_u32(x, gaddr, env) \ diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 3365e192eb3..59a0d21c6f1 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -7,6 +7,7 @@ =20 #include "qemu.h" #include "disas/disas.h" +#include "elf/elf.h" #include "qemu/path.h" #include "qemu/queue.h" #include "qemu/guest-random.h" @@ -1317,8 +1318,6 @@ static inline void init_thread(struct target_pt_regs = *regs, #define ELF_DATA ELFDATA2MSB #define ELF_ARCH EM_S390 =20 -#include "elf.h" - #define ELF_HWCAP get_elf_hwcap() =20 #define GET_FEATURE(_feat, _hwcap) \ @@ -1512,7 +1511,7 @@ static void elf_core_copy_regs(target_elf_gregset_t *= regs, #define bswaptls(ptr) bswap32s(ptr) #endif =20 -#include "elf.h" +#include "elf/elf-types.inc.h" =20 struct exec { diff --git a/linux-user/main.c b/linux-user/main.c index 47917bbb20f..c796a15700d 100644 --- a/linux-user/main.c +++ b/linux-user/main.c @@ -40,7 +40,7 @@ #include "qemu/timer.h" #include "qemu/envlist.h" #include "qemu/guest-random.h" -#include "elf.h" +#include "elf/elf.h" #include "trace/control.h" #include "target_elf.h" #include "cpu_loop-common.h" diff --git a/linux-user/mips/cpu_loop.c b/linux-user/mips/cpu_loop.c index 39915b3fde2..0d3f0738b58 100644 --- a/linux-user/mips/cpu_loop.c +++ b/linux-user/mips/cpu_loop.c @@ -21,7 +21,7 @@ #include "qemu-common.h" #include "qemu.h" #include "cpu_loop-common.h" -#include "elf.h" +#include "elf/elf.h" #include "internal.h" =20 # ifdef TARGET_ABI_MIPSO32 diff --git a/linux-user/riscv/cpu_loop.c b/linux-user/riscv/cpu_loop.c index 12aa3c0f16e..f9f5beef431 100644 --- a/linux-user/riscv/cpu_loop.c +++ b/linux-user/riscv/cpu_loop.c @@ -22,7 +22,7 @@ #include "qemu/error-report.h" #include "qemu.h" #include "cpu_loop-common.h" -#include "elf.h" +#include "elf/elf.h" =20 void cpu_loop(CPURISCVState *env) { diff --git a/target/arm/arch_dump.c b/target/arm/arch_dump.c index 26a2c098687..c05a2845883 100644 --- a/target/arm/arch_dump.c +++ b/target/arm/arch_dump.c @@ -20,7 +20,7 @@ =20 #include "qemu/osdep.h" #include "cpu.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/dump.h" =20 /* struct user_pt_regs from arch/arm64/include/uapi/asm/ptrace.h */ diff --git a/target/i386/arch_dump.c b/target/i386/arch_dump.c index 004141fc042..9eb1e2a8bcf 100644 --- a/target/i386/arch_dump.c +++ b/target/i386/arch_dump.c @@ -14,7 +14,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "sysemu/dump.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/memory_mapping.h" =20 #define ELF_NOTE_SIZE(hdr_size, name_size, desc_size) \ diff --git a/target/ppc/arch_dump.c b/target/ppc/arch_dump.c index 9ab04b2c38f..0e102be1ed5 100644 --- a/target/ppc/arch_dump.c +++ b/target/ppc/arch_dump.c @@ -14,7 +14,7 @@ =20 #include "qemu/osdep.h" #include "cpu.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/dump.h" #include "sysemu/kvm.h" #include "exec/helper-proto.h" diff --git a/target/ppc/kvm.c b/target/ppc/kvm.c index 8c5b1f25cc9..c2e5f72ab0d 100644 --- a/target/ppc/kvm.c +++ b/target/ppc/kvm.c @@ -48,7 +48,7 @@ #include "qemu/cutils.h" #include "qemu/main-loop.h" #include "qemu/mmap-alloc.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/kvm_int.h" =20 #define PROC_DEVTREE_CPU "/proc/device-tree/cpus/" diff --git a/target/s390x/arch_dump.c b/target/s390x/arch_dump.c index 50fa0ae4b67..5fe9519d26c 100644 --- a/target/s390x/arch_dump.c +++ b/target/s390x/arch_dump.c @@ -14,7 +14,7 @@ #include "qemu/osdep.h" #include "cpu.h" #include "internal.h" -#include "elf.h" +#include "elf/elf.h" #include "sysemu/dump.h" =20 =20 diff --git a/tcg/arm/tcg-target.inc.c b/tcg/arm/tcg-target.inc.c index 94d80d79d1f..e04f726e4a6 100644 --- a/tcg/arm/tcg-target.inc.c +++ b/tcg/arm/tcg-target.inc.c @@ -22,7 +22,7 @@ * THE SOFTWARE. */ =20 -#include "elf.h" +#include "elf/elf.h" #include "tcg-pool.inc.c" =20 int arm_arch =3D __ARM_ARCH; diff --git a/tcg/ppc/tcg-target.inc.c b/tcg/ppc/tcg-target.inc.c index 815edac077f..4886f8c0d39 100644 --- a/tcg/ppc/tcg-target.inc.c +++ b/tcg/ppc/tcg-target.inc.c @@ -22,7 +22,7 @@ * THE SOFTWARE. */ =20 -#include "elf.h" +#include "elf/elf.h" #include "tcg-pool.inc.c" =20 #if defined _CALL_DARWIN || defined __APPLE__ diff --git a/tcg/s390/tcg-target.inc.c b/tcg/s390/tcg-target.inc.c index 8aaa4cebe8d..82a81d2d94d 100644 --- a/tcg/s390/tcg-target.inc.c +++ b/tcg/s390/tcg-target.inc.c @@ -30,7 +30,7 @@ #endif =20 #include "tcg-pool.inc.c" -#include "elf.h" +#include "elf/elf.h" =20 /* ??? The translation blocks produced by TCG are generally small enough to be entirely reachable with a 16-bit displacement. Leaving the option f= or diff --git a/tcg/tcg.c b/tcg/tcg.c index 16b2d0e0ece..b8e2c7956b7 100644 --- a/tcg/tcg.c +++ b/tcg/tcg.c @@ -50,6 +50,8 @@ =20 #include "tcg-op.h" =20 +#include "elf/elf.h" + #if UINTPTR_MAX =3D=3D UINT32_MAX # define ELF_CLASS ELFCLASS32 #else @@ -61,7 +63,8 @@ # define ELF_DATA ELFDATA2LSB #endif =20 -#include "elf.h" +#include "elf/elf-types.inc.h" + #include "exec/log.h" #include "sysemu/sysemu.h" =20 diff --git a/util/getauxval.c b/util/getauxval.c index 36afdfb9e62..ee216c81c0b 100644 --- a/util/getauxval.c +++ b/util/getauxval.c @@ -36,7 +36,7 @@ unsigned long qemu_getauxval(unsigned long key) return getauxval(key); } #elif defined(__linux__) -#include "elf.h" +#include "elf/elf.h" =20 /* Our elf.h doesn't contain Elf32_auxv_t and Elf64_auxv_t, which is ok be= cause that just makes it easier to define it properly for the host here. */ --=20 2.20.1 From nobody Thu Mar 28 15:08:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1568144213; cv=none; d=zoho.com; s=zohoarc; b=n3ktDFq1MJxLq/yBMeq/SEgkNt+3SdZh9EaDT4iTsM0yQlDzbC0qGwmYWGUJsbIsCxOq1dy/cdd6AGwno5m4mlT3hA9QkSAfeZO0L5M/pUMhVo+t+G0FA5B10lT36AHqtw2WHm7M9BtkljVwRPLCQtmjVTOpGOzLY666xgyr2Fo= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568144213; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=05vMXPIxoWx34Tv2XwUiZnuEHt704CpxHZvOBau6J1M=; b=MLyfSdvUVDrt4R5cft/v8UZTWX0mqkNg6dYo+w6fL04oQTAFjnTKZ+4Rx2CN+5Dsse9hxbk0Gat3u5392hkBSMVjiOBDX+yMrqAUQQQDGRYZELdWRnz/2LoqJsDTHwcYVSuYpwiwyXEeDiRlm6XqEkb63sjLOMDxWmkd8CSIXSU= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1568144213007754.6739770435339; Tue, 10 Sep 2019 12:36:53 -0700 (PDT) Received: from localhost ([::1]:44384 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7lwT-0002pn-0O for importer@patchew.org; Tue, 10 Sep 2019 15:36:45 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58916) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7lu3-0000vi-H1 for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i7lu2-0006lW-1m for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:15 -0400 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:40022) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i7lu1-0006kO-Ov for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:13 -0400 Received: by mail-wm1-x344.google.com with SMTP id t9so833197wmi.5 for ; Tue, 10 Sep 2019 12:34:13 -0700 (PDT) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id l1sm22205092wrb.1.2019.09.10.12.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Sep 2019 12:34:11 -0700 (PDT) Received: from zen.lan (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id 544321FF90; Tue, 10 Sep 2019 20:34:09 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=05vMXPIxoWx34Tv2XwUiZnuEHt704CpxHZvOBau6J1M=; b=nZjJ9G1iqf2I/2iNeYJ8qtRThltUGZ4lmb+YPY9enONu1JgNvbIj0ME5o8R7rS7w2p uH3eCdGKUAg9DbG5ikgC45/WV4PbyErnNG9iSabL+p1uqGoUATYFZPmfVwZB9JIkBDS4 P0U8cRO3WdWxOXS5R58I8S2lSI6OybmTltRaUnIPDHHGme+V6toCFaz5QVz8VL1Aktqj GMJ0iDg8JfuFWACyFiuVWaUqL7+Rfn8H457CiVDcs/o+PghTpp1HGoyJ30UIPQpGEqNC FjXXvzPHL95dyHjg3IjVgNq2aBS0EUoRlg3p0/ncVLkYJZHRkjHQCanGMB4EMssiD/wR WB0A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=05vMXPIxoWx34Tv2XwUiZnuEHt704CpxHZvOBau6J1M=; b=QlBvSNGxu6LNF8Kb+TvJi3h7JK5pSaGrkdAMfitUI+0vR0n/+pS0laXgPgYvIFF9YV 2KWp0HG3GFMInOHi9Ix8QdACrxfNnPOKN+AHqT+mFhC+JITYA3udLB28jmTOtjGRElX7 fGWwRlMWsXF49sAIJkf6+n3+ZmM4nsI2SmpuEgY4adVs9ZWF7a0iiCWAW3BveT8MhOWD fGwYKHE3phPAqAWRn9RrT4yx+hgGd20R+je+XXpvkIUiSXi7rvJQQBJ3IUUKYyMaS+lM qPxM4I8aJaP5G+Lpb9mVc91LKzWEx45aVKs0HGmYKZZ6+YF/5cjrCBkP+KEheVKJ5BCp LrsQ== X-Gm-Message-State: APjAAAUsHfH9jmYQuDlQ7ADxFMwJvY8JMOd+AlpuzTvQmJEDlm7hNVjj 0OCIbU4mW+nJk+bx1ZnPeD4phA== X-Google-Smtp-Source: APXvYqyvT6FPzQBOrvV/uRW0YpzWW30ZUKWojq0ARBHCwdqzWttTsBZcE6BMfu5A/ictS88DnZ2qkg== X-Received: by 2002:a1c:c911:: with SMTP id f17mr876238wmb.73.1568144052633; Tue, 10 Sep 2019 12:34:12 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Tue, 10 Sep 2019 20:34:07 +0100 Message-Id: <20190910193408.28917-4-alex.bennee@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190910193408.28917-1-alex.bennee@linaro.org> References: <20190910193408.28917-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::344 Subject: [Qemu-devel] [PATCH v1 3/4] elf: move elf_ops.h into include/elf/ and rename X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-devel@nongnu.org Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) Lets keep all the Elf manipulation bits together. Also rename the file to better reflect how it is used and add a little header to the file. Signed-off-by: Alex Benn=C3=A9e --- hw/core/loader.c | 4 ++-- include/{hw/elf_ops.h =3D> elf/elf_ops.inc.h} | 9 +++++++++ 2 files changed, 11 insertions(+), 2 deletions(-) rename include/{hw/elf_ops.h =3D> elf/elf_ops.inc.h} (98%) diff --git a/hw/core/loader.c b/hw/core/loader.c index e0c6563e643..886179a4947 100644 --- a/hw/core/loader.c +++ b/hw/core/loader.c @@ -302,7 +302,7 @@ static void *load_at(int fd, off_t offset, size_t size) #define elf_word uint32_t #define elf_sword int32_t #define bswapSZs bswap32s -#include "hw/elf_ops.h" +#include "elf/elf_ops.inc.h" =20 #undef elfhdr #undef elf_phdr @@ -324,7 +324,7 @@ static void *load_at(int fd, off_t offset, size_t size) #define elf_sword int64_t #define bswapSZs bswap64s #define SZ 64 -#include "hw/elf_ops.h" +#include "elf/elf_ops.inc.h" =20 const char *load_elf_strerror(int error) { diff --git a/include/hw/elf_ops.h b/include/elf/elf_ops.inc.h similarity index 98% rename from include/hw/elf_ops.h rename to include/elf/elf_ops.inc.h index 1496d7e7536..a820bd821d5 100644 --- a/include/hw/elf_ops.h +++ b/include/elf/elf_ops.inc.h @@ -1,3 +1,12 @@ +/* + * Macro expansions for Elf operations. This is included in a + * compilation unit with appropriate definitions for SZ and elf + * headers to generate utility functions for reading 32 and 64 bit elf + * headers. + * + * SPDX-License-Identifier: GPL-2.0-or-later + */ + static void glue(bswap_ehdr, SZ)(struct elfhdr *ehdr) { bswap16s(&ehdr->e_type); /* Object file type */ --=20 2.20.1 From nobody Thu Mar 28 15:08:46 2024 Delivered-To: importer@patchew.org Received-SPF: pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Authentication-Results: mx.zohomail.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail(p=none dis=none) header.from=linaro.org ARC-Seal: i=1; a=rsa-sha256; t=1568144212; cv=none; d=zoho.com; s=zohoarc; b=XkIY8qO7WIcW2kP1eg+uGVTSveMvu9UJDz3avrJFoomSq3J4PWYPspF475xqACGULrVGOLpqS7iQknnjy4avGBbvPPa1Gt7n5GzGnv1YMmayVvxoW02XHC8zOfPtODez24PAjzfedrxjG5AWa/SaABKzIL/awraJloTBTHZlaVg= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zoho.com; s=zohoarc; t=1568144212; h=Content-Type:Content-Transfer-Encoding:Cc:Date:From:In-Reply-To:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:References:Sender:Subject:To:ARC-Authentication-Results; bh=3O9EXRDiG8lwCqPTGZE4nRj1SK0nw1gH8b5voet+7G4=; b=UILoS6v4dgRummQC005lG41mBPIOhNt6pVyhBQ4QmlEC1NRaLsZSYK7moyYzpiBTLuczpOB9Tv4WNpBWLGX70kbLGipqVg/IIUKS8vFwxavL37+UCfE3F3JyJM0CHazg52bLVCuylOiLJJHeoqNu/o3Ex+bOBbKpF4ujiZDD0n8= ARC-Authentication-Results: i=1; mx.zoho.com; dkim=fail; spf=pass (zoho.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org; dmarc=fail header.from= (p=none dis=none) header.from= Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 1568144212287457.6570822005002; Tue, 10 Sep 2019 12:36:52 -0700 (PDT) Received: from localhost ([::1]:44388 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7lwY-0002vz-Dq for importer@patchew.org; Tue, 10 Sep 2019 15:36:50 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:58950) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1i7lu6-0000yq-5f for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1i7lu2-0006mV-NT for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:17 -0400 Received: from mail-wr1-x441.google.com ([2a00:1450:4864:20::441]:40544) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1i7lu2-0006l8-Fg for qemu-devel@nongnu.org; Tue, 10 Sep 2019 15:34:14 -0400 Received: by mail-wr1-x441.google.com with SMTP id w13so21872081wru.7 for ; Tue, 10 Sep 2019 12:34:14 -0700 (PDT) Received: from zen.linaroharston ([51.148.130.216]) by smtp.gmail.com with ESMTPSA id b194sm925871wmg.46.2019.09.10.12.34.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 10 Sep 2019 12:34:11 -0700 (PDT) Received: from zen.lan (localhost [127.0.0.1]) by zen.linaroharston (Postfix) with ESMTP id 6B4941FF91; Tue, 10 Sep 2019 20:34:09 +0100 (BST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=3O9EXRDiG8lwCqPTGZE4nRj1SK0nw1gH8b5voet+7G4=; b=ok9sG2drhxGaTcRjHImZarNSTWYdKF6qlsF+2On5RfTVYyIHeDVPWG85Te9b1gxgLU SS2X+GjnELhF8uKHt3Mwn+NfaNb9WItgH3zpEfHo+mXkWp52xO33Cu5KKf3c1ly8f2oV DWLWdVMX7y3bnsyLUeftLXcFPYFbO5Kduz3//0W/5lexSUziXnSWnHlUoREZeUBvX28u LtYQ/BUWgIvPJMJ35nJ7ID4wAuSxygPVnx/0CSXyAfXllU9S0Iq8AkCfyr8d9Q0QukfW R/utiGzh6W7uqBU6QkOHEzqd4QZeWF8xQoWhI5lZjn8vfKpd/NxJY74VEXqUGydXIb4V 7QbA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=3O9EXRDiG8lwCqPTGZE4nRj1SK0nw1gH8b5voet+7G4=; b=UdvRkJ63jn+e/L2SPaXgxzXCFdWxXTlLb+1/1YimUjJQguTUT2whqVk2vRTlSdCX6M ra+xMCxOjIk2IF2yKgaVUXgL7OeWo2TVu2IG5F0OhZiPOQ/bnh8Ah/+BxDPpRmt9tksh FktvfFRmrUMW4VpHQz8gRIEY5k3OXAtxCHVQ13D0At/+AvscMyQs1b/Xw1aYiAaW6dL4 26KblyUEdaBZnqqdFdmQfjjvrWKkLgCVQ5ohKPaKgOnelK1gEs6Ww9+MtXknnQ1lIiHN 0DBtSkkIXzNs4dU3lN0vDOz0RBOUOf+9wzpxZ6e1OCLQNvhTcO/UMoImPSOSmNPsFZ91 eb+g== X-Gm-Message-State: APjAAAUIaePi2dDQeM1kL1jP+ntxRSPFoNIuPW9rl1RS5UBINOJ/GVbJ L6m6SwyFFWf26ApQD5Xc2RvABA== X-Google-Smtp-Source: APXvYqymAt3lB0DcJAMvyPp9kWz/TrliaKxsGUMQsn/8SgqYWnNGDs1F7Kos5USgN1ll6UNhDqKA4g== X-Received: by 2002:a05:6000:49:: with SMTP id k9mr7739815wrx.21.1568144053125; Tue, 10 Sep 2019 12:34:13 -0700 (PDT) From: =?UTF-8?q?Alex=20Benn=C3=A9e?= To: peter.maydell@linaro.org Date: Tue, 10 Sep 2019 20:34:08 +0100 Message-Id: <20190910193408.28917-5-alex.bennee@linaro.org> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190910193408.28917-1-alex.bennee@linaro.org> References: <20190910193408.28917-1-alex.bennee@linaro.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 2a00:1450:4864:20::441 Subject: [Qemu-devel] [PATCH v1 4/4] elf: move ELF_ARCH definition to elf-arch.h X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Riku Voipio , qemu-arm@nongnu.org, =?UTF-8?q?Alex=20Benn=C3=A9e?= , qemu-devel@nongnu.org, Laurent Vivier Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: "Qemu-devel" X-ZohoMail-DKIM: fail (Header signature does not verify) This is preparatory for plugins which will want to report the architecture to plugins. Move the ELF_ARCH definition out of the loader and into its own header. Signed-off-by: Alex Benn=C3=A9e --- bsd-user/elfload.c | 13 +---- include/elf/elf-arch.h | 109 +++++++++++++++++++++++++++++++++++++++++ linux-user/elfload.c | 27 ++-------- 3 files changed, 115 insertions(+), 34 deletions(-) create mode 100644 include/elf/elf-arch.h diff --git a/bsd-user/elfload.c b/bsd-user/elfload.c index 321ee98b86b..adaae0e0dca 100644 --- a/bsd-user/elfload.c +++ b/bsd-user/elfload.c @@ -5,6 +5,7 @@ #include "qemu.h" #include "disas/disas.h" #include "qemu/path.h" +#include "elf/elf-arch.h" =20 #ifdef _ARCH_PPC64 #undef ARCH_DLINFO @@ -12,7 +13,6 @@ #undef ELF_HWCAP #undef ELF_CLASS #undef ELF_DATA -#undef ELF_ARCH #endif =20 /* from personality.h */ @@ -115,7 +115,6 @@ static uint32_t get_elf_hwcap(void) =20 #define ELF_CLASS ELFCLASS64 #define ELF_DATA ELFDATA2LSB -#define ELF_ARCH EM_X86_64 =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { @@ -141,7 +140,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i */ #define ELF_CLASS ELFCLASS32 #define ELF_DATA ELFDATA2LSB -#define ELF_ARCH EM_386 =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { @@ -176,7 +174,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i #else #define ELF_DATA ELFDATA2LSB #endif -#define ELF_ARCH EM_ARM =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { @@ -231,7 +228,6 @@ enum =20 #define ELF_CLASS ELFCLASS64 #define ELF_DATA ELFDATA2MSB -#define ELF_ARCH EM_SPARCV9 =20 #define STACK_BIAS 2047 =20 @@ -265,7 +261,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i =20 #define ELF_CLASS ELFCLASS32 #define ELF_DATA ELFDATA2MSB -#define ELF_ARCH EM_SPARC =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { @@ -302,7 +297,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i #else #define ELF_DATA ELFDATA2LSB #endif -#define ELF_ARCH EM_PPC =20 /* * We need to put in some extra aux table entries to tell glibc what @@ -388,7 +382,6 @@ static inline void init_thread(struct target_pt_regs *_= regs, struct image_info * #else #define ELF_DATA ELFDATA2LSB #endif -#define ELF_ARCH EM_MIPS =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { @@ -410,7 +403,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i =20 #define ELF_CLASS ELFCLASS32 #define ELF_DATA ELFDATA2LSB -#define ELF_ARCH EM_SH =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { @@ -432,7 +424,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i =20 #define ELF_CLASS ELFCLASS32 #define ELF_DATA ELFDATA2LSB -#define ELF_ARCH EM_CRIS =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { @@ -452,7 +443,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i =20 #define ELF_CLASS ELFCLASS32 #define ELF_DATA ELFDATA2MSB -#define ELF_ARCH EM_68K =20 /* ??? Does this need to do anything? #define ELF_PLAT_INIT(_r) */ @@ -477,7 +467,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, struct image_info *i =20 #define ELF_CLASS ELFCLASS64 #define ELF_DATA ELFDATA2MSB -#define ELF_ARCH EM_ALPHA =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { diff --git a/include/elf/elf-arch.h b/include/elf/elf-arch.h new file mode 100644 index 00000000000..9e052543c51 --- /dev/null +++ b/include/elf/elf-arch.h @@ -0,0 +1,109 @@ +/* + * Elf Architecture Definition + * + * This is a simple expansion to define common Elf types for the + * various machines for the various places it's needed in the source + * tree. + * + * Copyright (c) 2019 Alex Benn=C3=A9e + * + * SPDX-License-Identifier: GPL-2.0-or-later + * + * This work is licensed under the terms of the GNU GPL, version 2 or late= r. + * See the COPYING file in the top-level directory. + */ + +#ifndef _ELF_ARCH_H_ +#define _ELF_ARCH_H_ + +#include "elf/elf.h" + +#ifndef NEED_CPU_H +#error Needs an target definition +#endif + +#ifdef ELF_ARCH +#error ELF_ARCH should only be defined once in this file +#endif + +#ifdef TARGET_I386 +#ifdef TARGET_X86_64 +#define ELF_ARCH EM_X86_64 +#else +#define ELF_ARCH EM_386 +#endif +#endif + +#ifdef TARGET_ARM +#ifndef TARGET_AARCH64 +#define ELF_ARCH EM_ARM +#else +#define ELF_ARCH EM_AARCH64 +#endif +#endif + +#ifdef TARGET_SPARC +#ifdef TARGET_SPARC64 +#define ELF_ARCH EM_SPARCV9 +#else +#define ELF_ARCH EM_SPARC +#endif +#endif + +#ifdef TARGET_PPC +#define ELF_ARCH EM_PPC +#endif + +#ifdef TARGET_MIPS +#define ELF_ARCH EM_MIPS +#endif + +#ifdef TARGET_MICROBLAZE +#define ELF_ARCH EM_MICROBLAZE +#endif + +#ifdef TARGET_NIOS2 +#define ELF_ARCH EM_ALTERA_NIOS2 +#endif + +#ifdef TARGET_OPENRISC +#define ELF_ARCH EM_OPENRISC +#endif + +#ifdef TARGET_SH4 +#define ELF_ARCH EM_SH +#endif + +#ifdef TARGET_CRIS +#define ELF_ARCH EM_CRIS +#endif + +#ifdef TARGET_M68K +#define ELF_ARCH EM_68K +#endif + +#ifdef TARGET_ALPHA +#define ELF_ARCH EM_ALPHA +#endif + +#ifdef TARGET_S390X +#define ELF_ARCH EM_S390 +#endif + +#ifdef TARGET_TILEGX +#define ELF_ARCH EM_TILEGX +#endif + +#ifdef TARGET_RISCV +#define ELF_ARCH EM_RISCV +#endif + +#ifdef TARGET_HPPA +#define ELF_ARCH EM_PARISC +#endif + +#ifdef TARGET_XTENSA +#define ELF_ARCH EM_XTENSA +#endif + +#endif /* _ELF_ARCH_H_ */ diff --git a/linux-user/elfload.c b/linux-user/elfload.c index 59a0d21c6f1..3ac7016a7e3 100644 --- a/linux-user/elfload.c +++ b/linux-user/elfload.c @@ -8,10 +8,15 @@ #include "qemu.h" #include "disas/disas.h" #include "elf/elf.h" +#include "elf/elf-arch.h" #include "qemu/path.h" #include "qemu/queue.h" #include "qemu/guest-random.h" =20 +#ifndef ELF_ARCH +#error something got missed +#endif + #ifdef _ARCH_PPC64 #undef ARCH_DLINFO #undef ELF_PLATFORM @@ -19,7 +24,6 @@ #undef ELF_HWCAP2 #undef ELF_CLASS #undef ELF_DATA -#undef ELF_ARCH #endif =20 #define ELF_OSABI ELFOSABI_SYSV @@ -148,7 +152,6 @@ static uint32_t get_elf_hwcap(void) #define ELF_START_MMAP 0x2aaaaab000ULL =20 #define ELF_CLASS ELFCLASS64 -#define ELF_ARCH EM_X86_64 =20 static inline void init_thread(struct target_pt_regs *regs, struct image_i= nfo *infop) { @@ -211,7 +214,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *re= gs, const CPUX86State *en * These are used to set parameters in the core dumps. */ #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_386 =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) @@ -273,7 +275,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *re= gs, const CPUX86State *en =20 #define ELF_START_MMAP 0x80000000 =20 -#define ELF_ARCH EM_ARM #define ELF_CLASS ELFCLASS32 =20 static inline void init_thread(struct target_pt_regs *regs, @@ -539,7 +540,6 @@ static const char *get_elf_platform(void) /* 64 bit ARM definitions */ #define ELF_START_MMAP 0x80000000 =20 -#define ELF_ARCH EM_AARCH64 #define ELF_CLASS ELFCLASS64 #ifdef TARGET_WORDS_BIGENDIAN # define ELF_PLATFORM "aarch64_be" @@ -667,7 +667,6 @@ static uint32_t get_elf_hwcap(void) #endif =20 #define ELF_CLASS ELFCLASS64 -#define ELF_ARCH EM_SPARCV9 =20 #define STACK_BIAS 2047 =20 @@ -696,7 +695,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, | HWCAP_SPARC_MULDIV) =20 #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_SPARC =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) @@ -728,8 +726,6 @@ static inline void init_thread(struct target_pt_regs *r= egs, =20 #endif =20 -#define ELF_ARCH EM_PPC - /* Feature masks for the Aux Vector Hardware Capabilities (AT_HWCAP). See arch/powerpc/include/asm/cputable.h. */ enum { @@ -921,7 +917,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *re= gs, const CPUPPCState *en #else #define ELF_CLASS ELFCLASS32 #endif -#define ELF_ARCH EM_MIPS =20 #define elf_check_arch(x) ((x) =3D=3D EM_MIPS || (x) =3D=3D EM_NANOMIPS) =20 @@ -1014,7 +1009,6 @@ static uint32_t get_elf_hwcap(void) #define elf_check_arch(x) ( (x) =3D=3D EM_MICROBLAZE || (x) =3D=3D EM_MICR= OBLAZE_OLD) =20 #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_MICROBLAZE =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) @@ -1053,7 +1047,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *= regs, const CPUMBState *env #define elf_check_arch(x) ((x) =3D=3D EM_ALTERA_NIOS2) =20 #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_ALTERA_NIOS2 =20 static void init_thread(struct target_pt_regs *regs, struct image_info *in= fop) { @@ -1107,7 +1100,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *= regs, =20 #define ELF_START_MMAP 0x08000000 =20 -#define ELF_ARCH EM_OPENRISC #define ELF_CLASS ELFCLASS32 #define ELF_DATA ELFDATA2MSB =20 @@ -1146,7 +1138,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *= regs, #define ELF_START_MMAP 0x80000000 =20 #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_SH =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) @@ -1228,7 +1219,6 @@ static uint32_t get_elf_hwcap(void) #define ELF_START_MMAP 0x80000000 =20 #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_CRIS =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) @@ -1245,7 +1235,6 @@ static inline void init_thread(struct target_pt_regs = *regs, #define ELF_START_MMAP 0x80000000 =20 #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_68K =20 /* ??? Does this need to do anything? #define ELF_PLAT_INIT(_r) */ @@ -1296,7 +1285,6 @@ static void elf_core_copy_regs(target_elf_gregset_t *= regs, const CPUM68KState *e #define ELF_START_MMAP (0x30000000000ULL) =20 #define ELF_CLASS ELFCLASS64 -#define ELF_ARCH EM_ALPHA =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) @@ -1316,7 +1304,6 @@ static inline void init_thread(struct target_pt_regs = *regs, =20 #define ELF_CLASS ELFCLASS64 #define ELF_DATA ELFDATA2MSB -#define ELF_ARCH EM_S390 =20 #define ELF_HWCAP get_elf_hwcap() =20 @@ -1362,7 +1349,6 @@ static inline void init_thread(struct target_pt_regs = *regs, struct image_info *i =20 #define ELF_CLASS ELFCLASS64 #define ELF_DATA ELFDATA2LSB -#define ELF_ARCH EM_TILEGX =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) @@ -1379,7 +1365,6 @@ static inline void init_thread(struct target_pt_regs = *regs, #ifdef TARGET_RISCV =20 #define ELF_START_MMAP 0x80000000 -#define ELF_ARCH EM_RISCV =20 #ifdef TARGET_RISCV32 #define ELF_CLASS ELFCLASS32 @@ -1402,7 +1387,6 @@ static inline void init_thread(struct target_pt_regs = *regs, =20 #define ELF_START_MMAP 0x80000000 #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_PARISC #define ELF_PLATFORM "PARISC" #define STACK_GROWS_DOWN 0 #define STACK_ALIGNMENT 64 @@ -1427,7 +1411,6 @@ static inline void init_thread(struct target_pt_regs = *regs, #define ELF_START_MMAP 0x20000000 =20 #define ELF_CLASS ELFCLASS32 -#define ELF_ARCH EM_XTENSA =20 static inline void init_thread(struct target_pt_regs *regs, struct image_info *infop) --=20 2.20.1