From patchwork Fri Nov 14 23:26:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Barth X-Patchwork-Id: 124364 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 19550385840B for ; Fri, 14 Nov 2025 23:27:17 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 19550385840B Authentication-Results: sourceware.org; dkim=pass (2048-bit key, secure) header.d=gmx.de header.i=simon.barth@gmx.de header.a=rsa-sha256 header.s=s31663417 header.b=defgoddf X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from mout.gmx.net (mout.gmx.net [212.227.17.21]) by sourceware.org (Postfix) with ESMTPS id 99FB03858D1E for ; Fri, 14 Nov 2025 23:26:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 99FB03858D1E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=gmx.de Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmx.de ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 99FB03858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.17.21 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1763162790; cv=none; b=DxFw6FRn5E5P1lAb2NkpxBBZQXZEqEeyJI81Zg5nQjKImfauoEEjm7ZWQ1NEJ3H9xXXGgBEtn4eqYZ6fEKUoQyM1IMBiHNMOBb0KOo3hmahkXC6NomTlTaDs6Dze/bPsjz5g2vDzf0mA9qGHg5UKmZDI4ZA7GuWwbU2ticx6CeM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1763162790; c=relaxed/simple; bh=lvmurpMAnlIV+h2sgAf9Tx5VANl9WjyuPoHucJBK3IY=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=cIqH8FOYRRIUUniXaCPSzLCbRgkluf3bqZrwjWuyePERwxyyvD3B1cziJCgpVzqVltL7MsiWMtZzMR2pz87ORg5kW+jdZCkg2RwIrenFLPpQ5w95JElFw4RYQSRzZKCgGGIYRhQWWbdHL5pX1PLX3A+2pOGiFBTC9qygJkPnHfI= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 99FB03858D1E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1763162788; x=1763767588; i=simon.barth@gmx.de; bh=BcH3dfV5p9IrH99Vk/mzqPfZxHrnePMCHHai1XUG7pM=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID:In-Reply-To: References:MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=defgoddf6GIhtHSPSr8lxzdpqf4wK963ezL6sydP5JXCsHBxCplFC37MxD3PWEc9 8IB28l+3S5Cy2FIGMbvp8IWdRCsvsnJbOAVR6y2F9DgF4ddQhg9DW8Db6U4EHw3cd HKi/ocCtPY61600pZyB2ozGeHYmlFcZX1Y1JF/8nfhASHPLncMkuBz4LRN4XK2U+3 bOEUJ0M5coy/FaT1WRTQVxijySMCBmCjjv5RERy1Ae4LPb9oJclUtUz3/mSXnsSDl wQ/mgikuZK0sQxjvu/65dmEHgm8ntvBQbxN6w1s704AdjsvF+ahf/AnYrgDCHTYLi Ca1zCn+vcS27HJLZrA== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost ([212.114.181.217]) by mail.gmx.net (mrgmx104 [212.227.17.168]) with ESMTPSA (Nemesis) id 1N2mBQ-1wKdeZ3i1M-014dEd; Sat, 15 Nov 2025 00:26:27 +0100 From: Simon Barth To: newlib@sourceware.org Cc: Simon Barth Subject: [PATCH v2 1/2] libc: Make string.h POSIX.1-2024 compliant Date: Sat, 15 Nov 2025 00:26:24 +0100 Message-ID: <20251114232625.1788701-2-simon.barth@gmx.de> X-Mailer: git-send-email 2.51.2 In-Reply-To: <20251114232625.1788701-1-simon.barth@gmx.de> References: <20251114232625.1788701-1-simon.barth@gmx.de> MIME-Version: 1.0 Sender: X-Provags-ID: V03:K1:q2WxzkGbrAF+2tF2AH5P36qYz2XUViloStOFoFXMYQm1f5M2UBI QHE/ekrjehvON95zvGof8ZzSq3n6nHnGghsylbSTuzPiUHbQeRgHjZGxRwpyNYRTXA+Y7NR n1ct9U/5vyCiG8YeaYw7ZjTB0thukYmgXsHhIHfQJNUJEr8WdQMuOI+abFl+jaTGBAiYAbA ev+v2giZ+nyl9vMvOCdng== UI-OutboundReport: notjunk:1;M01:P0:l2PaRhYdOS8=;Js8Jiu6MT6qj4OAiUOuet/5JOA0 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 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, RCVD_IN_VALIDITY_RPBL_BLOCKED, RCVD_IN_VALIDITY_SAFE_BLOCKED, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: newlib-bounces~patchwork=sourceware.org@sourceware.org POSIX.1-2024 added strlcpy, strlcat, and memmem to strings.h. Previously these functions were only available as parts of BSD or GNU extensions. Fix the header so that the symbol are visible for either the right extensions, or for POSIX.1-2024. --- newlib/libc/include/string.h | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/newlib/libc/include/string.h b/newlib/libc/include/string.h index 32199c027..3e66ec3dd 100644 --- a/newlib/libc/include/string.h +++ b/newlib/libc/include/string.h @@ -68,10 +68,12 @@ void * memccpy (void *__restrict, const void *__restrict, int, size_t); #endif #if __GNU_VISIBLE void * mempcpy (void *, const void *, size_t); -void * memmem (const void *, size_t, const void *, size_t); void * memrchr (const void *, int, size_t); void * rawmemchr (const void *, int); #endif +#if __GNU_VISIBLE || __POSIX_VISIBLE >= 202405 +void * memmem (const void *, size_t, const void *, size_t); +#endif #if __POSIX_VISIBLE >= 200809 char *stpcpy (char *__restrict, const char *__restrict); char *stpncpy (char *__restrict, const char *__restrict, size_t); @@ -111,7 +113,7 @@ int __xpg_strerror_r (int, char *, size_t); /* Reentrant version of strerror. */ char * _strerror_r (struct _reent *, int, int, int *); -#if __BSD_VISIBLE +#if __BSD_VISIBLE || __POSIX_VISIBLE >= 202405L size_t strlcat (char *, const char *, size_t); size_t strlcpy (char *, const char *, size_t); #endif