From patchwork Fri Nov 28 11:31:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 125501 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A9A26385841F for ; Fri, 28 Nov 2025 11:32:14 +0000 (GMT) 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 D97443858D1E for ; Fri, 28 Nov 2025 11:31:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D97443858D1E 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 D97443858D1E 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=1764329506; cv=none; b=dHqm1dQLw450xCdc4TxrzpFBGWQa01O63oBqyNkL7SVnuCRmk+k5GO1liBgmDKgIYjqXyuQK9ehxS0wSQGjAKZcr10vtLy2F9Lg+uGT+npaWFqJTlt+MjEZsNaypz7u0Z6xweaG39j9diJ5VxL403y2xzHvvLk6ypMOw4uPPGK4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1764329506; c=relaxed/simple; bh=y5DTwxV7h727IvYfjIf6VVh0nVaKeRZXL+fNu1xv61w=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=ilRpM6HSvNBgyHf54bnkbAACypEOov9h5/koav+eRpsPHGMbj0p/UCzWdBc2UVm2cwEqkjwYlqPWD3JCs8sC68bQ+ZpSg66u4IRCAUpcfoduyJgF9Y8x84FrgoaiN4YlFQfLfmuNE55F14y0O2LdmZl69yomLoRGRTA+QmC0lwE= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x42b.google.com with SMTP id ffacd0b85a97d-42b38de7940so844882f8f.3 for ; Fri, 28 Nov 2025 03:31:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1764329504; x=1764934304; 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=OW5z/Dblukken+yUxdFtLobHVP8uozjIql/xEE/+KAU=; b=efnFzJ7sdix5oBLoxJLZ8DpcFU96+jbY8YssVzJ1rbRHuSbGgDn03kdSVHIYBA9pZe jI/9DzVfatjgzfJgAzYVAaGS0/4GTSKPomCuBXOH6OXMsZU6IZZZhihu/rksAU6kgLSu TkVT5GZm+Rzkw9OlXW7OiI01AWN/DNOo+iJUqY8fdLm66+cJtzSCmB++qsfDfveX6dtL oy0PBvRtx+Yw42AAHzd9+I3YisXi9mTI9bv+nut9BYK2YtDkti+ruk0gcQP0czSlQkQB WIR0TMkAujNJKpPOGiwIjMSPBAaFdZGZD7oYRDtGuspYjszoHoCP6ASX6AWnaD0B3beO SgEg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1764329504; x=1764934304; 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=OW5z/Dblukken+yUxdFtLobHVP8uozjIql/xEE/+KAU=; b=eAb1yYDEhSkiZOpvIuYbayk8//KPEtyDksajcbITRiz1xyeeXHLvObklAKxG4HGSlz jdaQoNpXn8qXUxj/mqDZxgbEz8IvpXsJxEsRicqmslv3kQzLMr5wRZbieGzLajl1TB90 Xook1i0mj24O8gpDfXuSRI7Erug4OPt4B7AeltWRtLtuNdt0WkJje6TQnWYHAqhCZG6U d0EzQxNNhASfmgvz8gEs4wTqbOKXg9JQijL3yoAXzYwxDy2qtJyBIkm8BFO2YffoIYga iQ5IbV3/Mq9qVIGeE0r/12DK88jZicRGTWBW1meXq1tdK2FTwaJpJiAiCWmegdyN3IVL QP3A== X-Gm-Message-State: AOJu0Yz1CbItIhdv5zbD6ujbpgY0TqMe5ghfESsxT76HtUezp9zemOJT xq4ExJBdlAMrnXT9CtRVsr3XdfzgXE83DHicst68FZxrSNWYkILNs/wZZI9Va/xI/0kds8Ym05W 4IsU= X-Gm-Gg: ASbGncuiFubT85K06Qhh2vasChrZtHXr/ilNXweQCdbpGuw1OcrjW4h9gru+GD3IuWT ONcuoGefkgCcWSPaJxeqR1u1CUHB2Yl1Z63bBGOESPGowBrG419fqJ4t2SfaIShwlhb9PZJdvEU TBANXL78SMv/ArGP5H2ELM5wDaiYpbk5Livg33dXr9LLg/Q9lK3zwMxFSv7sRDIoPchXs2KhvFJ XRWt1UuYFtR4An1X3JiHHsPizePFfMAYFWhlexqfEwbhXNYhESKrgqltPqcMWUa9MBXZqcKMO93 uKNOCflarfjhI0gWEokRQJRFzigh/al8dB+kdQ6DMeYUvv/SxH3LeIAPJKBZ++fETKSJxhIQunZ xW0D1tHcU3NPF1JZyGhd37/ElyWjwPb8noxrSu4/Rm9dGYBBjXEFWF/73Dyt7OiD/w4lVSeZhZg 8FMt1PZxbTE+C9bvp47st+DspggJtfw45Yul/iwYcLaRv+dGkHgfKbSStfcwsXYN76myQP8KYRE +8= X-Google-Smtp-Source: AGHT+IH6ZyuqbsDTpN5v8MjNV/wNAzBDLAplGg9sZS8h/xezXe7rAzCNd9rUMHe3h4pSPnqA6tVLJQ== X-Received: by 2002:a05:6000:288f:b0:42b:3246:1682 with SMTP id ffacd0b85a97d-42cc1ac93aemr26468119f8f.16.1764329504515; Fri, 28 Nov 2025 03:31:44 -0800 (PST) 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-42e1c5d6064sm9258519f8f.13.2025.11.28.03.31.43 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 28 Nov 2025 03:31:44 -0800 (PST) Message-ID: Date: Fri, 28 Nov 2025 12:31:42 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 06/14] Arc: use generic BFD_RELOC_... in favor of custom types From: Jan Beulich To: Binutils References: Content-Language: en-US Cc: Claudiu Zissulescu 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: X-Spam-Status: No, score=-3018.7 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, UPPERCASE_50_75 autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.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 No reason to have separate types when the generic ones have no (other) meaning for this target. --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -4412,11 +4412,6 @@ enum bfd_reloc_code_real BFD_RELOC_SH_FUNCDESC, /* ARC relocs. */ - BFD_RELOC_ARC_NONE, - BFD_RELOC_ARC_8, - BFD_RELOC_ARC_16, - BFD_RELOC_ARC_24, - BFD_RELOC_ARC_32, BFD_RELOC_ARC_N8, BFD_RELOC_ARC_N16, BFD_RELOC_ARC_N24, @@ -4455,10 +4450,8 @@ enum bfd_reloc_code_real BFD_RELOC_ARC_SDA_12, BFD_RELOC_ARC_SDA16_ST2, BFD_RELOC_ARC_32_PCREL, - BFD_RELOC_ARC_PC32, BFD_RELOC_ARC_GOT32, BFD_RELOC_ARC_GOTPC32, - BFD_RELOC_ARC_PLT32, BFD_RELOC_ARC_COPY, BFD_RELOC_ARC_GLOB_DAT, BFD_RELOC_ARC_JMP_SLOT, --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -377,15 +377,18 @@ arc_elf_link_hash_table_create (bfd *abf #define ARC_RELOC_HOWTO(TYPE, VALUE, SIZE, BITSIZE, RELOC_FUNCTION, OVERFLOW, FORMULA) \ { BFD_RELOC_##TYPE, R_##TYPE }, +/* Aliases. */ +#define BFD_RELOC_ARC_NONE BFD_RELOC_NONE +#define BFD_RELOC_ARC_8 BFD_RELOC_8 +#define BFD_RELOC_ARC_16 BFD_RELOC_16 +#define BFD_RELOC_ARC_24 BFD_RELOC_24 +#define BFD_RELOC_ARC_32 BFD_RELOC_32 +#define BFD_RELOC_ARC_PC32 BFD_RELOC_32_PCREL +#define BFD_RELOC_ARC_PLT32 BFD_RELOC_32_PLT_PCREL + static const struct arc_reloc_map arc_reloc_map[] = { #include "elf/arc-reloc.def" - - {BFD_RELOC_NONE, R_ARC_NONE}, - {BFD_RELOC_8, R_ARC_8}, - {BFD_RELOC_16, R_ARC_16}, - {BFD_RELOC_24, R_ARC_24}, - {BFD_RELOC_32, R_ARC_32}, }; #undef ARC_RELOC_HOWTO --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1888,11 +1888,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_SH_GOTOFFFUNCDESC", "BFD_RELOC_SH_GOTOFFFUNCDESC20", "BFD_RELOC_SH_FUNCDESC", - "BFD_RELOC_ARC_NONE", - "BFD_RELOC_ARC_8", - "BFD_RELOC_ARC_16", - "BFD_RELOC_ARC_24", - "BFD_RELOC_ARC_32", "BFD_RELOC_ARC_N8", "BFD_RELOC_ARC_N16", "BFD_RELOC_ARC_N24", @@ -1931,10 +1926,8 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_ARC_SDA_12", "BFD_RELOC_ARC_SDA16_ST2", "BFD_RELOC_ARC_32_PCREL", - "BFD_RELOC_ARC_PC32", "BFD_RELOC_ARC_GOT32", "BFD_RELOC_ARC_GOTPC32", - "BFD_RELOC_ARC_PLT32", "BFD_RELOC_ARC_COPY", "BFD_RELOC_ARC_GLOB_DAT", "BFD_RELOC_ARC_JMP_SLOT", --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -3417,16 +3417,6 @@ ENUMDOC Renesas / SuperH SH relocs. Not all of these appear in object files. ENUM - BFD_RELOC_ARC_NONE -ENUMX - BFD_RELOC_ARC_8 -ENUMX - BFD_RELOC_ARC_16 -ENUMX - BFD_RELOC_ARC_24 -ENUMX - BFD_RELOC_ARC_32 -ENUMX BFD_RELOC_ARC_N8 ENUMX BFD_RELOC_ARC_N16 @@ -3503,14 +3493,10 @@ ENUMX ENUMX BFD_RELOC_ARC_32_PCREL ENUMX - BFD_RELOC_ARC_PC32 -ENUMX BFD_RELOC_ARC_GOT32 ENUMX BFD_RELOC_ARC_GOTPC32 ENUMX - BFD_RELOC_ARC_PLT32 -ENUMX BFD_RELOC_ARC_COPY ENUMX BFD_RELOC_ARC_GLOB_DAT --- a/gas/config/tc-arc.c +++ b/gas/config/tc-arc.c @@ -544,9 +544,9 @@ static const struct arc_reloc_op_tag { DEF (gotoff, BFD_RELOC_ARC_GOTOFF, 1), DEF (gotpc, BFD_RELOC_ARC_GOTPC32, 0), - DEF (plt, BFD_RELOC_ARC_PLT32, 0), + DEF (plt, BFD_RELOC_32_PLT_PCREL, 0), DEF (sda, DUMMY_RELOC_ARC_ENTRY, 1), - DEF (pcl, BFD_RELOC_ARC_PC32, 1), + DEF (pcl, BFD_RELOC_32_PCREL, 1), DEF (tlsgd, BFD_RELOC_ARC_TLS_GD_GOT, 0), DEF (tlsie, BFD_RELOC_ARC_TLS_IE_GOT, 0), DEF (tpoff9, BFD_RELOC_ARC_TLS_LE_S9, 0), @@ -1593,7 +1593,7 @@ get_register (symbolS *sym) } /* Return true if a RELOC is generic. A generic reloc is PC-rel of a - simple ME relocation (e.g. RELOC_ARC_32_ME, BFD_RELOC_ARC_PC32. */ + simple ME relocation (e.g. RELOC_ARC_32_ME, BFD_RELOC_32_PCREL. */ static bool generic_reloc_p (extended_bfd_reloc_code_real_type reloc) @@ -2785,7 +2785,7 @@ md_pcrel_from_section (fixS *fixP, { switch (fixP->fx_r_type) { - case BFD_RELOC_ARC_PC32: + case BFD_RELOC_32_PCREL: /* The hardware calculates relative to the start of the insn, but this relocation is relative to location of the LIMM, compensate. The base always needs to be @@ -2793,7 +2793,7 @@ md_pcrel_from_section (fixS *fixP, relocation for short instructions. */ base -= 4; /* Fall through. */ - case BFD_RELOC_ARC_PLT32: + case BFD_RELOC_32_PLT_PCREL: case BFD_RELOC_ARC_S25H_PCREL_PLT: case BFD_RELOC_ARC_S21H_PCREL_PLT: case BFD_RELOC_ARC_S25W_PCREL_PLT: @@ -3001,9 +3001,9 @@ md_apply_fix (fixS *fixP, fixP->fx_offset += fixP->fx_frag->fr_address; /* Fall through. */ case BFD_RELOC_32: - fixP->fx_r_type = BFD_RELOC_ARC_PC32; + fixP->fx_r_type = BFD_RELOC_32_PCREL; /* Fall through. */ - case BFD_RELOC_ARC_PC32: + case BFD_RELOC_32_PCREL: /* fixP->fx_offset += fixP->fx_where - fixP->fx_dot_value; */ break; default: @@ -3101,11 +3101,11 @@ md_apply_fix (fixS *fixP, case BFD_RELOC_ARC_GOTOFF: case BFD_RELOC_ARC_32_ME: - case BFD_RELOC_ARC_PC32: + case BFD_RELOC_32_PCREL: md_number_to_chars_midend (fixpos, value, fixP->fx_size); return; - case BFD_RELOC_ARC_PLT32: + case BFD_RELOC_32_PLT_PCREL: md_number_to_chars_midend (fixpos, value, fixP->fx_size); return; @@ -4216,7 +4216,7 @@ tc_arc_fix_adjustable (fixS *fixP) switch (fixP->fx_r_type) { case BFD_RELOC_ARC_GOTPC32: - case BFD_RELOC_ARC_PLT32: + case BFD_RELOC_32_PLT_PCREL: case BFD_RELOC_ARC_S25H_PCREL_PLT: case BFD_RELOC_ARC_S21H_PCREL_PLT: case BFD_RELOC_ARC_S25W_PCREL_PLT: --- a/gas/config/tc-arc.h +++ b/gas/config/tc-arc.h @@ -130,7 +130,7 @@ extern const char *arc_target_format; make sure that the fixup refers to some sort of label. */ #define TC_VALIDATE_FIX(FIXP,SEG,SKIP) \ if ((FIXP->fx_r_type == BFD_RELOC_ARC_GOTPC32 \ - || FIXP->fx_r_type == BFD_RELOC_ARC_PLT32 \ + || FIXP->fx_r_type == BFD_RELOC_32_PLT_PCREL \ || FIXP->fx_r_type == BFD_RELOC_ARC_S25W_PCREL_PLT \ || FIXP->fx_r_type == BFD_RELOC_ARC_S25H_PCREL_PLT \ || FIXP->fx_r_type == BFD_RELOC_ARC_S21W_PCREL_PLT \ --- a/opcodes/arc-opc.c +++ b/opcodes/arc-opc.c @@ -2737,7 +2737,7 @@ const struct arc_reloc_equiv_tab arc_rel { "plt", 0, { F_NULL }, BFD_RELOC_ARC_S21W_PCREL, BFD_RELOC_ARC_S21W_PCREL_PLT }, - { "plt", 0, { F_NULL }, BFD_RELOC_ARC_32_ME, BFD_RELOC_ARC_PLT32 } + { "plt", 0, { F_NULL }, BFD_RELOC_ARC_32_ME, BFD_RELOC_32_PLT_PCREL } }; const unsigned arc_num_equiv_tab = ARRAY_SIZE (arc_reloc_equiv);