From patchwork Fri Apr 10 04:18:51 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 132888 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [127.0.0.1]) by sourceware.org (Postfix) with ESMTP id 16D594BA2E2E for ; Fri, 10 Apr 2026 04:20:00 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 16D594BA2E2E 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=aMMs4kRg X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pj1-x1030.google.com (mail-pj1-x1030.google.com [IPv6:2607:f8b0:4864:20::1030]) by sourceware.org (Postfix) with ESMTPS id B28594BA2E0F for ; Fri, 10 Apr 2026 04:19:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B28594BA2E0F 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 B28594BA2E0F Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2607:f8b0:4864:20::1030 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1775794769; cv=pass; b=cGRIm/aEwEDP1jT4NDzBGcW+TWT9eNpgmwOVa7c6T0H8X47exI7aTLR9jsGjrck89Fl3SdFOYVbPFFjwmpfRGkbNA9BCibrPOWNv/KcBl3UPRNpEZkCSSTbaYoassBA8Wc8j3q6UoGcwbzN8yxl0ZTFt2OxuWZxCijgrfXZY/eg= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1775794769; c=relaxed/simple; bh=l9na/feWN++sK2UCLfsGvPQEaDmZCDOCB5F+29c9gVo=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=wCB1XJZJR6AqDQXixES6UZm6YwtGzzhXAdvlxBS0N9DRvJZa1h5ATX3TY9HIQJN2E16Y4kjwDhVdQqvWOc1DEja5OlLaL+LE/on1Ck+kSpuJX37H/oFoAUsc5yJ18i1hkQwkuSWrFDwFQU/Qk0Nm8Mm9ufPUk7aAfCObM2s6/Pk= ARC-Authentication-Results: i=2; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B28594BA2E0F Received: by mail-pj1-x1030.google.com with SMTP id 98e67ed59e1d1-35da9692ec3so1713619a91.1 for ; Thu, 09 Apr 2026 21:19:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1775794768; cv=none; d=google.com; s=arc-20240605; b=id8VlxcU+P2uXjntWBpC2DGWBOWhxowTRRmr754ajLyNyQxeXZRAd2WgGBOj+RAXAD 1cNNd9fmrXkq58jC7AX3mw5in357YkUYQP9bYSHv9MZeQq49dF2fCxWDqvHv6jabmvlF VCWppdXwbJ3LZi3swEBxi+fEG23Exbg0vpbdZPj8SC8yQlw7I/u78pR/PD1VA2/tbkXs OZya+69jh/r+QaVU5lgW9HSpjcLJOccd+NcPpT73ktdZmjLO8/E0SxGSRuHlsR61hkbi MBluGQyFoXSG5YJmwA0mkTM0gCRNXO3tzp0WzKpNHIJqxy0OlSojk5VZHzk+YnjhmWL9 iiFw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=vSE1iV6CFmpQT29C6Jo2gva5P1MEkX0lodopRkJwFO8=; fh=biVpOvIgHjiqBpY2Y6O9I5MsAfr37QX6bXfYKjh9TDU=; b=YI7gRDSUwxuU+Lg5TdCkRkneNSB2awDbIjYdcS2E5D4m0BooiOwTYFNsVb2U52Fg59 7KUfcjj5jd1BvrGcYx70jBxKCAk6tVhpho4Gu8DMpFXKLLxP/UPyvbNjRmIksj/wNreO tAJn9TtESsyC8XUjFlVVo3GluBOCRWSKL6kpAib/2bnwXfItoCUtftHnuN+xuRkPOg7i WoGhD9LROHyLQpqxnidYIyJuiBaH8JRKr8S9iXL1+VbC5Rl5gVCEEzxe7gcJM0JbWvoq WKXm5noCkQMXVeCLpw/+vLpfw2oRggJsFVlmk1ACpOVmY3sIfRfTjDuiFyXF0AnWmTpK 9H7Q==; darn=sourceware.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775794768; x=1776399568; darn=sourceware.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=vSE1iV6CFmpQT29C6Jo2gva5P1MEkX0lodopRkJwFO8=; b=aMMs4kRgvlywPMqFIz9LwlBx9L/6Td7tLFcFX0GVZ+l1/4MFc4ALXtr5Yii9s0S6LK bxIV2hy54chkiUy0vXpKlNwZCkkGbWvCw6saAKeoda7DduPUHMGqrM8PK7jeFt1OEIl0 SFI60PwwmhcjUGNVK9L9pQTqwVYVgp/bzrflJNarDbxj+VGNaL1BFIifLv17erTTihUC iCK47ERNWHcMyF6nY9iH+vftf3RCmCHPLMi/y+LPwmRmR5aCWawE/egOMYfCIAU5PiBB dlrYiCdwX8LF6kyu8qv36nyDHqs1RmRDOoqmMRO4LNZPy2HSOWwLHNY4XddNfSrRGrv+ GTQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775794768; x=1776399568; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=vSE1iV6CFmpQT29C6Jo2gva5P1MEkX0lodopRkJwFO8=; b=CUjatyamANASlPdoQwxFC9woehJ8tdF4N885HzqhbP9XrnwTO8l6o+t/3NvXIzsLHc ino7sjekTOkzgG9juRS/3bXlOyV+BFtKZ0aAvfh3Ddz4PqwVFXAlQMUHdJYqTBhbD4mD N/O5J3j2TBuhp4Cy3SRdr6aFVx8BKgEvHj3Ukeb8kIDrxpgkex0+dkyXnK1USfef7JXo T4KZV+S+idbtJuC3u1KMbxd518sZ3coqC+NWin2hyiuL4s6UPHwd9F+8LEn8QhCZm3Jq 2WIcfTFgdT1QEyZBAy3TbktQfQC2/A1qZLZmDkeKao3vC70kJz66yXvuL7QetjQdE8JV yPrw== X-Gm-Message-State: AOJu0YybBa8b9QaAtCOLF9597PYqk7k4IiJUqUYUzc9t0Z5Q1ADtIbVb km9AWNwlONWpZ0Y1V7BibVvl6eA2sewWzy0yZky/FzLIw3LyDCqT1eAkXBNZKe59yVczz4or7vl 9WbL3hKmo9bWnWWXmTCz7rl3QlWQfZjVMCmU8zRokNA== X-Gm-Gg: AeBDiesEfCIcPtoWa+285UT1+byZkpMxQ4ZbDgIkahXZnbdjZ/SBl4d+tZLJ3xhgGcO lwF9Rih0zKFPlSn+suLCC3+h0XB3UrGm0L1s9vWVVdjKJgIrII/mDC7R71dqfYgs2/x+AGWAbwR C6V0k+A6pIo9IeoBYGM4vtdlzyrLulzH1pIQ28RExG8r0x9OtWo7TUV0hpPugFi9nzCFS9lr+gy pMe0pG8KHEj3+fpy6XVNCEYOWbOoOUI+L3GxUxxOZMGSP8dlthnTJ8KCEdRKp2AQz+CgGDsF6ae ftiZkg== X-Received: by 2002:a17:90b:28cc:b0:35d:aeb2:25b2 with SMTP id 98e67ed59e1d1-35e428cda1bmr1911064a91.27.1775794768458; Thu, 09 Apr 2026 21:19:28 -0700 (PDT) MIME-Version: 1.0 From: "H.J. Lu" Date: Fri, 10 Apr 2026 12:18:51 +0800 X-Gm-Features: AQROBzDfUZum2YZjE13J4WD6OEVkzZsnPx3y8H5zYBqPvs3QPwhxtzr4tBWcTYE Message-ID: Subject: [PATCH] elf: Remove _dl_process_pt_note To: GNU C Library X-Spam-Status: No, score=-3010.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, 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 sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: libc-alpha-bounces~patchwork=sourceware.org@sourceware.org _dl_map_object_from_fd and rtld_setup_main_map have for (ph = &l->l_phdr[l->l_phnum]; ph != l->l_phdr; --ph) switch (ph[-1].p_type) { case PT_NOTE: _dl_process_pt_note (l, fd, &ph[-1]); break; case PT_GNU_PROPERTY: _dl_process_pt_gnu_property (l, fd, &ph[-1]); break; } _dl_process_pt_note is empty, except for sysdeps/x86/dl-prop.h: static inline void __attribute__ ((unused)) _dl_process_pt_note (struct link_map *l, int fd, const ElfW(Phdr) *ph) { const ElfW(Nhdr) *note = (const void *) (ph->p_vaddr + l->l_addr); _dl_process_property_note (l, note, ph->p_memsz, ph->p_align); } Since all current CET enabled binaries have PT_GNU_PROPERTY, we can drop _dl_process_pt_note. This fixes BZ #34064. From 0c749eddb82218753fb7c700ac97d13a02a46c30 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 10 Apr 2026 12:14:39 +0800 Subject: [PATCH] elf: Remove _dl_process_pt_note _dl_map_object_from_fd and rtld_setup_main_map have for (ph = &l->l_phdr[l->l_phnum]; ph != l->l_phdr; --ph) switch (ph[-1].p_type) { case PT_NOTE: _dl_process_pt_note (l, fd, &ph[-1]); break; case PT_GNU_PROPERTY: _dl_process_pt_gnu_property (l, fd, &ph[-1]); break; } _dl_process_pt_note is empty, except for sysdeps/x86/dl-prop.h: static inline void __attribute__ ((unused)) _dl_process_pt_note (struct link_map *l, int fd, const ElfW(Phdr) *ph) { const ElfW(Nhdr) *note = (const void *) (ph->p_vaddr + l->l_addr); _dl_process_property_note (l, note, ph->p_memsz, ph->p_align); } Since all current CET enabled binaries have PT_GNU_PROPERTY, we can drop _dl_process_pt_note. This fixes BZ #34064. Signed-off-by: H.J. Lu --- elf/dl-load.c | 10 +++------- elf/rtld.c | 10 +++------- sysdeps/aarch64/dl-prop.h | 5 ----- sysdeps/generic/dl-prop.h | 5 ----- sysdeps/x86/dl-prop.h | 7 ------- 5 files changed, 6 insertions(+), 31 deletions(-) diff --git a/elf/dl-load.c b/elf/dl-load.c index 7355eef8e7..a5693a3a66 100644 --- a/elf/dl-load.c +++ b/elf/dl-load.c @@ -1332,15 +1332,11 @@ cannot enable executable stack as shared object requires"); /* Process program headers again after load segments are mapped in case processing requires accessing those segments. Scan program - headers backward so that PT_NOTE can be skipped if PT_GNU_PROPERTY - exits. */ + headers backward since PT_GNU_PROPERTY is close to the end of + program headers. */ for (ph = &l->l_phdr[l->l_phnum]; ph != l->l_phdr; --ph) - switch (ph[-1].p_type) + if (ph[-1].p_type == PT_GNU_PROPERTY) { - case PT_NOTE: - _dl_process_pt_note (l, fd, &ph[-1]); - break; - case PT_GNU_PROPERTY: _dl_process_pt_gnu_property (l, fd, &ph[-1]); break; } diff --git a/elf/rtld.c b/elf/rtld.c index 0eac823749..e926ec73e4 100644 --- a/elf/rtld.c +++ b/elf/rtld.c @@ -1209,15 +1209,11 @@ rtld_setup_main_map (struct link_map *main_map) main_map->l_relro_size = ph->p_memsz; break; } - /* Process program headers again, but scan them backwards so - that PT_NOTE can be skipped if PT_GNU_PROPERTY exits. */ + /* Process program headers again, but scan them backwards since + PT_GNU_PROPERTY is close to the end of program headers. */ for (const ElfW(Phdr) *ph = &phdr[phnum]; ph != phdr; --ph) - switch (ph[-1].p_type) + if (ph[-1].p_type == PT_GNU_PROPERTY) { - case PT_NOTE: - _dl_process_pt_note (main_map, -1, &ph[-1]); - break; - case PT_GNU_PROPERTY: _dl_process_pt_gnu_property (main_map, -1, &ph[-1]); break; } diff --git a/sysdeps/aarch64/dl-prop.h b/sysdeps/aarch64/dl-prop.h index cf236df59b..0d2672d32d 100644 --- a/sysdeps/aarch64/dl-prop.h +++ b/sysdeps/aarch64/dl-prop.h @@ -41,11 +41,6 @@ _dl_open_check (struct link_map *m, int dlopen_mode) _dl_gcs_check (m, NULL, dlopen_mode); } -static inline void __attribute__ ((always_inline)) -_dl_process_pt_note (struct link_map *l, int fd, const ElfW(Phdr) *ph) -{ -} - static inline int _dl_process_gnu_property (struct link_map *l, int fd, uint32_t type, uint32_t datasz, void *data) diff --git a/sysdeps/generic/dl-prop.h b/sysdeps/generic/dl-prop.h index 0e65c51b8c..6a1e1eeff8 100644 --- a/sysdeps/generic/dl-prop.h +++ b/sysdeps/generic/dl-prop.h @@ -36,11 +36,6 @@ _dl_open_check (struct link_map *m, int dlopen_mode) { } -static inline void __attribute__ ((always_inline)) -_dl_process_pt_note (struct link_map *l, int fd, const ElfW(Phdr) *ph) -{ -} - /* Called for each property in the NT_GNU_PROPERTY_TYPE_0 note of L, processing of the properties continues until this returns 0. */ static inline int __attribute__ ((always_inline)) diff --git a/sysdeps/x86/dl-prop.h b/sysdeps/x86/dl-prop.h index 19ae873927..a466eba331 100644 --- a/sysdeps/x86/dl-prop.h +++ b/sysdeps/x86/dl-prop.h @@ -229,13 +229,6 @@ _dl_process_property_note (struct link_map *l, const ElfW(Nhdr) *note, l->l_property = lc_property_none; } -static inline void __attribute__ ((unused)) -_dl_process_pt_note (struct link_map *l, int fd, const ElfW(Phdr) *ph) -{ - const ElfW(Nhdr) *note = (const void *) (ph->p_vaddr + l->l_addr); - _dl_process_property_note (l, note, ph->p_memsz, ph->p_align); -} - static inline int __attribute__ ((always_inline)) _dl_process_gnu_property (struct link_map *l, int fd, uint32_t type, uint32_t datasz, void *data) -- 2.53.0