ケース 2a では、dbx によって要求される共有ライブラリのパッチスペースが 8Mバイト以下の場合、rtc_patch_area を使用して、パッチ領域として機能する共有ライブラリを作成し、それを a.out にリンクすることができます。
次のようなメッセージが表示されたら、以下の手順に従ってください。
実行時検査を有効にしています... dbx: warning: rtc: cannot find patch space within 8Mb (need 563332 bytes for ./sh1.so) dbx: patch area too far (8Mb limitation); Access checking disabled (See `help rtc8M', case 2)
共有オブジェクト patch1.so をパッチ領域として作成します。
rtc_patch_area -so patch1.so -size 563332
-size フラグは任意指定です。デフォルト値は 8000000 です。
リンク行で sh1.so の隣に patch1.so を置いてプログラムを再リンクします。dbx が同じ sh1.so に対してさらにパッチスペースを要求する場合は、patch1.so を sh1.so の直前に入れてみてください。
必要な共有ライブラリ順序を得るには、ld -l オプションではなくフルパス名を使用する必要があります。
新しいバイナリで RTC を再試行します。dbx が、別の共有ライブラリに対してパッチスペースを要求する場合は、そのライブラリについて手順 1〜2 を繰り返します。
dbx によって要求されるパッチスペースが、指定の共有ライブラリごとに 8Mバイトを超える場合は、上記のケース 2 の手順に従ってください。