處理目錄 (TOC) 溢位
如果要處理目錄 (TOC) 溢位,您可以減少廣域符號數目,放大 TOC 存取範圍,或套用交互程序分析。
程式中廣域符號的位址儲存在稱為 TOC 的資料結構中。 如果要存取廣域符號,必須從 TOC 擷取廣域符號的位址。 預設 TOC 資料結構具有固定大小,可儲存固定數目的廣域符號。 例如, IBM PowerPC® 架構使用已簽署 16 位元偏移的指示進行間接位址計算,並將 TOC 的大小限制為 64 KB。 在 32 位元模式下, TOC 中最多可以儲存 16 K 項目,在 64 位元模式下,最多可以儲存 8 K 項目。
對於大型應用程式, 一般 會有比預設 TOC 中所能儲存的更多廣域符號。 如果應用程式包含的 TOC 項目超過 TOC 所能保留的數目,鏈結器會報告 TOC 溢位,指出必須使用替代機制。 請使用下列方法來處理 TOC 溢位:
- 以下列方式減少程式中的廣域符號數目:
- 變更原始碼。 這是減少全球符號數目的最佳方法。
- 指定 -qminimaltoc 選項。
- 指定 -qipa 選項來套用交互程序分析。 如需選項的相關資訊,請參閱 程序間分析 (IPA) 及 IPA 層次及其他 IPA 子選項。
- 指定下列選項來放大 TOC 存取範圍:
- -bbigtoc (鏈結器選項)
- -qpic=large