sunstudioで、64bitバイナリの出力設定が分からない

solaris上で共有ライブラリ(.so)をビルドしてて、初めて気がついた。
知ってる人には当たり前かも知れないけど、solarisのバイナリはELFだ。64bitも、32bitもELFだ。(これはSPARC環境でもそうなってて、驚いた。すげぇなsolarisのバイナリ互換へのこだわりは)とはいえ、64bitのプログラムからは、32bitのライブラリは当然だが、リンクできない。実際にリンクしようとするとELFCLASS32とELFCLASS64と作られるバイナリが違ってるよ、というエラーが出る。


solaris10には、gccが入るので、コンパイルオプションで -shared をつければ .so となるような共有ライブラリを作ることができる。
で、どうせなら、sunstudioでやってみよう、と思ってsunstudio12で新規プロジェクトで「C/C++動的ライブラリ」を選択して作ってみた。ら、どうやらデフォルトでは32bitバイナリが出力されるらしい。64bitの某バイナリに読ませようとしたら、ELFCLASS32だから駄目だというエラーが出た。
で、問題、sunstudioのどこかに64bitバイナリ出力の設定があるんだろう、と思って探したがよくわからなかったので、結局Makefileに -m64 を足してビルド完了。
おまけメモ:
ついでにdlopenを叩くテストプログラムも作ってみて確認してみた。win32のdllを呼ぶコードと対比するとこういう感じになるか

意味 solaris win32
関数の型宣言 必要 必要
ライブラリのオープン dlopen LoadLibrary
ライブラリ内の関数の取得 dlsym GetProcAddress
実行する関数ポインタ dlsymの返り値 GetProcAddressの返り値
ライブラリのクローズ dlclose Freelibrary

メモ:
参考にした
Sun Studio 12 Update 1: C++ ユーザーズガイド