10.26 組み込みシンボル

リンカによってシンボルバージョンが作成されるようにする特定の名前付きシンボルを入力オブジェクトに追加できます。

追加できるシンボルは、以下のような形式になります。

  • name@version(デフォルト以外のバージョンのシンボルの場合)。

  • name@@version(デフォルトのバージョンのシンボルの場合)。

このようなシンボルは、エクスポートを考えている関数やデータのアドレスで定義する必要があります。シンボル名は、シンボル名部分 ( name )とバージョン定義部分( version )の 2 つの部分から構成されます。 name はダイナミックシンボルテーブルに追加され、共有オブジェクトのインタフェースの一部になります。 ver がまだ存在しない場合は、その名前のバージョンを作成し、 name ver という名前のバージョンに関連付けます。

以下の例では、シンボル foo@ver1foo@@ver2、および bar@@ver1 をオブジェクトシンボルテーブルに配置しています。

int old_function(void) __asm__("foo@ver1"); int new_function(void) __asm__("foo@@ver2"); int other_function(void) __asm__("bar@@ver1");

リンカではこれらのシンボルを読み出し、バージョン定義 ver1ver2 を作成します。シンボル foo はデフォルトのバージョン以外の ver1 とデフォルトのバージョンの ver2 に関連付けられます。シンボル bar はデフォルトのバージョンの ver1 に関連付けられます。

この方法では、複数のバージョン間の関連付けを作成することはできません。

関連情報
シンボルバージョンに対するコンパイラおよびリンカサポートの使用
ARM アセンブリ言語の記述
非機密扱いPDF file icon PDF 版ARM DUI0474JJ
Copyright © 2010-2013 ARM.All rights reserved.