| Message ID | cover.1779138878.git.alx@kernel.org (mailing list archive) |
|---|---|
| Headers |
Return-Path: <libc-alpha-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 3D63B4BB3B87 for <patchwork@sourceware.org>; Mon, 18 May 2026 21:21:06 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 3D63B4BB3B87 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=S9i+fS6R X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from tor.source.kernel.org (tor.source.kernel.org [IPv6:2600:3c04:e001:324:0:1991:8:25]) by sourceware.org (Postfix) with ESMTPS id 90F8A4BB24CE for <libc-alpha@sourceware.org>; Mon, 18 May 2026 21:20:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 90F8A4BB24CE Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=kernel.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kernel.org ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 90F8A4BB24CE Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2600:3c04:e001:324:0:1991:8:25 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1779139235; cv=none; b=Wn+JIW8T9oYt8/bTkQbOvFziF88DebK0G2EKNcFl89uJHFXL4jZgciJ2nHbiW33HrL5BkGfaxUNxQim2eR97408A4KxxTn8dB3fw5FLzj5Xnx0fjuT3ZKSyLoNJwYwsNPcGS0IsuKHVrE/3ESDCyLHwZo0vkNZWUBAiYElIb6M0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1779139235; c=relaxed/simple; bh=fT1GhDv56xBjp91YuqZcHPeXLRVemp07o0ya8uaD/Tk=; h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version; b=oDvKxiAQv5ItI4YyKyGTvm08qBsCixfQwEa6qWJ4SZzMbTsAOp2vW8BgMXpYaikqnBxaHVk+HEV0D2DM4H03dKU3e3hQrAN9nl51Pwf1tO9byT46Aif6dTxpPjXfNQMCb7O2GUX5CljtwiAInR5eJ8EB3BnX7GyJz/zHH+2jIZ0= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256 header.s=k20201202 header.b=S9i+fS6R DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 90F8A4BB24CE Received: from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58]) by tor.source.kernel.org (Postfix) with ESMTP id D6A21600CB; Mon, 18 May 2026 21:20:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 74789C2BCB7; Mon, 18 May 2026 21:20:32 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1779139234; bh=fT1GhDv56xBjp91YuqZcHPeXLRVemp07o0ya8uaD/Tk=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=S9i+fS6R1XNCSUOkRO98hSW5NWlWzp0uXIccL+CXsK87UPpMFNUgGQTEqjWYLON77 k8kUjXXNY+PQRKatRn32D8uIZcPEB3inXNf/Rxm1Y0ZtBacHJKdEla4YelaugTcIBA BjvZ7j5fGRXG6amCij/qtp0IRXLoH36uZbRRtclxkaPsjKhrm8OrTt6TzDdon7F9fJ GKOjT6y7qZXE0DEfD5kbS9zBXuHFzTesHllH79eiJJYRZCCKP8LhdXb/NFtkAi1aWw XtYhQ4A76KXKb0hyTdXL6t3w5E4Kr9Q7PL2ibf5Op3V/uFVCiosWJ/dQTGyHrns3CR vAgtJyz+mgo/A== Date: Mon, 18 May 2026 23:20:30 +0200 From: Alejandro Colomar <alx@kernel.org> To: libc-alpha@sourceware.org Cc: Alejandro Colomar <alx@kernel.org>, Joseph Myers <josmyers@redhat.com>, Paul Eggert <eggert@cs.ucla.edu>, Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>, Florian Weimer <fweimer@redhat.com>, "Dmitry V. Levin" <ldv@altlinux.org>, Archie Cobbs <archie.cobbs@gmail.com>, Solar Designer <solar@openwall.com>, Sam James <sam@gentoo.org> Subject: [PATCH v6 0/3] Add [v]aprintf(3) Message-ID: <cover.1779138878.git.alx@kernel.org> X-Mailer: git-send-email 2.53.0 References: <abSVWeS3nHmkZSKn@devuan> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <abSVWeS3nHmkZSKn@devuan> X-Spam-Status: No, score=-4.2 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, SPF_HELO_NONE, SPF_PASS, TXREP shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list <libc-alpha.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/libc-alpha/> List-Post: <mailto:libc-alpha@sourceware.org> List-Help: <mailto:libc-alpha-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/libc-alpha>, <mailto:libc-alpha-request@sourceware.org?subject=subscribe> Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org |
| Series | Add [v]aprintf(3) | |
Message
Alejandro Colomar
May 18, 2026, 9:20 p.m. UTC
Hi!
This v6 is a rebase of v5 to current trunk. No meaningful changes.
I've only fixed merge conflicts, which happened due to the addition of
other entries to abilist files, and the removal of support for s390-32.
Adhemerval mentioned Florian's concern about EOVERFLOW. While this
implementation doesn't remove EOVERFLOW, the idea is that we will be
able to remove it in the future. That will be more difficult, so it can
be done later, separately. I don't see that as a blocker for this API.
I haven't tested, as I haven't changed anything meaningfully since v5
(and my computer is overloaded with other tests for a few weeks). See
range-diff below, which shows the changes are trivial.
Have a lovely night!
Alex
Alejandro Colomar (3):
Add [v]aprintf(3)
manual/: Prefer aprintf(3) over asprintf(3)
sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: Fix
typo
debug/Makefile | 4 ++
debug/Versions | 3 +
debug/aprintf_chk.c | 51 ++++++++++++++++
debug/vaprintf_chk.c | 39 ++++++++++++
include/stdio.h | 8 +++
libio/Makefile | 4 +-
libio/Versions | 3 +
libio/bits/stdio-ldbl.h | 5 ++
libio/bits/stdio2-decl.h | 8 +++
libio/bits/stdio2.h | 42 +++++++++++++
libio/stdio.h | 13 ++++
libio/tst-aprintf.c | 57 ++++++++++++++++++
libio/vaprintf.c | 39 ++++++++++++
manual/examples/rprintf.c | 4 +-
manual/stdio.texi | 30 +++++++++-
manual/string.texi | 2 +-
stdio-common/Makefile | 2 +
stdio-common/Versions | 3 +
stdio-common/aprintf.c | 40 +++++++++++++
sysdeps/ieee754/ldbl-128ibm-compat/Makefile | 8 ++-
sysdeps/ieee754/ldbl-128ibm-compat/Versions | 6 ++
.../ldbl-128ibm-compat/ieee128-aprintf.c | 36 +++++++++++
.../ldbl-128ibm-compat/ieee128-aprintf_chk.c | 40 +++++++++++++
.../ldbl-128ibm-compat/ieee128-vaprintf.c | 29 +++++++++
.../ldbl-128ibm-compat/ieee128-vaprintf_chk.c | 31 ++++++++++
.../test-printf-chk-ldbl-compat.c | 33 ++++++++++-
.../test-printf-ldbl-compat.c | 31 +++++++++-
sysdeps/ieee754/ldbl-opt/Makefile | 6 ++
sysdeps/ieee754/ldbl-opt/Versions | 10 ++++
sysdeps/ieee754/ldbl-opt/nldbl-aprintf.c | 17 ++++++
sysdeps/ieee754/ldbl-opt/nldbl-aprintf_chk.c | 15 +++++
sysdeps/ieee754/ldbl-opt/nldbl-compat.c | 59 +++++++++++++++++++
sysdeps/ieee754/ldbl-opt/nldbl-compat.h | 5 ++
sysdeps/ieee754/ldbl-opt/nldbl-vaprintf.c | 9 +++
sysdeps/ieee754/ldbl-opt/nldbl-vaprintf_chk.c | 8 +++
sysdeps/mach/hurd/i386/libc.abilist | 5 ++
sysdeps/mach/hurd/x86_64/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/aarch64/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/alpha/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/arc/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/arm/be/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/arm/le/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/csky/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/hppa/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/i386/libc.abilist | 5 ++
.../sysv/linux/loongarch/lp64/libc.abilist | 5 ++
.../sysv/linux/m68k/coldfire/libc.abilist | 5 ++
.../unix/sysv/linux/m68k/m680x0/libc.abilist | 5 ++
.../sysv/linux/microblaze/be/libc.abilist | 5 ++
.../sysv/linux/microblaze/le/libc.abilist | 5 ++
.../sysv/linux/mips/mips32/fpu/libc.abilist | 5 ++
.../sysv/linux/mips/mips32/nofpu/libc.abilist | 5 ++
.../sysv/linux/mips/mips64/n32/libc.abilist | 5 ++
.../sysv/linux/mips/mips64/n64/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/or1k/libc.abilist | 5 ++
.../linux/powerpc/powerpc32/fpu/libc.abilist | 5 ++
.../powerpc/powerpc32/nofpu/libc.abilist | 5 ++
.../linux/powerpc/powerpc64/be/libc.abilist | 5 ++
.../linux/powerpc/powerpc64/le/libc.abilist | 5 ++
.../unix/sysv/linux/riscv/rv32/libc.abilist | 5 ++
.../unix/sysv/linux/riscv/rv64/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/s390/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/sh/be/libc.abilist | 5 ++
sysdeps/unix/sysv/linux/sh/le/libc.abilist | 5 ++
.../sysv/linux/sparc/sparc32/libc.abilist | 5 ++
.../sysv/linux/sparc/sparc64/libc.abilist | 5 ++
.../unix/sysv/linux/x86_64/64/libc.abilist | 5 ++
.../unix/sysv/linux/x86_64/x32/libc.abilist | 5 ++
68 files changed, 853 insertions(+), 12 deletions(-)
create mode 100644 debug/aprintf_chk.c
create mode 100644 debug/vaprintf_chk.c
create mode 100644 libio/tst-aprintf.c
create mode 100644 libio/vaprintf.c
create mode 100644 stdio-common/aprintf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-aprintf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-aprintf_chk.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vaprintf.c
create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vaprintf_chk.c
create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-aprintf.c
create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-aprintf_chk.c
create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-vaprintf.c
create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-vaprintf_chk.c
Range-diff against v5:
1: 4c17f2c5 ! 1: 2cbdf65b Add [v]aprintf(3)
@@ sysdeps/mach/hurd/i386/libc.abilist: GLIBC_2.43 tss_delete F
GLIBC_2.43 umaxabs F
+GLIBC_2.44 __aprintf F
+GLIBC_2.44 __aprintf_chk F
+ GLIBC_2.44 __mq_open_2 F
+GLIBC_2.44 __vaprintf_chk F
+ GLIBC_2.44 aio_cancel F
+ GLIBC_2.44 aio_cancel64 F
+ GLIBC_2.44 aio_error F
+@@ sysdeps/mach/hurd/i386/libc.abilist: GLIBC_2.44 aio_suspend F
+ GLIBC_2.44 aio_suspend64 F
+ GLIBC_2.44 aio_write F
+ GLIBC_2.44 aio_write64 F
+GLIBC_2.44 aprintf F
+ GLIBC_2.44 gai_cancel F
+ GLIBC_2.44 gai_error F
+ GLIBC_2.44 gai_suspend F
+@@ sysdeps/mach/hurd/i386/libc.abilist: GLIBC_2.44 timer_delete F
+ GLIBC_2.44 timer_getoverrun F
+ GLIBC_2.44 timer_gettime F
+ GLIBC_2.44 timer_settime F
+GLIBC_2.44 vaprintf F
GLIBC_2.5 __readlinkat_chk F
GLIBC_2.5 inet6_opt_append F
@@ sysdeps/mach/hurd/x86_64/libc.abilist: GLIBC_2.43 tss_delete F
GLIBC_2.43 umaxabs F
+GLIBC_2.44 __aprintf F
+GLIBC_2.44 __aprintf_chk F
+ GLIBC_2.44 __mq_open_2 F
+GLIBC_2.44 __vaprintf_chk F
+ GLIBC_2.44 aio_cancel F
+ GLIBC_2.44 aio_cancel64 F
+ GLIBC_2.44 aio_error F
+@@ sysdeps/mach/hurd/x86_64/libc.abilist: GLIBC_2.44 aio_suspend F
+ GLIBC_2.44 aio_suspend64 F
+ GLIBC_2.44 aio_write F
+ GLIBC_2.44 aio_write64 F
+GLIBC_2.44 aprintf F
+ GLIBC_2.44 gai_cancel F
+ GLIBC_2.44 gai_error F
+ GLIBC_2.44 gai_suspend F
+@@ sysdeps/mach/hurd/x86_64/libc.abilist: GLIBC_2.44 timer_delete F
+ GLIBC_2.44 timer_getoverrun F
+ GLIBC_2.44 timer_gettime F
+ GLIBC_2.44 timer_settime F
+GLIBC_2.44 vaprintf F
HURD_CTHREADS_0.3 __mutex_init F
HURD_CTHREADS_0.3 __mutex_lock F
@@ sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: GLIBC_2.43 memset_explicit F
+GLIBC_2.44 aprintf F
+GLIBC_2.44 vaprintf F
- ## sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist ##
-@@ sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: GLIBC_2.43 memset_explicit F
- GLIBC_2.43 mseal F
- GLIBC_2.43 openat2 F
- GLIBC_2.43 umaxabs F
-+GLIBC_2.44 __aprintf F
-+GLIBC_2.44 __aprintf_chk F
-+GLIBC_2.44 __vaprintf_chk F
-+GLIBC_2.44 aprintf F
-+GLIBC_2.44 vaprintf F
- GLIBC_2.5 __readlinkat_chk F
- GLIBC_2.5 inet6_opt_append F
- GLIBC_2.5 inet6_opt_find F
-
- ## sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist ##
-@@ sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: GLIBC_2.43 memset_explicit F
+ ## sysdeps/unix/sysv/linux/s390/libc.abilist ##
+@@ sysdeps/unix/sysv/linux/s390/libc.abilist: GLIBC_2.43 memset_explicit F
GLIBC_2.43 mseal F
GLIBC_2.43 openat2 F
GLIBC_2.43 umaxabs F
2: 7ad30709 = 2: ad7ab456 manual/: Prefer aprintf(3) over asprintf(3)
3: 22c4ae3f = 3: 2f43411a sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: Fix typo
base-commit: 9da7ad6d74700811c9b4c82b5f5eb555e39241a7