| Message ID | 20251114220044.1761728-1-simon.barth@gmx.de |
|---|---|
| State | New |
| Headers |
Return-Path: <newlib-bounces~patchwork=sourceware.org@sourceware.org> 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 28BE93858D33 for <patchwork@sourceware.org>; Fri, 14 Nov 2025 22:01:42 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 28BE93858D33 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=sjfe8kK6 X-Original-To: newlib@sourceware.org Delivered-To: newlib@sourceware.org Received: from mout.gmx.net (mout.gmx.net [212.227.15.18]) by sourceware.org (Postfix) with ESMTPS id 1CF443858D1E for <newlib@sourceware.org>; Fri, 14 Nov 2025 22:01:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1CF443858D1E 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 1CF443858D1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=212.227.15.18 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1763157660; cv=none; b=lnEPjeet8+5t7en5r0Eij8C7or/8RADsJqjMavHOTXPCCiJjWyLgXw/TTCwkrz++WM3IQHRxZ6IJ7LwIXEe8pZeEK02Iwv83Swk1976nF3TYsdEmwHWXmpyfgSX3Q8WJSebyckpUKsm9edhXinRl7/uZjKcG4e3eohRtDiHStLQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1763157660; c=relaxed/simple; bh=lvmurpMAnlIV+h2sgAf9Tx5VANl9WjyuPoHucJBK3IY=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=Pa1ykkHtXcXBFPkd92d2jvuOD5Gp0ZYP9/eIW5ZKvSG7LRJq/f+gGvMKgLqtzYQq9SazcpRSRYFF7fvDPJz6cZNVrhpAFBVGC/4Embcd9e3NrTSq24Tgby1CzVes3CjaTAl4ZU8PktBG4BpUq3b+HmEfIBCYE1sj3A0YSLwphS0= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1CF443858D1E DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmx.de; s=s31663417; t=1763157658; x=1763762458; i=simon.barth@gmx.de; bh=BcH3dfV5p9IrH99Vk/mzqPfZxHrnePMCHHai1XUG7pM=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:Message-ID: MIME-Version:Content-Transfer-Encoding:cc: content-transfer-encoding:content-type:date:from:message-id: mime-version:reply-to:subject:to; b=sjfe8kK6ZlxuD/8zEtyDPyV/PkThXXyYbZc1G+YMDZ5yLuG1D48DECDHBZq1S171 zH+MPQrlxvj8lV0mRsOkSvrfzVb9P8x3U1J+kacDCXFIE7BcysOk/MGrUN0kQLU9G 8dzYAqzVZPfgKHduIL/GQuKeexlhQxjYcho62fU2t8IIq/YR39JNSjZnoipykF/Ct xzVJbBCSZi9JhtLHRyatGI4ghOIncAC+tzMri8WQXVKrsbJeqxZEFPf9JIiqGb7WP jIe0uopOn68Vh8JdGWakG2Qb/5Ayn2e1EhPn2PplkQ9kqhSm2q4kFztAsEIteg+J6 QVUgEfBb4zOqQW7tXg== X-UI-Sender-Class: 724b4f7f-cbec-4199-ad4e-598c01a50d3a Received: from localhost ([212.114.181.217]) by mail.gmx.net (mrgmx004 [212.227.17.190]) with ESMTPSA (Nemesis) id 1MKbgE-1vcnig1Es8-00R3Yi; Fri, 14 Nov 2025 23:00:58 +0100 From: Simon Barth <simon.barth@gmx.de> To: newlib@sourceware.org Cc: Simon Barth <simon.barth@gmx.de> Subject: [PATCH 1/2] libc: Make string.h POSIX.1-2024 compliant Date: Fri, 14 Nov 2025 23:00:43 +0100 Message-ID: <20251114220044.1761728-1-simon.barth@gmx.de> X-Mailer: git-send-email 2.51.2 MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Sender: <Simon.Barth@gmx.de> X-Provags-ID: V03:K1:74RZ5Lxf+2NtZ3iuYpRDH4+NQT6XtPEEI5hYW/Ig2fqqCPTuvKR k9eggCUViT/u42rbWUqMVJchPHBtXC/p3pxNW7xZKjgUHM1ncgxKHmkr1I2hWutdSSnEiKV 7zkzlbrOl4fDkY/HiN4tMN2Q8I+TRIslkuVTMUR1ZEzuqcaosa34EhTMP3cfFhlnIjMLivZ gk4ndLNhdx+t9ktkxBEAg== UI-OutboundReport: notjunk:1;M01:P0:jBdwh3j0IVw=;j1KU58c4V5Odm2iy/rVxZaVL9/G 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 X-Spam-Status: No, score=-13.9 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 <newlib.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/newlib>, <mailto:newlib-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/newlib/> List-Post: <mailto:newlib@sourceware.org> List-Help: <mailto:newlib-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/newlib>, <mailto:newlib-request@sourceware.org?subject=subscribe> Errors-To: newlib-bounces~patchwork=sourceware.org@sourceware.org |
| Series |
[1/2] libc: Make string.h POSIX.1-2024 compliant
|
|
Commit Message
Simon Barth
Nov. 14, 2025, 10 p.m. UTC
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(-)
Comments
This looks ok to me. Checked against POSIX Issue 8. --joel On Fri, Nov 14, 2025 at 4:02 PM Simon Barth <simon.barth@gmx.de> wrote: > 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 > -- > 2.51.2 > >
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