From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-ej1-x62a.google.com (mail-ej1-x62a.google.com [IPv6:2a00:1450:4864:20::62a]) by sourceware.org (Postfix) with ESMTPS id 062523858D3C for ; Mon, 2 May 2022 13:04:25 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 062523858D3C Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=harmstone.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com Received: by mail-ej1-x62a.google.com with SMTP id dk23so27638568ejb.8 for ; Mon, 02 May 2022 06:04:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=sender:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=4v4aFD0HLuHYl0EFb9XUeLWa1wLSNcwP4HZ6o8R8K5o=; b=EOMVX2/ljuTOEnIm/cYDOkhTQ32MbUfRQmywplWTkC1FVPRKSSkmfE+3ih8XLC2IN6 IobZTx3YGaukXvPkC4mwP7Qsk1lPLuvF0X5rEhbbbBUag8j+dbgl66Elc4vPK5k27N1p 3TQIH5vmId4g8a/jiS+Gp8P19/cl4P65M7nIWCk28vXeshKQsX9UuWhZ0WcrIoWWSqSB hPoawjDK2+KzB7+DdiWKCmRHgul2Att9GxSkNjOwp7VQGXW+RyFZzz3ZQDosPNg/jRXR EryjS0d70Q84yFFJaLWygGVX2/NF6lIvLdM8UOXs0StSKFsaIm1t0T2qd4EQbslydRbQ K0jw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:sender:from:to:cc:subject:date:message-id :mime-version:content-transfer-encoding; bh=4v4aFD0HLuHYl0EFb9XUeLWa1wLSNcwP4HZ6o8R8K5o=; b=j7rsZgCm3sNdJry/EZ8wt9/9tcYlcim3Kj6DJXeeej/tAC03vBvrsaliPwojhgW5hq d5tU+mbounXnxtLD1Oy7CbfaZ0TMIX5WpWN2HVgmW2RYyU3wiIIy0SJuVRGTzjdKoG0G Rns05rUCVzAfRkvHIyns7A1rrfoMTfevT1jOx+/PCUpHeDQKhiqDSL2bbBSpyldb5Q7a i1sMb1yhUzkT6vT21OQ60oKdx+20dJesA7yGPRko0Xgi6hFfEDijnJEx3bMfKQzH4jJz 9+I6VPI+ZWf3qN4Auz55Yzd39zrA9u1o67/7bvHsH33aqaZrxBslbUPHKEYDAcNWbRuN lsBA== X-Gm-Message-State: AOAM530Ml0zE1dWuAwCMVzU6yZN72+4Smi+w6GaqZFQ43z1g8EVMfkxc JjQA6yOEcVySIGN1vnHTXvGozH9rYXY= X-Google-Smtp-Source: ABdhPJzbZNVv25V1QgsRdnRiDpGE3RYuAMQhx7JigIDnq7gCC97GOc5xyrUMZW2TqxmHWIi5vVUkKA== X-Received: by 2002:a17:906:49d4:b0:6d6:e5ec:9a23 with SMTP id w20-20020a17090649d400b006d6e5ec9a23mr11136912ejv.79.1651496661447; Mon, 02 May 2022 06:04:21 -0700 (PDT) Received: from beren.harmstone.com ([2a02:8010:64ea:0:8eb8:7eff:fe53:9d5f]) by smtp.gmail.com with ESMTPSA id dq8-20020a170907734800b006f3ef214e23sm3568630ejc.137.2022.05.02.06.04.20 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 02 May 2022 06:04:20 -0700 (PDT) Sender: Mark Harmstone From: Mark Harmstone To: binutils@sourceware.org Cc: Mark Harmstone Subject: [PATCH] ld: use definitions in generate_reloc rather than raw literals Date: Mon, 2 May 2022 14:04:17 +0100 Message-Id: <20220502130417.11358-1-mark@harmstone.com> X-Mailer: git-send-email 2.35.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, FREEMAIL_FORGED_FROMDOMAIN, FREEMAIL_FROM, GIT_PATCH_0, HEADER_FROM_DIFFERENT_DOMAINS, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 02 May 2022 13:04:26 -0000 Constant names come from the "PE Format" specifications on the Microsoft website. --- include/coff/internal.h | 16 ++++++++++++++++ ld/pe-dll.c | 15 ++++++++------- 2 files changed, 24 insertions(+), 7 deletions(-) diff --git a/include/coff/internal.h b/include/coff/internal.h index f12908b0f65..4d2046ee090 100644 --- a/include/coff/internal.h +++ b/include/coff/internal.h @@ -694,4 +694,20 @@ struct internal_reloc unsigned long r_offset; /* Used by Alpha ECOFF, SPARC, others */ }; +#define IMAGE_REL_BASED_ABSOLUTE 0 +#define IMAGE_REL_BASED_HIGH 1 +#define IMAGE_REL_BASED_LOW 2 +#define IMAGE_REL_BASED_HIGHLOW 3 +#define IMAGE_REL_BASED_HIGHADJ 4 +#define IMAGE_REL_BASED_MIPS_JMPADDR 5 +#define IMAGE_REL_BASED_ARM_MOV32 5 +#define IMAGE_REL_BASED_RISCV_HIGH20 5 +#define IMAGE_REL_BASED_THUMB_MOV32 7 +#define IMAGE_REL_BASED_RISCV_LOW12I 7 +#define IMAGE_REL_BASED_RISCV_LOW12S 8 +#define IMAGE_REL_BASED_LOONGARCH32_MARK_LA 8 +#define IMAGE_REL_BASED_LOONGARCH64_MARK_LA 8 +#define IMAGE_REL_BASED_MIPS_JMPADDR16 9 +#define IMAGE_REL_BASED_DIR64 10 + #endif /* GNU_COFF_INTERNAL_H */ diff --git a/ld/pe-dll.c b/ld/pe-dll.c index c5ffd9ef032..81e52905c69 100644 --- a/ld/pe-dll.c +++ b/ld/pe-dll.c @@ -1654,20 +1654,20 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) { #ifdef pe_use_x86_64 case BITS_AND_SHIFT (64, 0): - reloc_data[total_relocs].type = 10; + reloc_data[total_relocs].type = IMAGE_REL_BASED_DIR64; total_relocs++; break; #endif case BITS_AND_SHIFT (32, 0): - reloc_data[total_relocs].type = 3; + reloc_data[total_relocs].type = IMAGE_REL_BASED_HIGHLOW; total_relocs++; break; case BITS_AND_SHIFT (16, 0): - reloc_data[total_relocs].type = 2; + reloc_data[total_relocs].type = IMAGE_REL_BASED_LOW; total_relocs++; break; case BITS_AND_SHIFT (16, 16): - reloc_data[total_relocs].type = 4; + reloc_data[total_relocs].type = IMAGE_REL_BASED_HIGHADJ; /* FIXME: we can't know the symbol's right value yet, but we probably can safely assume that CE will relocate us in 64k blocks, so leaving @@ -1676,7 +1676,8 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) total_relocs++; break; case BITS_AND_SHIFT (26, 2): - reloc_data[total_relocs].type = 5; + reloc_data[total_relocs].type = + IMAGE_REL_BASED_ARM_MOV32; total_relocs++; break; case BITS_AND_SHIFT (24, 2): @@ -1723,7 +1724,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) reloc_sz += 2; - if (reloc_data[i].type == 4) + if (reloc_data[i].type == IMAGE_REL_BASED_HIGHADJ) reloc_sz += 2; } @@ -1758,7 +1759,7 @@ generate_reloc (bfd *abfd, struct bfd_link_info *info) reloc_d + reloc_sz); reloc_sz += 2; - if (reloc_data[i].type == 4) + if (reloc_data[i].type == IMAGE_REL_BASED_HIGHADJ) { bfd_put_16 (abfd, reloc_data[i].extra, reloc_d + reloc_sz); reloc_sz += 2; -- 2.35.1