From patchwork Fri Mar 27 14:10:11 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132370 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 28F9A4BA23D5 for ; Fri, 27 Mar 2026 14:11:13 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 28F9A4BA23D5 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=dQbFs6AP X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by sourceware.org (Postfix) with ESMTPS id 9D6A94BA23E7 for ; Fri, 27 Mar 2026 14:10:14 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9D6A94BA23E7 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9D6A94BA23E7 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::330 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620614; cv=none; b=ndzOYCcLcLFUPszC5bLvDIIM3TO3rxX93di28egNfGyNqE+Widycpet4NAtYuPh6Bwg8a2GyG4Hc3lgrhUIbpVMIHW+RS34Ik+4bgFe2x6iCMqBysraT8belwgWCgyC7d40+daxjVgQRfni+TV3zTSH56PugvUPKs+cQNZxIGy4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620614; c=relaxed/simple; bh=Iq+U45XfU+NOviu5ZzWuSxuL5PomtFlJrTuCma1/oq4=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=iwFJC96MJukcVjbL3fA7KPbATGuS9VAmcjjs0unGN+kPiFRCdCSPVuIEnjv0yG0BKlPTvaMRLjCXKPG5sGW8NKeifBFBqgSKUoqBCLYiVtJXrr7jY6zEzV6eLNcH+sCNQmA78Y3BcfKAnW6EjQx8ZsiYR6OhXCSFT93QW/NDZ74= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9D6A94BA23E7 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-486b96760easo24266755e9.2 for ; Fri, 27 Mar 2026 07:10:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774620613; x=1775225413; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=1dRfbb3RQANuUfFAdrybOWA+i5gDCLppCL+PS5QqyuA=; b=dQbFs6APihiTM8yM624phOoyE1V3cl3RprJqyAqRb7DrLCM8pkObyOipeFmBIQiAEF D9Yy35SQzJ5rm8KUtDaUUIq+6U90VpRDOQUt3NKYTZacu6wRXPXuJ2H8ytynASKbwtBj nvfKZON4aoAfyyXqfYI+oqCWKhpYcfMSPi6QznMkJtMVDZrjRbuw4llInkudfJyV32m9 C3pa4MijTa7s7IgyI9WGBZ0UDO0QMy9G3FLgBJbwXrYhpeU9Wi3t8Q+ppvVXlC0Fhg+1 fiGt1YbPifkGrddqUa8OVmgN2ONXCUJJSnrK8g8jIgXvQcUIGeYA8vInnXhrIZFJOGJf xQ2Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774620613; x=1775225413; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1dRfbb3RQANuUfFAdrybOWA+i5gDCLppCL+PS5QqyuA=; b=d1aWxmrV85h4c7twPUkNkJ2ad+fAzHAJF/Y7RbML4TnMhdz6w0ZzRHa7Nv8nbJ8ui5 YxB+ucSuc0+wD9UlJ0QCUSphw1WFhVfhkw99TirbrTZKRyym69RrM4m2NeOEhHwSE20R /NYaUod7P33IXTtrz+V5ouTGGeyxpPHqGbIbNmK6Aw88UPFPnsFwIbjpqvZHWooivBmt nxopfJ+ZSlhD+KJnOu1q6L8jPDayyherbWqvTROJ2MC/X0swBsyuLaVExvwX6soDBjzq 3klUPLwlh4Ot0LrKVHwgPKGN3FCcRVKztdULjgt3W8BJJOqTSmdX8LRbh8zbR4ZwKPto OQ7A== X-Gm-Message-State: AOJu0Yy8vUVKKLFJJ8e23aNGNs9aORdmYT2Em2H4uOvc8hwxWRcJEj2J JiwdgAzaArtpeK89P4N6S76HTlxadZ0bTug3PhKzSheitBab4nBOj9yd6I+rpjnePH6fjSuKfQA NIrB6sw== X-Gm-Gg: ATEYQzwgQAuk5LAWlTkJEaKHvHvcgQzVOct0Asos7Jb5zVV4GWAD3+4a+V14Z4RhLFq LzbEY7Il+19vrlU7ngGR4rUjKRALS9x65yMITEEAbL0ZSPsQ2hm8SgAMKicWbUlQI94fMdocQ8o shMVyvapPPninE28ElzyI/pGkXe5uP6xhIfjTQdUXX1/fRPHe+PZKn+CjevB4OQef2FNhuueVev e/d8pRpf5r0sN7vLdrnV5sBzPWIMds4r9d6NL+xN/+/dy54h8EwLDTEk2ABx7L/dk4rpp0lDbgb cPmnwYu9hVYzipi1CMkAV1UBDPifeoajoduu4fXXr/YBqtoNe/CAxuZrhD+z4yEhI9zMw/R76/S 8SqrJpH987FzNrx/fAL+GQg15uTolrugSuutd0OZEd5U0mF++HWxSb2wzcUdE0awdHg9gwQgj/1 emEqQsOuKJobrj6tXc2/le4Oy/0bt/BQiud/jdGzF3qrGdJBcyoyLJIaDmizgXKX64dE5NZHH0g UnHZBcScLnOQf2d975zYex4/Q== X-Received: by 2002:a05:600c:c87:b0:486:f308:94ec with SMTP id 5b1f17b1804b1-48727edf6eemr44736205e9.24.1774620613354; Fri, 27 Mar 2026 07:10:13 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48725eb52e5sm18918075e9.7.2026.03.27.07.10.12 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 07:10:13 -0700 (PDT) Message-ID: Date: Fri, 27 Mar 2026 15:10:11 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 1/8] gas: have print_expr() recognize O_index From: Jan Beulich To: Binutils References: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> X-Spam-Status: No, score=-3016.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLOCKED 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org If expr.h is to be trusted, ->X_add_number shouldn't be taken into consideration here. --- a/gas/symbols.c +++ b/gas/symbols.c @@ -3370,6 +3370,16 @@ print_expr_1 (FILE *file, expressionS *e print_symbol_value_1 (file, exp->X_op_symbol); fprintf (file, ">"); goto maybe_print_addnum; + case O_index: + indent_level++; + fprintf (file, "index\n%*s<", indent_level * 4, ""); + if (exp->X_add_symbol != NULL) + print_symbol_value_1 (file, exp->X_add_symbol); + fprintf (file, ">\n%*s<", indent_level * 4, ""); + print_symbol_value_1 (file, exp->X_op_symbol); + fprintf (file, ">"); + indent_level--; + break; default: fprintf (file, "{unknown opcode %d}", (int) exp->X_op); break; From patchwork Fri Mar 27 14:10:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132374 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 D72D04BA2E12 for ; Fri, 27 Mar 2026 14:14:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D72D04BA2E12 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=XJgsBu72 X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x336.google.com (mail-wm1-x336.google.com [IPv6:2a00:1450:4864:20::336]) by sourceware.org (Postfix) with ESMTPS id 27C8B4BA23D1 for ; Fri, 27 Mar 2026 14:11:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 27C8B4BA23D1 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 27C8B4BA23D1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::336 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620660; cv=none; b=meIS+Wykvnm/2yXeJ2VwC+dWvOahJOrLKn4UosHcJXVolMlRG9dFJFqnSpCn5bDFgtxh/NLBZmYwi4oZbnfKNSpvCqeubMNpq/w9stshdZzOjNJtcQRP+d/6RtCEGe8HdprVksv0ipaQT2crQvrb9rroXbjLGGQZ7X6y8QfHT38= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620660; c=relaxed/simple; bh=MU7tbSKRtlB7fGIyR7UfygjhUcy49lTJ86PJwFs2Nd4=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=boqe5IZN9bv9hyLMd5QaTEMc7jBHKAfhujK+UIdsFJCR9XbvanJhKApWU2h6fBIvHKu3oih3qeSzueCDNsWweu1gBdwFoB2sLEj3maAH1rzruRzpneBOeqXZqJfc+a+PuD53+hd3o/+l2NE2XJjETs5h7LNbamRxexIHhqAmXco= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 27C8B4BA23D1 Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-4852c9b4158so17456705e9.0 for ; Fri, 27 Mar 2026 07:11:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774620659; x=1775225459; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=ct1rgpNrWCFm3UGSAy4W14MPr8klbFDCDD9UNTNH4/U=; b=XJgsBu72fXAekfEbiEk3DJedRYCFSCPfMJcP+DmoOIoueCpYahRBg9TelFs748tLop U/Gonfyf5mXvkv0O0jQ2Dw5f6tLeV0yvwiHZehfbT+hg778psCcYvcgv6hwsaScpyBpL pRgYiv4t7s0CZZXbvxOAeTBoXM81+kmmgxmNtCDeMKThDXSI3MuP2Cgnb0AEEyXoxEkc awBy9GIoW3RsAXeWVI3OJ1DAo96/2R/C3MpT4eM32SndVVkNrSOio5sG4V7IVgaT3JXM 0Ys5VAqxIQ61tKtbJcqc0oohcnl6wUn0ss3n0yp6lgHnP4Q5a+J6vAVLaQKoc/l/UlhQ idyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774620659; x=1775225459; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=ct1rgpNrWCFm3UGSAy4W14MPr8klbFDCDD9UNTNH4/U=; b=pDidppV3PlnQpG7kc3PSJd9ZoSEYqmssXxFnNB0gY23eOtqyvaNc1KCrbU231D/CBO cjv5kBUFcGl7HK+weAVx+slbJqax43IVB3yO7xaGEo9RHf8TNPrbem8lm1Yvsl5X/q1a 5p45dnnK9s1B+JHvF1Xbk40K6gng7+WnJ33hAkZUnOHEPiuZtXNBlHnpNk/1z5t+HWSY e9oC4IqfzptpOR38+ZwPpq9tuNIaEw4PVYuzCFsr25Dort6Y0zgCCw1O5CFBzEsQqD5c aL3hb2iEx+KtTrb/lM+xu5GCP9arHGdbHx4r3ut7WWg3mKOtK39Jf7qBT5x6xNzRYulQ 8mKw== X-Gm-Message-State: AOJu0Yy60eiHCegbcYq/et+U8g6x4nm74lTi4bnOy+914czW0PCAOQU2 NbdKx/IKQTvhZky1/PXMj+9BkxjlyjAq5wdUWyJITw+HltLAxKm0mi2pNWBBfva1h9FzFg3pcj4 jfqhv2A== X-Gm-Gg: ATEYQzwnDh2EG5rxq+STwTB9Gn9H5USoRATHWAX2N1kOIn1jfV76mHF0uxWXQPCHlt7 TUYLQwUc4y7tyyFM4qPBd55lopenyb9Z/W7EfgrijtSjUXZX6sbzz1nLXAFiyhsGIGrzUSrkE09 8mrar6J+Mc6uxoC5Eyw6OB0iA5Lfm2cvmX6FemO5AtOyMjwrDRTDRWqEWG/dC8Ny65xLraTAN1M J5miNbC6D/zeYhmC770AQMylm8oqN6nW8o30UVMTCRzRvLC3WmctUaGcXfJPeIwIue7H7MEK4dA syBhXJraDfbCpsBy7+9b12rJH2A88ggWMsCMOHpPlVvB3e1nFkJqT3riNdbGjEwbAG0Difs7bWb 3wDQLFJLJ0dde3qR0F/ycUk135h/GVOUYMah5k7B9h91QSDVnUKU7WE+DSCG1vYZOtif2LrZLzY 7v4vBvQw0nWb0chU5/obu6BpRcEtMHouUPX/DmxSr6hG8uA7xTcOvbjzoez5+e7OyksoPH47s3p yYfFuXs2viZ3vk= X-Received: by 2002:a05:600c:a12:b0:485:3b50:fe54 with SMTP id 5b1f17b1804b1-48727d631bamr46879885e9.11.1774620658943; Fri, 27 Mar 2026 07:10:58 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48722c95041sm91795035e9.6.2026.03.27.07.10.58 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 07:10:58 -0700 (PDT) Message-ID: <96b53b35-ba21-4549-8c9e-8001d6de5b2a@suse.com> Date: Fri, 27 Mar 2026 15:10:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 2/8] gas: distinguish local symbol flavors when printing symbols From: Jan Beulich To: Binutils References: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> X-Spam-Status: No, score=-3016.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLOCKED 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org Ordinary symbols fulfilling S_IS_LOCAL() criteria aren't the same as local symbols. Make sure one can tell them apart in print_symbol_value()'s (and print_expr()'s) output. --- a/gas/symbols.c +++ b/gas/symbols.c @@ -3189,7 +3189,7 @@ print_symbol_value_1 (FILE *file, symbol fprintf (file, " frag %p", locsym->frag); if (locsym->flags.resolved) fprintf (file, " resolved"); - fprintf (file, " local"); + fprintf (file, " locsym"); } else { From patchwork Fri Mar 27 14:11:18 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132372 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 EC5B34BA2E14 for ; Fri, 27 Mar 2026 14:12:26 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org EC5B34BA2E14 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=TLqmXaL/ X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x42b.google.com (mail-wr1-x42b.google.com [IPv6:2a00:1450:4864:20::42b]) by sourceware.org (Postfix) with ESMTPS id 1BB1E4BA2E1E for ; Fri, 27 Mar 2026 14:11:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1BB1E4BA2E1E Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1BB1E4BA2E1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42b ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620690; cv=none; b=M7MaEt/8b1cT+PFTuli6ffk/i2RmYDROSZ6ViyqcxZwS+JgG9kHAtSNx8o+H/cMpF1Zt5iXfZ9NiNC1m6v5I0lbUV/w8KOLR8AckQemLY9WLVLxdK+LL6EeK7mOJi1FF6IRTCpcF2QkFf8PCI6+3zIFdzr/1gxY/3CCzc2PCwQc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620690; c=relaxed/simple; bh=AiIkvHZYwPetOQoj/vcKpuS8BBVM22k6Oy8nh2DCf0g=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=WwWUW3AUfJNXr8nLq8sbTNa5kLYOWYYPumcQpX0IZyv2alkBftZ/sd9GY2++NvQ1mVWyxxMzjMTjyp17CLNteYoNsLhGd+toWb/iry00/gUfcFJkuLYsO9qJh6ZffXDfqGF/aua+RV/yPuYFie6VwTvKoRQaYGTYL42uCWja+Co= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 1BB1E4BA2E1E Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-43b4f48c47cso1576469f8f.0 for ; Fri, 27 Mar 2026 07:11:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774620684; x=1775225484; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=v4x7njyxNHhbsTawsrW2vjbRs4XMxJYA2XJjfAgzztU=; b=TLqmXaL/lh7r86KmJu1qr1XEM/m0bqTXgsSxfmmucdrSw92MP4guq6oAnHXYWM+49W DzLGHuSQlv46Rop6RB3rqeGc3Y6eR8XQ3WdUphslm2FtGSLvgeqp9sIkPJhl4MGR/4dv mUHIqiFGqarpXknlS8477GBelBNU5pwElGN6GzEvoR8wr2pHTS2/GZkgQ9A2elPH/NUJ L1gBefnR7rwMGGe1kcezOzP/O8sPje4nEq64soQ0nGy3Fk7LZvjZ9wqKNMr8bViSn3Wq 2E1fdfktYujUkXyOfx88mTyGIbDl5XFUHVBaKxWyKx5P8RPksQBqz3k9AtSdEW2dxCHO uM5g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774620684; x=1775225484; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=v4x7njyxNHhbsTawsrW2vjbRs4XMxJYA2XJjfAgzztU=; b=QdXOsrN6ruDZMYS/ly5/cLabxB94iKXXdZmqHj7Dmf4bWL5DvtESw7svxYD/TIg1Ts JfQak2q3zzqr71SMMDS6dvJqBhgHkuzlpnQ2OcHdunZFKj/mKF/Jryt/z/9SFSm6aCGs 9AWxmkU+H/9s/phhXqnKUeKw7f9qhQoXUWekaPhJw5OYKE0TAfAPWzSUDotVQnkEOCgu JTkJY3jht6oZwvJ/ml3zrgxzw2PnJUkbplTrgX3HYUfFw263iDp2KrwvWDJw1yaXWQ+/ GATLy5/EObzPI4JC1NVlA/RS/GOABW+POeU2OBIZHTBTR6U0EYM/xLX114QThGc8k1XP MhZw== X-Gm-Message-State: AOJu0Yzu2dBOYyhAW0G0GtwjDxn+y3gceAzV5mHoaBI4n5cwPh3F1FsH GAvMMqifDp8tgaCxLJJn5bcRDh4MOJOrWY/I5IS+rk8I9p6v1bvhFizjA7KBwJOG55PVJ+wPY70 i6zMuMw== X-Gm-Gg: ATEYQzyzDwV0kd19k7yy/aSKmMYSzMGe0A9VmZ1rsmxl6hF9Kqt6FxpwQWy9QCzHDO9 EzMcrESIJfyy1SDWyKvino2gsC2iNxXpjguXvLf0IOwYyIB9yTLbbEMkJUXiU4YggaTolD+5OI0 1jEBGw0O5HtyKg04+5ZRgEtFmKy6NlU6Co3PjksuwPty2IgD5HDUCKFJ6A0+CljhCgQAgFm0J51 /9zxrv0AYjPavuozBKed9Jc3xrWStv56Pc7dmBs5TWBDk4Rx7Gaxbwz8UlO8pvkIoOZSTyfaIKI oEP+YYhxqEy3Rme5nj8UUJZ4inbqKnSk71fg7MGzprGs6WQqmFNIVBff7NAmk7GXipc4qotSq/J YXfTEL2aDmmi8MEBLMyt8X7bOEDJ9/7QiXvzWdO5cFOsMIhFMpDKKoA+ipBYFWRDAPkAHwxeWMW cYDUKzVUGUhv44zqwDSnulmiLss9X4pp+EIonDg94SFxhqNrGUbZEaX0BSX/ET5EyRo/cWubTfD BTkMDHZdqke32g= X-Received: by 2002:a5d:64e6:0:b0:43b:5037:7ef3 with SMTP id ffacd0b85a97d-43b9e9e8bdamr4161223f8f.20.1774620679875; Fri, 27 Mar 2026 07:11:19 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43c9876ffafsm253925f8f.37.2026.03.27.07.11.19 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 07:11:19 -0700 (PDT) Message-ID: <4b40e069-93ad-43ba-97e6-8732f0d9055d@suse.com> Date: Fri, 27 Mar 2026 15:11:18 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 3/8] gas: print full-width symbol values From: Jan Beulich To: Binutils References: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> X-Spam-Status: No, score=-3016.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLOCKED 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org The true (rather than truncated) value may be relevant to know if one is already resorting to print_{expr,symbol}(). --- a/gas/symbols.c +++ b/gas/symbols.c @@ -3227,7 +3227,7 @@ print_symbol_value_1 (FILE *file, symbol if (s != undefined_section && s != expr_section) - fprintf (file, " %lx", (unsigned long) S_GET_VALUE (sym)); + fprintf (file, " %"PRIx64, (uint64_t) S_GET_VALUE (sym)); } else if (indent_level < max_indent_level && S_GET_SEGMENT (sym) != undefined_section) @@ -3235,8 +3235,8 @@ print_symbol_value_1 (FILE *file, symbol indent_level++; fprintf (file, "\n%*s<", indent_level * 4, ""); if (sym->flags.local_symbol) - fprintf (file, "constant %lx", - (unsigned long) ((struct local_symbol *) sym)->value); + fprintf (file, "constant %"PRIx64, + (uint64_t) ((struct local_symbol *) sym)->value); else print_expr_1 (file, &sym->x->value); fprintf (file, ">"); From patchwork Fri Mar 27 14:12:29 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132377 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 ADEDC4BA23F4 for ; Fri, 27 Mar 2026 14:18:05 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ADEDC4BA23F4 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=YJNDsiNx X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by sourceware.org (Postfix) with ESMTPS id D24134BA2E1A for ; Fri, 27 Mar 2026 14:12:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D24134BA2E1A Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org D24134BA2E1A Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::42a ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620752; cv=none; b=oKw/kPOuoqigF/ZQ/LfHG370earYr5CEqZSWtkzdwvMUnD0ykDhtMarTqVsi3GFUDUCzVWL/XXXrEj69bBrOq18h/XjL1vdPlQ9W4c+M9zlX7fAH4NwcqZp5IWsGSi7iEqYhIFRvTJpJBHKkvccgfxwavFAjS0ExGUevralc6bM= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620752; c=relaxed/simple; bh=7Y1qi7SWgrtJEjL3AspOKk7ND03JIlHAjDpAXgXRYeA=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=Y4Slf6B+fFIQDdzwoxFzKgKFuSvG8D+3kFck7lGZuSiPJcV4TEId7BxOV0q3CterXmZz72VxO91/CUzXXzAFbT750UNZxiEM2hel7pX9mJ6gyYUPxFDJ4k/N7C2Nozzj0d9kH6JlETIHEVXaUoMcLpLQFL3Ami06jjITOLtTVc8= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org D24134BA2E1A Received: by mail-wr1-x42a.google.com with SMTP id ffacd0b85a97d-43b41b545d9so2235098f8f.2 for ; Fri, 27 Mar 2026 07:12:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774620751; x=1775225551; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=/w5ro2mkBYT8/suCErt1KFmb1y/JHT1fh3a2MXRe39A=; b=YJNDsiNxj06wiX28F4L4FH9ZR5K3xLIsvDY63PwwDUNoQ51eytJrkR/a1gQcU+e48V sy3T8mnWLXWkF3vk/XmWJVbU0Q5aZHnDBwlniD9Ji1YkamEBB9edTZG2gNc2ew2t6kxc lHfuki/s78DFrzgvSx0p534N4UfW7b/AvTFVDCswkU4z1lcvFfvhcnnHXIuFloaLjm21 HE85TfOzs0SilQ+wQWK9pHRe1rihtlUNdrc2f+u4CBnV0++8ncuKMzTxDcut9GX6WSTb CDqc9GMjwC2GnhYBJCvFRxM87RiVu/3ZuaOO/wbVacBClGpEkCj6ey2YjWBUWeLSeS6S sLQA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774620751; x=1775225551; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=/w5ro2mkBYT8/suCErt1KFmb1y/JHT1fh3a2MXRe39A=; b=b+NqIc3OGNYrVqlSmK7JvHBPWrg1Q5cq/AwZUODy46uXT/rppuQknVC50q8RULPgev HzEFgDqDB02eENxPV0PtgRKIsGZDYeVN4MjaDlH7fR912laWC35zhWwF4YjTQjinKLBZ b1B0EfBr1w87Oyr9oLGypuE3TKgS0Ww7ILN2hQusQqi7zjkd+1UlCy2V7BzQEHNULB3g aJu/qtyxrRfLbH42pQkuqBe61Iw+1kf0WvhGBMQD11UaaolllMKXLUYzjswd2adfyD87 zGpCGGB6+jS/X23hED++CKmfFN0GE2Hv5EhtlesWM+FvoCW+iGatDDNCSgqRnb3guu28 WAyA== X-Gm-Message-State: AOJu0Yw1uSsvldNvK1e5XqqujEeaXP1pUaeq+IZ9gzVkNZKNMYVd8eZM XA41Y9oQTvEbTTuiJYEN8H2KrSbtepuSKCuKMN8yhboB4D0om4VH163gSXcq2vSuuNeWVyBmf2G 6DR8+eg== X-Gm-Gg: ATEYQzxAbcqC7nFya+aqtaf7mWLXMQvAcbZfiH07GgURl3fmiPxYnhEXrT+r3ItH3b3 IBvd7A9f7jKRQKIhAQmWIaPF46ZRhNF7NJ+uf4iBne3HYCem0BMwa6abtRQ/90GU+stYV7WR4c6 /CguILt5e6AqTqcLTNvx/Kmx0D3z1HjFYha2tHqRnKN55V5gKoNXKWEGHTKfTO5bL9ZIJYsKXVr 5uV+/ytVqrjcLg+KPMcI4oG/RsE3v5zKq4s8G4aDt21w8lfLVJRaFK9VVRHsRUgg8Vi/79MXsR1 Hc5taOQlStM+Wn3AoFB346/rX1fvDBfjYQyy7QuLnLGwr/0eaiwmgUvd2eJ9RbJOMQhjGWK0cOO fLNfkh/iP3orAgyJ0Uh00IEsFD+Trk9bVoMKjEfj1c/AK4Qs17JuI64YdjzkHrQzHoLl0UJ7Kzm FjervbF32n4hrPKUbX4tys360le48uD5ZbbAlY/XOPXYv4RUhgNOxGluF60h05AhWGGCXR65xlR C7iygx4WwMmkGI= X-Received: by 2002:a05:6000:4212:b0:439:b6ae:5d5f with SMTP id ffacd0b85a97d-43b9ea6267cmr4114164f8f.36.1774620750544; Fri, 27 Mar 2026 07:12:30 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b919cf2bdsm16166385f8f.21.2026.03.27.07.12.30 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 07:12:30 -0700 (PDT) Message-ID: <617d6e4b-4055-4dec-aa23-2a7681d659ba@suse.com> Date: Fri, 27 Mar 2026 15:12:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 4/8] gas: don't fail due to local register symbols From: Jan Beulich To: Binutils References: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> Content-Language: en-US Cc: "H.J. Lu" Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> X-Spam-Status: No, score=-3016.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLOCKED 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org The diagnostic text as well as its origin are pretty clear: This is about global symbols. This is further supported by S_IS_LOCAL() returning true for symbols in reg_section. Add the missing check, adjusting the testcase that was introduced back at the time (where the sole diagnostic originally issued was therefore wrong, while other diagnostics were missing, but got added thanks to work done elsewhere). Further drop the bogus trailing .equ in another testcase, which were apparently put there to avoid tripping this or some other undue check (albeit no error surfaced there already before the change here). While there also fully eliminate the redundant "sname": There's "name" already, getting set up a little earlier. --- For context: There's a pretty deep reaching issue in x86'es Intel syntax parsing, fixing of which would expose the issue addressed here by breaking (at least) the i386/equ.s testcase. If it was the "global" in the diagnostic that was wrong, i.e. if we'd want to error also on local register symbols, this check would need moving past the subsequent check for symbols wanting removing: If in particular S_IS_LOCAL() would cause the symbol to be dropped anyway, emitting the diagnostic would be wrong (making it entirely impossible to use register equates). Really this is also the connection to the Intel syntax issue mentioned above: The parser bogusly fiddles with equates when they're used, and once that's corrected the check here would trigger for any such equate (as it did already when an equate isn't used anywhere). This may actually be only a special case of a wider problem. Equates can be about any expression. If registers are involved (no matter whether the recorded section is reg_section or expr_section), surely such symbols should not only not appear in the symbol table, but also not cause errors out of resolve_symbol_value() (unless appearing in a relocation or being global)? There's also a listing issue lurking: Without the "nop", the diagnostics aren't (re-)emitted as part of the listing. Plus of course the first three shouldn't really be at the end in the first place. --- a/gas/testsuite/gas/i386/equ.s +++ b/gas/testsuite/gas/i386/equ.s @@ -59,6 +59,3 @@ _start: .if s == x .err .endif - - .equ r, -3 - .equ s, -3 --- a/gas/testsuite/gas/i386/inval-equ-2.l +++ b/gas/testsuite/gas/i386/inval-equ-2.l @@ -18,10 +18,13 @@ GAS LISTING .* [ ]*6[ ]+\.globl bar2 [ ]*7[ ]+\.set bar3,\(%eax\+1\) [ ]*8[ ]+\?\?\?\? A1...... mov bar3,%eax +[ ]*8[ ]+.. +[ ]*9[ ]+\.globl bar4 +[ ]*10[ ]+\.set bar4,\(%eax\+1\) +[ ]*11[ ]+\?\?\?\? 90 nop .* Error: invalid .* relocation against register .* Error: invalid .* relocation against register .* Error: invalid .* relocation against register .* Error: can't make global register symbol `bar1' .* Error: can't make global register symbol `bar2' -.* Error: can't make global register symbol `bar3' -[ ]*8[ ]+.. +.* Error: can't make global register symbol `bar4' --- a/gas/testsuite/gas/i386/inval-equ-2.s +++ b/gas/testsuite/gas/i386/inval-equ-2.s @@ -6,3 +6,6 @@ .globl bar2 .set bar3,(%eax+1) mov bar3,%eax + .globl bar4 + .set bar4,(%eax+1) + nop --- a/gas/write.c +++ b/gas/write.c @@ -2396,24 +2396,22 @@ write_object_file (void) if (symbol_equated_reloc_p (symp) || S_IS_WEAKREFR (symp)) { - const char *sname = S_GET_NAME (symp); - if (S_IS_COMMON (symp) - && !TC_FAKE_LABEL (sname) + && !TC_FAKE_LABEL (name) && !S_IS_WEAKREFR (symp)) { expressionS *e = symbol_get_value_expression (symp); as_bad (_("`%s' can't be equated to common symbol `%s'"), - sname, S_GET_NAME (e->X_add_symbol)); + name, S_GET_NAME (e->X_add_symbol)); } - if (S_GET_SEGMENT (symp) == reg_section) - { + + if (S_GET_SEGMENT (symp) == reg_section + && S_IS_EXTERNAL (symp) /* Report error only if we know the symbol name. */ - if (S_GET_NAME (symp) != reg_section->name) - as_bad (_("can't make global register symbol `%s'"), - sname); - } + && name != reg_section->name) + as_bad (_("can't make global register symbol `%s'"), name); + symbol_remove (symp, &symbol_rootP, &symbol_lastP); continue; } From patchwork Fri Mar 27 14:12:57 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132373 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 6B22D4BA2E16 for ; Fri, 27 Mar 2026 14:14:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6B22D4BA2E16 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=SP9srHER X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by sourceware.org (Postfix) with ESMTPS id A4DA84BA2E3D for ; Fri, 27 Mar 2026 14:13:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A4DA84BA2E3D Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A4DA84BA2E3D Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::335 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620780; cv=none; b=IlXYVdnFrZsdkIDaEibKZUh841Nzn6JYC36GlAphv8jzBmkS+izdAimPSGh45yX6QRMtLiq2CzOXYLJmH23oEi98sK0wBfRt5082knspq3JRRX6nadq94iaEJ6b4BWvuX0G2apP2+hlSxxgQtBER5Cz7LtnXM4T2uGOIku9e674= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620780; c=relaxed/simple; bh=YUD6zlwKqw8eteXKMvJ/EFDWfYOx2cgaLGd3dU8Gpho=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=s0ZuX1waM/S+kaSu7sDd2CyEBNfsXc9r/g+OO71tqBInLecnUyxc7tQ9RqUeLZzhaOco3Aa/G5DftxgvWkCoIrDhF3Z3KBekVpVgH6CobN8YEvCovupQAdwhObOqh++Jn0Vd6dH+miATze22C7efmEMgesIAZtrAc1zXPfXmmm8= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A4DA84BA2E3D Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-486fd27754bso20301555e9.3 for ; Fri, 27 Mar 2026 07:13:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774620779; x=1775225579; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=xKUgkTku2PoCtiz5JaMc1Ye7b+LZEK/zxJtVgXG7sno=; b=SP9srHERH26nM29wcXRPJPkoY+OmDAD/aN7+vyIAIhLAwvFRja6dUA0mJKASaKjKnP 7q1tfMPTG4d4nrs/858AMRmv8PfYwm4dO0F1hXUu33RT08LEHRVKlNi6R1o849M2N/sl QL4IwInSMcFYKZP2sRJCm3kyti2NJ6ZXzQnZkaE1UYuecHg5lLnFbf/iQP2sl5cVNn3O iEFouhqnGEX30o6gD/uOITG4mf5MXdWjHxDsOQdp9RtTL+BRP7I+gcP+eR5Ih9TKAJoI hpRgV8lgK6ylQzIbAIBh7hpBEFVx7QWAJ/c3fcJwTr4zrSBFhEfcnzdmNA76/mIzG3m+ fzwQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774620779; x=1775225579; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=xKUgkTku2PoCtiz5JaMc1Ye7b+LZEK/zxJtVgXG7sno=; b=RKndLPKTEDexgHiqoEndbghDWwk9bj1fdG7OReu3EuwisTSICzhJL7SdXikd9CHvbF e5FFi+zpYwPqQjbGtlSGsmTmWHj5iVq5xCMPNMxxlX1RE497cuj8BmsVWIfT+fQBeBHC 8DDmyrCIDrktvf+mGEUUF61FbfoM1eeFxKaFy/C1cDYbMO86SjLm4m3v0uDw6JHn85Ix wGPkyWZIKFIeU1ZXPsOi62XQg9HCvBPWGA1eh+ZWDLpeYRa1z6aUAxiHt/Vqcu4622dc S+F6fm3BYLoecTn9KxOi94H0ReCmf87ufk75oS47BzUGYrzfpOrBfSXx1p9Za0Yel9xs icvg== X-Gm-Message-State: AOJu0YyjUuFnHwmI25By6EdpytWtfiTUBX0Qx9tlSr4Pje83vcdtHGIP t/3sX9F664viowL7+k9T1kC2Iy3no4aqYA0hqPVVeK+s7XfqSrFPnaw7qfe8TiHCZP52WK5VQR0 bh1v6Tg== X-Gm-Gg: ATEYQzz9HAOVDv/YO0zreV2zuVErN5SHcJS9MnpnEU4ngqiesWwpjoomFsPB3LIh4Sj pNFTnUeDe1Qc7shMKnYpPEAApjDUQma8mfFxGSKX5PCMGVOGzB4px238Az0BtegZMgrTDnHO18H C9tf8R10LfTtxbdb+Kwa3ylrfrfe+J09JMl8HN6sFoxJCZ2k2XXR5llgcAby06zT+1Pd1YbKQ5z HyEP3hI0bTJR7D113Pv8RI10IPHfFpVjzIwIPj8UVsDFMSWJayxt+8segcoorcfLmKEVawoTpHX VRXyl8z0hwMXz50yd8aY2zRoq1KNjHNXktAAeci+f42CmvKSpCvMzZbMzoZSjeuJjvIWhwY1PGk 8AE8Mi6dFqmN1pblv19wZqSsEM3aX/CbJeor/XxGACdhLmTqGpfreNZu+SWTW1xPhnmlAjvji6g JVPt5rr0Iz0/WN+kBHWLoXiKGVnl2cDe8r7FVap6UyD2sDU+Vbo4os9uWDC/oGjaXj7Alc1wDy+ QlVZFfLgrV+hMo= X-Received: by 2002:a05:600c:1d02:b0:485:4eaf:eb53 with SMTP id 5b1f17b1804b1-48727ec77b5mr47176275e9.19.1774620779380; Fri, 27 Mar 2026 07:12:59 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48722cb0d83sm89497265e9.13.2026.03.27.07.12.58 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 07:12:59 -0700 (PDT) Message-ID: Date: Fri, 27 Mar 2026 15:12:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 5/8] gas: don't lose addend in snapshot_symbol() when hitting a local symbol From: Jan Beulich To: Binutils References: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> Content-Language: en-US Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> X-Spam-Status: No, score=-3016.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLOCKED 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org Unlike the one in PR gas/20941, input doesn't need to be entirely bogus for a local symbol to appear here: Local symbols can be created for various reasons. If we find one, we have to take exp.X_add_number into account. Plus, like for "normal" symbols, we should not add in the symbol's value if the result (in resolve_expression()) is still going to be O_symbol: The returned value then is relative to the returned symbol. --- a/gas/symbols.c +++ b/gas/symbols.c @@ -1871,20 +1871,32 @@ snapshot_symbol (symbolS **symbolPP, val } *symbolPP = symbolP; + *valueP = exp.X_add_number; - /* A bogus input file can result in resolve_expression() - generating a local symbol, so we have to check again. */ + /* We may have picked up a local symbol above: Check again. */ if (symbolP->flags.local_symbol) { struct local_symbol *locsym = (struct local_symbol *) symbolP; - *valueP = locsym->value; + if (locsym->section == expr_section + || locsym->section == absolute_section + || locsym->section == reg_section) + { + switch (exp.X_op) + { + case O_constant: + case O_register: + *valueP += locsym->value; + break; + default: + break; + } + } *segP = locsym->section; *fragPP = locsym->frag; } else { - *valueP = exp.X_add_number; *segP = symbolP->bsym->section; *fragPP = symbolP->frag; } --- a/gas/testsuite/gas/elf/elf.exp +++ b/gas/testsuite/gas/elf/elf.exp @@ -361,6 +361,8 @@ if { [is_elf_format] } then { run_list_test "line2" -I${srcdir}/$subdir + run_list_test "equ-rept" + run_dump_test "pr25917" run_dump_test "bss" # Some targets treat .bss similar to .lcomm. --- /dev/null +++ b/gas/testsuite/gas/elf/equ-rept.l @@ -0,0 +1,3 @@ +# The line should appear exactly twice. +>output< +>output< --- /dev/null +++ b/gas/testsuite/gas/elf/equ-rept.s @@ -0,0 +1,7 @@ + .equiv n, (.L1+2) + null - .L2 + .equiv null, 0 +.L1: .L2: + + .rept n + .print ">output<" + .endr From patchwork Fri Mar 27 14:13:25 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132378 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 BB72C4BA23EE for ; Fri, 27 Mar 2026 14:20:29 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BB72C4BA23EE Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=fvmafwn+ X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by sourceware.org (Postfix) with ESMTPS id A81C74BA23D1 for ; Fri, 27 Mar 2026 14:13:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A81C74BA23D1 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A81C74BA23D1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::331 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620808; cv=none; b=Uzx5WthwYWrq6H+6tE3Key+M+z0u5CAjXQipa0yLJwEf7qrHJPSg9a2dXrJlRc9awZa911+Y+6VNDZRtwCVJmopVv3PtAt1RMbZj0NwT7Lr4Y69Tns4WU15Yz+2Sb8KLXdV2YTiPL1upoB5QJqpg+QAmg7eIXx+S+xv7Nh/0ftQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620808; c=relaxed/simple; bh=5A0MYh4yfhwFJbznmPAl0WQZ9oR+9os5odpAWP2Lmf0=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=sATyRY/QlzrZ1OYOIjVZd8cXVJDANAVGsKBnh5QhpUYJXT9CMPpv6XsN40LKICogt1yMEYSiaPCTLVHCzrqhKXIdzEeh6T4I89kfeOGgUY/lDjiMHnM8qn0HuuJjc6qXwlAQ0v5FUbDTXar7eNBMuvyUWmoQQoEa7gJDe9tM2qM= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A81C74BA23D1 Received: by mail-wm1-x331.google.com with SMTP id 5b1f17b1804b1-48700b1ba53so20701415e9.1 for ; Fri, 27 Mar 2026 07:13:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774620807; x=1775225607; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=f6OPggsMFUqsSUIlZpy2sNd52RN8/zE5+JCWGyvJ1SE=; b=fvmafwn+ZRLOb1cvleaoLKNlcsXy+Dzg+gUFSsUdtvdR6P7WXFggjWn6TbmL7hhLqQ KeEWKiyE+sKJe7ekSvIbJuWlYSeKnkc5JbKAK8U5cx3PSAN0dsHCttlG0/M+dkcNykjI O33McuCDkndAEYEwSMS9jmVsD2YAl4P5rYE7XYaqP+HkcCndkSmYpUpYRhSFqQ3UoioA BlRgOPBcgOJCXDW+726PnE6rjQOmX1y8+y3tLpHt3rtBYmOqn8kxFs26JuNfn6A3Ue5v zhwwIyC6NacIiUcYSWlv1QU+ESfMma9hM/1D1MEpTG7Qe6/KPFRUs0oP6hn6RVnfG/bl gNMA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774620807; x=1775225607; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=f6OPggsMFUqsSUIlZpy2sNd52RN8/zE5+JCWGyvJ1SE=; b=XV3MfyGpKS1tlN4YRSuvs3A64CYzFMy7Eiy2YNhAQUr6zZaKto9FxAhDoxhwCywtrD CcizPZB7Px0DbKWhSaZkDpgcHGSzkxal+y2Idoyv0AO7ZHWoK2lDFGzGvHFlECY0OE0X mm15FcReF+VGvGafwARoXGb90gLGqZMzTgMt06crW2I/DYFlgIUQ1G1Yet9ibFIrJM+G h9HoaJE3L5QSgA87mYWAJ0vDeOWbCLfy5260ZmGOMbTptJMemUusRpKAgSgjWuxT4dZZ 2NrCRysb/jaX54tV8Sj4VCQuBlGYduVXv60ZS9xnnHVOUECG7S234T3BoNlnjf+SGp/3 9pAw== X-Gm-Message-State: AOJu0YzK6t6Os7wqIUNqeISy64dQ0xcTivCtOJKu2KcYTXFGqDm9+z3W MWX4WObp7rsoDCqXBiyUVF6o0edvHq4vpKIRssH2cxLGxlNeAY8PsVzVCbkJ2/ISkqtbVduY/eG ofgRUoQ== X-Gm-Gg: ATEYQzyYuvZzSY4vlXypM2UceloWOQK6r4QBqGzjPWGw/0yLMFKyjCWAD2bdIyosOKK o/O6nP0m/bPlP0taEKetWE3Cy3Os5epFo8wCzaeMOoLTQmd47s6NpSKQp5U3siCEPQfOro62X5p gATBv69c2bjO3txnzcORQgxhUmS2xJdm5XiKw6tlmdpZQuFP3RE+TQxpF4cSh6RdLeYpb3ZmcjH mFRAR6mtAGiBMKaDXLq+W1Uj4c21vDA9f6Yhlt5Dw6w1F2t/E4qcA0W1QyWQRfbJC1wE17CGvI5 A/oycYFHedC5txAVRoPu6GwI6SqvykVbGRQ+S7PmGr86AF9ey1YxcEPv5qo5E9BOw4urpxwSRF3 xSBIPb6Eu2Q+iUjLAKtUL0/wwXOtt1igWWy3sIvVwuKeWHLj7cz1ETXiiNKJX352SC8iXviz9Lk Zh+bwQZMt11Qt7xCpaGvA9zjizrdNEDfXbK/0Ds3J3KEzoLOFbw7necQK3eVKKCF16kesKnzAfz 4rw66F85paZNw4= X-Received: by 2002:a05:600c:8b70:b0:487:467:42a2 with SMTP id 5b1f17b1804b1-48727f7b571mr44785795e9.18.1774620807377; Fri, 27 Mar 2026 07:13:27 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-4872712b2e7sm16735635e9.17.2026.03.27.07.13.26 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 07:13:27 -0700 (PDT) Message-ID: <58a1afc5-183f-483a-ba48-1e7f30f88675@suse.com> Date: Fri, 27 Mar 2026 15:13:25 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 6/8] x86/AT&T: make GOT-relative expressions work From: Jan Beulich To: Binutils References: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> Content-Language: en-US Cc: "H.J. Lu" Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> X-Spam-Status: No, score=-3016.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLOCKED 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org The expressions used in intel-got{32,64}.s should equally work (or not) in AT&T mode. Changing the Intel syntax parser such that O_symbol wouldn't happen to be wrapped around such expressions breaks it there, too. It really isn't correct to limit this to just O_symbol. Permitting O_add and O_subtract as well requires taking care of the other operand as well then. (Strictly speaking non-zero offsets aren't very useful here, but then at least with an equate of 0 this ought to work. The non-zero offset in the testcase helps demonstrate that this offset isn't lost.) --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -15081,13 +15081,26 @@ i386_finalize_displacement (segT exp_seg || i.reloc[this_operand] == BFD_RELOC_X86_64_GOTPCREL || i.reloc[this_operand] == BFD_RELOC_64_GOTOFF) { - if (exp->X_op != O_symbol) + if (exp->X_op != O_symbol + && exp->X_op != O_add + && exp->X_op != O_subtract) goto inv_disp; if (S_IS_LOCAL (exp->X_add_symbol) && S_GET_SEGMENT (exp->X_add_symbol) != undefined_section && S_GET_SEGMENT (exp->X_add_symbol) != expr_section) section_symbol (S_GET_SEGMENT (exp->X_add_symbol)); + + if (exp->X_op != O_symbol) + { + if (S_IS_LOCAL (exp->X_op_symbol) + && S_GET_SEGMENT (exp->X_op_symbol) != undefined_section + && S_GET_SEGMENT (exp->X_op_symbol) != expr_section) + section_symbol (S_GET_SEGMENT (exp->X_op_symbol)); + + exp->X_add_symbol = make_expr_symbol (exp); + } + exp->X_op = O_subtract; exp->X_op_symbol = GOT_symbol; if (i.reloc[this_operand] == BFD_RELOC_X86_64_GOTPCREL) --- a/gas/testsuite/gas/i386/x86-64-gotpcrel-2.d +++ b/gas/testsuite/gas/i386/x86-64-gotpcrel-2.d @@ -8,4 +8,6 @@ Disassembly of section .text: 0+ : +[a-f0-9]+: 48 8b 05 00 00 00 00 mov 0x0\(%rip\),%rax # 7 3: R_X86_64_GOTPCREL foo-0x4 + +[a-f0-9]+: ff 35 00 00 00 00 push 0x0\(%rip\) # .* 9: R_X86_64_GOTPCREL foo\+0x4 + +[a-f0-9]+: ff 35 00 00 00 00 push 0x0\(%rip\) # .* f: R_X86_64_GOTPCREL foo-0xc #pass --- a/gas/testsuite/gas/i386/x86-64-gotpcrel-2.s +++ b/gas/testsuite/gas/i386/x86-64-gotpcrel-2.s @@ -1,3 +1,7 @@ .text foo: movq foo@GOTPCREL(%rip), %rax + push foo@GOTPCREL + eight(%rip) + push foo@GOTPCREL - eight(%rip) + + .equ eight, 8 From patchwork Fri Mar 27 14:14:05 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132375 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 5E2C34BA23EF for ; Fri, 27 Mar 2026 14:15:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5E2C34BA23EF Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=RJs+Gk4F X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com [IPv6:2a00:1450:4864:20::332]) by sourceware.org (Postfix) with ESMTPS id 727294BA23C6 for ; Fri, 27 Mar 2026 14:14:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 727294BA23C6 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 727294BA23C6 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::332 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620848; cv=none; b=digtMMNpj5FeswjHnoC9eTDMJL6a/4vx1UkaPuFdSsmbUG5CsuCvUlzpp+hJu+1m4W1Wo+8ubQvfw2vzDmaZHyS2+Zl94kHjzfpOeNJKmmL9lVGLQKnf25Og1A1ZQ9CZRfms+E+idkdCyJ/CDe8BnmYLnY2dZWkypJ7xwcndUzI= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620848; c=relaxed/simple; bh=jbv6pVzA4cWayQ7HusarhfKrbHwQupbxvPJKu9Eht74=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=x5tOx8oFknl51V0npF1BmNDF6/dkwUgqnN0obMJ+PcXSv7UNFfNlT2D5a52un4NnCkHB6F4FJWxB3JpV94NsGVrS+tuPPVqEHzDJQ6iG2Ha77Q4DE86vUoQLbO4ZXnjyVALkXl2nip/u7KGM2oi5UUGvep1JM5ocRHCZek+LPkE= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 727294BA23C6 Received: by mail-wm1-x332.google.com with SMTP id 5b1f17b1804b1-4852b81c73aso19563895e9.3 for ; Fri, 27 Mar 2026 07:14:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774620847; x=1775225647; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=yxcQ37yWiaZKlzXSZVyeI8nwixmIMiXTj/88afL+LY8=; b=RJs+Gk4FkQMFkrE6BEF6Sb7ptYSttNT19+5FuoWkzDNaBd+CK74YLytjWQn771MEdf CgNErbvFrx3R1jC4+hO46EYgomAS9cI3STwRqrCPZgjC3Mw+a/J/R6YBN7lEba9W8qsJ BDVV60lgciLlsox9iQ1boppEoexvbZ4DRpprt/lMsUdaONZ8PEIW+v1n7GZCYZl3FlX6 twXzXIfwPjyEwayTlvJA7Jpvbwarc0J+ULVqqDF6Bp8BAZkE761CqRL4UCE21lYI/JY4 GxKzSCrryDaK4Dd4tBUxDs2LbIwV5PkDYvTHBeMwfutmyveJOGvY+YN9D2xSVTjGtgUD sUNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774620847; x=1775225647; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=yxcQ37yWiaZKlzXSZVyeI8nwixmIMiXTj/88afL+LY8=; b=mRAkNvcntfc2Gyq4dtQaboaj7+fajYBI4ftVeV6Aad44Yisw2k3fBdtgPAfL27FVZd +hgGB07UUZz160s9FADznZHCowDJ8aoOLsti23w6YXDB2GnNJAA6yXCB0sarEdUxmxX7 8eIaXU9OYD5V6E3+Sr5JY0WuX8BxbSBZhe4QQCO43H6/H6wmnE83npUcWi5Ch03f9QrD n+5LbuZaNcWjX8T+ggS8zQAEd1UUbTwQFUyvUzeyGAzg5R0mtczQ1iyAvR5qH+M9AH3x mexwrwRbZE+gwcUsr0BiQq874HQlcYLZHhu4BmDGRtW0Ss6B2d6tHslvJk1QREJiK3i/ QKUw== X-Gm-Message-State: AOJu0Yzf3CR9s2Vrax8S7Jz4lW9qlQChJ/eTYgxcfNMIScZ4EseMiVN3 mFKbapBWrXtsrMpsnMI3eLId62f5LFHdAmNvH6CGWMgdROX3qxoO2oP7dUJ6E1m/Zq52pRb7+7E jwuvLLA== X-Gm-Gg: ATEYQzw4/MBIChP7Nu1/vY7e7B7e03w5NXP1YBHq1J1Q7M4N6GjvTQmn5sb3RTfaDfR xtD0y6bSnjfj0Z7raedG308wwGFZRUuV7Gca3d3+2U4uJdbwALO6G45oiAS1SlDrdx+VaTnYDrs VutjrXydFWJEKq4xnobALN44QTolTZK90pcHfhjKDEM2b4MpkMEylg5kmZNMdK9mG1FGDq1lhQ8 xE0A4cHxUCHalQycq0NpagPfyS4CfVbJLMDqPb0vCds92VVM80F8XOnYJ9QcYFOgaN66vyW2N65 u3AwhhEVE0J2ydab5P9nsBWHYtpee0kyfmNv9JPnNyzl7bqyn91JCFbRM3cSHg5CPJliruEiXsk mIHVtUN8ax2sos8LlkCyd7PAbSVp8S8di8p/waJXseonFQMD3EgRgJg/mrfGTFnikartNBQgnOF phUqbNqvUb0kr8g6j2xUJb6wYABe4Q3FN++AzLPD+VtFhNLpU81PqmMuAkfTgTU29duownWsn0a O4BWHi3SfKPmYI= X-Received: by 2002:a05:600c:8b2a:b0:485:3dfc:57c with SMTP id 5b1f17b1804b1-48727f5fe97mr43174835e9.21.1774620847228; Fri, 27 Mar 2026 07:14:07 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-48722c6b105sm179149375e9.1.2026.03.27.07.14.06 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 07:14:06 -0700 (PDT) Message-ID: <583fea87-7fb4-4644-a39b-e1169acb1398@suse.com> Date: Fri, 27 Mar 2026 15:14:05 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 7/8] x86/Intel: don't modify equates' expressions From: Jan Beulich To: Binutils References: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> Content-Language: en-US Cc: "H.J. Lu" Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> X-Spam-Status: No, score=-3016.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLOCKED 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org Equates involving registers were mis-treated when parsing insn operand expressions: When "pulling out" the register(s), they would have got converted to O_constant. While other (local) parsing code was able to cope with this, the generic part of the assembler was misled. A visible bad effect would be that local absolute symbols would appear in the symbol table, when really that should be register symbols (which wouldn't be put in the symbol table at all). Clone symbols / expressions as necessary before modifying them. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -167,7 +167,7 @@ static int i386_finalize_displacement (s const char *); static int i386_att_operand (char *); static int i386_intel_operand (char *, int); -static int i386_intel_simplify (expressionS *); +static int i386_intel_simplify (expressionS *, bool); static int i386_intel_parse_name (const char *, expressionS *, enum expr_mode); static const reg_entry *parse_register (const char *, char **); static const char *parse_insn (const char *, char *, enum parse_mode); @@ -13526,7 +13526,7 @@ x86_cons (expressionS *exp, int size) intel_syntax = -intel_syntax; if (intel_syntax) - i386_intel_simplify (exp); + i386_intel_simplify (exp, false); /* If not 64bit, massage value, to account for wraparound when !BFD64. */ if (size <= 4 && expr_mode == expr_operator_present --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -378,30 +378,56 @@ i386_intel_simplify_register (expression return 2; } -static int -i386_intel_simplify_symbol (symbolS *sym) +static symbolS * +i386_intel_simplify_symbol (symbolS *sym, bool in_equate) { if (symbol_resolving_p (sym)) - return 1; + return sym; - symbol_mark_resolving (sym); - int ret = i386_intel_simplify (symbol_get_value_expression (sym)); - if (ret == 2) + segT seg = S_GET_SEGMENT (sym); + if (seg != expr_section && seg != reg_section && !symbol_equated_p(sym)) + return sym; + + for (;;) { - S_SET_SEGMENT (sym, absolute_section); - ret = 1; + /* While we're after equates, symbol_equated_p() isn't suitable here. */ + if (symbol_on_chain(sym, symbol_rootP, symbol_lastP)) + { + in_equate = true; + sym = symbol_clone (sym, 0); + } + else if (in_equate) + { + expressionS *e = symbol_get_value_expression (sym); + + if (e->X_op == O_symbol && !e->X_add_number) + { + sym = e->X_add_symbol; + continue; + } + sym = make_expr_symbol (e); + } + + break; } + + symbol_mark_resolving (sym); + int ret = i386_intel_simplify (symbol_get_value_expression (sym), in_equate); + if (ret == 2) + S_SET_SEGMENT (sym, absolute_section); symbol_clear_resolving (sym); - return ret; + + return ret ? sym : NULL; } static int -i386_intel_simplify (expressionS *e) +i386_intel_simplify (expressionS *e, bool in_equate) { const reg_entry *the_reg = (this_operand >= 0 ? i.op[this_operand].regs : NULL); const reg_entry *base = intel_state.base; const reg_entry *state_index = intel_state.index; + symbolS *newsym; int ret; if (!intel_syntax) @@ -412,18 +438,21 @@ i386_intel_simplify (expressionS *e) case O_index: if (e->X_add_symbol) { - if (!i386_intel_simplify_symbol (e->X_add_symbol) + newsym = i386_intel_simplify_symbol (e->X_add_symbol, in_equate); + if (!newsym || !i386_intel_check(the_reg, intel_state.base, intel_state.index)) return 0; + e->X_add_symbol = newsym; } if (!intel_state.in_offset) ++intel_state.in_bracket; - ret = i386_intel_simplify_symbol (e->X_op_symbol); + newsym = i386_intel_simplify_symbol (e->X_op_symbol, in_equate); if (!intel_state.in_offset) --intel_state.in_bracket; - if (!ret) + if (!newsym) return 0; + e->X_op_symbol = newsym; if (e->X_add_symbol) e->X_op = O_add; else @@ -433,12 +462,13 @@ i386_intel_simplify (expressionS *e) case O_offset: intel_state.has_offset = 1; ++intel_state.in_offset; - ret = i386_intel_simplify_symbol (e->X_add_symbol); + newsym = i386_intel_simplify_symbol (e->X_add_symbol, in_equate); --intel_state.in_offset; - if (!ret || !i386_intel_check(the_reg, base, state_index)) + if (!newsym || !i386_intel_check(the_reg, base, state_index)) return 0; + e->X_add_symbol = newsym; i386_intel_fold (e, e->X_add_symbol); - return ret; + return 1; case O_byte_ptr: case O_word_ptr: @@ -461,8 +491,10 @@ i386_intel_simplify (expressionS *e) as_bad (_("invalid use of register")); return 0; } - if (!i386_intel_simplify_symbol (e->X_add_symbol)) + newsym = i386_intel_simplify_symbol (e->X_add_symbol, in_equate); + if (!newsym) return 0; + e->X_add_symbol = newsym; i386_intel_fold (e, e->X_add_symbol); break; @@ -473,10 +505,12 @@ i386_intel_simplify (expressionS *e) as_bad (_("invalid use of register")); return 0; } - if (!i386_intel_simplify_symbol (e->X_op_symbol) + newsym = i386_intel_simplify_symbol (e->X_op_symbol, in_equate); + if (!newsym || !i386_intel_check(the_reg, intel_state.base, intel_state.index)) return 0; + e->X_op_symbol = newsym; if (!intel_state.in_offset) { if (!intel_state.seg) @@ -503,16 +537,26 @@ i386_intel_simplify (expressionS *e) if (!intel_state.in_scale++) intel_state.scale_factor = 1; - ret = i386_intel_simplify_symbol (e->X_add_symbol); - if (ret && !has_index && intel_state.index) - scale = symbol_get_value_expression (e->X_op_symbol); - - if (ret) - ret = i386_intel_simplify_symbol (e->X_op_symbol); - if (ret && !scale && !has_index && intel_state.index) - scale = symbol_get_value_expression (e->X_add_symbol); + newsym = i386_intel_simplify_symbol (e->X_add_symbol, in_equate); + if (newsym) + { + e->X_add_symbol = newsym; + + if (!has_index && intel_state.index) + scale = symbol_get_value_expression (e->X_op_symbol); + + newsym = i386_intel_simplify_symbol (e->X_op_symbol, in_equate); + } + + if (newsym) + { + e->X_op_symbol = newsym; + + if (!scale && !has_index && intel_state.index) + scale = symbol_get_value_expression (e->X_add_symbol); + } - if (ret && scale) + if (newsym && scale) { resolve_expression (scale); if (scale->X_op != O_constant @@ -522,7 +566,7 @@ i386_intel_simplify (expressionS *e) } --intel_state.in_scale; - if (!ret) + if (!newsym) return 0; if (!intel_state.in_scale) @@ -568,9 +612,13 @@ i386_intel_simplify (expressionS *e) /* FALLTHROUGH */ default: fallthrough: - if (e->X_add_symbol - && !i386_intel_simplify_symbol (e->X_add_symbol)) - return 0; + if (e->X_add_symbol) + { + newsym = i386_intel_simplify_symbol (e->X_add_symbol, in_equate); + if (!newsym) + return 0; + e->X_add_symbol = newsym; + } if (!the_reg && this_operand >= 0 && e->X_op == O_symbol && !e->X_add_number) the_reg = i.op[this_operand].regs; @@ -579,14 +627,19 @@ i386_intel_simplify (expressionS *e) base = intel_state.base; state_index = intel_state.index; } - if (!i386_intel_check (the_reg, base, state_index) - || (e->X_op_symbol - && !i386_intel_simplify_symbol (e->X_op_symbol)) - || !i386_intel_check (the_reg, - (e->X_op != O_add - ? base : intel_state.base), - (e->X_op != O_add - ? state_index : intel_state.index))) + if (!i386_intel_check (the_reg, base, state_index)) + return 0; + if (e->X_op_symbol) + { + newsym = i386_intel_simplify_symbol (e->X_op_symbol, in_equate); + if (!newsym) + return 0; + e->X_op_symbol = newsym; + } + if (!i386_intel_check (the_reg, + e->X_op != O_add ? base : intel_state.base, + (e->X_op != O_add ? state_index + : intel_state.index))) return 0; break; } @@ -654,7 +707,7 @@ i386_intel_operand (char *operand_string expr_mode = expr_operator_none; memset (&exp, 0, sizeof(exp)); exp_seg = expression (&exp); - ret = i386_intel_simplify (&exp); + ret = i386_intel_simplify (&exp, false); intel_syntax = 1; SKIP_WHITESPACE (); --- /dev/null +++ b/gas/testsuite/gas/i386/equ2.d @@ -0,0 +1,10 @@ +#source: equ.s +#objdump: -t +#name: i386 equates (symtab check) + +.*: +file format .* + +SYMBOL TABLE: +.* \.text .* +!.* \*ABS\* .* +#pass --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -726,6 +726,7 @@ if [gas_32_check] then { run_dump_test "pcrel-elf" run_dump_test "relax" run_dump_test "gotpc" + run_dump_test "equ2" run_dump_test "tlsd" run_dump_test "tlspic" run_dump_test "tlsnopic" From patchwork Fri Mar 27 14:14:41 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132376 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 C5AB14BA23D7 for ; Fri, 27 Mar 2026 14:16:46 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org C5AB14BA23D7 Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=suse.com header.i=@suse.com header.a=rsa-sha256 header.s=google header.b=Gc9v0lKo X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32d.google.com (mail-wm1-x32d.google.com [IPv6:2a00:1450:4864:20::32d]) by sourceware.org (Postfix) with ESMTPS id 9452D4BA2E20 for ; Fri, 27 Mar 2026 14:14:44 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 9452D4BA2E20 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 9452D4BA2E20 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::32d ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620884; cv=none; b=A/UTiCLA8qGAdnIyUIGuyzyg2qpJ4r3M0/zNf59mE6RDpBEGff8khHdY9BJzSaN5YnUDn2KpPn1kCY0Wd0jpz5yEtWZ6ReiP3r/c3cbebR6YniOnLQT3QNH6BGV7iX0UGDUzINmppm8dIRSok2a7C3eIDvfN2mYOMnDYa46oP68= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774620884; c=relaxed/simple; bh=zkifUHiD5AsY1ZjtTvgR4KH3pO15Vy7/TDXyXCb/pKs=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=jmQEmC952QKKu1oc92bhJ5ROaB17xZ7wbKAkEhdcFTlxNP7EnFlvE5hTBREEFal7m2FfkqukKSAuk/zzsyk6myolDm1R+1zSN+X1BuowFKzOcTtLZSX/4ZndVOXxyeo/t52GSm84NnCyw8Icw+yWpKqSSNmWd9OsQfoO69fXepA= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9452D4BA2E20 Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-48374014a77so26216125e9.3 for ; Fri, 27 Mar 2026 07:14:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774620883; x=1775225683; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :from:to:cc:subject:date:message-id:reply-to; bh=a42TWKqop1WiqvT36UVK19Xj4a1Br1fLkpcmLSOs3UU=; b=Gc9v0lKobAhHd7XVtvosiHt2bk2Vqwn0vwclALwXpJep6MLcXFgT4FiVZaoTsKmajz 1NDapz5GFMb3y+Ko3Ma4EP4omkrDfEdSNWbTkEyJHcuHm7JZDRpYcytg6DxA8XF1dgTy x3Cl/OW7xWy5c3SP6a/ZT+npPUuNbge47XLUBJopNQlmixSVS+AhRoGe6bVdqqPmIL9a 1PtYp1xB2EEPrX2Az88HEGf42IeD/8bNcG0FqvZh+LGBSVxKf5ziWUh7mqomNAL16tiU nf1sGHfB+r1PRCSWHZeNZuxb3GEkpcYw0I4BO2GKVBzDNbPthY7YZYsZiR7kcEc06TWk 95Kg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774620883; x=1775225683; h=content-transfer-encoding:in-reply-to:autocrypt:cc:content-language :references:to:from:subject:user-agent:mime-version:date:message-id :x-gm-gg:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=a42TWKqop1WiqvT36UVK19Xj4a1Br1fLkpcmLSOs3UU=; b=NFrhv+Z4ufHX8UtlGvMUgX7BHk3u8wH+9HwoB+ES+LUtvGTdpLFk6P9sXzh3bB6NTK W54F8uXBVm+kAiCq0xlOGRYjGURAEGm+2Wsz9APvEbH3TGgyc9t0KYDGmY5n48shVnDR 12xAk+3QvWd8/y5UZlSLErwbC0z92Llrsd5K8XrrDYEtd7pu3yzp1GPw6a7XnR7Ort5k /21yGuwJQcLd3WHXbJf8T+juB4l8uN397bzmCjqTPcMM4LW+qHRvXdAMBfrOq47nw8fd yuLG2Ra1hxQVE7p3fbMT7EiM9OQcYWsWWlA9bEzbBgh5cCCAcQnHgFqeHisWGRN/Ymn3 3v6A== X-Gm-Message-State: AOJu0Yw9P6YYOiyFKQjnSrZju+snH0pPAnI5lKUXwSQG6a22NGgVWLV8 z9CbcEK9BizxRJ/LZ8dcKhNcDB9TKx8mjPZmfjBFOm3Ey+RRhzcjZxMKNgZt7vkKb/xjwbX5M4Q o/i+4+g== X-Gm-Gg: ATEYQzx1STbmZLmXEEDAbcgEZkyvY6mzTjJjXsZQw4tI7VbNGe7+zu8Jii8NFBRDBZd 64qcXPI8457ftgvstBBZSv4ALDGPrBvNFLEUl/BRbJu4jgqg7fDwicIXWlOAmaYMwI6iqQy5rjd nU2zVLTgp6u/DacAzlP6wJ2NCXcprinXlqsdQeITd4e5Wa3pdn0qNj4zOfopi9l1f1lAV/HgMKD 5910R19VtipU0eqoOttxMlm2eUYOEkEQStUIY+OARivw6n3MWVn0IeIQb5NGonzyyr3v8ao4xIO LU+s3HBSkIFn2OAKrENMT5MhTaFY0PhWnFoNLyGZCLmcFxhpvevUc0BIhKcuD5ocGUkWs6BC0Pq ym269O+Z5eciRbklnAj5nmwo3HfWnh+hpgtrYHDSqcocjXnufJNyxgwiDILwztY5NVNZO4POJ2r qYH1rZbsgGQ68JQvx3YdGFAjDRDN9YQTuZxOnPN0XJMsTkyJ9FZKxnr8FdMkA8och/SyA2X2teq HQ0FLu2wjCEYlWcjqAwdzwiKQ== X-Received: by 2002:a05:6000:2406:b0:43b:5762:2989 with SMTP id ffacd0b85a97d-43b9ea1a48dmr4566773f8f.49.1774620883211; Fri, 27 Mar 2026 07:14:43 -0700 (PDT) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-43b919df903sm15528111f8f.30.2026.03.27.07.14.42 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 07:14:42 -0700 (PDT) Message-ID: Date: Fri, 27 Mar 2026 15:14:41 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 8/8] x86/Intel: make PC-relative expressions work (again?) From: Jan Beulich To: Binutils References: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> Content-Language: en-US Cc: "H.J. Lu" Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <04ccd34e-7b05-412b-a0fe-2039e323f7d1@suse.com> X-Spam-Status: No, score=-3016.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_BLOCKED, SPF_HELO_NONE, SPF_NONE, TXREP, URIBL_BLOCKED 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org Associating fixups with too complex expressions will prevent the detection and conversion of expressions which are actually PC-relative. Such a situation can arise when converting O_index expressions: An extra O_add (with a constant) or O_symbol is already "too complex", let alone an O_multiply by zero. --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -279,7 +279,9 @@ static INLINE int i386_intel_check (cons static INLINE void i386_intel_fold (expressionS *e, symbolS *sym) { expressionS *exp = symbol_get_value_expression (sym); - if (S_GET_SEGMENT (sym) == absolute_section) + + if (S_GET_SEGMENT (sym) == absolute_section + || S_GET_SEGMENT (sym) == expr_section) { offsetT val = e->X_add_number; @@ -453,10 +455,22 @@ i386_intel_simplify (expressionS *e, boo if (!newsym) return 0; e->X_op_symbol = newsym; - if (e->X_add_symbol) - e->X_op = O_add; - else + if (!e->X_add_symbol) i386_intel_fold (e, e->X_op_symbol); + else if (S_GET_SEGMENT (e->X_add_symbol) == expr_section + && (S_GET_SEGMENT (e->X_op_symbol) == absolute_section + || S_GET_SEGMENT (e->X_op_symbol) == expr_section) + && symbol_get_value_expression (e->X_op_symbol)->X_op + == O_constant) + { + offsetT val + = symbol_get_value_expression (e->X_op_symbol)->X_add_number; + + i386_intel_fold (e, e->X_add_symbol); + e->X_add_number += val; + } + else + e->X_op = O_add; break; case O_offset: @@ -528,10 +542,68 @@ i386_intel_simplify (expressionS *e, boo i386_intel_fold (e, e->X_op_symbol); break; + case O_add: + if (this_operand >= 0 && intel_state.in_bracket) + { + expressionS *left = NULL, *right = NULL; + segT leftseg = NULL, rightseg = NULL; + + newsym = i386_intel_simplify_symbol (e->X_add_symbol, in_equate); + if (newsym) + { + e->X_add_symbol = newsym; + + if (base != intel_state.base || state_index != intel_state.index) + { + base = intel_state.base; + state_index = intel_state.index; + left = symbol_get_value_expression (newsym); + resolve_expression (left); + leftseg = S_GET_SEGMENT (newsym); + } + } + + newsym = i386_intel_simplify_symbol (e->X_op_symbol, in_equate); + if (newsym) + { + e->X_op_symbol = newsym; + + if (base != intel_state.base || state_index != intel_state.index) + { + base = intel_state.base; + state_index = intel_state.index; + right = symbol_get_value_expression (newsym); + resolve_expression (right); + rightseg = S_GET_SEGMENT (newsym); + } + } + + if (left && right + && (leftseg == absolute_section || leftseg == expr_section) + && left->X_op == O_constant + && (rightseg == absolute_section || rightseg == expr_section) + && right->X_op == O_constant) + { + e->X_op = O_constant; + e->X_add_number += left->X_add_number + right->X_add_number; + e->X_add_symbol = NULL; + e->X_op_symbol = NULL; + } + else if (left + && (leftseg == absolute_section || leftseg == expr_section) + && left->X_op == O_constant) + i386_intel_fold (e, e->X_op_symbol); + else if (right + && (rightseg == absolute_section || rightseg == expr_section) + && right->X_op == O_constant) + i386_intel_fold (e, e->X_add_symbol); + } + goto fallthrough; + case O_multiply: if (this_operand >= 0 && intel_state.in_bracket) { - expressionS *scale = NULL; + expressionS *scale = NULL, *other = NULL; int has_index = (intel_state.index != NULL); if (!intel_state.in_scale++) @@ -543,7 +615,10 @@ i386_intel_simplify (expressionS *e, boo e->X_add_symbol = newsym; if (!has_index && intel_state.index) - scale = symbol_get_value_expression (e->X_op_symbol); + { + scale = symbol_get_value_expression (e->X_op_symbol); + other = symbol_get_value_expression (e->X_add_symbol); + } newsym = i386_intel_simplify_symbol (e->X_op_symbol, in_equate); } @@ -553,16 +628,32 @@ i386_intel_simplify (expressionS *e, boo e->X_op_symbol = newsym; if (!scale && !has_index && intel_state.index) - scale = symbol_get_value_expression (e->X_add_symbol); + { + scale = symbol_get_value_expression (e->X_add_symbol); + other = symbol_get_value_expression (e->X_op_symbol); + } } if (newsym && scale) { + segT seg; + resolve_expression (scale); if (scale->X_op != O_constant || intel_state.index->reg_type.bitfield.word) scale->X_add_number = 0; intel_state.scale_factor *= scale->X_add_number; + + resolve_expression (other); + seg = S_GET_SEGMENT (newsym); + if ((seg == absolute_section || seg == expr_section) + && other->X_op == O_constant + && other->X_add_number == 0) + { + e->X_op = O_constant; + e->X_add_symbol = NULL; + e->X_op_symbol = NULL; + } } --intel_state.in_scale; @@ -646,7 +737,7 @@ i386_intel_simplify (expressionS *e, boo if (this_operand >= 0 && e->X_op == O_symbol - && !intel_state.in_offset) + && !intel_state.has_offset) { segT seg = S_GET_SEGMENT (e->X_add_symbol); --- a/gas/testsuite/gas/i386/i386.exp +++ b/gas/testsuite/gas/i386/i386.exp @@ -67,6 +67,7 @@ if [gas_32_check] then { run_list_test "intelbad" "" run_dump_test "intelok" run_dump_test "intelok2" + run_dump_test "intelpcrel" run_dump_test "prefix" run_list_test "prefix32" "-al -march=+mpx" run_dump_test "insn-32" --- /dev/null +++ b/gas/testsuite/gas/i386/intelpcrel.d @@ -0,0 +1,33 @@ +#objdump: -dwMintel +#name: i386 intel-PC-rel +#notarget: *-*-msdos* *-*-*go32* *-*-bsd* *-*-darwin* + +.*: +file format .* + +Disassembly of section .text: + +0+ <\.text>: +[ ]*[0-9a-f]+: b8 0[15] 00 00 00[ ]+mov[ ]+eax,(0x)?[15] +[ ]*[0-9a-f]+: b8 0[ae] 00 00 00[ ]+mov[ ]+eax,0x[ae] +[ ]*[0-9a-f]+: 8d 91 (0c|10) 00 00 00[ ]+lea[ ]+edx,\[ecx\+0x(c|10)\] +[ ]*[0-9a-f]+: 8d 91 1[6a] 00 00 00[ ]+lea[ ]+edx,\[ecx\+0x1[6a]\] +[ ]*[0-9a-f]+: 8d 91 (1c|20) 00 00 00[ ]+lea[ ]+edx,\[ecx\+0x(1c|20)\] +[ ]*[0-9a-f]+: 8d 14 8d (1f|23) 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x(1f|23)\] +[ ]*[0-9a-f]+: 8d 14 8d 2[6a] 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x2[6a]\] +[ ]*[0-9a-f]+: 8d 14 8d (2d|31) 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x(2d|31)\] +[ ]*[0-9a-f]+: 8d 14 8d 3[48] 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x3[48]\] +[ ]*[0-9a-f]+: 8d 14 8d 3[bf] 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x3[bf]\] +[ ]*[0-9a-f]+: 8d 91 4[15] 00 00 00[ ]+lea[ ]+edx,\[ecx\+0x4[15]\] +[ ]*[0-9a-f]+: 8d 91 4[7b] 00 00 00[ ]+lea[ ]+edx,\[ecx\+0x4[7b]\] +[ ]*[0-9a-f]+: 8d 91 (4d|51) 00 00 00[ ]+lea[ ]+edx,\[ecx\+0x(4d|51)\] +[ ]*[0-9a-f]+: 8d 91 5[37] 00 00 00[ ]+lea[ ]+edx,\[ecx\+0x5[37]\] +[ ]*[0-9a-f]+: 8d 91 5[9d] 00 00 00[ ]+lea[ ]+edx,\[ecx\+0x5[9d]\] +[ ]*[0-9a-f]+: 8d 14 8d 6[04] 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x6[04]\] +[ ]*[0-9a-f]+: 8d 14 8d 6[7b] 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x6[7b]\] +[ ]*[0-9a-f]+: 8d 14 8d (6e|72) 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x(6e|72)\] +[ ]*[0-9a-f]+: 8d 14 8d 7[59] 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x7[59]\] +[ ]*[0-9a-f]+: 8d 14 8d (7c|80) 00 00 00[ ]+lea[ ]+edx,\[ecx\*4\+0x(7c|80)\] +[ ]*[0-9a-f]+: 8d 94 31 8[37] 00 00 00[ ]+lea[ ]+edx,\[ecx\+esi\*1\+0x8[37]\] +[ ]*[0-9a-f]+: 8d 94 b1 8[ae] 00 00 00[ ]+lea[ ]+edx,\[ecx\+esi\*4\+0x8[ae]\] +[ ]*[0-9a-f]+: 8d 94 b1 9[59] 00 00 00[ ]+lea[ ]+edx,\[ecx\+esi\*4\+0x9[59]\] +#pass --- /dev/null +++ b/gas/testsuite/gas/i386/intelpcrel.s @@ -0,0 +1,36 @@ + .intel_syntax noprefix + + .data +0: .long 0 +1: .long 0 + + .text +.Lorg: + mov eax, 0b - .Lorg + mov eax, 1b - .Lorg + + lea edx, 0b - .Lorg[ecx] + lea edx, 1b - .Lorg[ecx] + lea edx, 0b - .Lorg[ecx][4] + + lea edx, 0b - .Lorg[ecx*4] + lea edx, 0b - .Lorg[4*ecx] + lea edx, 0b - .Lorg[2*2*ecx] + lea edx, 0b - .Lorg[2*ecx*2] + lea edx, 0b - .Lorg[ecx*2*2] + + lea edx, [(0b - .Lorg) + ecx] + lea edx, [0b - .Lorg + ecx] + lea edx, [ecx + (0b - .Lorg)] + lea edx, [ecx + 0b - .Lorg] + lea edx, [0b + ecx - .Lorg] + + lea edx, [(0b - .Lorg) + ecx*4] + lea edx, [0b - .Lorg + ecx*4] + lea edx, [ecx*4 + (0b - .Lorg)] + lea edx, [ecx*4 + 0b - .Lorg] + lea edx, [0b + ecx*4 - .Lorg] + + lea edx, 0b - .Lorg[ecx][esi] + lea edx, 0b - .Lorg[ecx][esi*4] + lea edx, 0b - .Lorg[ecx][esi*4][4]