タグ

ldに関するembeddedのブックマーク (3)

  • 子プロセスに LD_PRELOAD を継承させない - bkブログ

    子プロセスに LD_PRELOAD を継承させない Linux で LD_PRELOAD 環境変数を使うと共有オブジェクト (共有ライブラリ) のプリロードを行うことができます。通常、LD_PRELOAD が設定されている間は、あるプロセスから呼んだ子プロセスも同様にプリロードを行いますが、場合によっては子プロセスにはプリロードさせたくないときもあります。 たとえば、make に対して foo.so をプリロードさせるつもりで、 LD_PRELOAD=./foo.so make と実行すると、make が呼び出すあらゆるコマンドも foo.so をプリロードします。 その結果、gcc や gcc の呼び出すプログラム cc1, as, collect2, ld まで foo.so をプリロードします。 foo.so が make の挙動を変えることのみを目的としていた場合、 gcc まで影

    embedded
    embedded 2012/12/20
    LD_PRELOADの応用技いろいろ。「LD_PRELOAD 環境変数にはスペース区切りで複数の共有オブジェクトを指定できます。」
  • ld 2.18 の -Bsymbolic オプションを使うと共有ライブラリ内でシンボルをローカルバインドできる - daily dayflower

    Linux の共有ライブラリの挙動について - daily dayflower の続きです。 下記は Ubuntu Hardy (8.04) i386 で動作確認しました。 ld 2.18 の -Bsymbolic オプション 昨日書いた通り,Linux で共有ライブラリを利用したプログラムを作る場合,共有ライブラリ内部の関数呼び出し(や変数アクセス)は ld.so を経由して行われます。 このパフォーマンスゲインやシンボル解決の危険性を解決するために ld 2.18 から -Bsymbolic オプションが新設されました。マニュアルから引用します。 -Bsymbolic When creating a shared library, bind references to global symbols to the definition within the shared library,

    ld 2.18 の -Bsymbolic オプションを使うと共有ライブラリ内でシンボルをローカルバインドできる - daily dayflower
  • GNU Binutils

    The GNU Binutils are a collection of binary tools. The main ones are: ld - the GNU linker. as - the GNU assembler. gold - a new, faster, ELF only linker. But they also include: addr2line - Converts addresses into filenames and line numbers. ar - A utility for creating, modifying and extracting from archives. c++filt - Filter to demangle encoded C++ symbols. dlltool - Creates files for building and

  • 1