mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-15 04:31:49 +08:00
d4d05d13eb
This patch fixes an internal error in GAS when defining a section using a symbol that has already been named but not defined. For a minimal reproducer, try the following input: a=b .sect a The problem is that obj_elf_change_section() happily reuses the symbol "a" created by equals() without clearing the sy_value field: prior to this patch, it just set bsym. This caused a problem when attempting to resolve the section symbol, since resolve_symbol_value() ended up resolving the symbol as if it were the original symbol created by equals(), which ends up leaving the section symbol in the undefined section instead of in section a, hence the call to abort() in S_SET_SEGMENT(). gas/ChangeLog: * config/obj-elf.c (obj_elf_change_section): When repurposing an existing symbol, ensure that we set sy_value as per other (fresh) section symbols. * testsuite/gas/elf/elf.exp: Add new test. * testsuite/gas/elf/section-symbol-redef.d: New test. * testsuite/gas/elf/section-symbol-redef.s: Input for test. |
||
---|---|---|
.. | ||
config | ||
gas | ||
lib | ||
ChangeLog-2004 | ||
ChangeLog-2005 | ||
ChangeLog-2006 | ||
ChangeLog-2007 | ||
ChangeLog-2008 | ||
ChangeLog-2009 | ||
ChangeLog-2010 | ||
ChangeLog-2011 | ||
ChangeLog-2012 | ||
ChangeLog-2013 | ||
ChangeLog-2014 | ||
ChangeLog-2015 | ||
ChangeLog-9303 |