: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