mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-12-25 18:23:29 +08:00
set l_stoff to 0 if there are no strings
This commit is contained in:
parent
afe0786271
commit
9c234e298d
@ -1989,6 +1989,7 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
|
||||
size_t impsize, impcount;
|
||||
struct xcoff_import_file *fl;
|
||||
struct internal_ldhdr *ldhdr;
|
||||
bfd_size_type stoff;
|
||||
register char *out;
|
||||
asection *sec;
|
||||
bfd *sub;
|
||||
@ -2072,12 +2073,16 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
|
||||
+ ldhdr->l_nsyms * LDSYMSZ
|
||||
+ ldhdr->l_nreloc * LDRELSZ);
|
||||
ldhdr->l_stlen = ldinfo.string_size;
|
||||
ldhdr->l_stoff = ldhdr->l_impoff + impsize;
|
||||
stoff = ldhdr->l_impoff + impsize;
|
||||
if (ldinfo.string_size == 0)
|
||||
ldhdr->l_stoff = 0;
|
||||
else
|
||||
ldhdr->l_stoff = stoff;
|
||||
|
||||
/* We now know the final size of the .loader section. Allocate
|
||||
space for it. */
|
||||
lsec = xcoff_hash_table (info)->loader_section;
|
||||
lsec->_raw_size = ldhdr->l_stoff + ldhdr->l_stlen;
|
||||
lsec->_raw_size = stoff + ldhdr->l_stlen;
|
||||
lsec->contents = (bfd_byte *) bfd_zalloc (output_bfd, lsec->_raw_size);
|
||||
if (lsec->contents == NULL)
|
||||
{
|
||||
@ -2110,8 +2115,7 @@ bfd_xcoff_size_dynamic_sections (output_bfd, info, libpath, entry,
|
||||
;
|
||||
}
|
||||
|
||||
BFD_ASSERT ((bfd_size_type) ((bfd_byte *) out - lsec->contents)
|
||||
== ldhdr->l_stoff);
|
||||
BFD_ASSERT ((bfd_size_type) ((bfd_byte *) out - lsec->contents) == stoff);
|
||||
|
||||
/* Set up the symbol string table. */
|
||||
if (ldinfo.string_size > 0)
|
||||
|
Loading…
Reference in New Issue
Block a user