From patchwork Thu Dec 21 03:42:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "H.J. Lu" X-Patchwork-Id: 82622 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id E51A6386187D for ; Thu, 21 Dec 2023 03:42:28 +0000 (GMT) X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-pj1-x102d.google.com (mail-pj1-x102d.google.com [IPv6:2607:f8b0:4864:20::102d]) by sourceware.org (Postfix) with ESMTPS id F32FE3858286 for ; Thu, 21 Dec 2023 03:42:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org F32FE3858286 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 F32FE3858286 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2607:f8b0:4864:20::102d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703130136; cv=none; b=fqvl2INCg635VhS7GyQKQawymO2KXrgFq4sRXUw8bUsR0TF2WDD5WO8oZVIcvVvQU8KIxdHjrVGKGqXaNWxygjL3ioNbb1bdg6HeD8qJARm02/X1zBWrBQKOm3e5RH8aD8tvFmgCxQ8VORN/iW9IxV+Ca9WZw4vZZq/hXdaIDZA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1703130136; c=relaxed/simple; bh=xbm/f1bHoqEs+qPpM2Qh3fNOkinsM9d5vWDIz1OFJWo=; h=DKIM-Signature:From:To:Subject:Date:Message-ID:MIME-Version; b=vFYi8iOr0uMAaajmO1VPLsQt8kJQ8GU32ULhDzsSo5noUr+MlHOBdG3V6TSJtXJaZ1VtmOme46qg8ndqNaM5k051jHK1jjp7dN6VNxhbxhmucgq6QPN58Z0jRmUfhsNppxAcePUfRW6cSUq3a5VP55+lNr+CJZzZ2rcu/2BGhYU= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-pj1-x102d.google.com with SMTP id 98e67ed59e1d1-28beb1d946fso307739a91.0 for ; Wed, 20 Dec 2023 19:42:14 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1703130134; x=1703734934; darn=sourceware.org; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:from:to:cc:subject:date:message-id:reply-to; bh=fzQNanPy8gpoq6mjMioLPO4UfKwP5MsrqPsAfJk9Doc=; b=SCl2uULzlfHJtJdymzgAjDFdGquiIDJ18eNHhtEwfLF0eRljQJjKR5X0LPXxRjhdvc rxF/yUOuermb5MH2Ln9o3AZ78T5MQgKUq39g7MdcCzvLxPA5VDnBo33xQnUFG41yj9PH RksBZbFLaYpXFOuFNZ5VltRAO3RLH+oMP9M2ALimQML7imAUg/TJcoJvWvH+fgoB1bI4 64giKPy1L0iO8uaZb7oVbOeNBRjYMJuKuI0bA6mZPoByTQgg/WnONLtYs9yQbX6q3JTB euYkrfuhZMzAsIszWMnzBHz/73Dr+3nIjq6yMqoH2f27Br84yo5pUp6a4wIYBj7ABwdi m1uw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1703130134; x=1703734934; h=content-transfer-encoding:mime-version:message-id:date:subject:to :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=fzQNanPy8gpoq6mjMioLPO4UfKwP5MsrqPsAfJk9Doc=; b=n2cWJUtxBFL4JKsWjEEYkgWPitDXy9dozQZasjMSwuAQ454CEefwCZZpryRvQr60YT eR/BdWltH2VmgU6jMt3aZjWD5NzVnb8/CqdeSuq4ioPGLS19pKNdMid40PWgHGG9iub3 uyNMARlZgfRDLAr+//czcGd3hjJa1JFuu7kCamgWDOKdpg/bhnf6BC5OdGG5k8ikvYSp Fj+90R3JcBabK+QDZrWX0RV6uXno0s+vjbP3TFJ/az32WLNJb+nfDiar6gx/sPhp8sFZ JdL8COlIMOG0pNvvj89kJImWb4qPbSg0JFYpkbKzH7qeIVwezSjHwro9SIFPhYS7p+dv usWA== X-Gm-Message-State: AOJu0YwD/HQdfPubCOiA5NhbiGScctcSg4Z2KIKA/fFRUEAxQVPAl2wo mG+Sg3wpAx8fSLB8OhVq6BEOAy2HMXM= X-Google-Smtp-Source: AGHT+IFGxYxazZumWwjhb0N75IryAQTd3wiwdDb/GXN755en2S+3rTfyRKAssR2RKfTGwex+d9EU4A== X-Received: by 2002:a17:902:e749:b0:1d3:e555:2519 with SMTP id p9-20020a170902e74900b001d3e5552519mr3842872plf.75.1703130133587; Wed, 20 Dec 2023 19:42:13 -0800 (PST) Received: from gnu-cfl-3.localdomain ([172.59.129.147]) by smtp.gmail.com with ESMTPSA id b5-20020a170902ed0500b001cfd0ddc5b9sm472600pld.262.2023.12.20.19.42.13 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 20 Dec 2023 19:42:13 -0800 (PST) Received: from gnu-cfl-3.. (localhost [IPv6:::1]) by gnu-cfl-3.localdomain (Postfix) with ESMTP id 195777402D7 for ; Wed, 20 Dec 2023 19:42:12 -0800 (PST) From: "H.J. Lu" To: libc-alpha@sourceware.org Subject: [PATCH] x86-64: Fix the tcb field load for x32 [BZ #31185] Date: Wed, 20 Dec 2023 19:42:12 -0800 Message-ID: <20231221034212.2608829-1-hjl.tools@gmail.com> X-Mailer: git-send-email 2.43.0 MIME-Version: 1.0 X-Spam-Status: No, score=-3024.7 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, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.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_tlsdesc_undefweak and _dl_tlsdesc_dynamic access the thread pointer via the tcb field in TCB: _dl_tlsdesc_undefweak: _CET_ENDBR movq 8(%rax), %rax subq %fs:0, %rax ret _dl_tlsdesc_dynamic: ... subq %fs:0, %rax movq -8(%rsp), %rdi ret Since the tcb field in TCB is a pointer, %fs:0 is a 32-bit location, not 64-bit. It should use "sub %fs:0, %RAX_LP" instead. Since _dl_tlsdesc_undefweak returns ptrdiff_t and _dl_make_tlsdesc_dynamic returns void *, RAX_LP is appropriate here for x32 and x86-64. This fixes BZ #31185. --- sysdeps/x86_64/dl-tlsdesc.S | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sysdeps/x86_64/dl-tlsdesc.S b/sysdeps/x86_64/dl-tlsdesc.S index c4823547d7..4579424bf7 100644 --- a/sysdeps/x86_64/dl-tlsdesc.S +++ b/sysdeps/x86_64/dl-tlsdesc.S @@ -61,7 +61,7 @@ _dl_tlsdesc_return: _dl_tlsdesc_undefweak: _CET_ENDBR movq 8(%rax), %rax - subq %fs:0, %rax + sub %fs:0, %RAX_LP ret cfi_endproc .size _dl_tlsdesc_undefweak, .-_dl_tlsdesc_undefweak @@ -116,7 +116,7 @@ _dl_tlsdesc_dynamic: addq TLSDESC_MODOFF(%rdi), %rax .Lret: movq -16(%rsp), %rsi - subq %fs:0, %rax + sub %fs:0, %RAX_LP movq -8(%rsp), %rdi ret .Lslow: