:entryオプションは、ロードモジュールを初期化する入力アドレスを
指定する。
たとえば、:entry "_myfunc"オプションは_myfuncから実行を始める
ことを意味する。
デフォルト入力アドレスは、節に記述されているように
ロードされたファイル名のbasenameである。
ライブラリモジュール名は:ld-optionオプション文字列の中に指定
することができる。
たとえば、suncoreライブラリを使用するモジュールをリンクするために、
:ld-optionには "-lsuncore -lsunwindow -lpixrect -lm -lc"
を与える必要がある。Solarisシステム以外では、
ライブラリがリンクされるときldは2度実行される。
1度はサイズを決定するため、2度目は固有のメモリーに実際にリンクするため。
:symbol-inputと:symbol-outputオプションはあるオブジェクト モジュールから他のモジュールへの参照を解決するため、あるいは ライブラリーの2重ロードを避けるために使用される。 A,B2つのオブジェクトモジュールがあり,BがAの中で定義されているsymbolを 参照しているとする。 :symbol-output ="a.out"を指定してモジュールAをロードする。 このリンクによって生成されたsymbol情報は、a.outに書き込まれる。 モジュールBをロードするためには、BからAへの参照を解決する :symbol-input = "a.out"を指定しなければならない。
Solaris2 OSにおいて、コンパイルコードのロードは、動的ロードライブラリの中の
dlopenを呼び出すことにより実行している。
dlopenの使用は、共有オブジェクトに制限されている。
そのオブジェクトは、位置に依存するようにコンパイルされるために、
"-K pic"オプションを指定する。
また、dlopenは同じファイルを2度オープンすることができないので、
既にロードされているファイルに関しては、dlcloseを最初に
実行する。
2016-04-05