diff options
author | Ian Lance Taylor <ian@airs.com> | 1996-04-17 21:09:34 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@airs.com> | 1996-04-17 21:09:34 +0000 |
commit | f97fca7872e4a9636b47eefb4f64f5bdc2802443 (patch) | |
tree | 4b7420233f00ebf40eca6a2d185d3bd19a5ea81d /bfd | |
parent | d4d3c7adbb45714fb2d1ddc7a94627729bf0a82a (diff) | |
download | gdb-f97fca7872e4a9636b47eefb4f64f5bdc2802443.zip gdb-f97fca7872e4a9636b47eefb4f64f5bdc2802443.tar.gz gdb-f97fca7872e4a9636b47eefb4f64f5bdc2802443.tar.bz2 |
* xcofflink.c (xcoff_link_input_bfd): Check for TOC overflow.
Diffstat (limited to 'bfd')
-rw-r--r-- | bfd/ChangeLog | 2 | ||||
-rw-r--r-- | bfd/xcofflink.c | 15 |
2 files changed, 14 insertions, 3 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog index accd556..4fcf3f0 100644 --- a/bfd/ChangeLog +++ b/bfd/ChangeLog @@ -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. diff --git a/bfd/xcofflink.c b/bfd/xcofflink.c index 681e1e2..ed4c2b8 100644 --- a/bfd/xcofflink.c +++ b/bfd/xcofflink.c @@ -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; |