From patchwork Fri Mar 27 09:51:27 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132358 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 61C0A4B9DB6A for ; Fri, 27 Mar 2026 09:52:12 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 61C0A4B9DB6A 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=YwGB1v7E X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by sourceware.org (Postfix) with ESMTPS id B42994BA2E1E for ; Fri, 27 Mar 2026 09:51:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org B42994BA2E1E 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 B42994BA2E1E Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::32e ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605091; cv=none; b=B6n32HwoiTcgH7eGu6CxegK5w4T6NOA2G6L9d5N8o9G/mYggYaRHa0NJIoOOnDj7fOZ6LrAQfse8qz6XqyIiF4INTSKyHuBUq5/RV9Axe2otX80NXxOHhU0/DgvouaDD2+7BKExs2/e6USuizA2L4khgpCe/fPvesyQ6/k5Hbm8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605091; c=relaxed/simple; bh=JNxhUVjGuKsCNvvgoBuQZKqSKv2dwU1Wb+Z789zFWe0=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=mw92oTIcwjJnfujT0eryLUh4AV8j2HXH6v/6J/0QJTEZ1vw5IgJtGZhEx6MppA9PefQHIRy3q2+2KtuPpdsiQIGR+CcwplqUInVb3ijgMkfRq1g9p9fNSRTPoAeX0IsgGrL332V1j3Nj6kBOA3eAdStUjK2giTROrI07/RRW2K4= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B42994BA2E1E Received: by mail-wm1-x32e.google.com with SMTP id 5b1f17b1804b1-486fb14227cso23518445e9.3 for ; Fri, 27 Mar 2026 02:51:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774605090; x=1775209890; 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=HmpVPcrxfgVlXb/dhU+1kciN8/zU1XVdAjLQ4Yw7JDQ=; b=YwGB1v7EWX/jV2gksv9LrkMt1a3mRRVmengviz5Gox5WRS3QVkodOLzIayljre36X7 QLxuvURituLqtBo2yk84eS0f/chOiOaZ0usW9cK74WbLUWxRuBqAYaxk4op/OVRPSb68 Y8IkgYYBmO4uxK1CW1GD2kapLDkbkD9dsgYA/Lt3bh108gSeEiGfaf/PHhV+qPUVzdKo ZYCO8jpNy9TBFgFVqEiVA/bTPmg1i5Rrj9CU2uZxaMfZFfzaoOkubfgiPrHlqC507TeE kHS60LPrE1h5RlWJ19AuzIOSsTATI8+lgiBIB1QzA7I/TXhCsamEjvdHJXvj0S7fffUC K6gQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774605090; x=1775209890; 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=HmpVPcrxfgVlXb/dhU+1kciN8/zU1XVdAjLQ4Yw7JDQ=; b=Q6jEedyLmPiJ1j3Uecca9cJCO+d12XYDYQaoUJseUf0I+5Sne5in5/UOoEWc4CDQJg TziJmn0ghEKGEGcu2fuxdeiF4FCmUv8wqgUZHLokELvX6esc+MtYp8Pdk7BxnCzEeiyx QXhqnbhEZz3s3tSlZZcxVgd3MDq35Zz3N1EOzjulGaiy9ZndnSdrfiviAnEU6yULvJkO 430StMY7dzqin9sYsstX/IvlwU34N/90NHcY7vm8mDW5F3+z0bR7qfpvXU7f9lOLEYok Iu2uQ2VRHEUIcL9UGNA6W18nL6XER06/BAacZEKsGh7+leHI0tK3btsUT9dOoIDu8KuD cqwg== X-Gm-Message-State: AOJu0Yx6t/hVjD5f5ioYHgBjftUWzKmcN3qck9KlV6I3yY39RYVW0xQo WlXFMcDYLsQ/iP/8Eev/u20uZYAXmm57CcFmS/hjfS+fqhOZEzqYrQisP1F5ZvPZZGX/swnxIQc /keq9uA== X-Gm-Gg: ATEYQzzHPLTHWYzIO/YH8gffOvbYwsPCCIMyX1omiyKJtZnwBJqDIfVJQusoXmj8ddZ cDiBwLrsbA7vnouqq2NJwSVc92pEepnzcFJ5/1IJcqSdunttwkcM7mtKjKlFyN1lSeSnwX3sudx 8j1qt3X65WY5Spjl6PgMxuniauVr0GjKxhb+cFvF+xkr4uqxeyGt44koM56xFUxkBCJ3PWyNUiZ cLMF1akVmGpFw0lK4UsUS6NSt1LyL7OYCL0f9Ne6p0OsQY8TyTS0XhORw+m0P/42VafF+IBeG9b N+kc8NRy0f3yfY1RIbsCBx8LfkkAFkSG8kf49RQXbJFUEFPIRC5eXQIiUCksU8lYfO9QiQchTnj I8d9GI6tgdpU4+9qmVS9v5su0+DPakR1uDf7Zpu8M9k9CvtxAUlZx0VJKKPr8KHFZdPE+dx23nr 6mZHp1Zw0CJ99v/l9Ea5hGHBom8ieDIk+U22ly/RBQH5K6M2nMAZLZLoFunvXOeGFmeTjJlkEnX 7+HQ2QckmLaKM0= X-Received: by 2002:a05:600c:a108:b0:485:4388:348b with SMTP id 5b1f17b1804b1-48727c81d77mr25079535e9.0.1774605089399; Fri, 27 Mar 2026 02:51:29 -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-48722be47a4sm126314715e9.0.2026.03.27.02.51.28 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 02:51:29 -0700 (PDT) Message-ID: <7b4fee08-4366-4a33-8765-109508f21859@suse.com> Date: Fri, 27 Mar 2026 10:51:27 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 1/6] bfd/ELF: fold BFD_RELOC__GOTOFF* From: Jan Beulich To: Binutils References: <2751d8ad-591b-4226-aeaa-a873270bce29@suse.com> Content-Language: en-US Cc: Claudiu Zissulescu , Nick Clifton , "ramana.radhakrishnan@arm.com" , Richard Earnshaw , Jie Zhang , Alexandre Oliva , "H.J. Lu" , Jon Beniston , Doug Evans , Andreas Krebbel 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=-3017.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, UPPERCASE_50_75, URIBL_BLOCKED autolearn=no 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 For many of the cases there's no need to have separate relocs per arch; just like for other more or less generic ones a single one (per purpose; a 64-bit generic one is being introduced) will do. Arm64, C-Sky, and KVX - sadly - continue to be exceptions. --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3306,6 +3306,7 @@ enum bfd_reloc_code_real BFD_RELOC_32_GOT_PCREL, BFD_RELOC_16_GOT_PCREL, BFD_RELOC_8_GOT_PCREL, + BFD_RELOC_64_GOTOFF, BFD_RELOC_32_GOTOFF, BFD_RELOC_16_GOTOFF, BFD_RELOC_LO16_GOTOFF, @@ -3760,8 +3761,6 @@ enum bfd_reloc_code_real BFD_RELOC_FRV_FUNCDESC_GOTOFFHI, BFD_RELOC_FRV_FUNCDESC_GOTOFFLO, BFD_RELOC_FRV_GOTOFF12, - BFD_RELOC_FRV_GOTOFFHI, - BFD_RELOC_FRV_GOTOFFLO, BFD_RELOC_FRV_GETTLSOFF, BFD_RELOC_FRV_TLSDESC_VALUE, BFD_RELOC_FRV_GOTTLSDESC12, @@ -3817,7 +3816,6 @@ enum bfd_reloc_code_real /* i386/elf relocations. */ BFD_RELOC_386_GOT32, BFD_RELOC_386_PLT32, - BFD_RELOC_386_GOTOFF, BFD_RELOC_386_GOTPC, BFD_RELOC_386_TLS_TPOFF, BFD_RELOC_386_TLS_IE, @@ -3848,7 +3846,6 @@ enum bfd_reloc_code_real BFD_RELOC_X86_64_DTPOFF32, BFD_RELOC_X86_64_GOTTPOFF, BFD_RELOC_X86_64_TPOFF32, - BFD_RELOC_X86_64_GOTOFF64, BFD_RELOC_X86_64_GOTPC32, BFD_RELOC_X86_64_GOT64, BFD_RELOC_X86_64_GOTPCREL64, @@ -4165,7 +4162,6 @@ enum bfd_reloc_code_real /* Relocations for setting up GOTs and PLTs for shared libraries. */ BFD_RELOC_ARM_GOT32, - BFD_RELOC_ARM_GOTOFF, BFD_RELOC_ARM_GOTPC, BFD_RELOC_ARM_GOT_PREL, @@ -4352,7 +4348,6 @@ enum bfd_reloc_code_real BFD_RELOC_ARC_32_PCREL, BFD_RELOC_ARC_GOT32, BFD_RELOC_ARC_GOTPC32, - BFD_RELOC_ARC_GOTOFF, BFD_RELOC_ARC_GOTPC, BFD_RELOC_ARC_S21W_PCREL_PLT, BFD_RELOC_ARC_S25H_PCREL_PLT, @@ -4417,8 +4412,6 @@ enum bfd_reloc_code_real BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI, BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO, BFD_RELOC_BFIN_GOTOFF17M4, - BFD_RELOC_BFIN_GOTOFFHI, - BFD_RELOC_BFIN_GOTOFFLO, /* ADI Blackfin GOT relocation. */ BFD_RELOC_BFIN_GOT, @@ -4591,9 +4584,6 @@ enum bfd_reloc_code_real BFD_RELOC_M32R_GOT24, BFD_RELOC_M32R_26_PLTREL, BFD_RELOC_M32R_GOTOFF, - BFD_RELOC_M32R_GOTOFF_HI_ULO, - BFD_RELOC_M32R_GOTOFF_HI_SLO, - BFD_RELOC_M32R_GOTOFF_LO, BFD_RELOC_M32R_GOTPC24, BFD_RELOC_M32R_GOT16_HI_ULO, BFD_RELOC_M32R_GOT16_HI_SLO, @@ -4919,8 +4909,6 @@ enum bfd_reloc_code_real BFD_RELOC_V850_32_GOT, BFD_RELOC_V850_22_PLT_PCREL, BFD_RELOC_V850_32_PLT_PCREL, - BFD_RELOC_V850_16_GOTOFF, - BFD_RELOC_V850_32_GOTOFF, /* Start code. */ BFD_RELOC_V850_CODE, @@ -5054,8 +5042,6 @@ enum bfd_reloc_code_real BFD_RELOC_METAG_LOOG, BFD_RELOC_METAG_REL8, BFD_RELOC_METAG_REL16, - BFD_RELOC_METAG_HI16_GOTOFF, - BFD_RELOC_METAG_LO16_GOTOFF, BFD_RELOC_METAG_GETSET_GOTOFF, BFD_RELOC_METAG_GETSET_GOT, BFD_RELOC_METAG_HI16_GOTPC, @@ -5063,7 +5049,6 @@ enum bfd_reloc_code_real BFD_RELOC_METAG_HI16_PLT, BFD_RELOC_METAG_LO16_PLT, BFD_RELOC_METAG_RELBRANCH_PLT, - BFD_RELOC_METAG_GOTOFF, BFD_RELOC_METAG_PLT, BFD_RELOC_METAG_TLS_GD, BFD_RELOC_METAG_TLS_LDM, @@ -5427,9 +5412,6 @@ enum bfd_reloc_code_real /* 32 bit rel. offset to GOT entry. */ BFD_RELOC_390_GOTENT, - /* 64 bit offset to GOT. */ - BFD_RELOC_390_GOTOFF64, - /* 12-bit offset to symbol-entry within GOT, with PLT handling. */ BFD_RELOC_390_GOTPLT12, @@ -6152,8 +6134,6 @@ enum bfd_reloc_code_real BFD_RELOC_LM32_CALL, BFD_RELOC_LM32_BRANCH, BFD_RELOC_LM32_16_GOT, - BFD_RELOC_LM32_GOTOFF_HI16, - BFD_RELOC_LM32_GOTOFF_LO16, /* Difference between two section addreses. Must be followed by a BFD_RELOC_MACH_O_PAIR. */ --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -385,6 +385,7 @@ arc_elf_link_hash_table_create (bfd *abf #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 +#define BFD_RELOC_ARC_GOTOFF BFD_RELOC_32_GOTOFF #define BFD_RELOC_ARC_COPY BFD_RELOC_COPY #define BFD_RELOC_ARC_GLOB_DAT BFD_RELOC_GLOB_DAT #define BFD_RELOC_ARC_JMP_SLOT BFD_RELOC_JMP_SLOT --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -2019,7 +2019,7 @@ static const struct elf32_arm_reloc_map {BFD_RELOC_GLOB_DAT, R_ARM_GLOB_DAT}, {BFD_RELOC_JMP_SLOT, R_ARM_JUMP_SLOT}, {BFD_RELOC_RELATIVE, R_ARM_RELATIVE}, - {BFD_RELOC_ARM_GOTOFF, R_ARM_GOTOFF32}, + {BFD_RELOC_32_GOTOFF, R_ARM_GOTOFF32}, {BFD_RELOC_ARM_GOTPC, R_ARM_GOTPC}, {BFD_RELOC_ARM_GOT_PREL, R_ARM_GOT_PREL}, {BFD_RELOC_ARM_GOT32, R_ARM_GOT32}, --- a/bfd/elf32-bfin.c +++ b/bfd/elf32-bfin.c @@ -1034,8 +1034,8 @@ static const struct bfin_reloc_map bfin_ { BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI, R_BFIN_FUNCDESC_GOTOFFHI }, { BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO, R_BFIN_FUNCDESC_GOTOFFLO }, { BFD_RELOC_BFIN_GOTOFF17M4, R_BFIN_GOTOFF17M4 }, - { BFD_RELOC_BFIN_GOTOFFHI, R_BFIN_GOTOFFHI }, - { BFD_RELOC_BFIN_GOTOFFLO, R_BFIN_GOTOFFLO }, + { BFD_RELOC_HI16_GOTOFF, R_BFIN_GOTOFFHI }, + { BFD_RELOC_LO16_GOTOFF, R_BFIN_GOTOFFLO }, { BFD_RELOC_VTABLE_INHERIT, R_BFIN_GNU_VTINHERIT }, { BFD_RELOC_VTABLE_ENTRY, R_BFIN_GNU_VTENTRY }, --- a/bfd/elf32-frv.c +++ b/bfd/elf32-frv.c @@ -2441,10 +2441,10 @@ frv_reloc_type_lookup (bfd *abfd ATTRIBU case BFD_RELOC_FRV_GOTOFF12: return &elf32_frv_howto_table[ (int) R_FRV_GOTOFF12]; - case BFD_RELOC_FRV_GOTOFFHI: + case BFD_RELOC_HI16_GOTOFF: return &elf32_frv_howto_table[ (int) R_FRV_GOTOFFHI]; - case BFD_RELOC_FRV_GOTOFFLO: + case BFD_RELOC_LO16_GOTOFF: return &elf32_frv_howto_table[ (int) R_FRV_GOTOFFLO]; case BFD_RELOC_FRV_GETTLSOFF: --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -233,8 +233,8 @@ elf_i386_reloc_type_lookup (bfd *abfd, TRACE ("BFD_RELOC_RELATIVE"); return &elf_howto_table[R_386_RELATIVE]; - case BFD_RELOC_386_GOTOFF: - TRACE ("BFD_RELOC_386_GOTOFF"); + case BFD_RELOC_32_GOTOFF: + TRACE ("BFD_RELOC_32_GOTOFF"); return &elf_howto_table[R_386_GOTOFF]; case BFD_RELOC_386_GOTPC: --- a/bfd/elf32-lm32.c +++ b/bfd/elf32-lm32.c @@ -442,8 +442,8 @@ static const struct lm32_reloc_map lm32_ { BFD_RELOC_VTABLE_INHERIT, R_LM32_GNU_VTINHERIT }, { BFD_RELOC_VTABLE_ENTRY, R_LM32_GNU_VTENTRY }, { BFD_RELOC_LM32_16_GOT, R_LM32_16_GOT }, - { BFD_RELOC_LM32_GOTOFF_HI16, R_LM32_GOTOFF_HI16 }, - { BFD_RELOC_LM32_GOTOFF_LO16, R_LM32_GOTOFF_LO16 }, + { BFD_RELOC_HI16_GOTOFF, R_LM32_GOTOFF_HI16 }, + { BFD_RELOC_LO16_GOTOFF, R_LM32_GOTOFF_LO16 }, { BFD_RELOC_COPY, R_LM32_COPY }, { BFD_RELOC_GLOB_DAT, R_LM32_GLOB_DAT }, { BFD_RELOC_JMP_SLOT, R_LM32_JMP_SLOT }, --- a/bfd/elf32-m32r.c +++ b/bfd/elf32-m32r.c @@ -1223,9 +1223,9 @@ static const struct m32r_reloc_map m32r_ { BFD_RELOC_M32R_GOTPC_HI_ULO, R_M32R_GOTPC_HI_ULO }, { BFD_RELOC_M32R_GOTPC_HI_SLO, R_M32R_GOTPC_HI_SLO }, { BFD_RELOC_M32R_GOTPC_LO, R_M32R_GOTPC_LO }, - { BFD_RELOC_M32R_GOTOFF_HI_ULO, R_M32R_GOTOFF_HI_ULO }, - { BFD_RELOC_M32R_GOTOFF_HI_SLO, R_M32R_GOTOFF_HI_SLO }, - { BFD_RELOC_M32R_GOTOFF_LO, R_M32R_GOTOFF_LO }, + { BFD_RELOC_HI16_GOTOFF, R_M32R_GOTOFF_HI_ULO }, + { BFD_RELOC_HI16_S_GOTOFF, R_M32R_GOTOFF_HI_SLO }, + { BFD_RELOC_LO16_GOTOFF, R_M32R_GOTOFF_LO }, }; #endif --- a/bfd/elf32-metag.c +++ b/bfd/elf32-metag.c @@ -709,8 +709,8 @@ static const struct metag_reloc_map meta { BFD_RELOC_VTABLE_ENTRY, R_METAG_GNU_VTENTRY }, { BFD_RELOC_METAG_REL8, R_METAG_REL8 }, { BFD_RELOC_METAG_REL16, R_METAG_REL16 }, - { BFD_RELOC_METAG_HI16_GOTOFF, R_METAG_HI16_GOTOFF }, - { BFD_RELOC_METAG_LO16_GOTOFF, R_METAG_LO16_GOTOFF }, + { BFD_RELOC_HI16_GOTOFF, R_METAG_HI16_GOTOFF }, + { BFD_RELOC_LO16_GOTOFF, R_METAG_LO16_GOTOFF }, { BFD_RELOC_METAG_GETSET_GOTOFF, R_METAG_GETSET_GOTOFF }, { BFD_RELOC_METAG_GETSET_GOT, R_METAG_GETSET_GOT }, { BFD_RELOC_METAG_HI16_GOTPC, R_METAG_HI16_GOTPC }, @@ -718,7 +718,7 @@ static const struct metag_reloc_map meta { BFD_RELOC_METAG_HI16_PLT, R_METAG_HI16_PLT }, { BFD_RELOC_METAG_LO16_PLT, R_METAG_LO16_PLT }, { BFD_RELOC_METAG_RELBRANCH_PLT, R_METAG_RELBRANCH_PLT }, - { BFD_RELOC_METAG_GOTOFF, R_METAG_GOTOFF }, + { BFD_RELOC_32_GOTOFF, R_METAG_GOTOFF }, { BFD_RELOC_METAG_PLT, R_METAG_PLT }, { BFD_RELOC_COPY, R_METAG_COPY }, { BFD_RELOC_JMP_SLOT, R_METAG_JMP_SLOT }, --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -1740,8 +1740,8 @@ static const struct v850_elf_reloc_map v { BFD_RELOC_GLOB_DAT, R_V850_GLOB_DAT }, { BFD_RELOC_JMP_SLOT, R_V850_JMP_SLOT }, { BFD_RELOC_RELATIVE, R_V850_RELATIVE }, - { BFD_RELOC_V850_16_GOTOFF, R_V850_16_GOTOFF }, - { BFD_RELOC_V850_32_GOTOFF, R_V850_32_GOTOFF }, + { BFD_RELOC_16_GOTOFF, R_V850_16_GOTOFF }, + { BFD_RELOC_32_GOTOFF, R_V850_32_GOTOFF }, { BFD_RELOC_V850_CODE, R_V850_CODE }, { BFD_RELOC_V850_DATA, R_V850_DATA }, }; --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -263,7 +263,7 @@ elf_s390_reloc_type_lookup (bfd *abfd, return &elf_howto_table[(int) R_390_GOTENT]; case BFD_RELOC_16_GOTOFF: return &elf_howto_table[(int) R_390_GOTOFF16]; - case BFD_RELOC_390_GOTOFF64: + case BFD_RELOC_64_GOTOFF: return &elf_howto_table[(int) R_390_GOTOFF64]; case BFD_RELOC_390_GOTPLT12: return &elf_howto_table[(int) R_390_GOTPLT12]; --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -255,7 +255,7 @@ static const struct elf_reloc_map x86_64 { BFD_RELOC_X86_64_GOTTPOFF, R_X86_64_GOTTPOFF, }, { BFD_RELOC_X86_64_TPOFF32, R_X86_64_TPOFF32, }, { BFD_RELOC_64_PCREL, R_X86_64_PC64, }, - { BFD_RELOC_X86_64_GOTOFF64, R_X86_64_GOTOFF64, }, + { BFD_RELOC_64_GOTOFF, R_X86_64_GOTOFF64, }, { BFD_RELOC_X86_64_GOTPC32, R_X86_64_GOTPC32, }, { BFD_RELOC_X86_64_GOT64, R_X86_64_GOT64, }, { BFD_RELOC_X86_64_GOTPCREL64,R_X86_64_GOTPCREL64, }, --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1081,6 +1081,7 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_32_GOT_PCREL", "BFD_RELOC_16_GOT_PCREL", "BFD_RELOC_8_GOT_PCREL", + "BFD_RELOC_64_GOTOFF", "BFD_RELOC_32_GOTOFF", "BFD_RELOC_16_GOTOFF", "BFD_RELOC_LO16_GOTOFF", @@ -1373,8 +1374,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_FRV_FUNCDESC_GOTOFFHI", "BFD_RELOC_FRV_FUNCDESC_GOTOFFLO", "BFD_RELOC_FRV_GOTOFF12", - "BFD_RELOC_FRV_GOTOFFHI", - "BFD_RELOC_FRV_GOTOFFLO", "BFD_RELOC_FRV_GETTLSOFF", "BFD_RELOC_FRV_TLSDESC_VALUE", "BFD_RELOC_FRV_GOTTLSDESC12", @@ -1408,7 +1407,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_MN10300_TLS_TPOFF", "BFD_RELOC_386_GOT32", "BFD_RELOC_386_PLT32", - "BFD_RELOC_386_GOTOFF", "BFD_RELOC_386_GOTPC", "BFD_RELOC_386_TLS_TPOFF", "BFD_RELOC_386_TLS_IE", @@ -1437,7 +1435,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_X86_64_DTPOFF32", "BFD_RELOC_X86_64_GOTTPOFF", "BFD_RELOC_X86_64_TPOFF32", - "BFD_RELOC_X86_64_GOTOFF64", "BFD_RELOC_X86_64_GOTPC32", "BFD_RELOC_X86_64_GOT64", "BFD_RELOC_X86_64_GOTPCREL64", @@ -1683,7 +1680,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_ARM_TLS_LDM32_FDPIC", "BFD_RELOC_ARM_TLS_IE32_FDPIC", "BFD_RELOC_ARM_GOT32", - "BFD_RELOC_ARM_GOTOFF", "BFD_RELOC_ARM_GOTPC", "BFD_RELOC_ARM_GOT_PREL", "BFD_RELOC_ARM_TLS_GD32", @@ -1855,7 +1851,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_ARC_32_PCREL", "BFD_RELOC_ARC_GOT32", "BFD_RELOC_ARC_GOTPC32", - "BFD_RELOC_ARC_GOTOFF", "BFD_RELOC_ARC_GOTPC", "BFD_RELOC_ARC_S21W_PCREL_PLT", "BFD_RELOC_ARC_S25H_PCREL_PLT", @@ -1896,8 +1891,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_BFIN_FUNCDESC_GOTOFFHI", "BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO", "BFD_RELOC_BFIN_GOTOFF17M4", - "BFD_RELOC_BFIN_GOTOFFHI", - "BFD_RELOC_BFIN_GOTOFFLO", "BFD_RELOC_BFIN_GOT", "BFD_RELOC_BFIN_PLTPC", "BFD_ARELOC_BFIN_PUSH", @@ -1953,9 +1946,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_M32R_GOT24", "BFD_RELOC_M32R_26_PLTREL", "BFD_RELOC_M32R_GOTOFF", - "BFD_RELOC_M32R_GOTOFF_HI_ULO", - "BFD_RELOC_M32R_GOTOFF_HI_SLO", - "BFD_RELOC_M32R_GOTOFF_LO", "BFD_RELOC_M32R_GOTPC24", "BFD_RELOC_M32R_GOT16_HI_ULO", "BFD_RELOC_M32R_GOT16_HI_SLO", @@ -2124,8 +2114,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_V850_32_GOT", "BFD_RELOC_V850_22_PLT_PCREL", "BFD_RELOC_V850_32_PLT_PCREL", - "BFD_RELOC_V850_16_GOTOFF", - "BFD_RELOC_V850_32_GOTOFF", "BFD_RELOC_V850_CODE", "BFD_RELOC_V850_DATA", "BFD_RELOC_TIC30_LDP", @@ -2202,8 +2190,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_METAG_LOOG", "BFD_RELOC_METAG_REL8", "BFD_RELOC_METAG_REL16", - "BFD_RELOC_METAG_HI16_GOTOFF", - "BFD_RELOC_METAG_LO16_GOTOFF", "BFD_RELOC_METAG_GETSET_GOTOFF", "BFD_RELOC_METAG_GETSET_GOT", "BFD_RELOC_METAG_HI16_GOTPC", @@ -2211,7 +2197,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_METAG_HI16_PLT", "BFD_RELOC_METAG_LO16_PLT", "BFD_RELOC_METAG_RELBRANCH_PLT", - "BFD_RELOC_METAG_GOTOFF", "BFD_RELOC_METAG_PLT", "BFD_RELOC_METAG_TLS_GD", "BFD_RELOC_METAG_TLS_LDM", @@ -2409,7 +2394,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_390_GOTPCDBL", "BFD_RELOC_390_GOT64", "BFD_RELOC_390_GOTENT", - "BFD_RELOC_390_GOTOFF64", "BFD_RELOC_390_GOTPLT12", "BFD_RELOC_390_GOTPLT16", "BFD_RELOC_390_GOTPLT32", @@ -2814,8 +2798,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_LM32_CALL", "BFD_RELOC_LM32_BRANCH", "BFD_RELOC_LM32_16_GOT", - "BFD_RELOC_LM32_GOTOFF_HI16", - "BFD_RELOC_LM32_GOTOFF_LO16", "BFD_RELOC_MACH_O_SECTDIFF", "BFD_RELOC_MACH_O_LOCAL_SECTDIFF", "BFD_RELOC_MACH_O_PAIR", --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -1435,6 +1435,8 @@ ENUMX ENUMX BFD_RELOC_8_GOT_PCREL ENUMX + BFD_RELOC_64_GOTOFF +ENUMX BFD_RELOC_32_GOTOFF ENUMX BFD_RELOC_16_GOTOFF @@ -2228,10 +2230,6 @@ ENUMX ENUMX BFD_RELOC_FRV_GOTOFF12 ENUMX - BFD_RELOC_FRV_GOTOFFHI -ENUMX - BFD_RELOC_FRV_GOTOFFLO -ENUMX BFD_RELOC_FRV_GETTLSOFF ENUMX BFD_RELOC_FRV_TLSDESC_VALUE @@ -2322,8 +2320,6 @@ ENUM ENUMX BFD_RELOC_386_PLT32 ENUMX - BFD_RELOC_386_GOTOFF -ENUMX BFD_RELOC_386_GOTPC ENUMX BFD_RELOC_386_TLS_TPOFF @@ -2383,8 +2379,6 @@ ENUMX ENUMX BFD_RELOC_X86_64_TPOFF32 ENUMX - BFD_RELOC_X86_64_GOTOFF64 -ENUMX BFD_RELOC_X86_64_GOTPC32 ENUMX BFD_RELOC_X86_64_GOT64 @@ -2965,8 +2959,6 @@ ENUMDOC ENUM BFD_RELOC_ARM_GOT32 ENUMX - BFD_RELOC_ARM_GOTOFF -ENUMX BFD_RELOC_ARM_GOTPC ENUMX BFD_RELOC_ARM_GOT_PREL @@ -3331,8 +3323,6 @@ ENUMX ENUMX BFD_RELOC_ARC_GOTPC32 ENUMX - BFD_RELOC_ARC_GOTOFF -ENUMX BFD_RELOC_ARC_GOTPC ENUMX BFD_RELOC_ARC_S21W_PCREL_PLT @@ -3437,10 +3427,6 @@ ENUMX BFD_RELOC_BFIN_FUNCDESC_GOTOFFLO ENUMX BFD_RELOC_BFIN_GOTOFF17M4 -ENUMX - BFD_RELOC_BFIN_GOTOFFHI -ENUMX - BFD_RELOC_BFIN_GOTOFFLO ENUMDOC ADI Blackfin FD-PIC relocations. ENUM @@ -3674,12 +3660,6 @@ ENUMX ENUMX BFD_RELOC_M32R_GOTOFF ENUMX - BFD_RELOC_M32R_GOTOFF_HI_ULO -ENUMX - BFD_RELOC_M32R_GOTOFF_HI_SLO -ENUMX - BFD_RELOC_M32R_GOTOFF_LO -ENUMX BFD_RELOC_M32R_GOTPC24 ENUMX BFD_RELOC_M32R_GOT16_HI_ULO @@ -4177,10 +4157,6 @@ ENUMX BFD_RELOC_V850_22_PLT_PCREL ENUMX BFD_RELOC_V850_32_PLT_PCREL -ENUMX - BFD_RELOC_V850_16_GOTOFF -ENUMX - BFD_RELOC_V850_32_GOTOFF ENUMDOC DSO relocations. ENUM @@ -4402,10 +4378,6 @@ ENUMX ENUMX BFD_RELOC_METAG_REL16 ENUMX - BFD_RELOC_METAG_HI16_GOTOFF -ENUMX - BFD_RELOC_METAG_LO16_GOTOFF -ENUMX BFD_RELOC_METAG_GETSET_GOTOFF ENUMX BFD_RELOC_METAG_GETSET_GOT @@ -4420,8 +4392,6 @@ ENUMX ENUMX BFD_RELOC_METAG_RELBRANCH_PLT ENUMX - BFD_RELOC_METAG_GOTOFF -ENUMX BFD_RELOC_METAG_PLT ENUMX BFD_RELOC_METAG_TLS_GD @@ -4989,10 +4959,6 @@ ENUM ENUMDOC 32 bit rel. offset to GOT entry. ENUM - BFD_RELOC_390_GOTOFF64 -ENUMDOC - 64 bit offset to GOT. -ENUM BFD_RELOC_390_GOTPLT12 ENUMDOC 12-bit offset to symbol-entry within GOT, with PLT handling. @@ -6140,10 +6106,6 @@ ENUMX BFD_RELOC_LM32_BRANCH ENUMX BFD_RELOC_LM32_16_GOT -ENUMX - BFD_RELOC_LM32_GOTOFF_HI16 -ENUMX - BFD_RELOC_LM32_GOTOFF_LO16 ENUMDOC Lattice Mico32 relocations. --- a/gas/config/tc-arc.c +++ b/gas/config/tc-arc.c @@ -542,7 +542,7 @@ static const struct arc_reloc_op_tag } arc_reloc_op[] = { - DEF (gotoff, BFD_RELOC_ARC_GOTOFF, 1), + DEF (gotoff, BFD_RELOC_32_GOTOFF, 1), DEF (gotpc, BFD_RELOC_ARC_GOTPC32, 0), DEF (plt, BFD_RELOC_32_PLT_PCREL, 0), DEF (sda, DUMMY_RELOC_ARC_ENTRY, 1), @@ -3099,7 +3099,7 @@ md_apply_fix (fixS *fixP, gas_assert (!fixP->fx_subsy); /* Fall through. */ - case BFD_RELOC_ARC_GOTOFF: + case BFD_RELOC_32_GOTOFF: case BFD_RELOC_ARC_32_ME: case BFD_RELOC_32_PCREL: md_number_to_chars_midend (fixpos, value, fixP->fx_size); --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -23894,7 +23894,7 @@ static const struct asm_shift_name shift static struct reloc_entry reloc_names[] = { { "got", BFD_RELOC_ARM_GOT32 }, { "GOT", BFD_RELOC_ARM_GOT32 }, - { "gotoff", BFD_RELOC_ARM_GOTOFF }, { "GOTOFF", BFD_RELOC_ARM_GOTOFF }, + { "gotoff", BFD_RELOC_32_GOTOFF }, { "GOTOFF", BFD_RELOC_32_GOTOFF }, { "plt", BFD_RELOC_32_PLT_PCREL}, { "PLT", BFD_RELOC_32_PLT_PCREL}, { "target1", BFD_RELOC_ARM_TARGET1 }, { "TARGET1", BFD_RELOC_ARM_TARGET1 }, { "target2", BFD_RELOC_ARM_TARGET2 }, { "TARGET2", BFD_RELOC_ARM_TARGET2 }, @@ -28458,7 +28458,7 @@ md_apply_fix (fixS * fixP, break; case BFD_RELOC_ARM_GOT32: - case BFD_RELOC_ARM_GOTOFF: + case BFD_RELOC_32_GOTOFF: break; case BFD_RELOC_ARM_GOT_PREL: @@ -29413,7 +29413,7 @@ tc_gen_reloc (asection *section, fixS *f case BFD_RELOC_ARM_TLS_DESCSEQ: case BFD_RELOC_ARM_THM_TLS_DESCSEQ: case BFD_RELOC_ARM_GOT32: - case BFD_RELOC_ARM_GOTOFF: + case BFD_RELOC_32_GOTOFF: case BFD_RELOC_ARM_GOT_PREL: case BFD_RELOC_32_PLT_PCREL: case BFD_RELOC_ARM_TARGET1: @@ -29746,7 +29746,7 @@ arm_fix_adjustable (fixS * fixP) /* Don't allow symbols to be discarded on GOT related relocs. */ if (fixP->fx_r_type == BFD_RELOC_32_PLT_PCREL || fixP->fx_r_type == BFD_RELOC_ARM_GOT32 - || fixP->fx_r_type == BFD_RELOC_ARM_GOTOFF + || fixP->fx_r_type == BFD_RELOC_32_GOTOFF || fixP->fx_r_type == BFD_RELOC_ARM_TLS_GD32 || fixP->fx_r_type == BFD_RELOC_ARM_TLS_GD32_FDPIC || fixP->fx_r_type == BFD_RELOC_ARM_TLS_LE32 --- a/gas/config/tc-frv.c +++ b/gas/config/tc-frv.c @@ -1399,8 +1399,8 @@ frv_force_relocation (fixS *fix) case BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: case BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: case BFD_RELOC_FRV_GOTOFF12: - case BFD_RELOC_FRV_GOTOFFHI: - case BFD_RELOC_FRV_GOTOFFLO: + case BFD_RELOC_HI16_GOTOFF: + case BFD_RELOC_LO16_GOTOFF: case BFD_RELOC_FRV_GETTLSOFF: case BFD_RELOC_FRV_TLSDESC_VALUE: case BFD_RELOC_FRV_GOTTLSDESC12: @@ -1455,8 +1455,8 @@ md_apply_fix (fixS *fixP, valueT *valP, case BFD_RELOC_FRV_FUNCDESC_GOTOFFHI: case BFD_RELOC_FRV_FUNCDESC_GOTOFFLO: case BFD_RELOC_FRV_GOTOFF12: - case BFD_RELOC_FRV_GOTOFFHI: - case BFD_RELOC_FRV_GOTOFFLO: + case BFD_RELOC_HI16_GOTOFF: + case BFD_RELOC_LO16_GOTOFF: case BFD_RELOC_FRV_GETTLSOFF: case BFD_RELOC_FRV_TLSDESC_VALUE: case BFD_RELOC_FRV_GOTTLSDESC12: --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -1403,8 +1403,8 @@ gotrel[] = { STRING_COMMA_LEN ("GOTPLT"), { _dummy_first_bfd_reloc_code_real, BFD_RELOC_X86_64_GOTPLT64 }, OPERAND_TYPE_IMM64_DISP64, true }, - { STRING_COMMA_LEN ("GOTOFF"), { BFD_RELOC_386_GOTOFF, - BFD_RELOC_X86_64_GOTOFF64 }, + { STRING_COMMA_LEN ("GOTOFF"), { BFD_RELOC_32_GOTOFF, + BFD_RELOC_64_GOTOFF }, OPERAND_TYPE_IMM64_DISP64, true }, { STRING_COMMA_LEN ("GOTPCREL"), { _dummy_first_bfd_reloc_code_real, BFD_RELOC_X86_64_GOTPCREL }, @@ -4097,7 +4097,7 @@ tc_i386_fix_adjustable (fixS *fixP) for size relocations. */ if (fixP->fx_r_type == BFD_RELOC_SIZE32 || fixP->fx_r_type == BFD_RELOC_SIZE64 - || fixP->fx_r_type == BFD_RELOC_386_GOTOFF + || fixP->fx_r_type == BFD_RELOC_32_GOTOFF || fixP->fx_r_type == BFD_RELOC_386_GOT32 || fixP->fx_r_type == BFD_RELOC_386_GOT32X || fixP->fx_r_type == BFD_RELOC_386_TLS_GD @@ -4127,7 +4127,7 @@ tc_i386_fix_adjustable (fixS *fixP) || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_6_GOTTPOFF || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF32 || fixP->fx_r_type == BFD_RELOC_X86_64_TPOFF64 - || fixP->fx_r_type == BFD_RELOC_X86_64_GOTOFF64 + || fixP->fx_r_type == BFD_RELOC_64_GOTOFF || fixP->fx_r_type == BFD_RELOC_X86_64_GOT64 || fixP->fx_r_type == BFD_RELOC_X86_64_GOTPC32_TLSDESC || fixP->fx_r_type == BFD_RELOC_X86_64_CODE_4_GOTPC32_TLSDESC @@ -15077,9 +15077,9 @@ i386_finalize_displacement (segT exp_seg /* We do this to make sure that the section symbol is in the symbol table. We will ultimately change the relocation to be relative to the beginning of the section. */ - if (i.reloc[this_operand] == BFD_RELOC_386_GOTOFF + if (i.reloc[this_operand] == BFD_RELOC_32_GOTOFF || i.reloc[this_operand] == BFD_RELOC_X86_64_GOTPCREL - || i.reloc[this_operand] == BFD_RELOC_X86_64_GOTOFF64) + || i.reloc[this_operand] == BFD_RELOC_64_GOTOFF) { if (exp->X_op != O_symbol) goto inv_disp; @@ -15092,7 +15092,7 @@ i386_finalize_displacement (segT exp_seg exp->X_op_symbol = GOT_symbol; if (i.reloc[this_operand] == BFD_RELOC_X86_64_GOTPCREL) i.reloc[this_operand] = BFD_RELOC_32_PCREL; - else if (i.reloc[this_operand] == BFD_RELOC_X86_64_GOTOFF64) + else if (i.reloc[this_operand] == BFD_RELOC_64_GOTOFF) i.reloc[this_operand] = BFD_RELOC_64; else i.reloc[this_operand] = BFD_RELOC_32; @@ -18418,9 +18418,9 @@ i386_validate_fix (fixS *fixp) else { if (!object_64bit) - fixp->fx_r_type = BFD_RELOC_386_GOTOFF; + fixp->fx_r_type = BFD_RELOC_32_GOTOFF; else - fixp->fx_r_type = BFD_RELOC_X86_64_GOTOFF64; + fixp->fx_r_type = BFD_RELOC_64_GOTOFF; } fixp->fx_subsy = 0; } @@ -18524,7 +18524,7 @@ tc_gen_reloc (asection *section ATTRIBUT case BFD_RELOC_386_PLT32: case BFD_RELOC_386_GOT32: case BFD_RELOC_386_GOT32X: - case BFD_RELOC_386_GOTOFF: + case BFD_RELOC_32_GOTOFF: case BFD_RELOC_386_GOTPC: case BFD_RELOC_386_TLS_GD: case BFD_RELOC_386_TLS_LDM: @@ -18546,7 +18546,7 @@ tc_gen_reloc (asection *section ATTRIBUT case BFD_RELOC_X86_64_CODE_6_GOTTPOFF: case BFD_RELOC_X86_64_TPOFF32: case BFD_RELOC_X86_64_TPOFF64: - case BFD_RELOC_X86_64_GOTOFF64: + case BFD_RELOC_64_GOTOFF: case BFD_RELOC_X86_64_GOTPC32: case BFD_RELOC_X86_64_GOT64: case BFD_RELOC_X86_64_GOTPCREL64: @@ -18661,7 +18661,7 @@ tc_gen_reloc (asection *section ATTRIBUT case BFD_RELOC_X86_64_DTPOFF64: case BFD_RELOC_X86_64_TPOFF64: case BFD_RELOC_64_PCREL: - case BFD_RELOC_X86_64_GOTOFF64: + case BFD_RELOC_64_GOTOFF: case BFD_RELOC_X86_64_GOT64: case BFD_RELOC_X86_64_GOTPCREL64: case BFD_RELOC_X86_64_GOTPC64: --- a/gas/config/tc-lm32.c +++ b/gas/config/tc-lm32.c @@ -318,9 +318,9 @@ md_cgen_lookup_reloc (const CGEN_INSN *i case LM32_OPERAND_GOT16: return BFD_RELOC_LM32_16_GOT; case LM32_OPERAND_GOTOFFHI16: - return BFD_RELOC_LM32_GOTOFF_HI16; + return BFD_RELOC_HI16_GOTOFF; case LM32_OPERAND_GOTOFFLO16: - return BFD_RELOC_LM32_GOTOFF_LO16; + return BFD_RELOC_LO16_GOTOFF; case LM32_OPERAND_GP16: return BFD_RELOC_GPREL16; case LM32_OPERAND_LO16: --- a/gas/config/tc-m32r.c +++ b/gas/config/tc-m32r.c @@ -1967,11 +1967,11 @@ m32r_cgen_record_fixup_exp (fragS *frag, case BFD_RELOC_M32R_GOTOFF: if (fixP->fx_cgen.opinfo == BFD_RELOC_M32R_HI16_SLO) - r_type = BFD_RELOC_M32R_GOTOFF_HI_SLO; + r_type = BFD_RELOC_HI16_S_GOTOFF; else if (fixP->fx_cgen.opinfo == BFD_RELOC_M32R_HI16_ULO) - r_type = BFD_RELOC_M32R_GOTOFF_HI_ULO; + r_type = BFD_RELOC_HI16_GOTOFF; else if (fixP->fx_cgen.opinfo == BFD_RELOC_M32R_LO16) - r_type = BFD_RELOC_M32R_GOTOFF_LO; + r_type = BFD_RELOC_LO16_GOTOFF; break; case BFD_RELOC_M32R_26_PLTREL: --- a/gas/config/tc-metag.c +++ b/gas/config/tc-metag.c @@ -679,7 +679,7 @@ parse_imm_addr (const char *line, metag_ addr->reloc_type = BFD_RELOC_METAG_TLS_IE; } else if (exp->X_op == O_PIC_reloc && - exp->X_md == BFD_RELOC_METAG_GOTOFF) + exp->X_md == BFD_RELOC_32_GOTOFF) { exp->X_op = O_symbol; addr->reloc_type = BFD_RELOC_METAG_GETSET_GOTOFF; @@ -1880,12 +1880,12 @@ parse_imm16 (const char *line, metag_ins { exp->X_op = O_symbol; - if (exp->X_md == BFD_RELOC_METAG_GOTOFF) + if (exp->X_md == BFD_RELOC_32_GOTOFF) { if (is_hi) - insn->reloc_type = BFD_RELOC_METAG_HI16_GOTOFF; + insn->reloc_type = BFD_RELOC_HI16_GOTOFF; else if (is_lo) - insn->reloc_type = BFD_RELOC_METAG_LO16_GOTOFF; + insn->reloc_type = BFD_RELOC_LO16_GOTOFF; else return NULL; } @@ -6779,8 +6779,8 @@ metag_fix_adjustable (fixS * fixP) if (S_IS_WEAK (fixP->fx_addsy)) return 0; - if (fixP->fx_r_type == BFD_RELOC_METAG_HI16_GOTOFF || - fixP->fx_r_type == BFD_RELOC_METAG_LO16_GOTOFF || + if (fixP->fx_r_type == BFD_RELOC_HI16_GOTOFF || + fixP->fx_r_type == BFD_RELOC_LO16_GOTOFF || fixP->fx_r_type == BFD_RELOC_METAG_GETSET_GOTOFF || fixP->fx_r_type == BFD_RELOC_METAG_GETSET_GOT || fixP->fx_r_type == BFD_RELOC_METAG_HI16_GOTPC || @@ -6922,7 +6922,7 @@ metag_parse_name (char const * name, exp goto no_suffix; else if ((next_end = metag_end_of_match (next + 1, "GOTOFF"))) { - reloc_type = BFD_RELOC_METAG_GOTOFF; + reloc_type = BFD_RELOC_32_GOTOFF; op_type = O_PIC_reloc; } else if ((next_end = metag_end_of_match (next + 1, "GOT"))) --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -1294,7 +1294,7 @@ s390_elf_cons (int nbytes /* 1=.byte, 2= BFD_RELOC_390_GOT64, /* ELF_SUFFIX_GOT */ BFD_RELOC_64_PLT_PCREL, /* ELF_SUFFIX_PLT */ BFD_RELOC_UNUSED, /* ELF_SUFFIX_GOTENT */ - BFD_RELOC_390_GOTOFF64, /* ELF_SUFFIX_GOTOFF */ + BFD_RELOC_64_GOTOFF, /* ELF_SUFFIX_GOTOFF */ BFD_RELOC_390_GOTPLT64, /* ELF_SUFFIX_GOTPLT */ BFD_RELOC_390_PLTOFF64, /* ELF_SUFFIX_PLTOFF */ BFD_RELOC_390_TLS_GD64, /* ELF_SUFFIX_TLS_GD */ @@ -2383,7 +2383,7 @@ tc_s390_fix_adjustable (fixS *fixP) /* adjust_reloc_syms doesn't know about the GOT. */ if ( fixP->fx_r_type == BFD_RELOC_16_GOTOFF || fixP->fx_r_type == BFD_RELOC_32_GOTOFF - || fixP->fx_r_type == BFD_RELOC_390_GOTOFF64 + || fixP->fx_r_type == BFD_RELOC_64_GOTOFF || fixP->fx_r_type == BFD_RELOC_390_PLTOFF16 || fixP->fx_r_type == BFD_RELOC_390_PLTOFF32 || fixP->fx_r_type == BFD_RELOC_390_PLTOFF64 @@ -2445,7 +2445,7 @@ tc_s390_force_relocation (struct fix *fi case BFD_RELOC_390_GOT20: case BFD_RELOC_32_GOT_PCREL: case BFD_RELOC_32_GOTOFF: - case BFD_RELOC_390_GOTOFF64: + case BFD_RELOC_64_GOTOFF: case BFD_RELOC_390_PLTOFF16: case BFD_RELOC_390_PLTOFF32: case BFD_RELOC_390_PLTOFF64: @@ -2750,7 +2750,7 @@ md_apply_fix (fixS *fixP, valueT *valP, md_number_to_chars (where, value, sizeof (int)); break; - case BFD_RELOC_390_GOTOFF64: + case BFD_RELOC_64_GOTOFF: if (fixP->fx_done) md_number_to_chars (where, value, 8); break; --- a/opcodes/frv-asm.c +++ b/opcodes/frv-asm.c @@ -256,7 +256,7 @@ parse_ulo16 (CGEN_CPU_DESC cd, { *strp += 10; errmsg = parse_symbolic_address (cd, strp, opindex, - BFD_RELOC_FRV_GOTOFFLO, + BFD_RELOC_LO16_GOTOFF, & result_type, & value); if (**strp != ')') return "missing ')'"; @@ -382,7 +382,7 @@ parse_uslo16 (CGEN_CPU_DESC cd, { *strp += 10; errmsg = parse_symbolic_address (cd, strp, opindex, - BFD_RELOC_FRV_GOTOFFLO, + BFD_RELOC_LO16_GOTOFF, & result_type, & value); if (**strp != ')') return "missing ')'"; @@ -515,7 +515,7 @@ parse_uhi16 (CGEN_CPU_DESC cd, { *strp += 10; errmsg = parse_symbolic_address (cd, strp, opindex, - BFD_RELOC_FRV_GOTOFFHI, + BFD_RELOC_HI16_GOTOFF, & result_type, & value); if (**strp != ')') return "missing ')'"; --- a/opcodes/lm32-asm.c +++ b/opcodes/lm32-asm.c @@ -211,7 +211,7 @@ parse_gotoff_hi16 (CGEN_CPU_DESC cd, bfd_vma value; *strp += 11; - errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LM32_GOTOFF_HI16, + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_HI16_GOTOFF, & result_type, & value); if (**strp != ')') return _("missing `)'"); @@ -241,7 +241,7 @@ parse_gotoff_lo16 (CGEN_CPU_DESC cd, bfd_vma value; *strp += 11; - errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LM32_GOTOFF_LO16, + errmsg = cgen_parse_address (cd, strp, opindex, BFD_RELOC_LO16_GOTOFF, &result_type, &value); if (**strp != ')') return _("missing `)'"); From patchwork Fri Mar 27 09:52: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: 132359 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 678774B9DB71 for ; Fri, 27 Mar 2026 09:53:39 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 678774B9DB71 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=XrLLqDqg 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 69D374B9DB70 for ; Fri, 27 Mar 2026 09:53:00 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 69D374B9DB70 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 69D374B9DB70 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=1774605180; cv=none; b=Zpmty3TrqoQh7Roegz1EGSPr11ZMzVAKGYo0vHEG5gEXK+RqEggt2Hxdmea/hJb8Gq8QbT6n3unyf2tvTKC1HDeAUnFtIn+knNkGqqfdZqlKwhHivwvSeaDlNUB7FGuJpy7qKmt0UDPuXyUf+zM/b+jR0pmg4rXlqBrDwabs9bA= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605180; c=relaxed/simple; bh=qEEOeoHmjEhRErpK8aptCs5ffkp9a1PjYktnCntGeVQ=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=ir6Mc34iIsxGyw3pDowrnmfk9hlYs9wyESzo1tVgWj+vgsKcazsI5/Piy8fHl+SvpI7j00rqLxWAoFnP8ac/w4Vl3HthDaRlyWy2TzhlAtG7TEusy8C+8rW8iiPQRkRrH/+fas7jG0Psmc3+pkp0ei5tpLVztqC5VnLEepKxP44= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 69D374B9DB70 Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-486ff3a0fc1so18784115e9.2 for ; Fri, 27 Mar 2026 02:53:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774605179; x=1775209979; 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=2AuFS71B1Wnc8L0pinQIeFaa3YT/l6gANlioYBt3Zow=; b=XrLLqDqgB8Z7OmmZ/fevy0+ySFZFPtMjUfvBIOqAm/fLJafNxddVx8hyC/Utb+Ccc8 aSjzuKxC6zJJvoPDubrzdlNnIjmQiTRO7Fr0A/NPG08Uc+7FCG7r7cyyC2jMtD7lgFqT QR6ccR8ZeiMqDKovRKA9HRIeUHCKzE+XjITsI3jrq1wFZUL2ZhN6vAticO2US1HaEY+K sTFNBBssbJrdaYugxk/JYolPF0GIoO/YRCry9tGUvFcKGyJh9pew1DotuwECcjHY0m3J xk8FvjSm0BLm97NYetBnyDHx68qWOAPBUPet8wuP6yyyPseGejh/R1rB6YqOGC1TlC4G ZjoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774605179; x=1775209979; 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=2AuFS71B1Wnc8L0pinQIeFaa3YT/l6gANlioYBt3Zow=; b=dpEzKQerbYjaz9V1/iuMwwXvOtZCJnO5LxjgG2DjKmM1dpGOveGLVThZVjA+5ZpeQz K3/JvbF/O7JOnEXiWUpTrPL6CD1x2AbaotXTmp84YGVsj6Z1Ru8luz9auPzGzJwPbSKr oguhbaeE0MecxXaJ01cjgQzD9IPO96ldU90pg8wH7ZEXv8RnQ0b2X8edOFkGrkhP2GUo SXUwvq3gddLp346X5wsxpo2W85ZrSAGjBeE1mAG4eS8tgihTwORZCl0LcD5zNPwGScqd jj/fjKjAaMq6nILpkVoWtB3BqI0g8JFeUXgaWV+M56F1I5cK9CJqZtIkT8X1H6ef6C5S veVQ== X-Gm-Message-State: AOJu0Yy1rtaQed86qGviRzZCU0ljY/tChb333G2on1RuaoT6u8Z42GAf tI078+7W2W+eGuizLdBlk/heVEndATUUE5e3fdUKCJnn0PVH2g2Z9e2ygxNYFl7lfWuTquDWOcq taVcchw== X-Gm-Gg: ATEYQzwcy542htWl7mXxVF0Z5vCuTroVI3unu5D+wrUi9iEr0gOU/PofumSvj8iRNFa E/Tn+jItEhi1vYzDAkSNIugHzN6I3xH1IlM/9QSm//xN0CKH9YcBLwrqeyPJorgEGI7gj7B0TIT YAmhc8dVt50+rLjwFEFEljqKiRRlnYjt/CWIfML9HQZocZbdcQBrhzW5OdwonYKbhJCi00hm8PT aPvWn9cbNeEp3FfAHGeTcPNEj1d203j3FQBoU52t9YcW5lr6MHvfalK6iBGwtOzRdUDvxMuKuGB xB9KgF0gNVT2yhlW5dbELDe+iORTOEvz6AzIEfVUDk076IE5D97kZRY2dmGBzYhGeWuo/1iHbZZ A7pfGPoo+5FrePgAz8OJIc9zUmlheTcI8j6NW+zXNu065FrabVm8EKBUH5FrKguXP7zoHXcNOAj eOK0fa0ZtEYVW43+bTp+E13zJNqGWVI04fi4jFVnUAx4EKC1ASptk7igmiu/l9kfXdzkibTbylM ArkPkYTMekMm8s= X-Received: by 2002:a05:600c:c113:b0:487:1114:d431 with SMTP id 5b1f17b1804b1-48727ec3c36mr22198905e9.18.1774605179195; Fri, 27 Mar 2026 02:52: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-48722d38a5fsm80636985e9.12.2026.03.27.02.52.58 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 02:52:58 -0700 (PDT) Message-ID: <38e100ce-872d-4cab-913c-1f3c14752a6e@suse.com> Date: Fri, 27 Mar 2026 10:52:57 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 2/6] bfd/s390+sh: don't abuse BFD_RELOC_32_GOT_PCREL From: Jan Beulich To: Binutils References: <2751d8ad-591b-4226-aeaa-a873270bce29@suse.com> Content-Language: en-US Cc: Andreas Krebbel , Jens Remus 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 Neither R_390_GOT32 nor R_SH_GOT32 are PC-relative relocations, so don't use a generic PC-relative enumerator for them. Doing so gets in the way of properly using that enumerator. --- v2: Move BFD_RELOC_390_GOT32 down a little. --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -4286,6 +4286,7 @@ enum bfd_reloc_code_real BFD_RELOC_SH_RELATIVE64, BFD_RELOC_SH_GOT10BY4, BFD_RELOC_SH_GOT10BY8, + BFD_RELOC_SH_GOT32, BFD_RELOC_SH_GOTPLT10BY4, BFD_RELOC_SH_GOTPLT10BY8, BFD_RELOC_SH_GOTPLT32, @@ -5379,6 +5380,9 @@ enum bfd_reloc_code_real /* 16 bit GOT offset. */ BFD_RELOC_390_GOT16, + /* 32 bit GOT offset. */ + BFD_RELOC_390_GOT32, + /* PC relative 12 bit shifted by 1. */ BFD_RELOC_390_PC12DBL, --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -199,7 +199,7 @@ elf_s390_reloc_type_lookup (bfd *abfd AT return &elf_howto_table[(int) R_390_PC32]; case BFD_RELOC_390_GOT12: return &elf_howto_table[(int) R_390_GOT12]; - case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_390_GOT32: return &elf_howto_table[(int) R_390_GOT32]; case BFD_RELOC_32_PLT_PCREL: return &elf_howto_table[(int) R_390_PLT32]; --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -353,7 +353,7 @@ static const struct elf_reloc_map sh_rel { BFD_RELOC_SH_TLS_DTPMOD32, R_SH_TLS_DTPMOD32 }, { BFD_RELOC_SH_TLS_DTPOFF32, R_SH_TLS_DTPOFF32 }, { BFD_RELOC_SH_TLS_TPOFF32, R_SH_TLS_TPOFF32 }, - { BFD_RELOC_32_GOT_PCREL, R_SH_GOT32 }, + { BFD_RELOC_SH_GOT32, R_SH_GOT32 }, { BFD_RELOC_32_PLT_PCREL, R_SH_PLT32 }, { BFD_RELOC_COPY, R_SH_COPY }, { BFD_RELOC_GLOB_DAT, R_SH_GLOB_DAT }, --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -213,7 +213,7 @@ elf_s390_reloc_type_lookup (bfd *abfd, return &elf_howto_table[(int) R_390_PC32]; case BFD_RELOC_390_GOT12: return &elf_howto_table[(int) R_390_GOT12]; - case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_390_GOT32: return &elf_howto_table[(int) R_390_GOT32]; case BFD_RELOC_32_PLT_PCREL: return &elf_howto_table[(int) R_390_PLT32]; --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1791,6 +1791,7 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_SH_RELATIVE64", "BFD_RELOC_SH_GOT10BY4", "BFD_RELOC_SH_GOT10BY8", + "BFD_RELOC_SH_GOT32", "BFD_RELOC_SH_GOTPLT10BY4", "BFD_RELOC_SH_GOTPLT10BY8", "BFD_RELOC_SH_GOTPLT32", @@ -2383,6 +2384,7 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_390_GOT12", "BFD_RELOC_390_GOTPC", "BFD_RELOC_390_GOT16", + "BFD_RELOC_390_GOT32", "BFD_RELOC_390_PC12DBL", "BFD_RELOC_390_PLT12DBL", "BFD_RELOC_390_PC16DBL", --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -3200,6 +3200,8 @@ ENUMX ENUMX BFD_RELOC_SH_GOT10BY8 ENUMX + BFD_RELOC_SH_GOT32 +ENUMX BFD_RELOC_SH_GOTPLT10BY4 ENUMX BFD_RELOC_SH_GOTPLT10BY8 @@ -4915,6 +4917,10 @@ ENUM ENUMDOC 16 bit GOT offset. ENUM + BFD_RELOC_390_GOT32 +ENUMDOC + 32 bit GOT offset. +ENUM BFD_RELOC_390_PC12DBL ENUMDOC PC relative 12 bit shifted by 1. --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -1107,7 +1107,7 @@ s390_lit_suffix (char **str_p, expressio if (nbytes == 2) reloc = BFD_RELOC_390_GOT16; else if (nbytes == 4) - reloc = BFD_RELOC_32_GOT_PCREL; + reloc = BFD_RELOC_390_GOT32; else if (nbytes == 8) reloc = BFD_RELOC_390_GOT64; } @@ -1271,7 +1271,7 @@ s390_elf_cons (int nbytes /* 1=.byte, 2= static bfd_reloc_code_real_type tab4[] = { BFD_RELOC_UNUSED, /* ELF_SUFFIX_NONE */ - BFD_RELOC_32_GOT_PCREL, /* ELF_SUFFIX_GOT */ + BFD_RELOC_390_GOT32, /* ELF_SUFFIX_GOT */ BFD_RELOC_32_PLT_PCREL, /* ELF_SUFFIX_PLT */ BFD_RELOC_UNUSED, /* ELF_SUFFIX_GOTENT */ BFD_RELOC_32_GOTOFF, /* ELF_SUFFIX_GOTOFF */ @@ -2396,7 +2396,7 @@ tc_s390_fix_adjustable (fixS *fixP) || fixP->fx_r_type == BFD_RELOC_390_GOT12 || fixP->fx_r_type == BFD_RELOC_390_GOT20 || fixP->fx_r_type == BFD_RELOC_390_GOT16 - || fixP->fx_r_type == BFD_RELOC_32_GOT_PCREL + || fixP->fx_r_type == BFD_RELOC_390_GOT32 || fixP->fx_r_type == BFD_RELOC_390_GOT64 || fixP->fx_r_type == BFD_RELOC_390_GOTENT || fixP->fx_r_type == BFD_RELOC_390_GOTPLT12 @@ -2443,7 +2443,7 @@ tc_s390_force_relocation (struct fix *fi { case BFD_RELOC_390_GOT12: case BFD_RELOC_390_GOT20: - case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_390_GOT32: case BFD_RELOC_32_GOTOFF: case BFD_RELOC_64_GOTOFF: case BFD_RELOC_390_PLTOFF16: @@ -2728,7 +2728,7 @@ md_apply_fix (fixS *fixP, valueT *valP, if (fixP->fx_done) md_number_to_chars (where, value, 4); break; - case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_390_GOT32: case BFD_RELOC_390_PLTOFF32: case BFD_RELOC_32_PLT_PCREL: case BFD_RELOC_390_GOTPLT32: --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -340,7 +340,7 @@ sh_check_fixup (expressionS *main_exp, b case BFD_RELOC_SH_DISP20: switch (exp->X_md) { - case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_SH_GOT32: *r_type_p = BFD_RELOC_SH_GOT20; break; @@ -3313,7 +3313,7 @@ bool sh_fix_adjustable (fixS *fixP) { if (fixP->fx_r_type == BFD_RELOC_32_PLT_PCREL - || fixP->fx_r_type == BFD_RELOC_32_GOT_PCREL + || fixP->fx_r_type == BFD_RELOC_SH_GOT32 || fixP->fx_r_type == BFD_RELOC_SH_GOT20 || fixP->fx_r_type == BFD_RELOC_SH_GOTPC || fixP->fx_r_type == BFD_RELOC_SH_GOTFUNCDESC @@ -3670,7 +3670,7 @@ md_apply_fix (fixS *fixP, valueT *valP, case BFD_RELOC_SH_TLS_IE_32: S_SET_THREAD_LOCAL (fixP->fx_addsy); /* Fallthrough */ - case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_SH_GOT32: case BFD_RELOC_SH_GOT20: case BFD_RELOC_SH_GOTPLT32: case BFD_RELOC_SH_GOTFUNCDESC: @@ -3962,7 +3962,7 @@ sh_parse_name (char const *name, else if ((next_end = sh_end_of_match (next + 1, "GOTPLT"))) reloc_type = BFD_RELOC_SH_GOTPLT32; else if ((next_end = sh_end_of_match (next + 1, "GOT"))) - reloc_type = BFD_RELOC_32_GOT_PCREL; + reloc_type = BFD_RELOC_SH_GOT32; else if ((next_end = sh_end_of_match (next + 1, "PLT"))) reloc_type = BFD_RELOC_32_PLT_PCREL; else if ((next_end = sh_end_of_match (next + 1, "TLSGD"))) --- a/gas/config/tc-sh.h +++ b/gas/config/tc-sh.h @@ -202,7 +202,7 @@ extern bool sh_fix_adjustable (struct fi #define TC_FORCE_RELOCATION_LOCAL(FIX) \ (GENERIC_FORCE_RELOCATION_LOCAL (FIX) \ || (FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ - || (FIX)->fx_r_type == BFD_RELOC_32_GOT_PCREL \ + || (FIX)->fx_r_type == BFD_RELOC_SH_GOT32 \ || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC) #define TC_FORCE_RELOCATION_SUB_LOCAL(FIX, SEG) \ From patchwork Fri Mar 27 09:55:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132360 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 9DD364B9DB57 for ; Fri, 27 Mar 2026 09:56:02 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 9DD364B9DB57 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=Q7rIGh1u 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 8548E4BA2E1E for ; Fri, 27 Mar 2026 09:55:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 8548E4BA2E1E 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 8548E4BA2E1E 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=1774605318; cv=none; b=gb2kZFzz+S8I6hIbGbYo8MKQwKTUAAn/qzdRp1tkBBPw+ukjVJYEh1gOUDYzJE1NbIRwSRbTLbJlzc2QpnWf7abfT/fKJtUmXfuvWNL93KMm+EYeSrQvSI3l6ZHh1mdujDIUVx9Wh0i9t1o0dAUreGmadoCZug/jlnrlHlrIUhc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605318; c=relaxed/simple; bh=RkY7Txa2xX7/tX/rp5sOp4zgcw4PnumUNJZyMr+2yT0=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=CEFRm85zvYHuTqd5HqqHxFsba2cC+oSppmqWY54DzSJjPv3cFaQlLPZyyhB6nddO6DSt5RCr16hrL5MrDA7yFbulKssMjWKlgBN94eKg8sD+bRtgd5+OCXbCC0sygkbedMjmhsr3UU1KwCAg2rB3D7eS9dVx+733RIp/gC6uZZ4= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 8548E4BA2E1E Received: by mail-wm1-x32d.google.com with SMTP id 5b1f17b1804b1-48538c5956bso17956165e9.0 for ; Fri, 27 Mar 2026 02:55:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774605317; x=1775210117; 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=9jBQ8q743fO4Pq2sEky16/B2fxYyrg5VjEStrjLlYtc=; b=Q7rIGh1uzmjWXhQy4j5vTD0JA+B3WhX5IaLfByamDDDNf3IvemnRz01Op5WHnsGWuL xf7wEGrbwG3wn5EKJorhjk+xq6pLYnd6sHDEsWpQiWmq4iljwh5nsX1PzKdTM5q97LXO yXV42way3cpa4JdtzpPVqdGrGWfOXVc4+qhJsyg+3GVhBh2VH1QO1jQeJ7XowHnWXa4n oTI34n29QnGjfVLhTpDmUiVzBid/PvUdFFR515ZpcOFMFvhGxLDh/kdV9sWEnfoUunSP h+NI0NOFu7SWfabEkKmJGpAb55vz1LA7DKL/VJbwRCVosLxHWoVgLtqqO1tibQ39R5QN +tQg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774605317; x=1775210117; 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=9jBQ8q743fO4Pq2sEky16/B2fxYyrg5VjEStrjLlYtc=; b=XKKdZYnsPTd8W9l5BIJqggCEcJAOA4Fv4hgCo/zgIrmfJKa6Pt0lYWcazCXlXFNMbY DvWZkAmGIQvPN9FCHhkr/CGZtBYbBZm2TEDFm/iZYw5oxf7TfmqG3H6pOIrGCq+K34w8 44vU39Lam6/0j15xDJs8kH6lyJ4n2L41xbgcwfQCHlMyZmDxnB90EvNd8sohv4VakMsJ lk3IwismIvXM1b2RQM83P+BSFk4aGqUzmCE/6MFKfe/0xQ0Op0T0mTiY67czQFnZyLYq Fv4IZlskeSHiyO3Y9NQKyCxdUuxRD2X9fu35Qvxbli2LCFCwnulN67N3HkzkS1oY7URF Lr5w== X-Gm-Message-State: AOJu0Yy/r3OEH/VhsMd+eCmxcb68cv4gT9HdbrcaADAJJRNMqICp4WEQ Uu/hcsquBNLpRPH+k8xBHH18xtEW33P2+ngkX7J5eFhlER3ZhdpYN2MayI4Mp6njsUfB6UdS3d5 eXqI07Q== X-Gm-Gg: ATEYQzwoA0Zuqx+XWIuYhWLUzK7UbbH9d637Q7aRP2isLYAWKk0Oq80y/P3ZP9S3+RF ukumy0Ko/nzzviWq7ucon5FAhesROgX9nIlhy3J1TynwXt8hoztoOQV6TVbSph5BsgR5Jqa8njD Lsr17uEZksnApaLN0YPzyzjyrLMJxTFk4X4sNj+nbsCKTpWWAxc1khyltrtRR2ZJXolgwmtKOH4 X3SfkEkzhB+Am1eOPiPGHAAI8IyKYYq+iarj8O65SM45lwKzf8eIfgC5BLny1lLm2vefwtOI6eO 5jlaX04XMnR/UZ4KTYpaXhHiioUp+mVHMInblML97KGrCWkrxZF8v+HyGMFeM7O1xbkTCwcecFL 0/B5nW2z+D0a8C6szmJG9g29c8V8hPlFCscrW8A/AZETSL55awxAmGjBWdVm8CTdIV+chOpphYv TMYAmrOAUttireEl+xB2WhYrKIMQozC4f+cUZUb5pLA8VSS3DoBnUwvuNSGMQhZ0YPrdROmtQdq ZM/GlU/Bt+bok4= X-Received: by 2002:a05:600c:3e11:b0:487:22ad:403e with SMTP id 5b1f17b1804b1-4872911ca63mr22004585e9.14.1774605317298; Fri, 27 Mar 2026 02:55:17 -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-48722cb5845sm77431545e9.15.2026.03.27.02.55.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 02:55:17 -0700 (PDT) Message-ID: <42c253d7-9c0c-4945-8da8-b5e45da39be0@suse.com> Date: Fri, 27 Mar 2026 10:55:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 3/6] bfd/ELF: fold BFD_RELOC__GOTPC* From: Jan Beulich To: Binutils References: <2751d8ad-591b-4226-aeaa-a873270bce29@suse.com> Content-Language: en-US Cc: Claudiu Zissulescu , Nick Clifton , "ramana.radhakrishnan@arm.com" , Richard Earnshaw , "H.J. Lu" , Andreas Krebbel , Jens Remus , Alexandre Oliva 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=-1007.0 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=unavailable 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 For many of the cases there's no need to have separate relocs per arch; just like for other more or less generic ones a single one (per purpose; a 64-bit generic one is being introduced) will do. C-Sky - sadly - continues to be an exception. --- Why is it that BFD_RELOC_386_GOTPC (but not BFD_RELOC_X86_64_GOTPC{32,64}) is among the types checked in TC_FORCE_RELOCATION_LOCAL()? Without that, BFD_RELOC_X86_64_GOTPC32 type could also be replaced by BFD_RELOC_32_PLT_PCREL, then even simplifying at least one expression. --- v2: Re-base over changes earlier in the series. Introduce BFD_RELOC_64_GOT_PCREL to correct the S/390 change (and then used for x86-64 as well). --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3303,6 +3303,7 @@ enum bfd_reloc_code_real BFD_RELOC_16_SECIDX, /* For ELF. */ + BFD_RELOC_64_GOT_PCREL, BFD_RELOC_32_GOT_PCREL, BFD_RELOC_16_GOT_PCREL, BFD_RELOC_8_GOT_PCREL, @@ -3816,7 +3817,6 @@ enum bfd_reloc_code_real /* i386/elf relocations. */ BFD_RELOC_386_GOT32, BFD_RELOC_386_PLT32, - BFD_RELOC_386_GOTPC, BFD_RELOC_386_TLS_TPOFF, BFD_RELOC_386_TLS_IE, BFD_RELOC_386_TLS_GOTIE, @@ -3849,7 +3849,6 @@ enum bfd_reloc_code_real BFD_RELOC_X86_64_GOTPC32, BFD_RELOC_X86_64_GOT64, BFD_RELOC_X86_64_GOTPCREL64, - BFD_RELOC_X86_64_GOTPC64, BFD_RELOC_X86_64_GOTPLT64, BFD_RELOC_X86_64_GOTPC32_TLSDESC, BFD_RELOC_X86_64_TLSDESC_CALL, @@ -4162,7 +4161,6 @@ enum bfd_reloc_code_real /* Relocations for setting up GOTs and PLTs for shared libraries. */ BFD_RELOC_ARM_GOT32, - BFD_RELOC_ARM_GOTPC, BFD_RELOC_ARM_GOT_PREL, /* ARM thread-local storage relocations. */ @@ -4279,7 +4277,6 @@ enum bfd_reloc_code_real BFD_RELOC_SH_LABEL, BFD_RELOC_SH_LOOP_START, BFD_RELOC_SH_LOOP_END, - BFD_RELOC_SH_GOTPC, BFD_RELOC_SH_COPY64, BFD_RELOC_SH_GLOB_DAT64, BFD_RELOC_SH_JMP_SLOT64, @@ -4348,7 +4345,6 @@ enum bfd_reloc_code_real BFD_RELOC_ARC_SDA16_ST2, BFD_RELOC_ARC_32_PCREL, BFD_RELOC_ARC_GOT32, - BFD_RELOC_ARC_GOTPC32, BFD_RELOC_ARC_GOTPC, BFD_RELOC_ARC_S21W_PCREL_PLT, BFD_RELOC_ARC_S25H_PCREL_PLT, @@ -4905,7 +4901,6 @@ enum bfd_reloc_code_real BFD_RELOC_V850_CALLT_15_16_OFFSET, /* DSO relocations. */ - BFD_RELOC_V850_32_GOTPCREL, BFD_RELOC_V850_16_GOT, BFD_RELOC_V850_32_GOT, BFD_RELOC_V850_22_PLT_PCREL, @@ -5374,9 +5369,6 @@ enum bfd_reloc_code_real /* 12 bit GOT offset. */ BFD_RELOC_390_GOT12, - /* 32 bit PC relative offset to GOT. */ - BFD_RELOC_390_GOTPC, - /* 16 bit GOT offset. */ BFD_RELOC_390_GOT16, --- a/bfd/elf32-arc.c +++ b/bfd/elf32-arc.c @@ -386,6 +386,7 @@ arc_elf_link_hash_table_create (bfd *abf #define BFD_RELOC_ARC_PC32 BFD_RELOC_32_PCREL #define BFD_RELOC_ARC_PLT32 BFD_RELOC_32_PLT_PCREL #define BFD_RELOC_ARC_GOTOFF BFD_RELOC_32_GOTOFF +#define BFD_RELOC_ARC_GOTPC32 BFD_RELOC_32_GOT_PCREL #define BFD_RELOC_ARC_COPY BFD_RELOC_COPY #define BFD_RELOC_ARC_GLOB_DAT BFD_RELOC_GLOB_DAT #define BFD_RELOC_ARC_JMP_SLOT BFD_RELOC_JMP_SLOT --- a/bfd/elf32-arm.c +++ b/bfd/elf32-arm.c @@ -2020,7 +2020,7 @@ static const struct elf32_arm_reloc_map {BFD_RELOC_JMP_SLOT, R_ARM_JUMP_SLOT}, {BFD_RELOC_RELATIVE, R_ARM_RELATIVE}, {BFD_RELOC_32_GOTOFF, R_ARM_GOTOFF32}, - {BFD_RELOC_ARM_GOTPC, R_ARM_GOTPC}, + {BFD_RELOC_32_GOT_PCREL, R_ARM_GOTPC}, {BFD_RELOC_ARM_GOT_PREL, R_ARM_GOT_PREL}, {BFD_RELOC_ARM_GOT32, R_ARM_GOT32}, {BFD_RELOC_32_PLT_PCREL, R_ARM_PLT32}, --- a/bfd/elf32-i386.c +++ b/bfd/elf32-i386.c @@ -237,7 +237,7 @@ elf_i386_reloc_type_lookup (bfd *abfd, TRACE ("BFD_RELOC_32_GOTOFF"); return &elf_howto_table[R_386_GOTOFF]; - case BFD_RELOC_386_GOTPC: + case BFD_RELOC_32_GOT_PCREL: TRACE ("BFD_RELOC_386_GOTPC"); return &elf_howto_table[R_386_GOTPC]; --- a/bfd/elf32-s390.c +++ b/bfd/elf32-s390.c @@ -213,7 +213,7 @@ elf_s390_reloc_type_lookup (bfd *abfd AT return &elf_howto_table[(int) R_390_RELATIVE]; case BFD_RELOC_32_GOTOFF: return &elf_howto_table[(int) R_390_GOTOFF32]; - case BFD_RELOC_390_GOTPC: + case BFD_RELOC_32_GOT_PCREL: return &elf_howto_table[(int) R_390_GOTPC]; case BFD_RELOC_390_GOT16: return &elf_howto_table[(int) R_390_GOT16]; --- a/bfd/elf32-sh.c +++ b/bfd/elf32-sh.c @@ -360,7 +360,7 @@ static const struct elf_reloc_map sh_rel { BFD_RELOC_JMP_SLOT, R_SH_JMP_SLOT }, { BFD_RELOC_RELATIVE, R_SH_RELATIVE }, { BFD_RELOC_32_GOTOFF, R_SH_GOTOFF }, - { BFD_RELOC_SH_GOTPC, R_SH_GOTPC }, + { BFD_RELOC_32_GOT_PCREL, R_SH_GOTPC }, { BFD_RELOC_SH_GOTPLT32, R_SH_GOTPLT32 }, { BFD_RELOC_SH_GOT20, R_SH_GOT20 }, { BFD_RELOC_SH_GOTOFF20, R_SH_GOTOFF20 }, --- a/bfd/elf32-v850.c +++ b/bfd/elf32-v850.c @@ -1731,7 +1731,7 @@ static const struct v850_elf_reloc_map v { BFD_RELOC_V850_16_S1, R_V850_16_S1 }, { BFD_RELOC_V850_LO16_S1, R_V850_LO16_S1 }, { BFD_RELOC_V850_CALLT_15_16_OFFSET, R_V850_CALLT_15_16_OFFSET }, - { BFD_RELOC_V850_32_GOTPCREL, R_V850_32_GOTPCREL }, + { BFD_RELOC_32_GOT_PCREL, R_V850_32_GOTPCREL }, { BFD_RELOC_V850_16_GOT, R_V850_16_GOT }, { BFD_RELOC_V850_32_GOT, R_V850_32_GOT }, { BFD_RELOC_V850_22_PLT_PCREL, R_V850_22_PLT }, --- a/bfd/elf64-s390.c +++ b/bfd/elf64-s390.c @@ -227,7 +227,7 @@ elf_s390_reloc_type_lookup (bfd *abfd, return &elf_howto_table[(int) R_390_RELATIVE]; case BFD_RELOC_32_GOTOFF: return &elf_howto_table[(int) R_390_GOTOFF32]; - case BFD_RELOC_390_GOTPC: + case BFD_RELOC_64_GOT_PCREL: return &elf_howto_table[(int) R_390_GOTPC]; case BFD_RELOC_390_GOT16: return &elf_howto_table[(int) R_390_GOT16]; --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -1078,6 +1078,7 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_8_PCREL", "BFD_RELOC_32_SECREL", "BFD_RELOC_16_SECIDX", + "BFD_RELOC_64_GOT_PCREL", "BFD_RELOC_32_GOT_PCREL", "BFD_RELOC_16_GOT_PCREL", "BFD_RELOC_8_GOT_PCREL", @@ -1407,7 +1408,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_MN10300_TLS_TPOFF", "BFD_RELOC_386_GOT32", "BFD_RELOC_386_PLT32", - "BFD_RELOC_386_GOTPC", "BFD_RELOC_386_TLS_TPOFF", "BFD_RELOC_386_TLS_IE", "BFD_RELOC_386_TLS_GOTIE", @@ -1438,7 +1438,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_X86_64_GOTPC32", "BFD_RELOC_X86_64_GOT64", "BFD_RELOC_X86_64_GOTPCREL64", - "BFD_RELOC_X86_64_GOTPC64", "BFD_RELOC_X86_64_GOTPLT64", "BFD_RELOC_X86_64_GOTPC32_TLSDESC", "BFD_RELOC_X86_64_TLSDESC_CALL", @@ -1680,7 +1679,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_ARM_TLS_LDM32_FDPIC", "BFD_RELOC_ARM_TLS_IE32_FDPIC", "BFD_RELOC_ARM_GOT32", - "BFD_RELOC_ARM_GOTPC", "BFD_RELOC_ARM_GOT_PREL", "BFD_RELOC_ARM_TLS_GD32", "BFD_RELOC_ARM_TLS_LDO32", @@ -1784,7 +1782,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_SH_LABEL", "BFD_RELOC_SH_LOOP_START", "BFD_RELOC_SH_LOOP_END", - "BFD_RELOC_SH_GOTPC", "BFD_RELOC_SH_COPY64", "BFD_RELOC_SH_GLOB_DAT64", "BFD_RELOC_SH_JMP_SLOT64", @@ -1851,7 +1848,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_ARC_SDA16_ST2", "BFD_RELOC_ARC_32_PCREL", "BFD_RELOC_ARC_GOT32", - "BFD_RELOC_ARC_GOTPC32", "BFD_RELOC_ARC_GOTPC", "BFD_RELOC_ARC_S21W_PCREL_PLT", "BFD_RELOC_ARC_S25H_PCREL_PLT", @@ -2110,7 +2106,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_V850_16_S1", "BFD_RELOC_V850_LO16_S1", "BFD_RELOC_V850_CALLT_15_16_OFFSET", - "BFD_RELOC_V850_32_GOTPCREL", "BFD_RELOC_V850_16_GOT", "BFD_RELOC_V850_32_GOT", "BFD_RELOC_V850_22_PLT_PCREL", @@ -2382,7 +2377,6 @@ static const char *const bfd_reloc_code_ "BFD_RELOC_RX_RELAX", "BFD_RELOC_390_12", "BFD_RELOC_390_GOT12", - "BFD_RELOC_390_GOTPC", "BFD_RELOC_390_GOT16", "BFD_RELOC_390_GOT32", "BFD_RELOC_390_PC12DBL", --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -1429,6 +1429,8 @@ ENUMDOC Section relative relocations. Some targets need this for DWARF2. ENUM + BFD_RELOC_64_GOT_PCREL +ENUMX BFD_RELOC_32_GOT_PCREL ENUMX BFD_RELOC_16_GOT_PCREL @@ -2320,8 +2322,6 @@ ENUM ENUMX BFD_RELOC_386_PLT32 ENUMX - BFD_RELOC_386_GOTPC -ENUMX BFD_RELOC_386_TLS_TPOFF ENUMX BFD_RELOC_386_TLS_IE @@ -2385,8 +2385,6 @@ ENUMX ENUMX BFD_RELOC_X86_64_GOTPCREL64 ENUMX - BFD_RELOC_X86_64_GOTPC64 -ENUMX BFD_RELOC_X86_64_GOTPLT64 ENUMX BFD_RELOC_X86_64_GOTPC32_TLSDESC @@ -2959,8 +2957,6 @@ ENUMDOC ENUM BFD_RELOC_ARM_GOT32 ENUMX - BFD_RELOC_ARM_GOTPC -ENUMX BFD_RELOC_ARM_GOT_PREL ENUMDOC Relocations for setting up GOTs and PLTs for shared libraries. @@ -3186,8 +3182,6 @@ ENUMX ENUMX BFD_RELOC_SH_LOOP_END ENUMX - BFD_RELOC_SH_GOTPC -ENUMX BFD_RELOC_SH_COPY64 ENUMX BFD_RELOC_SH_GLOB_DAT64 @@ -3323,8 +3317,6 @@ ENUMX ENUMX BFD_RELOC_ARC_GOT32 ENUMX - BFD_RELOC_ARC_GOTPC32 -ENUMX BFD_RELOC_ARC_GOTPC ENUMX BFD_RELOC_ARC_S21W_PCREL_PLT @@ -4150,8 +4142,6 @@ ENUM ENUMDOC This is a 16 bit offset from the call table base pointer. ENUM - BFD_RELOC_V850_32_GOTPCREL -ENUMX BFD_RELOC_V850_16_GOT ENUMX BFD_RELOC_V850_32_GOT @@ -4909,10 +4899,6 @@ ENUM ENUMDOC 12 bit GOT offset. ENUM - BFD_RELOC_390_GOTPC -ENUMDOC - 32 bit PC relative offset to GOT. -ENUM BFD_RELOC_390_GOT16 ENUMDOC 16 bit GOT offset. --- a/gas/config/tc-arc.c +++ b/gas/config/tc-arc.c @@ -543,7 +543,7 @@ static const struct arc_reloc_op_tag arc_reloc_op[] = { DEF (gotoff, BFD_RELOC_32_GOTOFF, 1), - DEF (gotpc, BFD_RELOC_ARC_GOTPC32, 0), + DEF (gotpc, BFD_RELOC_32_GOT_PCREL, 0), DEF (plt, BFD_RELOC_32_PLT_PCREL, 0), DEF (sda, DUMMY_RELOC_ARC_ENTRY, 1), DEF (pcl, BFD_RELOC_32_PCREL, 1), @@ -3087,7 +3087,7 @@ md_apply_fix (fixS *fixP, md_number_to_chars (fixpos, value, fixP->fx_size); return; - case BFD_RELOC_ARC_GOTPC32: + case BFD_RELOC_32_GOT_PCREL: /* I cannot fix an GOTPC relocation because I need to relax it from ld rx,[pcl,@sym@gotpc] to add rx,pcl,@sym@gotpc. */ as_bad (_("Unsupported operation on reloc")); @@ -3260,7 +3260,7 @@ tc_gen_reloc (asection *section ATTRIBUT /* if we have something like add gp, pcl, _GLOBAL_OFFSET_TABLE_@gotpc. */ - if (code == BFD_RELOC_ARC_GOTPC32 + if (code == BFD_RELOC_32_GOT_PCREL && GOT_symbol && fixP->fx_addsy == GOT_symbol) code = BFD_RELOC_ARC_GOTPC; @@ -4215,7 +4215,7 @@ tc_arc_fix_adjustable (fixS *fixP) /* Adjust_reloc_syms doesn't know about the GOT. */ switch (fixP->fx_r_type) { - case BFD_RELOC_ARC_GOTPC32: + case BFD_RELOC_32_GOT_PCREL: case BFD_RELOC_32_PLT_PCREL: case BFD_RELOC_ARC_S25H_PCREL_PLT: case BFD_RELOC_ARC_S21H_PCREL_PLT: --- a/gas/config/tc-arc.h +++ b/gas/config/tc-arc.h @@ -129,7 +129,7 @@ extern const char *arc_target_format; relocations. Check also that fx_addsy is not NULL, in order to 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 \ + if ((FIXP->fx_r_type == BFD_RELOC_32_GOT_PCREL \ || 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 \ --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -29554,7 +29554,7 @@ tc_gen_reloc (asection *section, fixS *f && GOT_symbol && fixp->fx_addsy == GOT_symbol) { - code = BFD_RELOC_ARM_GOTPC; + code = BFD_RELOC_32_GOT_PCREL; reloc->addend = fixp->fx_offset = reloc->address; } #endif --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3971,7 +3971,7 @@ _reloc (unsigned int size, case BFD_RELOC_X86_64_GOT32: return BFD_RELOC_X86_64_GOT64; case BFD_RELOC_X86_64_GOTPC32: - other = BFD_RELOC_X86_64_GOTPC64; + other = BFD_RELOC_64_GOT_PCREL; break; case BFD_RELOC_X86_64_GOTPCREL: other = BFD_RELOC_X86_64_GOTPCREL64; @@ -13079,13 +13079,13 @@ output_disp (fragS *insn_start_frag, off { if (!object_64bit) { - reloc_type = BFD_RELOC_386_GOTPC; + reloc_type = BFD_RELOC_32_GOT_PCREL; i.has_gotpc_tls_reloc = true; i.op[n].disps->X_add_number += encoding_length (insn_start_frag, insn_start_off, p); } else if (reloc_type == BFD_RELOC_64) - reloc_type = BFD_RELOC_X86_64_GOTPC64; + reloc_type = BFD_RELOC_64_GOT_PCREL; else /* Don't do the adjustment for x86-64, as there the pcrel addressing is relative to the _next_ @@ -13313,11 +13313,11 @@ output_imm (fragS *insn_start_frag, offs == O_subtract)))) { if (!object_64bit) - reloc_type = BFD_RELOC_386_GOTPC; + reloc_type = BFD_RELOC_32_GOT_PCREL; else if (size == 4) reloc_type = BFD_RELOC_X86_64_GOTPC32; else if (size == 8) - reloc_type = BFD_RELOC_X86_64_GOTPC64; + reloc_type = BFD_RELOC_64_GOT_PCREL; i.has_gotpc_tls_reloc = true; i.op[n].imms->X_add_number += encoding_length (insn_start_frag, insn_start_off, p); @@ -18525,7 +18525,7 @@ tc_gen_reloc (asection *section ATTRIBUT case BFD_RELOC_386_GOT32: case BFD_RELOC_386_GOT32X: case BFD_RELOC_32_GOTOFF: - case BFD_RELOC_386_GOTPC: + case BFD_RELOC_32_GOT_PCREL: case BFD_RELOC_386_TLS_GD: case BFD_RELOC_386_TLS_LDM: case BFD_RELOC_386_TLS_LDO_32: @@ -18550,7 +18550,7 @@ tc_gen_reloc (asection *section ATTRIBUT case BFD_RELOC_X86_64_GOTPC32: case BFD_RELOC_X86_64_GOT64: case BFD_RELOC_X86_64_GOTPCREL64: - case BFD_RELOC_X86_64_GOTPC64: + case BFD_RELOC_64_GOT_PCREL: case BFD_RELOC_X86_64_GOTPLT64: case BFD_RELOC_64_PLTOFF: case BFD_RELOC_X86_64_GOTPC32_TLSDESC: @@ -18622,7 +18622,7 @@ tc_gen_reloc (asection *section ATTRIBUT && fixp->fx_addsy == GOT_symbol) { if (!object_64bit) - code = BFD_RELOC_386_GOTPC; + code = BFD_RELOC_32_GOT_PCREL; else code = BFD_RELOC_X86_64_GOTPC32; } @@ -18630,7 +18630,7 @@ tc_gen_reloc (asection *section ATTRIBUT && GOT_symbol && fixp->fx_addsy == GOT_symbol) { - code = BFD_RELOC_X86_64_GOTPC64; + code = BFD_RELOC_64_GOT_PCREL; } rel = notes_alloc (sizeof (arelent)); @@ -18664,7 +18664,7 @@ tc_gen_reloc (asection *section ATTRIBUT case BFD_RELOC_64_GOTOFF: case BFD_RELOC_X86_64_GOT64: case BFD_RELOC_X86_64_GOTPCREL64: - case BFD_RELOC_X86_64_GOTPC64: + case BFD_RELOC_64_GOT_PCREL: case BFD_RELOC_X86_64_GOTPLT64: case BFD_RELOC_64_PLTOFF: as_bad_where (fixp->fx_file, fixp->fx_line, --- a/gas/config/tc-i386.h +++ b/gas/config/tc-i386.h @@ -164,7 +164,7 @@ extern int tc_i386_fix_adjustable (struc #define TC_FORCE_RELOCATION_LOCAL(FIX) \ (GENERIC_FORCE_RELOCATION_LOCAL (FIX) \ || (FIX)->fx_r_type == BFD_RELOC_386_PLT32 \ - || (FIX)->fx_r_type == BFD_RELOC_386_GOTPC \ + || (FIX)->fx_r_type == BFD_RELOC_32_GOT_PCREL \ || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCREL \ || (FIX)->fx_r_type == BFD_RELOC_X86_64_GOTPCRELX \ || (FIX)->fx_r_type == BFD_RELOC_X86_64_REX_GOTPCRELX \ --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -2449,7 +2449,8 @@ tc_s390_force_relocation (struct fix *fi case BFD_RELOC_390_PLTOFF16: case BFD_RELOC_390_PLTOFF32: case BFD_RELOC_390_PLTOFF64: - case BFD_RELOC_390_GOTPC: + case BFD_RELOC_32_GOT_PCREL: + case BFD_RELOC_64_GOT_PCREL: case BFD_RELOC_390_GOT16: case BFD_RELOC_390_GOTPCDBL: case BFD_RELOC_390_GOT64: @@ -2838,10 +2839,11 @@ tc_gen_reloc (asection *seg ATTRIBUTE_UN code = fixp->fx_r_type; if (GOT_symbol && fixp->fx_addsy == GOT_symbol) { - if ( (s390_arch_size == 32 && code == BFD_RELOC_32_PCREL) - || (s390_arch_size == 64 && code == BFD_RELOC_64_PCREL)) - code = BFD_RELOC_390_GOTPC; - if (code == BFD_RELOC_390_PC32DBL) + if (s390_arch_size == 32 && code == BFD_RELOC_32_PCREL) + code = BFD_RELOC_32_GOT_PCREL; + else if (s390_arch_size == 64 && code == BFD_RELOC_64_PCREL) + code = BFD_RELOC_64_GOT_PCREL; + else if (code == BFD_RELOC_390_PC32DBL) code = BFD_RELOC_390_GOTPCDBL; } --- a/gas/config/tc-sh.c +++ b/gas/config/tc-sh.c @@ -320,7 +320,7 @@ sh_check_fixup (expressionS *main_exp, b { if (exp->X_add_symbol && exp->X_add_symbol == GOT_symbol) { - *r_type_p = BFD_RELOC_SH_GOTPC; + *r_type_p = BFD_RELOC_32_GOT_PCREL; return 0; } exp = symbol_get_value_expression (exp->X_add_symbol); @@ -3315,7 +3315,7 @@ sh_fix_adjustable (fixS *fixP) if (fixP->fx_r_type == BFD_RELOC_32_PLT_PCREL || fixP->fx_r_type == BFD_RELOC_SH_GOT32 || fixP->fx_r_type == BFD_RELOC_SH_GOT20 - || fixP->fx_r_type == BFD_RELOC_SH_GOTPC + || fixP->fx_r_type == BFD_RELOC_32_GOT_PCREL || fixP->fx_r_type == BFD_RELOC_SH_GOTFUNCDESC || fixP->fx_r_type == BFD_RELOC_SH_GOTFUNCDESC20 || fixP->fx_r_type == BFD_RELOC_SH_GOTOFFFUNCDESC @@ -3644,7 +3644,7 @@ md_apply_fix (fixS *fixP, valueT *valP, apply_full_field_fix (fixP, buf, val, 4); break; - case BFD_RELOC_SH_GOTPC: + case BFD_RELOC_32_GOT_PCREL: /* This is tough to explain. We end up with this one if we have operands that look like "_GLOBAL_OFFSET_TABLE_+[.-.L284]". The goal here is to obtain the absolute address of the GOT, --- a/gas/config/tc-sh.h +++ b/gas/config/tc-sh.h @@ -181,7 +181,7 @@ extern void sh_elf_final_processing (voi when used at runtime implies that we should add the address of the GOT to the specified location, and as a result we have simplified the expression into something we can use. */ -#define TC_RELOC_GLOBAL_OFFSET_TABLE BFD_RELOC_SH_GOTPC +#define TC_RELOC_GLOBAL_OFFSET_TABLE BFD_RELOC_32_GOT_PCREL #define tc_fix_adjustable(FIX) sh_fix_adjustable(FIX) extern bool sh_fix_adjustable (struct fix *); @@ -203,7 +203,7 @@ extern bool sh_fix_adjustable (struct fi (GENERIC_FORCE_RELOCATION_LOCAL (FIX) \ || (FIX)->fx_r_type == BFD_RELOC_32_PLT_PCREL \ || (FIX)->fx_r_type == BFD_RELOC_SH_GOT32 \ - || (FIX)->fx_r_type == BFD_RELOC_SH_GOTPC) + || (FIX)->fx_r_type == BFD_RELOC_32_GOT_PCREL) #define TC_FORCE_RELOCATION_SUB_LOCAL(FIX, SEG) \ ((!md_register_arithmetic && (SEG) == reg_section) \ --- a/bfd/elf64-x86-64.c +++ b/bfd/elf64-x86-64.c @@ -259,7 +259,7 @@ static const struct elf_reloc_map x86_64 { BFD_RELOC_X86_64_GOTPC32, R_X86_64_GOTPC32, }, { BFD_RELOC_X86_64_GOT64, R_X86_64_GOT64, }, { BFD_RELOC_X86_64_GOTPCREL64,R_X86_64_GOTPCREL64, }, - { BFD_RELOC_X86_64_GOTPC64, R_X86_64_GOTPC64, }, + { BFD_RELOC_64_GOT_PCREL, R_X86_64_GOTPC64, }, { BFD_RELOC_X86_64_GOTPLT64, R_X86_64_GOTPLT64, }, { BFD_RELOC_64_PLTOFF, R_X86_64_PLTOFF64, }, { BFD_RELOC_SIZE32, R_X86_64_SIZE32, }, From patchwork Fri Mar 27 09:56:15 2026 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 132361 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 5C51C4BA23C5 for ; Fri, 27 Mar 2026 09:57:21 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 5C51C4BA23C5 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=Ui0KTi2p X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by sourceware.org (Postfix) with ESMTPS id 934E64B9DB70 for ; Fri, 27 Mar 2026 09:56:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 934E64B9DB70 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 934E64B9DB70 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::431 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605378; cv=none; b=FRa5ah8X2hCWp2MX8IyZaj9kH7bz3TvFAUHTsxWRcbjtKl3Kw7/dGiYD2onKgmdiFx5P7/2aDGZ2VTfMMZ/ZBr5r/cMCBokWrvijAQlgUuiF9Z+BaXAvefpyRnbA0+UL08l8eWHyVVywomAN2pG79RORt4hbqGx6ZmvZ7wkbU58= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605378; c=relaxed/simple; bh=lL1ex83U2VZ9fxGQdanl7y8DTemNHtgdGjYUnJrQnik=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=GW+qtvfXNenBR57gAPmOunEqGzoDESsWdHLqQi/rIWSsQcyE58YeLCfV0huilXdnWdRUorU7vVIXgv/D26K/zSM4Um13c9DfAMSfODMbVBCjg0BBLpYPT49s6rlYhkmWj+77n8N+NmWn8xtUGKPxS0B7HtIEFLPUiAWkIltiXbY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 934E64B9DB70 Received: by mail-wr1-x431.google.com with SMTP id ffacd0b85a97d-439c6fc2910so1274246f8f.0 for ; Fri, 27 Mar 2026 02:56:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774605377; x=1775210177; 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=tF7rvZ6XIqPx8l91+ExuAe9qSAXNFWZ0H0ft7SpNgOQ=; b=Ui0KTi2peuwrLGTIGTLv7lpGpKnLwtvYJxYCv1M0YxJH4n9gzhaLHoGtZaaHTn1WVd 6/UyJAFDrNccdO0EQmX2Rvf/3BmzijmaYfeQs884P7LLsmiwpBTdfF4/DdtxK1IccmOF u4wShPh7eDg1qvCfgo99gmlH1XarfuNaFwHfrjTTnq4ExB2zq/9VlgSJAHa+Pi70wjug dgqhYY66oqumW4xvdeduy5VauGvnx5ADtjskH4F/2bxVY7dfApTVJrMpS1G0TSLI53I7 kgw4vpi/6SNzAwE4SQ6yXdtJuKlq2fQbAYk3b3fO1vUNDSGF5sNjM2Qwvw5LCi4MEhHl 1ufQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774605377; x=1775210177; 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=tF7rvZ6XIqPx8l91+ExuAe9qSAXNFWZ0H0ft7SpNgOQ=; b=bZDMK+1YT6zydwZ4lOmV/AY83r3g1bQjYjUXC3qjZ+YNkdyptag/csQk2PKHCq/COW 6lSaTguY+afASVW/shp6p/9QEj3W42G4PlaCABYoq5/aKSqydxYE/ft8f8lzfGYYTYGP NF+xrOTWIOgE8PMfKEcxAENwQPndwPCGs4ThXs/wnXv9lSfXrYcr65hiW/fDUmJi3Jgq k1hwOtubUg7B7EjqHHv0EXCKQuRW1yR7o949f3OX3jhDq+2W6SXPn1A7HAsUqBLMQzmU GkrGXS2y5UKVbR+BmcynyE0HYX5yMpqKagZhH/OA3Ip8LTz1g/wZst05pf6+B75cdXze ucAA== X-Gm-Message-State: AOJu0Yyr3QUaP8QJEFIWP2slDyNK7sLmiK7++YRmDdYNWR8ENF0Knd5t 7e3H8YHVR15df/L+udmipCKwCEnPjxcSpH+6/YU6ZJQbzukngAa1Z2mxAsmRtV/Z0cmDc3dq5g6 H7zDG3w== X-Gm-Gg: ATEYQzy6mxztYLxdX6MWNr6E7aoS9lIdq/oKKf+P03uzq9sDrcD0EUwBIHxwhpJHBEe Q2JZ2mPiqy4G4cm2xYvEtJp0I0wn0Aes+I7rlcDr56g8L9FLmCsmeAHv3a8Spe5UAj/URRiooTR 6HjmmqzsOyCDLn/wKw5HrjH0c9cVKLPrtUP+MGCbUpHZY7X7dRq9oJRogf1UMFGcLJe0oomMFkT h2cmPvfG97E9IpiVX5skUXv86UpcP9Rix+13UtlTR5PWOL7jw1VjeIWyCMSVNxnDZeaPTeyoXv0 Q7PKWsEMlx2KdBMJBxkgy8EMo3Qqh/djb6fFd41Y/afhbVidhEinytYVpzmluGVWn0m1SNGOjd4 tg8u8ykkjfV8FmLDsCbZvc6hnz7ajszE/XbTaXwXWCBTYmDM1v2fUHQ6qY9p4PKi86hN8JTMCiu aQ9fHDBPQ+jxmbwGXLs7FskSBDUUKBYRFJ1IEK/R6+1h1j6khvk6PgJUx8S2Yy00y5ElDevN4pW LEshRLixlA8W0k= X-Received: by 2002:a5d:5f88:0:b0:43b:6356:7d00 with SMTP id ffacd0b85a97d-43b9e990080mr2715254f8f.17.1774605377340; Fri, 27 Mar 2026 02:56:17 -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-43b91942e52sm13710732f8f.9.2026.03.27.02.56.16 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 02:56:17 -0700 (PDT) Message-ID: <1e8434c9-0b5d-45ad-8c43-62a27527ca83@suse.com> Date: Fri, 27 Mar 2026 10:56:15 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 4/6] bfd/Sparc: drop 64-bit BFD_RELOC_* aliases From: Jan Beulich To: Binutils References: <2751d8ad-591b-4226-aeaa-a873270bce29@suse.com> Content-Language: en-US Cc: "David S. Miller" , "Jose E. Marchesi" 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_NONE, SPF_HELO_NONE, SPF_NONE, TXREP 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 For other relocations (e.g. BFD_RELOC_{8,16,32}{,_PCREL} or BFD_RELOC_32_PCREL_S2) the generic enumerator is used. Plus use of such aliases obfuscates where the generic types are actually in use. --- This was approved by Jose, but I didn't want to re-order the series to get this in ahead of what needed some more work. --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -3414,7 +3414,6 @@ enum bfd_reloc_code_real BFD_RELOC_SPARC_BASE22, /* SPARC64 relocations. */ -#define BFD_RELOC_SPARC_64 BFD_RELOC_64 BFD_RELOC_SPARC_10, BFD_RELOC_SPARC_11, BFD_RELOC_SPARC_OLO10, @@ -3429,7 +3428,6 @@ enum bfd_reloc_code_real BFD_RELOC_SPARC_7, BFD_RELOC_SPARC_6, BFD_RELOC_SPARC_5, -#define BFD_RELOC_SPARC_DISP64 BFD_RELOC_64_PCREL BFD_RELOC_SPARC_HIX22, BFD_RELOC_SPARC_LOX10, BFD_RELOC_SPARC_H44, --- a/bfd/elfxx-sparc.c +++ b/bfd/elfxx-sparc.c @@ -396,7 +396,7 @@ _bfd_sparc_elf_reloc_type_lookup (bfd *a case BFD_RELOC_SPARC_11: return &_bfd_sparc_elf_howto_table[R_SPARC_11]; - case BFD_RELOC_SPARC_64: + case BFD_RELOC_64: return &_bfd_sparc_elf_howto_table[R_SPARC_64]; case BFD_RELOC_SPARC_OLO10: @@ -435,7 +435,7 @@ _bfd_sparc_elf_reloc_type_lookup (bfd *a case BFD_RELOC_SPARC_6: return &_bfd_sparc_elf_howto_table[R_SPARC_6]; - case BFD_RELOC_SPARC_DISP64: + case BFD_RELOC_64_PCREL: return &_bfd_sparc_elf_howto_table[R_SPARC_DISP64]; case BFD_RELOC_64_PLT_PCREL: --- a/bfd/reloc.c +++ b/bfd/reloc.c @@ -1630,10 +1630,7 @@ ENUMX ENUMDOC I think these are specific to SPARC a.out (e.g., Sun 4). -ENUMEQ - BFD_RELOC_SPARC_64 - BFD_RELOC_64 -ENUMX +ENUM BFD_RELOC_SPARC_10 ENUMX BFD_RELOC_SPARC_11 @@ -1661,9 +1658,6 @@ ENUMX BFD_RELOC_SPARC_6 ENUMX BFD_RELOC_SPARC_5 -ENUMEQX - BFD_RELOC_SPARC_DISP64 - BFD_RELOC_64_PCREL ENUMX BFD_RELOC_SPARC_HIX22 ENUMX 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; } From patchwork Fri Mar 27 09:58: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: 132363 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 514DA4BAD15F for ; Fri, 27 Mar 2026 09:59:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 514DA4BAD15F 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=NlBgq6S0 X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x333.google.com (mail-wm1-x333.google.com [IPv6:2a00:1450:4864:20::333]) by sourceware.org (Postfix) with ESMTPS id BD8B54B9DB79 for ; Fri, 27 Mar 2026 09:58:31 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BD8B54B9DB79 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 BD8B54B9DB79 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::333 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605512; cv=none; b=lql9l7UHT+SDgiJs5Q5KCr5VKNg7yMu3awNs7pm4lAuA6xLInzzE3WcSiIFAj+BBWxCHABZ+haa2ahu7tR9+MzaqpZUnJBP4+yiQz+uPz6QfZiVat8yer+9RHsQPrkiu63VIldo/pnh503hjh/EM4AlbAACN7Tp0UJJ7xKGKh80= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1774605512; c=relaxed/simple; bh=HNbSTb0UQZBYXr2q/ySGNp7Vs9MyrFVayEaV66TM2eg=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=tUlCrLc7ujwqAC55+i8ZdSKCpQtH5DesXxEkK21hAk1Uky4eugoAPUcMpTQy+dSsH5jvsITdX+lw2AmGRbiXVH1kvFltNT5nfBSeQ+shR7e/MVWQFz+8ozXzsJ4K0XqpXz8E2oUkiooEW77KPfihZJLVCh/5UjBotxI50DjYOqU= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BD8B54B9DB79 Received: by mail-wm1-x333.google.com with SMTP id 5b1f17b1804b1-4852afd42ceso14692725e9.2 for ; Fri, 27 Mar 2026 02:58:31 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1774605511; x=1775210311; 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=MK1Phaf9NZrHUnUv5oz9drNxqZju863mhUEAxEoigis=; b=NlBgq6S0pJCq6cCxnDy3xxKyg7msSY4nAG5DBIlpAKhOEVkUydzFUZYTqG3DDhIsIN r1Vo5xVCTEmLWdPLD6uwFw84dr7P9m4R59LUw6BKHZfNTf/gXInwhM86+OVzTnp0krGH 7Zl8l9U7tyGlADH0fDNWocS+dUbj65Yd3POgQb9l0cR38834/v9O53GIomZe/rWi1cCw 9U1YhoFY3FP41B+r9fYE8fHGhbI6QNcTFBUQeyeeZS2CnkwvGs2/O4IsLXguQwUOkKmU h5IytOwiklUdIGuniIgk3cgepa4m/3AU1EtFz2Gak7sYQfoooERUoOdOcM5cg3O47QVm mIDw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774605511; x=1775210311; 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=MK1Phaf9NZrHUnUv5oz9drNxqZju863mhUEAxEoigis=; b=MrImw9lOv6H0H1zUvbf1KNwxj+umSQ3O4o+HPrtpCj2aDrW9sGNvIFO7mztM12ZpY/ GFz/6djxrQsYffmBMmVKywfi6+TzNLzpiMAq6yI1tlRKLa/YpBvKWat9ysP4usDoPXHW BgLkyD0msr9mgPlQTYDsv33d42IamFXfGWuOqLpmOaoMhFCoe9/OqIiy7Yax7BYHnilu 2G4p/cdKDibivZPnZvqnLtDnQwcjWiP9RkZustsoKgogxKQXPilGDHbuCNJNiwjcq8P5 QBlQ1dXWMx3o/yzzKIMjfvCriRVbTQowBx2lA2nZh6Yf+jkNXl6/VlfXtTHHShwlXo7/ VwiQ== X-Gm-Message-State: AOJu0YxrvvEVEat7vPVT4v6UcAzaipHSUn8Vo/K2h6Ea9T9u7eNf9VEH 8MvX+Ipfj1UaDkUQYWzLwZrZS+1iHm38KFit8haYyTR/ZgfdZhIGegsBM+Y9NHn8BuUsLgR2qYl dR8Px2A== X-Gm-Gg: ATEYQzx9wbnyL4WFN+0NLpoP8pOsyIVnQOb3SuLl3l4N8xoyltzCpZnlxOnsWhGUsuJ NvWtpMyL2HeNSc6ru0MCRP5maNdaGBAIZ/ujw2DHrxkCrOn53h4wYG0GmY7q4xeiuM0DKdpMu06 Xy0V9rb6J82ZFhq4Hfq0BtuJm0+sv5yYd1thwAFEUb5Gxl2ItGJLkkL4CU3zB6Z2eQJYQA3MKgD +tff0tJlbVKUgb62VmJXLy3zYJFlHcfcmDQk0ZwOzugRmGQej2Iwj+8I0PSVKpsXmwlyvs8Lqjo QZVUrbv0iwj0045v4/0eldAkJidQt6Wqn1oQBbymsqjRefANW1FktOp+EynG4C6hpLxZFUUHExW dCd/FmiMvlyA3+D+CsJu9abr3LKdhtj7AtuEpRLareuNW6YnrLD6k6smwQw7WjddDZDRggGHg/F 3Mzm4qzYql3x46G6Zu0iNV0O27YQ9cZW98XjbzmmNCu7XeF2qt/MPBKcvYI73mTE6FKoMprqp5w o32JteOYVYU5qY= X-Received: by 2002:a05:600c:a108:b0:485:4388:348b with SMTP id 5b1f17b1804b1-48727c81d77mr25371445e9.0.1774605510643; Fri, 27 Mar 2026 02:58: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 5b1f17b1804b1-48725d9bcc4sm14344855e9.3.2026.03.27.02.58.30 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 27 Mar 2026 02:58:30 -0700 (PDT) Message-ID: <60de2f82-0d25-4353-9ac3-7f73a5d4f841@suse.com> Date: Fri, 27 Mar 2026 10:58:29 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH v2 6/6] bfd: drop ENUMEQ{,X} From: Jan Beulich To: Binutils References: <2751d8ad-591b-4226-aeaa-a873270bce29@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: <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 These are now unused, and perhaps it's better to drop them. If only to avoid their bitrotting. --- v2: New. --- a/bfd/doc/doc.str +++ b/bfd/doc/doc.str @@ -148,19 +148,6 @@ variable synopsis_seen copy_past_newline catstr catstr ; -: ENUMEQ - skip_past_newline - "@deffn {} " - copy_past_newline catstr catstr - skip_past_newline - ; -: ENUMEQX - skip_past_newline - "@deffnx {} " - copy_past_newline catstr - catstr - skip_past_newline - ; : ENUMDOC skip_past_newline get_stuff_in_command --- a/bfd/doc/proto.str +++ b/bfd/doc/proto.str @@ -138,18 +138,6 @@ ifinternal ; : ENUMX ENUM catstr ; -: ENUMEQ - skip_past_newline - "#define " - copy_past_newline remchar - catstr - " " - catstr - copy_past_newline - catstr - "" swap 0 internalmode ! maybecatstr - ; -: ENUMEQX ENUMEQ catstr ; : ENUMDOC skip_past_newline get_stuff_in_command