处理目录 (TOC) 溢出

要处理目录 (TOC) 溢出,您可以减少全局符号的数量、扩大 TOC 访问范围或应用过程间分析。

程序中全局符号的地址存储在称为 TOC 的数据结构中。 要访问全局符号,必须从 TOC 中检索全局符号的地址。 缺省 TOC 数据结构具有可存储固定数目的全局符号的固定大小。 例如, IBM PowerPC® 体系结构使用具有带符号 16 位偏移量的指令进行间接地址计算,并将 TOC 的大小限制为 64 KB。 最多可将 16 K 个条目以 32 位方式存储在 TOC 中,而将 8 K 个条目以 64 位方式存储在 TOC 中。

对于大型应用程序, 公共 具有的全局符号多于可以存储在缺省 TOC 中的全局符号。 如果应用程序包含的 TOC 条目数超过 TOC 可容纳的数目,那么链接程序将报告 TOC 溢出,这指示必须使用替代机制。 使用以下方法来处理 TOC 溢出:

  • 通过以下方式减少程序中的全局符号数:
  • 通过指定以下选项来扩大 TOC 访问范围: