{"id":2225177,"url":"http://patchwork.ozlabs.org/api/1.1/covers/2225177/?format=json","web_url":"http://patchwork.ozlabs.org/project/glibc/cover/20260420141459.531612-1-yury.khrustalev@arm.com/","project":{"id":41,"url":"http://patchwork.ozlabs.org/api/1.1/projects/41/?format=json","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":""},"msgid":"<20260420141459.531612-1-yury.khrustalev@arm.com>","date":"2026-04-20T14:14:57","name":"[v2,0/2] malloc: introduce ifuncs for malloc functions","submitter":{"id":88214,"url":"http://patchwork.ozlabs.org/api/1.1/people/88214/?format=json","name":"Yury Khrustalev","email":"yury.khrustalev@arm.com"},"mbox":"http://patchwork.ozlabs.org/project/glibc/cover/20260420141459.531612-1-yury.khrustalev@arm.com/mbox/","series":[{"id":500613,"url":"http://patchwork.ozlabs.org/api/1.1/series/500613/?format=json","web_url":"http://patchwork.ozlabs.org/project/glibc/list/?series=500613","date":"2026-04-20T14:14:57","name":"malloc: introduce ifuncs for malloc functions","version":2,"mbox":"http://patchwork.ozlabs.org/series/500613/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/covers/2225177/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=fail reason=\"signature verification failed\" (1024-bit key;\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=foss header.b=a2fK4aBQ;\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=fail reason=\"signature verification failed\" (1024-bit key,\n unprotected) header.d=arm.com header.i=@arm.com header.a=rsa-sha256\n header.s=foss header.b=a2fK4aBQ","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=arm.com","sourceware.org; spf=pass smtp.mailfrom=arm.com","server2.sourceware.org;\n arc=none smtp.remote-ip=217.140.110.172"],"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 4fznZg0g5rz1yCv\n\tfor <incoming@patchwork.ozlabs.org>; Tue, 21 Apr 2026 00:15:33 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id E6C0B4D108F5\n\tfor <incoming@patchwork.ozlabs.org>; Mon, 20 Apr 2026 14:15:29 +0000 (GMT)","from foss.arm.com (foss.arm.com [217.140.110.172])\n by sourceware.org (Postfix) with ESMTP id 755224B358BC\n for <libc-alpha@sourceware.org>; Mon, 20 Apr 2026 14:15:10 +0000 (GMT)","from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])\n by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 3A80216F2;\n Mon, 20 Apr 2026 07:15:03 -0700 (PDT)","from fdebian.localdomain (G7GWP2TF97.cambridge.arm.com [10.1.33.20])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id\n C29283F7B4; Mon, 20 Apr 2026 07:15:07 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org E6C0B4D108F5","OpenDKIM Filter v2.11.0 sourceware.org 755224B358BC"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 755224B358BC","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 755224B358BC","ARC-Seal":"i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1776694510; cv=none;\n b=bWzJCnFGxiXmcnStnggR3NbmoKguqEe+OgKm4lIlnM+IkL/oy3U01gpXd23GkVwTN1MN8CRjJD5bMVNpEiL4qLcKdqIiQGzu7VmIKags3h7c1rnw9Z7uyBGdAA1gtPg/vtO6ZJ7638q45gX1ARdm7XMShjFPBMl7IJTpSRw00X8=","ARC-Message-Signature":"i=1; a=rsa-sha256; d=sourceware.org; s=key;\n t=1776694510; c=relaxed/simple;\n bh=7/gdB6uCW5M0VlKE5BfJWmix0PmBYJ1S1VQZMN01O40=;\n h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version;\n b=Dw8Svi+7xapjwJd76//gOg4qzniEFtpEVjrwytkHLObZHRG7UzdG79O5icYOoKYU+L8aaNElk32LKeGcb7yNCUhcD16Jh7bLsKFor9m40J917eJcSz0REbCqAWZJIl5kVcGTx8uwWB7fuvYZyTgRyzMI0O+Bi/20HshgwFNw/qw=","ARC-Authentication-Results":"i=1; server2.sourceware.org","DKIM-Signature":"v=1; a=rsa-sha256; c=simple/simple; d=arm.com; s=foss;\n t=1776694508; bh=7/gdB6uCW5M0VlKE5BfJWmix0PmBYJ1S1VQZMN01O40=;\n h=From:To:Cc:Subject:Date:From;\n b=a2fK4aBQf7iBhwT4gQ+0vjSy14dtLIDkoGFoHVCAB8OSJZawRkL1efo/CLTbd0NlD\n mjWGa22O8viM/+DLQ4WHv+MyUj7WGq7fYHLdyJDLg4Yq3nwxrMEOzB3Vgpmcmz0HQf\n MsUDIHEXB4QNOL84HofzmmNc1a+ktw4P1xXkTH1k=","From":"Yury Khrustalev <yury.khrustalev@arm.com>","To":"libc-alpha@sourceware.org","Cc":"DJ Delorie <dj@redhat.com>, Florian Weimer <fweimer@redhat.com>,\n \"H . J . Lu\" <hjl.tools@gmail.com>, Carlos O'Donell <carlos@redhat.com>,\n Wilco Dijkstra <wilco.dijkstra@arm.com>","Subject":"[PATCH v2 0/2] malloc: introduce ifuncs for malloc functions","Date":"Mon, 20 Apr 2026 15:14:57 +0100","Message-ID":"<20260420141459.531612-1-yury.khrustalev@arm.com>","X-Mailer":"git-send-email 2.47.3","MIME-Version":"1.0","Content-Transfer-Encoding":"8bit","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":"See commit message for details. In a nutshell, we want to add ifuncs\nfor the functions related to the malloc API (on targets that support\nifuncs). This will allow to add alternative (e.g. target-specific)\nimplementations for these functions.\n\nThe following aspects have been considered:\n\n1) Generic resolvers that return core implementations. These will be\n   used for most targets that don't provide their custome resolvers.\n\n2) Allow targets to provide their own resolvers (e.g. aarch64 may use\n   this to implement resolvers that return memory tagging implementations\n   when this is supported and requested).\n\n3) For the targets without ifunc support there is no functional change.\n\nPasses regression on aarch64 and x86-64 and has been build-tested using\nthe build-many-glibcs script for various targets including those without\nifunc support. OK for trunk?\n\nChanges in v2:\n - Fixed ifunc resolvers arguments: use no arguments for generic resolvers\n   and use 'uint64_t arg0, uint64_t arg1[]' for aarch64 resolvers.\n - Added grep test to check that code in malloc.c doesn't use non-_core\n   functions.\n - Cleaned-up makefile patch.\n\n---\nbase-commit: 575ae6063d\n\n---\nYury Khrustalev (2):\n  misc: fix lint-makefiles failures\n  malloc: introduce ifuncs for malloc functions\n\n malloc/Makefile                    |   6 ++\n malloc/malloc.c                    | 117 +++++++++++++++++------------\n malloc/tst-check-internal-calls.sh |  53 +++++++++++++\n sysdeps/aarch64/Makefile           |  42 ++++++++---\n sysdeps/aarch64/malloc-ifuncs.c    |  85 +++++++++++++++++++++\n sysdeps/generic/Makefile           |  30 ++++++--\n sysdeps/generic/malloc-ifuncs.c    |  94 +++++++++++++++++++++++\n sysdeps/generic/malloc-ifuncs.h    |  61 +++++++++++++++\n 8 files changed, 423 insertions(+), 65 deletions(-)\n create mode 100644 malloc/tst-check-internal-calls.sh\n create mode 100644 sysdeps/aarch64/malloc-ifuncs.c\n create mode 100644 sysdeps/generic/malloc-ifuncs.c\n create mode 100644 sysdeps/generic/malloc-ifuncs.h"}