バイナリー互換性

一般に、 IBM® Open XL C/C++ for AIX® 17.1.1 で作成された C++ オブジェクトは、 xlclang++によって呼び出される IBM XL C/C++ for AIX 16.1.0 の Clang ベース・フロントエンドで作成された C++ オブジェクトとバイナリー互換性があります。

次のケースは例外です。
  • -qpdf1 オプションで作成されるプログラム。 その理由は、 IBM Open XL C/C++ for AIX 17.1.1 と、 IBM XL C/C++ for AIX 16.1.0 の Clang ベース・フロントエンドが、異なる PDF ライブラリーを呼び出すためです。 詳しくは、Profile Guided Optimization (PGO) のトピックを参照してください。
  • ビット・フィールドを含むプログラム。

C++11 言語基準の実装には、std library libc++ への更新が必要です。また、C++ バイナリー互換性における破綻が生じます。 したがって、 IBM Open XL C/C++ for AIX 17.1.1 でビルドされた C++ オブジェクトは、 xlCによって呼び出される IBM XL C/C++ for AIX 16.1.0 以前のリリースの XL ベース・フロントエンドで生成された C++ オブジェクトと直接相互運用できません。 このようなバイナリー非互換性およびリンク・オブジェクト・ファイルを正常に解決するには、 IBM Open XL C/C++ for AIX 17.1.1 を使用してクラシック・プログラムを再コンパイルする必要があります。

IBM Open XL C/C++ for AIX 17.1.1 で作成された C オブジェクトは、 IBM XL C/C++ for AIX 16.1.0 以前のリリースで作成された C オブジェクトとバイナリー互換性があります (外部リンケージを持つシンボル名にドル記号と基本文字セットの文字のみが含まれている場合)。