x86: limit 32-bit @size overflow checks to 64-bit objects

For 32-bit objects the behavior should not be dependent upon the build
being a BFD64 one.
This commit is contained in:
Jan Beulich 2021-04-26 10:39:11 +02:00
parent fe134c6569
commit d965814fb6
2 changed files with 6 additions and 0 deletions

View File

@ -1,3 +1,8 @@
2021-04-26 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (tc_gen_reloc): Limit BFD_RELOC_SIZE32
overflow check to 64-bit objects.
2021-04-26 Jan Beulich <jbeulich@suse.com>
* config/tc-i386.c (want_disp32): Also check for SIZE32.

View File

@ -14212,6 +14212,7 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
the symbol plus addend. */
valueT value = S_GET_SIZE (fixp->fx_addsy) + fixp->fx_offset;
if (fixp->fx_r_type == BFD_RELOC_SIZE32
&& object_64bit
&& !fits_in_unsigned_long (value))
as_bad_where (fixp->fx_file, fixp->fx_line,
_("symbol size computation overflow"));