[binutils-gdb] x86: GOT is an ELF-only entity
Jan Beulich
jbeulich@sourceware.org
Fri Feb 21 09:30:11 GMT 2025
https://sourceware.org/git/gitweb.cgi?p=binutils-gdb.git;h=0e79ff9f50afcb9b92770ab5df4adfdc3b61a0e0
commit 0e79ff9f50afcb9b92770ab5df4adfdc3b61a0e0
Author: Jan Beulich <jbeulich@suse.com>
Date: Fri Feb 21 10:28:24 2025 +0100
x86: GOT is an ELF-only entity
Make md_undefined_symbol() conditional upon dealing with ELF, much like
other architectures (e.g. Arm32 and Arm64) have it. This avoids errors
in gas and even assertions in libbfd when "accidentally" e.g. a COFF-
targeting source file uses "_GLOBAL_OFFSET_TABLE_" for whatever reason.
While there also convert the final return statement to properly use
NULL.
NB: In principle 64-bit Mach-O knows GOT, too. Yet only an i?86-macho
assembler can be built right now, as per configure.tgt. Pretty clearly
adjustments to gotrel[] would also be necessary before these targets
could actually work reasonably cleanly.
Diff:
---
gas/config/tc-i386.c | 4 +++-
gas/config/tc-i386.h | 1 +
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c
index 9adb96ff433..1d07c2f1e37 100644
--- a/gas/config/tc-i386.c
+++ b/gas/config/tc-i386.c
@@ -18033,6 +18033,7 @@ i386_target_format (void)
#endif /* ELF / PE / MACH_O */
+#ifdef OBJ_ELF
symbolS *
md_undefined_symbol (char *name)
{
@@ -18050,8 +18051,9 @@ md_undefined_symbol (char *name)
};
return GOT_symbol;
}
- return 0;
+ return NULL;
}
+#endif
#ifdef OBJ_AOUT
/* Round up a section size to the appropriate boundary. */
diff --git a/gas/config/tc-i386.h b/gas/config/tc-i386.h
index 7cef12123e9..3fb7920d608 100644
--- a/gas/config/tc-i386.h
+++ b/gas/config/tc-i386.h
@@ -144,6 +144,7 @@ int i386_validate_fix (struct fix *);
extern int tc_i386_fix_adjustable (struct fix *);
#else
#define tc_fix_adjustable(X) ((void)(X), 1)
+#define md_undefined_symbol(N) ((void)(N), NULL)
#endif
/* Values passed to md_apply_fix don't include the symbol value. */
More information about the Binutils-cvs
mailing list