From patchwork Fri Mar 27 09:58:03 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132362 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 2DFBA4B9DB79 for ; Fri, 27 Mar 2026 09:58:51 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2DFBA4B9DB79 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=FcV++xl7 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 595144B9DB70 for ; Fri, 27 Mar 2026 09:58:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 595144B9DB70 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 595144B9DB70 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=1774605486; cv=none; b=IJp4LhDcRI1XbyzmA7mdwVf7dR2DXHx3UFyYbMiPfbc4UI6WElpTAfG7f9JbjTghGKcePOEYvi/Ey5/lQ5scISrf26hBHjNxqzGTklE6nT+577XBHK05wWubPPfoL1PwtFxFWqxm3U8l+c2GRf1+i/OOJ58BwRY+pNv8+n3jbO0= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605486; c=relaxed/simple; bh=SzhbJ4hZm20X/sBu0wqvyhyNtPePykNEsYtQxwDbIAk=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=L4NzW4MnEO3NXeXYCP7n9pnHGmF/R/hV4S72Cv45zrsePdPC+rpEDGFi67nxM64a0FPNY/NtYPCgfcBhnwlR2xw9oXpAfhP4X+wkfWz33CfSF4PMQKdfgIEW4dL4zriDOyBrJNtqs/GUW9/laYXoN7y93mwSCKumdY9btJIh04A= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 595144B9DB70 Received: by mail-wm1-x330.google.com with SMTP id 5b1f17b1804b1-48700b1ba53so18097985e9.1 for ; Fri, 27 Mar 2026 02:58:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774605485; x=1775210285; 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=gS7pLG3uYEpArRgt6vG5bXFBL6J9P37FPWvzPrTAtmQ=; b=FcV++xl765peaJWuiQ01ekGhOXQji7QF3co0+UJcEddOzn+zS3xpuRMUmPd1sfprO8 TpNbQYzM0bvIkd96y9K+BzSyCL56Jyht9b2/Xy4t36RASlwWMc52sH7znd/S/C19fJMS BZVk7DQk2C7IRTwNpPuJPBxPb6sJMoKky60UFgHwL10YqgqTuv2Ej7USr9bO2XGFqdc9 p+XGozV7QLDtkJUqKaJcfFBlkpAxTuJ6Ti2lRfSKfBAUqAPE3UU5n5x+UjDhOY6PVkKv yG5mDrVTu0aGoccz71FFnefH5HzTZe2VisNqZmqPqdQcGkZhXfx2mdH0ziyn/5mEXqoD 2PLQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774605485; x=1775210285; 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=gS7pLG3uYEpArRgt6vG5bXFBL6J9P37FPWvzPrTAtmQ=; b=dLv+ldCrCuJ3BMSS28akxr2v+2bAS1MdYijVqZ2CfiLXy0bMzdfhiZzo4FIEJjCe47 yTkaxrNTRgL36KmieD4RkEDw8K89MHVawJpWuTa7W6HI2P2PtyFKi7YT9hxW8sO+6W24 H3ZQXVPyh5b4BQBHjSltxPlwDWhG2hDp5TqegsD9OCd8oEzpGTrz8QvdPVgZeWHsksHr cPwjyeRzrkvV/mgnY86K7htWhXV9EsH5ZiVa7F1w75QNsoP79E9UcZYsEHHFwuTXFEen XD/8JK77IIGIYn6qWVVauKXRVlLXCqLKIDYKsFxbDEISf9haQ421tiOgwbKzdB4jKPYF UhMg== X-Gm-Message-State: AOJu0YxgXJd3RgTtQaZQhtQTgMc5OWaR2Z3yASr7ivD1v2lCsnbMO6k0 9wY0Ks6UghhpC6BjnuJ+ZwckA/cmjE5QpLZ8cAmRStf3TXzjlg2hxORSzCQuFDDoCwj1muMRoHJ vgQDrxQ== X-Gm-Gg: ATEYQzwu3kGKOY6Dd++GdQhRRrii1aDgPT7plaJ9/2uT2emf7m9lAkYHKWlw9mJqUiE Ak//x0PYVOFlRL5/ZXzdrtdA+n37y7QBRfRDktB2Bq14kPuR3V/JUfAK2QWZEFAt5Kp39krUjFa 52mcQwTEeWDxRJEl0S4lE+V7YWSP/W2J225dvC5cdWHVaZNMgTT7yqTXD/Co5aL+Z3TsY8WU8RI kf3sXSgp8VbrOJU3HmudJaN0bZP17Rx6r92viLR8c4cYYw27cuFoJZCpXznqaRYhronsvYURca/ dsC8zCZsBV3jP8q1tzwkhtKy1yy1XR+l0dKRi0uGDxpr4TeifrH3uFxf0WQgx1uRq1Y+1BQdjJI MatDhiFTUKLiRxivASDDy5byTZdUGzBy/A1OsDn0LQrsmYjBpuUR+dDSGjpuHM8cW/qO3Ngqwo4 r9Ml5KLX9IHI14A2iTTmagefp7pGkhS5wFcWFWJMMduHl8ukjATwwg2ZO8CxAw1GhdMlVxAaV2d W++oy9FXe5bXTg= X-Received: by 2002:a05:600c:3510:b0:486:ffa3:593 with SMTP id 5b1f17b1804b1-487280abccdmr24815735e9.28.1774605485036; Fri, 27 Mar 2026 02:58:05 -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-4872715d78fsm12884285e9.22.2026.03.27.02.58.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 02:58:04 -0700 (PDT) Message-ID: <9870fa5b-93bc-48e9-847a-47908703c61c@suse.com> Date: Fri, 27 Mar 2026 10:58:03 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 5/6] bfd/ELF: fold BFD_RELOC__PCREL* From: Jan Beulich To: Binutils References: <2751d8ad-591b-4226-aeaa-a873270bce29@suse.com> Content-Language: en-US Cc: Hans-Peter Nilsson , Chenghua Xu , Zhensong Liu , Palmer Dabbelt , Andrew Waterman , Jim Wilson , Nelson Chu 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: <2751d8ad-591b-4226-aeaa-a873270bce29@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 There's no need to have a separate reloc per arch; just like for other more or less generic ones a single one will (mostly) do, as long as the resulting reloc's properties fit such a generic use (in the assembler it could, after all, also result from ordinary expressions or uses with the .reloc directive). Arm64, C-Sky, and KVX - sadly - are once again exceptions. For cris it's a PLT reloc which is being replaced. For msp430 also drop BFD_RELOC_MSP430_16_BYTE, which has already been merely an alias of BFD_RELOC_16 (resolving to R_MSP430_16_BYTE). --- It's not clear to me why LoongArch's "fast" lookup stopped at BFD_RELOC_LARCH_RELAX (which is also unlike the range special cased in gas); subsequent relocations also are contiguous. IOW instead of dropping BFD_RELOC_LARCH_{32,64}_PCREL (and moving the "terminator" slightly back), the target may want (need) excluding here as well. --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3879,8 +3879,7 @@ enum bfd_reloc_code_real BFD_RELOC_NS32K_DISP_16_PCREL, BFD_RELOC_NS32K_DISP_32_PCREL, - /* PDP11 relocations. */ - BFD_RELOC_PDP11_DISP_8_PCREL, + /* PDP11 relocation(s). */ BFD_RELOC_PDP11_DISP_6_PCREL, /* Picojava relocs. Not all of these appear in object files. */ @@ -3888,8 +3887,6 @@ enum bfd_reloc_code_real BFD_RELOC_PJ_CODE_LO16, BFD_RELOC_PJ_CODE_DIR16, BFD_RELOC_PJ_CODE_DIR32, - BFD_RELOC_PJ_CODE_REL16, - BFD_RELOC_PJ_CODE_REL32, /* Power(rs6000) and PowerPC relocations. */ BFD_RELOC_PPC_B26, @@ -5292,7 +5289,6 @@ enum bfd_reloc_code_real BFD_RELOC_RISCV_SET8, BFD_RELOC_RISCV_SET16, BFD_RELOC_RISCV_SET32, - BFD_RELOC_RISCV_32_PCREL, BFD_RELOC_RISCV_SET_ULEB128, BFD_RELOC_RISCV_SUB_ULEB128, @@ -5832,10 +5828,6 @@ enum bfd_reloc_code_real /* 32-bit offset to symbol with PLT entry, relative to GOT. */ BFD_RELOC_CRIS_32_PLT_GOTREL, - /* 32-bit offset to symbol with PLT entry, relative to this - relocation. */ - BFD_RELOC_CRIS_32_PLT_PCREL, - /* Relocs used in TLS code for CRIS. */ BFD_RELOC_CRIS_32_GOT_GD, BFD_RELOC_CRIS_16_GOT_GD, @@ -5927,8 +5919,6 @@ enum bfd_reloc_code_real BFD_RELOC_MSP430_10_PCREL, BFD_RELOC_MSP430_16_PCREL, BFD_RELOC_MSP430_16, - BFD_RELOC_MSP430_16_PCREL_BYTE, - BFD_RELOC_MSP430_16_BYTE, BFD_RELOC_MSP430_2X_PCREL, BFD_RELOC_MSP430_RL_PCREL, BFD_RELOC_MSP430_ABS8, @@ -7207,7 +7197,6 @@ enum bfd_reloc_code_real BFD_RELOC_LARCH_TLS_LD_HI20, BFD_RELOC_LARCH_TLS_GD_PC_HI20, BFD_RELOC_LARCH_TLS_GD_HI20, - BFD_RELOC_LARCH_32_PCREL, BFD_RELOC_LARCH_RELAX, BFD_RELOC_LARCH_DELETE, BFD_RELOC_LARCH_ALIGN, @@ -7217,7 +7206,6 @@ enum bfd_reloc_code_real BFD_RELOC_LARCH_SUB6, BFD_RELOC_LARCH_ADD_ULEB128, BFD_RELOC_LARCH_SUB_ULEB128, - BFD_RELOC_LARCH_64_PCREL, BFD_RELOC_LARCH_CALL36, BFD_RELOC_LARCH_TLS_DESC_PC_HI20, BFD_RELOC_LARCH_TLS_DESC_PC_LO12, --- a/bfd/elf32-cris.c +++ b/bfd/elf32-cris.c @@ -408,7 +408,7 @@ static const struct cris_reloc_map cris_ { BFD_RELOC_CRIS_32_GOTPLT, R_CRIS_32_GOTPLT }, { BFD_RELOC_CRIS_32_GOTREL, R_CRIS_32_GOTREL }, { BFD_RELOC_CRIS_32_PLT_GOTREL, R_CRIS_32_PLT_GOTREL }, - { BFD_RELOC_CRIS_32_PLT_PCREL, R_CRIS_32_PLT_PCREL }, + { BFD_RELOC_32_PLT_PCREL, R_CRIS_32_PLT_PCREL }, { BFD_RELOC_CRIS_32_GOT_GD, R_CRIS_32_GOT_GD }, { BFD_RELOC_CRIS_16_GOT_GD, R_CRIS_16_GOT_GD }, { BFD_RELOC_CRIS_32_GD, R_CRIS_32_GD }, --- a/bfd/elf32-msp430.c +++ b/bfd/elf32-msp430.c @@ -622,8 +622,7 @@ static const struct msp430_reloc_map msp {BFD_RELOC_16, R_MSP430_16_BYTE}, {BFD_RELOC_MSP430_16_PCREL, R_MSP430_16_PCREL}, {BFD_RELOC_MSP430_16, R_MSP430_16}, - {BFD_RELOC_MSP430_16_PCREL_BYTE, R_MSP430_16_PCREL_BYTE}, - {BFD_RELOC_MSP430_16_BYTE, R_MSP430_16_BYTE}, + {BFD_RELOC_16_PCREL, R_MSP430_16_PCREL_BYTE}, {BFD_RELOC_MSP430_2X_PCREL, R_MSP430_2X_PCREL}, {BFD_RELOC_MSP430_RL_PCREL, R_MSP430_RL_PCREL}, {BFD_RELOC_8, R_MSP430_8}, --- a/bfd/elf32-pj.c +++ b/bfd/elf32-pj.c @@ -271,8 +271,8 @@ static const struct elf_reloc_map pj_rel { BFD_RELOC_PJ_CODE_DIR32, R_PJ_CODE_DIR32 }, { BFD_RELOC_PJ_CODE_LO16, R_PJ_CODE_LO16 }, { BFD_RELOC_PJ_CODE_HI16, R_PJ_CODE_HI16 }, - { BFD_RELOC_PJ_CODE_REL32, R_PJ_CODE_REL32 }, - { BFD_RELOC_PJ_CODE_REL16, R_PJ_CODE_REL16 }, + { BFD_RELOC_32_PCREL, R_PJ_CODE_REL32 }, + { BFD_RELOC_16_PCREL, R_PJ_CODE_REL16 }, { BFD_RELOC_VTABLE_INHERIT, R_PJ_GNU_VTINHERIT }, { BFD_RELOC_VTABLE_ENTRY, R_PJ_GNU_VTENTRY }, }; --- a/bfd/elfxx-loongarch.c +++ b/bfd/elfxx-loongarch.c @@ -1389,7 +1389,7 @@ static loongarch_reloc_howto_type loonga 0, /* src_mask */ 0xffffffff, /* dst_mask */ true, /* pcrel_offset */ - BFD_RELOC_LARCH_32_PCREL, /* bfd_reloc_code_real_type */ + BFD_RELOC_32_PCREL, /* bfd_reloc_code_real_type */ reloc_sign_bits, /* adjust_reloc_bits */ NULL), /* larch_reloc_type_name */ @@ -1581,7 +1581,7 @@ static loongarch_reloc_howto_type loonga 0, /* src_mask */ 0xffffffffffffffff, /* dst_mask */ true, /* pcrel_offset */ - BFD_RELOC_LARCH_64_PCREL, /* bfd_reloc_code_real_type */ + BFD_RELOC_64_PCREL, /* bfd_reloc_code_real_type */ NULL, /* adjust_reloc_bits */ NULL), /* larch_reloc_type_name */ @@ -2144,10 +2144,10 @@ loongarch_reloc_type_lookup (bfd *abfd A BFD_ASSERT (ARRAY_SIZE (loongarch_howto_table) == R_LARCH_count); /* Fast search for new reloc types. */ - if (BFD_RELOC_LARCH_B16 <= code && code < BFD_RELOC_LARCH_RELAX) + if (BFD_RELOC_LARCH_B16 <= code && code <= BFD_RELOC_LARCH_TLS_GD_HI20) { - BFD_ASSERT (BFD_RELOC_LARCH_RELAX - BFD_RELOC_LARCH_B16 - == R_LARCH_RELAX - R_LARCH_B16); + BFD_ASSERT (BFD_RELOC_LARCH_TLS_GD_HI20 - BFD_RELOC_LARCH_B16 + == R_LARCH_TLS_GD_HI20 - R_LARCH_B16); loongarch_reloc_howto_type *ht; ht = &loongarch_howto_table[code - BFD_RELOC_LARCH_B16 + R_LARCH_B16]; BFD_ASSERT (ht->bfd_type == code); --- a/bfd/elfxx-riscv.c +++ b/bfd/elfxx-riscv.c @@ -1020,7 +1020,7 @@ static const struct elf_reloc_map riscv_ { BFD_RELOC_RISCV_SET8, R_RISCV_SET8 }, { BFD_RELOC_RISCV_SET16, R_RISCV_SET16 }, { BFD_RELOC_RISCV_SET32, R_RISCV_SET32 }, - { BFD_RELOC_RISCV_32_PCREL, R_RISCV_32_PCREL }, + { BFD_RELOC_32_PCREL, R_RISCV_32_PCREL }, { BFD_RELOC_RISCV_SET_ULEB128, R_RISCV_SET_ULEB128 }, { BFD_RELOC_RISCV_SUB_ULEB128, R_RISCV_SUB_ULEB128 }, }; --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1467,14 +1467,11 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_NS32K_DISP_8_PCREL", "BFD_RELOC_NS32K_DISP_16_PCREL", "BFD_RELOC_NS32K_DISP_32_PCREL", - "BFD_RELOC_PDP11_DISP_8_PCREL", "BFD_RELOC_PDP11_DISP_6_PCREL", "BFD_RELOC_PJ_CODE_HI16", "BFD_RELOC_PJ_CODE_LO16", "BFD_RELOC_PJ_CODE_DIR16", "BFD_RELOC_PJ_CODE_DIR32", - "BFD_RELOC_PJ_CODE_REL16", - "BFD_RELOC_PJ_CODE_REL32", "BFD_RELOC_PPC_B26", "BFD_RELOC_PPC_BA26", "BFD_RELOC_PPC_TOC16", @@ -2311,7 +2308,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_RISCV_SET8", "BFD_RELOC_RISCV_SET16", "BFD_RELOC_RISCV_SET32", - "BFD_RELOC_RISCV_32_PCREL", "BFD_RELOC_RISCV_SET_ULEB128", "BFD_RELOC_RISCV_SUB_ULEB128", "BFD_RELOC_RL78_NEG8", @@ -2622,7 +2618,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_CRIS_16_GOTPLT", "BFD_RELOC_CRIS_32_GOTREL", "BFD_RELOC_CRIS_32_PLT_GOTREL", - "BFD_RELOC_CRIS_32_PLT_PCREL", "BFD_RELOC_CRIS_32_GOT_GD", "BFD_RELOC_CRIS_16_GOT_GD", "BFD_RELOC_CRIS_32_GD", @@ -2691,8 +2686,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_MSP430_10_PCREL", "BFD_RELOC_MSP430_16_PCREL", "BFD_RELOC_MSP430_16", - "BFD_RELOC_MSP430_16_PCREL_BYTE", - "BFD_RELOC_MSP430_16_BYTE", "BFD_RELOC_MSP430_2X_PCREL", "BFD_RELOC_MSP430_RL_PCREL", "BFD_RELOC_MSP430_ABS8", @@ -3398,7 +3391,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_LARCH_TLS_LD_HI20", "BFD_RELOC_LARCH_TLS_GD_PC_HI20", "BFD_RELOC_LARCH_TLS_GD_HI20", - "BFD_RELOC_LARCH_32_PCREL", "BFD_RELOC_LARCH_RELAX", "BFD_RELOC_LARCH_DELETE", "BFD_RELOC_LARCH_ALIGN", @@ -3408,7 +3400,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_LARCH_SUB6", "BFD_RELOC_LARCH_ADD_ULEB128", "BFD_RELOC_LARCH_SUB_ULEB128", - "BFD_RELOC_LARCH_64_PCREL", "BFD_RELOC_LARCH_CALL36", "BFD_RELOC_LARCH_TLS_DESC_PC_HI20", "BFD_RELOC_LARCH_TLS_DESC_PC_LO12", --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -2443,11 +2443,9 @@ ENUMDOC ns32k relocations. ENUM - BFD_RELOC_PDP11_DISP_8_PCREL -ENUMX BFD_RELOC_PDP11_DISP_6_PCREL ENUMDOC - PDP11 relocations. + PDP11 relocation(s). ENUM BFD_RELOC_PJ_CODE_HI16 @@ -2457,10 +2455,6 @@ ENUMX BFD_RELOC_PJ_CODE_DIR16 ENUMX BFD_RELOC_PJ_CODE_DIR32 -ENUMX - BFD_RELOC_PJ_CODE_REL16 -ENUMX - BFD_RELOC_PJ_CODE_REL32 ENUMDOC Picojava relocs. Not all of these appear in object files. @@ -4748,8 +4742,6 @@ ENUMX ENUMX BFD_RELOC_RISCV_SET32 ENUMX - BFD_RELOC_RISCV_32_PCREL -ENUMX BFD_RELOC_RISCV_SET_ULEB128 ENUMX BFD_RELOC_RISCV_SUB_ULEB128 @@ -5612,11 +5604,6 @@ ENUM BFD_RELOC_CRIS_32_PLT_GOTREL ENUMDOC 32-bit offset to symbol with PLT entry, relative to GOT. -ENUM - BFD_RELOC_CRIS_32_PLT_PCREL -ENUMDOC - 32-bit offset to symbol with PLT entry, relative to this - relocation. ENUM BFD_RELOC_CRIS_32_GOT_GD @@ -5783,10 +5770,6 @@ ENUMX ENUMX BFD_RELOC_MSP430_16 ENUMX - BFD_RELOC_MSP430_16_PCREL_BYTE -ENUMX - BFD_RELOC_MSP430_16_BYTE -ENUMX BFD_RELOC_MSP430_2X_PCREL ENUMX BFD_RELOC_MSP430_RL_PCREL @@ -7794,9 +7777,6 @@ ENUMX BFD_RELOC_LARCH_TLS_GD_HI20 ENUMX - BFD_RELOC_LARCH_32_PCREL - -ENUMX BFD_RELOC_LARCH_RELAX ENUMX @@ -7822,9 +7802,6 @@ ENUMX BFD_RELOC_LARCH_SUB_ULEB128 ENUMX - BFD_RELOC_LARCH_64_PCREL - -ENUMX BFD_RELOC_LARCH_CALL36 ENUMX --- a/gas/config/tc-cris.c +++ b/gas/config/tc-cris.c @@ -3502,7 +3502,7 @@ cris_get_reloc_suffix (char **cPP, bfd_r PICMAP ("GOTPLT16", BFD_RELOC_CRIS_16_GOTPLT), PICMAP ("GOTPLT", BFD_RELOC_CRIS_32_GOTPLT), PICMAP ("PLTG", BFD_RELOC_CRIS_32_PLT_GOTREL), - PICMAP ("PLT", BFD_RELOC_CRIS_32_PLT_PCREL), + PICMAP ("PLT", BFD_RELOC_32_PLT_PCREL), PICMAP ("GOTOFF", BFD_RELOC_CRIS_32_GOTREL), PICMAP ("GOT16", BFD_RELOC_CRIS_16_GOT), PICMAP ("GOT", BFD_RELOC_CRIS_32_GOT), @@ -3672,7 +3672,7 @@ cris_number_to_imm (char *bufp, long val case BFD_RELOC_CRIS_16_GOTPLT: case BFD_RELOC_CRIS_32_GOTPLT: case BFD_RELOC_CRIS_32_PLT_GOTREL: - case BFD_RELOC_CRIS_32_PLT_PCREL: + case BFD_RELOC_32_PLT_PCREL: /* We don't want to put in any kind of non-zero bits in the data being relocated for these. */ md_number_to_chars (bufp, 0, n); @@ -3924,7 +3924,7 @@ tc_gen_reloc (asection *section ATTRIBUT case BFD_RELOC_CRIS_32_GOTPLT: case BFD_RELOC_CRIS_32_GOTREL: case BFD_RELOC_CRIS_32_PLT_GOTREL: - case BFD_RELOC_CRIS_32_PLT_PCREL: + case BFD_RELOC_32_PLT_PCREL: case BFD_RELOC_32: case BFD_RELOC_32_PCREL: case BFD_RELOC_16: @@ -4101,7 +4101,7 @@ md_cris_force_relocation (struct fix *fi case BFD_RELOC_CRIS_32_GOTPLT: case BFD_RELOC_CRIS_32_GOTREL: case BFD_RELOC_CRIS_32_PLT_GOTREL: - case BFD_RELOC_CRIS_32_PLT_PCREL: + case BFD_RELOC_32_PLT_PCREL: return 1; default: ; --- a/gas/config/tc-cris.h +++ b/gas/config/tc-cris.h @@ -79,7 +79,7 @@ extern int md_cris_force_relocation (str || (RTYPE) == BFD_RELOC_CRIS_32_GOTPLT \ || (RTYPE) == BFD_RELOC_CRIS_32_GOTREL \ || (RTYPE) == BFD_RELOC_CRIS_32_PLT_GOTREL \ - || (RTYPE) == BFD_RELOC_CRIS_32_PLT_PCREL) + || (RTYPE) == BFD_RELOC_32_PLT_PCREL) /* Make sure we don't resolve fixups for which we want to emit dynamic relocations. */ --- a/gas/config/tc-loongarch.c +++ b/gas/config/tc-loongarch.c @@ -865,8 +865,10 @@ loongarch_args_parser_can_match_arg_help _("not support reloc bit-field\nfmt: %c%c %s\nargs: %s"), esc_ch1, esc_ch2, bit_field, arg); - if (ip->reloc_info[0].type >= BFD_RELOC_LARCH_B16 - && ip->reloc_info[0].type <= BFD_RELOC_LARCH_TLS_DESC_PCADD_LO12) + if ((ip->reloc_info[0].type >= BFD_RELOC_LARCH_B16 + && ip->reloc_info[0].type <= BFD_RELOC_LARCH_TLS_DESC_PCADD_LO12) + || ip->reloc_info[0].type == BFD_RELOC_32_PCREL + || ip->reloc_info[0].type == BFD_RELOC_64_PCREL) { /* As we compact stack-relocs, it is no need for pop operation. But break out until here in order to check the imm field. @@ -1714,10 +1716,10 @@ md_apply_fix (fixS *fixP, valueT *valP, switch (fixP->fx_r_type) { case BFD_RELOC_64: - fixP->fx_r_type = BFD_RELOC_LARCH_64_PCREL; + fixP->fx_r_type = BFD_RELOC_64_PCREL; break; case BFD_RELOC_32: - fixP->fx_r_type = BFD_RELOC_LARCH_32_PCREL; + fixP->fx_r_type = BFD_RELOC_32_PCREL; break; default: break; @@ -1736,7 +1738,7 @@ md_apply_fix (fixS *fixP, valueT *valP, && S_GET_VALUE (fixP->fx_subsy) == fixP->fx_frag->fr_address + fixP->fx_where) { - fixP->fx_r_type = BFD_RELOC_LARCH_32_PCREL; + fixP->fx_r_type = BFD_RELOC_32_PCREL; fixP->fx_subsy = NULL; break; } --- a/gas/config/tc-msp430.c +++ b/gas/config/tc-msp430.c @@ -291,7 +291,7 @@ target_is_430xv2 (void) : ((OP).vshift == 1 \ ? BFD_RELOC_MSP430_ABS_HI16 : BFD_RELOC_16)) \ : ((imm_op || byte_op) \ - ? BFD_RELOC_MSP430_16_BYTE : BFD_RELOC_MSP430_16)) + ? BFD_RELOC_16 : BFD_RELOC_MSP430_16)) /* Generate a 16-bit pc-relative relocation. For the 430X we generate a relocation without linker range checking. @@ -302,7 +302,7 @@ target_is_430xv2 (void) (target_is_430x () \ ? BFD_RELOC_MSP430X_PCR16 \ : (imm_op || byte_op) \ - ? BFD_RELOC_MSP430_16_PCREL_BYTE : BFD_RELOC_MSP430_16_PCREL) + ? BFD_RELOC_16_PCREL : BFD_RELOC_MSP430_16_PCREL) /* Profiling capability: It is a performance hit to use gcc's profiling approach for this tiny target. @@ -4523,7 +4523,7 @@ md_apply_fix (fixS * fixp, valueT * valu _("odd address operand: %ld"), value); /* Fall through. */ - case BFD_RELOC_MSP430_16_PCREL_BYTE: + case BFD_RELOC_16_PCREL: /* Nothing to be corrected here. */ if (value < -32768 || value > 65536) as_bad_where (fixp->fx_file, fixp->fx_line, @@ -4533,7 +4533,6 @@ md_apply_fix (fixS * fixp, valueT * valu case BFD_RELOC_MSP430X_ABS16: case BFD_RELOC_MSP430_16: case BFD_RELOC_16: - case BFD_RELOC_MSP430_16_BYTE: value &= 0xffff; /* Get rid of extended sign. */ bfd_putl16 (value, where); break; --- a/gas/config/tc-pdp11.c +++ b/gas/config/tc-pdp11.c @@ -268,7 +268,7 @@ md_apply_fix (fixS *fixP, mask = 0xffffffff; shift = 0; break; - case BFD_RELOC_PDP11_DISP_8_PCREL: + case BFD_RELOC_8_PCREL: mask = 0x00ff; shift = 1; break; @@ -790,7 +790,7 @@ md_assemble (char *instruction_string) new_pointer = parse_expression (str, &op1); op1.code = 0; op1.reloc.pc_rel = 1; - op1.reloc.type = BFD_RELOC_PDP11_DISP_8_PCREL; + op1.reloc.type = BFD_RELOC_8_PCREL; if (op1.reloc.exp.X_op != O_symbol) { op1.error = _("Symbol expected"); --- a/gas/config/tc-pj.c +++ b/gas/config/tc-pj.c @@ -127,12 +127,12 @@ c_to_r (int x) case O_8: return BFD_RELOC_8; case O_R16: - return BFD_RELOC_PJ_CODE_REL16; + return BFD_RELOC_16_PCREL; case O_U16: case O_16: return BFD_RELOC_PJ_CODE_DIR16; case O_R32: - return BFD_RELOC_PJ_CODE_REL32; + return BFD_RELOC_32_PCREL; case O_32: return BFD_RELOC_PJ_CODE_DIR32; } @@ -375,7 +375,7 @@ md_apply_fix (fixS *fixP, valueT * valP, fixP->fx_done = 0; return; - case BFD_RELOC_PJ_CODE_REL16: + case BFD_RELOC_16_PCREL: if (val < -0x8000 || val >= 0x7fff) as_bad_where (fixP->fx_file, fixP->fx_line, _("pcrel too far")); buf[0] |= (val >> 8) & 0xff; @@ -404,7 +404,7 @@ md_apply_fix (fixS *fixP, valueT * valP, break; case BFD_RELOC_PJ_CODE_DIR32: - case BFD_RELOC_PJ_CODE_REL32: + case BFD_RELOC_32_PCREL: *buf++ = val >> 24; *buf++ = val >> 16; *buf++ = val >> 8; --- a/gas/config/tc-riscv.c +++ b/gas/config/tc-riscv.c @@ -4749,7 +4749,7 @@ md_apply_fix (fixS *fixP, valueT *valP, && S_GET_VALUE (fixP->fx_subsy) == fixP->fx_frag->fr_address + fixP->fx_where) { - fixP->fx_r_type = BFD_RELOC_RISCV_32_PCREL; + fixP->fx_r_type = BFD_RELOC_32_PCREL; fixP->fx_subsy = NULL; break; }