OSDN Git Service

(split) LDP: Update release pages based on LDP 3.54 release
[linuxjm/LDP_man-pages.git] / release / man8 / ld.so.8
index 907ae5f..efbfb31 100644 (file)
@@ -7,7 +7,20 @@
 .\" This file was generated with po4a. Translate the source file.
 .\"
 .\"*******************************************************************
-.TH LD.SO 8 2013\-02\-10 GNU "Linux Programmer's Manual"
+.\"
+.\" Japanese Version Copyright (c) 1998 NAKANO Takeo all rights reserved.
+.\" Translated 1998-05-23, NAKANO Takeo <nakano@apm.seikei.ac.jp>
+.\" Updated & Modified 1999-09-14, NAKANO Takeo
+.\" Updated & Modified 2002-01-17, Yuichi SATO <ysato@h4.dion.ne.jp>
+.\" Updated & Modified 2002-07-15, Yuichi SATO
+.\" Updated 2007-06-13, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>, LDP v2.55
+.\" Updated 2010-04-23, Akihiro MOTOKI, LDP v3.24
+.\" Updated 2012-04-30, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-05-01, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-05-06, Akihiro MOTOKI <amotoki@gmail.com>
+.\" Updated 2013-08-16, Akihiro MOTOKI <amotoki@gmail.com>
+.\"
+.TH LD.SO 8 2013\-07\-15 GNU "Linux Programmer's Manual"
 .SH 名前
 ld.so, ld\-linux.so* \- 動的なリンカ/ローダ
 .SH 書式
@@ -28,14 +41,11 @@ Linux のバイナリは、コンパイルの時に \fBld\fP(1)  に対して \f
 バイナリを扱う。 このフォーマットは多くの人が最近何年も使っている。 それ以外の点では両方とも同じように動作し、 同じサポートファイルとプログラム
 \fBldd\fP(1), \fBldconfig\fP(8), \fI/etc/ld.so.conf\fP を使用する。
 .LP
-When resolving library dependencies, the dynamic linker first inspects each
-dependency string to see if it contains a slash (this can occur if a library
-pathname containing slashes was specified at link time).  If a slash is
-found, then the dependency string is interpreted as a (relative or absolute)
-pathname, and the library is loaded using that pathname.
+ライブラリの依存関係を解決する際、動的リンカは、最初に、依存関係の各文字列がスラッシュを含んでいるかをチェックする
+(この状況になるのは、リンク時にスラッシュを含むライブラリのパス名が指定された場合である)。スラッシュが見つかった場合、その依存関係の文字列はパス名
+(相対パス、絶対パスのどちらも可) として解釈され、そのパス名を使ってそのライブラリはロードされる。
 .LP
-If a library dependency does not contain a slash, then it is searched for in
-the following order:
+ライブラリの依存関係にスラッシュが含まれない場合、以下の順序で検索される。
 .IP o 3
 (ELF のみ)  バイナリの動的セクション属性 DT_RPATH が存在し、 DT_RUNPATH 属性が存在しない場合は、 DT_RPATH
 で指定されたディレクトリを使用する。 DT_RPATH の使用は推奨されない。
@@ -52,27 +62,38 @@ the following order:
 .IP o
 デフォルトパスである \fI/lib\fP、 次いで \fI/usr/lib\fP を用いる。 バイナリがリンカオプション \fB\-z nodeflib\fP
 でリンクされている場合、このステップはスキップされる。
-.SS "$ORIGIN と rpath"
+.SS "rpath トークンの展開"
 .PP
