Show a cover letter.

GET /api/covers/2226729/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 2226729,
    "url": "http://patchwork.ozlabs.org/api/covers/2226729/?format=api",
    "web_url": "http://patchwork.ozlabs.org/project/glibc/cover/cover.1776882798.git.alx@kernel.org/",
    "project": {
        "id": 41,
        "url": "http://patchwork.ozlabs.org/api/projects/41/?format=api",
        "name": "GNU C Library",
        "link_name": "glibc",
        "list_id": "libc-alpha.sourceware.org",
        "list_email": "libc-alpha@sourceware.org",
        "web_url": "",
        "scm_url": "",
        "webscm_url": "",
        "list_archive_url": "",
        "list_archive_url_format": "",
        "commit_url_format": ""
    },
    "msgid": "<cover.1776882798.git.alx@kernel.org>",
    "list_archive_url": null,
    "date": "2026-04-22T18:37:51",
    "name": "[0/3] Add [v]aprintf(3)",
    "submitter": {
        "id": 86795,
        "url": "http://patchwork.ozlabs.org/api/people/86795/?format=api",
        "name": "Alejandro Colomar",
        "email": "alx@kernel.org"
    },
    "mbox": "http://patchwork.ozlabs.org/project/glibc/cover/cover.1776882798.git.alx@kernel.org/mbox/",
    "series": [
        {
            "id": 501084,
            "url": "http://patchwork.ozlabs.org/api/series/501084/?format=api",
            "web_url": "http://patchwork.ozlabs.org/project/glibc/list/?series=501084",
            "date": "2026-04-22T18:37:55",
            "name": "Add [v]aprintf(3)",
            "version": 1,
            "mbox": "http://patchwork.ozlabs.org/series/501084/mbox/"
        }
    ],
    "comments": "http://patchwork.ozlabs.org/api/covers/2226729/comments/",
    "headers": {
        "Return-Path": "<libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org>",
        "X-Original-To": [
            "incoming@patchwork.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Delivered-To": [
            "patchwork-incoming@legolas.ozlabs.org",
            "libc-alpha@sourceware.org"
        ],
        "Authentication-Results": [
            "legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=q5KGw11G;\n\tdkim-atps=neutral",
            "legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org;\n receiver=patchwork.ozlabs.org)",
            "sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=kernel.org header.i=@kernel.org header.a=rsa-sha256\n header.s=k20201202 header.b=q5KGw11G",
            "sourceware.org; dmarc=pass (p=quarantine dis=none)\n header.from=kernel.org",
            "sourceware.org; spf=pass smtp.mailfrom=kernel.org",
            "server2.sourceware.org;\n arc=none smtp.remote-ip=2600:3c0a:e001:78e:0:1991:8:25"
        ],
        "Received": [
            "from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g17jk3d1Zz1yGs\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 23 Apr 2026 04:56:26 +1000 (AEST)",
            "from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id 663FF409BE86\n\tfor <incoming@patchwork.ozlabs.org>; Wed, 22 Apr 2026 18:56:24 +0000 (GMT)",
            "from sea.source.kernel.org (sea.source.kernel.org\n [IPv6:2600:3c0a:e001:78e:0:1991:8:25])\n by sourceware.org (Postfix) with ESMTPS id 0D64043326A0\n for <libc-alpha@sourceware.org>; Wed, 22 Apr 2026 18:37:58 +0000 (GMT)",
            "from smtp.kernel.org (transwarp.subspace.kernel.org [100.75.92.58])\n by sea.source.kernel.org (Postfix) with ESMTP id 782504416D;\n Wed, 22 Apr 2026 18:37:55 +0000 (UTC)",
            "by smtp.kernel.org (Postfix) with ESMTPSA id 2190FC19425;\n Wed, 22 Apr 2026 18:37:52 +0000 (UTC)"
        ],
        "DKIM-Filter": [
            "OpenDKIM Filter v2.11.0 sourceware.org 663FF409BE86",
            "OpenDKIM Filter v2.11.0 sourceware.org 0D64043326A0"
        ],
        "DMARC-Filter": "OpenDMARC Filter v1.4.2 sourceware.org 0D64043326A0",
        "ARC-Filter": "OpenARC Filter v1.0.0 sourceware.org 0D64043326A0",
        "ARC-Seal": "i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776883078; cv=none;\n b=He6u2BHg9Y7xeh0u2r5G45hxKlCxiCH/YK8YWFNRXwtHNaJ+dC61FtfkHV2GVfCS/4GjrWUZf1jeVnzbVKkS67TbGcXgFdO02xoSJ+1uR1CpBAXlYLJ26g2XE2aWghYrUp7RmipORoGj8Hr4wz8Dfg3UrxqZ8aRIRvikKxsUA/U=",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776883078; c=relaxed/simple;\n bh=A2GAFE22m9+6bMKx4ruddxtJyqGBvZo74yESkmDAYtA=;\n h=DKIM-Signature:Date:From:To:Subject:Message-ID:MIME-Version;\n b=GNWX1dPk6Cr8B5bEdWpe0y/oEF3wKU2DCUPZW3tBVOP4p3HK6Y6io9sCpljhyDTniq2Y5qBFB5dOgXCZfmg/A/KconRD8SsEdvVq6BOx+i7cuy2r0t+maGJsp8D+hMPLVb0s0uQvrreahNeTIc40F41fHnyzpcZgx0mCLhnVux8=",
        "ARC-Authentication-Results": "i=1; server2.sourceware.org",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org;\n s=k20201202; t=1776883075;\n bh=A2GAFE22m9+6bMKx4ruddxtJyqGBvZo74yESkmDAYtA=;\n h=Date:From:To:Cc:Subject:References:In-Reply-To:From;\n b=q5KGw11GREviLIRaGi7EPnwCQz/gSJHjt8cmFNoOMq3OXL9/d99OUsDyL5HlSuJY1\n 7TPXKlwqo0nl0ti3BtSeP+aABKM8USPuKEPaHtnc0tUyWCrs5ilt/fn+/edcnYcAiq\n xoma3QvYi0te37DAPyu9L91y5gki+3wVS7ehx6bF7kXLhvTxbg2H1ksXcIbkj4aoET\n yso2aPyuL4KthA76WffFYVlcNHSlP5vaX3EDurQxEbZxgz26+arnTtMy1uHqEQKZNM\n 6YuB48rFP90DABHYJGd6uf4+y+ge35lVxXB8vr4D11qr45GQHCthk5pMWFEKoN30Oz\n bQITjXc8dDqfA==",
        "Date": "Wed, 22 Apr 2026 20:37:51 +0200",
        "From": "Alejandro Colomar <alx@kernel.org>",
        "To": "libc-alpha@sourceware.org",
        "Cc": "Alejandro Colomar <alx@kernel.org>, Joseph Myers <josmyers@redhat.com>,\n Paul Eggert <eggert@cs.ucla.edu>,\n Adhemerval Zanella Netto <adhemerval.zanella@linaro.org>,\n Florian Weimer <fweimer@redhat.com>, \"Dmitry V. Levin\" <ldv@altlinux.org>,\n Archie Cobbs <archie.cobbs@gmail.com>, Solar Designer <solar@openwall.com>,\n Sam James <sam@gentoo.org>",
        "Subject": "[PATCH 0/3] Add [v]aprintf(3)",
        "Message-ID": "<cover.1776882798.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-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>,\n <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>,\n <mailto:libc-alpha-request@sourceware.org?subject=subscribe>",
        "Errors-To": "libc-alpha-bounces~incoming=patchwork.ozlabs.org@sourceware.org"
    },
    "content": "Hi!\n\nSorry for the delay; Easter and other stuff got in the way.\n\nIn v5:\n\n-  I've updated .abilist files, and the remaining Versions files under\n   sysdeps/.\n-  I've also added tests for the _chk implementations.\n-  And fixed some incorrect brace in a Versions file.\n-  While writing the tests for the _chk versions, I realized a typo in\n   existing code, so I've fixed it in patch 3/3.\n\nI've tested this with make && make check.  That seems to pass.\n\n\t$ diff -u ../.tmp.master/tests.sum tests.sum \n\t--- ../.tmp.master/tests.sum\t2026-04-22 20:31:29.671899499 +0200\n\t+++ tests.sum\t2026-04-22 18:51:34.647754287 +0200\n\t@@ -1936,6 +1936,7 @@\n\t PASS: libio/test-fputs-unbuffered-full\n\t PASS: libio/test-fputws-unbuffered-full\n\t PASS: libio/test-freopen\n\t+PASS: libio/tst-aprintf\n\t PASS: libio/tst-asprintf-null\n\t PASS: libio/tst-atime\n\t PASS: libio/tst-bz22415\n\nIf there's anything else I'd need to test please let me know (and how).\n\nSee range-diff below for the exact changes compared to v4.  I think this\nis ready (thus, now PATCH instead of RFC).\n\n\nHave a lovely day!\nAlex\n\n\nAlejandro Colomar (3):\n  Add [v]aprintf(3)\n  manual/: Prefer aprintf(3) over asprintf(3)\n  sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: Fix\n    typo\n\n debug/Makefile                                |  4 ++\n debug/Versions                                |  3 +\n debug/aprintf_chk.c                           | 51 ++++++++++++++++\n debug/vaprintf_chk.c                          | 39 ++++++++++++\n include/stdio.h                               |  8 +++\n libio/Makefile                                |  4 +-\n libio/Versions                                |  3 +\n libio/bits/stdio-ldbl.h                       |  5 ++\n libio/bits/stdio2-decl.h                      |  8 +++\n libio/bits/stdio2.h                           | 42 +++++++++++++\n libio/stdio.h                                 | 13 ++++\n libio/tst-aprintf.c                           | 57 ++++++++++++++++++\n libio/vaprintf.c                              | 39 ++++++++++++\n manual/examples/rprintf.c                     |  4 +-\n manual/stdio.texi                             | 30 +++++++++-\n manual/string.texi                            |  2 +-\n stdio-common/Makefile                         |  2 +\n stdio-common/Versions                         |  3 +\n stdio-common/aprintf.c                        | 40 +++++++++++++\n sysdeps/ieee754/ldbl-128ibm-compat/Makefile   |  8 ++-\n sysdeps/ieee754/ldbl-128ibm-compat/Versions   |  6 ++\n .../ldbl-128ibm-compat/ieee128-aprintf.c      | 36 +++++++++++\n .../ldbl-128ibm-compat/ieee128-aprintf_chk.c  | 40 +++++++++++++\n .../ldbl-128ibm-compat/ieee128-vaprintf.c     | 29 +++++++++\n .../ldbl-128ibm-compat/ieee128-vaprintf_chk.c | 31 ++++++++++\n .../test-printf-chk-ldbl-compat.c             | 33 ++++++++++-\n .../test-printf-ldbl-compat.c                 | 31 +++++++++-\n sysdeps/ieee754/ldbl-opt/Makefile             |  6 ++\n sysdeps/ieee754/ldbl-opt/Versions             | 10 ++++\n sysdeps/ieee754/ldbl-opt/nldbl-aprintf.c      | 17 ++++++\n sysdeps/ieee754/ldbl-opt/nldbl-aprintf_chk.c  | 15 +++++\n sysdeps/ieee754/ldbl-opt/nldbl-compat.c       | 59 +++++++++++++++++++\n sysdeps/ieee754/ldbl-opt/nldbl-compat.h       |  5 ++\n sysdeps/ieee754/ldbl-opt/nldbl-vaprintf.c     |  9 +++\n sysdeps/ieee754/ldbl-opt/nldbl-vaprintf_chk.c |  8 +++\n sysdeps/mach/hurd/i386/libc.abilist           |  5 ++\n sysdeps/mach/hurd/x86_64/libc.abilist         |  5 ++\n sysdeps/unix/sysv/linux/aarch64/libc.abilist  |  5 ++\n sysdeps/unix/sysv/linux/alpha/libc.abilist    |  5 ++\n sysdeps/unix/sysv/linux/arc/libc.abilist      |  5 ++\n sysdeps/unix/sysv/linux/arm/be/libc.abilist   |  5 ++\n sysdeps/unix/sysv/linux/arm/le/libc.abilist   |  5 ++\n sysdeps/unix/sysv/linux/csky/libc.abilist     |  5 ++\n sysdeps/unix/sysv/linux/hppa/libc.abilist     |  5 ++\n sysdeps/unix/sysv/linux/i386/libc.abilist     |  5 ++\n .../sysv/linux/loongarch/lp64/libc.abilist    |  5 ++\n .../sysv/linux/m68k/coldfire/libc.abilist     |  5 ++\n .../unix/sysv/linux/m68k/m680x0/libc.abilist  |  5 ++\n .../sysv/linux/microblaze/be/libc.abilist     |  5 ++\n .../sysv/linux/microblaze/le/libc.abilist     |  5 ++\n .../sysv/linux/mips/mips32/fpu/libc.abilist   |  5 ++\n .../sysv/linux/mips/mips32/nofpu/libc.abilist |  5 ++\n .../sysv/linux/mips/mips64/n32/libc.abilist   |  5 ++\n .../sysv/linux/mips/mips64/n64/libc.abilist   |  5 ++\n sysdeps/unix/sysv/linux/or1k/libc.abilist     |  5 ++\n .../linux/powerpc/powerpc32/fpu/libc.abilist  |  5 ++\n .../powerpc/powerpc32/nofpu/libc.abilist      |  5 ++\n .../linux/powerpc/powerpc64/be/libc.abilist   |  5 ++\n .../linux/powerpc/powerpc64/le/libc.abilist   |  5 ++\n .../unix/sysv/linux/riscv/rv32/libc.abilist   |  5 ++\n .../unix/sysv/linux/riscv/rv64/libc.abilist   |  5 ++\n .../unix/sysv/linux/s390/s390-32/libc.abilist |  5 ++\n .../unix/sysv/linux/s390/s390-64/libc.abilist |  5 ++\n sysdeps/unix/sysv/linux/sh/be/libc.abilist    |  5 ++\n sysdeps/unix/sysv/linux/sh/le/libc.abilist    |  5 ++\n .../sysv/linux/sparc/sparc32/libc.abilist     |  5 ++\n .../sysv/linux/sparc/sparc64/libc.abilist     |  5 ++\n .../unix/sysv/linux/x86_64/64/libc.abilist    |  5 ++\n .../unix/sysv/linux/x86_64/x32/libc.abilist   |  5 ++\n 69 files changed, 858 insertions(+), 12 deletions(-)\n create mode 100644 debug/aprintf_chk.c\n create mode 100644 debug/vaprintf_chk.c\n create mode 100644 libio/tst-aprintf.c\n create mode 100644 libio/vaprintf.c\n create mode 100644 stdio-common/aprintf.c\n create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-aprintf.c\n create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-aprintf_chk.c\n create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vaprintf.c\n create mode 100644 sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vaprintf_chk.c\n create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-aprintf.c\n create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-aprintf_chk.c\n create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-vaprintf.c\n create mode 100644 sysdeps/ieee754/ldbl-opt/nldbl-vaprintf_chk.c\n\nRange-diff:\n1:  f927e1d9 ! 1:  4c17f2c5 Add [v]aprintf(3)\n    @@ stdio-common/Makefile: routines := \\\n     \n      ## stdio-common/Versions ##\n     @@ stdio-common/Versions: libc {\n    -     __isoc23_vfscanf;\n          __isoc23_sscanf;\n          __isoc23_vsscanf;\n    +   }\n     +  GLIBC_2.44 {\n     +    aprintf;\n    -   }\n    ++  }\n        GLIBC_PRIVATE {\n          # global variables\n    +     _itoa_lower_digits;\n     \n      ## stdio-common/aprintf.c (new) ##\n     @@\n    @@ sysdeps/ieee754/ldbl-128ibm-compat/Makefile: routines_no_fortify += \\\n        ieee128-vdprintf \\\n        ieee128-vfprintf \\\n     \n    + ## sysdeps/ieee754/ldbl-128ibm-compat/Versions ##\n    +@@ sysdeps/ieee754/ldbl-128ibm-compat/Versions: libc {\n    +     __isoc23_vswscanfieee128;\n    +     __isoc23_vwscanfieee128;\n    +   }\n    ++  GLIBC_2.44 {\n    ++    __aprintfieee128;\n    ++    __vaprintfieee128;\n    ++    __aprintf_chkieee128;\n    ++    __vaprintf_chkieee128;\n    ++  }\n    + }\n    +\n      ## sysdeps/ieee754/ldbl-128ibm-compat/ieee128-aprintf.c (new) ##\n     @@\n     +/* Wrapper for aprintf.  IEEE128 version.\n    @@ sysdeps/ieee754/ldbl-128ibm-compat/ieee128-vaprintf_chk.c (new)\n     +}\n     +strong_alias (___ieee128___vaprintf_chk, __vaprintf_chkieee128)\n     \n    + ## sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c ##\n    +@@\n    + static void\n    + do_test_call_varg (FILE *stream, const char *format, ...)\n    + {\n    +-  char *buffer = NULL;\n    ++  char *buffer;\n    +   char string[128];\n    +   int res;\n    +   va_list args;\n    + \n    ++  printf (\"%20s\", \"__vaprintf_chk: \");\n    ++  va_start (args, format);\n    ++  buffer = __vaprintf_chk (1, format, args);\n    ++  va_end (args);\n    ++  if (buffer == NULL)\n    ++    printf (\"Error using vaprintf\\n\");\n    ++  else\n    ++    printf (\"%s\", buffer);\n    ++  free (buffer);\n    ++  printf (\"\\n\");\n    ++\n    +   printf (\"%20s\", \"__vasprintf_chk: \");\n    ++  buffer = NULL;\n    +   va_start (args, format);\n    +   res = __vasprintf_chk (&buffer, 1, format, args);\n    +   va_end (args);\n    +@@ sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: static void\n    + do_test_call_rarg (FILE *stream, const char *format, long double ld,\n    + \t\t   double d)\n    + {\n    +-  char *buffer = NULL;\n    ++  char *buffer;\n    +   char string[128];\n    +   int res;\n    + \n    ++  printf (\"%20s\", \"__aprintf_chk: \");\n    ++  buffer = __aprintf_chk (1, format, ld, d);\n    ++  if (buffer == NULL)\n    ++    printf (\"Error using aprintf\\n\");\n    ++  else\n    ++    printf (\"%s\", buffer);\n    ++  free (buffer);\n    ++  printf (\"\\n\");\n    ++\n    +   printf (\"%20s\", \"__asprintf_chk: \");\n    ++  buffer = NULL;\n    +   res = __asprintf_chk (&buffer, 1, format, ld, d);\n    +   if (res == -1)\n    +     printf (\"Error using vasprintf\\n\");\n    +@@ sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: do_test (void)\n    + \n    +   /* Compare against the expected output.  */\n    +   const char *expected =\n    ++    \"     __aprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"    __asprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"     __dprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"     __fprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"      __printf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"    __snprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"     __sprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    ++    \"    __vaprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"   __vasprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"    __vdprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"    __vfprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"     __vprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"   __vsnprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    +     \"    __vsprintf_chk: -1.0000000000, -1.0000000000\\n\"\n    ++    \"     __aprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"    __asprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     __dprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     __fprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"      __printf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"    __snprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     __sprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    ++    \"    __vaprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"   __vasprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"    __vdprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"    __vfprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     __vprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"   __vsnprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"    __vsprintf_chk: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    ++    \"    __vaprintf_chk: 3.000000, 2.000000, 1.000000\\n\"\n    +     \"   __vasprintf_chk: 3.000000, 2.000000, 1.000000\\n\"\n    +     \"    __vdprintf_chk: 3.000000, 2.000000, 1.000000\\n\"\n    +     \"    __vfprintf_chk: 3.000000, 2.000000, 1.000000\\n\"\n    +\n    + ## sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c ##\n    +@@\n    + static void\n    + do_test_call_varg (FILE *stream, const char *format, ...)\n    + {\n    +-  char *buffer = NULL;\n    ++  char *buffer;\n    +   char string[128];\n    +   va_list args;\n    +   int ret;\n    + \n    ++  printf (\"%15s\", \"vaprintf: \");\n    ++  va_start (args, format);\n    ++  buffer = vaprintf (format, args);\n    ++  va_end (args);\n    ++  if (buffer == NULL)\n    ++    printf (\"Error using vaprintf\\n\");\n    ++  else\n    ++    printf (\"%s\", buffer);\n    ++  free (buffer);\n    ++  printf (\"\\n\");\n    ++\n    +   printf (\"%15s\", \"vasprintf: \");\n    ++  buffer = NULL;\n    +   va_start (args, format);\n    +   ret = vasprintf (&buffer, format, args);\n    +   va_end (args);\n    +@@ sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c: do_test_call_varg (FILE *stream, const char *format, ...)\n    + static void\n    + do_test_call_rarg (FILE *stream, const char *format, long double ld, double d)\n    + {\n    +-  char *buffer = NULL;\n    ++  char *buffer;\n    +   char string[128];\n    +   int ret;\n    + \n    ++  printf (\"%15s\", \"aprintf: \");\n    ++  buffer = aprintf (format, ld, d);\n    ++  if (buffer == NULL)\n    ++    printf (\"Error using aprintf\\n\");\n    ++  else\n    ++    printf (\"%s\", buffer);\n    ++  free (buffer);\n    ++  printf (\"\\n\");\n    ++\n    +   printf (\"%15s\", \"asprintf: \");\n    ++  buffer = NULL;\n    +   ret = asprintf (&buffer, format, ld, d);\n    +   if (ret == -1 || buffer == NULL)\n    +     printf (\"Error using asprintf\\n\");\n    +@@ sysdeps/ieee754/ldbl-128ibm-compat/test-printf-ldbl-compat.c: do_test (void)\n    + \n    +   /* Compare against the expected output.  */\n    +   const char *expected =\n    ++    \"      aprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"     asprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"      dprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"      fprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"       printf: -1.0000000000, -1.0000000000\\n\"\n    +     \"     snprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"      sprintf: -1.0000000000, -1.0000000000\\n\"\n    ++    \"     vaprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"    vasprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"     vdprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"     vfprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"      vprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"    vsnprintf: -1.0000000000, -1.0000000000\\n\"\n    +     \"     vsprintf: -1.0000000000, -1.0000000000\\n\"\n    ++    \"      aprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     asprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"      dprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"      fprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"       printf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     snprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"      sprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    ++    \"     vaprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"    vasprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     vdprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     vfprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"      vprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"    vsnprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    +     \"     vsprintf: -0x1.0000000000p+0, -0x1.0000000000p+0\\n\"\n    ++    \"     vaprintf: 3.000000, 2.000000, 1.000000\\n\"\n    +     \"    vasprintf: 3.000000, 2.000000, 1.000000\\n\"\n    +     \"     vdprintf: 3.000000, 2.000000, 1.000000\\n\"\n    +     \"     vfprintf: 3.000000, 2.000000, 1.000000\\n\"\n    +\n      ## sysdeps/ieee754/ldbl-opt/Makefile ##\n     @@ sysdeps/ieee754/ldbl-opt/Makefile: libnldbl-calls = \\\n        acos \\\n    @@ sysdeps/ieee754/ldbl-opt/Makefile: routines_no_fortify += \\\n        nldbl-vdprintf \\\n        nldbl-vfprintf \\\n     \n    + ## sysdeps/ieee754/ldbl-opt/Versions ##\n    +@@ sysdeps/ieee754/ldbl-opt/Versions: libc {\n    +     __nldbl___isoc23_vfwscanf;\n    +     __nldbl___isoc23_vswscanf;\n    +   }\n    ++  GLIBC_2.44 {\n    ++    __aprintf;\n    ++    aprintf;\n    ++    vaprintf;\n    ++    __nldbl___aprintf;\n    ++    __nldbl_aprintf;\n    ++    __nldbl_vaprintf;\n    ++    __nldbl___aprintf_chk;\n    ++    __nldbl___vaprintf_chk;\n    ++  }\n    + }\n    + libm {\n    +   NLDBL_VERSION {\n    +\n      ## sysdeps/ieee754/ldbl-opt/nldbl-aprintf.c (new) ##\n     @@\n     +#include \"nldbl-compat.h\"\n    @@ sysdeps/ieee754/ldbl-opt/nldbl-aprintf_chk.c (new)\n     +  return p;\n     +}\n     \n    + ## sysdeps/ieee754/ldbl-opt/nldbl-compat.c ##\n    +@@ sysdeps/ieee754/ldbl-opt/nldbl-compat.c: libc_hidden_proto (__nldbl___isoc23_vfwscanf)\n    +    we don't need to split this into one file per function for the\n    +    sake of statically linked programs.  */\n    + \n    ++int\n    ++attribute_compat_text_section\n    ++__nldbl___aprintf (const char *fmt, ...)\n    ++{\n    ++  va_list ap;\n    ++  char *p;\n    ++\n    ++  va_start (ap, fmt);\n    ++  if (__vasprintf_internal (&p, fmt, ap, PRINTF_LDBL_IS_DBL) < 0)\n    ++    p = NULL;\n    ++  va_end (ap);\n    ++\n    ++  return p;\n    ++}\n    ++weak_alias (__nldbl___aprintf, __nldbl_aprintf)\n    ++\n    + int\n    + attribute_compat_text_section\n    + __nldbl___asprintf (char **string_ptr, const char *fmt, ...)\n    +@@ sysdeps/ieee754/ldbl-opt/nldbl-compat.c: __nldbl_swprintf (wchar_t *s, size_t n, const wchar_t *fmt, ...)\n    +   return ret;\n    + }\n    + \n    ++char *\n    ++attribute_compat_text_section weak_function\n    ++__nldbl_vaprintf (const char *fmt, va_list ap)\n    ++{\n    ++  char *p;\n    ++  return __vasprintf_internal (&p, fmt, ap, PRINTF_LDBL_IS_DBL) < 0 ? NULL : p;\n    ++}\n    ++\n    + int\n    + attribute_compat_text_section weak_function\n    + __nldbl_vasprintf (char **result_ptr, const char *fmt, va_list ap)\n    +@@ sysdeps/ieee754/ldbl-opt/nldbl-compat.c: __nldbl___wprintf_chk (int flag, const wchar_t *fmt, ...)\n    +   return ret;\n    + }\n    + \n    ++char *\n    ++attribute_compat_text_section\n    ++__nldbl___vaprintf_chk (int flag, const char *fmt, va_list ap)\n    ++{\n    ++  char *p;\n    ++  unsigned int mode = PRINTF_LDBL_IS_DBL;\n    ++  if (flag > 0)\n    ++    mode |= PRINTF_FORTIFY;\n    ++\n    ++  return __vasprintf_internal (&p, fmt, ap, mode) < 0 ? NULL : p;\n    ++}\n    ++\n    ++char *\n    ++attribute_compat_text_section\n    ++__nldbl___aprintf_chk (int flag, const char *fmt, ...)\n    ++{\n    ++  va_list ap;\n    ++  char *p;\n    ++  unsigned int mode = PRINTF_LDBL_IS_DBL;\n    ++  if (flag > 0)\n    ++    mode |= PRINTF_FORTIFY;\n    ++\n    ++  va_start (ap, fmt);\n    ++  if (__vasprintf_internal (&p, fmt, ap, mode) < 0)\n    ++    p = NULL;\n    ++  va_end (ap);\n    ++\n    ++  return p;\n    ++}\n    ++\n    + int\n    + attribute_compat_text_section\n    + __nldbl___vasprintf_chk (char **ptr, int flag, const char *fmt, va_list ap)\n    +@@ sysdeps/ieee754/ldbl-opt/nldbl-compat.c: compat_symbol (libc, __nldbl___fprintf_chk, __fprintf_chk, GLIBC_2_3_4);\n    + compat_symbol (libc, __nldbl___vprintf_chk, __vprintf_chk, GLIBC_2_3_4);\n    + compat_symbol (libc, __nldbl___vfprintf_chk, __vfprintf_chk, GLIBC_2_3_4);\n    + #endif\n    ++#if LONG_DOUBLE_COMPAT(libc, GLIBC_2_4_4)\n    ++compat_symbol (libc, __nldbl_aprintf, aprintf, GLIBC_2_4_4);\n    ++compat_symbol (libc, __nldbl_vaprintf, vaprintf, GLIBC_2_4_4);\n    ++compat_symbol (libc, __nldbl___aprintf, __aprintf, GLIBC_2_4_4);\n    ++#endif\n    +\n    + ## sysdeps/ieee754/ldbl-opt/nldbl-compat.h ##\n    +@@ sysdeps/ieee754/ldbl-opt/nldbl-compat.h: NLDBL_DECL (_IO_vfscanf);\n    + NLDBL_DECL (vfscanf);\n    + NLDBL_DECL (vfwscanf);\n    + NLDBL_DECL (obstack_vprintf);\n    ++NLDBL_DECL (vaprintf);\n    + NLDBL_DECL (vasprintf);\n    + NLDBL_DECL (dprintf);\n    + NLDBL_DECL (vdprintf);\n    +@@ sysdeps/ieee754/ldbl-opt/nldbl-compat.h: NLDBL_DECL (vsprintf);\n    + NLDBL_DECL (vsscanf);\n    + NLDBL_DECL (vswprintf);\n    + NLDBL_DECL (vswscanf);\n    ++NLDBL_DECL (__aprintf);\n    ++NLDBL_DECL (aprintf);\n    + NLDBL_DECL (__asprintf);\n    + NLDBL_DECL (asprintf);\n    + NLDBL_DECL (__printf_fp);\n    +@@ sysdeps/ieee754/ldbl-opt/nldbl-compat.h: extern int __nldbl___vsnprintf_chk (char *__restrict, size_t, int, size_t,\n    + extern int __nldbl___vswprintf_chk (wchar_t *__restrict, size_t, int, size_t,\n    + \t\t\t\t    const wchar_t *__restrict, __gnuc_va_list)\n    +   __THROW;\n    ++extern char *__nldbl___vaprintf_chk (int, const char *, __gnuc_va_list)\n    ++  __THROW __attribute_malloc__;\n    + extern int __nldbl___vasprintf_chk (char **, int, const char *, __gnuc_va_list)\n    +   __THROW;\n    + extern int __nldbl___vdprintf_chk (int, int, const char *, __gnuc_va_list);\n    +\n      ## sysdeps/ieee754/ldbl-opt/nldbl-vaprintf.c (new) ##\n     @@\n     +#include \"nldbl-compat.h\"\n    @@ sysdeps/ieee754/ldbl-opt/nldbl-vaprintf_chk.c (new)\n     +{\n     +  return __nldbl___vaprintf_chk (flag, fmt, ap);\n     +}\n    +\n    + ## sysdeps/mach/hurd/i386/libc.abilist ##\n    +@@ sysdeps/mach/hurd/i386/libc.abilist: GLIBC_2.43 tss_delete F\n    + GLIBC_2.43 tss_get F\n    + GLIBC_2.43 tss_set F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/mach/hurd/x86_64/libc.abilist ##\n    +@@ sysdeps/mach/hurd/x86_64/libc.abilist: GLIBC_2.43 tss_delete F\n    + GLIBC_2.43 tss_get F\n    + GLIBC_2.43 tss_set F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + HURD_CTHREADS_0.3 __mutex_init F\n    + HURD_CTHREADS_0.3 __mutex_lock F\n    + HURD_CTHREADS_0.3 __mutex_trylock F\n    +\n    + ## sysdeps/unix/sysv/linux/aarch64/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/aarch64/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/alpha/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/alpha/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/arc/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/arc/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/arm/be/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/arm/be/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/arm/le/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/arm/le/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/csky/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/csky/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/hppa/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/hppa/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/i386/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/i386/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/loongarch/lp64/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/m68k/coldfire/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/m68k/m680x0/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/microblaze/be/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/microblaze/be/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/microblaze/le/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/microblaze/le/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/mips/mips32/fpu/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/mips/mips32/nofpu/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/mips/mips64/n32/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/mips/mips64/n64/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/or1k/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/or1k/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/powerpc/powerpc32/fpu/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/powerpc/powerpc32/nofpu/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/powerpc/powerpc64/be/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/powerpc/powerpc64/le/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/riscv/rv32/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/riscv/rv64/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    +\n    + ## sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/s390/s390-32/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/s390/s390-64/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/sh/be/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/sh/be/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/sh/le/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/sh/le/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/sparc/sparc32/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/sparc/sparc64/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/x86_64/64/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/x86_64/64/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n    + GLIBC_2.5 __readlinkat_chk F\n    + GLIBC_2.5 inet6_opt_append F\n    + GLIBC_2.5 inet6_opt_find F\n    +\n    + ## sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist ##\n    +@@ sysdeps/unix/sysv/linux/x86_64/x32/libc.abilist: GLIBC_2.43 memset_explicit F\n    + GLIBC_2.43 mseal F\n    + GLIBC_2.43 openat2 F\n    + GLIBC_2.43 umaxabs F\n    ++GLIBC_2.44 __aprintf F\n    ++GLIBC_2.44 __aprintf_chk F\n    ++GLIBC_2.44 __vaprintf_chk F\n    ++GLIBC_2.44 aprintf F\n    ++GLIBC_2.44 vaprintf F\n2:  f1dca5c0 = 2:  7ad30709 manual/: Prefer aprintf(3) over asprintf(3)\n-:  -------- > 3:  22c4ae3f sysdeps/ieee754/ldbl-128ibm-compat/test-printf-chk-ldbl-compat.c: Fix typo"
}