From nobody Fri Sep 12 14:46:02 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7F344C05027 for ; Thu, 9 Feb 2023 03:25:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232725AbjBIDYq (ORCPT ); Wed, 8 Feb 2023 22:24:46 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59326 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232707AbjBIDYb (ORCPT ); Wed, 8 Feb 2023 22:24:31 -0500 Received: from mail-pj1-x1036.google.com (mail-pj1-x1036.google.com [IPv6:2607:f8b0:4864:20::1036]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5CA212712 for ; Wed, 8 Feb 2023 19:24:28 -0800 (PST) Received: by mail-pj1-x1036.google.com with SMTP id rm7-20020a17090b3ec700b0022c05558d22so1003767pjb.5 for ; Wed, 08 Feb 2023 19:24:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=YFDa6RzFjbYJQKnaADEQ469/RoyljuIaxBNPhmYoeo0=; b=Nn7SX3ixYjVrAo6eo2AYxJ79osyGC003C8QvKyqD4c079ZYifo5Hsbskj1nsoIiU6V CY1ePp2VQvoIQwN1a04RKC5y5RRz/xvI8xQgjFS1rh8Bi9Ggox3eOHqnuMy2r7ScjFrS 2h6T9w5ltuHMESQlTQCbGuOVf9x2Kc5EbJhyIaqih396skv3yeqEsrS6rKwHIrE1yqBJ xv3qew1r3aPfx8zz8DKDC4o9u+Hu3epEz3VC3I26L4M5Fei8Qf66CS+YAIecOs3zJljX kT7T2rLsVm27XA/50qkOr+TuPkZ6BssD8g9bzj5DXyViTrE7csthf7kruq17KuqMQ32R BwTw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=YFDa6RzFjbYJQKnaADEQ469/RoyljuIaxBNPhmYoeo0=; b=T8qRQY+gk7Lr8iewlaxc/f7j/u7SnpugLIqpS05tsyZqdVnBHB8v0vILYX6Rhf4EXh ooXoIoxF2xkzGPkEo01Yl2is7qicCRbbUaQpHa17bWkiDW5G9bNIYiTjJF2/dv1bpDj/ Y5jVbQGLLjXNjuEm++0nmF51BC+zm3ZPj+93NdhldP0jeYXdP51bMG5hSq9CzYC28fje TzeaufjxdHXR00ENxbcALrSwbSh42ytoO6wFAnfdNO7ZcMaqAot3YK6aKeDgP9yHMCV1 o8wVNX3FV49qr2N6C8pPeGMuUK9jS0KO9L+axQD0vpePZlhe0nf/DgmcGgvHnx3Wbgy/ X4FA== X-Gm-Message-State: AO0yUKVEZ0MuAYDC5KC4ufoFgLeFa0gj5UK5ORA1Nbkq3q20Ccjlve2M uRVLfNSuAmNyz7dNPmkanhU= X-Google-Smtp-Source: AK7set/w65ft3z8q4/tgNHWVFMOSbMGckfkblII+ehcJ1tYMIssiV/23jVMzxd0SisfCwE8+LUMc4A== X-Received: by 2002:a17:902:e807:b0:196:8d48:8760 with SMTP id u7-20020a170902e80700b001968d488760mr10677068plg.31.1675913067897; Wed, 08 Feb 2023 19:24:27 -0800 (PST) Received: from localhost.localdomain ([112.20.108.204]) by smtp.gmail.com with ESMTPSA id p5-20020a170902eac500b00192820d00d0sm216086pld.120.2023.02.08.19.24.25 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 08 Feb 2023 19:24:27 -0800 (PST) From: chris.chenfeiyang@gmail.com X-Google-Original-From: chenfeiyang@loongson.cn To: w@1wt.eu, paulmck@kernel.org Cc: Feiyang Chen , arnd@arndb.de, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, chris.chenfeiyang@gmail.com, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 1/5] tools/nolibc: Include linux/fcntl.h and remove duplicate code Date: Thu, 9 Feb 2023 11:24:12 +0800 Message-Id: X-Mailer: git-send-email 2.39.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Feiyang Chen Include linux/fcntl.h for O_* and AT_*. asm/fcntl.h is included by linux/fcntl.h, so it can be safely removed. Signed-off-by: Feiyang Chen Acked-by: Huacai Chen --- tools/include/nolibc/sys.h | 2 +- tools/include/nolibc/types.h | 5 ----- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/tools/include/nolibc/sys.h b/tools/include/nolibc/sys.h index b5f8cd35c03b..c4818a9c8823 100644 --- a/tools/include/nolibc/sys.h +++ b/tools/include/nolibc/sys.h @@ -11,7 +11,6 @@ #include "std.h" =20 /* system includes */ -#include // for O_* #include #include // for SIGCHLD #include @@ -20,6 +19,7 @@ #include #include #include +#include // for O_* and AT_* =20 #include "arch.h" #include "errno.h" diff --git a/tools/include/nolibc/types.h b/tools/include/nolibc/types.h index fbbc0e68c001..a3651c514e2f 100644 --- a/tools/include/nolibc/types.h +++ b/tools/include/nolibc/types.h @@ -60,11 +60,6 @@ #define MAXPATHLEN (PATH_MAX) #endif =20 -/* Special FD used by all the *at functions */ -#ifndef AT_FDCWD -#define AT_FDCWD (-100) -#endif - /* whence values for lseek() */ #define SEEK_SET 0 #define SEEK_CUR 1 --=20 2.39.0 From nobody Fri Sep 12 14:46:02 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id E3834C05027 for ; Thu, 9 Feb 2023 03:25:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231733AbjBIDZK (ORCPT ); Wed, 8 Feb 2023 22:25:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59336 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231159AbjBIDYc (ORCPT ); Wed, 8 Feb 2023 22:24:32 -0500 Received: from mail-pl1-x62e.google.com (mail-pl1-x62e.google.com [IPv6:2607:f8b0:4864:20::62e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56C3CE06E for ; Wed, 8 Feb 2023 19:24:31 -0800 (PST) Received: by mail-pl1-x62e.google.com with SMTP id iz19so109284plb.13 for ; Wed, 08 Feb 2023 19:24:31 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=0k4116z+FnKSgcNKXbUlpcxBAngwPA0Oou26zqioifg=; b=HTuOSyeF0u9WynHKbqrdk80adG2jyTJ75oyfVIYtld2I1Jvj58m1hkDmNjx3GQMOPs mOHANoqBu3etAUjQHELKc0eJwSsawtkE3CjUX7MFT4FgkCLgf5+LlvpAAzu4mMLl7O0C cJT13sQA40NMpy+gCsAJsWM6Y0EI/0jc/wryE83JbAuttljaQVdDdIjn86+lr0nMbQiW qRbEQ+EVFtCLzyQBRbZrANTjaVEmiJRteaX63YS3zA3XC5nAE6GHDD2CMbGy00ghQhWj H0hhyXlXF3giIDYue35TKSf7oaDb2HhJBmNUN3rDxkv2gKJNyJTlSJJIbrP+xCNP5W6X HUtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=0k4116z+FnKSgcNKXbUlpcxBAngwPA0Oou26zqioifg=; b=rRYHR4W+IWduFBOEnolNtO/+OmYZuq/MZzKsum89/trxB7cVcTQLO0rRfdjDiAmZDM TtfXr3AlLUEuviQB9S09vG2TTDVX6h+KZGPsNKnernF6Pau9hHRc1WhyE9vtok/+yCvK 1FKYDF17xfPJs+byaStQwz2BJq8NBxOBjLh6+b0oVsNEbjb75FEoieDZ6ZuEVhbVufF5 VaWONUdQOBRMf02DrxPL9qlWBjO9XJHNO+67kdvcURbjSBc+85P6AZyRB2bW/NhPcJa9 G85iuj2hCHWdpaMBdNp21F6kbpKwe4nCLLzXLofPocGNfTyEdQEW4GVE5HFrB6sb2SYS M7Tw== X-Gm-Message-State: AO0yUKWZCYhTaxu50I8qHcDGCDxwViZIzO1G5Q1GuA52kXRLj1VT1r22 oLg37TGPd+B6UC+JziTjszA= X-Google-Smtp-Source: AK7set/0+u/D8v8msRR4LnK2jLZDeI8z/6+tA97Oe+gs2LS1scm4li7z5ZKg8+aVx2zvKk5Y9ccnfw== X-Received: by 2002:a17:902:eccf:b0:198:ee1c:77b6 with SMTP id a15-20020a170902eccf00b00198ee1c77b6mr12351342plh.26.1675913070854; Wed, 08 Feb 2023 19:24:30 -0800 (PST) Received: from localhost.localdomain ([112.20.108.204]) by smtp.gmail.com with ESMTPSA id p5-20020a170902eac500b00192820d00d0sm216086pld.120.2023.02.08.19.24.28 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 08 Feb 2023 19:24:30 -0800 (PST) From: chris.chenfeiyang@gmail.com X-Google-Original-From: chenfeiyang@loongson.cn To: w@1wt.eu, paulmck@kernel.org Cc: Feiyang Chen , arnd@arndb.de, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, chris.chenfeiyang@gmail.com, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 2/5] tools/nolibc: Add statx() and make stat() rely on statx() if necessary Date: Thu, 9 Feb 2023 11:24:13 +0800 Message-Id: X-Mailer: git-send-email 2.39.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Feiyang Chen LoongArch and RISC-V 32-bit only have statx(). ARC, Hexagon, Nios2 and OpenRISC have statx() and stat64() but not stat() or newstat(). Add statx() and make stat() rely on statx() if necessary to make them happy. We may just use statx() for all architectures in the future. Signed-off-by: Feiyang Chen Acked-by: Huacai Chen --- tools/include/nolibc/sys.h | 56 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/tools/include/nolibc/sys.h b/tools/include/nolibc/sys.h index c4818a9c8823..70c30d457952 100644 --- a/tools/include/nolibc/sys.h +++ b/tools/include/nolibc/sys.h @@ -20,6 +20,7 @@ #include #include #include // for O_* and AT_* +#include // for statx() =20 #include "arch.h" #include "errno.h" @@ -1048,12 +1049,66 @@ pid_t setsid(void) return ret; } =20 +#if defined(__NR_statx) +/* + * int statx(int fd, const char *path, int flags, unsigned int mask, struc= t statx *buf); + */ + +static __attribute__((unused)) +int sys_statx(int fd, const char *path, int flags, unsigned int mask, stru= ct statx *buf) +{ + return my_syscall5(__NR_statx, fd, path, flags, mask, buf); +} + +static __attribute__((unused)) +int statx(int fd, const char *path, int flags, unsigned int mask, struct s= tatx *buf) +{ + int ret =3D sys_statx(fd, path, flags, mask, buf); + + if (ret < 0) { + SET_ERRNO(-ret); + ret =3D -1; + } + return ret; +} +#endif =20 /* * int stat(const char *path, struct stat *buf); * Warning: the struct stat's layout is arch-dependent. */ =20 +#if defined(__NR_statx) && !defined(__NR_newfstatat) && !defined(__NR_stat) +/* + * Maybe we can just use statx() when available for all architectures? + */ +static __attribute__((unused)) +int sys_stat(const char *path, struct stat *buf) +{ + struct statx statx; + long ret; + + ret =3D sys_statx(AT_FDCWD, path, AT_NO_AUTOMOUNT, STATX_BASIC_STATS, &st= atx); + buf->st_dev =3D ((statx.stx_dev_minor & 0xff) + | (statx.stx_dev_major << 8) + | ((statx.stx_dev_minor & ~0xff) << 12)); + buf->st_ino =3D statx.stx_ino; + buf->st_mode =3D statx.stx_mode; + buf->st_nlink =3D statx.stx_nlink; + buf->st_uid =3D statx.stx_uid; + buf->st_gid =3D statx.stx_gid; + buf->st_rdev =3D ((statx.stx_rdev_minor & 0xff) + | (statx.stx_rdev_major << 8) + | ((statx.stx_rdev_minor & ~0xff) << 12)); + buf->st_size =3D statx.stx_size; + buf->st_blksize =3D statx.stx_blksize; + buf->st_blocks =3D statx.stx_blocks; + buf->st_atime =3D statx.stx_atime.tv_sec; + buf->st_mtime =3D statx.stx_mtime.tv_sec; + buf->st_ctime =3D statx.stx_ctime.tv_sec; + return ret; +} +#else static __attribute__((unused)) int sys_stat(const char *path, struct stat *buf) { @@ -1083,6 +1138,7 @@ int sys_stat(const char *path, struct stat *buf) buf->st_ctime =3D stat.st_ctime; return ret; } +#endif =20 static __attribute__((unused)) int stat(const char *path, struct stat *buf) --=20 2.39.0 From nobody Fri Sep 12 14:46:02 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id BF068C05027 for ; Thu, 9 Feb 2023 03:25:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232726AbjBIDZR (ORCPT ); Wed, 8 Feb 2023 22:25:17 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59432 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232714AbjBIDYh (ORCPT ); Wed, 8 Feb 2023 22:24:37 -0500 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 67621126E5 for ; Wed, 8 Feb 2023 19:24:34 -0800 (PST) Received: by mail-pj1-x102d.google.com with SMTP id gj9-20020a17090b108900b0023114156d36so4357331pjb.4 for ; Wed, 08 Feb 2023 19:24:34 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=xibiFF/V1JSfx4FVu1IvjMxukDbBPo1ygOI1aB6E6KY=; b=duqBh6zR1EPMOjfmGmy8rAUfEZToUfWPCX6ZWeu2VoqcXeTKHAsByuY3pYlJc1hCp4 rJ2JgON3y02f50DMNoIcS06plkv8is6t9pxEAln2ElvfnJa5OHDvj5RUFreNpyKGo+W1 /jtowuUynU+ELIA6pT9ijZcvMV7hFPXDAvBeVkn9erQbOtZ5DeWRSnx5e6AWkPCo+Y3x wTfsYHAldyxlexW4ipwTKYCC3mUymATHW9heZjjPcwR5ZSZioFQNY+7WFbncHC8WA7V/ qtmNWKn13AqeNMws8P6c/X3ynWjxlPg/Yqs2Zl//w+ltuJmdMNf4/kZhvtZO20z7KQqK x+5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=xibiFF/V1JSfx4FVu1IvjMxukDbBPo1ygOI1aB6E6KY=; b=pl8mYBTNDaMGwGWFr7IYJaAfa3J8Fv1UX/j+GXx8BGu2q8rxbxJaOdkFvbXT/cQMAK 01fF4WwpjBjQU5RKyiYa9l+DxYzjISD2HmbzzWZFMol2s4zUAx0SeVCr/DY09tP+3OCp Ki+nVskCwtGbA6LSCebWWh6a7gl5+PBOoQSRZ98ZEDmaG4W32UT91uriNmPpNA3MYgdo nsh2ZFN0rEgOlcfeEAbNhofKhBlGfSS9enMQBf+i1B3i2btwayEalVFMpzMKrpDMAeQu zZOg0NCuqasOpJtq+qKDccxRl+xJLIbOs6O0PAu5LK1IIRSU6FdRRCj+KPZfVbRotrDg qtkg== X-Gm-Message-State: AO0yUKUJ0MiyERfvy74HRqESBoATp1Q5eWiJQtoRZdhoma11dXYBPFn8 g3wo1fEf6VAszAllxD7DoUI= X-Google-Smtp-Source: AK7set/DtLeVN8DjT4PYmdhl8G9Ard+TFk0dUH5bmnDlH3/mAf3zpmPwJSKsVFwDRIYxQuHNYzfAaw== X-Received: by 2002:a17:902:f2cd:b0:19a:5999:7a35 with SMTP id h13-20020a170902f2cd00b0019a59997a35mr827082plc.36.1675913073804; Wed, 08 Feb 2023 19:24:33 -0800 (PST) Received: from localhost.localdomain ([112.20.108.204]) by smtp.gmail.com with ESMTPSA id p5-20020a170902eac500b00192820d00d0sm216086pld.120.2023.02.08.19.24.31 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 08 Feb 2023 19:24:33 -0800 (PST) From: chris.chenfeiyang@gmail.com X-Google-Original-From: chenfeiyang@loongson.cn To: w@1wt.eu, paulmck@kernel.org Cc: Feiyang Chen , arnd@arndb.de, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, chris.chenfeiyang@gmail.com, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 3/5] tools/nolibc: Add support for LoongArch Date: Thu, 9 Feb 2023 11:24:14 +0800 Message-Id: <19f6fc2d1c15b9fb3b13ff78ce00298b74de2d72.1675907639.git.chenfeiyang@loongson.cn> X-Mailer: git-send-email 2.39.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Feiyang Chen Add support for LoongArch (32 and 64 bit) to nolibc. Signed-off-by: Feiyang Chen Acked-by: Huacai Chen --- tools/include/nolibc/arch-loongarch.h | 200 ++++++++++++++++++++++++++ tools/include/nolibc/arch.h | 2 + 2 files changed, 202 insertions(+) create mode 100644 tools/include/nolibc/arch-loongarch.h diff --git a/tools/include/nolibc/arch-loongarch.h b/tools/include/nolibc/a= rch-loongarch.h new file mode 100644 index 000000000000..029ee3cd6baf --- /dev/null +++ b/tools/include/nolibc/arch-loongarch.h @@ -0,0 +1,200 @@ +/* SPDX-License-Identifier: LGPL-2.1 OR MIT */ +/* + * LoongArch specific definitions for NOLIBC + * Copyright (C) 2023 Loongson Technology Corporation Limited + */ + +#ifndef _NOLIBC_ARCH_LOONGARCH_H +#define _NOLIBC_ARCH_LOONGARCH_H + +/* Syscalls for LoongArch : + * - stack is 16-byte aligned + * - syscall number is passed in a7 + * - arguments are in a0, a1, a2, a3, a4, a5 + * - the system call is performed by calling "syscall 0" + * - syscall return comes in a0 + * - the arguments are cast to long and assigned into the target + * registers which are then simply passed as registers to the asm code, + * so that we don't have to experience issues with register constraint= s. + * + * On LoongArch, select() is not implemented so we have to use pselect6(). + */ +#define __ARCH_WANT_SYS_PSELECT6 + +#define my_syscall0(num) = \ +({ = \ + register long _num __asm__ ("a7") =3D (num); \ + register long _arg1 __asm__ ("a0"); \ + \ + __asm__ volatile ( \ + "syscall 0\n" \ + : "=3Dr"(_arg1) \ + : "r"(_num) \ + : "memory", "$t0", "$t1", "$t2", "$t3", \ + "$t4", "$t5", "$t6", "$t7", "$t8" \ + ); \ + _arg1; \ +}) + +#define my_syscall1(num, arg1) = \ +({ = \ + register long _num __asm__ ("a7") =3D (num); \ + register long _arg1 __asm__ ("a0") =3D (long)(arg1); \ + \ + __asm__ volatile ( \ + "syscall 0\n" \ + : "+r"(_arg1) \ + : "r"(_num) \ + : "memory", "$t0", "$t1", "$t2", "$t3", \ + "$t4", "$t5", "$t6", "$t7", "$t8" \ + ); \ + _arg1; \ +}) + +#define my_syscall2(num, arg1, arg2) = \ +({ = \ + register long _num __asm__ ("a7") =3D (num); \ + register long _arg1 __asm__ ("a0") =3D (long)(arg1); \ + register long _arg2 __asm__ ("a1") =3D (long)(arg2); \ + \ + __asm__ volatile ( \ + "syscall 0\n" \ + : "+r"(_arg1) \ + : "r"(_arg2), \ + "r"(_num) \ + : "memory", "$t0", "$t1", "$t2", "$t3", \ + "$t4", "$t5", "$t6", "$t7", "$t8" \ + ); \ + _arg1; \ +}) + +#define my_syscall3(num, arg1, arg2, arg3) = \ +({ = \ + register long _num __asm__ ("a7") =3D (num); \ + register long _arg1 __asm__ ("a0") =3D (long)(arg1); \ + register long _arg2 __asm__ ("a1") =3D (long)(arg2); \ + register long _arg3 __asm__ ("a2") =3D (long)(arg3); \ + \ + __asm__ volatile ( \ + "syscall 0\n" \ + : "+r"(_arg1) \ + : "r"(_arg2), "r"(_arg3), \ + "r"(_num) \ + : "memory", "$t0", "$t1", "$t2", "$t3", \ + "$t4", "$t5", "$t6", "$t7", "$t8" \ + ); \ + _arg1; \ +}) + +#define my_syscall4(num, arg1, arg2, arg3, arg4) = \ +({ = \ + register long _num __asm__ ("a7") =3D (num); \ + register long _arg1 __asm__ ("a0") =3D (long)(arg1); \ + register long _arg2 __asm__ ("a1") =3D (long)(arg2); \ + register long _arg3 __asm__ ("a2") =3D (long)(arg3); \ + register long _arg4 __asm__ ("a3") =3D (long)(arg4); \ + \ + __asm__ volatile ( \ + "syscall 0\n" \ + : "+r"(_arg1) \ + : "r"(_arg2), "r"(_arg3), "r"(_arg4), \ + "r"(_num) \ + : "memory", "$t0", "$t1", "$t2", "$t3", \ + "$t4", "$t5", "$t6", "$t7", "$t8" \ + ); \ + _arg1; \ +}) + +#define my_syscall5(num, arg1, arg2, arg3, arg4, arg5) = \ +({ = \ + register long _num __asm__ ("a7") =3D (num); \ + register long _arg1 __asm__ ("a0") =3D (long)(arg1); \ + register long _arg2 __asm__ ("a1") =3D (long)(arg2); \ + register long _arg3 __asm__ ("a2") =3D (long)(arg3); \ + register long _arg4 __asm__ ("a3") =3D (long)(arg4); \ + register long _arg5 __asm__ ("a4") =3D (long)(arg5); \ + \ + __asm__ volatile ( \ + "syscall 0\n" \ + : "+r"(_arg1) \ + : "r"(_arg2), "r"(_arg3), "r"(_arg4), "r"(_arg5), \ + "r"(_num) \ + : "memory", "$t0", "$t1", "$t2", "$t3", \ + "$t4", "$t5", "$t6", "$t7", "$t8" \ + ); \ + _arg1; \ +}) + +#define my_syscall6(num, arg1, arg2, arg3, arg4, arg5, arg6) = \ +({ = \ + register long _num __asm__ ("a7") =3D (num); \ + register long _arg1 __asm__ ("a0") =3D (long)(arg1); \ + register long _arg2 __asm__ ("a1") =3D (long)(arg2); \ + register long _arg3 __asm__ ("a2") =3D (long)(arg3); \ + register long _arg4 __asm__ ("a3") =3D (long)(arg4); \ + register long _arg5 __asm__ ("a4") =3D (long)(arg5); \ + register long _arg6 __asm__ ("a5") =3D (long)(arg6); \ + \ + __asm__ volatile ( \ + "syscall 0\n" \ + : "+r"(_arg1) \ + : "r"(_arg2), "r"(_arg3), "r"(_arg4), "r"(_arg5), "r"(_arg6), \ + "r"(_num) \ + : "memory", "$t0", "$t1", "$t2", "$t3", \ + "$t4", "$t5", "$t6", "$t7", "$t8" \ + ); \ + _arg1; \ +}) + +char **environ __attribute__((weak)); +const unsigned long *_auxv __attribute__((weak)); + +#if __loongarch_grlen =3D=3D 32 +#define LONGLOG "2" +#define SZREG "4" +#define REG_L "ld.w" +#define LONG_S "st.w" +#define LONG_ADD "add.w" +#define LONG_ADDI "addi.w" +#define LONG_SLL "slli.w" +#define LONG_BSTRINS "bstrins.w" +#else // __loongarch_grlen =3D=3D 64 +#define LONGLOG "3" +#define SZREG "8" +#define REG_L "ld.d" +#define LONG_S "st.d" +#define LONG_ADD "add.d" +#define LONG_ADDI "addi.d" +#define LONG_SLL "slli.d" +#define LONG_BSTRINS "bstrins.d" +#endif + +/* startup code */ +void __attribute__((weak,noreturn,optimize("omit-frame-pointer"))) _start(= void) +{ + __asm__ volatile ( + REG_L " $a0, $sp, 0\n" // argc (a0) was in the stack + LONG_ADDI " $a1, $sp, "SZREG"\n" // argv (a1) =3D sp + SZREG + LONG_SLL " $a2, $a0, "LONGLOG"\n" // envp (a2) =3D SZREG*argc ... + LONG_ADDI " $a2, $a2, "SZREG"\n" // + SZREG (skip null) + LONG_ADD " $a2, $a2, $a1\n" // + argv + + "move $a3, $a2\n" // iterate a3 over envp to find au= xv (after NULL) + "0:\n" // do { + REG_L " $a4, $a3, 0\n" // a4 =3D *a3; + LONG_ADDI " $a3, $a3, "SZREG"\n" // a3 +=3D sizeof(void*); + "bne $a4, $zero, 0b\n" // } while (a4); + "la.pcrel $a4, _auxv\n" // a4 =3D &_auxv + LONG_S " $a3, $a4, 0\n" // store a3 into _auxv + + "la.pcrel $a3, environ\n" // a3 =3D &environ + LONG_S " $a2, $a3, 0\n" // store envp(a2) into environ + LONG_BSTRINS " $sp, $zero, 3, 0\n" // sp must be 16-byte aligned + "bl main\n" // main() returns the status code,= we'll exit with it. + "li.w $a7, 93\n" // NR_exit =3D=3D 93 + "syscall 0\n" + ); + __builtin_unreachable(); +} + +#endif // _NOLIBC_ARCH_LOONGARCH_H diff --git a/tools/include/nolibc/arch.h b/tools/include/nolibc/arch.h index 78b067a4fa47..2d5386a8d6aa 100644 --- a/tools/include/nolibc/arch.h +++ b/tools/include/nolibc/arch.h @@ -29,6 +29,8 @@ #include "arch-riscv.h" #elif defined(__s390x__) #include "arch-s390.h" +#elif defined(__loongarch__) +#include "arch-loongarch.h" #endif =20 #endif /* _NOLIBC_ARCH_H */ --=20 2.39.0 From nobody Fri Sep 12 14:46:02 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5CC67C05027 for ; Thu, 9 Feb 2023 03:25:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231593AbjBIDZ1 (ORCPT ); Wed, 8 Feb 2023 22:25:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59580 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232731AbjBIDYv (ORCPT ); Wed, 8 Feb 2023 22:24:51 -0500 Received: from mail-pj1-x1033.google.com (mail-pj1-x1033.google.com [IPv6:2607:f8b0:4864:20::1033]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 49C68166C9 for ; Wed, 8 Feb 2023 19:24:37 -0800 (PST) Received: by mail-pj1-x1033.google.com with SMTP id v18-20020a17090ae99200b00230f079dcd9so4868464pjy.1 for ; Wed, 08 Feb 2023 19:24:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=fq3h6NGHFAxHZ5DLcg6qPLA20/eRYQpYkN3wnk0IEiI=; b=qKKR+nM2DTUL7pQBTtfyKhJ24S9DZe3DNHuR8Ij2bMaR9SuFBiFmkF6S7Hn64PYOz2 4Ct67ZxnBBtXAXD+aIWgUCDMMZr9Tt8e+b7tCep8lnGPvNOdMlVcBSUTdXI/FSWwV9vm RJkuVkQyxsNyvPCh3XN8fhZvWkZ2hGMGl2BP8KMn9j/6hCiWTDUPikgNexGTbQ2CwAj+ 8l4VQP+NhnDPAW8P0RMAdSIRMxctxxfw3EKhlH5rklcijobSfRSDl6xCKQ4tRJx+Sc8K 2pYNdO+CHXkc5YxF3W6MX2OioIrfRDQbxnVxFA+8STVbQkA65Ou4c1D4zFPW8Dylt5YF 86XA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fq3h6NGHFAxHZ5DLcg6qPLA20/eRYQpYkN3wnk0IEiI=; b=obKRKSp0DihSrlFN55xCjSBePZSdsrs/o/zo3I7WglDdM5LyiJ7r+f2NT4fj2NFM+y 4rOx1CqNGOYA37mU1i7ZhmnsoAF3nOFhWVD5hbB+Kk0tcECQ2Huy0eUeygizZmea/si1 X63Po/MMpOZFOH+UtagxYev0YqMKrxotQAzWbZcBXqvSgcKgOBnqALz6N0fDbB7WqGim K/ahKo8dpH/eq4l0wuMGZHc3qkhBvASOknOVVnBA3X0s2Am85JNbskCnTaxKz+aDFh/R odcAw1TvPdQ4NUMcpBcWqws9Lyg+cfFfWYCc9Hd3bEzPKRT7oKNDSkCrWFeyyr9a6PXf vJ0w== X-Gm-Message-State: AO0yUKX+kKg9zALukDrIp0InFolSE0X2dH5nN5aPr1z8hCCEz6IZVzov BT/EbI9bTTrKewnR9BUuUSU= X-Google-Smtp-Source: AK7set/m+uaObsdqOItdbS8+U6+7ncZOtQaKpOmizfo0FxDkFaOYzS+LS5jKPGFYF4eF0G0XG/ITXw== X-Received: by 2002:a17:902:f20b:b0:199:aae:7569 with SMTP id m11-20020a170902f20b00b001990aae7569mr7344524plc.28.1675913076773; Wed, 08 Feb 2023 19:24:36 -0800 (PST) Received: from localhost.localdomain ([112.20.108.204]) by smtp.gmail.com with ESMTPSA id p5-20020a170902eac500b00192820d00d0sm216086pld.120.2023.02.08.19.24.34 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 08 Feb 2023 19:24:36 -0800 (PST) From: chris.chenfeiyang@gmail.com X-Google-Original-From: chenfeiyang@loongson.cn To: w@1wt.eu, paulmck@kernel.org Cc: Feiyang Chen , arnd@arndb.de, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, chris.chenfeiyang@gmail.com, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 4/5] selftests/nolibc: Add support for LoongArch Date: Thu, 9 Feb 2023 11:24:15 +0800 Message-Id: X-Mailer: git-send-email 2.39.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Feiyang Chen Add support for LoongArch (64 bit) to nolibc selftest. Signed-off-by: Feiyang Chen Acked-by: Huacai Chen --- tools/testing/selftests/nolibc/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selfte= sts/nolibc/Makefile index 8fe61d3e3cce..e9c4a9d011a0 100644 --- a/tools/testing/selftests/nolibc/Makefile +++ b/tools/testing/selftests/nolibc/Makefile @@ -21,6 +21,7 @@ IMAGE_arm =3D arch/arm/boot/zImage IMAGE_mips =3D vmlinuz IMAGE_riscv =3D arch/riscv/boot/Image IMAGE_s390 =3D arch/s390/boot/bzImage +IMAGE_loongarch =3D arch/loongarch/boot/vmlinuz.efi IMAGE =3D $(IMAGE_$(ARCH)) IMAGE_NAME =3D $(notdir $(IMAGE)) =20 @@ -33,6 +34,7 @@ DEFCONFIG_arm =3D multi_v7_defconfig DEFCONFIG_mips =3D malta_defconfig DEFCONFIG_riscv =3D defconfig DEFCONFIG_s390 =3D defconfig +DEFCONFIG_loongarch =3D defconfig DEFCONFIG =3D $(DEFCONFIG_$(ARCH)) =20 # optional tests to run (default =3D all) @@ -47,6 +49,7 @@ QEMU_ARCH_arm =3D arm QEMU_ARCH_mips =3D mipsel # works with malta_defconfig QEMU_ARCH_riscv =3D riscv64 QEMU_ARCH_s390 =3D s390x +QEMU_ARCH_loongarch =3D loongarch64 QEMU_ARCH =3D $(QEMU_ARCH_$(ARCH)) =20 # QEMU_ARGS : some arch-specific args to pass to qemu @@ -58,6 +61,7 @@ QEMU_ARGS_arm =3D -M virt -append "panic=3D-1 $(TEST:= %=3DNOLIBC_TEST=3D%)" QEMU_ARGS_mips =3D -M malta -append "panic=3D-1 $(TEST:%=3DNOLIBC_TEST= =3D%)" QEMU_ARGS_riscv =3D -M virt -append "console=3DttyS0 panic=3D-1 $(TEST:%= =3DNOLIBC_TEST=3D%)" QEMU_ARGS_s390 =3D -M s390-ccw-virtio -m 1G -append "console=3DttyS0 pa= nic=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" +QEMU_ARGS_loongarch =3D -M virt -append "console=3DttyS0,115200 panic=3D-= 1 $(TEST:%=3DNOLIBC_TEST=3D%)" QEMU_ARGS =3D $(QEMU_ARGS_$(ARCH)) =20 # OUTPUT is only set when run from the main makefile, otherwise --=20 2.39.0 From nobody Fri Sep 12 14:46:02 2025 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A2811C05027 for ; Thu, 9 Feb 2023 03:25:48 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232413AbjBIDZn (ORCPT ); Wed, 8 Feb 2023 22:25:43 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:59434 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232744AbjBIDY6 (ORCPT ); Wed, 8 Feb 2023 22:24:58 -0500 Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 3601714234 for ; Wed, 8 Feb 2023 19:24:40 -0800 (PST) Received: by mail-pj1-x102d.google.com with SMTP id f15-20020a17090ac28f00b00230a32f0c9eso1009554pjt.4 for ; Wed, 08 Feb 2023 19:24:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=WOMPizwvZIOCZuA+NM2fq3lJj7qsjRo1bnIWUyEuTFc=; b=o1Uf3DsOGh6S5T1HAbrl3mkVjPE7Kw+LSrW0bJOrDNIDEIqSEmqugn1WJqRSA4KC7e sqprHEDA8gjvoaGRJdgrMzv6gM80VOhmmCPDawO7h9uc79dtG2t1njmIB9JOhxZrICYT O/tcYaCnKyj7Tw8IFpnMUUN+YFVh1V+6eI0QTKdwpNRNeB3zWH2t1LORLBxYoYqrKq4M nacSpZcLuGTlCiyatI3sIDPeqfSs3sg0WVXQB5rfRwlObJgIw6z5AMrC22eVvx39F2gG gSEzKtf1NtZbZJNs0xLZJo7CWlPovEjk1f1lXCGx3XhHEh8eAlXUrHzP0twstNbiiltE 2RZA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=WOMPizwvZIOCZuA+NM2fq3lJj7qsjRo1bnIWUyEuTFc=; b=QFKs3ok0ivQQQvu56DbEnq7pO7sewKlmoVqxroZu3KCbtIXSXtZFOLfuYBt8Jwh9WO P04eq7JX5vh/r1NJajCT0cEMWQlPxj7Cwhd0M7hENolNwDRMqtlEYPB+1vcsOUK6onck Nsfd4rXGvr+d90Yf6jGpYjJwyDrn60jpXfDX0/plCv81W5ELLwSZdLycRHq1px+S+YpK ZZKlsTCyR6BiK3zG394RG6tq9bqeCeD/OAP1tjJqWCP99eUqnsqZfgPqaMYNC4/lPI5E A3vF1g6g+UMhNM2L+cKN5bqwccaKjr/pWbHQ2/Vw9AaIIVnAqaWxrt76jzlwJmVvk+lH GGww== X-Gm-Message-State: AO0yUKVBLMTLs+36iMrA/Wh/vJ/PChKOo/WA6aOFvZPocnCCWbJ5LPmQ +bvYe7UPzWa9mGb+b9sy1Qg= X-Google-Smtp-Source: AK7set9IW9dd0zqTW0WPNVAsRnNIusXUPZS6AKEuE7obiFC731NxJlbQIzdBGmcpaMK38sXh+pzZkw== X-Received: by 2002:a17:902:e1c1:b0:199:6abd:6a71 with SMTP id t1-20020a170902e1c100b001996abd6a71mr1405586pla.68.1675913079720; Wed, 08 Feb 2023 19:24:39 -0800 (PST) Received: from localhost.localdomain ([112.20.108.204]) by smtp.gmail.com with ESMTPSA id p5-20020a170902eac500b00192820d00d0sm216086pld.120.2023.02.08.19.24.37 (version=TLS1_3 cipher=TLS_CHACHA20_POLY1305_SHA256 bits=256/256); Wed, 08 Feb 2023 19:24:39 -0800 (PST) From: chris.chenfeiyang@gmail.com X-Google-Original-From: chenfeiyang@loongson.cn To: w@1wt.eu, paulmck@kernel.org Cc: Feiyang Chen , arnd@arndb.de, chenhuacai@kernel.org, jiaxun.yang@flygoat.com, chris.chenfeiyang@gmail.com, loongarch@lists.linux.dev, linux-kernel@vger.kernel.org Subject: [PATCH v3 5/5] selftests/nolibc: Adjust indentation for Makefile Date: Thu, 9 Feb 2023 11:24:16 +0800 Message-Id: <546afedaf92ad1ae95a79a99d15bdb359fd1410d.1675907639.git.chenfeiyang@loongson.cn> X-Mailer: git-send-email 2.39.1 In-Reply-To: References: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" From: Feiyang Chen Reindent only, no functional changes. Signed-off-by: Feiyang Chen Acked-by: Huacai Chen --- tools/testing/selftests/nolibc/Makefile | 74 ++++++++++++------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/tools/testing/selftests/nolibc/Makefile b/tools/testing/selfte= sts/nolibc/Makefile index e9c4a9d011a0..ea2b82a3cd86 100644 --- a/tools/testing/selftests/nolibc/Makefile +++ b/tools/testing/selftests/nolibc/Makefile @@ -13,56 +13,56 @@ ARCH =3D $(SUBARCH) endif =20 # kernel image names by architecture -IMAGE_i386 =3D arch/x86/boot/bzImage -IMAGE_x86_64 =3D arch/x86/boot/bzImage -IMAGE_x86 =3D arch/x86/boot/bzImage -IMAGE_arm64 =3D arch/arm64/boot/Image -IMAGE_arm =3D arch/arm/boot/zImage -IMAGE_mips =3D vmlinuz -IMAGE_riscv =3D arch/riscv/boot/Image -IMAGE_s390 =3D arch/s390/boot/bzImage +IMAGE_i386 =3D arch/x86/boot/bzImage +IMAGE_x86_64 =3D arch/x86/boot/bzImage +IMAGE_x86 =3D arch/x86/boot/bzImage +IMAGE_arm64 =3D arch/arm64/boot/Image +IMAGE_arm =3D arch/arm/boot/zImage +IMAGE_mips =3D vmlinuz +IMAGE_riscv =3D arch/riscv/boot/Image +IMAGE_s390 =3D arch/s390/boot/bzImage IMAGE_loongarch =3D arch/loongarch/boot/vmlinuz.efi -IMAGE =3D $(IMAGE_$(ARCH)) -IMAGE_NAME =3D $(notdir $(IMAGE)) +IMAGE =3D $(IMAGE_$(ARCH)) +IMAGE_NAME =3D $(notdir $(IMAGE)) =20 # default kernel configurations that appear to be usable -DEFCONFIG_i386 =3D defconfig -DEFCONFIG_x86_64 =3D defconfig -DEFCONFIG_x86 =3D defconfig -DEFCONFIG_arm64 =3D defconfig -DEFCONFIG_arm =3D multi_v7_defconfig -DEFCONFIG_mips =3D malta_defconfig -DEFCONFIG_riscv =3D defconfig -DEFCONFIG_s390 =3D defconfig +DEFCONFIG_i386 =3D defconfig +DEFCONFIG_x86_64 =3D defconfig +DEFCONFIG_x86 =3D defconfig +DEFCONFIG_arm64 =3D defconfig +DEFCONFIG_arm =3D multi_v7_defconfig +DEFCONFIG_mips =3D malta_defconfig +DEFCONFIG_riscv =3D defconfig +DEFCONFIG_s390 =3D defconfig DEFCONFIG_loongarch =3D defconfig -DEFCONFIG =3D $(DEFCONFIG_$(ARCH)) +DEFCONFIG =3D $(DEFCONFIG_$(ARCH)) =20 # optional tests to run (default =3D all) TEST =3D =20 # QEMU_ARCH: arch names used by qemu -QEMU_ARCH_i386 =3D i386 -QEMU_ARCH_x86_64 =3D x86_64 -QEMU_ARCH_x86 =3D x86_64 -QEMU_ARCH_arm64 =3D aarch64 -QEMU_ARCH_arm =3D arm -QEMU_ARCH_mips =3D mipsel # works with malta_defconfig -QEMU_ARCH_riscv =3D riscv64 -QEMU_ARCH_s390 =3D s390x +QEMU_ARCH_i386 =3D i386 +QEMU_ARCH_x86_64 =3D x86_64 +QEMU_ARCH_x86 =3D x86_64 +QEMU_ARCH_arm64 =3D aarch64 +QEMU_ARCH_arm =3D arm +QEMU_ARCH_mips =3D mipsel # works with malta_defconfig +QEMU_ARCH_riscv =3D riscv64 +QEMU_ARCH_s390 =3D s390x QEMU_ARCH_loongarch =3D loongarch64 -QEMU_ARCH =3D $(QEMU_ARCH_$(ARCH)) +QEMU_ARCH =3D $(QEMU_ARCH_$(ARCH)) =20 # QEMU_ARGS : some arch-specific args to pass to qemu -QEMU_ARGS_i386 =3D -M pc -append "console=3DttyS0,9600 i8042.noaux pani= c=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" -QEMU_ARGS_x86_64 =3D -M pc -append "console=3DttyS0,9600 i8042.noaux pani= c=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" -QEMU_ARGS_x86 =3D -M pc -append "console=3DttyS0,9600 i8042.noaux pani= c=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" -QEMU_ARGS_arm64 =3D -M virt -cpu cortex-a53 -append "panic=3D-1 $(TEST:%= =3DNOLIBC_TEST=3D%)" -QEMU_ARGS_arm =3D -M virt -append "panic=3D-1 $(TEST:%=3DNOLIBC_TEST= =3D%)" -QEMU_ARGS_mips =3D -M malta -append "panic=3D-1 $(TEST:%=3DNOLIBC_TEST= =3D%)" -QEMU_ARGS_riscv =3D -M virt -append "console=3DttyS0 panic=3D-1 $(TEST:%= =3DNOLIBC_TEST=3D%)" -QEMU_ARGS_s390 =3D -M s390-ccw-virtio -m 1G -append "console=3DttyS0 pa= nic=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" +QEMU_ARGS_i386 =3D -M pc -append "console=3DttyS0,9600 i8042.noaux p= anic=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" +QEMU_ARGS_x86_64 =3D -M pc -append "console=3DttyS0,9600 i8042.noaux p= anic=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" +QEMU_ARGS_x86 =3D -M pc -append "console=3DttyS0,9600 i8042.noaux p= anic=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" +QEMU_ARGS_arm64 =3D -M virt -cpu cortex-a53 -append "panic=3D-1 $(TES= T:%=3DNOLIBC_TEST=3D%)" +QEMU_ARGS_arm =3D -M virt -append "panic=3D-1 $(TEST:%=3DNOLIBC_TES= T=3D%)" +QEMU_ARGS_mips =3D -M malta -append "panic=3D-1 $(TEST:%=3DNOLIBC_TE= ST=3D%)" +QEMU_ARGS_riscv =3D -M virt -append "console=3DttyS0 panic=3D-1 $(TES= T:%=3DNOLIBC_TEST=3D%)" +QEMU_ARGS_s390 =3D -M s390-ccw-virtio -m 1G -append "console=3DttyS0= panic=3D-1 $(TEST:%=3DNOLIBC_TEST=3D%)" QEMU_ARGS_loongarch =3D -M virt -append "console=3DttyS0,115200 panic=3D-= 1 $(TEST:%=3DNOLIBC_TEST=3D%)" -QEMU_ARGS =3D $(QEMU_ARGS_$(ARCH)) +QEMU_ARGS =3D $(QEMU_ARGS_$(ARCH)) =20 # OUTPUT is only set when run from the main makefile, otherwise # it defaults to this nolibc directory. --=20 2.39.0