-.\" ld.so also understands $LIB, with the same meaning as $ORIGIN/lib,
-.\" it appears.
-.\"
-.\" There is also $PLATFORM.  This is a kind of wildcard
-.\" of directories related to AT_PLATFORM.  To get an idea of the
-.\" places that $PLATFORM would match, look at the output of the
-.\" following:
+\fBld.so\fP では rpath 指定 (DT_RPATH や DT_RUNPATH) 中にいくつかの特定の文字列を使うことができる。
+それらの文字列は以下のように置き換えられる。
+.TP 
+\fI$ORIGIN\fP (\fI${ORIGIN}\fP も同じ)
+これは、 アプリケーションの実行ファイルが入っているディレクトリに展開される。 したがって、 \fIsomedir/app\fP に置かれたアプリケーションを
+
+    gcc \-Wl,\-rpath,\(aq$ORIGIN/../lib\(aq
+
+でコンパイルすることで、 \fIsomedir\fP がディレクトリ階層のどこにあっても、 \fBld.so\fP は \fIsomedir/lib\fP
+にある対応する共有ライブラリを見つけることができる。 この機能を使うと、
+特別なディレクトリではなく任意のディレクトリにインストールしても「ややこしい設定なしで」独自の共有ライブラリを使えるアプリケーションを作成することができる。
+.TP 
+\fI$LIB\fP (\fI${LIB}\fP も同じ)
+This expands to \fIlib\fP or \fIlib64\fP depending on the architecture (e.g., on
+x86\-64, it expands to \fIlib64\fP and on x86\-32, it expands to \fIlib\fP).
+.TP 
+\fI$PLATFORM\fP (\fI${PLATFORM}\fP も同じ)
+.\" To get an idea of the places that $PLATFORM would match,
+.\" look at the output of the following:
 .\"
-.\" mkdir /tmp/d
-.\" LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
+.\"     mkdir /tmp/d
+.\"     LD_LIBRARY_PATH=/tmp/d strace -e open /bin/date 2>&1 | grep /tmp/d
 .\"
 .\" ld.so lets names be abbreviated, so $O will work for $ORIGIN;
 .\" Don't do this!!
-\fBld.so\fP では、rpath 指定 (DT_RPATH や DT_RUNPATH) 中に \fI$ORIGIN\fP という文字列
-(\fI${ORIGIN}\fP も等価) を使うことができる。 \fI$ORIGIN\fP はアプリケーションの実行ファイルが入っているディレクトリを表す。
-これを使って \fIsomedir/app\fP に置かれたアプリケーションを \fIgcc \-Wl,\-rpath,'$ORIGIN/../lib'\fP
-でコンパイルすると、 \fIsomedir\fP がディレクトリ階層のどこにあっても、アプリケーションは \fIsomedir/lib\fP
-にある対応する共有ライブラリを見つけることができる。 この機能を使うと、 特別なディレクトリではなく任意のディレクトリにインストールしても
-"ややこしい設定なしで" 独自の共有ライブラリを使えるアプリケーションを作成することができる。
+This expands to a string corresponding to the processor type of the host
+system (e.g., "x86_64").  On some architectures, the Linux kernel doesn't
+provide a platform string to the dynamic linker.  The value of this string
+is taken from the \fBAT_PLATFORM\fP value in the auxiliary vector (see
+\fBgetauxval\fP(3)).
 .SH オプション
 .TP 
 \fB\-\-list\fP
@@ -127,6 +148,39 @@ mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm
 .SH 環境変数
 4 つの重要な環境変数がある。
 .TP 
+\fBLD_ASSUME_KERNEL\fP
+(glibc since 2.2.3)  Each shared library can inform the dynamic linker of
+the minimum kernel ABI version that it requires.  (This requirement is
+encoded in an ELF note section that is viewable via \fIreadelf\ \-n\fP as a
+section labeled \fBNT_GNU_ABI_TAG\fP.)  At run time, the dynamic linker
+determines the ABI version of the running kernel and will reject loading
+shared libraries that specify minimum ABI versions that exceed that ABI
+version.
+
+\fBLD_ASSUME_KERNEL\fP can be used to cause the dynamic linker to assume that
+it is running on a system with a different kernel ABI version.  For example,
+the following command line causes the dynamic linker to assume it is running
+on Linux 2.2.5 when loading the shared libraries required by \fImyprog\fP:
+
+.in +4n
+.nf
+$ \fBLD_ASSUME_KERNEL=2.2.5 ./myprog\fP
+.fi
+.in
+
+On systems that provide multiple versions of a shared library (in different
+directories in the search path) that have different minimum kernel ABI
+version requirements, \fBLD_ASSUME_KERNEL\fP can be used to select the version
+of the library that is used (dependent on the directory search order).
+Historically, the most common use of the \fBLD_ASSUME_KERNEL\fP feature was to
+manually select the older LinuxThreads POSIX threads implementation on
+systems that provided both LinuxThreads and NPTL (which latter was typically
+the default on such systems); see \fBpthreads\fP(7).
+.TP 
+\fBLD_BIND_NOT\fP
+(glibc 2.2 以降) シンボルを解決した際、Global Offset Table (GOT) と Procedure Linkage
+Table (PLT) を更新しない。
+.TP 
 \fBLD_BIND_NOW\fP
 (libc5; glibc 2.1.1 以降)  空文字列でない場合、 動的リンカはプログラムの開始時に全てのシンボルを解決する。
 空文字列の場合、解決しなければならない関数呼び出しが 最初に参照された時点で解決する。 デバッガを使っているときに役立つ。
@@ -136,14 +190,11 @@ mmx, mtrr, pat, pbe, pge, pn, pse36, sep, ss, sse, sse2, tm
 set\-user\-ID/set\-group\-ID されたプログラムでは無視される。
 .TP 
 \fBLD_PRELOAD\fP
-A list of additional, user\-specified, ELF shared libraries to be loaded
-before all others.  The items of the list can be separated by spaces or
-colons.  This can be used to selectively override functions in other shared
-libraries.  The libraries are searched for using the rules given under
-DESCRIPTION.  For set\-user\-ID/set\-group\-ID ELF binaries, preload pathnames
-containing slashes are ignored, and libraries in the standard search
-directories are loaded only if the set\-user\-ID permission bit is enabled on
-the library file.
+追加でユーザが指定する ELF
+共有ライブラリのリスト。指定されたライブラリは、すべてのライブラリより前にロードされる。リストの区切りはスペースとコロンである。他の共有ライブラリにある関数を選択的に置き換えるために用いることができる。指定されたライブラリは「説明」の節で述べたルールを基いて検索される。
+set\-user\-ID/set\-group\-ID された ELF
+バイナリでは、スラッシュを含んだパス名のライブラリは無視され、標準の検索ディレクトリのライブラリはそのライブラリファイルの set\-user\-ID
+許可ビットが有効になっている場合のみロードされる。
 .TP 
 \fBLD_TRACE_LOADED_OBJECTS\fP
 (ELF のみ)  空文字列でない場合、 プログラムを普通に実行するのではなく、 \fBldd\fP(1)
@@ -241,7 +292,7 @@ set\-user\-ID/set\-group\-ID されたプログラムでは、 LD_PROFILE_OUTPUT
 .TP 
 \fBLD_VERBOSE\fP
 (glibc 2.1 以降) 空文字列でない場合に、\fBLD_TRACE_LOADED_OBJECTS\fP
-変数が設定されていれば、プログラムのシンボルバージョン情報を出力する。
+環境変数が設定されていれば、プログラムのシンボルバージョン情報を出力する。
 .TP 
 \fBLD_WARN\fP
 (ELF のみ)(glibc 2.1.3 以降)  空文字列でない場合、解決されていないシンボルがあれば警告を出す。
@@ -276,8 +327,8 @@ Linux 1.1.52 以降と libc5 以降で使用可能である。
 .\" ld-linux.so: Roland McGrath, Ulrich Drepper and others.
 .\"
 .\" In the above, (libc5) stands for David Engel's ld.so/ld-linux.so.
-\fBldd\fP(1), \fBsln\fP(1), \fBgetauxval\fP(3), \fBrtld\-audit\fP(7), \fBldconfig\fP(8)
+\fBldd\fP(1), \fBgetauxval\fP(3), \fBrtld\-audit\fP(7), \fBldconfig\fP(8), \fBsln\fP(8)
 .SH この文書について
-この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
+この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部
 である。プロジェクトの説明とバグ報告に関する情報は
 http://www.kernel.org/doc/man\-pages/ に書かれている。