4.23 シンボルバージョンに対するコンパイラおよびリンカサポートの使用

コンパイラとリンカの両方で、GNU 拡張シンボルバージョン管理モデルがサポートされます。

C または C++ コードでシンボルバージョンが含まれた関数を作成するには、アセンブリラベルの GNU 拡張を使用する必要があります。この拡張を使用して、関数シンボルの名前を以下の名前のシンボルに変換します。
  • function@@ver function のデフォルトの ver の場合)
  • function@ver function のデフォルト以外の ver の場合)。
例えば、デフォルトのバージョンは以下のように定義します。
int new_function(void) __asm__("versioned_fun@@ver2");
int new_function(void)
{
    return 2;
}
デフォルト以外のバージョンは以下のように定義します。
int old_function(void) __asm__("versioned_fun@ver1");
int old_function(void)
{
    return 1;
}
関連する参考文書
9.36 アセンブララベル
関連情報
BPABI モデルのシンボルバージョン管理
非機密扱いPDF file icon PDF 版ARM DUI0472LJ
Copyright © 2010-2015 ARM.All rights reserved.