| Message ID | fedefae5-cf7c-44ee-9ce1-8525678c816e@suse.com |
|---|---|
| State | New |
| Headers |
Return-Path: <binutils-bounces~patchwork=sourceware.org@sourceware.org> X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0CE6C4BAE7DB for <patchwork@sourceware.org>; Fri, 5 Jun 2026 09:30:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 0CE6C4BAE7DB 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=VVnQuLva 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 580AC4BCA40C for <binutils@sourceware.org>; Fri, 5 Jun 2026 09:29:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 580AC4BCA40C 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 580AC4BCA40C Authentication-Results: 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=1780651749; cv=none; b=intts24VBnUdBfc5h5b+Z6muxjuZB7ynSYivmq6T6RTJsXGGutpugqWE5+I0JN4xYWeIjOhypY6MwLd7RlNgXhZbdXLRrBBHAlgw/uc+66Mau+zkszznq/J7WVwZulgOw50SMa4gmxSsMhsaXP2O6TbQRmHw4UI8+nog2oGuh3M= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1780651749; c=relaxed/simple; bh=ZXuAZYjgZisPOWdb8E5OcETan8rjkKs4O8aEWvmW3m0=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=MSqVzPujVKQI38By79fhKh9pmP1rYRU08diO/lq0Am8/pRU2VXkdOXAGjwZ8xANydM+aZxvEWiNM8VmTUNJFBRkdmJjnK0mL7etJsePCIhJUjM8ncgW54Btc6bOEIjUA90ByTPozuoXNQbf2pKHF1dVT1rnTLj9395CEh/G1u2A= ARC-Authentication-Results: i=1; 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=VVnQuLva DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 580AC4BCA40C Received: by mail-wm1-x336.google.com with SMTP id 5b1f17b1804b1-490b4e1ade7so17890925e9.0 for <binutils@sourceware.org>; Fri, 05 Jun 2026 02:29:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1780651748; x=1781256548; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc:to:from:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=HmeK0HAlmcm1cWCqKSNfTC/36W0XpSLQhBk1JJQfb/Y=; b=VVnQuLvaQE86+c0e+GQL/uWupUdPJTjE5XnU2ZNyxyfSH1V4cPHAUzEgWNGE6c+n+k QdZwyqL+NK74RhhEYzdjIzPuc+fuOPpx3xXkzWwz08yyDd+MmRRSECKL+cGMSWx+ilwu eMEWYS1k5FCt2UJdYFT6Nb+MCw+8S7RVj3FyqrlihLWbt4ErbwpMpqHz3n8HlquRg5v/ e/oA+DagwgVP39Kh5ZP/pyV2Pw4dubGv3QpFRZ9W6X3HQXrPqlUWdsPV0osb7bAHZDs3 36kOptIHZi/On5rLjO0nGhfvl7Sr6IT5lRDlmF+mgBczKfb2lZOpZBKVDuDRdUGp8sKc rKhQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1780651748; x=1781256548; h=content-transfer-encoding:in-reply-to:autocrypt:content-language :references:cc: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=HmeK0HAlmcm1cWCqKSNfTC/36W0XpSLQhBk1JJQfb/Y=; b=DoG6D7L9AZoIw2xbFoh6Q3/oNMZd6y7g18zKaYNW0PxwNWJ8rOr0BiRWnAxBopJt8d lklA9uzVxlKEJomeHU3+j3KN8LhLVT+UDj0g2XteJMnEDx+mLn44yOO97w/SdrDjOhFh t39q66/zLydHpKc5qkmjsig7Qy9VpiUMhQ4kfo8DCqN4/hQOoPTQ1cEJ/2GNa1jj+4Pe 81bozuQk8nafX/iTi3blUuLA4vwfrpIbfPQwXJg+fIEWvGy24Ek04psd04t6pahg/Yxp 6P4tymTctyKwuQoxKbOeTM9bw2uJ2TgMBjS2MZsUWHrEVZpZd0SnAP7RY8Y0DUzi3n6r P6WA== X-Gm-Message-State: AOJu0YyuFyvqAhTZc9v7V/mhBAaFBSRRW+tqQc+ojR5JTJ8f5A4QFUoI IWfcrJjVGCQYlRrmtGz7WeZ0Nk3lE0zczTJPRMcSer+xsjEGVw0i7Z0rPeSly/f36wSxNnxpPMm BnPk= X-Gm-Gg: Acq92OFsYncI29du+q2RtRAmPlAPe8QeWF8RUOAkakhCUhJLDLlj3l1bvdiU1GASaKR bzao2Z9ucmPRFZ/jNp47SweHoZX0Wz+WJjHlNguRsuylxHkNhwztRPxHrHnPgn1HPgeVqDZHqaI WsCV5ItPqFpcG4psqiI+iMV8CX79m0weHBC+MamiV2spK+luszVZhpbUCxgkwAZe0Ss/1GWd7WY CXzbxduHwDyeHyQPjh299wHz/5xlJGCFw88NW0vhsQbKkUTWcegmsu2hHQyh1ubzHA4WOFwALpl 4g30yy947MdWj4Y1mSXjXtck9HpQ8cXuvYrVggYGtnY7ctOSRKbAl5Z32WwmD+GQGg+26wV7VBk edSqQYT16GnGo5vNtDBJmAnA+Wv4mjgBkK8n2cA9FesKAqpUtXLF5pakIdvEOt+RT6v1uSR1tME dUT5Mx4oyJjrEcwp+1ol02fwuuOE09jNgNMtGqZY8VgSLMLqAMziIh7FdFrR+6Euzj43QHIBoNG c5WK2jLzP8i938ylUM/suI/CQ== X-Received: by 2002:a05:600c:620f:b0:490:5074:651e with SMTP id 5b1f17b1804b1-490c2612cb7mr37822295e9.25.1780651748349; Fri, 05 Jun 2026 02:29:08 -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-490bc3e59f5sm142628695e9.14.2026.06.05.02.29.07 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 05 Jun 2026 02:29:07 -0700 (PDT) Message-ID: <fedefae5-cf7c-44ee-9ce1-8525678c816e@suse.com> Date: Fri, 5 Jun 2026 11:29:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 17/16] RISC-V: warn about non-boolean unaligned-access attribute From: Jan Beulich <jbeulich@suse.com> To: Binutils <binutils@sourceware.org> Cc: Palmer Dabbelt <palmer@dabbelt.com>, Andrew Waterman <andrew@sifive.com>, Jim Wilson <jim.wilson.gcc@gmail.com>, Nelson Chu <nelson.chu1990@gmail.com>, jiawei <jiawei@iscas.ac.cn> References: <c32643f7-c8b2-4a0e-9eeb-4ba00369b147@suse.com> <f6c4fecf-57ff-4510-8a02-fca12ba22b75@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: <f6c4fecf-57ff-4510-8a02-fca12ba22b75@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-Spam-Status: No, score=-3016.2 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 shortcircuit=no autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list <binutils.sourceware.org> List-Unsubscribe: <https://sourceware.org/mailman/options/binutils>, <mailto:binutils-request@sourceware.org?subject=unsubscribe> List-Archive: <https://sourceware.org/pipermail/binutils/> List-Post: <mailto:binutils@sourceware.org> List-Help: <mailto:binutils-request@sourceware.org?subject=help> List-Subscribe: <https://sourceware.org/mailman/listinfo/binutils>, <mailto:binutils-request@sourceware.org?subject=subscribe> Errors-To: binutils-bounces~patchwork=sourceware.org@sourceware.org |
| Series |
RISC-V: assorted fixes and (hopefully) improvements
|
|
Commit Message
Jan Beulich
June 5, 2026, 9:29 a.m. UTC
The attribute being a boolean one, values should be solely 0 or 1. --- Should libbfd's riscv_merge_attributes() also emit a warning? Shouldn't settings accumulate, much like what riscv_merge_attributes() does? --- v2: New.
Comments
LGTM. At 2026/6/5 17:29, Jan Beulich wrote: > The attribute being a boolean one, values should be solely 0 or 1. > --- > Should libbfd's riscv_merge_attributes() also emit a warning? > > Shouldn't settings accumulate, much like what riscv_merge_attributes() > does? > --- > v2: New. Regarding the questions in the note, I think libbfd's riscv_merge_attributes() should probably diagnose this as well, since input objects may come from tools other than gas. That looks like a useful follow-up. I also think accumulating unaligned_access settings would be more consistent with what riscv_merge_attributes() does. Since this is a file-level "may use unaligned access" property, once a value of 1 has been seen, a later attribute value of 0 should probably not clear it. Both of these seem orthogonal to this gas-side warning, though, so I do not think they need to block this patch. > > --- a/gas/config/tc-riscv.c > +++ b/gas/config/tc-riscv.c > @@ -5859,14 +5859,13 @@ s_riscv_attribute (int ignored ATTRIBUTE > { > obj_attr_tag_t tag = obj_attr_process_attribute (OBJ_ATTR_PROC); > unsigned old_xlen; > - obj_attribute *attr; > + const obj_attribute *attr = elf_known_obj_attributes_proc (stdoutput); > > explicit_attr = true; > switch (tag) > { > case Tag_RISCV_arch: > old_xlen = xlen; > - attr = elf_known_obj_attributes_proc (stdoutput); > if (!start_assemble) > riscv_set_arch (attr[Tag_RISCV_arch].s); > else > @@ -5892,6 +5891,11 @@ s_riscv_attribute (int ignored ATTRIBUTE > "any instructions")); > break; > > + case Tag_RISCV_unaligned_access: > + if (attr[Tag_RISCV_unaligned_access].i > 1) > + as_warn (_("`unaligned_access' attribute with non-boolean value")); + break; + default: break; } --- /dev/null +++ > b/gas/testsuite/gas/riscv/attribute-warn.d @@ -0,0 +1,7 @@ +#as: > -march-attr +#readelf: -A +#warning_output: attribute-warn.l + > +Attribute Section: riscv +File Attributes + Tag_RISCV_arch: [a-zA-Z0-9_\"].* > --- /dev/null > +++ b/gas/testsuite/gas/riscv/attribute-warn.l > @@ -0,0 +1,2 @@ > +.*: Assembler messages: > +.*:2: Warning: `unaligned_access' attribute with non-boolean value > --- /dev/null > +++ b/gas/testsuite/gas/riscv/attribute-warn.s > @@ -0,0 +1,3 @@ > + .attribute unaligned_access, 1 > + .attribute unaligned_access, 0x1234 > + .attribute unaligned_access, 0 Reviewed-by: Jiawei <jiawei@iscas.ac.cn>
--- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -5859,14 +5859,13 @@ s_riscv_attribute (int ignored ATTRIBUTE { obj_attr_tag_t tag = obj_attr_process_attribute (OBJ_ATTR_PROC); unsigned old_xlen; - obj_attribute *attr; + const obj_attribute *attr = elf_known_obj_attributes_proc (stdoutput); explicit_attr = true; switch (tag) { case Tag_RISCV_arch: old_xlen = xlen; - attr = elf_known_obj_attributes_proc (stdoutput); if (!start_assemble) riscv_set_arch (attr[Tag_RISCV_arch].s); else @@ -5892,6 +5891,11 @@ s_riscv_attribute (int ignored ATTRIBUTE "any instructions")); break; + case Tag_RISCV_unaligned_access: + if (attr[Tag_RISCV_unaligned_access].i > 1) + as_warn (_("`unaligned_access' attribute with non-boolean value")); + break; + default: break; } --- /dev/null +++ b/gas/testsuite/gas/riscv/attribute-warn.d @@ -0,0 +1,7 @@ +#as: -march-attr +#readelf: -A +#warning_output: attribute-warn.l + +Attribute Section: riscv +File Attributes + Tag_RISCV_arch: [a-zA-Z0-9_\"].* --- /dev/null +++ b/gas/testsuite/gas/riscv/attribute-warn.l @@ -0,0 +1,2 @@ +.*: Assembler messages: +.*:2: Warning: `unaligned_access' attribute with non-boolean value --- /dev/null +++ b/gas/testsuite/gas/riscv/attribute-warn.s @@ -0,0 +1,3 @@ + .attribute unaligned_access, 1 + .attribute unaligned_access, 0x1234 + .attribute unaligned_access, 0