Oracle Developer Studio 不可分ライブラリ (libstatomic.so) または GCC 不可分ライブラリ (libatomic.so) のいずれかを使用できますが、一緒にリンクされる実行可能ファイルおよびライブラリの間で一貫性を保つことが重要です。実行中のプロセスで使用される不可分ライブラリは 1 つだけにします。
リンク時に使用されるライブラリを制御するには、–xatomic オプションを使用します。Oracle Developer Studio のライブラリ libstatomic にリンクするには –xatomic=studio を使用し、GCC のライブラリ libatomic にリンクするには –xatomic=gcc を使用します。ライブラリとのリンクを行わない場合は、–xatomic=none を使用します。
GCC コンパイラを使用する既存のメイクファイルまたはソースコードの移植に役立つように、–latomic がコンパイラに渡された場合、そのオプションは –xatomic=studio に変換されます。
C++ プログラムの場合、不可分サポートライブラリは必要なときにデフォルトでリンクされます。
バンドルされている不可分ライブラリ libstatomic.so は、Oracle Developer Studio 製品の一部として完全にサポートされています。ライブラリを使用するアプリケーションを配備できますが、Oracle Developer Studio がインストールされているシステム上でアプリケーションが実行される場合を除き、ライブラリを含める必要があります。
例:
./lib
例:
build-path/import/libstatomic.so
例:
–R runtime-path build-path-to-atomics/libstatomic.so.1
次の例では、Oracle Developer Studio がインストールされていない 64 ビット SPARC プラットフォーム上にアプリケーションを配備します。
アプリケーションを構築マシン上に構築する前に、実行可能ファイルを基準にして libstatomic が配置される場所を決定します。たとえば、アプリケーションが app_root に配置されており、libstatomic ライブラリが app_root/lib にある場合、ライブラリの相対的なディレクトリは ./lib です。
bash-4.1$ ls app_root/ lib myprog bash-4.1$ ls app_root/lib/ libstatomic.so libstatomic.so.1
構築マシン上で libstatomic.so が配置される場所を決定します。たとえば、Oracle Developer Studio が install-dir/ にインストールされる場合、libstatomic.so は install-dir/lib/compilers/atomic/sparcv9/libstatomic.so に配置されます。
次のコマンドを使用して、プログラムをコンパイルします。
$ install-dir/bin/CC -m64 [compiler-options] -xatomic=none myprog.cc -o myprog -R./lib install-dir/lib/compilers/atomic/sparcv9/libstatomic.so
配備マシン上にパッケージディレクトリを作成します。
次に、64 ビットの libstatomic.so ライブラリを app_root/lib にコピーします。
$ cp install-dir/lib/compilers/atomic/sparcv9/libstatomic.so app_root/lib
myprog について生成された実行可能ファイルを app_root ディレクトリにコピーします。これにより、実行時リンカーは myprog が実行されたときに ./lib の下に libstatomic.so を見つけます。
$ cp myprog.out app_root