タグ

linkerに関するjjzakのブックマーク (6)

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

    何回やっても忘れてしまうシリーズ。 カスタムなリンカスクリプトを使ってビルドするときに、オリジナルのリンカスクリプトを参照したいことはよくある いあ、カスタムなリンカスクリプトを使うこと自体が滅多にないという意見はあるが(^^; そんな時は以下のコマンドを用いる 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

  • ■ - ウォンツテック

    nchaOSではfirstbootからsecondboot、さらにstartKernelへの移動をljmp命令などで行い、それぞれのバイナリをcatなどでつなげてメモリ上の位置を制御していたが、今回はldのリンカスクリプト等を使い制御していきたいと思う。 そこでリンカスクリプトやその周辺についてメモを適当にまとめてみる。 オブジェクトファイル 1. asの「-a」オプションによりアセンブリリストを出力する 2. objdump -h objfile(objfileはas後のファイル)によりSECTIONのヘッダー情報を出力 3. objdump -t objfile によりシンボル情報を出力 リンカスクリプト 主な機能 1. ファイルの指定方法 ld -T file objfile.o -o outfile 2. 出力ファイルのメモリレイアウト方法 SECTIONS { . = 0x900

    ■ - ウォンツテック
  • ELF Statifierを使って実行形式ファイルをシステム間で移動する | OSDN Magazine

    共有ライブラリを動的にリンクすると、静的にリンクする場合よりもディスクを効率的に使用できる。それ以上に重要なのは、セキュリティのアップデートを簡単に実施できることだ。しかし、特定のバージョンの動的ライブラリを対象としてコンパイルされた実行形式ファイルは、そのバージョンの共有ライブラリが存在するコンピュータでしか実行できない。Fedora 9が稼働するコンピュータとopenSUSE 11が稼働するコンピュータでは、共有ライブラリのバージョンが微妙に違っていても不思議はない。このようなコンピュータ間で実行形式ファイルをコピーして実行すると、共有ライブラリのバージョンが異なるため正常に動作しないことがある。このような場合は、 ELF Statifier を使って静的リンク版の実行形式ファイルを作成すると、実行時に共有ライブラリを探す代わりに、組み込まれた共有ライブラリが使用される。静的リンク版の

    ELF Statifierを使って実行形式ファイルをシステム間で移動する | OSDN Magazine
  • はじめてのひき - PortableBinaryHacks

    Binary Hacks は GNU/Linux & x86 メインですが、 それ以外だとどんな感じだろうってことを書くところです。 私が個人的にいじってるものですが、 他の人にいじってもらっても問題ありません、 というか知らないことだらけなのでありがたいです。 1. イントロダクション Binary Hack入門 Binary Hack用語の基礎知識 file でファイルの種類をチェックする od でバイナリファイルをダンプする 2. オブジェクトファイルHack ELF 入門 静的ライブラリと共有ライブラリ ldd で共有ライブラリの依存関係をチェックする readelf で ELF ファイルの情報を表示する objdump でオブジェクトファイルをダンプする objdump でオブジェクトファイルを逆アセンブルする objcopy で実行ファイルにデータを埋め込む nm でオブジェク

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

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

  • 組み込み向けクロス開発環境の構築

    ※ この記事は、Interface 2004年5月号に掲載された記事を加筆、修正したものです。 目次 1. はじめに 2. PCで開発できる組み込みシステム 3. クロス開発環境とは? 4. GNU開発環境とは? 5. GNU開発環境のビルド 6. GDBスタブのROMへの書き込み 7. アプリケーションのコーディング、ビルド、デバッグ 8. アプリケーションのROM化 9. さいごに 10. 用語集

    jjzak
    jjzak 2007/09/04
    組み込み向けのコンパイル方法等、コードROM化、デバック、リンカスクリプト等
  • 1
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy