x86 build breakage

Alan Modra amodra@gmail.com
Wed Sep 25 12:28:19 GMT 2024


OK to apply the following?

>From 3ef6914d084c0f42404676e3fd7b8d7d34a33ec1 Mon Sep 17 00:00:00 2001
From: Alan Modra <amodra@gmail.com>
Date: Wed, 25 Sep 2024 21:32:03 +0930
Subject: Re: x86: Enable TLS relocation check only for ELF

Some configurations (eg. i386-bsd, i386-msdos) broke with commit
9e0840deed38, due to the gotrel array being unused.  Fix that.
Also invert the preprocessor test around lex_got to make it positive
logic and remove the LEX_AT condition which is no longer necessary.
(The only x86 config files defining LEX_AT also define TE_PE.)

diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 25ecaa66104..3f8224e0720 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -1327,6 +1327,8 @@ static htab_t op_hash;
 /* Hash table for register lookup.  */
 static htab_t reg_hash;
 
+#if (defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined (OBJ_MACH_O) \
+     || defined (TE_PE))
 static const struct
 {
   const char *str;
@@ -1414,6 +1416,7 @@ gotrel[] =
 #undef OPERAND_TYPE_IMM32_32S_64_DISP32_64
 #undef OPERAND_TYPE_IMM64_DISP64
 };
+#endif
 
   /* Various efficient no-op patterns for aligning code labels.
      Note: Don't try to assemble the instructions in the comments.
@@ -12836,10 +12839,8 @@ x86_address_bytes (void)
   return stdoutput->arch_info->bits_per_address / 8;
 }
 
-#if (!(defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined (OBJ_MACH_O)) \
-     || defined (LEX_AT)) && !defined (TE_PE)
-# define lex_got(reloc, adjust, types) NULL
-#else
+#if (defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF) || defined (OBJ_MACH_O) \
+     || defined (TE_PE))
 /* Parse operands of the form
    <symbol>@GOTOFF+<nnn>
    and similar .plt or .got references.
@@ -12937,6 +12938,8 @@ lex_got (enum bfd_reloc_code_real *rel,
   /* Might be a symbol version string.  Don't as_bad here.  */
   return NULL;
 }
+#else
+# define lex_got(reloc, adjust, types) NULL
 #endif
 
 bfd_reloc_code_real_type

-- 
Alan Modra


More information about the Binutils mailing list