| Message ID | 20260906-gm-series1-ifunc-infra-v1-1-d409f053327f@gmail.com (mailing list archive) |
|---|---|
| State | New |
| 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 CAE214BC7EEC for <patchwork@sourceware.org>; Sun, 6 Sep 2026 19:08:10 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org CAE214BC7EEC Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=nxUPBAMK X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-yw1-x112b.google.com (mail-yw1-x112b.google.com [IPv6:2607:f8b0:4864:20::112b]) by sourceware.org (Postfix) with ESMTPS id 87BB34BC7EF8 for <libc-alpha@sourceware.org>; Sun, 6 Sep 2026 19:06:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 87BB34BC7EF8 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 87BB34BC7EF8 Authentication-Results: sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::112b ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1788721572; cv=none; b=ms2J+zxg/KYAL92Sh/QFqGYJ6kq3VYAO0sruZFLBBBbaAgvfql5F5Y9mBXhXL+lbzAG24wiJOeO/z5JY2lZinYNGK9jnleqBpWxZjUdqXJ7Pj3cjZwQu/UA6bcRFJFRXDQbhlNcgjtnSbKCyDJYi/wUrXiKeMGz1AfHbR0kdNy8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1788721572; c=relaxed/simple; bh=f6g9XH09PXXOLlOeqOo4+A7UeA1mRNGS2W1YvzolAp4=; h=DKIM-Signature:From:Date:Subject:MIME-Version:Message-Id:To; b=ivAnLCcptwQMfiG9auvNaZDoOzG0TBTqItJaORGBLF9SvUuxmgV4lqhg4vDHqWea18OjwhtbbktCzAJtszU7fOrj0Y59UGJmW4ou2poZMFbYLHivZ0UUSpeGEQsxTkTocEY4WpGeZ0onsWrFhgL8RNDx5LNRClGGKpeRzj5WZdY= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20251104 header.b=nxUPBAMK DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 87BB34BC7EF8 Received: by mail-yw1-x112b.google.com with SMTP id 00721157ae682-85a50f6a7f7so36459517b3.2 for <libc-alpha@sourceware.org>; Sun, 06 Sep 2026 12:06:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788721572; x=1789326372; darn=sourceware.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=QLilfjfvp9McyPSHvinIusMh/owF9asIYNGstK2atlM=; b=nxUPBAMKEhhNkthGw4fbbt0mMlLj5S71EiGDMHI4ZoMToenZJeJjIxSRph0rExtaT5 ZfGkBGrGxshhV+dmfvT43OAuWYq6z5bM216Dp/5fzaaI88Wa7cKLYpP699pceXpELbs2 JioKQz+D+RCO2yJDJ0VS4iSFChZEPreLJJVVus2Uxhc9Kp6pb0W3kXBkN1truzvA9mji 8JcBWlg+8Mmzuoy1mqRMkdBAaLjdYLcpA2025PeFZ8rUwEUs47A2JA3nABwKtYOLErm9 0trAjbPO8b9vILck0QIiR1O79ruRYA3OGFcgdVdisbQjaCjCTkuXzIDrBmi1ZtRn9AFj 0W1w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788721572; x=1789326372; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :content-type:mime-version:subject:date:from:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to :content-type; bh=QLilfjfvp9McyPSHvinIusMh/owF9asIYNGstK2atlM=; b=pk9EMhqT6R0LrCYiiLPIwD2YxpjGpeSY8ghXtQrAqYtl5WcNTUdng5m8XXPcmQd/IM Ehqectuzdys8mOTZJvuSI29y0BIwV5BlFCYw+xs3rU05mSLS3yWkI62Y97zfK5W7Fv/p 4XxLQmj1C8k1xntMaNmKci8By6oZbVy406Jju9um+a8ynFfWDOAAHrtZOd2a2DpCKW2L Sv52sLy2/4xeJ/hg1CrXPhsiRsd2tfKM9yqzuM111b/+s9vDw05OPdcz9JIUlDk7QfC6 cYBS3VFr34NtAAZTJ/GKcGEz7htXjgps199P47Qy5ABkX4z0g0xB+eaOymSckUBX0R+F hYlw== X-Gm-Message-State: AFuF++kcBveztApIJ3UiuRlhcDfP5xF/AWwpYEKMgAOEtar8F05YAeI4 1KFOk8JmwBGv0WTJ1BCk90S/rlFe6/qpk/e4CumJCjNMvVFEn+LP0Gl8 X-Gm-Gg: AYBFou20L8eG5wuwwzbn6YwMqjb/EgSDsvkd0wg2x7gajozCxJXzqDO69kXFa7AE05D sKhxztUwlJgBokYVHYh+ucc2MFEz8FkVdQn3oYt6cPeSL+fQFppyxK7tsowTcC9nHbEyesz7FuZ xFHPIesE9LuCKwy+Ot/eMK27i7ytdbctXs6NZvg82K15JBi1jsZtnxnV5HG2pDQQWNKopinoFTC tglh1wH1jTzTk2YcKrVVVMPLaiPP1GZ7csOFU+8rz4UrQsrr4AhhhADmq1J76slj+HF/BLFBjzE f6vZuatJHe9Zxoc+/Utw7IrJT/J2kyk+nx9o1XPGvcOQMZWNQaEZwgVraNjDYIX1Od5i56Hwy70 cmETrm3JY3y39ZULdsid8Gk1Mex2shFEtLdlLoNB+4i68zwHFErGY0lnUN/qHYEAxV47IS+pyel kFwEiKuedQQB6k0+vs7LZl3G0F6LJfBm11Po8mdQsVyD0KloC4SYDKr224y+bK X-Received: by 2002:a05:690c:3683:b0:820:b89:52c6 with SMTP id 00721157ae682-8712a418f03mr70112737b3.33.1788721571838; Sun, 06 Sep 2026 12:06:11 -0700 (PDT) Received: from localhost ([2600:1702:7a90:6f9f:8bc4:8aec:108d:7a04]) by smtp.gmail.com with ESMTPSA id 00721157ae682-87149316356sm58987907b3.9.2026.09.06.12.06.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 06 Sep 2026 12:06:11 -0700 (PDT) From: Matt Turner <mattst88@gmail.com> Date: Sun, 06 Sep 2026 15:06:06 -0400 Subject: [PATCH 1/4] alpha: treat STO_ALPHA_STD_GPLOAD as a function in abilist.awk MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Message-Id: <20260906-gm-series1-ifunc-infra-v1-1-d409f053327f@gmail.com> References: <20260906-gm-series1-ifunc-infra-v1-0-d409f053327f@gmail.com> In-Reply-To: <20260906-gm-series1-ifunc-infra-v1-0-d409f053327f@gmail.com> To: libc-alpha@sourceware.org Cc: Matt Turner <mattst88@gmail.com> X-Mailer: b4 0.14.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=1269; i=mattst88@gmail.com; h=from:subject:message-id; bh=f6g9XH09PXXOLlOeqOo4+A7UeA1mRNGS2W1YvzolAp4=; b=owGbwMvMwCW25rVmCc8sv+mMp9WSGLLm7pyXtztPbYWpsYmI172O3UsU0pTSi4qUJt8samXeo 5t9fgVvx0cWBjEuhpliiixx6xVZZrXtWOpzWvoXzBxWJpAh0iINDEDAwsCXm5hXaqRjpGeqbahn CGToGMVD5PQYNDKLi0tTi3TTCooc8vJLEksy8/OK9fILUvMK0gv00jLTSjIy8ouKU4FG6OWllpi 6OroZGRqYWDpamDlZOJqaODs7GTq5OTo6uzoZWZqbGDhbOpq4WpozcHEKwFwT7s3wv4z3o8IKJ+ Ug/QK1CxO3FDf9XBFTPOfVtPTr6u8E2Au+/WRkaCptkq2wWtXAlC56etWj+RMsly99pGtfEP+FU f1TsqUmOwA= X-Developer-Key: i=mattst88@gmail.com; a=openpgp; fpr=3BB639E56F861FA2E86505690FDD682D974CA72A X-Spam-Status: No, score=-11.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, 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 |
alpha: add IFUNC-based multiarch dispatch
|
|
Checks
| Context | Check | Description |
|---|---|---|
| redhat-pt-bot/TryBot-apply_patch | success | Patch applied to master at the time it was sent |
| linaro-tcwg-bot/tcwg_glibc_build--master-arm | success | Build passed |
| linaro-tcwg-bot/tcwg_glibc_build--master-aarch64 | success | Build passed |
| linaro-tcwg-bot/tcwg_glibc_check--master-aarch64 | success | Test passed |
| linaro-tcwg-bot/tcwg_glibc_check--master-arm | success | Test passed |
Commit Message
Matt Turner
Sept. 6, 2026, 7:06 p.m. UTC
The Alpha ABI defines two st_other values for functions: 0x80 (STO_ALPHA_NOPV) - .prologue 0: runs on caller's GP 0x88 (STO_ALPHA_STD_GPLOAD) - .prologue 1: standard two-instruction GP load abilist.awk recognized 0x80 but not 0x88 when classifying a dynamic symbol of object type as a function. Symbols like strncat that are weak aliases of .prologue 1 assembly functions appear as STT_NOTYPE with st_other=0x88 in the dynamic symbol table and were incorrectly classified as data. Add 0x88 to the check so both GP-setup variants are treated as functions. --- scripts/abilist.awk | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-)
Comments
On Mon, Sep 7, 2026 at 3:08 AM Matt Turner <mattst88@gmail.com> wrote: > > The Alpha ABI defines two st_other values for functions: > 0x80 (STO_ALPHA_NOPV) - .prologue 0: runs on caller's GP > 0x88 (STO_ALPHA_STD_GPLOAD) - .prologue 1: standard two-instruction GP load > > abilist.awk recognized 0x80 but not 0x88 when classifying a dynamic > symbol of object type as a function. Symbols like strncat that are weak > aliases of .prologue 1 assembly functions appear as STT_NOTYPE with > st_other=0x88 in the dynamic symbol table and were incorrectly Why is the alias marked as STT_NOTYPE? > classified as data. > > Add 0x88 to the check so both GP-setup variants are treated as > functions. > --- > scripts/abilist.awk | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/scripts/abilist.awk b/scripts/abilist.awk > index 7ea1edf8c0..39f63d0803 100644 > --- a/scripts/abilist.awk > +++ b/scripts/abilist.awk > @@ -70,8 +70,8 @@ $2 == "g" || $2 == "w" && (NF == 6 || NF == 7 || NF == 8) { > type = "O"; > seen_opd = 1; > } > - else if (type == "D" && NF == 8 && $7 == "0x80") { > - # Alpha functions avoiding plt entry in users > + else if (type == "D" && NF == 8 && ($7 == "0x80" || $7 == "0x88")) { > + # Alpha functions: 0x80 = STO_ALPHA_NOPV, 0x88 = STO_ALPHA_STD_GPLOAD > type = "F"; > size = ""; > seen_opd = -1; > > -- > 2.54.0 >
On Sun, Sep 6, 2026 at 8:22 PM H.J. Lu <hjl.tools@gmail.com> wrote: > > On Mon, Sep 7, 2026 at 3:08 AM Matt Turner <mattst88@gmail.com> wrote: > > > > The Alpha ABI defines two st_other values for functions: > > 0x80 (STO_ALPHA_NOPV) - .prologue 0: runs on caller's GP > > 0x88 (STO_ALPHA_STD_GPLOAD) - .prologue 1: standard two-instruction GP load > > > > abilist.awk recognized 0x80 but not 0x88 when classifying a dynamic > > symbol of object type as a function. Symbols like strncat that are weak > > aliases of .prologue 1 assembly functions appear as STT_NOTYPE with > > st_other=0x88 in the dynamic symbol table and were incorrectly > > Why is the alias marked as STT_NOTYPE? Great question -- I think this was papering over a bug in my earlier series when I was exporting the alias from assembly without a .type directive. So this patch is garbage. It should be dropped from the series.
diff --git a/scripts/abilist.awk b/scripts/abilist.awk index 7ea1edf8c0..39f63d0803 100644 --- a/scripts/abilist.awk +++ b/scripts/abilist.awk @@ -70,8 +70,8 @@ $2 == "g" || $2 == "w" && (NF == 6 || NF == 7 || NF == 8) { type = "O"; seen_opd = 1; } - else if (type == "D" && NF == 8 && $7 == "0x80") { - # Alpha functions avoiding plt entry in users + else if (type == "D" && NF == 8 && ($7 == "0x80" || $7 == "0x88")) { + # Alpha functions: 0x80 = STO_ALPHA_NOPV, 0x88 = STO_ALPHA_STD_GPLOAD type = "F"; size = ""; seen_opd = -1;