From patchwork Sun May 1 06:06:13 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fangrui Song X-Patchwork-Id: 1624819 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=gQtYV7oa; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KrbNX71Fsz9s5V for ; Sun, 1 May 2022 16:07:24 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 100FF3858401 for ; Sun, 1 May 2022 06:07:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 100FF3858401 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1651385242; bh=IB1oqrXNCN/gMqpTejlWZtqOBSG87eZ2oRry++iLO8k=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=gQtYV7oahwKRLnA8vr4z+A4t4x6PAnfa+p6uxZpJeayKmK1s+QU70cG5dBlkfU0DM cwc7tKsk4U2ac9QU2vQMpJvb48nlEPLAxczn9GQQ+4SBOKRQvPaxpB8Bwv7AfWN9tE AAzGez/0t0ZibfrmhxmrRQbRDYe2SM5t211wqWDg= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-yw1-x114a.google.com (mail-yw1-x114a.google.com [IPv6:2607:f8b0:4864:20::114a]) by sourceware.org (Postfix) with ESMTPS id CE4D03858D3C for ; Sun, 1 May 2022 06:07:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org CE4D03858D3C Received: by mail-yw1-x114a.google.com with SMTP id 00721157ae682-2f8398e99dcso111736427b3.9 for ; Sat, 30 Apr 2022 23:07:01 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=IB1oqrXNCN/gMqpTejlWZtqOBSG87eZ2oRry++iLO8k=; b=guX5rzY8s+yoMX7nV7u/faJChYs4e+0eoKz6tV9EbttlU0P4J3LknDOAUP1dHSWVbO NvPawLORwlXb2CWdr7Oo59tsOJDiX6+0iQWYfB5r3O0vNlRd+8iB9+renjNkJt8yD/Ks WJEXs7M/Sv+xZbskxuKycIcDvFciFWLPnIdbOMr4wENC8T03aVFz0WfR+4pzH6OBI03t uGLUdg1DqacEwtp4Z6mCT+uRz1qAT2eKum56kF9Yx/mUHX2OvlMGpQF10+jvlcYLJiBg sUQqtvTPqNikasCPfggkVdXcbPTIJJ1PRb37hy4VZNpOHGToKYn+cVh5W5T1mpRwTRmt o8fQ== X-Gm-Message-State: AOAM5313mHD4/IsBs+WK5NVTQMR6DCAkHAD28NeX77iMVsVdWl9ellKn wVDIRESwULvKR0iN+By1vW1W0t3j1ov5ieIuSc3o0IdwrJp/MzL4Lo0d6XFJuZPFGAiAdvuk55z Ath/9UAloVBSgH/fpTTvGZbS/p0J5fscrBhXJpKfc/ST1ATZlI8GlJ5hmRg3E85w53Syd X-Google-Smtp-Source: ABdhPJwoekUhHNigR7+H9cca5kNG8qR48sm/AePuxLpFTKrqtiexK8MkZAYH8iyTo599zMoo6wj1HzqO8Wqd X-Received: from maskray1.svl.corp.google.com ([2620:15c:2ce:200:a6bd:e82a:7b1:cc1]) (user=maskray job=sendgmr) by 2002:a25:d6c4:0:b0:649:5620:8814 with SMTP id n187-20020a25d6c4000000b0064956208814mr3465364ybg.110.1651385221176; Sat, 30 Apr 2022 23:07:01 -0700 (PDT) Date: Sat, 30 Apr 2022 23:06:13 -0700 In-Reply-To: <20220501060615.1694317-1-maskray@google.com> Message-Id: <20220501060615.1694317-2-maskray@google.com> Mime-Version: 1.0 References: <20220501060615.1694317-1-maskray@google.com> Subject: [PATCH 1/3] elf: Remove ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA check for non-DL_EXTERN_PROTECTED_DATA ports To: libc-alpha@sourceware.org, Adhemerval Zanella , Szabolcs Nagy X-Spam-Status: No, score=-19.5 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Fangrui Song via Libc-alpha From: Fangrui Song Reply-To: Fangrui Song Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" A port not defining DL_EXTERN_PROTECTED_DATA should not incur the overhead. In addition, taking the address of a protected function never works (either breaks pointer equality or rejected by ld). Just remove the code related to functions. --- elf/dl-lookup.c | 46 +++++++++++++++------------------------------- 1 file changed, 15 insertions(+), 31 deletions(-) diff --git a/elf/dl-lookup.c b/elf/dl-lookup.c index 989b073e4f..1bb80688ad 100644 --- a/elf/dl-lookup.c +++ b/elf/dl-lookup.c @@ -863,40 +863,24 @@ _dl_lookup_symbol_x (const char *undef_name, struct link_map *undef_map, return 0; } - int protected = (*ref - && ELFW(ST_VISIBILITY) ((*ref)->st_other) == STV_PROTECTED); - if (__glibc_unlikely (protected != 0)) + if (ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA + && __glibc_unlikely ( + *ref && ELFW (ST_VISIBILITY) ((*ref)->st_other) == STV_PROTECTED + && ELFW (ST_TYPE) ((*ref)->st_info) == STT_OBJECT)) { - /* It is very tricky. We need to figure out what value to - return for the protected symbol. */ - if (type_class == ELF_RTYPE_CLASS_PLT) - { - if (current_value.s != NULL && current_value.m != undef_map) - { - current_value.s = *ref; - current_value.m = undef_map; - } - } - else - { - struct sym_val protected_value = { NULL, NULL }; + struct sym_val protected_value = { NULL, NULL }; - for (scope = symbol_scope; *scope != NULL; i = 0, ++scope) - if (do_lookup_x (undef_name, new_hash, &old_hash, *ref, - &protected_value, *scope, i, version, flags, - skip_map, - (ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA - && ELFW(ST_TYPE) ((*ref)->st_info) == STT_OBJECT - && type_class == ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA) - ? ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA - : ELF_RTYPE_CLASS_PLT, NULL) != 0) - break; + for (scope = symbol_scope; *scope != NULL; i = 0, ++scope) + if (do_lookup_x (undef_name, new_hash, &old_hash, *ref, + &protected_value, *scope, i, version, flags, skip_map, + ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA, NULL) + != 0) + break; - if (protected_value.s != NULL && protected_value.m != undef_map) - { - current_value.s = *ref; - current_value.m = undef_map; - } + if (protected_value.s != NULL && protected_value.m != undef_map) + { + current_value.s = *ref; + current_value.m = undef_map; } } From patchwork Sun May 1 06:06:14 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fangrui Song X-Patchwork-Id: 1624822 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=LUMgVFjh; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KrbPK5mcVz9s5V for ; Sun, 1 May 2022 16:08:05 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A50633857C49 for ; Sun, 1 May 2022 06:08:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A50633857C49 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1651385283; bh=CrmHKNMoayCnSYFR2jMxHvcEqBJNssvBJQ9q7oRl6+U=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=LUMgVFjhalhPr/WRjD2Sqsac5u1/fJMU+uVj0iYH7T95dgtd25mHRzEw/PjPENCsj MjrF0iGH0PMmx3rdiaKTPuwKRu5UmYm5qwiLbd42U7zw2wpFGd32vVmy+vms/knOBl Rj17f/BT2P0nBZ1otxVu4PVWiHUD+jYGzLotioC8= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by sourceware.org (Postfix) with ESMTPS id 541F43857815 for ; Sun, 1 May 2022 06:07:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 541F43857815 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-2f8be9326fcso49217757b3.18 for ; Sat, 30 Apr 2022 23:07:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=CrmHKNMoayCnSYFR2jMxHvcEqBJNssvBJQ9q7oRl6+U=; b=Ql2F8ae6trtZkO5lbor3NPEvohKk8FYTxGlGHozm5VkYoYj02/xh+8MT9IWRXXHdvk AYuvo2FiLcOCoQDMPTLqbuetCudQz0sf/qSe273mo71k61wzUPPrWlwsgpE/OTGu3lRZ chr41q9r2GXRdILQX5aeJOBmjp9w4chGyIVRYbQ/byaEGJuj4EdrGDysbkHov8qrLiVF pFttCVNmJv9ExzW8SpKL8gGxqe8V4dH+kWikHW2CX7ANRXG9XW0JHkArJhDOMWLMNYiT eRtdM5ALh4zfRJNImMY2PvDRJ9snF3uUlMbQb60Fee175yih0XaalXkKIp8FZ8WHmxsJ RryA== X-Gm-Message-State: AOAM5302pLlE0d7oV/mPdrTQcpFKbiJmf2mWMk/7g7mnfxY9tEnHkUBr omNAtuX25MQ7eqT3T6/f61XjywnNhu5vP57/aJUWNsmJws8NBp0zbROPs9PKF/7ASgdY1zAxqkZ bmkWVIKJ8uARaGDXTLAYC9TTRmL/jIvKH/OA2MFqNXkZSITX4zVZkLO3ZDuGl5YWVHqjZ X-Google-Smtp-Source: ABdhPJxUjpCqhH/FAI1t6puveGPxsAJYJY97mSK/2geFoKd9xAf3Rw1kOD/hp9B8QPg+Dxn/QBgPOB5+5Uqk X-Received: from maskray1.svl.corp.google.com ([2620:15c:2ce:200:a6bd:e82a:7b1:cc1]) (user=maskray job=sendgmr) by 2002:a81:1901:0:b0:2f8:3983:78f7 with SMTP id 1-20020a811901000000b002f8398378f7mr6580512ywz.370.1651385224704; Sat, 30 Apr 2022 23:07:04 -0700 (PDT) Date: Sat, 30 Apr 2022 23:06:14 -0700 In-Reply-To: <20220501060615.1694317-1-maskray@google.com> Message-Id: <20220501060615.1694317-3-maskray@google.com> Mime-Version: 1.0 References: <20220501060615.1694317-1-maskray@google.com> Subject: [PATCH 2/3] Revert "[AArch64][BZ #17711] Fix extern protected data handling" To: libc-alpha@sourceware.org, Adhemerval Zanella , Szabolcs Nagy X-Spam-Status: No, score=-19.4 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Fangrui Song via Libc-alpha From: Fangrui Song Reply-To: Fangrui Song Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" This reverts commit 0910702c4d2cf9e8302b35c9519548726e1ac489. Say both a.so and b.so define protected var and the executable copy relocates var. ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA has strange semantics: a.so accesses the copy in the executable while b.so accesses its own. This behavior requires that (a) the compiler emits GOT-generating relocations (b) the linker produces GLOB_DAT instead of RELATIVE. Without the ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA code, b.so's GLOB_DAT will bind to the executable (normal behavior). For aarch64 it makes sense to restore the original behavior and don't pay the ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA cost. The behavior is very unlikely used by anyone. * Clang code generation treats STV_PROTECTED the same way as STV_HIDDEN: no GOT-generating relocation in the first place. * gold and lld reject copy relocation on a STV_PROTECTED symbol. * Nowadays -fpie/-fpic modes are popular. GCC/Clang's codegen uses GOT-generating relocation when accessing an default visibility external symbol which avoids copy relocation. Reviewed-by: Szabolcs Nagy --- sysdeps/aarch64/dl-machine.h | 13 ++++++------- sysdeps/aarch64/dl-sysdep.h | 2 -- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/sysdeps/aarch64/dl-machine.h b/sysdeps/aarch64/dl-machine.h index b40050a981..530952a736 100644 --- a/sysdeps/aarch64/dl-machine.h +++ b/sysdeps/aarch64/dl-machine.h @@ -182,13 +182,12 @@ _dl_start_user: \n\ "); #define elf_machine_type_class(type) \ - ((((type) == AARCH64_R(JUMP_SLOT) \ - || (type) == AARCH64_R(TLS_DTPMOD) \ - || (type) == AARCH64_R(TLS_DTPREL) \ - || (type) == AARCH64_R(TLS_TPREL) \ - || (type) == AARCH64_R(TLSDESC)) * ELF_RTYPE_CLASS_PLT) \ - | (((type) == AARCH64_R(COPY)) * ELF_RTYPE_CLASS_COPY) \ - | (((type) == AARCH64_R(GLOB_DAT)) * ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA)) + ((((type) == R_AARCH64_JUMP_SLOT || \ + (type) == R_AARCH64_TLS_DTPMOD || \ + (type) == R_AARCH64_TLS_DTPREL || \ + (type) == R_AARCH64_TLS_TPREL || \ + (type) == R_AARCH64_TLSDESC) * ELF_RTYPE_CLASS_PLT) \ + | (((type) == R_AARCH64_COPY) * ELF_RTYPE_CLASS_COPY)) #define ELF_MACHINE_JMP_SLOT AARCH64_R(JUMP_SLOT) diff --git a/sysdeps/aarch64/dl-sysdep.h b/sysdeps/aarch64/dl-sysdep.h index 667786671c..ac69f414f3 100644 --- a/sysdeps/aarch64/dl-sysdep.h +++ b/sysdeps/aarch64/dl-sysdep.h @@ -21,5 +21,3 @@ /* _dl_argv cannot be attribute_relro, because _dl_start_user might write into it after _dl_start returns. */ #define DL_ARGV_NOT_RELRO 1 - -#define DL_EXTERN_PROTECTED_DATA From patchwork Sun May 1 06:06:15 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fangrui Song X-Patchwork-Id: 1624824 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: bilbo.ozlabs.org; dkim=pass (1024-bit key; secure) header.d=sourceware.org header.i=@sourceware.org header.a=rsa-sha256 header.s=default header.b=tuBxQjGs; dkim-atps=neutral Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=sourceware.org (client-ip=8.43.85.97; helo=sourceware.org; envelope-from=libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org; receiver=) Received: from sourceware.org (ip-8-43-85-97.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by bilbo.ozlabs.org (Postfix) with ESMTPS id 4KrbQ71gPkz9s5V for ; Sun, 1 May 2022 16:08:47 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5BF823858401 for ; Sun, 1 May 2022 06:08:45 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5BF823858401 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1651385325; bh=D/hnyaBa1yj3rymzhtJmxPnqLjx5J80MTizzet/tus8=; h=Date:In-Reply-To:References:Subject:To:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To: From; b=tuBxQjGs04FWg+jDpagDZBa6RtdxxDXSpG8aAT0oIJzqwJ8T/sJKQnMiITFpAg7el DKkPvfGlqxIvQaypfDiN5rFpg+7a9cZdRdKqJ5TSyT3QvSrOsqPo2h3m3VhRMPELX6 nBWvmRQf1Y8sCrg4IhI0RwbndvPU7rBT7hFzceKs= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-yw1-x1149.google.com (mail-yw1-x1149.google.com [IPv6:2607:f8b0:4864:20::1149]) by sourceware.org (Postfix) with ESMTPS id 4E1103857404 for ; Sun, 1 May 2022 06:07:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 4E1103857404 Received: by mail-yw1-x1149.google.com with SMTP id 00721157ae682-2f8bbaa6b16so50190177b3.14 for ; Sat, 30 Apr 2022 23:07:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:in-reply-to:message-id:mime-version :references:subject:from:to:cc; bh=D/hnyaBa1yj3rymzhtJmxPnqLjx5J80MTizzet/tus8=; b=f77mj0hOAFM3j+yMEjG2/bIzdafTPjg1lZRosjgejFm2z/VC7etJgkeLVNJy4RfKt5 Lpwt29SGenUETc2fDzRfSChdYV4riS3O2JwrxbsENlC2yR3BhhFhVhycrh/F7PZPVVAd 8ynLlMjjxdwggeYg2/V9XD4Z34M83dOAITrFBQn7qO6rPwGgZ5KVZUwIN5D22DPF3XGb hSv0Wv1R979vyj+TmWsftwECw7D0DUviMUmL9oaD5xHOEPK+wu7uOgG4US8pl9NuspRW mRnSXUFUgFji4avzspJ0wp8m8KSkFurwK1R8u2/i2d8gCHRZ7gIvPSvi6xf0mLzKo/ep wWog== X-Gm-Message-State: AOAM532itrT1GNA4Yu7L3FbUN2VbasWMfWNuS/UjNGNi7Atu3hnHonTl sYZ8KnQV25/QsKwNseHcFPmHl6pZcHk4rLZAYqrZGOqISY+Y/Y0l4WemIc9cBvHFA+7irRZ1oru O95cMIIrQDp1d0ZMFpyjyIhxg/i2Qi5W8AqmjmONSnQNHpxUICy7WjfXuM4kyRwCkkn9U X-Google-Smtp-Source: ABdhPJzcni07MEqv1mBs5v04woVApYj4iK8nLF4+cZT/oBV9w6gIFywWkEWKnURr7zDB5uLmsJQSzxJRPWgb X-Received: from maskray1.svl.corp.google.com ([2620:15c:2ce:200:a6bd:e82a:7b1:cc1]) (user=maskray job=sendgmr) by 2002:a0d:cbce:0:b0:2f8:29f6:2839 with SMTP id n197-20020a0dcbce000000b002f829f62839mr6566536ywd.89.1651385227767; Sat, 30 Apr 2022 23:07:07 -0700 (PDT) Date: Sat, 30 Apr 2022 23:06:15 -0700 In-Reply-To: <20220501060615.1694317-1-maskray@google.com> Message-Id: <20220501060615.1694317-4-maskray@google.com> Mime-Version: 1.0 References: <20220501060615.1694317-1-maskray@google.com> Subject: [PATCH 3/3] Revert "[ARM][BZ #17711] Fix extern protected data handling" To: libc-alpha@sourceware.org, Adhemerval Zanella , Szabolcs Nagy X-Spam-Status: No, score=-19.4 required=5.0 tests=BAYES_00, DKIMWL_WL_MED, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, USER_IN_DEF_DKIM_WL autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Fangrui Song via Libc-alpha From: Fangrui Song Reply-To: Fangrui Song Errors-To: libc-alpha-bounces+incoming=patchwork.ozlabs.org@sourceware.org Sender: "Libc-alpha" This reverts commit 3bcea719ddd6ce399d7bccb492c40af77d216e42. Reviewed-by: Szabolcs Nagy --- sysdeps/arm/dl-machine.h | 10 +++------- sysdeps/arm/dl-sysdep.h | 2 -- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/sysdeps/arm/dl-machine.h b/sysdeps/arm/dl-machine.h index a7898bf420..2a7f795e46 100644 --- a/sysdeps/arm/dl-machine.h +++ b/sysdeps/arm/dl-machine.h @@ -212,22 +212,18 @@ _dl_start_user:\n\ TLS variable, so undefined references should not be allowed to define the value. ELF_RTYPE_CLASS_COPY iff TYPE should not be allowed to resolve to one - of the main executable's symbols, as for a COPY reloc. - ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA iff TYPE describes relocation against - protected data whose address may be external due to copy relocation. */ + of the main executable's symbols, as for a COPY reloc. */ #ifndef RTLD_BOOTSTRAP # define elf_machine_type_class(type) \ ((((type) == R_ARM_JUMP_SLOT || (type) == R_ARM_TLS_DTPMOD32 \ || (type) == R_ARM_TLS_DTPOFF32 || (type) == R_ARM_TLS_TPOFF32 \ || (type) == R_ARM_TLS_DESC) \ * ELF_RTYPE_CLASS_PLT) \ - | (((type) == R_ARM_COPY) * ELF_RTYPE_CLASS_COPY) \ - | (((type) == R_ARM_GLOB_DAT) * ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA)) + | (((type) == R_ARM_COPY) * ELF_RTYPE_CLASS_COPY)) #else #define elf_machine_type_class(type) \ ((((type) == R_ARM_JUMP_SLOT) * ELF_RTYPE_CLASS_PLT) \ - | (((type) == R_ARM_COPY) * ELF_RTYPE_CLASS_COPY) \ - | (((type) == R_ARM_GLOB_DAT) * ELF_RTYPE_CLASS_EXTERN_PROTECTED_DATA)) + | (((type) == R_ARM_COPY) * ELF_RTYPE_CLASS_COPY)) #endif /* A reloc type used for ld.so cmdline arg lookups to reject PLT entries. */ diff --git a/sysdeps/arm/dl-sysdep.h b/sysdeps/arm/dl-sysdep.h index ce7a84a7de..3099ee419f 100644 --- a/sysdeps/arm/dl-sysdep.h +++ b/sysdeps/arm/dl-sysdep.h @@ -21,5 +21,3 @@ /* _dl_argv cannot be attribute_relro, because _dl_start_user might write into it after _dl_start returns. */ #define DL_ARGV_NOT_RELRO 1 - -#define DL_EXTERN_PROTECTED_DATA