From nobody Sun Jun 14 06:08:25 2026 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 855392DCC1F for ; Sat, 2 May 2026 07:25:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777706743; cv=none; b=WGdy7RV/WktA1zhXFatZyeYJHsdVoLl3JBGCfcANY9Fe4nbpz0mYry9gouLF0sFrOKybHP6ZANAdKyL2rLYjY7dyt40aUI0cYA/t3HtM5m/rmaTKQLfw5ZQrqsSuLs68jaaBbodAB1Gqdad1AqyiI8EaSDNV92FozC08/JFFUKQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777706743; c=relaxed/simple; bh=1HE9F2nx8wJfKIjijN8UbQ+EyFpOVqw4VGjVc+GWoIM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IB1GoYQoIcfKEbsWfBQLGJRzyDBS+SNFZkCpLFsBqfgFl8J+2j+Z4H3ui7vuFc5r2YgDupvimATxsiVg3nACiWVJrGn2P41DvYBzWvdUdE5KU3Okq7mfeEtI+AoFYApLHJgUkcEOU88ds30WvWsMvf+ELSJYaLezgKIZY2cSZaQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp; spf=pass smtp.mailfrom=0x0f.com; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b=GeRC8I6/; arc=none smtp.client-ip=209.85.216.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=0x0f.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b="GeRC8I6/" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-362e50b4641so1571877a91.0 for ; Sat, 02 May 2026 00:25:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thingy.jp; s=google; t=1777706741; x=1778311541; darn=vger.kernel.org; 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=d8h+X0lRGRa9HrDMEKGXBhHNR0pCzCITyj1E+a1FRJI=; b=GeRC8I6/UBFpZiRUrFkUH+0d7aM7ucAx2g0Ii/cu9S+NmA5FmIobCMvBKFSO+CwfNY ThPycP5FVuUDRgKWSkAXZcxEwQ/U6N5hRvzcIdRSvB6+juf1k8W5zVoRcNSSlThyq2Wz fnivkH0UqX1WsDJllsT0QpfpckQaF0lqPK4kk= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777706741; x=1778311541; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=d8h+X0lRGRa9HrDMEKGXBhHNR0pCzCITyj1E+a1FRJI=; b=T/hdvOtjDZywW+2rWf6SIWowqy/tcjrx/XYH+NBnna1osVwBE4uvP1JNWK2kayrff2 3Pk3v3MMtiG7vZBi2H0DjBzc8lpRAXetOerd/yNzqte2xJVrR1mjT3KY1BFdktqO3w8a KH+k6MPnEsLxYwzONa1WzWcWpLDlsSvj4F+xnVO1Kf2c3df4LMsdMaMqsMZl+KUEFOw4 QfNObQ1JW1OVEDwLy32ppU5y6m7Baa/oJ1EEXtWm4dAqzCX+v5jm4h4c3UwkUr9FO6Vc sRH2ppbz/bOvxlwWPTbyJwHym/wbWyW1MBHMCMfZfbzZar0c3/qKbS8dU48gSRGrZ49D AKcw== X-Gm-Message-State: AOJu0YxjNJx0ZjDIjiOUYuLgV1YZ73e0q5eFDFpREepnBFNPXYkmgy/H oZQEfpBpWhvQx534vw8wdoKssp3tK8OkBblDLJTP6O6V+aVwYMZ19rZHgd18ZhxcoJc= X-Gm-Gg: AeBDieu9zXhX66hKCgB1rKQYNiEY0zA8LTgzEqDMsIwbH7NJy+0JrZJgXrn57nkzhg9 9kl4Cxs3h9t4y2fQyBw/VUqRNgLcw/Qo00gn8UkK3ubitGC2GqgEjUHskjqW1CEwPDCB2X2sW8F m2yHn+1ZtciisJ0gCt4cVlea9GmTPMiHp1Y3U1sI+UrqrYBfd1F5qQgpYhn6cg53XAPRHoSanNd KgVWX3aUnIy9zqUCPkii0H3Y0yDMXt8asV1PZXJl5Eef7UokR080JHWWJB8BqW0WqY5gGl5yR68 QZcBe8sy0G3X5nZgxhD9Ob0aVek2G+myiSze3Dnj50djn9QBGImg6qyhajdStEaHtO0TRfEoDkc 1nw7x1PbBzvGNN3ettGfH1xFPHATXX3gR9p7eBOsWRqJswYFUjY7VXOAT13d0BnPFLFoGi+EQK+ QF/i6NkSHvMC0RcATlczkqZsJAEHqBd2fEi+yMA7kyLTUHZHgzEwv5KsLEQnGWQ9GH4zpG2fLxn s+UPeZo/v+T/U/NMN76hxwlrHs= X-Received: by 2002:a17:90b:1b0e:b0:35f:bd51:cf60 with SMTP id 98e67ed59e1d1-3650cd7115fmr2140693a91.1.1777706740903; Sat, 02 May 2026 00:25:40 -0700 (PDT) Received: from kinako.work.home.arpa (p1387170-ipxg00a01sizuokaden.shizuoka.ocn.ne.jp. [153.221.239.170]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-364ebf12bcesm4287557a91.7.2026.05.02.00.25.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 00:25:40 -0700 (PDT) From: Daniel Palmer To: w@1wt.eu, linux@weissschuh.net Cc: linux-kernel@vger.kernel.org, Daniel Palmer Subject: [PATCH 1/3] tools/nolibc: unistd: Add getcwd() Date: Sat, 2 May 2026 16:25:25 +0900 Message-ID: <20260502072527.1805108-2-daniel@thingy.jp> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260502072527.1805108-1-daniel@thingy.jp> References: <20260502072527.1805108-1-daniel@thingy.jp> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add getcwd() for getting the current working directory. Signed-off-by: Daniel Palmer --- tools/include/nolibc/unistd.h | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/tools/include/nolibc/unistd.h b/tools/include/nolibc/unistd.h index 5882a6862066..c7f89c56bc9b 100644 --- a/tools/include/nolibc/unistd.h +++ b/tools/include/nolibc/unistd.h @@ -48,6 +48,28 @@ int access(const char *path, int amode) return faccessat(AT_FDCWD, path, amode, 0); } =20 +/* + * char *getcwd(char *buf, size_t size); + */ + +static __attribute__((unused)) +int _sys_getcwd(char *buf, size_t size) +{ + return __nolibc_syscall2(__NR_getcwd, buf, size); +} + +static __attribute__((unused)) +char *getcwd(char *buf, size_t size) +{ + /* If successful we get the number of bytes written into + * the buffer, so check the result is positive. + */ + if (__sysret(_sys_getcwd(buf, size)) > 0) + return buf; + + /* On error return NULL, __sysret() above will have set errno */ + return NULL; +} =20 static __attribute__((unused)) int msleep(unsigned int msecs) --=20 2.53.0 From nobody Sun Jun 14 06:08:25 2026 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D0F172FD1A5 for ; Sat, 2 May 2026 07:25:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777706744; cv=none; b=CqOw/l1IrN8zPo5DRg3Pc/ETSX+hlBWZYlEJl48jsSa1/5i+1p4WRP+RlPDuyL6M8dnioq4mano32wv5U2IvPdhJcNgYalxs885hN8QJYXsG3eZHkRNbtqev++l4/cs69iWuAUGBZ0QTve00rIfXx/sl+Oh/KhdXWcieEERz9qg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777706744; c=relaxed/simple; bh=goxwQvYKheDa+4IdPejGu8ckzu98hdrBAscoKpekVB0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J5jFNg7084qDkZRbdKd2Mncv0dzgnQq8VSINTokKEjxwrTBeWOmfkW77nCftey3uZRChL7dyYRsfV0awYsF3g6ta08UlglqwrGFm33WnV1L41JMDj875A6Ot4ckjGTEbMoWMP/Hd0C672TWD2ebItIUBXQswpqowFWoa2KnQQ2g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp; spf=pass smtp.mailfrom=0x0f.com; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b=ngb/HiL7; arc=none smtp.client-ip=209.85.216.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=0x0f.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b="ngb/HiL7" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-364f7c42c62so670495a91.0 for ; Sat, 02 May 2026 00:25:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thingy.jp; s=google; t=1777706742; x=1778311542; darn=vger.kernel.org; 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=EHg2lh0SccRAp3ZgX7RQA5jNSu0aHR8ZrJaT8NgNqlo=; b=ngb/HiL76BeRISY6ghQ1ALJMCJWwGbR+Z1CIG/E9P4M3FM4FrKcyXwwMc7c0i+mNOL iJY1RZ6Okwbn2j5Ft7bpLegm1lgMX4+kyzdpDqMrc0dER1Tl2PWlaHMRzz8jlPiuLUk8 lsce3+UU2GQDyvRXvuuLOzvJjfKZj6tdE5DZw= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777706742; x=1778311542; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=EHg2lh0SccRAp3ZgX7RQA5jNSu0aHR8ZrJaT8NgNqlo=; b=j7d1ZMVAYw/HHNeKAnYQ0Sp7L60B8TJ9CcDOgt+FjwRiU8f778Fmxgc2UL+iyL4lb0 +ungfy7P+dX7ViTsCTLtF9xTmeaIZe728HZ32MVtwxu6+CwE9Y6J8VJHghA1W3IY3ZTA UptfDvG+tuqpyrNIwOyneuh3VdL5Q1zFY/jgK1m0nA5W4L4cesLVvx+3dhODAle+ANfa I6o9O+hPJO8gwGxEbw1LmXoPzSHQgpJaHVOxAj7eheYlPoMcLlCoxXj28VFcybATQuMc V+67iHfyWO4ZCQVgetXqpxKGeu5lm1d1LqHtmYI/MGEtt8jr+46AYRLSr4IZOmiZdow+ 7NSw== X-Gm-Message-State: AOJu0Yyq9ftasB3fneGSQ23Pw4vfDeUi2RIK8kq8P9zzycsZamhG6qTv I3YHYqy5ahcY6fY7lB3YWN7cCqSmuJxsvwcB0uyvdTV/rCNI5oaQz8GsDBGAKspyjq8= X-Gm-Gg: AeBDietlrSUxIWLx6byCtvwNXRPxGmLe9buyrxaZT+OGD9RDoOVrXbbIC9hwfuwQN1Q 17w9ie6spnfYUNx4/AFMbkpKbMx0xkXPpXCu9ElWvA8PPUQtU1NoGi1Wj2xg/tWS9lzJjfixBsJ fWHR5p5XaSRDMEgE4NTNwssTKGLITPoHWWBEO7OdnC1EH2Xx60RFyQndAbSkoRN/VeIf3x2ifTK UwVKk+0ixwDj0pGICvM9ksfYvSdZLcuwfKB2+uQ4h/F1jCCKCQdn7+DpSv25JIRX40nTsoOd8SV M/jT/80znNsqCa2T20ZiUwz58hMLd5nIBvmrQTsISnj6P60dqeZEgjuQ4bOQ1ZMA/i16GNEfNsR Fzha4cqVq6Q9zme6709wkKvH0pwe3xh48nPZXEDK66TSyxiKTzY6FZkfQJeF9thLYl/MXrOzZLR zHc0SkmiFjSu4UrelMu2G0+pUrHvC/Gk6md7ubIXBCwL2jtWd22S9YWvY1HeIPVUWolmzSy7XXt 6VpX/MmT3wNq1SXMwtaOuY2CWU= X-Received: by 2002:a17:90b:5890:b0:35b:e529:2d60 with SMTP id 98e67ed59e1d1-3650cd95fc6mr2363542a91.8.1777706742333; Sat, 02 May 2026 00:25:42 -0700 (PDT) Received: from kinako.work.home.arpa (p1387170-ipxg00a01sizuokaden.shizuoka.ocn.ne.jp. [153.221.239.170]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-364ebf12bcesm4287557a91.7.2026.05.02.00.25.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 00:25:41 -0700 (PDT) From: Daniel Palmer To: w@1wt.eu, linux@weissschuh.net Cc: linux-kernel@vger.kernel.org, Daniel Palmer Subject: [PATCH 2/3] tools/nolibc: unistd: Add readlink() Date: Sat, 2 May 2026 16:25:26 +0900 Message-ID: <20260502072527.1805108-3-daniel@thingy.jp> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260502072527.1805108-1-daniel@thingy.jp> References: <20260502072527.1805108-1-daniel@thingy.jp> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add readlink(). This is needed to test getcwd(); Signed-off-by: Daniel Palmer --- tools/include/nolibc/unistd.h | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tools/include/nolibc/unistd.h b/tools/include/nolibc/unistd.h index c7f89c56bc9b..309a4e0e65d2 100644 --- a/tools/include/nolibc/unistd.h +++ b/tools/include/nolibc/unistd.h @@ -84,6 +84,26 @@ int msleep(unsigned int msecs) return 0; } =20 +/* + * ssize_t readlink(const char *path, char *buf, size_t bufsiz); + */ + +static __attribute__((unused)) +ssize_t _sys_readlink(const char *path, char *buf, size_t bufsiz) +{ +#ifdef __NR_readlink + return __nolibc_syscall3(__NR_readlink, path, buf, bufsiz); +#else + return __nolibc_syscall4(__NR_readlinkat, AT_FDCWD, path, buf, bufsiz); +#endif +} + +static __attribute__((unused)) +ssize_t readlink(const char *path, char *buf, size_t bufsiz) +{ + return __sysret(_sys_readlink(path, buf, bufsiz)); +} + static __attribute__((unused)) unsigned int sleep(unsigned int seconds) { --=20 2.53.0 From nobody Sun Jun 14 06:08:25 2026 Received: from mail-pj1-f51.google.com (mail-pj1-f51.google.com [209.85.216.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8AC5A3033D8 for ; Sat, 2 May 2026 07:25:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777706745; cv=none; b=PZuMYkJMk4uqBLFM04TT0RxyZHVMk95iGUj0P+OMcdyczG3fia91FvgIpJmXPXQkDu6Xx1Hybf1ssgTpmn2Ou/QRq8F0mun+CScOHew2wwJDLenNIRBsVwIe901cdKdNIRC60xvq7CIVBnxutXqOMpkpVvOJuL7YMdysGNb/uR4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777706745; c=relaxed/simple; bh=uucG/1jEuHJlCiDVmdAyl7VFpcEE1YiKQ96C2nIrYoE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IkgyJiXE8o3jbT8/wuu17Bo9+4pazvCdox6PI60EZtcarc5oj3MoZzmINvH9EjTjGeUKuSNSvUu85curOSL3l1SDEOzVDwzfB5kNsguKUMfy9ytTZ8HEfTT1zXmnowzSW6D2bq2dotYIGsD/NiMjbxMYBVQPq718lh5vcfRo4jE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp; spf=pass smtp.mailfrom=0x0f.com; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b=E1lSYca4; arc=none smtp.client-ip=209.85.216.51 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=thingy.jp Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=0x0f.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=thingy.jp header.i=@thingy.jp header.b="E1lSYca4" Received: by mail-pj1-f51.google.com with SMTP id 98e67ed59e1d1-35da2d35eccso1899539a91.0 for ; Sat, 02 May 2026 00:25:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=thingy.jp; s=google; t=1777706744; x=1778311544; darn=vger.kernel.org; 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=BFPTfmCNgN3ylM/PE7LJYNHY+2mwzF4UlfLC70z/f/s=; b=E1lSYca4NEK09o9TuTIaWL12ZFqHXTX4HvnUIqzN1Gp5NPJ0n8gmyJ/rpSZSyHdCdz ryeOvojI43IcR76O45MDBUeEr8HZw2bA/yxrhUy1g5iWSELPInI7bGPJpexhmu3BORLE Iqw0gYkGfBLz67T1pZRiHj027AUcxipYUjTPU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777706744; x=1778311544; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=BFPTfmCNgN3ylM/PE7LJYNHY+2mwzF4UlfLC70z/f/s=; b=Vq2PwuPwrdUoOiPvpVgV979Jo0Tzqhg6U4NsTf7ORHATRmwfSm6MmeUsJ/YQukhYa5 4mdGyqTmQJzCl+PkiyI/IiCqNKiwNjPGQ5pVbITLv8A8h051MGX6z4Oc/wppRMBqI9Pe HSBgI59cnbyxfZ4hyzbHQd2mabvpY5sCHPMwhmWVKKFvbGfRbsClfbf9hYTsz/atDf9h jB5K43ATrpLW5AVjgp9NhWpErWVEdy48Cf63f/ZwvoX52E7GUYSvDynFz3f25t+JDtoK Ee32WKn+ZCFrmb82QhOxD4GBZg0sbrH/g+vmCbbBN+Mf8RzHQYq59ASYQZ/LG/0WhFEs S51g== X-Gm-Message-State: AOJu0YwPb6RiPDhye2s5UDOQ7JRrd5cWlNyMkoNkD0MvdjeMkOtd4eqe xurEJm250mUs2ADYeo5AN0aKTr6/7sp0EqzGJOxM7xAp4VYfF4XB9U26njvRTcrtb5YmBYHeiMx 0aIhc X-Gm-Gg: AeBDieseywQ3sFZQbnMfOAQCHrEQOjlxyoj/P7mBEKl8Gpd/vCn4SHuubTPzajrB6r7 WTICGuxKyKUNQFZH09qeBQavHGAF4nZKY/xKBGS/2qjVUneFhPmoRqhpNwHqifCR1PobIL6ieMR VSKKUvhjMbE4Gm81huZkTQARw0Kx7EsDE21HbyB8JjCaQ2ptq8iJNV3ivKyYX0nmwjXdwsPK38p sAs+e7bxlw+8pk48QkctB2OzHaKiAzFY2rJ3AHmvygX2muo5nbLUPFxFo2e7EKrRvQlP1RP+WxK 9z/EJ1NEDg4CRlu3Optt63QcJSTJDnogemepMvjBTYy/IRXgxpt2oC138V2e+RgwhQeRvHmkifz NnBM/a/8kcAtn5CcxnJs25bpfQiKqdPeTAtOw3EVr9CliwmbVsuYGSvhwmLRwIiVnSRYwIuueKg F5FobMDQ+wwd4lWg2tvdxC0oH9T625JILmQg1UGOd3JMpbiXTNJNKr9Lm3fxLNzE1gh0Qu9rw41 3fLLPpGP4bA9a2buN9NeKC9qDQ= X-Received: by 2002:a17:90b:3849:b0:359:87a8:e65c with SMTP id 98e67ed59e1d1-3650ce38382mr2341820a91.17.1777706743904; Sat, 02 May 2026 00:25:43 -0700 (PDT) Received: from kinako.work.home.arpa (p1387170-ipxg00a01sizuokaden.shizuoka.ocn.ne.jp. [153.221.239.170]) by smtp.googlemail.com with ESMTPSA id 98e67ed59e1d1-364ebf12bcesm4287557a91.7.2026.05.02.00.25.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 02 May 2026 00:25:43 -0700 (PDT) From: Daniel Palmer To: w@1wt.eu, linux@weissschuh.net Cc: linux-kernel@vger.kernel.org, Daniel Palmer Subject: [PATCH 3/3] selftests/nolibc: Add test for getcwd() and readlink() Date: Sat, 2 May 2026 16:25:27 +0900 Message-ID: <20260502072527.1805108-4-daniel@thingy.jp> X-Mailer: git-send-email 2.53.0 In-Reply-To: <20260502072527.1805108-1-daniel@thingy.jp> References: <20260502072527.1805108-1-daniel@thingy.jp> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Add a test for getcwd() that uses readlink() so tests that at the same time. This is very basic, just getting what should be the same string via getcwd() and readlink() and then checking they are the same. Signed-off-by: Daniel Palmer --- tools/testing/selftests/nolibc/nolibc-test.c | 26 ++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/tools/testing/selftests/nolibc/nolibc-test.c b/tools/testing/s= elftests/nolibc/nolibc-test.c index 08610cacf030..54513fb9a16a 100644 --- a/tools/testing/selftests/nolibc/nolibc-test.c +++ b/tools/testing/selftests/nolibc/nolibc-test.c @@ -849,6 +849,31 @@ static int test_dirent(void) return 0; } =20 +static int test_getcwd(void) +{ + char cwd_syscall[1024]; + char cwd_proc[1024]; + ssize_t len; + + /* Read where the link /proc/self/cwd points */ + len =3D readlink("/proc/self/cwd", cwd_proc, sizeof(cwd_proc) - 1); + if (len <=3D 0) + return -1; + + /* Terminate the string from readlink() */ + cwd_proc[len] =3D '\0'; + + /* Get the cwd via syscall */ + if (getcwd(cwd_syscall, sizeof(cwd_syscall)) =3D=3D NULL) + return -1; + + /* Fail if they aren't the same */ + if (strcmp(cwd_proc, cwd_syscall) !=3D 0) + return -1; + + return 0; +} + int test_getrandom(void) { uint64_t rng =3D 0; @@ -1477,6 +1502,7 @@ int run_syscall(int min, int max) CASE_TEST(clock_getres); EXPECT_SYSZR(1, clock_getres(CLOCK_MONOTON= IC, &ts)); break; CASE_TEST(clock_gettime); EXPECT_SYSZR(1, clock_gettime(CLOCK_MONOTO= NIC, &ts)); break; CASE_TEST(clock_settime); EXPECT_SYSER(1, clock_settime(CLOCK_MONOTO= NIC, &ts), -1, EINVAL); break; + CASE_TEST(getcwd); EXPECT_SYSZR(1, test_getcwd()); break; CASE_TEST(getpid); EXPECT_SYSNE(1, getpid(), -1); break; CASE_TEST(getppid); EXPECT_SYSNE(1, getppid(), -1); break; CASE_TEST(gettid); EXPECT_SYSNE(has_gettid, gettid(), -1); br= eak; --=20 2.53.0