Sophie

Sophie

distrib > Mandriva > 9.2 > i586 > by-pkgid > a804ef007a99f7d26cf24253c2994680 > files > 401

howto-html-ja-9.1-0.5mdk.noarch.rpm

<HTML>
<HEAD>
 <META http-equiv="Content-Type" content="text/html; charset=ISO-2022-JP">
<TITLE>
The Linux GCC HOWTO
</TITLE>
</HEAD>
<BODY BGCOLOR=white>
<A HREF="INDEX-JF.html">JF-INDEX (document list of JF Project)</A>
<HR>
<H1>The Linux GCC HOWTO</H1>

<H2>Daniel Barlow <CODE>&lt;daniel.barlow@linux.org&gt;</CODE></H2>v1.17, 28 February 1996
<H2>$BCfLnIpM:(B <CODE>&lt;nakano@apm.seikei.ac.jp&gt;</CODE></H2>v1.17j2, 29 January 1997
<P><HR>
<EM>$B$3$NJ8=q$G$O(B linux $B$N2<$G(B GNU C $B%3%s%Q%$%i$H%3%s%Q%$%k$KI,MW$J%i%$%V%i(B
$B%j$r@_Dj$9$kJ}K!$K$D$$$F5-$7$F$$$^$9!#$^$?$3$l$i$N4D6-$rMQ$$$?%W%m%0%i(B
$B%`$N%3%s%Q%$%k!"%j%s%/!"<B9T$*$h$S%G%P%C%0$K$D$$$F$b35MW$r=R$Y$^$9!#$3(B
$B$NJ8=q$NFbMF$NB?$/$O(B Mitch D'Souza $B$N(B GCC-FAQ $B$+$iF@$?$b$N$G$"$j!"$3$N(B
$BJ8=q$O(B GCC-FAQ $B$NBe$o$j$H$J$k$b$N$G$9!#$^$?(B ELF-HOWTO $B$+$i$bB?$/$NBj:`(B
$B$r:NMQ$7$F$*$j!"F1$8$/$3$NJ8=q$O(B ELF-HOWTO $B$NBgItJ,$rCV$-$+$($k$b$N$G(B
$B$9(B
$B!NLuCm!'(BDaniel $B$5$s$O(B ELF-HOWTO $B$NCx<T$G$b$"$j$^$9!#!O(B
$B$3$NHG$O8x<0%j%j!<%9$H$7$F$O:G=i$N$b$N$K$J$j$^$9!J%P!<%8%g%sHV9f$+$i$O(B
$B$=$&$O8+$($J$$$+$b$7$l$^$;$s$,!"$3$l$O(B RCS $B$,<+F0E*$K$D$1$F$$$k$b$N$J(B
$B$s$G$9!K!#$40U8+$446A[$r$*BT$A$7$F$$$^$9!#(B</EM>
<HR>
<P><B>$BCm0U(B: $B$3$NJ8=q$O$+$J$j0JA0$K=q$+$l$?$b$N$J$N$G!"(B
$B$$$^$I$-$N(B Linux $B4D6-$K$O$"$F$O$^$i$J$$2U=j$,$"$j$^$9!#(B
(JF Project)</B>
<P>
<H2><A NAME="toc1">1.</A> <A HREF="#s1">$B$O$8$a$K(B</A></H2>

<UL>
<LI><A HREF="#ss1.1">1.1 ELF $BBP(B a.out</A>
<LI><A HREF="#ss1.2">1.2 $B$3$NJ8=q$K$D$$$F(B</A>
<LI><A HREF="#ss1.3">1.3 $B%U%)%s%H$K$D$$$F(B</A>
</UL>
<P>
<H2><A NAME="toc2">2.</A> <A HREF="#s2">$BF~<j@h(B</A></H2>

<UL>
<LI><A HREF="#ss2.1">2.1 $B$3$NJ8=q(B</A>
<LI><A HREF="#ss2.2">2.2 $BB>$NJ8=q(B</A>
<LI><A HREF="#ss2.3">2.3 GCC </A>
<LI><A HREF="#ss2.4">2.4 C $B%i%$%V%i%j$H%X%C%@%U%!%$%k(B</A>
<LI><A HREF="#ss2.5">2.5 $B4XO"%D!<%k!J(Bas, ld, ar, strings $BEy!K(B</A>
</UL>
<P>
<H2><A NAME="toc3">3.</A> <A HREF="#s3">GCC $B$N%$%s%9%H!<%k$H@_Dj(B</A></H2>

<UL>
<LI><A HREF="#ss3.1">3.1 GCC $B$N%P!<%8%g%s(B</A>
<LI><A HREF="#ss3.2">3.2 $B%$%s%9%H!<%k@h$N%G%#%l%/%H%j(B</A>
<LI><A HREF="#ss3.3">3.3 $B%X%C%@%U%!%$%k$N:_=h(B</A>
<LI><A HREF="#ss3.4">3.4 $B%/%m%9%3%s%Q%$%i$N:n@.(B</A>
</UL>
<P>
<H2><A NAME="toc4">4.</A> <A HREF="#s4">$B0\?"$H%3%s%Q%$%k(B</A></H2>

<UL>
<LI><A HREF="#ss4.1">4.1 $B<+F0Dj5A$5$l$k%7%s%\%k(B</A>
<LI><A HREF="#ss4.2">4.2 $B%3%s%Q%$%i$X$N;X<((B</A>
<LI><A HREF="#ss4.3">4.3 $B0\?"@-(B</A>
</UL>
<P>
<H2><A NAME="toc5">5.</A> <A HREF="#s5">$B%G%P%C%0$H%W%m%U%!%$%j%s%0(B</A></H2>

<UL>
<LI><A HREF="#ss5.1">5.1 $BM=KIE*%a%s%F%J%s%9!J(Blint$B!K(B</A>
<LI><A HREF="#ss5.2">5.2 $B%G%P%C%0(B</A>
<LI><A HREF="#ss5.3">5.3 $B%W%m%U%!%$%j%s%0(B</A>
</UL>
<P>
<H2><A NAME="toc6">6.</A> <A HREF="#s6">$B%j%s%/(B</A></H2>

<UL>
<LI><A HREF="#ss6.1">6.1 $B6&M-%i%$%V%i%jBP(B static $B$J%i%$%V%i%j(B</A>
<LI><A HREF="#ss6.2">6.2 $B%i%$%V%i%j$K?R$M$k!J(B<CODE>sin()</CODE> $B$O$I$3$K$$$k$N!)!K(B</A>
<LI><A HREF="#ss6.3">6.3 $B%U%!%$%k$rC5$9(B</A>
<LI><A HREF="#ss6.4">6.4 $B<+J,$N%i%$%V%i%j$r:n$k(B</A>
</UL>
<P>
<H2><A NAME="toc7">7.</A> <A HREF="#s7">$B%@%$%J%_%C%/%m!<%I!J(BDynamic Loading$B!K(B</A></H2>

<UL>
<LI><A HREF="#ss7.1">7.1 $B35G0(B</A>
<LI><A HREF="#ss7.2">7.2 $B%(%i!<%a%C%;!<%8(B</A>
<LI><A HREF="#ss7.3">7.3 $B%@%$%J%_%C%/%m!<%@$NF0:n$r%3%s%H%m!<%k$9$k(B</A>
<LI><A HREF="#ss7.4">7.4 $B%@%$%J%_%C%/%m!<%I$rMQ$$$?%W%m%0%i%`$r=q$/(B</A>
</UL>
<P>
<H2><A NAME="toc8">8.</A> <A HREF="#s8">$B3+H/<T$KO"Mm$r<h$k$K$O(B</A></H2>

<UL>
<LI><A HREF="#ss8.1">8.1 $B%P%0%l%]!<%H$rAw$k(B</A>
<LI><A HREF="#ss8.2">8.2 $B3+H/$K;22C$9$k(B</A>
</UL>
<P>
<H2><A NAME="toc9">9.</A> <A HREF="#s9">$B$=$NB>(B</A></H2>

<UL>
<LI><A HREF="#ss9.1">9.1 $B<U<-(B</A>
<LI><A HREF="#ss9.2">9.2 $BK]Lu$K$D$$$F(B</A>
<LI><A HREF="#ss9.3">9.3 $B%U%#!<%I%P%C%/(B</A>
<LI><A HREF="#ss9.4">9.4 $BK!E*>r9`(B</A>
</UL>
<P>
<H2><A NAME="toc10">10.</A> <A HREF="#s10">$B:w0z(B</A></H2>

<HR>
<H2><A NAME="s1">1.</A> <A HREF="#toc1">$B$O$8$a$K(B</A></H2>

<P>
<H2><A NAME="ss1.1">1.1 ELF $BBP(B a.out</A>
</H2>

<P>
<A NAME="index.0"></A>  
<A NAME="index.1"></A>  
<P>$B8=:_(B Linux $B$K$*$1$k%W%m%0%i%`3+H/4D6-$O$I$s$I$sJQ2=$7$F$$$^$9!#(B
Linux $B$G<B9T$G$-$k%P%$%J%j$K$OFs<oN`$N7A<0$,:_$j!"%7%9%F%`$N@_Dj(B
$B$K$h$C$F$3$l$i$r;H$$J,$1$k$3$H$,=PMh$^$9!#$3$N(B HOWTO $B$rFI$`A0$K!"FI<T(B
$B$N%7%9%F%`$G$O$I$A$i$r;H$C$F$$$k$+$rD4$Y$F$*$/$HNI$$$G$7$g$&!#(B
<A NAME="index.2"></A>  
<P>$B$5$F!"$I$&$9$l$P$o$+$k$G$7$g$&$+!)Ez$($O(B `file' $B%3%^%s%I$r;H$&!"$G$9(B
$B!J(B<CODE>file /bin/bash</CODE> $B$N$h$&$K$7$^$9!K!#(BELF $B$N<B9T%U%!%$%k$J$i(B 
$B!V(B<CODE>ELF</CODE>$B!W(B $B$H$$$&J8;zNs$,%a%C%;!<%8$K$"$i$o$l$^$9$7!"(B a.out $B$N<B9T%U%!(B
$B%$%k$J$i!V(B<CODE>Linux/i386</CODE>$B!W$H$$$&J8;zNs$r4^$`I=<($,=P$^$9!#(B
<P>ELF $B$H(B a.out $B$N0c$$$K$D$$$F$O$3$NJ8=q$N8e$[$I$NItJ,$G>\:Y$K2r@b$7$^$9!#(B 
ELF $B$NJ}$,?7$7$$%U%)!<%^%C%H$G$"$j!"0lHL$K$O$h$jNI$$$b$N$H$5$l$F$$$^$9!#(B
<P>
<H2><A NAME="ss1.2">1.2 $B$3$NJ8=q$K$D$$$F(B</A>
</H2>

<P>
<A NAME="index.3"></A>  
$BCx:n8"$J$I$NK!E*$J7o$K4X$7$F$O!"$3$NJ8=q$N(B<EM>$B:G8e(B</EM>$B$K<($7$F$"$j(B
$B$^$9!#$^$?(B Usenet $B$G4VH4$1$J<ALd$r$7$?$j!"%P%0$G$J$$$3$H$r%P%0$@$HJs9p(B
$B$7$F(B C $B8@8l$K$D$$$F$NL5CN$r$5$i$7$?$j!"%,%`$r3z$_$J$,$iJb$-$^$o$C$?$j(B
$B$9$k$3$H$K4X$9$kK!E*$J7Y9p$b<($7$F$"$j$^$9!#(B
<P>$BLuCm!'8@$&$@$1LnJk$G$9$,!"8e$NJ}$N$O>iCL$G$9(B <CODE>:-)</CODE>$B!#(B
<P>
<H2><A NAME="ss1.3">1.3 $B%U%)%s%H$K$D$$$F(B</A>
</H2>

<P>$B$3$NJ8=q$r(B Posstscript$B!"(Bdvi$B!"(Bhtml $B$N$I$l$+$G$*FI$_$NJ}$O!"%F%-%9%H(B
$BHG$rFI$s$G$$$kJ}$h$j>/!9B?$/$N%U%)%s%H$r8+$k$3$H$K$J$j$^$9!#%U%!%$%kL>!"(B
$B%3%^%s%IL>!"%3%^%s%I=PNO!"%=!<%9%3!<%I$J$I$+$i$N0zMQ$O(B <CODE>typewriter</CODE>
$B%U%)%s%H$G!"$=$NB>$N6/D4$9$Y$-FbMF$O(B <EM>emphasized</EM> $B%U%)%s%H$G<($7$^$9!#(B
<P>$BJXMx$J:w0z$bMQ0U$7$^$7$?!#(B dvi $B$H(B Postscript $B$G$O(B index $B$N?t;z$O>O$d@a(B
$B$NHV9f$G$9!#(BHTML $B$G$O?t;z$OC1$K=P$F$-$?=gHV$G$9$,!"%/%j%C%/$K$h$C$F$=(B
$B$NFbMF$KHt$V$3$H$,=PMh$^$9!#%F%-%9%HHG$G$OK\Ev$K!VC1$J$k!W=gHV$K$J$C$F(B
$B$7$^$$$^$9!#B>$N7A<0$G8+$F2<$5$$!*(B
<P>$BNc$K$O(B Bourne $B%7%'%k$rMQ$$$F$$$^$9!#(B C $B%7%'%k$r$*;H$$$NJ}$O!"(B
<BLOCKQUOTE><CODE>
<PRE>
$ FOO=bar; export FOO
</PRE>
</CODE></BLOCKQUOTE>

$B$H$J$C$F$$$k$H$3$m$r(B
<BLOCKQUOTE><CODE>
<PRE>
% setenv FOO bar
</PRE>
</CODE></BLOCKQUOTE>

$B$HFI$_JQ$($F2<$5$$!#(B
<P>$B%W%m%s%W%H$K(B <CODE>$</CODE> $B$G$J$/(B <CODE>#</CODE> $B$rMQ$$$F$$$k$H$3$m$G$O!"$=$N(B
$B%3%^%s%I$O(B root $B$G<B9T$9$kI,MW$,$"$k$3$H$r<($7$F$$$^$9!#$b$A$m$s$3$NJ8(B
$B=q$G$NNc$r<B9T$7$?7k2L$K$?$$$9$k@UG$$O;d$O$H$l$^$;$s!#9,1?$r(B <CODE>:-)</CODE>
<P>
<P>
<HR>
<H2><A NAME="s2">2.</A> <A HREF="#toc2">$BF~<j@h(B</A></H2>

<P>
<H2><A NAME="ss2.1">2.1 $B$3$NJ8=q(B</A>
</H2>

<P>$B$3$NJ8=q$O(B Linux HOWTO $B%7%j!<%:$N0l$D$G$9$N$G!"(B Linux HOWTO $B$,CV$+(B
$B$l$F$$$k$H$3$m!JNc$($P(B
<A HREF="http://sunsite.unc.edu/pub/linux/docs/HOWTO/">http://sunsite.unc.edu/pub/linux/docs/HOWTO/</A>
$B!K$J$i$P$I$3$K$G$b$"$k$O$:$G$9!#(B
HTML $BHG!J$*$=$i$/$OB?>/?7$7$$HG!K$r$*K>$_$G$7$?$i(B
<A HREF="http://ftp.linux.org.uk/~barlow/howto/gcc-howto.html">http://ftp.linux.org.uk/~barlow/howto/gcc-howto.html</A>
$B$r$I$&$>!#(B
<P>
<H2><A NAME="ss2.2">2.2 $BB>$NJ8=q(B</A>
</H2>

<P>
<A NAME="index.4"></A>  
gcc $B$K4X$9$k8x<0$JJ8=q$OG[I[%=!<%9!J8e=R!K$K(B texinfo $B7A<0$*$h(B
$B$S(B <CODE>*.info</CODE> $B%U%!%$%k$H$7$FF~$C$F$$$^$9!#(BCD-ROM $B$,$"$kJ}!"=<J,9b(B
$BB.$J%M%C%H%o!<%/$rMxMQ$G$-$k!J$"$k$$$O?IJz6/$$!KJ}$OG[I[%Q%C%1!<%8$r<j(B
$B$KF~$l$F(B untar $B$7!"E,59I,MW$J$b$N$r(B <CODE>/usr/info</CODE> $B$K%3%T!<$9$k$@$1(B
$B$G$9!#0J>e$N$$$:$l$bIT2DG=$JJ}$O!"(B
<A HREF="ftp://tsx-11.mit.edu:/pub/linux/packages/GCC/">tsx-11</A>
$B$G$b$3$NJ8=q$rF~<j$G$-$^$9!#$?$@$7$3$A$i$O>o$K:G?7HG$G$"$k$H$O8B$j$^$;(B
$B$s!#(B
<P>
<A NAME="index.5"></A>  
<P>libc $B$K4X$9$k>pJs8;$OFs$D$"$j$^$9!#(B GNU libc $B$K$O(B info $B%U%!%$%k$,IUB0(B
$B$7$F$*$j!"$3$l$K$O(B Linux $B$N(B libc $B$NFbMF$,!J(Bstdio $B$r=|$$$F!KHf3SE*@53N(B
$B$K5-=R$5$l$F$$$^$9!#$^$?(B
<A HREF="ftp://sunsite.unc.edu/pub/Linux/docs/">man $B%Z!<%8(B</A>
$B$N%"!<%+%$%V$O(B Linux $B8~$1$K=q$+$l$?$b$N$G!"%7%9%F%`%3!<%k!J%;%/%7%g%s(B 
2$B!K$H(B libc $B$N4X?t!J%;%/%7%g%s(B 3$B!K$K4X$9$k5-=R$,$?$/$5$s$"$j$^$9!#(B
<P>
<H2><A NAME="ss2.3">2.3 GCC </A>
</H2>

<P>
<A NAME="index.6"></A>  
<P>$BFs$D$NA*Br$,$"$j$^$9!#(B
<P>
<OL>
<LI> Linux $BMQ$N(B GCC $B8x<0G[I[HG$,>o$K%P%$%J%j7A<0!J%3%s%Q%$%k:Q$_!K$G(B
<A HREF="ftp://tsx-11.mit.edu:/pub/linux/packages/GCC/">ftp://tsx-11.mit.edu:/pub/linux/packages/GCC/</A>
$B$KCV$+$l$F$$$^$9!#$3$NJ8=q$r=q$$$F$$$k;~E@$G$N:G?7HG$O(B 2.7.2 $B$G!"(B
<CODE>gcc-2.7.2.bin.tar.gz</CODE> $B$H$$$&%U%!%$%k$G$9!#(B

$BLuCm!'K]Lu;~$G$O(B 2.7.2.1 $B$,:G?7HG$G$9!#(B
</LI>
<LI> Free Software Foundation $B$+$i$N(B GCC $B%=!<%9$N:G?7G[I[HG$,(B
<A HREF="ftp://prep.ai.mit.edu/pub/gnu/">GNU archives</A>
$B$K$"$j$^$9!#$3$A$i$N%P!<%8%g%s$O>o$K%P%$%J%jG[I[$N$b$N$HF1$8$G$"$k$H$O(B
$B8B$j$^$;$s$,!"8=:_$N$H$3$m$OF1$8(B 2.7.2 $B$G$9!#(B Linux GCC $B$r%a%s%F%J%s%9(B
$B$7$F$/$l$F$$$k?M!9$O!":G?7%P!<%8%g%s$N%3%s%Q%$%k$rMF0W$K$9$k$?$a$N(B
$B:n6H$r$7$F$/$l$F$*$j!"(B <CODE>configure</CODE> $B%9%/%j%W%H$G$9$Y$F$N@_Dj$,40N;$7(B
$B$^$9!#(B
<A HREF="ftp://tsx-11.mit.edu:/pub/linux/packages/GCC/">tsx-11</A>
$B$K$bM-MQ$J%Q%C%A$,CV$+$l$F$$$k$3$H$,$"$j$^$9$N$G!"%A%'%C%/$7$F$*$-$^$7$g(B
$B$&!#(B
</LI>
</OL>
<P>$B$4$/=iJbE*$J%3!<%I0J30$r%3%s%Q%$%k$9$k$K$O0J2<$N$h$&$J$b$N$bI,MW$K$J$j(B
$B$^$9!J<B$O$[$H$s$I$N=iJbE*$J%3!<%I$K$bI,MW$G$9!K!#(B
<P>
<H2><A NAME="ss2.4">2.4 C $B%i%$%V%i%j$H%X%C%@%U%!%$%k(B</A>
</H2>

<P>
<A NAME="index.7"></A>  
$B$3$3$GI,MW$K$J$k$b$N$O!"%7%9%F%`$G(B ELF $B$H(B a.out $B$N$I$A$i$rMQ$$$F$$(B
$B$k$+!"$"$k$$$OFI<T$,$I$A$i$rMQ$$$?$$$+$K$h$C$FJQ$o$j$^$9!#(B libc 4 $B$+(B
$B$i(B 5 $B$K%"%C%W%G!<%H$9$k$H$-$O(B ELF-HOWTO $B$rFI$s$G$*$/$h$&$K$7$F2<$5$$!#(B
$B$3$NJ8=q$rF~<j$7$?$N$HF1$8$H$3$m$K$"$k$O$:$G$9!#(B
<P>$B0J2<$K<($9$b$N$b:#$^$G$HF1$8$/(B
<A HREF="ftp://tsx-11.mit.edu:/pub/linux/packages/GCC/">tsx-11</A>
$B$K$"$j$^$9!#(B
<P>
<DL>
<P>
<DT><B><CODE>libc-5.2.18.bin.tar.gz</CODE></B><DD><P>ELF $B6&M-%i%$%V%i%j$H@EE*%j%s%/%i%$%V%i%j!"%$%s%/%k!<%I%U%!%$%k$G$9!#(B C 
$B%i%$%V%i%j$H(B math $B%i%$%V%i%j$,F~$C$F$$$^$9!#(B
<P>
<DT><B><CODE>libc-5.2.18.tar.gz</CODE></B><DD><P>$B>e5-$N%=!<%9$G$9!#%X%C%@%U%!%$%k$rF~<j$9$k$K$O(B <CODE>.bin</CODE> $B$N%Q%C%1!<%8(B
$B$bI,MW$G$9!#(B C $B%i%$%V%i%j$r<+J,$G%3%s%Q%$%k$9$k$+%P%$%J%j$r;H$&$+$GG:(B
$B$`$+$b$7$l$^$;$s$,!"$[$H$s$I$N>l9g$O%P%$%J%j$r;H$&$N$,@52r$G$9!#$7$+$7(B 
NYS $B$+(B shadow password $B$rMxMQ$7$?$$>l9g$O<+J,$G%i%$%V%i%j$r:n$kI,MW$,(B
$B$"$k$+$b$7$l$^$;$s!#(B
<P>
<DT><B><CODE>libc-4.7.5.bin.tar.gz</CODE></B><DD><P>a.out $B7A<0$N6&M-%i%$%V%i%j$H@EE*%j%s%/MQ$N%i%$%V%i%j$G$9!#(B $B%P!<%8%g%s(B 
4.7.5 $B$N(B C $B$*$h$S4XO"$N%i%$%V%i%j$H$J$C$F$$$^$9!#$3$N%Q%C%1!<%8$O>e5-(B
$B$N%P!<%8%g%s(B 5 $B%i%$%V%i%j$H6&B8$G$-$k$h$&$K$J$C$F$$$^$9$,!"(Ba.out $B7A<0(B
$B$N%W%m%0%i%`$N:n@.$dMxMQ$r$7$J$$8B$j$O$3$N%Q%C%1!<%8$OI,MW$"$j$^$;$s!#(B
<P>
</DL>
<P>
<H2><A NAME="ss2.5">2.5 $B4XO"%D!<%k!J(Bas, ld, ar, strings $BEy!K(B</A>
</H2>

<P>
<A NAME="index.8"></A>  
<A NAME="index.9"></A>  
<A NAME="index.10"></A>  
<A NAME="index.11"></A>  
<P>$B:#$^$G$N$b$N$HF1$8$/!"(B
<A HREF="ftp://tsx-11.mit.edu:/pub/linux/packages/GCC/">tsx-11</A>
$B$+$iF~<j$7$^$9!#8=:_$N%P!<%8%g%s$O(B <CODE>binutils-2.6.0.2.bin.tar.gz</CODE> $B$G$9!#(B
<P>$BLuCm!'K]Lu;~$N:G?7HG$O(B 2.7.0.3 $B$G$9!#(B
<P>$B8=:_(B binutils $B$O(B ELF $BBP1~$N$b$N$7$+$"$j$^$;$s!#$^$?:G?7HG$N(B libc $B$b(B 
ELF $B$G$9$N$G!"(B a.out $B$N(B libc $B$O(B ELF $B$N(B libc $B$H0l=o$K;H$&I,MW$,$"$k$G$7$g(B
$B$&!#8=:_$G$O(B C $B%i%$%V%i%j$N3+H/$O$[$H$s$I(B ELF $B%Y!<%9$K$J$C$F$-$F$$$^$9(B
$B$+$i!"FC$K(B a.out $B$K$3$@$o$kM}M3$,$J$$8B$j(B ELF $B$rMQ$$$k$h$&$K$7$^$7$g$&!#(B
<P>
<P>
<P>
<HR>
<H2><A NAME="s3">3.</A> <A HREF="#toc3">GCC $B$N%$%s%9%H!<%k$H@_Dj(B</A></H2>

<P>
<H2><A NAME="ss3.1">3.1 GCC $B$N%P!<%8%g%s(B</A>
</H2>

<P>
<A NAME="index.12"></A>  
<A NAME="index.13"></A>  
<A NAME="index.14"></A>  
<P>$B8=:_MxMQ$7$F$$$k(B GCC $B$N%P!<%8%g%s$O%7%'%k%W%m%s%W%H$+$i(B <CODE>gcc
-v</CODE> $B$HF~NO$9$k$3$H$G$o$+$j$^$9!#$^$?$3$N%3%^%s%I$K$h$C$F8=:_$N%;%C%H%"%C(B
$B%W$,(B ELF $B$+(B a.out $B$+$b$o$+$j$^$9!#;d$N%7%9%F%`$G$O0J2<$N$h$&$K$J$j$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ gcc -v
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>$B=PNO$N$&$ACm0U$9$Y$-%-!<%o!<%I$O0J2<$N$h$&$J$b$N$G$9!#(B
<DL>
<DT><B><CODE>i486</CODE></B><DD><P>$B$3$N(B gcc $B$,(B 486 $B%W%m%;%C%58~$1$K%S%k%I$5$l$?$3$H$r<($7$F$$$^$9!#FI<T$N(B
$B%7%9%F%`$G$O(B 386 $B$d(B 586 $B$,I=<($5$l$k$+$b$7$l$^$;$s!#$3$l$i$N%7%9%F%`(B
$B$N$I$l$+$G%3%s%Q%$%k$5$l$?%P%$%J%j$OB>$N$I$N%A%C%W$G$b<B9T$5$;$k$3(B
$B$H$,=PMh$^$9!#(B 486 gcc $B$G%3%s%Q%$%k$5$l$?%W%m%0%i%`$G$O!"(B 486 $B%A%C%W$G(B
$B9bB.$KF0:n$9$k$h$&$J%3!<%I$,$"$A$3$A$KKd$a9~$^$l$F$$$^$9!#$3$N$3$H$K$h$C(B
$B$F(B 386 $B2<$G$N<B9T;~$N@-G=$KM-32$J1F6A$,=P$k$3$H$O$"$j$^$;$s$,!"%P%$%J(B
$B%j$N%5%$%:$O>/!9Bg$-$/$J$j$^$9!#(B
<P>
<DT><B><CODE>box</CODE></B><DD><P>$B$3$l$O$^$C$?$/=EMW$G$O$"$j$^$;$s$G!"B>$N$b$N$KCV$-JQ$o$C$F$$$k(B
$B!J(B<CODE>slackware</CODE> $B$d(B<CODE>debian</CODE> $B$J$I!K$3$H$d!"$=$b$=$b$^$C$?$/8=$l$J$$(B
$B$3$H$b$"$j$^$9!J$D$^$jA4BN$G(B <CODE>i486-linux</CODE> $B$N$h$&$K$J$j$^$9!K!#(B
$B$b$7<+J,<+?H$G(B gcc $B$r%S%k%I$9$k>l9g$K$O!"9%$-$JCM$r%;%C%H$7$F3J9%NI$/(B
$B8+$;$k$3$H$b$G$-$^$9!J;d$O$=$&$7$F$^$9(B <CODE>:-)</CODE>$B!K!#(B
<P>
<DT><B><CODE>linux</CODE></B><DD><P>$B$3$l$O(B <CODE>linuxelf</CODE> $B$d(B <CODE>linuxaout</CODE> $B$H$J$k$3$H$b$"(B
$B$j!"99$KLLE]$J$3$H$K$O(B gcc $B$N%P!<%8%g%s$K$h$C$F$3$l$i$N0UL#$"$$$,JQ$o$C(B
$B$F$$$^$9!#(B
<P>
<UL>
<LI> <CODE>linux</CODE> $B$O(B 2.7.0 $B0J9_$N%P!<%8%g%s$J$i(B ELF$B!"$=$NA0$N>l9g$O(B 
a.out $B$r0UL#$7$^$9!#(B</LI>
<LI> <CODE>linuxaout</CODE> $B$O(B a.out $BBP1~$G$9!#$3$N%(%s%H%j$O(B <CODE>linux</CODE> $B$N(B
$BFbMF$,(B 2.7.0 $B0J9_$G(B a.out $B$+$i(B ELF $B$KJQ99$5$l$?$3$H$K$h$jF3F~(B
$B$5$l$^$7$?!#$7$?$,$C$F(B 2.7.0 $B$h$jA0$N%P!<%8%g%s$G$O$3$N%(%s%H%j$,8=$l(B
$B$k$3$H$O$"$j$^$;$s!#(B

<A NAME="index.15"></A>  </LI>
<LI><CODE>linuxelf</CODE> $B$H$$$&$N$O8E$$=q<0$G$9!#$3$l$,8=$l$k$N$O$[$H$s$I$N(B
$B>l9g(B ELF $B%P%$%J%j$r=PNO$9$k$h$&$K@_Dj$5$l$?(B 2.6.3 $B$N(B gcc $B$G$9!#$H$3$m(B
$B$G(B gcc 2.6.3 $B$O(B ELF $B%3!<%I$r:n@.$9$k$K$"$?$C$F%P%0$,$"$k$3$H$,CN$i$l$F(B
$B$$$^$9!#$7$?$,$C$F$3$NI=<($,8=$l$?>l9g$O%"%C%W%0%l!<%I$r$*A&$a$7$^$9!#(B</LI>
</UL>
<P>
<DT><B><CODE>2.7.2</CODE></B><DD><P>$B%P!<%8%g%sHV9f$G$9!#(B
<P>
</DL>
<P>$B$7$?$,$C$F;d$O(B ELF $B%3!<%I$r=PNO$9$k(B 2.7.2 $BHG$N(B gcc $B$r;H$C$F$$$k$3$H$K(B
$B$J$j$^$9!#$=$&$@$C$?$N$+!*(B
<P>
<H2><A NAME="ss3.2">3.2 $B%$%s%9%H!<%k@h$N%G%#%l%/%H%j(B</A>
</H2>

<P>gcc $B$N%$%s%9%H!<%k$N;~$K$h$=8+$r$7$F$$$?>l9g$d!"%P%$%J%j%Q%C%1!<%8(B
$B$N0lIt$H$7$F(B gcc $B$r%$%s%9%H!<%k$7$?>l9g!"%U%!%$%k%7%9%F%`$N$I$3$rC5$;(B
$B$P(B gcc $B$,$"$k$N$+$rCN$j$?$$$3$H$,$"$k$+$b$7$l$^$;$s!#0J2<=EMW$J$b$N$r(B
$B<($7$^$9!#(B
<P>
<UL>
<LI><CODE>/usr/lib/gcc-lib/</CODE><EM>target</EM><CODE>/</CODE><EM>version</EM><CODE>/</CODE> 
$B$H$=$N%5%V%G%#%l%/%H%j$K$O%3%s%Q%$%iK\BN$NBgItJ,$,CV$+$l$F$$$^$9!#%3%s(B
$B%Q%$%iK\BN$N%W%m%0%i%`$H%P!<%8%g%s$KFCM-$N%i%$%V%i%j!"%$%s%/%k!<%I%U%!(B
$B%$%k$,$"$j$^$9!#(B
</LI>
<LI> <CODE>/usr/bin/gcc</CODE> $B$O%3%s%Q%$%i$N%I%i%$%P$G$9!#%3%^%s%I%i%$(B
$B%s$+$i$O$3$l$,<B9T$5$l$^$9!#J#?t$N%P!<%8%g%s$N%3%s%Q%$%i$,>e5-$N$h$&$J(B
$B%G%#%l%/%H%j$KJL!9$K%$%s%9%H!<%k$5$l$F$$$k>l9g!"$3$N%W%m%0%i%`$G%P!<%8%g(B
$B%s$r;H$$J,$1$k$3$H$,=PMh$^$9!#%G%U%)%k%H$N%P!<%8%g%s$rI=<($9$k$K$O(B 
<CODE>gcc -v</CODE> $B$H$7$^$9!#B>$N%P!<%8%g%s$rMQ$$$k>l9g$K$O(B <CODE>gcc -V</CODE>
<EM>version</EM> $B$H$7$^$9!#0J2<$KNc$r<($7$^$9!#(B

<BLOCKQUOTE><CODE>
<PRE>
# gcc -v
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2
# gcc -V 2.6.3 -v
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.6.3/specs
gcc driver version 2.7.2 executing gcc version 2.6.3
</PRE>
</CODE></BLOCKQUOTE>

</LI>
<LI> <CODE>/usr/</CODE><EM>target</EM><CODE>/(bin|lib|include)/</CODE>$B!#J#(B
$B?t$N%?!<%2%C%H%7%9%F%`!JNc$($P(B a.out $B$H(B ELF$B!"$"$k$$$O3F<o$N%/%m%9%3%s(B
$B%Q%$%i$J$I!K$K1~$8$F(B gcc $B$rJ#?t%$%s%9%H!<%k$7$?>l9g!"(BLinux $B0J308~(B
$B$1$N%i%$%V%i%j$d(B binutils $B!J(B<CODE>as</CODE>$B!"(B <CODE>ld</CODE> $B$J$I!K!"%X%C%@%U%!%$%k$J(B
$B$I$O$3$N%G%#%l%/%H%j2<$KCV$+$l$^$9!#0l<oN`$N(B gcc $B$7$+%$%s%9%H!<%k$7$F(B
$B$$>l9g$G$b!"$^$"MW$9$k$K$3$3$K4XO"%U%!%$%k$,CV$+$l$k$o$1$G$9!#$3$3(B
$B$K$J$$>l9g$O(B <CODE>/usr/(bin|lib|include)</CODE> $B$K$"$j$^$9!#(B
</LI>
<LI> <CODE>/lib</CODE> $B$d(B <CODE>/usr/lib</CODE> $B$J$I$O(B native $B$J%7%9%F%`$N$?(B
$B$a$N%i%$%V%i%j$,CV$+$l$k%G%#%l%/%H%j$G$9!#%3%s%Q%$%i0J30$N%"%W%j%1!<%7%g(B
$B%s$NCf$K$O!"$3$3$K(B <CODE>/lib/cpp</CODE> $B$,CV$+$l$k$3$H$rA[Dj$7$F$$$k$b$N$,(B
$B$"$j$^$9!JFC$K(B X $B$G$h$/;H$o$l$^$9!K!#$J$$>l9g$O(B 
<CODE>/usr/lib/gcc-lib/</CODE><EM>target</EM><CODE>/</CODE><EM>version</EM><CODE>/</CODE> 
$B$+$i%3%T!<$7$F$/$k$+%7%s%\%j%C%/%j%s%/$rD%$j$^$7$g$&!#(B
<A NAME="index.16"></A>  </LI>
</UL>
<P>
<H2><A NAME="ss3.3">3.3 $B%X%C%@%U%!%$%k$N:_=h(B</A>
</H2>

<P>
<A NAME="index.17"></A>  
<P>$BMxMQ<T3F<+$,(B <CODE>/usr/local/include</CODE> $B$K%$%s%9%H!<%k$9$k$b$N$r(B
$B=|$/$H!"(B Linux $B$G<g$KMxMQ$5$l$k%X%C%@%U%!%$%k$O0J2<$N(B 3 $B$D$K$J$j$^$9!#(B
<P>
<UL>
<LI> <CODE>/usr/include/</CODE> $B$H$=$N%5%V%G%#%l%/%H%j$K$"$k%X%C%@%U%!%$(B
$B%k$N$[$H$s$I$O(B H. J. Lu $B$,Ds6!$7$F$$$k(B libc $B%P%$%J%j%Q%C%1!<%8$N$b$N$G(B
$B$9!#!V$[$H$s$I!W$H=q$$$?$N$O!"B>$K$b$3$3$K%X%C%@%U%!%$%k$rCV$/%Q%C%1!<(B
$B%8$,$"$k$+$i$G$9!#Nc$($P(B <CODE>curses</CODE> $B$d(B <CODE>dbm</CODE> $B$J$I$,$=$&$G$9!#8E$$(B 
libc $B%Q%C%1!<%8$O(B curses $B$H(B dbm $B$b$$$C$7$g$K$J$C$F$$$^$7$?$,!":G?7$N$b(B
$B$N$G$OJL%Q%C%1!<%8$K$J$C$F$$$^$9!#(B
<A NAME="index.18"></A>  
<A NAME="index.19"></A>  
</LI>
<LI> <CODE>/usr/include/linux</CODE> $B$H(B <CODE>/usr/include/asm</CODE> $B%G%#%l(B
$B%/%H%j$N%U%!%$%k!J$3$l$i$O(B <CODE>&lt;linux/*.h&gt;</CODE>$B!"(B 
<CODE>&lt;asm/*.h&gt;</CODE> $B$N$h$&$K%$%s%/%k!<%I$5$l$^$9!K!#$3$l$i$N%G%#(B
$B%l%/%H%j$O%+!<%M%k%=!<%9%D%j!<$N$&$A$N(B <CODE>linux/include/linux</CODE> $B%G%#(B
$B%l%/%H%j$*$h$S(B <CODE>linux/include/asm</CODE> $B$X$N%7%s%\%j%C%/%j%s%/$H$J$C(B
$B$F$$$^$9!#>/!9J#;($J%W%m%0%i%`$r3+H/$9$k>l9g$O%$%s%9%H!<%k$7$F$*$/I,MW(B
$B$,$"$j$^$9!#$3$l$i$O%+!<%M%k$N%3%s%Q%$%k$N$?$a$@$1$N$b$N$G$O$J$$$N$G$9!#(B

$B%+!<%M%k%=!<%9$rE83+$9$k$@$1$G$O$@$a$G!"(B <CODE>make config</CODE> $B$r<B9T$9(B
$B$kI,MW$,$"$j$^$9!#$3$N%3%^%s%I$K$h$C$F$O$8$a$F:n@.$5$l$k(B 
<CODE>&lt;autoconf.h&gt;</CODE> $B$OB?$/$N%U%!%$%k$K$h$C$F;2>H$5$l$F$$$^$9$7!"(B
$B%+!<%M%k$N%P!<%8%g%s$K$h$C$F$O(B <CODE>asm</CODE> $B%G%#%l%/%H%j$,%7%s%\%j%C%/%j%s(B
$B%/$K$J$C$F$$$F!"(B <CODE>make config</CODE> $B$N$H$-$K$N$_%j%s%/$,:n@.$5$l$k$h$&$K(B
$B$J$C$F$$$^$9!#(B

$B$7$?$,$C$F%+!<%M%k%=!<%9$r(B <CODE>/usr/src/linux</CODE> $B0J2<$KE83+$7$?8e$N(B
$B:n6H$O<!$N$h$&$K$J$j$^$9!#(B

<BLOCKQUOTE><CODE>
<PRE>
$ cd /usr/src/linux
$ su
# make config
[$B<ALd$KEz$($^$9!#$3$N8e$KB3$1$F%+!<%M%k$r:n$k$N$G$J$$8B$j(B
$B$3$3$G$NEz$r5$$K$9$kI,MW$O$"$^$j$"$j$^$;$s!#(B]
# cd /usr/include
# ln -s ../src/linux/include/linux .
# ln -s ../src/linux/include/asm .
</PRE>
</CODE></BLOCKQUOTE>

<A NAME="index.20"></A>  
<A NAME="index.21"></A>  
<A NAME="index.22"></A>  
<A NAME="index.23"></A>  
<A NAME="index.24"></A>  
</LI>
<LI> <CODE>&lt;float.h&gt;</CODE> $B$d(B <CODE>&lt;limits.h&gt;</CODE>$B!"(B 
<CODE>&lt;varargs.h&gt;</CODE>$B!"(B <CODE>&lt;stdarg.h&gt;</CODE>$B!"(B <CODE>&lt;stddef.h&gt;</CODE> 
$B$H$$$C$?%U%!%$%k$O%3%s%Q%$%i$N%P!<%8%g%s$K$h$C$FFbMF$,JQ$o$C$F$$$^$9!#(B
$B$7$?$,$C$F$3$l$i$O(B 
<CODE>/usr/lib/gcc-lib/i486-box-linux/2.7.2/include/</CODE> $B$+!"$"$k$$$O;w(B
$B$?$h$&$JL>A0$N>l=j$KCV$+$l$F$$$^$9!#(B</LI>
</UL>
<P>
<H2><A NAME="ss3.4">3.4 $B%/%m%9%3%s%Q%$%i$N:n@.(B</A>
</H2>

<P>
<H3>Linux $B$G<B9T$9$k%P%$%J%j$rB>$N%[%9%H$G%3%s%Q%$%k$9$k(B</H3>

<P>gcc $B$N%=!<%9%3!<%I$,$"$l$P$=$NCf$N(B INSTALL $B%U%!%$%k$N;X<($K=>$&$@(B
$B$1$G$G$-$k$O$:$G$9!#%3%s%Q%$%k$r9T$&%3%s%T%e!<%?$N<oN`$,(B <CODE>XXX</CODE> $B$G$7(B
$B$?$i(B <CODE>configure --target=i486-linux --host=XXX</CODE> $B$H$7$F(B <CODE>make</CODE> $B$9(B
$B$l$P!"$9$Y$F$d$C$F$/$l$k$O$:$G$9!#$?$@$7<B:]$N%3%s%Q%$%k$K$O(B Linux $BFC(B
$BM-$N%X%C%@%U%!%$%k!"%+!<%M%k$N%X%C%@%U%!%$%k$,I,MW$K$J$j$^$9$7!"%/%m%9(B
$B%"%;%s%V%i!"%/%m%9%j%s%+$N%=!<%9$r(B
<A HREF="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/">ftp://tsx-11.mit.edu/pub/linux/packages/GCC/</A>
$B$+$iF~<j$7$F$=$l$>$l%S%k%I$9$kI,MW$,$"$j$^$9!#(B
<P>
<H3>MSDOS $B$N<B9T%P%$%J%j$r(B Linux $B$G%3%s%Q%$%k$9$k(B</H3>

<P>$B$&!<$s!#(B &quot;emx&quot; $B%Q%C%1!<%8$H$+(B &quot;go&quot; $B%(%/%9%F%s(B
$B%@$J$I$r;H$&$H2DG=$K$J$k$=$&$G$9!#(B
<A HREF="ftp://sunsite.unc.edu/pub/Linux/devel/msdos">ftp://sunsite.unc.edu/pub/Linux/devel/msdos</A>
$B$r8+$F$_$F2<$5$$!#(B
<P>$B;d$O$3$l$i$r;n$7$?$3$H$,$J$$$N$G!"@-G=$K$D$$$FJ]>Z$9$k$3$H$O$G$-$^$;$s!#(B
<P>
<P>
<HR>
<H2><A NAME="s4">4.</A> <A HREF="#toc4">$B0\?"$H%3%s%Q%$%k(B</A></H2>

<P>
<H2><A NAME="ss4.1">4.1 $B<+F0Dj5A$5$l$k%7%s%\%k(B</A>
</H2>

<P>
<A NAME="index.25"></A>  
<P>$B<j85$N(B gcc $B$G$I$s$J%7%s%\%k$,<+F0Dj5A$5$l$F$$$k$+$rD4$Y$k$K$O(B 
<CODE>-v</CODE> $B%9%$%C%A$r$D$1$F(B gcc $B$r<B9T$7$^$9!#;d$N>l9g$O0J2<$N$h$&$K$J$j(B
$B$^$7$?!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ echo 'main(){printf("hello world\n");}' | gcc -E -v -
Reading specs from /usr/lib/gcc-lib/i486-box-linux/2.7.2/specs
gcc version 2.7.2
 /usr/lib/gcc-lib/i486-box-linux/2.7.2/cpp -lang-c -v -undef
-D__GNUC__=2 -D__GNUC_MINOR__=7 -D__ELF__ -Dunix -Di386 -Dlinux
-D__ELF__ -D__unix__ -D__i386__ -D__linux__ -D__unix -D__i386
-D__linux -Asystem(unix) -Asystem(posix) -Acpu(i386)
-Amachine(i386) -D__i486__ -
</PRE>
</CODE></BLOCKQUOTE>
<P>Linux $BFCM-$N5!G=$K0MB8$7$?%3!<%I$r=q$$$F$$$k>l9g$O$=$NItJ,$r0J2<$N$h$&(B
$B$K0O$C$F$*$/$HNI$$$G$7$g$&!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
#ifdef __linux__
/* ... funky stuff ... */
#endif /* linux */
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$3$NL\E*$K$O(B <CODE>__linux__</CODE> $B$rMQ$$$^$9!#(B <CODE>linux</CODE> $B$OMQ$$$k$Y$-$G$O(B
<EM>$B$"$j$^$;$s(B</EM>$B!#8e<T$O(B POSIX $B=`5r$G$O$J$$$+$i$G$9!#(B
<P>
<P>
<H2><A NAME="ss4.2">4.2 $B%3%s%Q%$%i$X$N;X<((B</A>
</H2>

<P>
<P>$B%3%s%Q%$%i$N%9%$%C%A$K4X$9$kJ8=q$O(B gcc $B$N(B info $B$K=q$+$l$F$$$^$9!#(B
$B!J(BEmacs $B$+$i$O(B <CODE>C-h i</CODE> $B$H$7$F(B `gcc' $B%*%W%7%g%s$rA*$S$^$9!K!#%$%s%9(B
$B%H!<%k$KMQ$$$?%P%$%J%jG[I[%Q%C%1!<%8$K$h$C$F$O$3$l$,F~$C$F$$$J$+$C$?$j(B
$B8E$+$C$?$j$9$k$3$H$,$"$j$^$9!#$=$N>l9g$O(B gcc $B$N%=!<%9%"!<%+%$%V$r(B
<A HREF="ftp://prep.ai.mit.edu/pub/gnu">ftp://prep.ai.mit.edu/pub/gnu</A>
$B$d%_%i!<%5%$%H$+$iF~<j$7!"$=$NCf$N(B info $B$r%3%T!<$7$F;H$$$^$7$g$&!#(B
<P>gcc $B$N(B man $B%Z!<%8(B <CODE>gcc.1</CODE> $B$O!"0l8@$G8@$C$F$7$^$&$HFbMF$,8E$$$G$9!#(B
$B$3$l$O(B man $B%Z!<%8$=$N$b$N$NCf$G$b7Y9p$5$l$F$$$^$9!#(B
<P>
<H3>$B%3%s%Q%$%i$N%U%i%0(B</H3>

<P>
<A NAME="index.26"></A>  
<A NAME="index.27"></A>  
<P>
<P> gcc $B$N%3%^%s%I%i%$%s$K(B <CODE>-O</CODE><EM>n</EM> $B$r$D$1$k$H=PNO$5$l$k(B
$B%3!<%I$r:GE,2=$9$k$3$H$,$G$-$^$9!#(B <EM>n</EM> $B$O@0?t$G$9!J>JN,$9$k$H(B 1 $B$H(B
$B$_$J$5$l$^$9!K!#0UL#$N$"$k(B <EM>n</EM> $B$NCM$H$=$l$>$l$NCM$KBP$9$k<B<AE*$J8z(B
$B2L$O%3%s%Q%$%i$N%P!<%8%g%s$K$h$C$FJQ$o$j$^$9$,!"DL>o$O(B 0 $B!J:GE,2=$J$7!K(B
$B$+$i(B 2$B!J$?$/$5$s!K$"$k$$$O(B 3$B!J$H$F$b$?$/$5$s!K$^$G$,0UL#$r;}$A$^$9!#(B
<P>gcc $BFbIt$G$O$3$l$i$NCM$O(B <CODE>-f</CODE> $B$d(B <CODE>-m</CODE> $B%*%W%7%g%s72$KE83+$5$l$^$9!#(B 
<CODE>-O</CODE> $B%*%W%7%g%s$N$=$l$>$l$N%l%Y%k$K$I$N$h$&$J%*%W%7%g%s$,BP1~$7$F$$(B
$B$k$+$rD4$Y$k$?$a$K$O(B gcc $B$r(B <CODE>-v</CODE> $B$H(B <CODE>-Q</CODE> $B%*%W%7%g%s$r$D$1$F<B9T(B
$B$7$^$9!J8e<T$N%*%W%7%g%s$O%^%K%e%"%k$K$O:\$C$F$$$^$;$s!K!#Nc$($P;d$N>l(B
$B9g(B <CODE>-O2</CODE> $B$KBP$7$F$O0J2<$N$h$&$K$J$j$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
enabled: -fdefer-pop -fcse-follow-jumps -fcse-skip-blocks
-fexpensive-optimizations
         -fthread-jumps -fpeephole -fforce-mem -ffunction-cse -finline
         -fcaller-saves -fpcc-struct-return -frerun-cse-after-loop
         -fcommon -fgnu-linker -m80387 -mhard-float -mno-soft-float
         -mno-386 -m486 -mieee-fp -mfp-ret-in-387
</PRE>
</CODE></BLOCKQUOTE>
<P>$B;H$C$F$$$k%3%s%Q%$%i$G$N:G$b9b$$:GE,2=%l%Y%k$h$j$b9b$$?tCM$r;XDj$7$?>l(B
$B9g!JNc$($P(B <CODE>-O6</CODE> $B$J$I!K$NF0:n$O!":G9b%l%Y%k$N:GE,2=$r;XDj$7$?$N$HF1(B
$B$8$K$J$j$^$9!#$7$+$7G[I[$9$k%3!<%I$K$3$N$h$&$J$d$jJ}$G:GE,2=$r;XDj$9$k(B
$B$N$ONI$$%"%$%G%#%"$H$O8@$($^$;$s!#$b$7>-Mh%j%j!<%9$5$l$k%3%s%Q%$%i$G99(B
$B$J$k:GE,2=$,F3F~$5$l$?>l9g!"%3!<%I$,$&$^$/F0$+$J$/$J$k2DG=@-$,$"$k$+$i(B
$B$G$9!#(B
<P>
<A NAME="index.28"></A>  
gcc 2.7.0 $B$*$h$S(B 2.7.2 $B$N%f!<%6$O!"$3$l$i$NHG$N(B <CODE>-O2</CODE> $B$K$O%P%0$,$"(B
$B$k$3$H$K5$$r$D$1$F2<$5$$!#6qBNE*$K$O(B strength reduction $B$,F0:n$7$J$$$N(B
$B$G$9!#(B gcc $B$r:F%3%s%Q%$%k$9$k>l9g$O%Q%C%A$rEv$F$k$3$H$K$h$C$F$3$NLdBj(B
$B$O2r7h$G$-$^$9!#$=$&$7$J$$>l9g$O%3%s%Q%$%k$N:]$K>o$K(B 
<CODE>-fno-strength-reduce</CODE> $B$r;XDj$9$k$h$&$K$7$F2<$5$$!#(B
<P>
<P>
<H3>$B%W%m%;%C%58GM-$N%U%i%0(B</H3>

<P><CODE>-O</CODE> $B%*%W%7%g%s$N$I$N%l%Y%k$G$b;XDj$O$5$l$^$;$s$,!"(B <CODE>-m</CODE> $B$O(B
$BM-MQ$J%U%i%072$G$9!#$=$N:G$?$k$b$N$O(B <CODE>-m386</CODE> $B$H(B <CODE>-m486</CODE> $B$G!"$=$l(B
$B$>$l(B 386 $B$H(B 486 $B$KM-Mx$J%3!<%I$r=PNO$9$k$h$&$K;XDj$7$^$9!#$3$l$i$N%*%W(B
$B%7%g%s$r;XDj$7$F%3%s%Q%$%k$7$?%3!<%I$O!"$=$l$>$lB>$N%A%C%W$G$bF0:n$7$^(B
$B$9!#(B 486 $B$N%3!<%I$OBg$-$/$J$j$^$9$,!"(B386 $B$N>e$G$bCY$/$J$k$3$H$O$"$j$^(B
$B$;$s!#(B
<P>$B8=:_$O$^$@(B <CODE>-mpentium</CODE> $B$"$k$$$O(B <CODE>-m586</CODE> $B$H$$$&%*%W%7%g%s$OB8:_$7(B
$B$^$;$s!#(B Linus $B$K$h$l$P(B <CODE>-m486 -malign-loops=2 -malign-jumps=2
-malign-functions=2</CODE> $B$r;H$&$H%"%i%$%s%a%s%H$N$?$a$NBg$-$J%.%c%C%W$r:n(B
$B$k$3$H$J$/(B 486 $B$N%3!<%I$r:GE,2=$G$-$k$=$&$G$9!J(BPentium $B$G$O$=$b(B
$B$=$b%"%i%$%s%a%s%H$,I,MW$H$5$l$^$;$s!K!#(B Cygnus $B$N(B Michael Meissner $B$O(B
$B$3$&8@$C$F$$$^$9!#(B
<P>
<BLOCKQUOTE>
$B8D?ME*$K$O(B <CODE>-mno-strength-reduce</CODE> $B$r(B x86 $B$N%3!<%I$K;XDj$9$k$HB.EY$O(B
$B8~>e$9$k$H;W$&!J(Bstrength reduction $B$N%P%0$N$3$H$r8@$C$F$$$k$o$1$G$O$J(B
$B$$$3$H$KCm0U$5$l$?$$!#$=$l$O$^$?JL$NOC$G$"$k!K!#(B x86 CPU $B$G$O%l%8%9%?(B
$B$,ITB-$7$d$9$$$?$a!"(B gcc $B$GMQ$$$F$$$k<jK!!J%l%8%9%?72$r(B spill
$B%l%8%9%?$H$=$l0J30$X%0%k!<%WJ,$1$9$k!K$HAj@-$,0-$$$+$i$G$"$k!#(B 
strength reduction $B$G$O>h;;$r2C;;$GCV$-49$($k:]$K$h$jB?$/$N%l%8%9%?$r(B
$B;HMQ$9$k!#;d$O(B <CODE>-fcaller-saves</CODE> $B$bF1MM$K@-G=Dc2<$N860x$K$J$k$H9M$($k!#(B
</BLOCKQUOTE>

<BLOCKQUOTE>
$B$b$&0l$D;d8+$r!#(B <CODE>-fomit-frame-pointer</CODE> $B$OM-Mx$KF/$/>l9g$b(B
$BITMx$KF/$/>l9g$b$"$k$H;W$&!#$3$N%*%W%7%g%s$OB>$N%l%8%9%?$r3d$jEv$F2DG=(B
$B$K$9$k!#0lJ}(B x86 $B$,L?Na%;%C%H$r2r<a$9$k$d$jJ}$+$i9M$($F!"%9%?%C%/AjBP(B
$B%"%I%l%9$O%U%l!<%`AjBP%"%I%l%9$h$j$bBg$-$J%9%Z!<%9$rI,MW$H$9$k!#$7$?$,$C(B
$B$F%W%m%0%i%`$GMxMQ$G$-$k(B I $B%-%c%C%7%e$,>/$J$/$J$C$F$7$^$&!#F1MM$K(B 
<CODE>-fomit-frame-pointer</CODE> $B$r;XDj$9$k$H%3%s%Q%$%i$O%9%?%C%/%]%$%s%?$rL?(B
$BNa%3!<%k$N$?$S$K:FG[CV$9$k$,!"%U%l!<%`$,$"$k>l9g$O%9%?%C%/%"%-%e%`%l!<(B
$B%?$r?tL?Na$G;H$$$-$C$F$7$^$&$3$H$K$J$k!#(B
</BLOCKQUOTE>
<P>$B$3$NOCBj$N:G8e$O:F$S(B Linus $B$N8@MU$GDy$a$/$/$j$^$7$g$&!#(B
<P>
<BLOCKQUOTE>
$B:G9b$N@-G=$rF@$k$K$O;d$r?.$8$A$c$$$1$^$;$s!#%F%9%H$7$F2<$5$$!#(B gcc $B%3(B
$B%s%Q%$%i$K$O$?$/$5$s$N%*%W%7%g%s$,:_$j!"$=$NAH$_9g$;$N$&$A$N0l$D$,$"$J(B
$B$?$K$H$C$F$N%Y%9%H$J:GE,2=$H$J$k$O$:$G$9!#(B
</BLOCKQUOTE>
<P>
<P>
<H3><CODE>Internal compiler error: cc1 got fatal signal 11</CODE></H3>

<P>
<A NAME="index.29"></A>  
<A NAME="index.30"></A>  
<A NAME="index.31"></A>  
<A NAME="index.32"></A>  
<A NAME="index.33"></A>  
<P>$B%7%0%J%k(B 11 $B$O(B SIGSEGV $B$^$?$O!V%;%0%a%s%H0cH?!W$r0UL#$7$^$9!#DL>o$3(B
$B$l$O%W%m%0%i%`Cf$G%]%$%s%?$,:.Mp$7!"%W%m%0%i%`$G4IM}$7$F$$$J$$%a%b%jNN(B
$B0h$K=q$-9~$_$r9T$*$&$H$7$?7k2L$G$9!#$7$?$,$C$F$3$l$O(B gcc $B$N%P%0$G$"$k(B
$B2DG=@-$b$"$j$^$9!#(B
<P>$B$7$+$7(B gcc $B!J$N$[$H$s$I$NItJ,!K$O:YIt$^$G%F%9%H$5$l$??.Mj$9$Y$-%=%U%H(B
$B%&%'%"$H8@$($^$9!#0lJ}(B gcc $B$G$O?tB?$/$NJ#;($J%G!<%?9=B$$dL5?t$N%]%$%s(B
$B%?$rMQ$$$F$$$^$9!#$D$^$jDL>o<j$KF~$kCf$G:G$bM%=($J(B RAM $B$N%F%9%?!<$G$"(B
$B$k$H$b8@$($k$N$G$9!#$b$7%P%0$,:F8=$5$l$J$1$l$P!J%3%s%Q%$%k$r:F$S9T$J$C(B
$B$?$H$-$KF1$8$H$3$m$G;_$^$k$N$G$J$1$l$P!K$=$l$OB?J,4V0c$$$J$/;H$C$F$$$k(B
$B%O!<%I%&%'%"!J(BCPU$B!"%a%b%j!"%^%6!<%\!<%I$^$?$O%-%c%C%7%e!K$N>c32$G$9!#(B
$B%7%9%F%`$,EE8;EjF~;~$N%A%'%C%/$r%Q%9$9$k$+$i$H$$$C$F!"$"$k$$$O(B Windows 
$B$GLdBj$J$/F0:n$9$k$+$i$H$$$C$F$3$N>c32$r%P%0$H8@$C$F$O$$$1$^$;$s!#$3$l(B
$B$i$N!X%F%9%H!Y$O0lHL$K2ACM$,L5$$$H$_$J$5$l$F$$$k$+$i$G$9!J@5Ev$JH=CG$H(B
$B8@$($^$9!*!K!#$^$?%+!<%M%k$N%3%s%Q%$%k$,$$$D$b(B `<CODE>make zImage</CODE>' $B$NES(B
$BCf$GDd;_$9$k$+$i$H$$$C$F!"$3$l$r%P%0$@$H8@$C$F$3$J$$$G$/$@$5$$(B --- $B$=(B
$B$j$c3N$+$K%P%0$+$b$7$l$^$;$s$1$I$M!#(B `<CODE>make zImage</CODE>' $B$O$*$=$i$/(B 200 
$B0J>e$N%U%!%$%k$r%3%s%Q%$%k$7$^$9!#2f!9$,CN$j$?$$$N$O$b$&>/$7>.$5$JHO0O(B
$B$J$N$G$9!#(B
<P>$B$b$7%P%0$,:F8=$G$-$?$i!"$^$?!J$h$jK>$`$i$/$O!K%P%0$r0z$-5/$3$9C;$$%W%m(B
$B%0%i%`$,$"$C$?$i!"$=$NLdBj$K4X$9$k%P%0%l%]!<%H$r(B FSF $B$+(B linux-gcc $B%a!<(B
$B%j%s%0%j%9%H$KAw$j$^$7$g$&!#(B gcc $B$NJ8=q$rNI$/FI$s$G!"H`$i$,I,MW$H$9$k(B
$B>pJs$K4X$7$FM}2r$7$F$+$i$K$7$^$7$g$&!#(B
<P>
<P>
<H2><A NAME="ss4.3">4.3 $B0\?"@-(B</A>
</H2>

<P>
<P>$B:G6a$G$O!X$b$7(B Linux $B$K0\?"$5$l$F$$$J$$%W%m%0%i%`$,$"$C$?$H$7$?$i!"(B
$B$=$l$O$=$b$=$b0\?"$5$l$k$Y$-2ACM$,L5$$$N$@!Y$H$b8@$o$l$F$$$^$9!#(B <CODE>:-)</CODE>
<P>$B$b$&>/$7??LLL\$K!#$7$+$70lHL$K(B Linux $B$N(B 100% POSIX $B=`5r$rK~$?$9$K$O(B
$B%=!<%9$r>/!9JQ99$9$k$@$1$GNI$$$O$:$G$9!#9T$J$C$?JQ99$O%W%m%0%i%`$N86Cx(B
$B<T$K%U%#!<%I%P%C%/$9$k$HNI$$$G$7$g$&!#0J9_$O(B `make' $B$@$1$G<B9T%U%!%$(B
$B%k$,$G$-$k$h$&$K$7$F$b$i$($k$+$b$7$l$^$;$s!#(B
<P>
<H3>BSD $B7O!J(B<CODE>bsd_ioctl</CODE>$B!"(B <CODE>daemon</CODE> $B$*$h$S(B <CODE>&lt;sgtty.h&gt;</CODE>$B!K(B</H3>

<P>$B%W%m%0%i%`$O(B <CODE>-I/usr/include/bsd</CODE> $B$r$D$1$l$P%3%s%Q%$%k$G$-!"(B
$B$^$?(B <CODE>-lbsd</CODE> $B$r$D$1$l$P%j%s%/$G$-$^$9!J$D$^$j(B Makefile $B$N(B 
<CODE>CFLAGS</CODE> $B$K(B <CODE>-I/usr/include/bsd</CODE> $B$r2C$(!"(B <CODE>LDFLAGS</CODE> $B$K(B 
<CODE>-lbsd</CODE> $B$r2C$($k$o$1$G$9!K!#(B BSD $B7A<0$N%7%0%J%k$N?6$kIq$$$rMQ$$(B
$B$k$?$a$K(B <CODE>-D__USE_BSD_SIGNAL</CODE> $B$r2C$($kI,MW$O$b$&$"$j$^$;$s!#(B 
<CODE>-I/usr/include/bsd</CODE> $B$r2C$($F(B <CODE>&lt;signal.h&gt;</CODE> $B$r%$%s%/%k!<(B
$B%I$9$l$P<+F0E*$KA*Br$5$l$^$9!#(B
<P>
<H3>$B!V<:$o$l$?!W%7%0%J%k!J(B<CODE>SIGBUS</CODE>, <CODE>SIGEMT</CODE>, <CODE>SIGIOT</CODE>, <CODE>SIGTRAP</CODE>, <CODE>SIGSYS</CODE> $B$J$I(B $B!K(B</H3>

<P>
<A NAME="index.34"></A>  
<A NAME="index.35"></A>  
<A NAME="index.36"></A>  
<A NAME="index.37"></A>  
<A NAME="index.38"></A>  
<P>Linux $B$O(B POSIX $B$K=`5r$7$F$$$^$9!#$3$l$i$O(B POSIX $B$GDj5A$5$l$F$$$k%7(B
$B%0%J%k$G$O$"$j$^$;$s!#(B ISO/IEC 9945-1:1990 (IEEE Std 1003.1-1990) $B$N(B 
B.3.3.1.1 $B$+$i0zMQ$7$^$9!#(B
<P>
<BLOCKQUOTE>
$B!V(BSIGBUS$B!"(B SIGEMT$B!"(B SIGIOT$B!"(B SIGTRAP$B!"(B SIGSYS $B$N3F%7%0%J%k$O(B POSIX.1 
$B$+$i:o=|$5$l$^$9!#$3$l$i$N%7%0%J%k$N?6Iq$$$O<BAu$K$h$C$F0[$J$C$F$*$j!"(B
$BE,Ev$JJ,N`$,$G$-$J$$$+$i$G$9!#(B POSIX $B=`5r$N<BAu$G$b$3$l$i$N%7%0%J%k(B
$B$rH/9T$9$k$3$H$O5v$5$l$F$$$^$9$,!"H/9T$5$l$k>u67$OJ8=q2=$7$J$1$l$P$J$j(B
$B$^$;$s$7!"$3$l$i%7%0%J%k$NH/9T$K4X$9$k$"$i$f$k@)8B$r5-=R$7$F$*$/I,MW$,(B
$B$"$j$^$9!#!W(B
</BLOCKQUOTE>
<P>
<P>$B$3$l$r2sHr$9$k0BD>$JJ}K!$O$3$l$i$N%7%0%J%k$r(B <CODE>SIGUNUSED</CODE> $B$H$7$F(B
$B:FDj5A$9$k$3$H$G$9!#(B<EM>$B@5$7$$(B</EM>$BJ}K!$O$3$l$i$r07$C$F$$$k%3!<%I$rE,Ev$J(B 
<CODE>#ifdef</CODE> $B$NAH$G0O$&$3$H$G$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
#ifdef SIGSYS
/* ... non-posix SIGSYS code here .... */
#endif
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>K &amp; R $B$N%3!<%I(B</H3>

<P>
<A NAME="index.39"></A>  
<P>GCC $B$O(B ANSI $B$N%3%s%Q%$%i$G$9!#$7$+$78=:_B8:_$9$k(B C $B$N%3!<%I$O$[$H(B
$B$s$I$,(B ANSI $B=`5r$G$O$"$j$^$;$s!#(B K &amp; R $B$N%3!<%I$K4X$7$F(B GCC $B$,$G$-(B
$B$k$3$H$O%3%s%Q%$%i$N%U%i%0$K(B <CODE>-traditional</CODE> $B$rIU$1$k$3$H$0$i$$$G$9!#(B
$B$b$&>/$7@:L)$J%3%s%H%m!<%k$r$9$k$3$H$b2DG=$G$9$,!"$3$l$i$r%(%_%e%l!<%H(B
$B$9$k$N$O3F<o$NF,DK$N<o$K$J$k$G$7$g$&!#>\$7$/$O(B gcc $B$N(B info $B$r;2>H$7$F(B
$B2<$5$$!#(B
<P><CODE>-traditional</CODE> $B$O(B gcc $B$NJ8K!$rJQ$($k$@$1$G$J$/!"I{:nMQ$r@8$8$k$3$H(B
$B$KCm0U$7$F2<$5$$!#Nc$($P(B <CODE>-traditional</CODE> $B$K$h$C$F(B 
<CODE>-fwritable-string</CODE> $B$,M-8z$K$J$j$^$9!#$3$N%9%$%C%A$K$h$jJ8;zNsDj?t(B
$B$O%G!<%?NN0h$K=q$-9~$^$l$^$9!J%9%$%C%A$,$J$$$H%W%m%0%i%`$K$h$kJQ99$,9T(B
$B$o$l$J$$%F%-%9%HNN0h$K=q$-9~$^$l$^$9!K!#$3$l$K$h$j!"%W%m%0%i%`$N%a%b%j(B
$B;HMQNL$,A}2C$7$^$9!#(B
<P>
<H3>$B%W%j%W%m%;%C%5$N%7%s%\%k$,%3!<%ICf$N%W%m%H%?%$%W$H>WFM$9$k(B</H3>

<P>
<A NAME="index.40"></A>  
<A NAME="index.41"></A>  
<P>$B$"$j$,$A$J$N$O!"HFMQ$N4X?t$,(B Linux $B$N%X%C%@%U%!%$%k$G$b%^%/%m$H$7$FDj(B
$B5A$5$l$F$$$k$?$a!"%W%j%W%m%;%C%5$,%3!<%ICf$NF1MM$J%W%m%H%?%$%W@k8@$r(B
$BG'$a$J$/$J$k$H$$$&LdBj$G$9!#NI$/$"$k$N$O(B <CODE>atoi()</CODE> $B$H(B 
<CODE>atol()</CODE> $B$G$9!#(B
<P>
<H3><CODE>sprintf()</CODE></H3>

<P>
<A NAME="index.42"></A>  
<P>$B!JFC$K(B SunOS $B$+$i0\?"$9$k:]$K!K5$$r$D$1$J$1$l$P$J$i$J$$$N$O!"(B 
<CODE>sprintf(string, fmt, ...)</CODE> $B$NLa$jCM$OB?$/$N(B Unix $B$G$O(B <CODE>string</CODE> 
$B$X$N%]%$%s%?$G$"$k$N$KBP$7$F!"(B Linux $B$G$O!J(BANSI $B$K=>$$!KJ8;zNs$X=q$-9~(B
$B$^$l$?J8;z?t$K$J$C$F$$$k$3$H$G$9!#(B
<P>
<H3><CODE>fcntl</CODE> $B$J$I!#(B <CODE>FD_*</CODE> $B$NDj5A$O$I$3$K$"$k$N!)(B</H3>

<P>
<A NAME="index.43"></A>  
<A NAME="index.44"></A>  
<A NAME="index.45"></A>  
<A NAME="index.46"></A>  
<A NAME="index.47"></A>  
<A NAME="index.48"></A>  
<A NAME="index.49"></A>  
<P><CODE>&lt;sys/time.h&gt;</CODE> $B$GDj5A$5$l$F$$$^$9!#(B <CODE>fcntl</CODE> $B$rMQ$$(B
$B$k>l9g$O(B <CODE>&lt;unistd.h&gt;</CODE> $B$b0l=o$K%$%s%/%k!<%I$9$kI,MW$,$"$k$G$7$g(B
$B$&!#<B:]$N%W%m%H%?%$%W$O$3$3$GDj5A$5$l$F$$$^$9!#(B
<P>$B0lHL$K!"4X?t$KI,MW$J(B <CODE>#include</CODE> $B$O(B man $B%Z!<%8$N(B SYNOPSIS $B%;%/%7%g(B
$B%s$K5-=R$5$l$F$$$^$9!#(B
<P>
<P>
<H3><CODE>select()</CODE> $B$,0lEY%?%$%`%"%&%H$9$k$H%W%m%0%i%`$,%&%'%$%H$7$J$/$J$k(B</H3>

<P>
<A NAME="index.50"></A>  
<P>$B@N$O(B <CODE>select()</CODE> $B$N(B timeout $B0z?t$OJQ99$5$l$^$;$s$G$7$?!#$7(B
$B$+$7Ev;~$G$b%^%K%e%"%k$K$O0J2<$N$h$&$K=q$+$l$F$$$^$7$?!#(B
<P>
<BLOCKQUOTE>
select() $B$OM?$($i$l$?(B timeout $B$+$i!J$b$7$"$l$P!K;D$C$?;~4V$r!"(Btime $B$N(B
$BCM$rCV$-49$($k$3$H$K$h$C$FJV$9$Y$-$G$9!#$3$l$O%7%9%F%`$N>-Mh$N%P!<%8%g(B
$B%s$G%$%s%W%j%a%s%H$5$l$k$G$7$g$&!#=>$C$F(B timeout $B$N%]%$%s%?$,(B select() 
$B$N8F$S=P$7$K$h$C$FJQ99$5$l$J$$$3$H$r2>Dj$7$?%3!<%I$r=q$/$N$ONI$/$"$j$^(B
$B$;$s!#(B
</BLOCKQUOTE>
<P>$B$=$N>-Mh$,Mh$?$o$1$G$9!">/$J$/$H$b$3$3$G$O!#(B
<CODE>select()</CODE> $B$+$iLa$k$H$-!"(B timeout $B0z?t$K$OBT$A;~4V$N;D$j$,%;%C%H$5(B
$B$l$^$9!#%G!<%?$,:G8e$^$GE~Ce$7$J$1(B
$B$l$P(B timeout $B$O(B 0 $B$K$J$j$^$9$N$G!"(B timeout $B9=B$BN$r$=$N$^$^$K$7$F$b$&(B
$B0lEY(B <CODE>select()</CODE> $B$r8F$V$H!"$9$0$K@)8f$,JV$C$FMh$F$7$^$$$&$H$$$&$o$1(B
$B$G$9!#(B
<P>$B$3$NLdBj$r=$@5$9$k$K$O(B <CODE>select()</CODE> $B$r8F$VEY$K%?%$%`%"%&%H$NCM$r(B 
timeout $B9=B$BN$KBeF~$7$F$d$l$PNI$$$N$G$9!#:#$^$G$N%3!<%I$,0J2<$N$h$&$J(B
$B$b$N$@$H$7$?$i!"(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
      struct timeval timeout;
      timeout.tv_sec = 1; timeout.tv_usec = 0;
      while (some_condition)
            select(n,readfds,writefds,exceptfds,&amp;timeout); 
</PRE>
</CODE></BLOCKQUOTE>

$B$3$N$h$&$KJQ$($F2<$5$$!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
      struct timeval timeout;
      while (some_condition) {
            timeout.tv_sec = 1; timeout.tv_usec = 0;
            select(n,readfds,writefds,exceptfds,&amp;timeout);
      }
</PRE>
</CODE></BLOCKQUOTE>
<P>Mosaic $B$N$"$k%P!<%8%g%s$G$O$3$NLdBj$,;D$C$F$$$?$3$H$,$"$j$^$7$?!#2sE>(B
$B$9$kCO5e$N%"%K%a!<%7%g%s$,!"%M%C%H%o!<%/$+$iE~Ce$9$k%G!<%?$NB.EY$HH?Hf(B
$BNc$7$?B.$5$G2sE>$7$?$N$G$9!*(B
<P>
<H3>$B%7%9%F%`%3!<%k$,3d$j9~$^$l$k(B</H3>

<P>
<A NAME="index.51"></A>  
<A NAME="index.52"></A>  
<P>
<H3>$B>I>u(B</H3>

<P>$B%W%m%0%i%`$,(B Ctrl-Z $B$GDd;_$5$l$F$+$i:F3+$5$l$k!J$"$k$$$O%7%0%J%k$r(B
$BH/@8$9$kB>$N>u67(B: Ctrl-C $B$K$h$kCfCG$d;R%W%m%;%9$N=*N;$J$I!K$H!"%W%m%0(B
$B%i%`$,(B &quot;interruputed system call&quot; $B$d(B &quot;write: unknown
error&quot; $B$H8@$C$?$h$&$J%a%C%;!<%8$r=P$7$^$9!#(B
<P>
<H3>$BLdBjE@(B</H3>

<P>POSIX $B$N%7%9%F%`$G$O8E$$(B UNIX $B$h$j$b%7%0%J%k%A%'%C%/$r$9$k6ILL$,B?(B
$B$/$J$C$F$$$^$9!#(B Linux $B$O0J2<$N$h$&$J%7%0%J%k%O%s%I%i$r<B9T$7$^$9!#(B
<P>
<UL>
<LI> $BHsF14|$J%A%'%C%/!J%?%$%^3d$j9~$_$N:]!K(B</LI>
<LI> $B%7%9%F%`%3!<%k$+$i$NLa$j;~(B</LI>
<LI> $B0J2<$N%7%9%F%`%3!<%k$N<B9T;~(B:
<UL>
<LI> $B%?!<%_%J%k!"%=%1%C%H!"%Q%$%W$*$h$S(B <CODE>/proc</CODE> $B$N%U%!%$%k$KBP$9$k(B <CODE>select()</CODE>$B!"(B <CODE>pause()</CODE>$B!"(B <CODE>connect()</CODE>$B!"(B <CODE>accept()</CODE>$B!"(B <CODE>read()</CODE>$B!#(B</LI>
<LI> $B%?!<%_%J%k!"%=%1%C%H!"%Q%$%W$*$h$S%i%$%s%W%j%s%?$X$N(B <CODE>write()</CODE>$B!#(B</LI>
<LI> FIFO$B!"(B PTY $B$*$h$S%7%j%"%k%i%$%s$N(B <CODE>open()</CODE>$B!#(B</LI>
<LI> $B%?!<%_%J%k$X$N(B <CODE>ioctl()</CODE>$B!#(B</LI>
<LI> <CODE>fcntl()</CODE> $B$X$N(B <CODE>F_SETLKE</CODE> $B%3%^%s%I!#(B</LI>
<LI> <CODE>wait4()</CODE>$B!"(B <CODE>syslog()</CODE>$B!"(B $B$=$NB>A4$F$N(B TCP $B$*$h$S(B NFS $BF0:n!#(B</LI>
</UL>

</LI>
</UL>
<P>$BB>$N(B OS $B$G$O0J2<$N$h$&$J%7%9%F%`%3!<%k$,BP>]$K$J$k>l9g$b$"$j$^$9!#(B
<CODE>creat()</CODE>$B!"(B <CODE>close()</CODE>$B!"(B <CODE>getmsg()</CODE>$B!"(B <CODE>putmsg()</CODE>$B!"(B
<CODE>msgrcv()</CODE>$B!"(B <CODE>msgsnd()</CODE>$B!"(B <CODE>recv()</CODE>$B!"(B <CODE>send()</CODE>$B!"(B
<CODE>wait()</CODE>$B!"(B <CODE>waitpid()</CODE>$B!"(B <CODE>wait3()</CODE>$B!"(B <CODE>tcdrain()</CODE>$B!"(B
<CODE>sigpause()</CODE>$B!"(B <CODE>semop()</CODE>$B!#(B
<P>
<P> $B$b$7%W%m%0%i%`$,%O%s%I%i$r;}$C$F$$$k%7%0%J%k$,%7%9%F%`%3!<%k$N(B
$BESCf$GH/@8$9$k$H!"$=$N%7%0%J%k%O%s%I%i$,8F$S=P$5$l$^$9!#%O%s%I%i$+$i$N(B
$B@)8f$,!J%7%9%F%`%3!<%k$K!KLa$k$H!"%7%9%F%`%3!<%k$O<+J,$KBP$9$k3d$j9~$_(B
$B$r8!CN$7!"$?$@$A$K(B -1 $B$rJV$9$H$H$b$K(B <CODE>errno = EINTR</CODE> $B$r(B
$B%;%C%H$7$^$9!#%W%m%0%i%`$O$3$N$h$&$J$3$H$,5/$3$k$H$O;W$C$F$$$^$;$s$+$i!"(B 
$B0[>o=*N;$7$^$9!#(B
<P>$BBP=hK!$OFs$D$"$j$^$9!#(B
<P>(1) $BF3F~$7$?%7%0%J%k%O%s%I%i$4$H$K(B <CODE>SA_RESTART</CODE> $B$r(B sigaction $B%U%i%0$KDI2C$7$^$9!#Nc$($P(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
  signal (sig_nr, my_signal_handler);
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$N$h$&$J$b$N$r0J2<$N$h$&$K=q$-49$($^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
  signal (sig_nr, my_signal_handler);
  { struct sigaction sa;
    sigaction (sig_nr, (struct sigaction *)0, &amp;sa);
#ifdef SA_RESTART
    sa.sa_flags |= SA_RESTART;
#endif
#ifdef SA_INTERRUPT
    sa.sa_flags &amp;= ~ SA_INTERRUPT;
#endif
    sigaction (sig_nr, &amp;sa, (struct sigaction *)0);
  }
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$3$l$O$[$H$s$I$N%7%9%F%`%3!<%k$KE,MQ$G$-$^$9$,!"(B <CODE>read()</CODE>$B!"(B 
<CODE>write()</CODE>$B!"(B <CODE>ioctl()</CODE>$B!"(B <CODE>select()</CODE>$B!"(B <CODE>pause</CODE>$B!"(B 
<CODE>connect()</CODE> $B$N3F%7%9%F%`%3!<%k$KBP$7$F$O(B <CODE>EINTR</CODE> $B$N%A%'%C%/$r%W(B
$B%m%0%i%`Cf$G9T$J$&I,MW$,$"$j$^$9!#0J2<$r;29M$K$7$F2<$5$$!#(B
<P>(2) <CODE>EINTR</CODE> $B$r%W%m%0%i%`Cf$GL@<(E*$K%A%'%C%/$9$k!#(B
<P><CODE>read()</CODE> $B$H(B <CODE>ioctl()</CODE> $B$KBP$9$kFs$D$NNc$r<($7$^$9!#(B
<P>$B$^$:(B <CODE>read()</CODE> $B$N>l9g$G$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
int result;
while (len > 0) { 
  result = read(fd,buffer,len);
  if (result &lt; 0) break;
  buffer += result; len -= result;
}
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$N$h$&$J%3!<%I$r0J2<$N$h$&$K=q$-49$($^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
int result;
while (len > 0) { 
  result = read(fd,buffer,len);
  if (result &lt; 0) { if (errno != EINTR) break; }
  else { buffer += result; len -= result; }
}
</PRE>
</CODE></BLOCKQUOTE>
<P>$B<!$O(B <CODE>ioctl()</CODE> $B$NNc$G$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
int result;
result = ioctl(fd,cmd,addr);
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$3$l$r0J2<$N$h$&$K=q$-49$($^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
int result;
do { result = ioctl(fd,cmd,addr); }
while ((result == -1) &amp;&amp; (errno == EINTR));
</PRE>
</CODE></BLOCKQUOTE>
<P>BSD Unix $B$N%P!<%8%g%s$K$h$C$F$O!"%G%U%)%k%H$G%7%9%F%`%3!<%k$r$d$jD>$9(B
$B$3$H$K$J$C$F$$$k$3$H$b$"$j$^$9!#$3$N>l9g%7%9%F%`%3!<%k$rCfCG$9$k$K$O!"(B
<CODE>SV_INTERRUPUT</CODE> $B$+(B <CODE>SA_INTERRUPT</CODE> $B%U%i%0$rMQ$$$kI,MW$,$"$j$^$9!#(B
<P>
<P>
<H3>$B=q$-9~$_2DG=$JJ8;zNs!J%W%m%0%i%`$,%i%s%@%`$KDd;_$9$k!K(B</H3>

<P>
<A NAME="index.53"></A>  
<A NAME="index.54"></A>  
<A NAME="index.55"></A>  
<A NAME="index.56"></A>  
<P>GCC $B$O%f!<%6$r?.Mj$7$F$*$j!"J8;zNsDj?t$O$"$/$^$GDj?t$H$7$F07$o$l$k(B
$B$b$N$H$_$J$7$F$$$^$9!#=>$C$F(B GCC $B$G$OJ8;zNsDj?t$O%F%-%9%H!J%3!<%I!KNN(B
$B0h$KJ];}$5$l$^$9!#$3$3$O%W%m%0%i%`$N%G%#%9%/%$%a!<%8$K%Z!<%8%s%0$5$l$^(B
$B$9!J%9%o%C%WNN0h$K(B take up $B$5$l$kBe$o$j$K!K$N$G!"$3$NJ8;zNsDj?t$r=q$-(B
$B49$($h$&$H$9$k$H%;%0%a%s%H0cH?$H$J$j$^$9!#$3$l$O;EMM$G$9!*(B
<P>$B8E$$%W%m%0%i%`$N>l9g$G$O$3$l$,LdBj$K$J$k$3$H$,$"$j$^$9!#Nc$($P(B 
<CODE>mktemp()</CODE> $B$rJ8;zNsDj?t$r0z?t$K$7$F8F$S=P$9>l9g$J$I$G$9!#(B 
<CODE>mktemp()</CODE> $B$O0z?t$r=q$-49$($h$&$H$9$k$?$a$G$9!#(B
<P>$B=$@5$9$k$K$OFs$D$NJ}K!$,$"$j$^$9!#(B (a) <CODE>-fwritable-string</CODE> $B$rIU$1$F(B
$B%3%s%Q%$%k$7$F(B gcc $B$KDj?t$r%G!<%?NN0h$KJ];}$9$k$h$&EA$($k!#(B (b) $BLdBj$H(B
$B$J$kItJ,$rDj?t$G$J$$J8;zNs$K(B strcpy $B$7$F!"$3$A$i$rMQ$$$k!#(B
<P>
<H3><CODE>execl()</CODE> $B$,<:GT$9$k(B</H3>

<P>
<A NAME="index.57"></A>  
<P>$B4V0c$C$?8F$S=P$7J}$r$7$F$$$k$+$i$G$9!#(B <CODE>execl</CODE> $B$N:G=i$N0z?t$O<B(B
$B9T$7$?$$%W%m%0%i%`$G$9!##2HVL\0J9_$N0z?t$O8F$S=P$9%W%m%0%i%`$N(B 
<CODE>argv</CODE> $BG[Ns$K$J$j$^$9!#$3$3$G(B <CODE>argv[0]</CODE> $B$O%W%m%0%i%`$N(B
$B%Q%9$=$N$b$N$G$"$k$3$H$KCm0U$7$F2<$5$$!#=>$C$F(B<CODE>execl</CODE> $B$N8F$S=P$7$O(B
$B0J2<$N$h$&$K=q$/I,MW$,$"$j$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
execl("/bin/ls","ls",NULL);
</PRE>
</CODE></BLOCKQUOTE>
<P>$BC1$K0J2<$N$h$&$K=q$/$N$O4V0c$$$G$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
execl("/bin/ls", NULL);
</PRE>
</CODE></BLOCKQUOTE>
<P>$B>/$J$/$H$b(B a.out $B$N>l9g$O!"0z?t$rA4$/%;%C%H$;$:$K%W%m%0%i%`$r<B9T$9$k(B
$B$H!"0MB8$7$F$$$k%@%$%J%_%C%/%i%$%V%i%j$rI=<($9$k$h$&$K$J$C$F$$$^$9!#(B 
ELF $B$G$O$^$?0c$C$?F0:n$H$J$j$^$9!#(B
<P>$B$b$7$3$N%i%$%V%i%j$N>pJs$,I,MW$G$7$?$i!"$b$C$H4JC1$J%$%s%?!<%U%'!<%9$,(B
$B$"$j$^$9!#%@%$%J%_%C%/%m!<%I$N@a$+(B <CODE>ldd</CODE> $B$N(B man $B%Z!<%8$r8+$F2<$5$$!#(B
<P>
<P>
<HR>
<H2><A NAME="s5">5.</A> <A HREF="#toc5">$B%G%P%C%0$H%W%m%U%!%$%j%s%0(B</A></H2>

<P>
<H2><A NAME="ss5.1">5.1 $BM=KIE*%a%s%F%J%s%9!J(Blint$B!K(B</A>
</H2>

<P>
<A NAME="index.58"></A>  
<P>Linux $B$G$O9-$/MQ$$$i$l$F$$$k(B lint $B$O$"$j$^$;$s!#$[$H$s$I$N?M$,(B gcc 
$B$N=P$9(B warning $B$KK~B-$7$F$$$k$+$i$G$9!#$*$=$i$/(B <CODE>-Wall</CODE> $B%9%$%C%A$,(B
$B$b$C$H$bLr$K$?$D$G$7$g$&!#$3$l$O(B `Warnings, all' $B$N0UL#$G$9!#$7$+$7$3(B
$B$N%9%$%C%A$+$i$O!"$I$A$i$+$H$$$&$HF,$rC!$-IU$1$?$/$J$k$b$N!J(Bwall$B!K$rO"(B
$BA[$7$=$&$G$9$M!#(B
<P>$B%Q%V%j%C%/%I%a%$%s$N(B lint $B$,(B
<A HREF="ftp://larch.lcs.mit.edu/pub/Larch/lclint">ftp://larch.lcs.mit.edu/pub/Larch/lclint</A>
$B$+$iF~<j$G$-$^$9!#$I$N$/$i$$NI$$$+$K$D$$$F$O;d$OCN$j$^$;$s!#(B
<P>
<H2><A NAME="ss5.2">5.2 $B%G%P%C%0(B</A>
</H2>

<P>
<A NAME="index.59"></A>  
<P>
<H3>$B%W%m%0%i%`$K%G%P%C%0>pJs$rKd$a9~$`$K$O(B</H3>

<P>
<A NAME="index.60"></A>  
<A NAME="index.61"></A>  
<A NAME="index.62"></A>  
<P>$B%3%s%Q%$%k$H%j%s%/$NA4$F$NCJ3,$K$*$$$F(B <CODE>-g</CODE> $B%9%$%C%A$rIU$1!"(B 
<CODE>-fomit-frame-pointer</CODE> $B%9%$%C%A$OIU$1$J$$I,MW$,$"$j$^$9!#<B:]$K$OA4(B
$B$F$NItJ,$r:F%3%s%Q%$%k$9$kI,MW$O$J$/!"%G%P%C%0$7$?$$ItJ,$N$_$r$9$l$P(B 
OK $B$G$9!#(B
<P>a.out $B$N6&M-%i%$%V%i%j$O(B <CODE>-fomit-frame-pointer</CODE> $B$rIU$1$F%3%s%Q%$%k(B
$B$5$l$F$*$j!"$3$l$KBP$7$F(B gdb $B$rMQ$$$k$3$H$O$G$-$^$;$s!#(B <CODE>-g</CODE> $B%*%W%7%g(B
$B%s$r%j%s%/$N$H$-$KIU$1$k$H(B static $B%j%s%/$K$J$C$F$7$^$&$N$O$3$&$7$?M}M3(B
$B$+$i$G$9!#(B
<P>$B!V(Blibg.a $B$,8+$D$+$i$J$$!W$H$$$&%a%C%;!<%8$,=P$F%j%s%+$,F0$+$J$$>l9g$O!"(B
<CODE>/usr/lib/libg.a</CODE> $B$,$J$$$N$G$9!#$3$l$O%G%P%C%0$,2DG=$K$J$C$F$$$k(B
$BFC<l$J(B C $B%i%$%V%i%j$G$9!#(B libc $B$N%P%$%J%j%Q%C%1!<%8$KF~$C$F$$$k$+!"$"(B
$B$k$$$O!J:G6a$NHG$N(B C $B%i%$%V%i%j$G$O!K(B libc $B$N%=!<%9%3!<%I$r<j$KF~$l$F(B
$B<+J,$G%S%k%I$9$kI,MW$,$"$j$^$9!#$7$+$7<B:]$K$O$3$l$OI,MW$J$/!"$[$H$s$I(B
$B$N>l9g$O(B <CODE>/usr/lib/libc.a</CODE> $B$KBP$9$k%7%s%\%j%C%/%j%s%/$rD%$l$P!"(B
$BI,MW$J>pJs$OF@$i$l$k$O$:$G$9!#(B
<P>
<H3>$BKd$a9~$^$l$?%G%P%C%0>pJs$r=|5n$9$k$K$O(B</H3>

<P>
<A NAME="index.63"></A>  
<P>GNU $B$N%=%U%H%&%'%"$NB?$/$O(B <CODE>-g</CODE> $B%U%i%0$,$D$$$?>uBV$G%3%s%Q%$%k!"(B
$B%j%s%/$5$l$F$$$^$9!#$=$N$?$a<B9T%U%!%$%k$O5pBg!J$+$D$7$P$7$P(B static $B%j(B
$B%s%/!K$K$J$C$F$$$^$9!#$3$l$O$"$^$j$"$j$,$?$/$J$$$G$9$M!#(B
<P>$B%W%m%0%i%`$K(B autoconf $B$G:n$C$?(B <CODE>configure</CODE> $B%9%/%j%W%H$,IUB0$7$F$$$k(B
$B>l9g$O!"(B<CODE>./configure CFLAGS=</CODE> $B$^$?$O(B <CODE>./configure
CFLAGS=-O2</CODE> $B$H$9$k$3$H$G%G%P%C%0MQ$N%3!<%I$rIU2C$7$J$$$h$&$K$G$-$^(B
$B$9!#$=$NB>(B
$B$N>l9g$O(B Makefile $B$r=q$-49$($k$3$H$K$J$k$G$7$g$&!#$b$A$m$s(B ELF $B$r;H$C(B
$B$F$$$k>l9g$O%W%m%0%i%`$O(B <CODE>-g</CODE> $B$NM-L5$K4X$o$i$:%@%$%J%_%C%/%j%s%/$H(B
$B$J$C$F$$$^$9$+$i(B <CODE>strip</CODE> $B$9$l$PNI$$$@$1$G$9!#(B
<P>
<P>
<H3>$BLr$KN)$D%=%U%H(B</H3>

<P>
<A NAME="index.64"></A>  
<P><B>gdb</B> $B$,:G$b9-$/;H$o$l$F$$$^$9!#%=!<%9$O(B
<A HREF="ftp://prep.ai.mit.edu/pub/gnu">GNU archive sites</A>
$B$+$i!"%P%$%J%j$O(B
<A HREF="ftp://tsx-11.mit.edu/pub/linux/packages/GCC">tsx-11</A>
$B$+$iF~<j$G$-$^$9!#(B <B>xxgdb</B> $B$O(B X $BMQ$N%U%m%s%H%(%s%I$G!J$7$?$,$C$F@h(B
$B$K(B gdb $B$r%$%s%9%H!<%k$7$F$*$/I,MW$,$"$j$^$9(B) $B!"%=!<%9$O(B
<A HREF="ftp://ftp.x.org/contrib/xxgdb-1.08.tar.gz">ftp://ftp.x.org/contrib/xxgdb-1.08.tar.gz</A>
$B$K$"$j$^$9!#(B
<P><B>UPS</B> $B%G%P%C%,$b(B Rick Sladkey $B$K$h$C$F0\?"$5$l$F$$$^$9!#$3$l$b(B X $B$G(B
$BF0:n$7$^$9$,!"(B xxgdb $B$H$O0c$C$FC1$J$k%F%-%9%H%Y!<%9%G%P%C%,$N%U%m%s%H(B
$B%(%s%I$G$O$"$j$^$;$s!#B?$/$NJXMx$J5!G=$,$"$j$^$9$N$G!"%G%P%C%0:n6H$r9T(B
$B$&?M$O%A%'%C%/$7$F$_$k$HNI$$$G$7$g$&!#(B Linux $BMQ$N%3%s%Q%$%k:Q$_%P%$%J(B
$B%j$H!"%*%j%8%J%k$N(B UPS $B$N%=!<%9%3!<%I$X$N%Q%C%A$H$,(B
<A HREF="ftp://sunsite.unc.edu/pub/Linux/devel/debuggers/">ftp://sunsite.unc.edu/pub/Linux/devel/debuggers/</A>
$B$K$"$j$^$9!#%*%j%8%J%k$N%=!<%9$O(B
<A HREF="ftp://ftp.x.org/contrib/ups-2.45.2.tar.Z">ftp://ftp.x.org/contrib/ups-2.45.2.tar.Z</A>.
$B$G$9!#(B
<P>$B%G%P%C%0$KJXMx$J%D!<%k$r$b$&0l$D>R2p$7$^$7$g$&!#(B <B>strace</B> $B$O%W%m%0(B
$B%i%`$,H/9T$9$k%7%9%F%`%3!<%k$rI=<($7$F$/$l$^$9!#$^$?%3%s%Q%$%k:Q$_$N(B
$B%P%$%J%j$+$i8F$S=P$5$l$k%Q%9L>$rI=<($7$F$/$l$k$N$G!"%=!<%9$,$J$/$F$b$I(B
$B$N%U%!%$%k$,;H$o$l$F$$$k$+$rCN$k$3$H$,$G$-$^$9$7!"%W%m%0%i%`$,0z$-5/$3(B
$B$96%9g>uBV!J(Brace condition$B!K$N%l%]!<%H$r$7$F$/$l$k$J$I!"$$$m$$$mJXMx$K(B
$B;H$&$3$H$,$G$-$^$9!#%W%m%0%i%`$,$I$N$h$&$KF0:n$7$F$$$k$+$N3X=,$K$bE,$7(B
$B$F$$$^$9!#(B strace $B$N:G?7%P!<%8%g%s!J8=:_(B 3.0.8$B!K$O(B
<A HREF="ftp://ftp.std.com/pub/jrs/">ftp://ftp.std.com/pub/jrs/</A>
$B$K$"$j$^$9!#(B
<P>$BLuCm!'8=:_$O(B 3.1.0.1 $B$N$h$&$G$9!#(B
<P>
<H3>$B%P%C%/%0%i%&%s%I!J%G!<%b%s!K%W%m%0%i%`(B</H3>

<P>$BE57?E*$J%G!<%b%s%W%m%0%i%`$G$O(B <CODE>fork()</CODE> $B$r<B9T$7!"?F%W%m%;%9$r=*(B
$BN;$7$^$9!#$9$k$H%G%P%C%0$N%;%C%7%g%s$b$"$C$H$$$&4V$K=*$o$C$F$7$^$$$^$9!#(B
<P>$B$3$l$r2sHr$9$k0lHV4JC1$JJ}K!$O(B <CODE>fork</CODE> $B$K%V%l!<%/%]%$%s%H$r%;%C%H$7!"(B
$B%W%m%0%i%`$,Dd;_$7$?$H$-$K(B 0 $B$rJV$9$h$&$K6/@)$9$k$3$H$G$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
(gdb) list 
1       #include &lt;stdio.h>
2
3       main()
4       {
5         if(fork()==0) printf("child\n");
6         else printf("parent\n");
7       }
(gdb) break fork
Breakpoint 1 at 0x80003b8
(gdb) run
Starting program: /home/dan/src/hello/./fork 
Breakpoint 1 at 0x400177c4

Breakpoint 1, 0x400177c4 in fork ()
(gdb) return 0
Make selected stack frame return now? (y or n) y
#0  0x80004a8 in main ()
    at fork.c:5
5         if(fork()==0) printf("child\n");
(gdb) next
Single stepping until exit from function fork, 
which has no line number information.
child
7       }
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>core $B%U%!%$%k(B</H3>

<P>Linux $B$O%V!<%H;~$N@_Dj$G$O(B core $B%U%!%$%k$r:n$i$J$$@_Dj$K$J$C$F$$$^(B
$B$9!#:n$k@_Dj$K$7$?$$>l9g$O!"%7%'%k$NAH$_9~$_%3%^%s%I$r;H$C$F:F@_Dj$7$F(B
$B$/$@$5$$!#(B C $B%7%'%k7O!J(Btcsh $B$J$I!K$G$O(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
% limit core unlimited
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$H$7$^$9!#(B Bourne $B%7%'%k7O!J(Bsh$B!"(Bbash$B!"(Bzsh$B!"(Bpdksh$B!K$G$O<!$N$h$&$K$7$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ ulimit -c unlimited
</PRE>
</CODE></BLOCKQUOTE>
<P>core $B%U%!%$%k$NL?L>K!$r$b$&$A$g$C$HJXMx$K$7$?$$>l9g!JNc$($P$=$l<+?HNI$/(B
$BMn$A$k$h$&$J%G%P%C%,$GB>$N%W%m%0%i%`$,EG$$$?(B core $B%U%!%$%k$r%G%P%C%0$9(B
$B$k$H$-$J$I!K$O!"%+!<%M%k$r>/!9JQ99$9$l$P2DG=$G$9!#(B 
<CODE>fs/binfmt_aout.c</CODE> $B$H(B <CODE>fs/binfmt_elf.c</CODE> $B$N%3!<%I$NCf$K!"(B
$B0J2<$N$h$&$JItJ,$,$"$k$O$:$G$9!J?7$7$$%+!<%M%k$N>l9g$G$9!#8E$$%+!<%M%k(B
$B$G$O>/!9(B grep $B$7$F$^$o$kI,MW$,$"$k$+$b$7$l$^$;$s!K!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
        memcpy(corefile,"core.",5);
#if 0
        memcpy(corefile+5,current->comm,sizeof(current->comm));
#else
        corefile[4] = '\0';
#endif
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$3$N(B <CODE>0</CODE> $B$r(B <CODE>1</CODE> $B$KJQ$($F(B <CODE>memcpy(corefile+5..</CODE> $B$N9T$NJ}$rM-8z(B
$B$K$7$F$/$@$5$$!#(B
<P>
<H2><A NAME="ss5.3">5.3 $B%W%m%U%!%$%j%s%0(B</A>
</H2>

<P>$B%W%m%U%!%$%j%s%0$H$O%W%m%0%i%`$N$I$NItJ,$,:G$bB?$/8F$P$l!":G$bD9$$;~4V(B
$B$r?)$C$F$$$k$N$+$rD4$Y$k$3$H$G$9!#L5BL$J;~4V$r;H$C$F$$$k%3!<%I$r:GE,2=(B
$B$9$k$N$KNI$$J}K!$G$9!#%W%m%U%!%$%k$r9T$&$K$O%?%$%_%s%0>pJs$,I,MW$J%*%V(B
$B%8%'%/%H%U%!%$%k$r(B <CODE>-p</CODE> $B$r$D$1$F%3%s%Q%$%k$7$^$9!#=PNO$5$l$?%U%!%$(B
$B%k$+$i>pJs$rF@$k$K$O(B <CODE>gprof</CODE> $B$,I,MW$K$J$j$^$9!J(Bbinutils $B$N%Q%C%1!<(B
$B%8$KF~$C$F$$$^$9!K!#>\:Y$O(B <CODE>gprof</CODE> $B$N(B man $B%Z!<%8$r8+$F$/$@$5$$!#(B
<P>
<P>
<HR>
<H2><A NAME="s6">6.</A> <A HREF="#toc6">$B%j%s%/(B</A></H2>

<P>$B$"$i$+$8$a$*CG$j$7$F$*$-$^$9$,!"$3$N>O$N9=@.$OJ#;($K$J$C$F$$$^$9!#(B
$B8_49@-$N$J$$%P%$%J%j$N7A<0$,Fs$D$"$k$3$H!"(B static $B$J%j%s%/$H6&M-%i%$%V(B
$B%i%j$r;H$&>l9g$,$"$k$3$H!"!V%j%s%/!W$H$$$&8@MU$,!V%3%s%Q%$%k$N8e$K9T$&(B
$B:n6H!W$H!V%3%s%Q%$%k$5$l$?%W%m%0%i%`$,8F$S=P$5$l$?$H$-$K9T$o$l$k$3$H!W(B
$B$H$$$&Fs$D$N0UL#$GMQ$$$i$l$k$3$H!J!V%m!<%I(B(load)$B!W$H$$$&8@MU$b;H$o$l$^(B
$B$9!#$?$@$75U$N0UL#$G(B) $B$J$I$,860x$G$9!#$G$b:#$"$J$?$,FI$s$@$P$+$j$NJ8$h(B
$B$j$4$A$c$4$A$c$7$F$$$kItJ,$O>/$J$$$O$:$G$9$+$i!"$=$l$[$I?4G[$7$J$$$G$/(B
$B$@$5$$!#(B
<P>$BB?>/$J$j$H$b:.Mp$r>/$J$/$9$k$?$a$K!"<B9T;~$K9T$o$l$k$3$H$O!VF0E*%m!<%I!W(B
$B$H8F$V$3$H$K$7$F!"$=$NFbMF$O<!$N>O$K=q$-$^$9!#F1$8FbMF$r!VF0E*%j%s%/!W(B
$B$H=q$$$F$$$kJ8=q$b$"$j$^$9$,!"$3$NJ8=q$G$O!VF0E*%j%s%/!W$OMQ$$$^(B
$B$;$s!#MW$9$k$K!"$3$N>O$G$O%3%s%Q%$%k$N:G=*CJ3,$H$7$F9T$&%j%s%/$K(B
$B$D$$$F$N$_$r07$$$^$9!#(B
<P>
<H2><A NAME="ss6.1">6.1 $B6&M-%i%$%V%i%jBP(B static $B$J%i%$%V%i%j(B</A>
</H2>

<P>$B%W%m%0%i%`:n@.$N:G=*CJ3,$O!V%j%s%/!W$H8F$P$l$^$9!#A4$F$NItIJ$r7k9g(B
$B$7$F!"B-$j$J$$$b$N$,$J$$$+$I$&$+D4$Y$k:n6H$G$9!#!V%U%!%$%k$r3+$/!W$H$$$C(B
$B$?$h$&$JN`$N:n6H$O!"B?$/$N%W%m%0%i%`$G9T$o$l$^$9!#$7$?$,$C$F$3$N$h(B
$B$&$J5!G=$r;}$D!VItIJ!W$O%i%$%V%i%j$N7A$GDs6!$5$l$F$$$^$9!#IaDL$N(B Linux 
$B%7%9%F%`$G$O!"%i%$%V%i%j$O(B <CODE>/lib</CODE> $B$H(B <CODE>/usr/lib</CODE> $B$K$"$j$^(B
$B$9!JB>$N>l=j$K$"$k$3$H$b$^$^$"$j$^$9$,!K!#(B
<P>
<A NAME="index.65"></A>  
<A NAME="index.66"></A>  
<P>static $B$J%i%$%V%i%j$rMQ$$$k>l9g$O!"%j%s%+$O%W%m%0%i%`$,I,MW$H$9$kItIJ(B
$B$rC5$7!"=PNO$9$k<B9T%U%!%$%k$K$=$NItIJ$r%3%T!<$7$^$9!#6&M-%i%$%V%i%j$N(B
$B>l9g$O0c$C$?:n6H$,9T$o$l$^$9!#%j%s%+$O=PNO%U%!%$%k$K!V$3$N%W%m%0%i%`$,(B
$B<B9T$5$l$k$H$-$K$O!"$^$:$3$l$3$l$N%i%$%V%i%j$,%m!<%I$5$l$F$$$J$$$H$$$1(B
$B$^$;$s$h!W$H$$$C$?%a%C%;!<%8$rKd$a9~$_$^$9!#$7$?$,$C$FL@$i$+$K6&M-%i%$(B
$B%V%i%j$rMQ$$$kJ}$,<B9T%U%!%$%k$N%5%$%:$O>.$5$/$J$j$^$9!#$^$?>CHq$9$k%a(B
$B%b%j$d%G%#%9%/MFNL$b>.$5$/$J$j$^$9!#(B Linux $B$K$*$1$k$N%G%U%)%k%H$N?6$k(B
$BIq$$$G$O!"6&M-%i%$%V%i%j$,$"$l$P$=$A$i$rMQ$$!"$J$1$l$P(B static $B$J%j%s%/(B
$B$r9T$$$^$9!#<B9T%U%!%$%k$r6&M-%i%$%V%i%j7A<0$K$7$?$$$N$K(B static $B$K$J$C(B
$B$F$7$^$C$?>l9g$O!"@5$7$$0LCV$K6&M-%i%$%V%i%j$N%U%!%$%k$,$"$C$F!J(Ba.out 
$B$G$O(B <CODE>*.sa</CODE>$B!"(B ELF $B$G$O(B <CODE>*.so</CODE> $B$G$9!K!"$=$l$i$,FI$_9~$_2DG=$K$J$C(B
$B$F$$$k$+$I$&$+$r%A%'%C%/$7$F$/$@$5$$!#(B
<P>Linux $B$G$O(B static $B$J%i%$%V%i%j$O(B <CODE>libname.a</CODE> $B$H$$$C$?$h$&$JL>A0$r;}$C(B
$B$F$*$j!"6&M-%i%$%V%i%j$O(B <CODE>libname.so.x.y.z</CODE> $B$H$J$C$F$$$^$9!#(B 
<CODE>x.y.z</CODE> $B$O%P!<%8%g%sHV9f$r<($7$^$9!#6&M-%i%$%V%i%j$K$O%j%s%/$,D%$i(B
$B$l$k$3$H$,B?$/!"$3$l$O=EMW$J5!G=$r;}$C$F$$$^$9!#$^$?(B a.out $B$rMxMQ$9$k(B
$B@_Dj$G$O(B <CODE>.sa</CODE> $B$H$$$&3HD%;R$r;}$C$?%U%!%$%k$b$"$k$O$:$G$9!#I8=`%i%$(B
$B%V%i%j$O6&M-7A<0$N$b$N$H(B static $B$J7A<0$NN>J}$,4^$^$l$F$$$^$9!#(B
<P>$B$"$k%W%m%0%i%`$,$I$N$h$&$J6&M-%i%$%V%i%j$rI,MW$H$9$k$+$rD4$Y$k$K$O(B 
<CODE>ldd</CODE> $B%3%^%s%I!J(BList Dynamic Dependencies$B!K$rMQ$$$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ ldd /usr/bin/lynx
        libncurses.so.1 => /usr/lib/libncurses.so.1.9.6
        libc.so.5 => /lib/libc.so.5.2.18
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$3$l$O(B WWW $B%V%i%&%6$N%W%m%0%i%`(B lynx $B$,(B <CODE>libc.so.5</CODE> $B!J(BC $B%i%$%V%i%j!K(B
$B$H(B <CODE>libncurses.so.1</CODE> $B!JC<Kv@)8f%i%$%V%i%j(B) $B$rMQ$$$F$$$k$3$H$r<($7$F(B
$B$$$^$9!#$b$7MxMQ$9$k6&M-%i%$%V%i%j$,$J$1$l$P!"(B <CODE>ldd</CODE> $B$NI=<($O(B 
$B!V(B<CODE>statically linked</CODE>$B!O$+!V(B<CODE>statically linked (ELF)</CODE>$B!W$H$J$j$^$9!#(B
<P>
<H2><A NAME="ss6.2">6.2 $B%i%$%V%i%j$K?R$M$k!J(B<CODE>sin()</CODE> $B$O$I$3$K$$$k$N!)!K(B</A>
</H2>

<P>
<A NAME="index.67"></A>  
<A NAME="index.68"></A>  
<A NAME="index.69"></A>  
<P><CODE>nm</CODE> <EM>libraryname</EM> $B$H$9$k$H(B <EM>libraryname</EM> $B$,;2>H$7$F$$$k(B
$B%7%s%\%k$N%j%9%H$,I=<($5$l$^$9!#(B static $B$J%i%$%V%i%j$K$b6&M-%i%$%V%i%j(B
$B$K$bM-8z$G$9!#Nc$($P(B <CODE>tcgetattr()</CODE> $B$,Dj5A$5$l$F$$$k%i%$%V%i%j$,CN$j(B
$B$?$$>l9g$H$7$^$7$g$&!#$3$N>l9g$O$^$:0J2<$r<B9T$7$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ nm libncurses.so.1 |grep tcget
         U tcgetattr
</PRE>
</CODE></BLOCKQUOTE>
<P><CODE>U</CODE> $B$O!VDj5A$5$l$F$$$J$$!J(Bundefined$B!K!W$3$H$r0UL#$7$^$9!#$7$?$,$C$F(B 
ncurses $B%i%$%V%i%j$G$O(B tcgetattr $B$rMQ$$$F$$$^$9$,!"Dj5A$O$7$F$$$J$$$3(B
$B$H$K$3$H$K$J$j$^$9!#B3$$$F0J2<$N$h$&$K<B9T$7$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ nm libc.so.5 | grep tcget
00010fe8 T __tcgetattr
00010fe8 W tcgetattr
00068718 T tcgetpgrp
</PRE>
</CODE></BLOCKQUOTE>
<P><CODE>W</CODE> $B$O!V<e$$Dj5A!J(Bweak) $B!W$G$"$k$3$H$r<($7$^$9!#$9$J$o$A$3$N%7%s%\(B
$B%k$ODj5A$5$l$F$O$$$^$9$,!"B>$N%i%$%V%i%j$NDj5A$K$h$C$F>e=q$-$5$l$k$3$H(B
$B$r<($7$F$$$k$N$G$9!#DL>o$NDj5A$O(B <CODE>T</CODE> $B$G<($5$l$^$9!J(B<CODE>tcgetpgrp</CODE> 
$B$,$=$&$G$9!K!#(B
<P>
<A NAME="index.70"></A>  
<P>$B$H$3$m$G$3$N@a$N%?%$%H%k$KBP$9$k2rEz$O(B <CODE>libm(so|a)</CODE> $B$G$9!#(B
<CODE>&lt;math.h&gt;</CODE> $B$GDj5A$5$l$F$$$k4X?t$NK\BN$OA4$F(B math $B%i%$%V%i(B
$B%j$K$"$j$^$9!#$7$?$,$C$F$3$N$h$&$J4X?t$rMQ$$$k$K$O!"%j%s%/$N:]$K(B 
<CODE>-lm</CODE> $B$,I,MW$K$J$k$o$1$G$9!#(B
<P>
<P>
<H2><A NAME="ss6.3">6.3 $B%U%!%$%k$rC5$9(B</A>
</H2>

<P><CODE>ld: Output file requires shared library `libfoo.so.1`</CODE>
<P>ld $B$J$I$N%W%m%0%i%`$K$*$1$k%U%!%$%k8!:w$NJ}K!$O%P!<%8%g%s$K$h$C$F0[$J(B
$B$j$^$9!#$7$+$7A4$F$N%P!<%8%g%s$K$*$$$F!"(B<CODE>/usr/lib</CODE> $B$O8!:wBP>]$K(B
$BF~$C$F$$$^$9!#$b$7$3$30J30$N%G%#%l%/%H%j$r%i%$%V%i%j8!:w$NBP>]$K$7$?$1(B
$B$l$P!"(B gcc $B$d(B ld $B$J$I$N(B <CODE>-L</CODE> $B%*%W%7%g%s$rMQ$$$F$/$@$5$$!#(B
<P>$B$3$l$G8+$D$+$i$J$1$l$P!"@5$7$$%U%!%$%k$,$=$N%G%#%l%/%H%j$K$"$k$+$r3NG'(B
$B$7$F$/$@$5$$!#(B a.out $B$G$O(B <CODE>-lfoo</CODE> $B$r;XDj$7$F%j%s%/$9$k$H!"(B ld $B$O$^(B
$B$:(B <CODE>libfoo.sa</CODE> $B!J6&M-%i%$%V%i%j!K$rC5$7!"<:GT$9$k$H(B <CODE>libfoo.a</CODE> 
$B!J(Bstatic $B%i%$%V%i%j!K$r8!:w$7$^$9!#(B ELF $B$N>l9g$O(B <CODE>libfoo.so</CODE>$B!"(B 
<CODE>libfoo.a</CODE> $B$N=g$KC5$7$^$9!#(B <CODE>libfoo.so</CODE> $B$ODL>o(B <CODE>libfoo.so.x</CODE> 
$B$X$N%7%s%\%j%C%/%j%s%/$H$J$C$F$$$^$9!#(B
<P>
<P>
<H2><A NAME="ss6.4">6.4 $B<+J,$N%i%$%V%i%j$r:n$k(B</A>
</H2>

<P>
<H3>$B%P!<%8%g%s4IM}(B</H3>

<P>
<P>$B%W%m%0%i%`$HF1MM!"%i%$%V%i%j$K$b%P%0$O$D$-$b$N$G!";~4V$H$H$b$K=$@5(B
$B$5$l$F$$$-$^$9!#$^$??7$?$J5!G=$,DI2C$5$l$?$j!"4X?t$N;EMM$,JQ99$5$l$?$j(B
$B8E$$$b$N$,:o=|$5$l$?$j$b$7$^$9!#$3$l$O%i%$%V%i%j$r;HMQ$9$k%W%m%0%i%`$K(B
$B$OLdBj$G$9!#$b$78E$$;EMM$K4p$E$$$F$$$k>l9g$O$I$&$9$l$PNI$$$N$G$7$g$&$+!)(B
<P>$B$7$?$,$C$F%i%$%V%i%j$K$O%P!<%8%g%s4IM}$rMQ$$$^$9!#%i%$%V%i%j$KBP$7$F9T$C(B
$B$?JQ99$r!V>.$5$$!J(Bminor) $B!W$b$N$H!VBg$-$$!J(Bmajor$B!K!W$b$N$KJ,$1$^$9!#(B 
minor $B$J$JJQ99$G$O!"$=$N%i%$%V%i%j$rMQ$$$k%W%m%0%i%`$,$A$c$s$HF0$/$3$H$rJ]>Z(B
$B$9$k$3$H$K$7$^$9!#%i%$%V%i%j$N%P!<%8%g%s$O%U%!%$%kL>$G$o$+$k$h$&$K$7$^(B
$B$9!#!JK\Ev$N;v$r8@$&$H$3$l$O(B ELF $B$K$OEv$F$O$^$j$^$;$s!#M}M3$O8e=R!#!K(B
<CODE>libfoo.so.1.2</CODE> $B$O(B major $B%P!<%8%g%s$,(B 1 $B$G!"(B minor $B%P!<%8%g%s$,(B 2 
$B$G$"$k$3$H$r<($7$^$9!#(B minor $B%P!<%8%g%s$O>/!90c$C$?9=B$$r;}$D$3$H$b$"(B
$B$j$^$9!#(B libc $B$G$O!V%Q%C%A%l%Y%k!W$r(B minor $B%P!<%8%g%s$KDI2C$7!"%i%$%V(B
$B%i%j$NL>A0$r(B <CODE>libc.so.5.2.18</CODE> $B$N$h$&$K$7$F$$$^$9!#(B ASCII $BC<Kv$GI=<((B
$B2DG=$JJ8;z$J$i!"1Q;z$G$b(B _ $B$G$b$D$1$F$+$^$$$^$;$s!#(B
<P>ELF $B$H(B a.out $B$NBg$-$J0c$$$N0l$D$O!"6&M-%i%$%V%i%j$N:n$jJ}$K$"$j$^$9!#(B
$B$^$:4JC1$J(B ELF $B$N$[$&$+$i8+$k$3$H$K$7$^$7$g$&!#(B
<P>
<A NAME="index.71"></A>  
<H3>ELF $B$C$F7k6I$J$K!)(B</H3>

<P>ELF $B!J(BExecutable and Linking Format$B!K$O$b$H$b$H(B USL$B!J(BUNIX System
Laboratories$B!K$G3+H/$5$l$?%P%$%J%j7A<0$G!"8=:_$G$O(B Solaris $B$H(B System V
Release 4 $B$GMQ$$$i$l$F$$$^$9!#(B ELF $B$O0JA0(B Linux $B$GMQ$$$i$l$F$$$?(B a.out 
$B7A<0$h$j$b=@Fp@-$KIY$s$G$$$?$N$G!"(B GCC $B$H(B C $B%i%$%V%i%j$N3+H/<T$?$A$O:r(B
$BG/$K(B ELF $B$r(B Linux $B$NI8=`%P%$%J%j7A<0$H$7$F$b:NMQ$9$k$3$H$K7h$a$^$7$?!#(B
<P>
<H3>$B$@$+$i$J$s$@$C$F!)(B</H3>

<P>$B$3$N@a$O(B `/news-archives/comp.sys.sun.misc' $B$K$"$kJ8=q$+$iH4?h$7$?(B
$B$b$N$G$9!#(B
<P>
<BLOCKQUOTE>
ELF$B!J(BExecutable Linking Format$B!K$O(B SVR4 $B$KF3F~$5$l$?!V?JJb$7$?:G?7$N!W(B
$B%*%V%8%'%/%H%U%!%$%k7A<0$G$9!#(B ELF $B$O%f!<%6$K$h$k3HD%$,2DG=$G$"$j!"(B 
straight COFF $B$h$j$b$:$C$H6/NO$G$9!#(B ELF $B$G$O!"%*%V%8%'%/%H(B
$B%U%!%$%k$rG$0U$ND9$5$r;}$C$?%;%/%7%g%s$+$i$J$k$b$N$7$^$9!J7h$^$C$?%5(B
$B%$%:$NMWAG$+$i$J$kG[Ns$H$O$_$J$5$l$^$;$s!K!#$3$l$i$N%;%/%7%g%s$O!J(BCOFF 
$B$H$O0[$J$j(B) 
$B7h$^$C$?>l=j$KCV$/I,MW$,$J$/!"$^$?=gHV$bG$0U$G$9!#%f!<%6$,%*%V%8%'%/%H(B
$B%U%!%$%k$K?7$?$J%G!<%?$rF3F~$7$?$1$l$P!"?7$7$$%;%/%7%g%s$rDI2C$9$k$@$1(B
$B$GNI$$$N$G$9!#(B
ELF $B$K$O$3$l$^$G$N$b$N$h$j$:$C$H6/NO$J%G%P%C%0;Y1gMQ$N7A<0$bF3F~$5$l$F(B
$B$$$^$9!#$3$l$O(B DWARF$B!J(BDebugging With Attibute Record Format$B!K$H8F$P$l(B
$B$F$$$^$9!#8=:_$N$H$3$m(B linux $B$G$O$3$N5!G=$O40A4$K$O%5%]!<%H$5$l$F$$$^(B
$B$;$s!J$7$+$7:n6H$OCe!9$H7QB3Cf$G$9!K!#(B DWARF DIE$B!J(BDebugging
Information Entries$B!K$N%j%s%/%j%9%H$O(B ELF $B%P%$%J%j$NCf$N(B .debug $B$H$$$&(B
$B%;%/%7%g%s$K<}$a$i$l$F$$$^$9!#>.$5$/!"%5%$%:$b8GDj$5$l$?%G%P%C%0>pJs$H(B
$B0[$J$j!"(BDWARF DIE $B$O$=$l$>$lG$0U$ND9$5$NJ#;($JB0@-$r;}$A!"%9%3!<%W$K0M(B
$BB8$7$?%D%j!<7A<0$N%W%m%0%i%`%G!<%?$H$7$F5-=R$5$l$F$$$^$9!#(B DIE $B$O(B COFF 
$B$N(B .debug $B%;%/%7%g%s$G$OIT2DG=$G$"$C$?$h$&$J!"5pBg$J>pJs!J(BC++ $B$N7Q>54X(B
$B78%j%9%H$J$I!K$rJ]M-$9$k$3$H$,$G$-$k$N$G$9!#(B
</BLOCKQUOTE>
<P>
<BLOCKQUOTE>
ELF $B%U%!%$%k$O(B SVR4 $B!J(BSolaris 2.0 ?$B!K$N(B ELF $B%"%/%;%9%i%$%V%i%j$rDL$8$F(B
$B%"%/%;%9$5$l$^$9!#$3$N%i%$%V%i%j$O(B ELF $B$G<h$j07$$$,Lq2p$K$J$C$F$$$kIt(B
$BJ,$KBP$7$F!"4JC1$G9bB.$J%$%s%?!<%U%'!<%9$rDs6!$7$F$$$^$9!#$3$N%i%$%V%i(B
$B%j$rMQ$$$l$P!"(B ELF $B%U%!%$%k$N<BBN$=$N$b$N$r8+$J$/$F$b:Q$_$^$9!#(B Elf $B%U%!(B
$B%$%k$H$7$F%"%/%;%9$5$l$?(B UNIX $B$N%U%!%$%k$O!":G=i$K(B elf_open() $B%3!<%k$r(B
$B<B9T$9$l$P!"8e$O$=$NCf?H$K(B elf_foobar() $B%3!<%k$G%"%/%;%9$9$k$3$H$,$G$-(B
$B$^$9!#:#$^$G(B COFF $B%f!<%6$,6/@)$5$l$F$-$?$h$&$K!"<B:]$N%G%#%9%/>e$N0LCV(B
$B$r5a$a$F$5$^$h$&I,MW$O$b$&L5$$$N$G$9!#(B
</BLOCKQUOTE>
<P>ELF $B$NM-Mx!?ITMx$JE@!"$*$h$S(B a.out $B$N%7%9%F%`$r(B ELF $B%7%9%F%`$K%"%C%W%0(B
$B%l!<%I$9$k:]$KI,MW$JFbMF$O(B ELF-HOWTO $B$K5-=R$5$l$F$$$^$9!#$3$3$K%+%C%H(B
&amp; $B%Z!<%9%H$9$k$D$b$j$O$"$j$^$;$s!#(B ELF-HOWTO $B$O!"$3$NJ8=q$HF1$8$H(B
$B$3$m$K$"$k$O$:$G$9!#(B
<P>
<H3>ELF $B6&M-%i%$%V%i%j(B</H3>

<P><CODE>libfoo.so</CODE> $B$N$h$&$J6&M-%i%$%V%i%j$r:n@.$9$k$?$a$N4pK\E*$J<j=g(B
$B$O0J2<$N$h$&$K$J$j$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ gcc -fPIC -c *.c
$ gcc -shared -Wl,-soname,libfoo.so.1 -o libfoo.so.1.0 *.o
$ ln -s libfoo.so.1.0 libfoo.so.1
$ ln -s libfoo.so.1 libfoo.so
$ LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH ; export LD_LIBRARY_PATH
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$3$l$K$h$C$F(B <CODE>libfoo.so.1.0</CODE> $B$H$$$&L>A0$N6&M-%i%$%V%i%j$,$G$-!"(Bld 
$B$N$?$a$N%j%s%/!J(B<CODE>libfoo.so</CODE>$B!K$H%@%$%J%_%C%/%m!<%@$N$?$a$N%j%s%/(B
$B!J(B<CODE>libfoo.so.1</CODE>$B!K$,:n@.$5$l$^$9!#%F%9%H$9$k$K$O%+%l%s%H%G%#%l%/%H%j(B
$B$r(B <CODE>LD_LIBRARY_PATH</CODE> $B$KDI2C$7$^$9!#(B
<P>
<A NAME="index.72"></A>  
$B%i%$%V%i%j$,$A$c$s$HF0$$$?$i!"$3$l$r0\F0$9$kI,MW$,$"$j$^$9!#(B 
<CODE>/usr/local/lib</CODE> $B$"$?$j$,E,Ev$G$7$g$&!#>e$G:n$C$?$h$&$J%j%s%/$b(B
$B$=$l$>$l:n$jD>$9I,MW$,$"$j$^$9!#(B <CODE>libfoo.so.1</CODE> $B$H(B 
<CODE>libfoo.so.1.0</CODE> $B$N%j%s%/$O(B <CODE>ldconfig</CODE> $B$K$h$C$F>o$K:G?7$N$b$N$K99(B
$B?7$5$l$^$9!#(B
$BDL>o(B <CODE>ldconfig</CODE> $B$O%V!<%H%W%m%;%9$N0lIt$G<B9T$5$l$F$$$k$O$:$G$9!#(B 
<CODE>libfoo.so</CODE> $B$N%j%s%/$O%^%K%e%"%k$G99?7$9$kI,MW$,$"$j$^$9!#Q\D"LL$J(B
$BJ}$O%i%$%V%i%j$NA4$F!J%X%C%@%U%!%$%k$J$I$b4^$`!K$rF1;~$K%"%C%W%G!<%H$7(B
$B$?$/$J$k$G$7$g$&$,!"$=$N>l9g$O(B <CODE>libfoo.so -> libfoo.so.1</CODE> $B$H$$(B
$B$&%j%s%/$rD%$C$F$*$-!"(B ldconfig $B$,N><T$rF1;~$K:Y?4$K$7$F$/$l$k$h$&$K$7(B
$B$F$*$/$N$,:G$b4JC1$G$7$g$&!#(B<EM>$B$=$&$7$J$$(B</EM>$B?M$O!"8e$K(B<EM>$B$"$i$f$k<oN`(B
$B$NIT2D;W5D$J8=>](B</EM>$B$K8+Iq$o$l$k$3$H$K$J$k$G$7$g$&!#8e$G!VJ9$$$F$J$$$h!W$J$s(B
$B$F8@$o$J$$$h$&$K!*(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
$ su
# cp libfoo.so.1.0 /usr/local/lib
# /sbin/ldconfig
# ( cd /usr/local/lib ; ln -s libfoo.so.1 libfoo.so )
</PRE>
</CODE></BLOCKQUOTE>
<P>
<H3>$B%P!<%8%g%s$NHV9fIU$1$H(B soname$B!"%7%s%\%j%C%/%j%s%/(B</H3>

<P>
<A NAME="index.73"></A>  
<A NAME="index.74"></A>  
<P>$B3F!9$N%i%$%V%i%j$O(B <EM>soname</EM> $B$H$$$&>pJs$r;}$C$F$$$^$9!#%j%s%+$,%i%$(B
$B%V%i%j$r8!:w$9$k:]$K$3$N(B soname $B$r8+$D$1$k$H!"<B9T%P%$%J%j$K$O%i%$%V%i(B
$B%j$N%U%!%$%kL>$G$O$J$/(B soname $B$,Kd$a9~$^$l$^$9!#$9$k$H%W%m%0%i%`$N<B9T(B
$B;~$K!"F0E*%m!<%@$O%j%s%/;~$KMQ$$$i$l$?%U%!%$%k$G$O$J$/(B 
soname $B$G;XDj$5$l$k%U%!%$%k$rC5:w$7$^$9!#Nc$($P(B <CODE>libfoo.so</CODE> $B$H$$$&(B
$B%i%$%V%i%j$,(B <CODE>libbar.so</CODE> $B$H$$$&(B soname $B$r;}$D$3$H$b2DG=$G!"$9$k$H(B 
<CODE>libfoo.so</CODE> $B$K%j%s%/$5$l$?%W%m%0%i%`$O<B9T;~$K(B <CODE>libbar.so</CODE> $B$NJ}(B
$B$r8!:w$7$^$9!#(B
<P>$B0UL#$NL5$$5!G=$@$H;W$$$^$9$+!)<B$OF1$8%i%$%V%i%j$NJ#?t%P!<%8%g%s$r%7%9(B
$B%F%`$K6&B8$5$;$k$?$a$N80$H$J$k5!G=$J$N$G$9!#(B Linux $B$K$*$1$k%i%$%V%i%j(B
$BL?L>K!$N%G%U%!%/%H!&%9%?%s%@!<%I$O(B <CODE>libfoo.so.1.2</CODE> $B$H$$$C$?$h$&$J$b(B
$B$N$G!"$3$l$KBP$9$k(B soname $B$O(B <CODE>libfoo.so.1</CODE> $B$H$J$j$^$9!#$3$N%i%$%V%i(B
$B%j$,I8=`$N%i%$%V%i%j%G%#%l%/%H%j!JNc$($P(B <CODE>/usr/lib</CODE>$B!K$KCV$+$l$k(B
$B$H!"(B <CODE>ldconfig</CODE> $B$O(B <CODE>libfoo.so.1 -> libfoo.so.1.2</CODE> $B$H$$$&%7%s(B
$B%\%j%C%/%j%s%/$r:n$j!"<B9T;~$KE,Ev$J%U%!%$%k$,MxMQ$5$l$k$h$&$K$7$^$9!#(B
$B$^$?(B <CODE>libfoo.so -> libfoo.so.1</CODE> $B$H$$$&%j%s%/$bI,MW$G!"$3$l$K$h$j(B ld 
$B$O%j%s%/;~$KMQ$$$k$Y$-@5$7$$(B soname $B$r8+$D$1$k$3$H$,$G$-$k$h$&$K$J$j$^(B
$B$9!#(B
<P>$B%i%$%V%i%j$N%P%0$r=$@5$7$?$j?75!G=$rDI2C!J:#$^$G$N%W%m%0%i%`$K1F6A$rM?(B
$B$($J$$HO0O$G!K$7$?$j$7$?$H$-$K$O!"(B soname $B$O$=$N$^$^$K$7$F%U%!%$%kL>$r(B
$BJQ99$9$k$N$G$9!#%i%$%V%i%j$N>e0L8_49@-$,$J$/$J$C$?$H$-$K$O(B soname $B$NHV(B
$B9f$r0l$DA}$d$7$^$9!#$3$N>l9g?7$7$$%P!<%8%g%s$N%i%$%V%i%j$O%U%!%$%kL>$,(B 
<CODE>libfoo.so.2.0</CODE>$B!"(B soname $B$,(B <CODE>libfoo.so.2</CODE> $B$H$J$j$^$9!#(B 
<CODE>libfoo.so</CODE> $B$N%j%s%/$b?7$7$$%P!<%8%g%s$XD%$j$J$*$;$P%i%$%V%i%j$N99(B
$B?7$KH<$&<jB3$-$,$9$Y$F40N;$7$?$3$H$K$J$j$^$9!#(B
<P>$B@dBP$K$3$N5,B'$G%i%$%V%i%j$NL?L>$r9T$o$J$1$l$P$J$i$J$$$o$1$G$O$"$j$^$;(B
$B$s$,!"NI$$47=,$G$9$N$GMxMQ$9$kJ}$,NI$$$H;W$$$^$9!#(B ELF $B$G$O%i%$%V%i%j(B
$B$NL?L>$K4X$7$F$b=@Fp@-$,$"$j$^$9$+$i!"?M$,$&$s$6$j$9$k$[$IJ#;($JL?L>%k!<(B
$B%k$r;H$&$3$H$@$C$F$G$-$^$9$,!"<B:]$K$=$&$9$k$+$I$&$+$O$^$?JL$NOC$G$9$h$M!#(B
<P>$B<B9TJ}K!$r$^$H$a$^$9!#EAE}$K=>$$(B major $B$J%"%C%W%0%l!<%I$O8_49@-$,<:$o(B
$B$l$?$H$-!"(B minor $B$J%"%C%W%0%l!<%I$O$=$&$G$J$$$H$-$H$$$&$3$H$K$7$^$7$g(B
$B$&!#$3$N>l9g$O0J2<$N$h$&$K%j%s%/$7$F$/$@$5$$!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
gcc -shared -Wl,-soname,libfoo.so.major -o libfoo.so.major.minor
</PRE>
</CODE></BLOCKQUOTE>
<P>$B$3$l$G$&$^$/F0$/$O$:$G$9!#(B
<P>
<H3>a.out$B!"Fr8E$-7A<0$h(B</H3>

<P>$B%i%$%V%i%j$,(B ELF $B$X0\9T$7$?<g$JM}M3$O!"6&M-%i%$%V%i%j$r4JC1$K:n$l(B
$B$k$H$$$&E@$K$"$j$^$7$?!#$7$+$7(B a.out $B$G$b:n@.$,IT2DG=$J$o$1$G$O$"$j$^$;$s!#(B
<A HREF="ftp://tsx-11.mit.edu/pub/linux/packages/GCC/src/tools-2.17.tar.gz">ftp://tsx-11.mit.edu/pub/linux/packages/GCC/src/tools-2.17.tar.gz</A>
$B$rF~<j$7$F!"%Q%C%1!<%8$NCf$K$"$k(B 20 $B%Z!<%8$N%I%-%e%a%s%H$rFI$_$^$7$g$&!#(B
$B;d$O0lJ}$NE^GI$KJP$k$D$b$j$O$"$j$^$;$s$,!"$G$b:#$^$G=q$$$F$-$?J8>O$G!"(B
$B;d$,$b$&(B a.out $B$r;H$&$D$b$j$,L5$$$3$H$OL@$i$+$G$7$g$&$+$M(B <CODE>:-)</CODE>
<P>
<H3>ZMAGIC $B$H(B QMAGIC</H3>

<P>
<A NAME="index.75"></A>  
<A NAME="index.76"></A>  
<P>$B8E$$(B a.out $B$N<B9T%P%$%J%j$O(B ZMAGIC $B$H8F$P$l$^$9!#(B QMAGIC $B$O(B ZMAGIC $B$H(B
$B;w$F$$$^$9$,!":G=i$N%Z!<%8$r%^%C%W$7$J$$E@$,0c$C$F$$$^$9!#(B
$B$7$?$,$C$F(B 0$B!A(B4096 $BHVCO$,$I$3$K$b%^%C%T%s%0$5$l$F$J$$$?$a!"(BNULL $B%]%$%s%?(B
$B$+$iJQ?t$r;2>H$9$k$H$$$&4V0c$$$r8+$D$1$d$9$/$J$C$F$$$^$9!J(B0 $BHVCO$r%"%/(B
$B%;%9$9$k$H!"%H%i%C%W$5$l$k$o$1$G$9!K!#(B
$B$^$?JL$NMxE@$H$7$F%P%$%J%j$,>/!9!J(B1K $B$/$i$$!K>.$5$/$J$j$^$9!#(B
<P>
<P>$BHs>o$K8E$$%j%s%+$G$O(B ZMAGIC $B$N$_$K!"$d$d8E$$$b$N$ON>J}$K!":G6a$N$b$N$O(B 
QMAGIC $B$N$_$KBP1~$7$F$$$^$9!#%+!<%M%k$ON>J}$N%U%)!<%^%C%H$r<B9T$5$;$k(B
$B$3$H$,$G$-$^$9$N$G!"<B:]$K$O5$$K$9$kI,MW$O$"$j$^$;$s!#(B
<P>$B%W%m%0%i%`$,(B QMAGIC $B$+$I$&$+$O!"(B`file' $B%3%^%s%I$r<B9T$9$k$3$H$K$h$C$F(B
$BI=<($5$l$^$9!#(B
<P>
<H3>$B%U%!%$%k$NG[CV(B</H3>

<P>a.out $B$N6&M-%i%$%V%i%j$OFs$D$N%U%!%$%k$H0l$D$N%7%s%\%j%C%/%j%s%/$+$i9=(B
$B@.$5$l$^$9!#$3$NJ8=q$G$3$l$^$G;H$C$F$-$?!V(Bfoo$B!W%i%$%V%i%j$rNc$K$H$j$^(B
$B$9$H!"(B <CODE>libfoo.sa</CODE> $B$H(B <CODE>libfoo.so.1.2</CODE> $B$,<B:]$N%U%!%$%k!"(B 
<CODE>libfoo.so.1</CODE> $B$,(B <CODE>libfoo.so.1.2</CODE> $B$X$N%7%s%\%j%C%/%j%s%/$G$9!#(B
$B$3$l$i$NLr3d$O$I$s$J$b$N$G$7$g$&$+!)(B
<P>$B%3%s%Q%$%k$N:]$K!"(B <CODE>ld</CODE> $B$O(B <CODE>libfoo.sa</CODE> $B$rC5$7$^$9!#$3$N%U%!%$%k(B
$B$O%i%$%V%i%j$N!V(Bstub$B!W%U%!%$%k$H8F$P$l!"30$+$i;2>H$G$-$k%G!<%?$H(B
$B<B9T;~%j%s%/$KI,MW$J4X?t$X$N%]%$%s%?$H$rJ];}$7$F$$$^$9!#(B
<P>$B<B9T;~$K$O!"%@%$%J%_%C%/%m!<%@$O(B <CODE>libfoo.so.1</CODE> $B$rC5:w$7$^$9!#$3$l$O(B
$B<B%U%!%$%k$G$O$J$/%7%s%\%j%C%/%j%s%/$K$J$C$F$$$F!"%P%0%U%#%C%/%9$J$I$K(B
$B$h$k%"%C%W%G!<%H$N:]$K!"$3$N%i%$%V%i%j$r;H$C$F$$$?%W%m%0%i%`$KLdBj$,@8(B
$B$8$J$$$h$&$K$7$F$$$^$9!#?7$7$$%P!<%8%g%s$N%i%$%V%i%j(B
$B!J(B<CODE>libfoo.so.1.3</CODE> $B$J$I!K$,$"$l$P!"(B ldconfig $B$r<B9T$9$k$3$H$K$h$C$F(B
$B%j%s%/@h$rJQ99$G$-!"$3$N%i%$%V%i%j$rMQ$$$F$$$?%W%m%0%i%`$K$O1F6A$rM?$((B
$B$J$/$F$9$_$^$9!#(B
<P>DLL $B%i%$%V%i%j!J%H!<%H%m%8!<$@$H$$$&$3$H$O>5CN$7$F$$$^$9(B <CODE>:-p</CODE>$B!K$O(B 
static $B$J%i%$%V%i%j$KHf$Y$FBg$-$/$J$k>l9g$,B?$$$G$9!#(B DLL $B%i%$%V%i%j$K(B
$B$O>-Mh$N3HD%$KHw$($F!"!V(Bhole$B!W$H$$$&7A<0$NNN0h$,3NJ]$5$l$F$$$^$9!#$3$N(B 
hole $BNN0h$,<B:]$K$O%G%#%9%/$r>CHq$7$J$$$h$&$K$9$k$3$H$b$G$-$^$9!#C1$K(B 
<CODE>cp</CODE> $B$9$k$+!"$"$k$$$O(B <CODE>makehole</CODE> $B%3%^%s%I$rMQ$$$^$9!#!J(Ba.out $B$G(B
$B$O!K%"%I%l%9$O8GDj$5$l$F$$$k$N$G!"%i%$%V%i%j9=C[8e$K(B strip $B$9$k$3$H$b(B
$B$G$-$^$9!#$J$*(B<B> ELF $B%i%$%V%i%j$O(B strip $B$7$F$O$$$1$^$;$s!*(B</B>
<P>
<H3>$B!V(Blibc-lite$B!W$H$O!)(B</H3>

<P>libc-lite $B$O(B libc $B%i%$%V%i%j$N7ZNLHG$G$9!#%U%m%C%T!<$G$NMxMQ$KE,$7!"(B 
UNIX $B$N4pK\E*$J%?%9%/$N$[$H$s$I$r%+%P!<$7$F$$$^$9!#(B libc-lite $B$K$O(B 
curses$B!"(B dgm$B!"(B termcap $B$J$I$N%3!<%I$OF~$C$F$$$^$;$s!#$b$7$*;H$$$N%7%9(B
$B%F%`$N(B <CODE>/lib/libc.so.4</CODE> $B$,$3$N(B lite $BHG$X$N%j%s%/$G$7$?$i!"(B full 
$B%5%$%:$NHG$KCV$-49$($?J}$,NI$$$G$7$g$&!#(B
<P>
<H3>$B%j%s%/!'$h$/$"$kLdBj(B</H3>

<P>$B%j%s%/$N:]$K>c32$,5/$3$C$?$i;d$K65$($F$/$@$5$$!*;d$,<j=u$1$G$-$k$3$H$O(B
$B$"$^$jL5$$$+$b$7$l$^$;$s$,!"F1$8$N$,$?$/$5$s$-$?$i$3$3$K:\$;$k$3$H$O$G(B
$B$-$^$9(B...
<P>
<DL>
<P>
<DT><B>$B6&M-7A<0$G%j%s%/$7$?$$$N$K(B static $B$K$J$C$F$7$^$&(B</B><DD><P>
<A NAME="index.77"></A>  
<A NAME="index.78"></A>  
<P><CODE>ld</CODE> $B$,6&M-%i%$%V%i%j$r8!:w$G$-$k$h$&!"$=$l$>$l%j%s%/$,$A$c$s$HD%$i(B
$B$l$F$$$k$+3NG'$7$F$/$@$5$$!#(B ELF $B$N>l9g$O%7%s%\%j%C%/%j%s%/(B 
<CODE>libfoo.so</CODE> $B$,!"(B a.out $B$G$O(B <CODE>libfoo.sa</CODE> $B$,<B%U%!%$%k$XD%$i$l$F$$$J(B
$B$1$l$P$J$j$^$;$s!#$3$NLdBj$O(B ELF binutils $B$r(B 2.5 $B$+$i(B 2.6 $B$K99?7$7$?$H(B
$B$-$KHs>o$KB?$/Js9p$5$l$^$7$?!#0JA0$N%P!<%8%g%s$G$O%i%$%V%i%j$N8!:w$r(B
$B!V8-$/!W9T$C$F$*$j!"A4$F$N%j%s%/$,$J$/$F$bF0:n$9$k$3$H$,$"$j$^$7$?!#?7(B
$B$7$$%P!<%8%g%s$G$OB>$N%"!<%-%F%/%A%c$H$N@09g@-$r$H$k$?$a$K!"$3$N5!G=$r(B
$B:o=|$7$^$7$?!#$^$??dB,$r8m$k$H!"$h$j?<9o$JLdBj$r0z$-5/$3$92DG=@-$,@8$8(B
$B$k$3$H$b:o=|$5$l$?M}M3$N0l$D$G$9!#(B
<P>
<DT><B> DLL $B$N%D!<%k(B `mkimage $B$,(B libgcc $B$N8!:w$K<:GT$7$^$9(B</B><DD><P>
<A NAME="index.79"></A>  
<P><CODE>libc.so.4.5.x</CODE> $B0J>e$G$O!"(B libgcc $B$O6&M-%i%$%V%i%j$G$O$J$/$J$j$^$7(B
$B$?!#$7$?$,$C$FLdBj$,@8$8$?9T$N!V(B<CODE>-lgcc</CODE>$B!W$O!V(B<CODE>`gcc
-print-libgcc-file-name`</CODE>$B!W$KCV$-49$($F$/$@$5$$!#%P%C%/%/%)!<%H!V(B`$B!W$r(B
$B$*K:$l$J$/!#(B
<P>$B$^$?(B <CODE>/usr/lib/libgcc*</CODE> $B$OA4$F:o=|$7$F$/$@$5$$!#$3$A$i$b=EMW$G(B
$B$9!#(B
<P>
<DT><B> <CODE>__NEEDS_SHRLIB_libc_4 multiply defined</CODE> $B$H$$$&%a%C%;!<%8$,=P$k(B</B><DD><P>$B$3$l$O>e$HF1<o$NLdBj$G$9!#(B
<P>
<DT><B> DLL $B$r:F9=C[$9$k$H$-$K(B ``Assersion failure'' $B$H$$$&%a%C%;!<%8$,$G$k(B</B><DD><P>$B$3$NFf$N%a%C%;!<%8$O!"62$i$/%8%c%s%W%F!<%V%k$N(B slot $B$N$&$A$N0l$D$,%*!<(B
$B%P!<%U%m!<$7$F$7$^$C$?$3$H$r0UL#$7$F$$$^$9!#%*%j%8%J%k$N(B 
<CODE>jump.vars</CODE> $B%U%!%$%k$KM=Ls$7$?NN0h$,>.$5$9$.$?$3$H$,860x$H9M$($i$l(B
$B$^$9!#LdBj$N8D=j$O(B <CODE>getsize</CODE> $B$K$h$C$FFCDj$G$-$^$9!J(B<CODE>getsize</CODE> $B$O(B 
tools-2.17.tar.gz $B%Q%C%1!<%8$K$"$j$^$9!K!#$3$N>l9g;DG0$J$,$i!"%i%$%V%i(B
$B%j$N(B major $B%P!<%8%g%s$r>e$2!"2<0L8_49@-$r$"$-$i$a$k$3$H$,M#0l$N2r7hK!(B
$B$H$J$k$G$7$g$&!#(B
<P>
<DT><B><CODE>ld: output file needs shared library libc.so.4</CODE></B><DD><P>$B$3$l$O(B libc $B0J30$N%i%$%V%i%j!J(BX $B4X78$N%i%$%V%i%j$J$I!K$rMQ$$$F$*$j!"$+(B
$B$D(B <CODE>-g</CODE> $B$r$D$1$F(B <CODE>-static</CODE> $B$r$D$1$F$$$J$$>l9g$K@8$8$^$9!#(B
<P>$B6&M-%i%$%V%i%j$KBP1~$7$?(B stub $B%U%!%$%k!J(B<CODE>*.sa</CODE>$B!K$K$O!"DL>o(B 
<CODE>_NEEDS_SHRLIB_libc_4</CODE> $B$H$$$&L$Dj5A$N%7%s%\%k$,4^$^$l$F$$$^$9!#$3$l(B
$B$O(B <CODE>libc.sa</CODE> stub $B$K$h$C$F2r7h$5$l$F$$$^$9!#(B <CODE>-g</CODE> $B$,;XDj$5$l$F$$(B
$B$k$H(B <CODE>libg.a</CODE> $B$^$?$O(B <CODE>libc.a</CODE> $B$H$N%j%s%/$,9T$o$l$^$9$,!"$H$3$m$,(B
$B$3$l$i$N%i%$%V%i%j$G$O>e$N%7%s%\%k$O2r7h$5$l$F$$$J$$$N$G$9!#$7$?$,$C$F(B
$BI=Bj$N%(%i!<$H$J$j$^$9!#(B
<P>$B7k6I(B <CODE>-g</CODE> $B$r$D$1$F%3%s%Q%$%k$9$k$H$-$O(B <CODE>-static</CODE> $B$rDI2C$9$k$+!"(B
$B$"$k$$$O%j%s%/$N:]$K(B <CODE>-g</CODE> $B$rMQ$$$J$$$+!"$,2rEz$G$9!#%j%s%/$N:]$K(B 
<CODE>-g</CODE> $B$rMQ$$$J$/$F$b!"3F!9$N%=!<%9$r(B <CODE>-g</CODE> $B$G%3%s%Q%$%k$7$F$*$1$P!"(B
$B$[$H$s$I$N>l9g$O=<J,$J%G%P%C%0>pJs$,F@$i$l$^$9!#(B
<P>
</DL>
<P>
<P>
<HR>
<H2><A NAME="s7">7.</A> <A HREF="#toc7">$B%@%$%J%_%C%/%m!<%I!J(BDynamic Loading$B!K(B</A></H2>

<P>$B$3$N>O$O:#$N$H$3$m$^$@C;$$$G$9!#;d$,(B ELF HOWTO $B$NFbMF$r>C2=$9$k$KO"$l!"(B
$B$@$s$@$s3HD%$5$l$F$$$/$G$7$g$&!#(B
<P>
<H2><A NAME="ss7.1">7.1 $B35G0(B</A>
</H2>

<P>$BA0$N>OA4It$r0l5$$KFI$s$@?M$O$b$&J9$-K0$-$?$+$b$7$l$^$;$s$,!"(B Linux $B$O(B
$B6&M-%i%$%V%i%j$rMxMQ$7$F$$$^$9!#!VL>A0$r8!:w$7$FCV$-49$($k!W$H$$$&F0:n(B
$B$,!"%j%s%/;~$+$i<B9T;~$K@hAw$j$5$l$k$h$&$K$J$C$?$N$G$9!#(B
<P>
<H2><A NAME="ss7.2">7.2 $B%(%i!<%a%C%;!<%8(B</A>
</H2>

<P>$B%j%s%/%(%i!<$,5/$3$C$?$iAw$C$F$/$@$5$$!*2r7h$O$G$-$J$$$+$b$7$l$^$;$s$,!"(B
$B$3$3$K$^$H$a$?$$$H;W$$$^$9(B...
<P>
<DL>
<P>
<DT><B><CODE> can't load library: /lib/libxxx.so, Incompatible version</CODE></B><DD><P>$B!J(Ba.out $B$N$_!K$3$l$O(B xxx $B%i%$%V%i%j$N(B major $B%P!<%8%g%s$,$"$C$F$$$J$$$+(B
$B$i$G$9!#$?$@%7%s%\%j%C%/%j%s%/$r0c$&%P!<%8%g%s$N%i%$%V%i%j$KD%$C$?$@$1(B
$B$G$O$@$a$G$9$h!J$=$s$J$3$H$r$7$F(B segfault $B$/$i$$$G:Q$s$@$i9,1?$H$$$&$b(B
$B$N$G$9!K!#?7$7$$%P!<%8%g%s$rF~<j$7$F$/$@$5$$!#(B ELF $B$N>l9g!"F1$8$h$&$J(B
$B>u67$G$O0J2<$N$h$&$J%a%C%;!<%8$H$J$j$^$9!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
ftp: can't load library 'libreadline.so.2'
</PRE>
</CODE></BLOCKQUOTE>
<P>
<DT><B><CODE> warning using incompatible library version xxx</CODE></B><DD><P>$B!J(Ba.out $B$N$_!K$3$N%a%C%;!<%8$rEG$$$?%W%m%0%i%`$r%3%s%Q%$%k$7$??M$h$j$b(B
minor $B%P!<%8%g%s$,8E$$%i%$%V%i%j$r;H$C$F$$$k>l9g$K=P$^$9!#B?J,%W%m%0(B
$B%i%`$O$A$c$s$HF0$/$H;W$$$^$9!#$G$b%"%C%W%0%l!<%I$7$?J}$,NI$$$G$7$g$&$M!#(B
<P>
</DL>
<P>
<H2><A NAME="ss7.3">7.3 $B%@%$%J%_%C%/%m!<%@$NF0:n$r%3%s%H%m!<%k$9$k(B</A>
</H2>

<P>
<A NAME="index.80"></A>  
<A NAME="index.81"></A>  
<P>$B%@%$%J%_%C%/%m!<%@$,;2>H$9$k4D6-JQ?t$OB?4t$KEO$C$F$$$^$9!#$3$l$i$N$[$H(B
$B$s$I$O(B <CODE>ldd</CODE> $B$@$1$,;H$&$b$N$J$N$G!"(B <CODE>ldd</CODE> $B$KBP1~$9$k%9%$%C%A$r$D(B
$B$1$F<B9T$9$kJ}$,JXMx$+$b$7$l$^$;$s!#(B
<P>
<UL>
<LI> <CODE>LD_BIND_NOW</CODE> $BDL>o%i%$%V%i%jCf$N4X?t$O!"8F$S=P$5$l$k$^$G%"%/(B
$B%;%9$5$l$^$;$s!#$3$N%U%i%0$r@_Dj$7$F$*$/$H!"%i%$%V%i%j$,%m!<%I$5$l$?$H(B
$B$-$KA4$F$N4X?t$,3NG'$5$l$^$9(B( $B$7$?$,$C$F;~4V$,$+$+$j$^$9!K!#$3$N%*%W%7%g(B
$B%s$O%W%m%0%i%`$r%F%9%H$9$k$H$-$K!"A4$F$,$A$c$s$H%j%s%/$5$l$F$$$k$+$r3N(B
$BG'$9$k$H$-$KLr$KN)$A$^$9!#(B
</LI>
<LI> <CODE>LD_PRELOAD</CODE> $B$r;H$&$H4X?tDj5A$r!V>e=q$-!W$9$k%U%!%$%k$r;XDj(B
$B$G$-$^$9!#Nc$($P%a%b%j3d$jEv$F4X?t$r<BAu$7$F!"$3$l$r(B `malloc' $B$HCV$-49(B
$B$($?$$>l9g$K$O!"$=$N<BAu$r(B <CODE>malloc.o</CODE> $B$K%3%s%Q%$%k$7$F0J2<$N$h$&$K(B
$B$7$^$9!#(B
<BLOCKQUOTE><CODE>
<PRE>
$ LD_PRELOAD=malloc.o; export LD_PRELOAD
$ some_test_program
</PRE>
</CODE></BLOCKQUOTE>


<CODE>LD_ELF_PRELOAD</CODE> $B$H(B <CODE>LD_AOUT_PRELOAD</CODE> $B$bF1$8$h$&$J5!G=$r;}$A$^$9(B
$B$,!"$=$l$>$l$N%P%$%J%j7A<0$KBP$7$F$N$_M-8z$K$J$j$^$9!#(B
<CODE>LD_</CODE><EM>something</EM><CODE>_PRELOAD</CODE> $B$H(B <CODE>LD_PRELOAD</CODE> $B$,F1;~$KDj5A$5(B
$B$l$F$$$k>l9g$O!"HO0O$N69$$;XDj$NJ}$,M-8z$K$J$j$^$9!#(B
</LI>
<LI> <CODE>LD_LIBRARY_PATH</CODE> $B$O%3%m%s$G6h@Z$i$l$?%j%9%H$G!"6&M-%i%$%V%i(B
$B%j$r8!:w$9$k%G%#%l%/%H%j$r;XDj$7$^$9!#$3$N;XDj$O<B9T;~$N$_$KMQ$$$i$l!"(B
<CODE>ld</CODE> $B$K$O1F6A$7$^$;$s!#$^$?(B setuid $B$d(B setgid $B$5$l$?%W%m%0%i%`$K$OL5(B
$B8z$G$9!#$3$l$K$b(B <CODE>LD_ELF_LIBRARY_PATH</CODE> $B$H(B <CODE>LD_AOUT_LIBRARY_PATH</CODE> 
$B$,$"$j!"%P%$%J%j7A<0$K$h$C$F0[$J$k8!:w%j%9%H$r;XDj$G$-$^$9!#DL>o$O(B 
<CODE>LD_LIBRARY_PATH</CODE> $B$OI,MW$J$$$G$7$g$&!#%G%#%l%/%H%j$r(B 
<CODE>/etc/ld.so.conf</CODE> $B$K2C$($F(B ldconfig $B$r<B9T$7$J$*$9J}$r$*4+$a$7(B
$B$^$9!#(B
</LI>
<LI> <CODE>LD_NOWARN</CODE> $B$O(B a.out $B$N$_$KE,MQ$5$l$^$9!#@_Dj$5$l$F$$$k$H(B
$B!J$D$^$j(B <CODE>LD_NOWARN=true; export LD_NOWARN</CODE>$B!K!"%m!<%@$OCWL?E*$G$J$$(B
$B7Y9p%a%C%;!<%8!J(Bminor $B%P!<%8%g%s$,$"$C$F$$$J$$$J$I!K$r=PNO$7$J$/$J$j$^(B
$B$9!#(B
</LI>
<LI> <CODE>LD_WARN</CODE> $B$O(B ELF $B$K$N$_E,MQ$5$l$^$9!#@_Dj$5$l$F$$$k$HDL>o$O(B
$BCWL?E*%(%i!<$G$"$k(B ``Can't find library'' $B$r%o!<%K%s%0$KJQ$($^$9!#DL>o(B
$B$O$"$^$jMxMQ$5$l$k$3$H$O$J$$$G$7$g$&$,!"(B ldd $B$K$O=EMW$J@_Dj$G$9!#(B
</LI>
<LI> <CODE>LD_TRACE_LOADER_OBJECTS</CODE> $B$O(B ELF $B$K$N$_E,MQ$5$l$^$9!#;XDj$9(B
$B$k$H!"$=$l$>$l$N<B9T%W%m%0%i%`$O!"<+J,$,(B <CODE>ldd</CODE> $B$N2<$G<B9T$5$l$F$$$k(B
$B$b$N$H9M$($k$h$&$K$J$j$^$9!#(B
<BLOCKQUOTE><CODE>
<PRE>
$ LD_TRACE_LOADED_OBJECTS=true /usr/bin/lynx
        libncurses.so.1 => /usr/lib/libncurses.so.1.9.6
        libc.so.5 => /lib/libc.so.5.2.18
</PRE>
</CODE></BLOCKQUOTE>

</LI>
</UL>
<P>
<H2><A NAME="ss7.4">7.4 $B%@%$%J%_%C%/%m!<%I$rMQ$$$?%W%m%0%i%`$r=q$/(B</A>
</H2>

<P>
<A NAME="index.82"></A>  
<A NAME="index.83"></A>  
Solaris 2.x $B$G$N%@%$%J%_%C%/%m!<%I5!G=$HHs>o$K;w$F$$$^$9!J$H$$$C$F$b(B 
Solaris $B%f!<%6$K$7$+$o$+$j$^$;$s$M!K!#6qBNE*$JFbMF$O(B H. J. Lu $B$N(B ELF
programming document $B$*$h$S(B <CODE>dlopen(3)</CODE> $B$N(B man $B%Z!<%8$G>\=R$5$l$F$$(B
$B$^$9!#8e<T$O(B ld.so $B$N%Q%C%1!<%8$KF~$C$F$$$^$9!#0J2<$K$b$A$g$C$H$7$?Nc(B
$B$r<($7$^$9!#(B <CODE>-ldl</CODE> $B$r$D$1$F%j%s%/$7$F$/$@$5$$!#(B
<P>
<BLOCKQUOTE><CODE>
<PRE>
#include &lt;dlfcn.h>
#include &lt;stdio.h>

main()
{
  void *libc;
  void (*printf_call)();

  if(libc=dlopen("/lib/libc.so.5",RTLD_LAZY))
  {
    printf_call=dlsym(libc,"printf");
    (*printf_call)("hello, world\n");
  }

}
</PRE>
</CODE></BLOCKQUOTE>
<P>
<P>
<HR>
<H2><A NAME="s8">8.</A> <A HREF="#toc8">$B3+H/<T$KO"Mm$r<h$k$K$O(B</A></H2>

<P>
<H2><A NAME="ss8.1">8.1 $B%P%0%l%]!<%H$rAw$k(B</A>
</H2>

<P>
<A NAME="index.84"></A>  
$B$^$:LdBj$r(B<B>$B9J$j9~$s$G(B</B>$B$/$@$5$$!#(B Linux $B$KFCM-$NLdBj$+!"B>$N%7%9%F%`(B
$B$N(B gcc $B$G$b5/$3$k$+!)%+!<%M%k$N%P!<%8%g%s$K8GM-$NLdBj$+!)%i%$%V%i%j$N(B
$B%P!<%8%g%s$O!)%j%s%/$r(B static $B$K$9$l$P2r7h$9$k$+!)LdBj$r5/$3$9%W%m%0%i(B
$B%`$r(B<B>$BC;$$(B</B>$B%G%b%s%9%H%l!<%7%g%sHG$K@Z$j$D$a$k$3$H$,$G$-$k$+!)$J$I$G(B
$B$9!#(B
<P>$B$3$l$,:Q$s$@$i!"$I$N%W%m%0%i%`$K%P%0$,$$$k$+$,$O$C$-$j$9$k$H;W$$$^$9!#(B 
GCC $B$N>l9g$O!"%P%0%l%]!<%H$N<jB3$-$O(B info $B%U%!%$%k$G@bL@$5$l$F$$$^$9!#(B 
ld.so $B$d(B C $B%i%$%V%i%j!"(B math $B%i%$%V%i%j$N>l9g$O(B 
<CODE>linux-gcc@vger.rutgers.edu</CODE> $B$K%a!<%k$rAw$C$F$/$@$5$$!#2DG=$J$i$PC;(B
$B$/!"%P%0$NB8:_$r$O$C$-$j$H<($9%W%m%0%i%`$rE:IU$7!"$=$N%W%m%0%i%`$GA[Dj$7(B
$B$F$$$?F0:n$H<B:]$NF0:n$K$D$$$F$N@bL@$bAw$C$F$/$@$5$$!#(B
<P>
<H2><A NAME="ss8.2">8.2 $B3+H/$K;22C$9$k(B</A>
</H2>

<P>GCC $B$d(B C $B%i%$%V%i%j$N3+H/$K;22C$7$?$$>l9g$O!"$^$:%a!<%j%s%0%j%9%H(B 
<CODE>linux-gcc@vger.rutgers.edu</CODE> $B$K;22C$7$F$/$@$5$$!#$I$s$J$3$H$,5DO@$5(B
$B$l$F$$$k$+$rCN$j$?$$$@$1$J$i$P!"%j%9%H$N%"!<%+%$%V$,(B
<A HREF="http://homer.ncm.com/linux-gcc/">http://homer.ncm.com/linux-gcc/</A>
$B$K$"$j$^$9!#$=$N<!$K$J$9$Y$-$3$H$O$"$J$?<!Bh$G$9!*(B
<P>
<P>
<P>
<HR>
<H2><A NAME="s9">9.</A> <A HREF="#toc9">$B$=$NB>(B</A></H2>

<P>
<H2><A NAME="ss9.1">9.1 $B<U<-(B</A>
</H2>

<P>
<BLOCKQUOTE>
$B!V2f!9!W$H8@$&8@MU$r;H$&$3$H$,$G$-$k$N$O!"BgE}NN$HJT=8<T!"$=$7$F(B 
$BBNFb$K%5%J%@Cn$r;t$C$F$$$k?M!9$N$_$G$"$k(B
</BLOCKQUOTE>

(Mark Twain)
<P>$B$3$N(B HOWTO $B$O(B Mitchum DSouza $B$N(B GCC-FAQ $B$+$iHs>o$KB?$/$NBj:`$r<h$C$F$$(B
$B$^$9!#(B GCC-FAQ $B$NBgItJ,$N!JK\Ev$KBgItJ,$N!K>pJs$O!"$3$NJ8=q$K$=$N$^$^(B
$B$N7A$GF3F~$5$l$F$$$^$9!#$3$N(B HOWTO $B$NJ8>OCf!"0l?M>N!J!V;d!W!K$,;X$9<B(B
$BBN$O2f!9$N$I$A$i$N>l9g$b$"$j$($^$9!#(B
$B!V;d$O$3$l$i$r;n$7$F$$$^$;$s!#$3$l$i$r;n$7$?$3$H$K$h$C$F$"$J$?$N%G%#%9(B
$B%/$d%7%9%F%`$d1|$5$s$,>F$1$F$7$^$C$F$b;d$N$;$$$K$7$J$$$G$/$@$5$$!W$H$$$C(B
$B$?FbMF$O!"FC$K;XDj$,L5$1$l$P2f!9$NN>J}$KEv$F$O$^$j$^$9!#(B
<P>$B$3$NJ8=q$K=uNO$/$@$5$C$??M!9$G$9!J%U%!!<%9%H%M!<%`$N(B ASCII $B=g$G$9!K!#(B 
Andrew Tefft,
Axel Boldt,
Bill Metzenthen,
Bruce Evans,
Bruno Haible,
Daniel Barlow,
Daniel Quinlan,
David Engel,
Dirk Hohndel,
Eric Youngdale,
Fergus Henderson,
H.J. Lu,
Jens Schweikhardt,
Kai Petzke,
Michael Meissner,
Mitchum DSouza,
Olaf Flebbe,
Paul Gortmaker,
Rik Faith,
Steven S. Dick,
Tuomas J Lukka,
$B$=$7$F$b$A$m$s(B Linus Torvalds$B!#H`$,$$$J$1$l$P$3$NJ8=q$K4XO"$7$?A4$F$N(B
$B3hF0$O0UL#$r;}$?$J$+$C$?$G$9$7!"$=$b$=$b9T$o$l$J$+$C$?$G$7$g$&(B <CODE>:-)</CODE>
<P>$B$b$7$3$NJ8=q!J(BHOWTO $B$K$G$b(B FAQ $B$K$G$b!K=uNO$/$@$5$C$?J}$G!"%j%9%H$+$i(B
$BO3$l$F$$$kJ}$,$$$i$C$7$c$$$^$7$?$i!"$I$&$+$*CN$i$;$/$@$5$$$^$9$h$&$*4j(B
$B$$$7$^$9!#;d$K%a!<%k$7$F$$$?$@$1$l$P=$@5$7$^$9!#(B
<P>$BLuCm!'F|K\8lLu$KEv$?$C$F$O!"(B
$B?e86$5$s!"(B
$B$3$d$^$5$s!"(B
$B3{_7$5$s!"(B
$BKY9>$5$s!"(B
$B?{86$5$s!"(B
$B;3:j$5$s!"(B
$B0KF#$5$s!"(B
$B$r$O$8$a$H$9$k(B JF $B%a!<%j%s%0%j%9%H$N3'$5$s$KM-1W$J$4;XE&$rD:$-$^$7$?!#(B
<P>
<H2><A NAME="ss9.2">9.2 $BK]Lu$K$D$$$F(B</A>
</H2>

<P>$B8=;~E@$G$O$3$NJ8=q$NK]LuHG$O$"$j$^$;$s!#K]Lu$7$F$_$h$&$H;W$&J}!"$I$&$>(B
$B$*4j$$$7$^$9!#$G$b;d$KCN$i$;$F$/$@$5$$!*;d$,K]Lu@h$N8@MU$rOC$;$k2DG=@-(B
$B$O!J;DG0$J$3$H$K!K(B100 $BBP(B 1 $B0J2<$G$7$g$&$,!"$=$l$O$H$b$+$/;d$O4n$s$G$*(B
$B<jEA$$$9$k$D$b$j$G$9!#(B
<P>
<H2><A NAME="ss9.3">9.3 $B%U%#!<%I%P%C%/(B</A>
</H2>

<P>$B4?7^$7$^$9!#;d$N%"%I%l%9(B
<A HREF="mailto:daniel.barlow@linux.org">daniel.barlow@linux.org</A>
$B08$K%a!<%k$7$F$/$@$5$$!#(B
$B;d$N(B PGP $B8x3+80!J(BID 5F263625$B!K$O(B
<A HREF="http://ftp.linux.org.uk/~barlow/">web $B%Z!<%8(B</A>
$B$K$"$j$^$9!#DL?.$NHkL)$rI,MW$H$9$kJ}$OMxMQ$7$F$/$@$5$$!#(B
<P>$BLuCm!'86J8$G$N%a!<%k%"%I%l%9$O(B <CODE>dan@detached.demon.co.uk</CODE> $B$H(B
$B$J$C$F$$$^$9$,!"(B <CODE>daniel.barlow@linux.org</CODE> $B$NJ}$,%"%/%;%9$,NI$$(B
$B$=$&$G$9!#(B
<P>
<H2><A NAME="ss9.4">9.4 $BK!E*>r9`(B</A>
</H2>

<P>$BLuCm!'$3$N@a$O86J8$b<($7$^$9!#(B
<P>
<P> All trademarks used in this document are acknowledged as being
owned by their respective owners.
<P>This document is copyright (C) 1996 Daniel Barlow
<CODE>&lt;dan@detached.demon.co.uk&gt;</CODE> It may be reproduced and
distributed in whole or in part, in any medium physical or electronic,
as long as this copyright notice is retained on all copies. Commercial
redistribution is allowed and encouraged; however, the author would
like to be notified of any such distributions.  
<P>All translations, derivative works, or aggregate works incorporating
any Linux HOWTO documents must be covered under this copyright notice.
That is, you may not produce a derivative work from a HOWTO and impose
additional restrictions on its distribution. Exceptions to these rules
may be granted under certain conditions; please contact the Linux
HOWTO coordinator at the address given below.
<P>In short, we wish to promote dissemination of this information through
as many channels as possible. However, we do wish to retain copyright
on the HOWTO documents, and would like to be notified of any plans to
redistribute the HOWTOs.
<P>If you have questions, please contact Greg Hankins, the Linux HOWTO
coordinator, at <CODE>gregh@sunsite.unc.edu</CODE> via email.
<P>$B!NF|K\8lLu!O(B
<P>$B$3$NJ8=q$G0zMQ$7$F$$$k>&I8$O$=$l$>$l$NJ]M-<T$K5"$9$k$b$N$G$9!#(B
<P>$B$3$NJ8=q$NCx:n8"$O(B (C) 1996 Daniel Barlow
<CODE>&lt;dan@detached.demon.co.uk&gt;</CODE> $B$,J]M-$7$F$$$^$9!#(B
$B$3$NJ8=q$NA4BN$"$k$$$O0lIt$O!"J*M}E*EE;RE*$rLd$o$:!"$"$i$f$k%a%G%#%"$K(B
$B<+M3$KJ#<L$9$k$3$H$,$G$-$^$9!#$?$@$7$=$N:]$K$O$3$NCx:n@k8@$rA4$F$N%3%T!<(B
$B$KIU2C$9$kI,MW$,$"$j$^$9!#>&6HE*$JG[I[$b5v2D$7!"$^$?>)Ne$7$^$9!#$7$+$7(B
$B$=$N:]$K$OCx<T$K$*CN$i$;$/$@$5$k$h$&$*4j$$$7$^$9!#(B
<P>Linux HOWTO $B$NJ8=q$r4^$s$@K]Lu!"=$@5$*$h$SJT=8:n6H$N@.2L$O!"A4$F$3$NCx(B
$B:n8">r9`$K=>$&I,MW$,$"$j$^$9!#$9$J$o$A$3$N(B HOWTO $B$r=$@5$7$?8e$K!"G[I[(B
$B>r7o$KDI2C9`$r2C$($k$3$H$O$G$-$^$;$s!#C"$7E,Ev$HG'$a$i$l$?>l9g$ONc30$H(B
$B$9$k$3$H$b$G$-$^$9!#(B Linux HOWTO $B$N4IM}<T$KO"Mm$7$F$/$@$5$$!#%"%I%l%9(B
$B$O0J2<$K<($7$^$9!#(B
<P>$BMW$9$k$K2f!9$O$3$l$i$N>pJs$r2DG=$J8B$j$NJ}K!$G9-$a$?$$$H;W$C$F$$$k$N$G(B
$B$9!#$7$+$72f!9$O(B HOWTO $BJ8=q$K4X$9$kCx:n8"$rJ];}$7B3$1$k$3$H$rK>$s$G$$(B
$B$^$9$7!"(BHOWTO $B$r:FG[I[$9$k7W2h$K$D$$$FCN$i$;$F$b$i$&$3$H$bK>$s$G$$$^$9!#(B
<P>$B$b$75?LdE@$,$"$C$?$i!"(BLinux HOWTO $B4IM}<T$N(B Greg Hankins $B$KO"Mm$7$F$/$@(B
$B$5$$!#EE;R%a!<%k$N%"%I%l%9$O(B <CODE>gregh@sunsite.unc.edu</CODE> $B$G$9!#(B
<P>
<HR>
<H2><A NAME="s10">10.</A> <A HREF="#toc10">$B:w0z(B</A></H2>

<P>$B%"%k%U%!%Y%C%H0J30$NJ8;z$G$O$8$^$k8@MU$O(B ASCII $BG[Ns$N=g$KJB$Y$F$"$j$^(B
$B$9!#(B
<P>
<UL>
<LI> <CODE>-fwritable-strings</CODE> 
<A HREF="#index.39">39</A> 
<A HREF="#index.56">56</A> </LI>
<LI> /lib/cpp 
<A HREF="#index.16">16</A> </LI>
<LI> a.out 
<A HREF="#index.1">1</A> </LI>
<LI> <CODE>ar</CODE> 
<A HREF="#index.10">10</A> </LI>
<LI> <CODE>as</CODE> 
<A HREF="#index.8">8</A> </LI>
<LI> &lt;asm/*.h&gt; 
<A HREF="#index.19">19</A> </LI>
<LI> <CODE>atoi()</CODE> 
<A HREF="#index.40">40</A> </LI>
<LI> <CODE>atol()</CODE> 
<A HREF="#index.41">41</A> </LI>
<LI> binaries too big 
<A HREF="#index.63">63</A> 
<A HREF="#index.65">65</A> 
<A HREF="#index.77">77</A> </LI>
<LI> chewing gum 
<A HREF="#index.3">3</A> </LI>
<LI> <CODE>cos()</CODE> 
<A HREF="#index.68">68</A> </LI>
<LI> debugging 
<A HREF="#index.59">59</A> </LI>
<LI> <CODE>dlopen()</CODE> 
<A HREF="#index.82">82</A> </LI>
<LI> <CODE>dlsym()</CODE> 
<A HREF="#index.83">83</A> </LI>
<LI> documentation 
<A HREF="#index.4">4</A> </LI>
<LI> EINTR 
<A HREF="#index.52">52</A> </LI>
<LI> elf 
<A HREF="#index.0">0</A> 
<A HREF="#index.71">71</A> </LI>
<LI> <CODE>execl()</CODE> 
<A HREF="#index.57">57</A> </LI>
<LI> <CODE>fcntl</CODE> 
<A HREF="#index.47">47</A> </LI>
<LI> <CODE>FD_CLR</CODE> 
<A HREF="#index.44">44</A> </LI>
<LI> <CODE>FD_ISSET</CODE> 
<A HREF="#index.45">45</A> </LI>
<LI> <CODE>FD_SET</CODE> 
<A HREF="#index.43">43</A> </LI>
<LI> <CODE>FD_ZERO</CODE> 
<A HREF="#index.46">46</A> </LI>
<LI> <CODE>file</CODE> 
<A HREF="#index.2">2</A> </LI>
<LI> &lt;float.h&gt; 
<A HREF="#index.20">20</A> </LI>
<LI> gcc 
<A HREF="#index.6">6</A> </LI>
<LI> <CODE>gcc -fomit-frame-pointer</CODE> 
<A HREF="#index.61">61</A> </LI>
<LI> <CODE>gcc -g</CODE> 
<A HREF="#index.60">60</A> </LI>
<LI> gcc -v 
<A HREF="#index.14">14</A> </LI>
<LI> gcc, bugs 
<A HREF="#index.15">15</A> 
<A HREF="#index.28">28</A> 
<A HREF="#index.29">29</A> 
<A HREF="#index.84">84</A> </LI>
<LI> gcc, flags 
<A HREF="#index.13">13</A> 
<A HREF="#index.25">25</A> 
<A HREF="#index.26">26</A> </LI>
<LI> gdb 
<A HREF="#index.64">64</A> </LI>
<LI> header files 
<A HREF="#index.17">17</A> </LI>
<LI> interrupted system calls 
<A HREF="#index.51">51</A> </LI>
<LI> <CODE>ld</CODE> 
<A HREF="#index.9">9</A> </LI>
<LI> <CODE>LD_*</CODE> environment variables 
<A HREF="#index.80">80</A> </LI>
<LI> ldd 
<A HREF="#index.81">81</A> </LI>
<LI> libc 
<A HREF="#index.7">7</A> </LI>
<LI> <CODE>libg.a</CODE> 
<A HREF="#index.62">62</A> </LI>
<LI> libgcc 
<A HREF="#index.79">79</A> </LI>
<LI> &lt;limits.h&gt; 
<A HREF="#index.21">21</A> </LI>
<LI> lint 
<A HREF="#index.58">58</A> </LI>
<LI> &lt;linux/*.h&gt; 
<A HREF="#index.18">18</A> </LI>
<LI> manual pages 
<A HREF="#index.5">5</A> </LI>
<LI> <CODE>&lt;math.h&gt;</CODE> 
<A HREF="#index.70">70</A> </LI>
<LI> maths 
<A HREF="#index.69">69</A> </LI>
<LI> <CODE>mktemp()</CODE> 
<A HREF="#index.55">55</A> </LI>
<LI> optimisation 
<A HREF="#index.27">27</A> </LI>
<LI> QMAGIC 
<A HREF="#index.76">76</A> </LI>
<LI> segmentation fault 
<A HREF="#index.30">30</A> 
<A HREF="#index.54">54</A> </LI>
<LI> segmentation fault, in GCC 
<A HREF="#index.33">33</A> </LI>
<LI> select() 
<A HREF="#index.50">50</A> </LI>
<LI> <CODE>SIGBUS</CODE> 
<A HREF="#index.34">34</A> </LI>
<LI> <CODE>SIGEMT</CODE> 
<A HREF="#index.35">35</A> </LI>
<LI> <CODE>SIGIOT</CODE> 
<A HREF="#index.36">36</A> </LI>
<LI> SIGSEGV 
<A HREF="#index.31">31</A> 
<A HREF="#index.53">53</A> </LI>
<LI> SIGSEGV, in gcc 
<A HREF="#index.32">32</A> </LI>
<LI> <CODE>SIGSYS</CODE> 
<A HREF="#index.38">38</A> </LI>
<LI> <CODE>SIGTRAP</CODE> 
<A HREF="#index.37">37</A> </LI>
<LI> <CODE>sin()</CODE> 
<A HREF="#index.67">67</A> </LI>
<LI> soname 
<A HREF="#index.73">73</A> </LI>
<LI> <CODE>sprintf()</CODE> 
<A HREF="#index.42">42</A> </LI>
<LI> statically linked binaries, unexpected 
<A HREF="#index.66">66</A> 
<A HREF="#index.78">78</A> </LI>
<LI> &lt;stdarg.h&gt; 
<A HREF="#index.23">23</A> </LI>
<LI> &lt;stddef.h&gt; 
<A HREF="#index.24">24</A> </LI>
<LI> <CODE>strings</CODE> 
<A HREF="#index.11">11</A> </LI>
<LI> <CODE>&lt;sys/time.h&gt;</CODE> 
<A HREF="#index.48">48</A> </LI>
<LI> <CODE>&lt;unistd.h&gt;</CODE> 
<A HREF="#index.49">49</A> </LI>
<LI> &lt;varargs.h&gt; 
<A HREF="#index.22">22</A> </LI>
<LI> version numbers 
<A HREF="#index.12">12</A> 
<A HREF="#index.74">74</A> </LI>
<LI> weird things 
<A HREF="#index.72">72</A> </LI>
<LI> ZMAGIC 
<A HREF="#index.75">75</A> </LI>
</UL>
<P>
<HR>
sgml21html conversion date: Wed Feb 20 19:57:22 JST 2002

</BODY>
</HTML>