Received: by 2002:a05:6358:7058:b0:131:369:b2a3 with SMTP id 24csp7373184rwp; Tue, 18 Jul 2023 14:26:51 -0700 (PDT) X-Google-Smtp-Source: APBJJlF9itvDAqfV05siJ0CyteEtUwR6ysvl7HrqVpjKIG3CQ19FE2A5xLYLUG57gW05mCjeYjWN X-Received: by 2002:a17:906:64d7:b0:993:f127:2391 with SMTP id p23-20020a17090664d700b00993f1272391mr264381ejn.32.1689715611398; Tue, 18 Jul 2023 14:26:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1689715611; cv=none; d=google.com; s=arc-20160816; b=oQYGlW04jbNBpQ9VfGEYuf4C8skdD385e5+RQVSZ3APjjBFUeSM+3yTdgkQ4S4VIkP wptJKfiMXxpFlz1ilLaEmuja3//oMOACHz7vb99h0YoZDt70Vtj8CziWI91f73ubAF0D vS9ZN6BEeIeja8gQ5ZPxq5PXJ71gFYG1lfXD9WGJbbY+Yt6TCIprIyT2zrEqXqTQpE5s bAjvn8Fl/CHyVTtTlrhGVOTCU78xyf4Ymy7qmj4zJEGKEpeyDr4WOKliraA0Cu7zq4TA z/4K4xwQXIymQVv8kfhlpxLf/Xm+tL4dbFDVsdbeRiKRPpb+7BGB7MbyfXbjQEkTreWd gk0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:feedback-id:content-transfer-encoding :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from; bh=SqZ8ZUJLgpR/iZX2YgbtjNOvIKpdGdKk6JZJTb0tIIQ=; fh=LUnDCxFG3oyWlcYTkiNww5x4+0V5pkm51/GfDl61ZDU=; b=ZzKJkbP6mPeqJ0XzfAwc5FgqUJ7e9V4l1zkNyg5sATjb/6iTnVZE0YfFG+ce5eEVEa GuS5AsUCszRjll2v5uXtN2V+WQsU0syfJrJxKqPxowLf8wB2M+O2v6Kv9R75ekznVUgc 64GpkhZXf8DiNjBqyXi+OfGMPncJxXvYeWATHmDYDYUSIJkMQnIInLXH8oUgjqZfkU0L kQDZSI1pnrKu7kA56MrDXPRH95w3hiQrkYB5jXvAr1mlNxP6wp5PZRpbhW3vy3L2ztMU Idctnba3+6Wma9hr1stdVHeOikXs+1J1suz74KW42Fv9E4Hk2uTXL4JmO/kZ3Hzmut7G K/5g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id lr7-20020a170906fb8700b00992b6f546b1si1673937ejb.77.2023.07.18.14.26.27; Tue, 18 Jul 2023 14:26:51 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231215AbjGRVP1 (ORCPT + 99 others); Tue, 18 Jul 2023 17:15:27 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:38804 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229510AbjGRVP0 (ORCPT ); Tue, 18 Jul 2023 17:15:26 -0400 Received: from bg4.exmail.qq.com (bg4.exmail.qq.com [43.154.54.12]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8121EC0; Tue, 18 Jul 2023 14:15:24 -0700 (PDT) X-QQ-mid: bizesmtp91t1689714915t194m5qj Received: from linux-lab-host.localdomain ( [119.123.130.39]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 19 Jul 2023 05:15:13 +0800 (CST) X-QQ-SSF: 01200000000000D0X000000A0000000 X-QQ-FEAT: lO87fmWkX3FnwSGm+p0pup/4ktDW2xqng3XU6uxahpZJpMrHSZkTO/ZQMQKyN UPuxfSq2bT+YWZH8/JoUGxD+9G4acuQLNRp+qxc//cgvPEs5ciLw66XWiRK6yOZO6GK+pdC VqNLE6cAOhHSErPFNvNUtD8uSfxg5uNMNKGRb04urZdjpxUUlDI29ZJLnhZVDBM5IkBkPWt +l7wWNU3VvOqy8p7rVML4Z9szsWyS3l+Q+p1RflMALejBKs/W5+/i245VHuVLToacNizW7U OOtveNPOw3Gs2p8xqw6UM1mgxuYPsoWt9ewH6BzFJdYm4IsXviKAfbpEUPXGalUxPpebOlI C4uyKdE7KancNwnMomkEL3dSAbDJjgSTgB/WASQ8BOJwBj9PIREimeXPGB7cw== X-QQ-GoodBg: 0 X-BIZMAIL-ID: 5940336848902200637 From: Zhangjin Wu To: w@1wt.eu Cc: thomas@t-8ch.de, arnd@arndb.de, falcon@tinylab.org, linux-kernel@vger.kernel.org, linux-kselftest@vger.kernel.org Subject: [PATCH v1 5/8] selftests/nolibc: add XARCH and ARCH mapping support Date: Wed, 19 Jul 2023 05:15:13 +0800 Message-Id: <90c1d88dabf73e100dc840965fbdfe3ad5dc550f.1689713175.git.falcon@tinylab.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-QQ-SENDSIZE: 520 Feedback-ID: bizesmtp:tinylab.org:qybglogicsvrgz:qybglogicsvrgz5a-1 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org To test the architectures not directly supported by kernel, let's add a new XARCH as our own test input and map between XARCH and ARCH to make sure pass a right ARCH to kernel for a XARCH input and also configure a default XARCH for ARCH. ARCH is a subset of XARCH, to test more architectures than the ARCH variable directly supported by kernel, the old architecture specific variables used by our test are converted to use XARCH instead of ARCH. Suggested-by: Willy Tarreau Link: https://lore.kernel.org/lkml/20230702171715.GD16233@1wt.eu/ Signed-off-by: Zhangjin Wu --- tools/testing/selftests/nolibc/Makefile | 34 +++++++++++++++---------- 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selftests/nolibc/Makefile index 08a5ca5f418b..b17a82efe6de 100644 --- a/tools/testing/selftests/nolibc/Makefile +++ b/tools/testing/selftests/nolibc/Makefile @@ -14,6 +14,13 @@ include $(srctree)/scripts/subarch.include ARCH = $(SUBARCH) endif +# XARCH and ARCH mapping +# XARCH is specified by user +XARCH ?= $(or $(XARCH_$(ARCH)),$(ARCH)) + +# ARCH is supported by kernel +ARCH := $(or $(ARCH_$(XARCH)),$(XARCH)) + # kernel image names by architecture IMAGE_i386 = arch/x86/boot/bzImage IMAGE_x86_64 = arch/x86/boot/bzImage @@ -24,7 +31,7 @@ IMAGE_mips = vmlinuz IMAGE_riscv = arch/riscv/boot/Image IMAGE_s390 = arch/s390/boot/bzImage IMAGE_loongarch = arch/loongarch/boot/vmlinuz.efi -IMAGE = $(IMAGE_$(ARCH)) +IMAGE = $(IMAGE_$(XARCH)) IMAGE_NAME = $(notdir $(IMAGE)) # default kernel configurations that appear to be usable @@ -37,10 +44,10 @@ DEFCONFIG_mips = malta_defconfig DEFCONFIG_riscv = defconfig DEFCONFIG_s390 = defconfig DEFCONFIG_loongarch = defconfig -DEFCONFIG = $(DEFCONFIG_$(ARCH)) +DEFCONFIG = $(DEFCONFIG_$(XARCH)) # extra kernel config files under configs/, include common + architecture specific -EXTCONFIG = common.config $(ARCH).config +EXTCONFIG = common.config $(XARCH).config # optional tests to run (default = all) TEST = @@ -55,7 +62,7 @@ QEMU_ARCH_mips = mipsel # works with malta_defconfig QEMU_ARCH_riscv = riscv64 QEMU_ARCH_s390 = s390x QEMU_ARCH_loongarch = loongarch64 -QEMU_ARCH = $(QEMU_ARCH_$(ARCH)) +QEMU_ARCH = $(QEMU_ARCH_$(XARCH)) # QEMU_ARGS : some arch-specific args to pass to qemu QEMU_ARGS_i386 = -M pc -append "console=ttyS0,9600 i8042.noaux panic=-1 $(TEST:%=NOLIBC_TEST=%)" @@ -67,7 +74,7 @@ QEMU_ARGS_mips = -M malta -append "panic=-1 $(TEST:%=NOLIBC_TEST=%)" QEMU_ARGS_riscv = -M virt -append "console=ttyS0 panic=-1 $(TEST:%=NOLIBC_TEST=%)" QEMU_ARGS_s390 = -M s390-ccw-virtio -m 1G -append "console=ttyS0 panic=-1 $(TEST:%=NOLIBC_TEST=%)" QEMU_ARGS_loongarch = -M virt -append "console=ttyS0,115200 panic=-1 $(TEST:%=NOLIBC_TEST=%)" -QEMU_ARGS = $(QEMU_ARGS_$(ARCH)) $(QEMU_ARGS_EXTRA) +QEMU_ARGS = $(QEMU_ARGS_$(XARCH)) $(QEMU_ARGS_EXTRA) # OUTPUT is only set when run from the main makefile, otherwise # it defaults to this nolibc directory. @@ -84,7 +91,7 @@ CFLAGS_mips = -EL CFLAGS_STACKPROTECTOR ?= $(call cc-option,-mstack-protector-guard=global $(call cc-option,-fstack-protector-all)) CFLAGS ?= -Os -fno-ident -fno-asynchronous-unwind-tables -std=c89 \ $(call cc-option,-fno-stack-protector) \ - $(CFLAGS_$(ARCH)) $(CFLAGS_STACKPROTECTOR) + $(CFLAGS_$(XARCH)) $(CFLAGS_STACKPROTECTOR) LDFLAGS := -s REPORT ?= awk '/\[OK\][\r]*$$/{p++} /\[FAIL\][\r]*$$/{if (!f) printf("\n"); f++; print;} /\[SKIPPED\][\r]*$$/{s++} \ @@ -99,24 +106,25 @@ help: @echo " sysroot create the nolibc sysroot here (uses \$$ARCH)" @echo " nolibc-test build the executable (uses \$$CC and \$$CROSS_COMPILE)" @echo " libc-test build an executable using the compiler's default libc instead" - @echo " run-user runs the executable under QEMU (uses \$$ARCH, \$$TEST)" + @echo " run-user runs the executable under QEMU (uses \$$XARCH, \$$TEST)" @echo " initramfs prepare the initramfs with nolibc-test" - @echo " defconfig create a fresh new default config (uses \$$ARCH)" - @echo " kernel (re)build the kernel with the initramfs (uses \$$ARCH)" - @echo " run runs the kernel in QEMU after building it (uses \$$ARCH, \$$TEST)" - @echo " rerun runs a previously prebuilt kernel in QEMU (uses \$$ARCH, \$$TEST)" + @echo " defconfig create a fresh new default config (uses \$$XARCH)" + @echo " kernel (re)build the kernel with the initramfs (uses \$$XARCH)" + @echo " run runs the kernel in QEMU after building it (uses \$$XARCH, \$$TEST)" + @echo " rerun runs a previously prebuilt kernel in QEMU (uses \$$XARCH, \$$TEST)" @echo " clean clean the sysroot, initramfs, build and output files" @echo "" @echo "The output file is \"run.out\". Test ranges may be passed using \$$TEST." @echo "" @echo "Currently using the following variables:" @echo " ARCH = $(ARCH)" + @echo " XARCH = $(XARCH)" @echo " CROSS_COMPILE = $(CROSS_COMPILE)" @echo " CC = $(CC)" @echo " OUTPUT = $(OUTPUT)" @echo " TEST = $(TEST)" - @echo " QEMU_ARCH = $(if $(QEMU_ARCH),$(QEMU_ARCH),UNKNOWN_ARCH) [determined from \$$ARCH]" - @echo " IMAGE_NAME = $(if $(IMAGE_NAME),$(IMAGE_NAME),UNKNOWN_ARCH) [determined from \$$ARCH]" + @echo " QEMU_ARCH = $(if $(QEMU_ARCH),$(QEMU_ARCH),UNKNOWN_ARCH) [determined from \$$XARCH]" + @echo " IMAGE_NAME = $(if $(IMAGE_NAME),$(IMAGE_NAME),UNKNOWN_ARCH) [determined from \$$XARCH]" @echo "" all: run -- 2.25.1