タグ

gccとldに関するjjzakのブックマーク (2)

  • システムのデフォルトリンカスクリプトを調べる方法

    何回やっても忘れてしまうシリーズ。 カスタムなリンカスクリプトを使ってビルドするときに、オリジナルのリンカスクリプトを参照したいことはよくある いあ、カスタムなリンカスクリプトを使うこと自体が滅多にないという意見はあるが(^^; そんな時は以下のコマンドを用いる ld --verbose 以下は出力例 GNU ld version 2.15.92.0.2 20040927 Supported emulations: elf64_ia64 elf_i386 i386linux using internal linker script: ================================================== /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT("e

  • 初めてのC言語 - 第9回 リンカスクリプト

    目的 メモリマップを自分で決めて、リンカスクリプトを(途中まで)記述する メモリマップ これまで普通にC言語を使ってきたときには、OSがありました。第1回の時にもプログラムを動かしていたのはLinuxでした。 プログラムはOSによって、様々なリソース割当を行われます。CPU時間もそのひとつですが、最も重要なのがメモリ割当です。実際にプログラムが使うメモリを予約して、その空間に適切な形でプログラムを読出し、プログラムを実行します。必要に応じてアドレス変換やメモリ保護なども行います。 しかし、この「始めてのC言語」ではOSはありません。メモリ割当は自分で行う必要があります。このメモリ割当を行うために必要なのがリンカスクリプトです。 リンカスクリプトを作る前に、ターゲットコンピュータのメモリマップを知る必要があります。メモリマップとは、どのアドレスに何が置いてあるかの表みたいなものです。今回対象

  • 1