armlink での ld スクリプトの一般的な使用事例

以下に、armlink での ld スクリプトの一般的な使用事例を示します。

ライブラリのラップ

一部のライブラリには、動的な部分と静的な部分があります。 ld スクリプトでは、INPUT コマンドで指定されたとおりの順序で両方のライブラリをロードします。以下に例を示します。

INPUT(libstatic.a)
INPUT(libdynamic.so)

このスクリプトでは、libstatic.a の後に libdynamic.so をロードするようにリンカに指示しています。

--ldpartial オプションを使用した部分リンク

ld スクリプトを指定して、リンカによるセクションの結合方法を制御できます。以下に例を示します。

SECTIONS
{
    .text :0
    {
        *(.text)
	*(mysection)
    }
}

このスクリプトでは、mysection とすべての .text セクションを 1 つの .text 出力セクションに結合するようにリンカに指示しています。

ARM Linux のリンクの細かい制御

デフォルトのリンカスクリプトで指定されている順序とは異なる順序でセクションを結合することが必要になる場合があります。 また、リンカで特定のアドレスにシンボルを定義することが必要になる場合もあります。 こうした情報は、ユーザ定義のリンカスクリプトで指定できます。

Note

ARM Linux 上で実行できるファイルを正常に生成するには、ダイナミックローダがファイルをロードするのに使用できるメタデータを格納する出力セクションをイメージに含める必要があります。 最初はいずれかのサンプルスクリプトを元に、それを目的に合わせて変更することを推奨します。

Show/hide関連項目

Copyright © 2010-2012 ARM. All rights reserved.ARM DUI 0474GJ
Non-ConfidentialID051612