* xcofflink.c (xcoff_link_input_bfd): Check for TOC overflow.

This commit is contained in:
Ian Lance Taylor 1996-04-17 21:09:34 +00:00
parent d4d3c7adbb
commit f97fca7872
2 changed files with 14 additions and 3 deletions

View File

@ -12,6 +12,8 @@ Wed Apr 17 12:08:24 1996 Michael Meissner <meissner@tiktok.cygnus.com>
Wed Apr 17 13:07:37 1996 Ian Lance Taylor <ian@cygnus.com>
* xcofflink.c (xcoff_link_input_bfd): Check for TOC overflow.
* linker.c (_bfd_generic_link_add_one_symbol): When calling the
callback routines, pass h->root.string rather than name, in case
copy is true and name is transient.

View File

@ -3989,11 +3989,20 @@ xcoff_link_input_bfd (finfo, input_bfd)
of the TOC using a 16 bit offset from tocval. This
test assumes that the TOC comes at the end of the
output section, as it does in the default linker
script. If the TOC anchor is too far into the .toc
section, the relocation routine will report
overflows. */
script. */
tocend = ((*csectpp)->output_section->vma
+ (*csectpp)->output_section->_raw_size);
if (tocval + 0x10000 < tocend)
{
(*_bfd_error_handler)
("TOC overflow: 0x%lx > 0x10000; try -mminimal-toc when compiling",
(unsigned long) (tocend - tocval));
bfd_set_error (bfd_error_file_too_big);
return false;
}
if (tocval + 0x8000 < tocend)
{
bfd_vma tocadd;