From 2748c1b17e37c5acfae9d5dbcc627350c3d38167 Mon Sep 17 00:00:00 2001 From: "H.J. Lu" Date: Fri, 11 Jun 2021 06:19:16 -0700 Subject: [PATCH] x86: Always define TC_PARSE_CONS_EXPRESSION Always define TC_PARSE_CONS_EXPRESSION to properly wrap constants for all x86 targets. * config/tc-i386.c (x86_cons): Handle GOT/PLT relocations only if needed. * config/tc-i386.h (TC_PARSE_CONS_EXPRESSION): Always define. --- gas/ChangeLog | 6 ++++++ gas/config/tc-i386.c | 6 ++++++ gas/config/tc-i386.h | 3 --- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 11693d33182..6bcb035621e 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,9 @@ +2021-06-11 H.J. Lu + + * config/tc-i386.c (x86_cons): Handle GOT/PLT relocations only + if needed. + * config/tc-i386.h (TC_PARSE_CONS_EXPRESSION): Always define. + 2021-06-11 Nelson Chu * config/tc-riscv.c (riscv_set_arch): Call riscv_set_rvc diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index 47c12b97651..b3f9f31db76 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -10413,6 +10413,9 @@ x86_cons (expressionS *exp, int size) { bfd_reloc_code_real_type got_reloc = NO_RELOC; +#if ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \ + && !defined (LEX_AT)) \ + || defined (TE_PE) intel_syntax = -intel_syntax; exp->X_md = 0; @@ -10468,6 +10471,9 @@ x86_cons (expressionS *exp, int size) if (intel_syntax) i386_intel_simplify (exp); +#else + expression (exp); +#endif /* If not 64bit, massage value, to account for wraparound when !BFD64. */ if (size == 4 && exp->X_op == O_constant && !object_64bit) diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h index 9ca9727d4ca..90d23da7d91 100644 --- a/gas/config/tc-i386.h +++ b/gas/config/tc-i386.h @@ -126,10 +126,7 @@ extern const char *i386_comment_chars; #define GLOBAL_OFFSET_TABLE_NAME "_GLOBAL_OFFSET_TABLE_" #endif -#if ((defined (OBJ_ELF) || defined (OBJ_MAYBE_ELF)) \ - && !defined (LEX_AT)) || defined (TE_PE) #define TC_PARSE_CONS_EXPRESSION(EXP, NBYTES) x86_cons (EXP, NBYTES) -#endif extern bfd_reloc_code_real_type x86_cons (expressionS *, int); #define TC_CONS_FIX_NEW(FRAG, OFF, LEN, EXP, RELOC) \ -- 2.30.2