  The Linux ELF HOWTO
  Daniel Barlow <daniel.barlow@linux.org>
  1996/07/14
  ܂݂Ђ <isle@st.rim.or.jp> (11/4)

  ͂̕Ȃ Linux VXe ELF oCi`̃vOR
  pCē߂̕@܂Ƃ߂̂łB͑̕傫A(1)ELF
  Ƃ͉AȂڍsȂ΂ȂȂA(2)ǂ ELF `g
  悤ɂȂ̂A(3)ELF ɂΉł̂AƂ 3 ̕ɕ
  Ă܂BɂłtĂԁA͕̕
  炩ɂȂĂ܂Aŋ Linux 2.0 ̏ǉđŜI[
  o[z[܂B

  : ͂̕ȂȑOɏꂽ̂Ȃ̂ŁA܂ǂ Linux 
  ɂ͂Ă͂܂Ȃӏ܂B (JF Project)

  1.  ELF Ƃ͉H ȒPȏЉ

  ELF(Executable and Linking Format)͌X USL(Unix System Laboratories)
  ŊJꂽoCi`ŁA݂ Solaris  System V Release 4 
  pĂ܂B Linux ĎgĂ a.out `ɔׂāAELF `
  _ɕxނ̂ŁAGCC  C CůJ҂ Linux ̕WIȃo
  Ci` ELF ɂ悤ƌ肵܂B

  u_ɕxށvƂ̂́AWIȃAvP[VvO} 2 
  ̗_^܂B

  o  ELF `g΋LCuƊȒPɍ쐬ł܂BʏA
     -fPICIvVtăRpCIuWFNgt@CA

        gcc -shared -Wl,-soname,libfoo.so.y -o libfoo.so.y.x *.o

  ƂR}hCŃN邾łB

  ꂪGɌ悤Ȃ΁A a.out `œ悤ȋLCu
  @䑶mȂ̂ł傤Ba.out `ŋLCu邽
  ߂ɂ́ACu 2 xRpCāACugł낤
  SẴf[^̂߂̋Ԃ炩ߗ\񂵁A\񂳂ꂽAhXԂ͑S
  Ă̊JҊԂœo^Ă˂΂Ȃ܂(ڂ
  <ftp://tsx-11.mit.edu/pub/linux/packages/GCC/src/tools-2.17.tar.gz> 
   20y[W𒴂镶)B

  o  I[fBO(쒆̃vOW[[hł@\)
     ƒPɎłB̋@\ Perl 5  Python, Java Ȃǂ
     gĂ܂(܂܂Ȏނ̃C^[v^̋NɎg܂)B
     I[fBO@\̂̎g super-fast MUD łB
     ꍇAvO~čċN邱ƂȂAVvOR
     pCēĂvOɑg݂ނƂ\ɂȂ܂B

  ̂悤ȗ_ɑ΂āAELF gƑxȂAƂ_
  B 1%  5% 炢xȂƂ̂ʐłAۂ̃eXg
  ʂƁA͓̍ɋNĂ邳܂܂ȃmCYɉBĂ܂
  x̂̂̂悤łBTeX  Postscript ̃r[/v^Ă
  ΁A SunSite Ȃǂ speed.comp-1.0.tar.gz Ƃ ELF  a.out ̑
  xr_肵ēǂނ̂ł傤B

  ELF `xȂ̂ ELF ̃CuR[h|WVCfyf
  głȂ΂ȂȂƂɗR܂(RpC -fPIC IvV
  Ӗ邱Ƃł)B|WVCfyfgł邽߁A̃W
  X^ItZbgێpɎgȂȂ΂ȂȂȂ܂B̂߁Aϐ
  ۑ̂Ɏg郌WX^Ă܂܂B 80x86 CPU 
  ͈ʓIɎg郌WX^XsĂ܂Bxɍô͋L
  CũR[hɌĂ邱ƂɒӂĂBAvP[V
  J[lł a.out  ELF ̊Ԃőx͂܂B

  1.1.  ELF ͉ł͂ȂH

  ELF Ήł邩ɂāǍL܂Ă܂B

     SVR4  Solaris ̃vO𓮂߂̂̂ł͂܂
        ELF  SVR4 VXeƓ`̃oCi`e'łA
        āA ELF ɂ SVR4 p̃vOˑR Linux łg
        킯ł͂܂B̊֌W̓fBXNtH[}bgƎĂ
        傤 -- Linux ̃vO MSDOS  Minix ̃tH[}bg
        fBXNɕۑA̋t\łAƂĂꂼ
        ̃VXẽ݂vOsł킯ł͂܂B

        (̃vOgɈˑ܂) x86 Unix p̃vO
        Linux œƂ\m܂񂪁A HOWTO ł́A
        ߂̐͒v܂B܂(tsx-11.mit.edu Ȃǂɂ)iBCS J[
        lW[ɂĒׂ邱Ƃn߂܂傤B

     vOȂ킯łAȂ킯ł܂B
        ƊȒPɋLCu悤ɂȂ̂ŁÃvO
        ԂŋʂĂR[hCu΁AʂƂĂ菬
        ȃvO쐬Ƃ\m܂񂪁AʓIɌ
        āARpCIvVw肵ăoCi a.out 
        ȂȂA܂܉^ǂARpC̃o[W
        Ⴄ߂ł傤BuvȂAƂтłB
        LCupăvOȂ߁AXbv
        A葽̃𗘗pł悤ɂȂȂ΁A
        邱Ƃ肦܂B

     SẴoCiuւKv͂܂
        ̎̕菇ɏ]΁AELF  a.out ̑oRpCē
        VXe\zł܂BVvO̓ftHgł ELF
        `ɃRpC܂A̓R}hCXCb`ŕύX
        ܂BELF a.out 𓯎ɓꍇA C Cu
        ǂ݂܂Ȃ΂ȂȂȂȂǁA̎gp͈Ȃ
        ܂BƂA̍̓ 6Mb ς񂾃}Vł͂قƂǋC
        ÂȂxł̂(8Mb ̃}Vł͂ƋCÂ܂
        )A܂Cɂ邱Ƃł傤BAEmacs ÓI
        Nꂽ Mosaic/Netscape ƂHvO
        𖈓̂悤 gĂłH :-)

     g[LƂ͊֌W܂
        ȂƂ̕ɂẮB

  1.2.  Ȃ ELF ֈڍsׂ

  ELF g悤ɃVXeAbvO[ĥɂ́A 2 ̗R
  ܂F܂ɁAq悤ɃvOƏ_ɂł邱
  ƁBɁAƂ֘A܂A悤ƂĂ(邢
  ͊ɂ)B C Cu GCC  ELF p݂̂[X
  ܂AȊÕvO̊J҂ ELF ̕֐iނ͂
  B

  ELF ̈萫ɕsĂlX܂(Șbł͂܂񂪁A
  R̂Ƃł)BLinux ̐E ELF  1994 N̉Ă瑶݂Ă܂
  B̌ 1995 N 5  6 ʂɌJ܂B݂ł́Av
  IȖ݂͑Ȃł傤B傫ȃo[WAbv鎞ɂ΂
  ΋N悤ɁAƓĂVXe󂵂˂ȂƊĂl
  邩m܂BłÃo[WAbv͂͂Ő[̋Zp
  ͂܂BJp̃VXe⑼̐lRpCoCi𓮂
  ꍇł́AELF ͕K{̂̂ɂȂ܂BJ[l v2.0 
  o[WAbvۂ ELF փXCb`邱ƂlĂB

  1.3.  ELF ւ̈ڍs̎d

   HOWTO ŏɏꂽɂ ELF ֈڍs@́Aɏqׂ
  @܂łBł́AiŊȒPɐVo[W
  CXg[ł悤ȃfBXgr[V݂܂BȂ̃}
  VD݂̐ݒɃ`[jO邱Ƃɂ鎞ԂlƁAȉ
  qׂ郉CuRpCႲɂĂ܂͕Kvȃf[
  ^SăobNAbvčŐV Red Hat  Debian CXg[Ă
  ܂m܂B

  Ă܂AȉɏqׂCXg[@͂ꎩgƂĂ͊ȒP
  Ȏdł(V\tgEFA_E[h鎞ԂΈꎞԂ
  Ώ\ł傤)AVXeċNłȂȂ悤Ȏs̉\
  ɂ܂BLCuo[WAbvȂA
  ldconfig  ldd ƂR}h䑶mȂA\[XR[hK
  vȃvO쐬̂ʓ|肷Ȃ΁AuȒPȕ@v
  Iԕł傤BȏꍇAƂɂɍlĂ݂
   -- uS ELF VXev̂߂ɂ́AN SẴoCi
  ̏ŃRpCȂ΂ȂȂ̂łB

  ł܂H

  2.  CXg[

  2.1.  obNOEh

  Ɏڍs菇̖ړÍAa.out  ELF ̑oRpCē
  Ƃ̂łVXe\z邱ƂłB̂߂ɂ͑õvO
  K؂ȋLCuȂ΂Ȃ܂B̂߂ɂ́A
  ̃VXeĂ悤ɁAP `/lib  /usr/lib 
  RpCɎw肳ꂽfBNgSĒT' Ƃ@
  Ƃ@KvłB

  @̒SɈʒûVXȅɈA邢͓A݂
  I[_łBa.out ̃vOpɂ /lib/ld.soA ELF ̃vO
  pɂ /lib/ld-linux.so.1 ꂼꓮI[_ɂȂĂ܂BRpC
  ⃊J͏o͂vOɃCuւ̐΃pX𖄂߂ނƂ
  ܂B̑ɁACuƓK؂ȓI[_ւ̐΃pX𖄂
  ݂܂BāAsɁA(I[_)K؂ȃCuɌт
  킯łBɏdvȔ閧܂ -- Ȃ킿AvOg
  Ă郉Cuʂ̃fBNgɓĂAvOăRp
  CKv͂ȂAld.so (邢ld-linux.so.1) ɐVfBNg
  Tɍs悤Ɏw邾ōς݂܂BꂪȉɏqׂfBNg
  ւ鑀̍qłB

  L瓱錋_ƂāAld.so 폜ړ肷΁AI
  NgĂvO͑Sċ@\ȂȂAƂƂ킩
  B͗ǂȂƂłAƈʂɍlĂ܂B

  łA{IȌvƂẮAELF p̊J(RpCACN
  [ht@CACu)A a.out p̂̂
  /usr/{bin,lib,include}ɒuAa.out ֘Ãt@C
  /usr/i486-linuxaout/{bin, lib, include} ֈڂƂɂ܂B
  /etc/ld.so.conf ̓Cuł낤ꏊSẴXgɂȂ
  Aldconfig  ELF  a.out 킯\͂Ă܂B

  Cȕꏊɂ̗͑O܂B

  o  ÂvÔ ld.so g킸ɍĂ܂B
     vO̓Cuʂ̏ꏊɈړΓȂȂ܂Bł
     Â悤ȃvOgĂȂ΁A libc.so* 
     libm.so /lib ɂ̂܂܎cĂ˂΂Ȃ܂BELF p̃Cu
     ͎o[WԍقȂĂ̂ŁAa.out ƓfBNg
     uĂ㏑Ă܂Ƃ͂܂BÂ X ֘ÃCu
     (version 6 ȑO)̂܂܂̏ꏊɎcĂ̂ł傤B
     AVo[W(libX*so.6 ͕ʂ̏ꏊɒu˂΂Ȃ܂BÂ
     Cu𓮂ƁAxview ֘ÃvOȂȂAV
     Cuʂ̏ꏊɒu悤ɂȂ ELF p X CuC
     Xg[ۂɌÂ̂ɏ㏑Ă܂܂B

     LȊÕCuKvƂ ld.so gĂȂvO
     Ȃ(ǂ̃vOY邩Ă΁AOẴv
     O ldd ŒׂāAKvȃCu`FbNĂ܂
     )A2 ̕@܂B́AELF CũfBNg
     ɓWJāAKvȃCuɏ㏑邩ǂmF邱Ƃ
     B㏑悤Ȃ΁AELF ł̃Cu /lib Ƃ͈Ⴄ
     ꏊAႦ /usr/i486-linux-lib ֒u悤ɂ܂B
     ldconfig ẴfBNgQƂ悤ɂ܂B̕
     @͖̃vO̐Vo[W肵ăRpC
     ܂ƂłB̓\[XR[h\Ȃ΁AACf
     Ał͂܂B

  o  /usr  / ʂ̃p[eBVɂȂĂꍇA/lib 瓮C
     úA/usr ̂p[eBVł͂ȂA[gp[eBV
     fBXNɒuKv܂Bȉ̗ł /lib-aout ɒu
     ɂĂ܂B

  2.2.  n߂O --- ӂׂ|Cg

  o  ELF tH[}bg̃oCi𓮂Ƃ̂ł 1.1.52 ȍ~̃J[l
     gĂ邱ƂmFĂB1.2.13 łvłBقƂ
     ǂ 1.3.x lA2.0.0(̕Ă邢鎞_ł̍ŐV)ł
     ܂A2.0 [XꂽƂȂẮAÂuŁṽJ[
     l(1.3.x) gKv͂Ȃł傤B

  o  Slackware ̋~}(rescue)fCXN̂悤 boot/root fBXNpӂ
     Ă܂傤BKvɂȂ邱Ƃ͂܂񂪁AKvɂȂ
     茳ɖƎUXȖڂɑ܂BlɁAmv  ln ̃t@Cp
     ̃R}h(ۂ̂ƂAshell ̓R}hŕKvȍƂ͂قډ\
     Ǝv܂)ÓINōĂƂuÂ\hvI
     ƂĖ𗧂m܂B

  o  AELF ̊JǂĂȂA/lib/elf  ELF p̃Cu
     (ʏ libc.so.4 Ȃ)邩m܂B̃Cu
     gAvP[V͍ăRpCKv܂B̏ł
     fBNg͍폜܂傤B/lib/elf fBNg͕svłB

  o  ŋ߂ Linux ł `FSSTND(t@CVXeX^_[h)' ɏ]āA
     WIȃt@CVXe͔zu悤ɂȂĂ܂A
     ȂVXe܂܂邱Ƃł傤Bȉ̐ `/sbin/
     ' g悤ɂȂĂ̂ɁÃVXeɂ /sbin fBN
     gꍇÃvO /bin  /etc ɂ͂łB
     VvOCXg[ꍇAɂ̖ɂ͒ӂĂ
     BR}hpXXg /etc  /sbin OɂȂ
     Ă΁AmȂ(/etc/ɂ)Âo[W̃R}hN
     Ă܂AȃG[Nꍇ܂B
  o  ELF ֈڍsۂɂ͒NRs[^gĂȂԂIԂV
     OE[U[[hōs܂傤BԈႢNȂ悤ɁAtb
     s[u[gčƂ̂ACfAł傤BłAl
     Ă̖͑̂ʔvfcĂƎvĂ܂ :-)

  2.3.  KvȂ̂́AAA

  KvȃpbP[ẂA <ftp://tsx-11.mit.edu/pub/linux/packages/GCC/> 
  <ftp://sunsite.unc.edu/pub/Linux/GCC/> \łBTCgƂ
  ̏ꏊɃ~[Ă܂̂ŁA\Ȃ߂ɂ~[TC
  g[󒍁F{Ȃ <ftp://ftp.iij.ad.jp/pub/linux/sunsite/GCC/> 
  <ftp://ftp.spin.ad.jp/pub/linux/sunsite.unc.edu/GCC/> Ȃ ] T
  ĂB̕ȂɂƂĂA݂ȂɂƂĂAǑ
  邱ƂɂȂ܂B

  ȉɎpbP[W(XgɂĂo[WV)
  KvłB_E[hāAꂼɕtĂ镶ǂ
  ݂ĂFKvȕ͂Ă release.packagename ƂO
  ȂĂ܂BȉɎĂo[WVo[W肵
  ꍇAK[Xm[gɖڂʂĂBVo[W
  ł̓CXg[̕@ςĂ邩m܂B

  vO͏Ƀ\[XRpCƂlłAȉɎvO
  ̓oCił肵ĂgɂȂ邱Ƃ߂܂B
  vÔقƂǂ a.out ł̃VXe ELF `𐶐悤ɂ
  ݒ肳Ă炸Aa.out ̊ŃRpC悤ƂĂʂłB

  2.3.1.  ΂ɕKvȂ

  o  ld.so-1.7.14.tar.gz --- VIJB\[XƃoCi 
     ܂Bȍ~̃o[Wł a.out oCigꍇłJ[l
      ELF T|[g@\g݂łKv܂B 1.8.1 
     Vo[W̏ꍇ̓CXg[O J[
     l ELF T|[g@\g݂܂Ă邩mFĂB

  o  libc-5.3.12.bin.tar.gz  --- ELF `̋LCu C ƐwC
     uȂ֘AÓICu₻găvOR
     pĈɕKvȃCN[ht@CĂ܂BKvł
     \[XR[hł܂ARpCɂ͎Ԃ
     AELF VXeĂȂƃRpC邱Ƃ͕s\ł
     B

  o  gcc-2.7.2.bin.tar.gz --- ELF Ή C RpCBVfBNg
     ECAEg𗝉 a.out Ή C RpCĂ܂B
     gcc ŃRpCꍇ(ƂĂ ELF ɈڍsĂ
     ̕ȒPƋCÂł傤)AGNU ̃IWĩ\[XR[h
     gcc-2.7.2-linux.diff.gz pb`Ăł傤B

  o  /binutils-2.6.0.12.bin.tar.gz --- Linux pɃpb`Ă GNU oC
     i[eBeBłB̃pbP[Wɂ gas  ldAstrings Ȃ
     ̃vO܂܂ĂAC RpCgɂ͕K{ɂȂĂ
     Bf̂܂܂ GNU binutilities (Ⴆ prep.ai.mit.edu ɂ悤
     )ł͑ɂȂȂƂɌ䒍ӂBǂĂŃRp
     Cꍇ GNU ̂̂ł͂ȂALinux pɃpb`𓖂Ă
     binutils-2.6.0.12.tar.gz gĂB

  o  ncurses-1.9.9e.tar.gz --- SVR4 ݊ curses CuŁAꂩ
      Linux puW curses CuvłƍlĂ܂B\[
     XR[h  <ftp://prep.ai.mit.edu/gnu/> ̂悤 GNU ̃TCgA
     邢  <ftp://ftp.netcom.com/pub/zm/zmbenhal> łA
     tsx-11 ɂ̓oCipbP[WpӂĂ܂B̃pbP[WC
     Xg[鎞ɂ͊ɊS ELF ꂽJɈڍsĂ
     Ȃ̂ŁA}Vp[ꍇ̓\[XR[h肵
     傤B

  o  gdbm-1.7.3.tar.gz ---  Unix ̕WƂȂĂ dbm  ndbm [`
     ƌ݊́AgnbV@\f[^x[X[`łB\[X
     R[h  <ftp://prep.ai.mit.edu/gnu/> ł܂BLCu
     łɂ  <ftp://ftp.uk.linux.org/pub/Linux/libc/non-
     core/gdbm.patch> 𓖂ĂĂB̃pb`͂̑̃oO
     CĂ܂ (Makefile ɂꕶ typo Ԉނ̃t@
     CbLOgXȂ)B

  2.3.2.  ̑

  LȊOɂAK{ł͂܂񂪓肵ĂCu
  t@C܂BȉɎ̂ ELF Ŏg߂Ƀo[W
  AbvȂ΂ȂȂނ̃vOłB̌̕㔼ł́A
  ̂܂܂łĝ́AELF `ŃRpCɂ͏Co[W
  AbvKvȃvOЉ܂BlbgƂ̐ڑxꍇ(Ⴆ
  tbs[̔ 5 ԕĂ邭炢Ԃ̂悤)Aȉ
  ̃t@C͔΂āAݒIOɂ̌̕㔼ɂ邻ꂼ
  vOɂĂ̋Lqƍă`FbNĂB

  o  a.out ݊CupbP[WAlibc.so-4.7.6B

     ̃pbP[WuIvVvɂȂĂ̂́A茳ɂ̃o
     Ci𓮂Ƃ̂ł a.out Cu΁A͂̂܂
     g邩łB̃Cu͉炩̗Rō a.out `̃v
     OJ˂΂ȂȂɕKvɂȂ܂B

  o  BSD curses

     libcurses.so.1 KvƂoCi΁AꂪÂ BSD curses
     CułB̃Cũ\[XR[ĥ͍Ƃ댩
     Ȃ̂łÃCułȂvO͂HȂ
     łB̎̃vO΁Ancurses g悤ɃRpC
     ł傤BłȂꍇ libcurses.so  tsx-11
     Ƃ̃~[TCgɂ libc-5.0.9.bin.tar.gzɊ܂܂Ă܂B

  o  Berkeley db

     V 4.4 BSD p libdb f[^x[X[`łB\[XR[h
     <ftp://ftp.cs.berekeley.edu/ucb/4bsd/db.1.85.tar.gz/> ŁALinux 
     LCup̃pb`
     <ftp://ftp.uk.linux.org/pub/Linux/libc/non-core/db.patch> ɂ
     B

  o  C++ p̃vO

     gcc pbP[W g++ ƋɔzzĂ܂ALp C++ \tg
     EFARpCɂ libg++-2.7.1.4.bin.tar.gz KvłB
     g C++ gĂ܂񂪁AƂɂƁÃCu
     \[XR[hRpĈ͌\ςłBłAo
     Cił߂܂B

  o  GNU ݊ termcap

     ncurses ւ̈ڍs ELF ւ̈ڍsƓɋN킯ł͂܂B
     ̐lvOgAvP[V̒ɂ͂̃
     CugĂ̂邩m܂Bgdb ̂
     BLCufobOǁAgdb gփN
     Ă郉CuOɂč悤ȏꍇAÓIɃNoC
     igׂł傤B̏ꍇA{ termcap  ncurses Ɋ܂
     Ă termcap ݊̃[`ɔׂĂƏƂɋCÂ
     傤B

     termcap-2.0.8.tar.gz  tsx-11 ł܂B GNU Termcap
     Ƃ͈قȂ܂ASɌ݊ł(Ⴂ̓G[`FbN̕
     )B̓\[XR[h̃pbP[WɂȂĂ܂B

  o  MAKEDEV

     ԂŋNƁAMAKEDEV ͊̃foCXt@C폜
     ōēx쐬邱Ƃ܂B/dev/zero 폜Ă܂΁A
     ̃o[W ld-linux.so.1 ȂȂ܂BVo[W
      MAKEDEV 
     <ftp://sunsite.unc.edu/pub/Linux/system/Admin/MAKEDEV-C-1.5.tar.gz>
     
     <ftp://sunsite.unc.edu/pub/Linux/system/Admin/MAKEDEV-2.2.tar.gz>.
     ɂ܂B

  o  modules-2.0.0

     W[gĂꍇAbinutils o[WAbv
     1.3.69 ȑÕW[E[eBeB͎gpłȂȂ܂BV
     W[E[eBeB  <http://www.pi.se/blox/> ɂ
     B

  o  낢ȋLCu܂ X EBhEVXeB

     VvO ELF `ɂȂAELF `̃vO a.out 
     Cuł͎gpł܂̂ŁAX ɊւvOJ
     AV X EBhEVXeꎮCXg[Kv
     BXFree86 3.1.2  a.out  ELF ̑ǒ`Œ񋟂Ă
     BXFree86 ̔zz ftp.xfree86.orgłAɂ̃~[
     TCg܂(Ⴆ ftp.iij.ad.jp)̂ŁAlbg[NIɋ߂T
     Cg肵ĂB̃TCgcommonelffBNg
     ȉ肵A/usr/X11R6/lib/X11/config/linux.cf t@C̒
     ȉ2sNÔƂ

       #define LinuxElfDefault         NO
       #define UseElfFormat            NO

  YESɂĂBȂ xpm RpCۂ jumpas Ő̂
  c̊ȃG[܂B݂ XFree86 ̃oCi ELF 
   termcap Culibtermcap.so.2 CXg[ĂKv
  邱ƂɒӂĂB

  Motif gĂꍇ́AELF ꂽ Motif Cu񋟂\
  邩x_[ɖ₢킹ĂB Motif ͎gĂȂ̂
  ̖ɂĂ܂B

  o  ELF Ɠ Linux 2.0 փAbvO[hꍇAJ[l̃\[X
     R[hƋɔzzĂ Documentation/Changes t@CYꂸ
     `FbNāAKvȂ̂ǂœł邩ׂĂB

  2.4.  t@CVXe̍Ē

  `ƁAȉŁu폜vƌꍇAuobNAbvĂ
  폜vƓǂ݂Ă :-) ܂A[ċzāAA

  GbZX --- oCiECXg[

  1. a.out oCiړ邽߂̃fBNg쐬

       mkdir -p /usr/i486-linuxaout/bin
       mkdir -p /usr/i486-linuxaout/include
       mkdir -p /usr/i486-linuxaout/lib
       mkdir /lib-aout

  2. IJ̃pbP[W ld.so-1.7.14 ̃\[XR[hu
     ꏊœWJAoꂽ ld.so-1.7.14/instldso.sh XNvg
     ǂłB{ɕWIȃVXegȂAsh
     instldso.sh săCXg[邱Ƃł܂AW
     IȂ̂g݂łꍇA蓮ŃCXg[邱ƂɂȂ
     BuWIȂ́vƂ́A

     o  zsh (̃o[W zsh  $VERSION Ƃϐ`
        Ainstldso.sh 悤ł)

     o  /lib/elf  /lib ւ̃V{bNN(͕KvȂ킯ł͂
        ܂񂪁AXL[fBXNKvɂȂ悤ȏꍇɂ͑̈
        ߂ɂȂ邩m܂)

  3. /etc/ld.so.conf CāA /usr/i486-linuxaout/lib (Kv
      /lib-aout )A/sbin/ldconfig -v  ĎsāAVfB
     NgTɂ`FbN܂B

  4. /usr/*/lib ɂSĂ a.out `́uCuv
     /usr/i486-linuxaout/lib Ɉڂ܂Bڂ̂ lib*.so* 
     lib*.sa*Alib*.a Ȃǂ́uCuvłāȂ̃t@C
     Kv͂܂B /usr/lib/gcc-lib Ȃǂ܂Ă͂܂
     B

  5.  /lib `FbN܂Blibc.so*  libm.so*Alibdl.so* ͂
     ܂܂ɂĂ܂BX ̃Cu(libX*.so.3*ւ̃V{bN
     N̂܂܂ɂĂ܂傤 --- XView ̃vÕ
     CugĂ邩m܂Bld.so* Ald-linux.so* Ȃ ld
     Ŏn܂Ăt@Ĉ܂܂ɂĂ܂Bc̃Cu
     Ă()F [gp[eBV /usr ΁A
     t@C /usr/i486-linuxaout/lib Ɉڂ܂B/usr ʃp[
     eBVɃ}EgĂ΁A /lib-aout Ɉڂ܂B
     ldconfig -v Ă݂ĂB

  6. binutils CXg[鏀ƂāA /usr/lib/ldscripts fB
     Ng΍폜܂(binutils ̃fBNgVɍ
     ܂)

  7. /usr/bin ɂ(ld86  as86 ȊO)SĂ ld  as ̃Rs[폜
     ܂B

  8. /usr/include ȉ̃fBNg폜܂BWIȃVXeł́A
     ɂt@Ĉ̓VXéujvƂȂ@\SĂ
     Alibc ƋɔzzĂ܂BȊOɂAȂgCX
     g[AgĂfBXgr[V̍쐬҂CXg[
     t@C͂łB𐮗邽߂ɁA0 蒼
     Ƃ߂܂B܂/usr/include /usr/include.oldɕ
     XAlibc-5.2.18.bin.tar.gz[gfBNgœWJ܂B

  9. binutils pbP[WCXg[܂B̂߂ɂ tar - xvzf
     binutils-2.6.0.12.bin.tar.gz -C / ߂̕@łB

  10.
     gcc pbP[W̓[gfBNgœWJKv܂Bgcc
     pbP[W͂̃t@C /usr/bin ɁAc̑̃t@C
      /usr/lib/gcc-lib/i486-linux/2.7.2  /usr/lib/gcc-
     lib/i486-linuxaout/2.7.2 ɃCXg[܂B gcc CXg[
     ɂ́A܂

       $ tar ztf gcc-2.7.2.bin.tar.gz

  ƂāAĂ邩`FbNĂBcĂt@C
  ɏ㏑悤ł(Ⴆ Gnu ADA CXg[Ă
  /usr/bin/gcc cĂł傤)A܂̃t@CSȏ
  Ɉڂ܂B̏ŁA

       # tar -zxf gcc-2.7.2.bin.tar.gz -C /

  Ƃ܂B̎_ŁAgcc -v  gcc ̃o[Wm߂AeXg
  p̃vORpCāAƓĂ邩`FbNĂ
  B

       $ gcc -v
       Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.2/specs
       gcc version 2.7.2
       $ gcc -v -b i486-linuxaout
       Reading specs from /usr/lib/gcc-lib/i486-linuxaout/2.7.2/specs
       gcc version 2.7.2
       $ ld -V
       ld version 2.6 (with BFD 2.6.0.2)
         Supported emulations:
          elf_i386
          i386linux
          i386coff

  ɓ`I ``Hello, world'' vOĂB̃vO
   gcc  gcc -b i486-linuxaout ŁARpCA a.out  ELF̃R
  pCݒ肳Ă邩mFĂ݂܂傤B

  I܂āH撣āB܂̃CucĂ
  ܂B܂AV{bNNႲᒣȂƂ܂B
  āAA

   V{bNN

  11.
     ̃vO(ɂ X ֘AvO) /lib/cpp 
     g܂B/lib/cpp  Linux ł
     /usr/lib/gcc-lib/i486-linuxversion/cppɂ܂B܂ł̒iK
     /lib ̉ɂV{bNN͑Sč폜Ă͂Ȃ̂ŁA
     N𒣂蒼Kv܂B

       # cd /lib
       # ln -s /usr/lib/gcc-lib/i486-linux/2.7.2/cpp .

  12.
     /usr/include ȉ /usr/include.old ȉɈڂƁAJ[l̃\[X
     R[hւ̃V{bNNȂ̂ŁA

       # cd /usr/include
       # ln -s ../src/linux/include/linux .
       # ln -s ../src/linux/include/asm .

  ƂăN𒣂蒼ĂB

  (ł̓J[l̃\[XR[h /usr/src/linux ɂƉ肵Ă
  BłȂꍇAK؂ȏꏊw肵Ă)

  13.
     FSSTND ̘ÁAł utmp  wtmp t@C /var/adm 
     /var/run  /var/log ɂꂼڂƂɂ܂BKvɉ
     /var/log  /var/adm Autmp  wtmp ݈̌ʒuփN𒣂
     悤ɂĂB͈ȉ ls -l Ɏ悤Ȕzuɂ܂B

       $ ls -ld /var/adm /var/log /var/run /var/log/*tmp /var/run/*tmp
       lrwxrwxrwx   1 root     root            3 May 24 05:53 /var/adm -> log/
       drwxr-xr-x   9 root     root         1024 Aug 13 23:17 /var/log/
       lrwxrwxrwx   1 root     root           11 Aug 13 23:17 /var/log/utmp -> ../run/utmp
       -rw-r--r--   1 root     root       451472 Aug 13 23:00 /var/log/wtmp
       drwxr-xr-x   2 root     root         1024 Aug 13 23:17 /var/run/
       -rw-r--r--   1 root     root          448 Aug 13 23:00 /var/run/utmp

  FSSTND ̑ŜɂĂ sunsite ɂ  LDP ̃A[JCu
  <ftp://sunsite.unc.edu/pub/Linux/docs/fsstnd/>Ȃǂɂ镶
  B

  ߂łƂI

  ܂ł(ȂƂ)Sɋ@\ ELF ̊J͂
  BāA΂炭ÂɊт݂߂܂傤B

  dvȃ\[XR[h̃pbP[W

  14.
     ncurses ̃CXg[͂Ȃ莞Ԃ̂dłBƂA
     啔̎Ԃ̓RpCȂlbgj[XǂނƂɔ
     ł܂Btar t@CWJ INSTALL t@CA
     uLinux VXeṽfBXgr[V̍쐬/܂Ƃߖł
     AƎvēǂł݂܂傤BȂ킿ARpC̍ۂɂ́AA
     ȉ̂悤ȃR}hCŐݒ肷KvAƂƂłB

       $ ./configure --with-normal --with-shared --disable-termcap --enable-overwrite --prefix=/usr

  ftHgɂȂĂ^[~i̎ނɂӂ܂傤B1.3  2.0
  ̃J[lł́AÑftHg̃^[~i linux ɂȂĂ
  BꍇɂĂ /etc/inittab C console  getty ɂȂ
  ΂ȂȂm܂B

  [gp[eBV̂n[hfBXN /usr/lib/terminfo 
  Ancurses  `fallback' @\ł܂Kvł傤B̋@\
  q INSTALL t@CɐĂAPłAދȎdɂȂ
  (Cu 2 x쐬Kv܂)Bfallback Ƃ linux 
  vt100 g΂ꍇAKȂƂɊ fallback.cɒuւ\
  fallback.c  ftp.uk.linux.org
  <ftp://ftp.uk.linux.org/pub/Linux/libc/non-core/fallback.c> ɗpӂ
  Ă܂B

  ncurses CXg[A/usr/lib ȉőʓ|ȎdKv
  ܂B͕s`ȍƂȂ̂ŁAł̂łȒPłBo[
  WԍsvɂȂĂ邱ƂɒӂĂB͏X
  ANɊQ킯ł͂܂B

     a. /usr/lib/libncurses.so.1.9.9e  /lib ɈڂAVO[U[
        [hł curses vO悤ɂ܂B[gp[eB
        V  /usr/lib ꍇAɂ̍Ƃ͕svłA
        ĂQ͂܂B

     b. /lib fBNg libncurses.so.1.9.9e  /libncurses.so.3.0
        փN𒣂܂B

     c. ̑A/lib/libncurses.so.3.0  /usr/lib/libncurses.so 
        /usr/lib/libcurses.so A /usr/lib/libtermcap.so ւ̃NKv
        m܂B

  l̂hEȐlɊȒPɌƁAȉ̂悤ȍƂɂȂ܂B

       # cd /lib
       # mv /usr/lib/libncurses.so.1.9.9e .
       # ln -s libncurses.so.1.9.9e libncurses.so.3.0
       # cd /usr/lib
       # ln -s /lib/libncurses.so.3.0 libncurses.so
       # ln -s /lib/libncurses.so.3.0 libcurses.so
       # ln -s /lib/libncurses.so.3.0 libtermcap.so

  15.
     gdbm ̃CXg[B\[XR[hp̃fBNgŃ\[XR[hW
     JAgdbm.patch āAREADME  INSTALL t@Cɖڂʂ܂B

     \z̎菇͈ȉ̂悤Ȃ̂ɂȂ͂łB

       $ tar zxf gdbm-1.7.3.tar.gz
       $ patch -p0 < gdbm.patch
       $ cd gdbm-1.7.3
       $ ./configure --prefix=/usr
       $ make
       $ make progs
       $ su
       # make install
       # make install-compat
       # cd /usr/lib
       # ln -s libgdbm.so.1 libgdbm.so
       # ln -s libgdbm.so.1 libgdbm.so.2
       # ldconfig

  Ō 2 ͌Âo[WƂ̌݊ۂ߂łBŋ߂̃fBXg
  r[Vł libgdbm.so.2 Ƃo[WɂȂĂ܂A
  libdgbm.so.1 ƑSR[hŁAo[WԍjIȗR
  ԈႦĕtĂ̂łB

  IvṼ\[XR[hpbP[W

  ʂɁAꂼ̃pbP[Wɕt̎wɂăCXg[
  vȂ̂ŁAŌJԂƂ͂܂BAO 2 A

  16.
     GNU  termcap Kvȏꍇ(ɌƕK{ł͂܂񂪁A
     ۂɂ XFree86 ̃oCiKvƂ̂ŁAقڕK{ł傤)A\[
     XR[h\zKv܂AKvȍƂ͈ȉɎx
     B

       $ tar zxf termcap-2.0.8.tar.gz
       $ cd termcap-2.0.8
       $ make
       $ su
       # cp libtermcap.so.2.0.8 /usr/lib
       # ldconfig

   make install ͎sȂ悤ɁBmake install  ncurses 
  vOꕔ㏑Ă܂܂B̃Cug悤ɃRp
  Cꂽ̃oCiĝł͂ȂAVɂ̃Cug
  vORpCꍇAwb_[t@CƃX^eBbNECu
  ǂʂ̏ꏊɗpӂ -I  -L tOgăRpCɂ
  ̏ꏊ𖾎悤ɂĂB͑̕̕ɔׂċLqB
  Ǝv邩m܂񂪁Aɂ͗R܂BȂ킿A
  ǂ̗RȂA termcap g邱Ƃ͂߂łȂ
  B

  17.
     libdb ͈ȉ̂悤ɍ쐬܂B

       $ tar zxf db.1.85.tar.gz
       $ patch -p0 <db.patch
       $ cd db.1.85/PORT/linux
       $ make
       $ su
       # mkdir /usr/include/db
       # ldconfig
       # cp libdb.so.1.85.3 /usr/lib ; ( cd /usr/lib && ln -s libdb.so.1 libdb.so )
       # cp ../../include/*.h /usr/include/db

  ӓ_ƂĂ

     o  PORT/linux/OTHER-PATCHES ĂĂ͂܂B db.patch Ɋ܂
        Ă܂B

     o  gdbm ̃CN[ht@CƏՓ˂̂ŁACN[ht@C
         /usr/include ȊO̕ɃCXg[Alibdb KvȃvO
        RpCꍇAC RpC̃R}hC
        -I/usr/include/db Ǝw肵ĂB

  2.5.  ǂɂȂ̂(fBNg\̃AEgC)

  ȉɎ͍̂܂łɃCXg[Ăt@ĈȂ肨܂
  TςłBguV[eBO폜ׂ̂߂ۂɂp
  B

  2.5.1.  /lib

  o  IJ ld.so (a.out p) ld-linux.so.1 (ELF p)B ҂ƂV
     {bNNm܂񂪁AwĂt@CƑ݂
     邱ƂmFĂB

  o  {IȋLCu libc.so.4 libm.so.4(a.out)B̓V{
     bNNɂȂĂ܂At@CwĂ邩mF
     B

  o  {IȋLCu libc.so.5  libm.so.5A
     libdl.so.1Alibncurses.so.1A libtermcap.so.2 (ELF p)B
     V{bNNɂȂĂ̂ŁAt@CwĂ邩
     mFĂB

  2.5.2.  /usr/lib

  o  ĂɂCuȊÕt@CƃfBNg

  o  libbfd.so*, libdb.so*, libgdbm.so* Ƃ ELF `̋LCu
     

  o  ܂܂ȃV{bNNB/lib  /usr/lib ɂ郉Cuւ
     V{bNNɕKvłBN̖O͖{̃t@C
     o[Wԍ̂łBႦ΁Alibc ɂČƁA

       lrwxrwxrwx   1 root     root           14 May  2 20:09 /lib/libc.so.5 -> libc.so.5.3.12
       -rwxr-xr-x   1 bin      bin        583795 Apr 25 06:15 /lib/libc.so.5.3.12
       lrwxrwxrwx   1 root     root           12 Oct 27  1995 /usr/lib/libc.so -> /lib/libc.so.5

  ƂȂ܂B̃ŃAN ldp܂B

  o  libbsd.aAlibgmon.aAlibmcheck.a  /lib  /usr/lib ɂ ELF `
     ̋LCueXɗpӂĂlib*.a CuB
     ELF `̐ÓICułB啔̐lɂƂẮALCu
     ƓÓICuĂقǗL͂Ȃł傤B
     ELF `gꍇɂ́B ELF ł́ALCugȂ gcc
     -g IvVw肷邱Ƃ\Ȃ̂ŁAÓICug݂ނ
     R͂قƂǂ܂BłACugfobO
     ̂߂ɁA̐ÓICu͎cĂł
     B

  o  crt0.o  gcrt0.oB a.out `́uvONṕvt@
     CłBɔ邱ƂȂ΁ASĂ a.out `̃vO
     ɂ̂̈̃t@C܂N邱ƂɂȂ܂B

  o  crt1.oAcrtbegin.oAcrtbeginS.oA crtend.oAcrtendS.oAcrti.oA
     crtn.oAgcrt1.oB ELF p̋Npt@CłB͏L
     *crt0.o Ɠl̋@\ ELF `̃vOɑ΂čs܂B

  2.5.3.  /usr/lib/ldscripts

  o  ̃fBNǵA̖ʂA ld p̊ehCoXNv
     guƂłB̃fBNgɂ͈ȉ̂悤ȃt@C
     ܂B

       $ ls /usr/lib/ldscripts/
       elf_i386.x      elf_i386.xs     i386coff.xn     i386linux.xbn
       elf_i386.xbn    elf_i386.xu     i386coff.xr     i386linux.xn
       elf_i386.xn     i386coff.x      i386coff.xu     i386linux.xr
       elf_i386.xr     i386coff.xbn    i386linux.x     i386linux.xu

  2.5.4.  /usr/i486-linux/bin

  o  ar, as, gasp, ld, nm, ranlib, strip

      /usr/bin ɂۂ̃oCipvOւ̃V{
     bNNłB

  2.5.5.  /usr/i486-linuxaout/bin

  o  a.out p̃AZu as ƁÃ}NEvvZbT gasp 
     ܂B

  o  ar, ld, nm, ranlib, strip ---  /usr/bin ɂۂ̃oCi
     pvOւ̃V{bNNłB

  2.5.6.  /usr/i486-linux/lib

  o  ldscripts  /usr/lib/ldscripts ւ̃V{bNNłB

  2.5.7.  /usr/i486-linuxaout/lib

  o  a.out p̋LCu{̂ lib*.so* ܂B a.out `̃v
     O𓮂ɂ͕K{łB

  o  lib*.sa  a.out `̋Lt@C̃X^u(stub)łBLCu
     g vO a.out `ɃRpC邽߂ɕKv
     Ba.out `ɃRpC邱Ƃ΍폜Ă܂Ă\
     ܂B

  o  lib*.a  a.out p̐ÓICułBa.out `ŐÓIɃN
     ꂽoCi邽߂ɕKvł(Ⴆ -g IvVtŃRpC
     鎞)B̃t@C a.out `̃vO쐬Kv
     ΍폜č\܂B

  o  ldscripts  /usr/lib/ldscripts ւ̃V{bNNłB

  2.5.8.  /usr/lib/gcc-lib/i486-linux/2.7.2

  o  ̃fBNgɂ ELF `̃vORpC邽߂ gcc
     2.7.2 ߂Ă܂B

  2.5.9.  /usr/lib/gcc-lib/i486-linuxaout/2.7.2

  o  ̃fBNgɂ a.out `̃oCio͂邽߂ gcc 2.7.2
     ꎮ߂Ă܂B gcc ͐V(Ŏ悤)fB
     Ng\𗝉@\Ă܂B a.out ɃRpC
     KvȂꍇÃfBNg폜Ζ 4MB ߖł܂B
     pb`ς݂łȂ 1.2 V[ỸJ[lRpCꍇɂ́A
     ̃RpCKvȂƂYȂB

  2.6.  悭G[ \\\ ĂȂŁI

  (ȉ̓ȇ啔͐e؂ȃ[ł̂ł)

     Ԉ̂𓮂āAȂȂĂ܂I
        ̏ꍇł shell ͓Ă͂Ȃ̂ŁAHv shell
        ̑g݂݋@\łȂ̎dȂƂ\łBecho *
         ls ̑ɎgAecho >>filename ̓t@Cɏ̂Ɏg
        ܂Bldconfig ÓIɃNĂ邱ƂYȂBႦ
        ΁Alibc.so.4 Ԉ lib-aout fBNgɈڂĂ܂
        Aecho "/lib-aout" >>/etc/ld.so.conf ; ldconfig -v΁A
        ܂B /lib/ld.so 𓮂Ă܂ꍇA ÓIɃNꂽ
        ln ΁Asln /sillyplace/ld.so /lib/ld.so邱ƂŁA
        ł傤B

      bad address
        ELF `̃vO𓮂ƂƁAbad address G[
        ɂȂꍇAAJ[l 1.3.x  x <3 ̃o[Wg
        Ȃ̂ł傤Ão[WgĂ͂܂B͑
        Aň̃o[ẄłB2.0 փo[WAbv邩
        1.2.13 Ƀo[W𗎂܂傤B悤ȊŃJ[lp
        jbNƕ񍐂Ăl܂A͏ڂׂ
        ܂BȂȂAJł̃o[WgƂvȂA
        gKvƂȂ̂ŁAŐVł̒ǂ͂ĂȂ
        łB

      gcc: installation problem, cannot exec something: No such file or
        directory
        a.out `ŃRpC悤Ƃ(something ͂̕Ă
        ꍇ cpp  cc1 ̂͂ł)ÃG[ꍇAۂ cpp
         cc1 ɖ肪邩A

          $ gcc -b -i486-linuxaout

     ̂悤ɓ͂̂ł傤Bۂɂ

          $ gcc -b i486-linuxaout

     Ɠ͂Ȃ΂Ȃ܂B`i486'̓̕_bVł͂܂Ȃ
     ƂɒӂĂB

     make: *** No targets specified and no makefile found.  Stop.
        ̃G[oꍇAmake Ƀpb`ĂčăRpCĂ
        AÂo[W make VXêǂɎcĂ̂
        傤B

      no such file or directory: /usr/bin/gcc
        ۂɂ̃t@Ĉ݂ɂG[o(gcc ȊO
        vOłȂ邩m܂)B̏ꍇAELF ̓I[
        _[ /lib/ld-linux.so.1 CXg[ĂȂA炩̗R
        Ń[_[ǂ߂ȂԂɂȂĂ̂ł傤BɏqׂCX
        g[Xebv 2 ǂ /lib/ld-linux.so.1 𐳂CX
        g[ĂB

      not a ZMAGIC file, skipping
        ̃G[ ldconfig oĂ܂BÂo[W ld.so 
        pbP[Wĝ悤Ȃ̂ŁAV̂肵ĂB
        xACXg[̃Xebv 2 ǂłB

      _setutent: Can't open utmp file
        ̃bZ[W xterm N 3 so͂邱Ƃ
        ܂BCXg[菇̍Ō̂ɂ FSSTND ̒
        ǂłB

  3.  vO̍\z

  3.1.  ʓIȃvO

  vO ELF `ŃRpCꍇA̂悤 gcc g
  Ba.out `ŃRpCꍇAgcc -b i486-linuxaout ƂĂ
  B

       $ cat >hello.c
       main() { printf("hello, world\n"); }
       ^D
       $ gcc -o hello hello.c
       $ file hello
       hello: ELF 32-bit LSB executable i386 (386 and up) Version 1
       $ ./hello
       hello, world

  āA낻ua.out `̃RpCo͂oCĩftHg
   a.out ȂAELF RpC̏o͂oCĩftHg͉Ƃ
  ́HvƂɓׂł傤B́Auς a.outvȂ
  łBcOłH :-)

  3.2.  Cu̍

  libfoo.so LCuƂč\zꍇA{IȎ菇͈ȉ̂
  ɂȂ܂B

       $ 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
       $ export LD_LIBRARY_PATH=`pwd`:$LD_LIBRARY_PATH

  ɂAlibfoo.so.1.0 ƌĂ΂鋤LCu ld p̃V{b
  NN(libfoo.so)AIJp̃V{bNN(libfoo.so.1)
  ܂BCũeXg̍ۂ́AŌɎ悤ɁÃ݂fB
  Ng LD_LIBRARY_PATH ɉĎĂ݂܂傤B

  CuƂmFł΁AK؂ȏꏊAႦ
  /usr/local/lib ɈڂAN𒣂蒼܂傤B libfoo.so ̃N
  libfoo.so.1 ֒Ă̂ŁAo[Wԍ̃}Ci[`FW
  ĂN𒣂蒼Kv͂܂Blibfoo.so.1.0  libfoo.so.1
  ւ̃ŃAẴVXeł ldconfig NɍXV܂B

  $ su
  # cp libfoo.so.1.0 /usr/local/lib
  # /sbin/ldconfig
  # ( cd /usr/local/lib ; ln -s libfoo.so.1 libfoo.so )

  3.3.  a.out `̍\z

  ELF ̒łÂ a.out `̃oCi쐬Ȃ΂ȂȂꍇ
  邩m܂Buʂ́vvȌꍇAKvȂƂ gcc 
  N鎞 -b i486-linuxaouttOg a.out p̃RpCN
  A() ld Nꍇ -m i386linux tOg܂Ba.out
  ` DLL LCu𖢂ɕKvƂĺAAzɁB̒m
  ł́AꌾŌ΁u܂vBʂ̕@䑶mȂ΃[Ŏ
  ɋĂB

  4.  ELF ppb`ELF ς݂̃vO

  ܂łŁAD݂ȂΏI邱Ƃ\łBELF `̃vO
  RpCē߂ɕKvȊ͑SăCXg[ł܂B

  uӎvIȊϓ_⃁gpʂŏ邽߂ɂ́Ag̃vO
  S ELF `ŃRpCȂ邩m܂BELF `
  ̍ăRpC͂قƂǂ̃Gh[U[p̃AvP[Vł͂
  PłBȂAɂĉ炩̑ÔvO
  A͈ȉ̂悤ȗRŃG[ɂȂ邩m܂B

  o  AZũA_XRA̎g̈ႢFa.out ̎s`ł͊O
     xɂ _(A_XRA) ɕtĂ܂AELF ̎s`ł͂
     ȂĂ܂B́A菑̃AZuR[hg݂܂Ȃ
     ɂ͂Ȃ܂B_foo ̌`̃xS foo ɖ|󂵂Ă
     A(ڐA߂) EXTERNAL(foo) ̂悤ȃ}Npӂ
     āA(__ELF__ `Ă΂̂܂ܕϐԂA`ĂȂ
      _ t悤ɂ̂ł傤B

  o  libc 5  libc 4 ̈ႢBႦ locale T|[gւ̃C^[tFCX
     ͕ύXĂ܂B

  o  gĂoCi`AvP[V\zߒQƂĂ
     BႦ emacs ͂̈ŁAC[Ws`ƂăfBX
     Nɏ̂ŁAs`̃tH[}bgvOĂ
     Kv܂B

  o  LCu⋤LCu܂ރAvP[V(X11 ₷
     )B̏ꍇAELF `ŋLCu悤ȕ@ɏC
     Kv܂B

  ƂɂAȉ 2 ̃Xg܂Bŏ̃Xg͊ ELF `
  o[W쐬Ă(Ȃ킿AELF `ŃRpCɂ
  Vo[W肷΂)ŁA2 ߂̃Xg͑O҂
  pb`KvȃvOłB

  4.1.  AbvO[h΂́F

  o  Dosemu

     ݂ł dosemu  ELF `œ܂BAMakefile ɑ̏C
     KvȂ悤łBŐVł dosemu 
     <ftp://tsx-11.mit.edu/pub/linux/ALPHA/dosemu/> ł܂B
  o  e2fsutils

     e2fs t@CVXep̊e탆[eBeB e2fsutils ́Ao[W
      0.5c ȍ~͕̂̂ύXȂ ELF `ŃRpCł܂B

  o  Emacs

     Emacs ɂ 2 ̐ݓIȖ肪܂B(i) Emacs ́A܂ŏK
     ̃VXe𓮂āAKv lisp t@CSēǂ݂񂾏ŁA
     C[Ws`̃t@CƂĒڃfBXN֏AƂ
     Ȃς菇ō쐬܂B(FSF) Emacs 19.29  XEmacs
     19.12(Ă Lucid Emacs ƌĂ΂Ă܂) ELF `ǂ
     IɌāA菇ō\z܂B(ii) ̃o[W
      emacs  ncurses g悤ɃRpCꍇAemacs ̃\[
     XpbP[W src/s/linux.h ̐擪t߂ #define TERMINFO ̈s
     ȂƁA\zȂƂ܂B 19.31 ł͕Kv
     ȂłAXEmacs 19.13 ɂ͕KvłB̃o[WA19.14 ł͊
     ႢȂC邱Ƃł傤B

  o  gdb 4.16

      gdb łȂ̂܂܎g܂A4.16 ō̗pꂽL
     Cu@\͂ƕ֗ɂȂĂ܂BłACu
     A̖ȃG[ɔY܂ĂꍇAgdb o[WAbv̂
     ł傤B

  o  Kernel {

     J[l̃o[W 2.0 ȍ~ ELF `ŖȂ܂BJ[l
     \z̐ݒ(make config)̎Ɉȉ 2 ̍ڂ `yes' Ɠ
     ( 1.3 łł)B1.2 ܂gĂꍇÃ
     XgɎpb`肵ĂB

       Kernel support for ELF binaries (CONFIG_BINFMT_ELF) [Y/m/n/?]
       Compile kernel as ELF - if your GCC is ELF-GCC (CONFIG_KERNEL_ELF) [Y/n/?]

  o  perl 5

     Perl 5.001m ȍ~̃o[W ELF VXeŁAI[h@\
     ɁAύXȂRpCł܂BŐVł Perl  CPAN(Comprehensive
     Perl Archive Network)TCgł܂BCPAN  funet ł~
     [Ă܂  <ftp://ftp.funet.fi/pub/mirros/perl/CPAN>Ag
     ȃTCg肷悤ɂĂB

  o  ps  top

     Procps 0.98 ȏ̃o[W ELF `T|[gĂ܂(
     o[Wł܂AWCHAN ̖OJ[lǂ݂Ƃ邱
     ł܂)B2.0 V[ỸJ[lɂ procps 0.99a ȍ~̃o[
     WKvȂƂYȂB

  o  util-linux 2.2 ɓĂ cal vO͓܂Btsx-11 ɂ
      version 2.5 <ftp://tsx-11.mit.edu/pub/linux/packages/utils>ȍ~
     ̃o[WgĂB

  o  Mosaic

     g Mosaic RpCłɂ܂񂪁ANCSA 烊
     [XĂ 2.7b1 ȍ~ Mosaic ̃oCi ELF `ɂȂ
     ܂BƂ낪AX ̐ݒ肪ςȕɂȂĂāAʏ̃VXeł
     libXpm.so.4.5 tȂAƂG[ɂȂ܂BŌ̃o[
     Wԍ(.5)]vȂ̂ŁAPȏC@́Aemacs Ȃǂ̃oCi
     t@C𑀍łGfB^ŒڏCĂ܂Ƃł傤B
     libXpm.so.4.5^@ ƂT( ^@  NUL LN^
     --- ASCII  0 ---ł)A.5 폜At@C̒ςȂ
     ɁAӐ[ NUL LN^̌ 2 ̃Xy[Xǉ܂
     B

  4.2.  pb`JĂ

  o  file

     file ͓ɖȂ܂Aǂ̗]n
     Fftp.uk.linux.org <ftp://ftp.uk.linux.org/pub/Linux/libc/non-
     core/file.patch> ɂpb`Ă΁AoCi strip Ă
     邩ǂGfBA݂ ELF oCi邱Ƃ
     \ɂȂ܂B

  o  make-3.74

     GNU  ftp TCgɂ\[XR[h肵 libc-5.3.12 ̃[
     Xm[gɂpb`Ă邩Atsx-11  make-3.74.gz ̃oCi
     肵ĂBGNU  make ɂ͐V ELF ł libc o[W
     ł̂ݘI悷oO܂ -- ̃oÓAۂɂ͌Â GNU 
     libc ɂoOɈˑɂȂĂ邹ŁA libc ̃oO
     ͂ŋ߂܂ł Linux  libc ɂ܂B̂߁AÂ a.out
     ł make vOgĂꍇ͓삵܂AV ELF p
     ̓pb`KvłB

     GNU Make ̊J҂̃oOɂ͋CtĂāÃo[W
     ͏C͂łB

  o  1.2.x J[l

     1.2.x V[ỸJ[lɂĂ 3 ̃IvV܂B

     1. Makefile CāAa.out RpCg悤ɂ܂B cd
        /usr/src/linux Aȉ̃pb`؂o patch - p1 łĂ
        Bȉ̃pb`Ȃ Makefile 蓮ŏCĂ
        ܂Bȉ̃pb`t@C͊ȒPɗłł傤 (- Ŏn
        ܂s폜 + Ŏn܂Ăsǉ܂)

          diff -u linux-1.2.13/Makefile.orig linux/Makefile
          --- linux-1.2.13/Makefile.orig  Wed Aug 16 20:53:26 1995
          +++ linux/Makefile      Fri Dec  8 16:19:49 1995
          @@ -12,9 +12,9 @@
           TOPDIR := $(shell if [ "$$PWD" != "" ]; then echo $$PWD; else pwd; fi)

          -AS     =as
          -LD     =ld
          -HOSTCC =gcc -I$(TOPDIR)/include
          -CC     =gcc -D__KERNEL__ -I$(TOPDIR)/include
          +AS     =/usr/i486-linuxaout/bin/as
          +LD     =ld  -m i386linux
          +HOSTCC =gcc -b i486-linuxaout -I$(TOPDIR)/include
          +CC     =gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include
           MAKE   =make
           CPP    =$(CC) -E
           AR     =ar

     邢́A

     2. H.J.Lu ̃pb`ĂāAJ[l ELF `ŃRpCł
        悤ɂ(̏ꍇAELF `̃RA_v\ɂȂ܂)
        pb` <ftp://ftp.cdrom.com/pub/linux/slackware_source/kernel-
        source/v1.2/linuxelf-1.2.13.diff.gz> ł܂B

        1.2 V[ỸJ[l܂ELF `̃fBXgr[V
        (RedHat 2.1  Slackware 3)ɂ͂̃pb`܂܂Ă邩A
        pb`ɂĂ͂łB

        AőP̃ACfÁAA

     3. 2.0 փo[WAbv܂傤BƂɂ 1.2 ̂ ELF ɂ
        ĔzĂ܂łB

     1.2.13 ̃o[W gcc 2.7.2 ȏ̃o[WŃRpC
     Aʂ̖܂Basm/io.h ɂ gcc 2.7.2 ł̂ݘI悷oO
     AC邽߂̃pb`
     <ftp://ftp.uk.linux.org/pub/Linux/libc/misc/io.h> ɂ܂B

  5.  ڂ

  o  GCC-HOWTO <GCC-HOWTO.html>ɂ́ALinux ŃvOJۂɗL
     vȏ񂪑܂܂Ă܂(ȂƂ͂lĂ܂B
     炵Ă܂)BGCC-HOWTO ́A̕Ɠꏊɂ͂Ȃ
     ŁAL̃N͑ΎwɂȂĂ܂B

  o  linux-gcc [OXg( linux.* ̃j[XMĂ
     ꍇAlinux.dev.gcc j[XO[vɂȂĂ܂)́A
     eȂĂNĂ邩m邱Ƃ̂łőP̏ꏊł
     B Usenet Ƃ͈Ⴄ̂ŁAۂɊJɊւ݂̂𓊍e
     悤ɂĂB[OXgɎQɂ́A help Ƃ
     ܂ރ[ majordomo@vger.rutgers.edu ɑĂB[
     OXg̃A[JCu  <http://www.linux.ncm.com/linux-gcc/>
     ɂ܂B

  o  linux-gcc ̃[OXgŉsȂĂ邩̏́AX
     VӂȂAlinux-gcc web page
     <http://ftp.uk.linux.org/~barlow/linux/gcc-list.html> ɂ܂B
     ̃y[Wɂ́A HOWTO ̍ŐVłւ̃NA{̒ŎQ
     Ăpb`W߂Ă܂Bčp̊wpTCgւ̃N
     l(p̊wplbgȊÔƂł͂Ăł傤)
     pɁÃy[W  <http://www.blackdown.org/elf/elf.html> Ƀ~
     [Ă܂B

  o  ELF `ɂĂ̕ tsx-11
     <ftp://tsx-11.mit.edu/pub/linux/packages/GCC/ELF.doc.tar.gz> ɂ
     ܂B͑̕t@C`𗝉lfobOlA
     oCĩIuWFNg𒼐ڑ삷悤ȃvO̍҂ɂ
     𗧂̂ł傤B

  o  H.J Lu  ELF: From The Programmer's Perspective
     <ftp://tsx-11.mit.edu/pub/linux/packages/GCC/elf.latex.tar.gz> 
     ELF `ŃvOۂɗLpȏ񂪂ƏڂĂ
     B LaTeX łȂ΁Ao[W PostScript ł
     ܂B

  o  ncurses CuɂĂ̏ terminfo f[^x[XEric
     Raymond's ncurses resource page
     <http://www.ccil.org/~esr/ncurses.html> ɂ܂B

  o  ld.so pbP[WɊ܂܂Ă dlopen(3)  man page ɂ͊֘A@
     \ɂĂ̐Ă܂B

  6.  ̑

  6.1.  tB[hobN̂肢

  Feedback ͊}܂B[ daniel.barlow@linux.org ւ肢
  B閧̃[𑗂KvꍇA web pages
  <http://ftp.uk.linux.org/~barlow/> ɂ PGP ̌J(ID 5F263625)
  gĂB

  ̕ɓׂŁAȂꍇɃ[Ă
  B̒̕ŐGׂł͂ȂŁAmĂ邩
  mȂɂẮA܂ comp.os.linux.* j[XO[vɓe
  Ă݂ĂBĂ[̖₢킹ɂĂ܂A[
  𖳂Ƃ悭̂ŁB

  ̖OS~[OXgɍڂĂ̂l͍폜Ă
  悤ɂ肢܂B

  6.2.  |

  ̖̕|ł肽ꍇAϋɓIɂĂč\܂񂪁A
  ꌾAĂBb錾ɖ|󂵂Ă炦\(߂
  Ƃ)S̈ł傤A͂ĂȀo邱Ƃ͂낱
  ł`܂B

  mĂ|ł́F

  o  C^A <http://www.psico.unipd.it/ildp/docs/HOWTO/ELF-
     HOWTO.html> Favro Renata |󂵂܂B (̑̃C^A
     HOWTO  <http://www.psico.unipd.it/ildp/docs/HOWTO/INDEX.html> 
     ܂B

  o  ܂݂Ђ낪{ł쐬܂B
     <http://jf.gee.kyoto-u.ac.jp/JF/index.html>ł܂B

  6.3.  @IȘb

  All trademarks used in this document are acknowledged as being owned
  by their respective owners.  Yow!

  The right of Daniel Barlow to be identified as the author of this work
  has been asserted in accordance with sections 77 and 78 of the
  Copyright Designs and Patents Act 1988.

  This document is copyright (C) 1996 Daniel Barlow
  <daniel.barlow@linux.org> 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.

  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.

  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.

  If you have questions, please contact Greg Hankins, the Linux HOWTO
  coordinator, at gregh@sunsite.unc.edu.

  ̕Ɍꂽg[h}[N͑SĂ̏L҂ɋAĂ܂B

  ̌̕҂ł Daniel Barlow ̌ 1988 Nɐ肳ꂽ
  ``COpyright Desings and Patents" @ 77  78 ɋK肳Ă
  B

  ̕ Daniel Barlow<daniel.barlow@linux.org> 쌠LĂ
  B̒쌠\Aǂ̂悤ȕIAdqI}̂p
  āȂ̕ŜłꕔłARs[čĔzz邱Ƃ\
  BIpA܂Â悤ȏꍇɂ͒҂܂ňꌾ
  m点B

  |₱̕hA Linux HOWTO Ƃ̑g݂
  WȂǂA̒쌠\ɂĕی삳邱ƂɂȂ܂B
  킿ALinux  HOWTO hiɑ΂āA̔zzW悤
  ۂƂ͂ł܂B̏̂ƂŗO݂邱Ƃ\
  ̂ŁAڍׂɂĂ͈ȉɎ Linux HOWTO ̃R[fBl[^ɐq˂Ă
  B

  ȒPɌ΁A͉\Ȃ̕@ł̕Ȃǂ̏Lm
  悤ƍlĂ܂BȂA HOWTO ɒ쌠ݒ
  AHOWTO ̍ĔzzvɂĂ͒m点Ă炢ƎvĂ܂B

  ₪΁A݂ Linux HOWTO ̃R[fBl[^AGrep Hankins
  gregh@sunsite.unc.edu ֘AĂB

