· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
LFS/Preparation

ÀÌ ¹®¼­´Â ¾È¾ç´ëÇб³ ÄÄÇ»ÅÍ °øÇаú SI ¿¬±¸½ÇÀÇ ¹®¼­ ÇÁ·ÎÁ§Æ®¸¦ ÅëÇØ »ý¼ºÇÑ ÆäÀÌÁö¸¦ ¿Å°Ü¿Â °ÍÀÔ´Ï´Ù. ¹ø¿ªÀ» ÇØÁֽŠ±èÀ¯¼®, ±è°üºó, Àü½Å¿ø, ¹Î°æ´ë, ±è±âÈÆ, ÀÓÁ¤È£, ¹é¼®°ï, ÀÌÈ£ÁÖ, ¾ÈÇý¸² ´Ô²² °¨»çÀÇ ¸»¾¸À» ÀüÇÕ´Ï´Ù. ÀÌ ¹®¼­´Â LFS 5.1-Pre 1 À» ±âÁØÀ¸·Î Á¦ÀÛµÈ ¹®¼­ÀÔ´Ï´Ù. (2004³â12¿ù29ÀÏ ±âÁØ) ÃÖ½ÅÀÇ Á¤º¸¿¡ ¸Â°Ô Á¶±Ý¾¿ ¾÷µ¥ÀÌÆ® ÇÒ ¿¹Á¤À̸ç, LFS¿¡ ´ëÇÑ Àüü ³»¿ëÀº [http]http://wiki.kldp.org/wiki.php/LFS/¸¦ ÅëÇØ ¿¬°áµË´Ï´Ù. º» ¹®¼­´Â LFS ½Ã½ºÅÛÀÇ Áغñ´Ü°è¿¡ ÇØ´çÇÏ´Â ÆÐÅ°Áö¿Í ÆÐÄ¡¸¦ ±¸ÇÏ´Â ºÎºÐÀ» ¼³¸íÇÕ´Ï´Ù.


* chaoxifer -- 7.2·Î ¹®¼­ ¾÷µ¥ÀÌÆ®
  • ´ÙÀ½ ÀåÀÎ LFS/Building°ú °ãÄ¡´Â ºÎºÐÀº »èÁ¦ÇÏ°í »õ·Î ¾÷µ¥ÀÌÆ®µÈ ºÎºÐÀº Ãß°¡ÇÏ¿´½À´Ï´Ù.
  • ÀüüÀûÀ¸·Î ¼öÁ¤ÇÏ¿´°í ´Ù¿î·Îµå ¸µÅ©´Â È®ÀÎÇÏ°í ¼öÁ¤ÇÏ¿´½À´Ï´Ù.

Contents

1. »õÆÄƼ¼Ç ¸¸µé±â
1.1. ¼Ò °³
1.2. »õ ÆÄƼ¼Ç ¸¸µé±â
1.3. »õ ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛ ¸¸µé±â
1.4. »õ ÆÄƼ¼ÇÀ» ¸¶¿îÆ®Çϱâ
2. ÇÊ¿äÇÑ ÆÐÅ°Áö¿Í ÆÐÄ¡µé
2.1. ¼Ò °³
2.2. ¸ðµç ÆÐÅ°Áöµé
2.3. ÇÊ¿äÇÑ ÆÐÄ¡µé
3. ¸¶Áö¸· Áغñ °úÁ¤
3.1. $LFS¿¡ ´ëÇÏ¿©
3.2. $LFS/tools µð·ºÅ丮 ¸¸µé±â
3.3. LFS »ç¿ëÀÚ Ãß°¡Çϱâ
3.4. ȯ°æ ¼³Á¤Çϱâ
3.5. SBUs¶õ?
3.6. Test Suites¶õ?
4. Àӽà ½Ã½ºÅÛ ±¸ÃàÇϱâ
4.1. ¼Ò °³
4.2. Toolchain technical notes
4.3. Á¤Àû¿¬°á¿¡ ´ëÇÑ ÁÖÀÇ
4.4. ÀϹÝÀûÀÎ ÄÄÆÄÀÏ ¼³¸íµé
4.5. Binutils-2.22 - Pass 1 ¼³Ä¡
4.5.1. BinutilsÀÇ ÀνºÅç
4.6. GCC-4.7.4 - Pass 1 ¼³Ä¡
4.6.1. Cross GCC ¼³Ä¡
4.7. Linux-3.5.2 API Çì´õµé ¼³Ä¡
4.8. Linux API Headers ¼³Ä¡
4.9. Glibc-2.16.0 ¼³Ä¡
4.9.1. Glibc ¼³Ä¡
4.10. Binutils-2.22 - Pass 2
4.10.1. Bintuils ¼³Ä¡Çϱâ
4.11. GCC-4.7.1 - Pass 2
4.11.1. GCC ¼³Ä¡Çϱâ
4.12. Tcl-8.5.12
4.12.1. Tcl ¼³Ä¡Çϱâ
4.12.2. Contents of Tcl
4.13. Expect-5.45
4.13.1. Expect ¼³Ä¡
4.13.2. Expect ³»¿ë
4.13.3. ¿ä¾à
4.14. DejaGnu-1.5 ¼³Ä¡
4.14.1. DejaGnu ¼³Ä¡
4.14.2. DejaGnu ³»¿ë
4.14.3. ¿ä¾à
4.15. Check-0.9.8
4.15.1. Check ¼³Ä¡Çϱâ
4.15.2. Contents of Check
4.16. Ncurses-5.9 ¼³Ä¡
4.16.1. Ncurses-5.9 ¼³Ä¡
4.17. Bash-4.2 ¼³Ä¡
4.17.1. Bash ¼³Ä¡
4.18. Bzip2-1.0.6 ¼³Ä¡
4.18.1. Bzip2 ¼³Ä¡
4.19. Coreutils-8.19 ¼³Ä¡
4.19.1. Coreutils ¼³Ä¡
4.20. Diffutils-3.2 ¼³Ä¡
4.20.1. Diffutils ¼³Ä¡
4.21. File-5.11
4.21.1. File ¼³Ä¡Çϱâ
4.22. Findutils-4.4.2 ¼³Ä¡
4.22.1. Findutils ¼³Ä¡
4.23. Gawk-4.0.1 ¼³Ä¡
4.23.1. Gawk ¼³Ä¡
4.24. Gettext-0.18.1.1 ¼³Ä¡
4.24.1. Gettext ¼³Ä¡
4.25. Grep-2.14 ¼³Ä¡
4.25.1. Grep ¼³Ä¡
4.26. Gzip-1.5
4.26.1. Gzip ¼³Ä¡
4.27. M4-1.4.16
4.28. Make-3.82 ¼³Ä¡
4.28.1. Make ¼³Ä¡
4.29. Patch-2.6.1 ¼³Ä¡
4.29.1. Patch ¼³Ä¡
4.30. Perl-5.16.1 ¼³Ä¡
4.30.1. Perl ¼³Ä¡
4.31. Sed-4.2.1 ¼³Ä¡
4.31.1. Sed ¼³Ä¡
4.32. Tar-1.26 ¼³Ä¡
4.32.1. Tar ¼³Ä¡
4.33. Texinfo-4.13a ¼³Ä¡
4.33.1. Texinfo ¼³Ä¡
4.34. Xz-5.0.4
4.34.1. Xz-Utils ¼³Ä¡Çϱâ
4.35. Stripping
4.36. ¼ÒÀ¯±Ç ¹Ù²Ù±â

1. »õÆÄƼ¼Ç ¸¸µé±â

1.1. ¼Ò °³


À̹ø Àå¿¡¼­´Â LFS½Ã½ºÅÛÀ» ¼³Ä¡Çϱâ À§ÇÑ ÆÄƼ¼Ç ÀÛ¾÷¿¡ ´ëÇØ ´Ù·ê °ÍÀÔ´Ï´Ù. ¿ì¸®´Â ÀÌÁ¦ »õ·Î¿î ÆÄƼ¼ÇÀ» ¸¸µé°í ±× ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛÀ» ±¸ÃàÇÏ°í ¸¶¿îÆ®¸¦ ÇÒ °ÍÀÔ´Ï´Ù.

1.2. »õ ÆÄƼ¼Ç ¸¸µé±â


»õ·Î¿î Linux ½Ã½ºÅÛÀ» ±¸ÃàÇϱâ À§Çؼ­´Â ¾î´À Á¤µµ ºó °ø°£ÀÌ ÀÖ¾î¾ß ÇÕ´Ï´Ù.(µð½ºÅ©ÀÇ ºó ÆÄƼ¼Ç). ¸¸¾à LFS¸¦ ¸¸µé±â À§ÇÑ HDDÀÇ ¿©À¯°ø°£ÀÌ ¾ø°í, ³²´Â ÆÄƼ¼Çµµ ¾ø´Ù¸é, ±âÁ¸ ¹èÆ÷ÆÇÀÌ ¼³Ä¡µÈ °÷¿¡ ¼³Ä¡ÇØ¾ß ÇÕ´Ï´Ù. óÀ½ºÎÅÍ LFS¸¦ ¼³Ä¡Çϴ°ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, HDD°ø°£ÀÌ Á¤¸» ¾ø°í, ´ç½ÅÀÌ ¿ë°¨ÇÏ´Ù¸é ´ÙÀ½ÀÇ ¹®¼­¸¦ Âü°íÇϱ⠹ٶø´Ï´Ù. http://www.linuxfromscratch.org/hints/downloads/files/lfs_next_to_existing_systems.txt

ÃÖ¼Ò ¼³Ä¡ »ç¾çÀ» À§Çؼ­´Â 1.2GBÁ¤µµÀÇ ÆÄƼ¼ÇÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¸ðµç ¼Ò½º Ÿ¸£º¼À» ÀúÀåÇÏ°í ¸ðµç ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏ Çϴµ¥ ÀÌ Á¤µµÀÇ °ø°£À̸é ÃæºÐÇÕ´Ï´Ù.ÇÏÁö¸¸, LFS½Ã½ºÅÛÀ» ù¹ø° ¸®´ª½º ½Ã½ºÅÛÀ¸·Î »ç¿ë ÇÒ °ÍÀ̶ó¸é,´ç½ÅÀº ¾Æ¸¶µµ ÀÀ¿ë¼ÒÇÁÆ®¿þ¾î¸¦ ´õ ¼³Ä¡ÇØ¾ß ÇÒ °ÍÀÌ°í, ±×·¯±â À§Çؼ­´Â ¾à 2~3GBÁ¤µµ°¡ ´õ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù.

½Ã½ºÅÛ¿¡ ·¥ÀÌ ÃæºÐÇÏÁö ¾ÊÀ» °æ¿ì, °¡»ó ¸Þ¸ð¸®¸¦ »ç¿ëÇÏ´Â °ÍÀº ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù. -- °¡»ó ¸Þ¸ð¸®´Â ·¥ÀÌ ºÎÁ·ÇÒ¶§¸¸ °¡²û¾¿ »ç¿ëµË´Ï´Ù .LFS½Ã½ºÅÛÀº ±âÁ¸ ¸®´ª½º ½Ã½ºÅÛ°ú °¡»ó°ø°£À» °øÀ¯ÇÒ ¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à, ±âÁ¸ÀÇ ¸®´ª½º ½Ã½ºÅÛÀÌ °¡»ó¸Þ¸ð¸®¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é »õ·Ó°Ô ¸¸µé ÇÊ¿ä°¡ ¾ø½À´Ï´Ù.

cfdisk2³ª fdisk¸¦ ½ÇÇàÇÒ¶§ arguement·Î HDDÀ̸§À» ³Ö¾îÁÖ¸é »õ·Î¿î ÆÄƼ¼ÇÀ» ¸¸µé¼ö ÀÖ½À´Ï´Ù. -- ¿¹¸¦ µé¾î /dev/hda´Â ù¹ø° IDE µð½ºÅ©ÀÔ´Ï´Ù. ÇÊ¿äÇÏ´Ù¸é ¸®´ª½º nativeÆÄƼ¼Ç°ú swapÆÄƼ¼ÇÀ» ¸¸µå¼¼¿ä. ¸¸¾à ÇÁ·Î±×·¥ÀÇ »ç¿ë¹ýÀ» ¸ð¸¥´Ù¸é cfdisk³ª fdiskÀÇ manÆäÀÌÁö¸¦ ÂüÁ¶Çϱ⠹ٶø´Ï´Ù.

»õ·Î¿î ÆÄƼ¼ÇÀ» ¾î¶»°Ô ³ª´³´ÂÁö ±â¾ïÇϼ¼¿ä. -- hda5°°Àº. (À̸§) ¸¸¾à ½º¿Ò°ø°£À» ¸¸µé¾ú´Ù¸é ±× À̸§ ¿ª½Ã ±â¾ïÇϼ¼¿ä. ÀÌ·± À̸§µéÀº ³ªÁß¿¡ /etc/fstabÆÄ ÀÏ¿¡¼­ »ç¿ëµÉ °Ì´Ï´Ù

1.3. »õ ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛ ¸¸µé±â


ºó ÆÄƼ¼ÇÀÌ ÀÖ´Ù¸é, ±× À§¿¡ ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé ¼ö ÀÖ½À´Ï´Ù. ¸®´ª½º»ó¿¡¼­´Â ext2°¡ ÁÖ·Î »ç¿ëµÇÁö¸¸, ¿äÁòÀÇ ´ë¿ë·® HDD¿¡¼­´Â journaling file system (ext3)°¡ Á¡Á¡ º¸ÆíÈ­ µÇ´Â Ãß¼¼ÀÔ´Ï´Ù.¿ì¸®´Â ext2¸¦ ¸¸µé°ÍÀÔ´Ï´Ù, ÇÏÁö¸¸ ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÏ°í ½Í´Ù¸é http://www.linuxfromscratch.org/blfs/view/stable/postlfs/filesystems.html <--¿¡¼­ ã¾Æ º¸¼¼¿ä.

LFS ÆÄƼ¼Ç¿¡ ext2 ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé·Á¸é ¾Æ·¡Ã³·³ Çϼ¼¿ä.
mke2fs /dev/xxx

xxx¸¦ LFS ÆÄƼ¼Ç À̸§À¸·Î ¹Ù²Ù¼¼¿ä.(¿¹¸¦µé¸é hda5)

»õ·Î¿î ½º¿Ò ÆÄƼ¼ÇÀ» ¸¸µé¾ú´Ù¸é ÃʱâÈ­ÇØ¾ß ÇÕ´Ï´Ù. (»ç¿ë¹ýÀº mke2fs¸¦ ÂüÁ¶..)
mkswap /dev/yyy

yyy¸¦ swap ÆÄƼ¼Ç À̸§À¸·Î ¹Ù²Ù¼¼¿ä.

1.4. »õ ÆÄƼ¼ÇÀ» ¸¶¿îÆ®Çϱâ


ÀÌÁ¦ ¿ì¸° ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¸µé¾ú°í, ±× ÆÄƼ¼ÇÀ» »ç¿ëÇϱâ À§Çؼ­ ¸¶¿îÇÒ Àå¼Ò¸¦ °í¸£°í, ¸¶¿îÆ®¸¦ ÇؾßÇÕ´Ï´Ù.ÀÌ ¹®¼­¿¡¼­´Â ÆÄÀÏ ½Ã½ºÅÛÀÌ /mnt/lfs ¿¡ ¸¶¿îÆ® µÇ¾î ÀÖ´Ù°í °¡Á¤ÇÒ °ÍÀÌÁö¸¸, ¾î¶² µð·ºÅ丮¸¦ ¼±ÅÃÇÏ´õ¶óµµ »ó°ü ¾ø½À´Ï´Ù.

¸¶¿îÆ® ÇÒ °÷À» ¼±ÅÃÇÏ°í ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇÏ¿© ȯ°æº¯¼ö¿¡ Àû¿ë½ÃÅ°¼¼¿ä.
export LFS=/mnt/lfs

¸¶¿îÆ® ÇÒ µð·ºÅ丮¸¦ ¸¸µé°í ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇÏ¿© LFS ÆÄÀÏ ½Ã½ºÅÛÀ» ¸¶¿îÆ® Çϼ¼¿ä:
mkdir -p $LFS
mount /dev/xxx $LFS

xxx¸¦ lfsÆÄƼ¼ÇÀ̸§À¸·Î ¹Ù²Ù¼¼¿ä.

lfs ½Ã½ºÅÛÀ» ¸ÖƼ ÆÄƼ¼ÇÀ¸·Î ±¸¼ºÇÒ »ý°¢À̶ó¸é(¿¹¸¦ µé¾î "/" ¿Í "/usr)"¸¦ °¢±â ´Ù¸¥ ÆÄƼ¼ÇÀ¸·Î ¹èÁ¤ÇÒ °æ¿ì) ¸¶¿îÆ®´Â ´ÙÀ½°ú °°ÀÌ Çϼ¼¿ä.
mkdir -p $LFS
mount /dev/xxx $LFS
mkdir $LFS/usr
mount /dev/yyy $LFS/usr

¹°·Ð, xxx¿Í yyy´Â ÀûÀýÇÑ À̸§À¸·Î ¹Ù²ãÁÝ´Ï´Ù.

»õ·Î¿î ÆÄƼ¼ÇÀ» ¸¶¿îÆ® ÇÒ ¶§´Â suid,dev,atime °°Àº ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾Ê°í ¸¶¿îÆ® ÇսôÙ. LFS ÆÄƼ¼ÇÀÌ ¾î¶² ¿É¼ÇÀ» °¡Áö°í ¸¶¿îÆ® µÇ¾ú´ÂÁö º¸±â À§Çؼ­ ÆĶó¹ÌÅ;øÀÌ ¸¶¿îÆ® ¸í·ÉÀ» ½ÇÇà ½Ãų¼ö ÀÖ½À´Ï´Ù. ¸¸¾à suid, dev, atime ÀÌ À߸øµÇ¾ú´Ù¸é ´Ù½Ã ¸¶¿îÆ® ÇؾßÇÕ´Ï´Ù.

ÀÌÁ¦ ¿ì¸®´Â ÀÛ¾÷ÇÒ °ø°£À» ¸¸µé¾ú°í, ÆÐÅ°Áö¸¦ ´Ù¿î·Îµå ¹ÞÀ» Áغñ°¡ µÇ¾ú½À´Ï´Ù.

2. ÇÊ¿äÇÑ ÆÐÅ°Áö¿Í ÆÐÄ¡µé

2.1. ¼Ò °³


´ÙÀ½Àº ±âº» ¸®´ª½º ½Ã½ºÅÛÀ» ¼³Ä¡Çϱâ À§ÇØ ´Ù¿î·Îµå¸¦ ¹Þ¾Æ¾ßÇÏ´Â ÆÐÅ°ÁöÀÇ ¸ñ·ÏÀÔ´Ï´Ù.¸ñÂ÷ÀÇ ¹öÀü ¹øÈ£´Â ÀÌ¹Ì ¹ßÇ¥µÈ ¼ÒÇÁÆ®¿þ¾îÀÇ ¹öÀü°ú »óÀÀÇÏ°í, ÀÌ Ã¥Àº ±×°Íµé¿¡ ¹ÙÅÁÀ» µÎ°í ÀÖ½À´Ï´Ù. LFS ¼³Ä¡¸¦ ¸¹ÀÌ ÇØ º» »ç¶÷ÀÌ ¾Æ´Ï¶ó¸é, »õ·Î¿î ¹öÀüÀ¸·Î ½ÃµµÇÏÁö ¾Ê±â¸¦ °­·ÂÈ÷ Ãæ°íÇÕ´Ï´Ù. ¶ÇÇÑ ½Å¹öÀüÀº ¾ÆÁ÷ ¾Ë·ÁÁöÁö ¾ÊÀº ¹ö±×µéÀÌ ÀÖÀ» ¼ö ÀÖÀ¸¹Ç·Î »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

¸ðµç URLµéÀÌ »ç¿ë °¡´ÉÇϸé, ´ÙÀ½ÀÇ ÇÁ·ÎÁ§Æ® ÆäÀÌÁö¸¦ ÃßõÇÕ´Ï´Ù.http://www.freshmeat.net/. Freshment page´Â ÇÁ·ÎÁ§Æ® À¥ »çÀÌÆ®, ¸ÞÀϸµ ¸®½ºÆ® , FAQ , changelogs µî »Ó¸¸¾Æ´Ï¶ó °ø½Ä´Ù¿î·Îµå »çÀÌÆ®¿¡ ã¾Æ°¡±â ½±µµ·Ï µµ¿ÍÁÝ´Ï´Ù.

ÀÌ·± ´Ù¿î·Îµå »çÀÌÆ®µéÀÌ Ç×»ó ÀÌ¿ë°¡´ÉÇÏ´Ù°í º¸ÀåÇÒ ¼ö´Â ¾ø½À´Ï´Ù. ÀÌ Ã¥ÀÌ ¹ß°£µÈ ÈÄ¿¡ ´Ù¿î·Îµå »çÀÌÆ®°¡ º¯°æµÈ °æ¿ì google À» ÀÌ¿ëÇØ Ã£¾Æº¸±â ¹Ù¶ø´Ï´Ù. ãÁö ¸øÇÑ°Ô ÀÖÀ» °æ¿ì, errata page(http://www.linuxfromscratch.org/lfs/print/) ¿¡¼­ µµ¿òÀ» ¹Þ°Å³ª ±×·¡µµ ÇØ°áÀÌ ¾ÈµÇ¸é ´ÙÀ½ À¥»ç]ÀÌÆ®ÀÇ ´Ù¿î·Îµå ¸®½ºÆ®µé Áß¿¡¼­ Çϳª¸¦ Âü°íÇϼ¼¿ä.http://www.linuxfromscratch.org/lfs/packages.html

´ç½ÅÀº ÆÐÅ°Áö¿Í ÆÐÄ¡µéÀº ¼³Ä¡ °úÁ¤¿¡¼­ ÆíÇÏ°Ô ÀÌ¿ëÇÒ ¼ö ÀÖ´Â Àå¼Ò¿¡ ÀúÀåÇÏ´Â °É ¿øÇÒ °ÍÀÔ´Ï´Ù. ¶ÇÇÑ ¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®°í ±×°ÍµéÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏ´Â ÀÛ¾÷µð·ºÅ丮°¡ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù.$LFS/sources´Â Ÿ¸£º¼µé°ú ÆÐÄ¡µéÀ» ÀúÀåÇÏ°í ÀÛ¾÷ÇÒ Àå¼Ò·Î ½á »ç¿ëµÉ°ÍÀÔ´Ï´Ù. ÀÌ·±½ÄÀ¸·Î ÇÊ¿äÇÑ ¸ðµç°ÍµéÀº LFSÆÄƼ¼Ç¿¡ À§Ä¡ÇÒ °ÍÀÌ°í, ¸ðµç ¼³Ä¡°úÁ¤ µ¿¾È »ç¿ëÇÒ °ÍÀÔ´Ï´Ù.

ÆÐÅ°Áö¿Í ÆÐÄ¡µéÀ» ´Ù¿î·Îµå Çϱâ Àü¿¡ root±ÇÇÑÀ¸·Î ´ÙÀ½ ¸í·ÉµéÀ» ½ÇÇàÇϱ⠹ٶø´Ï´Ù.
mkdir $LFS/sources

ÀϹݻç¿ëÀÚ °èÁ¤À¸·Î ´Ù¿î·Îµå ¹ÞÀ¸·Á¸é ÀϹݻç¿ëÀÚµµ ¾²±â °¡´ÉÇϵµ·Ï ±ÇÇÑÀ» ÁÖ¾î¾ß ÇÕ´Ï´Ù:
chmod a+wt $LFS/sources

[http]wget-list¸¦ wgetÀ¸·Î ÀÔ·ÂÇÏ¿© ¸ðµç ÆÐÅ°Áö¸¦ ½±°Ô ´Ù¿î·Îµå ÇÏ´Â ¹æ¹ýÀÌ ÀÖ½À´Ï´Ù:
wget -i wget-list -P $LFS/sources

Ãß°¡ÀûÀ¸·Î, LFS-7.0À¸·Î ½ÃÀÛÇϸé, md5sums¶ó´Â ºÐ¸®µÈ ÆÄÀÏÀÌ ÀÖ½À´Ï´Ù. ÀÌ ÆÄÀÏÀº ¸ðµç ÆÐÅ°ÁöµéÀÌ ÁøÇàÇϱâ ÀÌÀü¿¡ À¯È¿ÇÑ ¿Ã¹Ù¸¥ ÆÐÅ°ÁöÀΰ¡¸¦ °Ë»çÇϴµ¥ »ç¿ëµË´Ï´Ù. $LFS/sources ÆÄÀÏ¿¡ ÇØ´ç ÆÄÀÏÀ» ³Ö°Ô ½ÇÇàÇϽʽÿÀ:
pushd $LFS/sources
md5sum -c md5sums
popd

2.2. ¸ðµç ÆÐÅ°Áöµé

-- chaoxifer 2013-01-20 00:11:06

Autoconf (2.69) - 1,186 KB:
Home page: http://www.gnu.org/software/autoconf/

Download: http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.xz

MD5 sum: 50f97f4159805e374639a73e2636f22e
Automake (1.12.3) - 1,352 KB:
Home page: http://www.gnu.org/software/automake/

Download: http://ftp.gnu.org/gnu/automake/automake-1.12.3.tar.xz

MD5 sum: 0df082825f8f41087eb70c5088f4515e
Bash (4.2) - 6,845 KB:
Home page: http://www.gnu.org/software/bash/

Download: http://ftp.gnu.org/gnu/bash/bash-4.2.tar.gz

MD5 sum: 3fb927c7c33022f1c327f14a81c0d4b0
Binutils (2.22) - 19,505 KB:
Home page: http://www.gnu.org/software/binutils/

Download: http://ftp.gnu.org/gnu/binutils/binutils-2.22.tar.bz2

MD5 sum: ee0f10756c84979622b992a4a61ea3f5
Bison (2.6.2) - 1,612 KB:
Home page: http://www.gnu.org/software/bison/

Download: http://ftp.gnu.org/gnu/bison/bison-2.6.2.tar.xz

MD5 sum: dea291996f98c34c3fd8e389a9cf6ea1
Bzip2 (1.0.6) - 764 KB:
Home page: http://www.bzip.org/

Download: http://www.bzip.org/1.0.6/bzip2-1.0.6.tar.gz

MD5 sum: 00b516f4704d4a7cb50a1d97e6e8e15b
Check (0.9.8) - 546 KB: Coreutils (8.19) - 4,992 KB:
Home page: http://www.gnu.org/software/coreutils/

Download: http://ftp.gnu.org/gnu/coreutils/coreutils-8.19.tar.xz

MD5 sum: 1a01231a2f3ed37c0efc073ccdda9375
DejaGNU (1.5) - 563 KB:
Home page: http://www.gnu.org/software/dejagnu/

Download: http://ftp.gnu.org/gnu/dejagnu/dejagnu-1.5.tar.gz

MD5 sum: 3df1cbca885e751e22d3ebd1ac64dc3c
Diffutils (3.2) - 1,976 KB:
Home page: http://www.gnu.org/software/diffutils/

Download: http://ftp.gnu.org/gnu/diffutils/diffutils-3.2.tar.gz

MD5 sum: 22e4deef5d8949a727b159d6bc65c1cc
E2fsprogs (1.42.5) - 5,780 KB: Expect (5.45) - 614 KB:
Home page: http://expect.sourceforge.net/

Download: http://prdownloads.sourceforge.net/expect/expect5.45.tar.gz

MD5 sum: 44e1a4f4c877e9ddc5a542dfa7ecc92b
File (5.11) - 596 KB:
Home page: http://www.darwinsys.com/file/

Download: ftp://ftp.astron.com/pub/file/file-5.11.tar.gz

MD5 sum: 16a407bd66d6c7a832f3a5c0d609c27b
Findutils (4.4.2) - 2,100 KB:
Home page: http://www.gnu.org/software/findutils/

Download: http://ftp.gnu.org/gnu/findutils/findutils-4.4.2.tar.gz

MD5 sum: 351cc4adb07d54877fa15f75fb77d39f
Flex (2.5.37) - 1,280 KB:
Home page: http://flex.sourceforge.net

Download: http://prdownloads.sourceforge.net/flex/flex-2.5.37.tar.bz2

MD5 sum: c75940e1fc25108f2a7b3ef42abdae06
Gawk (4.0.1) - 1,575 KB:
Home page: http://www.gnu.org/software/gawk/

Download: http://ftp.gnu.org/gnu/gawk/gawk-4.0.1.tar.xz

MD5 sum: a601b032c39cd982f34272664f8afa49
GCC (4.7.1) - 80,703 KB:
Home page: http://gcc.gnu.org/

Download: http://ftp.gnu.org/gnu/gcc/gcc-4.7.1/gcc-4.7.1.tar.bz2

MD5 sum: 933e6f15f51c031060af64a9e14149ff
GDBM (1.10) - 640 KB:
Home page: http://www.gnu.org/software/gdbm/

Download: http://ftp.gnu.org/gnu/gdbm/gdbm-1.10.tar.gz

MD5 sum: 88770493c2559dc80b561293e39d3570
Gettext (0.18.1.1) - 14,785 KB:
Home page: http://www.gnu.org/software/gettext/

Download: http://ftp.gnu.org/gnu/gettext/gettext-0.18.1.1.tar.gz

MD5 sum: 3dd55b952826d2b32f51308f2f91aa89
Glibc (2.16.0) - 9,756 KB:
Home page: http://www.gnu.org/software/libc/

Download: http://ftp.gnu.org/gnu/glibc/glibc-2.16.0.tar.xz

MD5 sum: 80b181b02ab249524ec92822c0174cf7
GMP (5.0.5) - 1,632 KB:
Home page: http://www.gnu.org/software/gmp/

Download: http://ftp.gnu.org/gnu/gmp/gmp-5.0.5.tar.xz

MD5 sum: 8aef50959acec2a1ad41d144ffe0f3b5
Grep (2.14) - 1,172 KB:
Home page: http://www.gnu.org/software/grep/

Download: http://ftp.gnu.org/gnu/grep/grep-2.14.tar.xz

MD5 sum: d4a3f03849d1e17ce56ab76aa5a24cab
Groff (1.21) - 3,774 KB:
Home page: http://www.gnu.org/software/groff/

Download: http://ftp.gnu.org/gnu/groff/groff-1.21.tar.gz

MD5 sum: 8b8cd29385b97616a0f0d96d0951c5bf
GRUB (2.00) - 5,016 KB:
Home page: http://www.gnu.org/software/grub/

Download: http://ftp.gnu.org/gnu/grub/grub-2.00.tar.xz

MD5 sum: a1043102fbc7bcedbf53e7ee3d17ab91
Gzip (1.5) - 704 KB:
Home page: http://www.gnu.org/software/gzip/

Download: http://ftp.gnu.org/gnu/gzip/gzip-1.5.tar.xz

MD5 sum: 2a431e169b6f62f7332ef6d47cc53bae
Iana-Etc (2.30) - 201 KB: Inetutils (1.9.1) - 1,941 KB:
Home page: http://www.gnu.org/software/inetutils/

Download: http://ftp.gnu.org/gnu/inetutils/inetutils-1.9.1.tar.gz

MD5 sum: 944f7196a2b3dba2d400e9088576000c
IPRoute2 (3.5.1) - 379 KB: Kbd (1.15.3) - 1,621 KB: Kmod (9) - 1,096 KB:
Download: http://www.kernel.org/pub/linux/utils/kernel/kmod/kmod-9.tar.xz

MD5 sum: c8ae2d2694fbca2b28e238b30543a0cd
Less (444) - 301 KB:
Home page: http://www.greenwoodsoftware.com/less/

Download: http://www.greenwoodsoftware.com/less/less-444.tar.gz

MD5 sum: 56f9f76ffe13f70155f47f6b3c87d421
LFS-Bootscripts (20120901) - 33 KB: Libpipeline (1.2.1) - 723 KB: Libtool (2.4.2) - 2,571 KB:
Home page: http://www.gnu.org/software/libtool/

Download: http://ftp.gnu.org/gnu/libtool/libtool-2.4.2.tar.gz

MD5 sum: d2f3b7d4627e69e13514a40e72a24d50
Linux (3.5.2) - 66,060 KB:
Home page: http://www.kernel.org/

Download: http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.5.2.tar.xz

MD5 sum: b3cfccfb6961ea407acf0b070184b0b1

¸®´ª½º Ä¿³ÎÀº ÀÚÁÖ ¾÷µ¥ÀÌÆ® µÇ´Âµ¥ ÀÌ´Â º¸¾È Ãë¾àÁ¡ÀÌ °è¼ÓÇؼ­ ¹ß°ßµÇ±â ¶§¹®ÀÔ´Ï´Ù. errata ÆäÀÌÁö¿¡¼­ »õ·Î¿î ¸»ÀÌ ÀÖ±â Àü±îÁö´Â »ç¿ë°¡´ÉÇÑ ÃֽŠĿ³Î ¹öÀüÀº 3.5.x Ä¿³ÎÀÔ´Ï´Ù.
Á¦ÇÑµÈ ¼Óµµ ¶Ç´Â ºñ½Ñ ´ë¿ªÆø ¶§¹®¿¡ ¸®´ª½º Ä¿³ÎÀ» ¾÷µ¥ÀÌÆ®ÇÏ°í ½ÍÀº À¯ÀúµéÀ» À§ÇØ ±âÁعöÀüÀÇ ÆÐÅ°Áö¿Í ÆÐÄ¡ÆÄÀÏÀº µû·Î ´Ù¿î·Îµå ÇÒ ¼ö ÀÖµµ·Ï ÇÏ¿´½À´Ï´Ù. ÀÌ°ÍÀÌ ¾à°£ÀÇ ½Ã°£, ºñ¿ëÀ» ¾î´ÀÁ¤µµ´Â ÁÙ¿©ÁÙ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

M4 (1.4.16) - 1,229 KB:
Home page: http://www.gnu.org/software/m4/

Download: http://ftp.gnu.org/gnu/m4/m4-1.4.16.tar.bz2

MD5 sum: 8a7cef47fecab6272eb86a6be6363b2f
Make (3.82) - 1,213 KB:
Home page: http://www.gnu.org/software/make/

Download: http://ftp.gnu.org/gnu/make/make-3.82.tar.bz2

MD5 sum: 1a11100f3c63fcf5753818e59d63088f
Man-DB (2.6.2) - 1,353 KB: Man-pages (3.42) - 1,076 KB: MPC (1.0) - 614 KB:
Home page: http://www.multiprecision.org/

Download: http://www.multiprecision.org/mpc/download/mpc-1.0.tar.gz

MD5 sum: 13370ceb2e266c5eeb2f7e78c24b7858
MPFR (3.1.1) - 1,047 KB:
Home page: http://www.mpfr.org/

Download: http://www.mpfr.org/mpfr-3.1.1/mpfr-3.1.1.tar.xz

MD5 sum: 91d51c41fcf2799e4ee7a7126fc95c17
Ncurses (5.9) - 2,760 KB:
Home page: http://www.gnu.org/software/ncurses/

Download: ftp://ftp.gnu.org/gnu/ncurses/ncurses-5.9.tar.gz

MD5 sum: 8cb9c412e5f2d96bc6f459aa8c6282a1
Patch (2.6.1) - 248 KB:
Home page: http://savannah.gnu.org/projects/patch/

Download: http://ftp.gnu.org/gnu/patch/patch-2.6.1.tar.bz2

MD5 sum: 0818d1763ae0c4281bcdc63cdac0b2c0
Perl (5.16.1) - 13,256 KB:
Home page: http://www.perl.org/

Download: http://www.cpan.org/src/5.0/perl-5.16.1.tar.bz2

MD5 sum: b87358e2c461a898cfd7c334e7dd8993
Pkg-config (0.27) - 1872 KB: Procps (3.2.8) - 279 KB:
Home page: http://procps.sourceforge.net/

Download: http://procps.sourceforge.net/procps-3.2.8.tar.gz

MD5 sum: 9532714b6846013ca9898984ba4cd7e0
Psmisc (22.19) - 481 KB:
Home page: http://psmisc.sourceforge.net/

Download: http://prdownloads.sourceforge.net/psmisc/psmisc-22.19.tar.gz

MD5 sum: 38563b4760ffce54b0eadf99cb5b16e8
Readline (6.2) - 2,225 KB: Sed (4.2.1) - 878 KB:
Home page: http://www.gnu.org/software/sed/

Download: http://ftp.gnu.org/gnu/sed/sed-4.2.1.tar.bz2

MD5 sum: 7d310fbd76e01a01115075c1fd3f455a
Shadow (4.1.5.1) - 2,142 KB: Sysklogd (1.5) - 85 KB: Sysvinit (2.88dsf) - 108 KB: Tar (1.26) - 2,285 KB:
Home page: http://www.gnu.org/software/tar/

Download: http://ftp.gnu.org/gnu/tar/tar-1.26.tar.bz2

MD5 sum: 2cee42a2ff4f1cd4f9298eeeb2264519
Tcl (8.5.12) - 4,396 KB:
Home page: http://tcl.sourceforge.net/

Download: http://prdownloads.sourceforge.net/tcl/tcl8.5.12-src.tar.gz

MD5 sum: 174b2b4c619ba8f96875d8a051917703
Time Zone Data (2012e) - 208 KB: Texinfo (4.13a) - 2,687 KB:
Home page: http://www.gnu.org/software/texinfo/

Download: http://ftp.gnu.org/gnu/texinfo/texinfo-4.13a.tar.gz

MD5 sum: 71ba711519209b5fb583fed2b3d86fcb
Systemd (188) - 1,324 KB: Udev-lfs Tarball (188) - 20 KB:
Download: http://anduin.linuxfromscratch.org/sources/other/udev-lfs-188-3.tar.bz2

MD5 sum: ef6cd9f078c39c61ba744d08276a1210
Util-linux (2.21.2) - 2,916 KB: linux-2.21.2.tar.xz
MD5 sum: 54ba880f1d66782c2287ee2c898520e9
Vim (7.3) - 8,675 KB:
Home page: http://www.vim.org

Download: ftp://ftp.vim.org/pub/vim/unix/vim-7.3.tar.bz2

MD5 sum: 5b9510a17074e2b37d8bb38ae09edbf2
Xz Utils (5.0.4) - 894 KB:
Home page: http://tukaani.org/xz

Download: http://tukaani.org/xz/xz-5.0.4.tar.xz

MD5 sum: 161015c4a65b1f293d31810e1df93090
Zlib (1.2.7) - 493 KB:
Home page: http://www.zlib.net/

Download: http://www.zlib.net/zlib-1.2.7.tar.bz2

MD5 sum: 2ab442d169156f34c379c968f3f482dd

Total size of these packages: about 292 MB

tarballÀº LFS mirror »çÀÌÆ®¿¡¼­ ´Ù¿î·Îµå ¹Þ¾Æ¼­ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. Glibc ¼½¼Ç¿¡¼­ ´Ù¿î·Îµå ¸µÅ©¸¦ Âü°íÇϼ¼¿ä.

2.3. ÇÊ¿äÇÑ ÆÐÄ¡µé


ÆÑÅ°Áöµé »Ó¸¸ ¾Æ´Ï¶ó °¢Á¾ ÆÐÄ¡µéµµ ÇÊ¿äÇÕ´Ï´Ù. ÆÑÅ°Áö¸¦ ¿ì¸®°¡ ¿øÇÏ´Â ´ë·Î ¼öÁ¤Çϰųª ¸ÞÀÎÅ×À̳ʰ¡ ¹ö±×¸¦ ÇØ°áÇϱâ À§ÇØ ¸¸µç ÆÐÄ¡°¡ ÇÊ¿äÇÕ´Ï´Ù. ´ÙÀ½ ÆÐÄ¡µéÀ» ´Ù¿î·Îµå ¹ÞÀ¸¼¼¿ä.

Bash Upstream Fixes Patch - 51 KB:
Download: http://www.linuxfromscratch.org/patches/lfs/7.2/bash-4.2-fixes-8.patch

MD5 sum: e82d2200e82aa28640299bbcad140361
Binutils Build Fix Patch - 1.4 KB: Bzip2 Documentation Patch - 1.6 KB: Coreutils Internationalization Fixes Patch - 272 KB:
Download: http://www.linuxfromscratch.org/patches/lfs/7.2/coreutils-8.19-i18n-1.patch

MD5 sum: befbf82628d019ef08d522c95cba331d
Flex Regression Tests Patch - 2.8 KB: Glibc DNS Resolve Patch - 2.0 KB: Kbd Loadkeys Fix Patch - 1.6 KB: Kbd Backspace/Delete Fix Patch - 12 KB:
Download: http://www.linuxfromscratch.org/patches/lfs/7.2/kbd-1.15.3-backspace-1.patch

MD5 sum: f75cca16a38da6caa7d52151f7136895
Kmod Testsuite Patch - 2.2 KB:
Download: http://www.linuxfromscratch.org/patches/lfs/7.2/kmod-9-testsuite-1.patch

MD5 sum: 11ab14f5b63ae3c163804517cf110fbb
Make Upstream Fixes Patch - 9.7 KB: Patch Testsuite Fix Patch - 1 KB:
Download: http://www.linuxfromscratch.org/patches/lfs/7.2/patch-2.6.1-test_fix-1.patch

MD5 sum: c51e1a95bfc5310635d05081472c3534
Perl Libc Patch - 1.6 KB:
Download: http://www.linuxfromscratch.org/patches/lfs/7.2/perl-5.16.1-libc-2.patch

MD5 sum: daf5c64fd7311e924966842680535f8f
Procps HZ Errors Patch - 2.3 KB: Procps Watch Patch - 3.5 KB: Readline Upstream Fixes Patch - 1.3 KB:
Download: http://www.linuxfromscratch.org/patches/lfs/7.2/readline-6.2-fixes-1.patch

MD5 sum: 3c185f7b76001d3d0af614f6f2cd5dfa
Sed Regression Tests Patch - 1.9 KB: Total size of these patches: about 367.9 KB


LFS µ¿È£È¸¿¡ °¡ º¸¸é À§¿¡ ³ª¿­µÈ ÆÐÄ¡¿Ü¿¡ ´Ù¸¥ ¸¹Àº ÆÐÄ¡µéÀÌ Á¸ÀçÇÕ´Ï´Ù. ÀÌ·± ÆÐÄ¡µéÀº »ç¼ÒÇÑ ¹ö±×µéÀ» ÇØ°áÇØÁְųª, ºÎ°¡ÀûÀÎ ±â´ÉµéÀ» Ãß°¡ÇØÁÝ´Ï´Ù. http://www.linuxfromscratch.org/patches/downloads/ ¿¡ À§Ä¡ÇÑ ÆÐÄ¡ µ¥ÀÌÅͺ£À̽º¸¦ ÀÚÀ¯·Ó°Ô ½ÃÇèÇغ¸°í, »ç¿ëÇϱ⸦ ¿øÇÏ´Â ÆÐÄ¡µéÀ» ¼±ÅÃÇϼ¼¿ä.

3. ¸¶Áö¸· Áغñ °úÁ¤

(chaoxifer: 7.2¹öÀüÀ¸·Î ¾÷µ¥ÀÌÆ® Çϸ鼭 Ãß°¡µÈ ºÎºÐÀÔ´Ï´Ù)

3.1. $LFS¿¡ ´ëÇÏ¿©


ÀÌ Ã¥¿¡¼­´Â LFS¶ó´Â ȯ°æº¯¼ö(environment variable)°¡ »ç¿ëµÉ °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº Ç×»ó Á¤ÀǵǾî ÀÖ¾î¾ß ÇÏ´Â ¾ÆÁÖ Áß¿äÇÑ º¯¼öÀÔ´Ï´Ù. ÀÌ°ÍÀº LFS ÆÄƼ¼ÇÀ¸·Î »ç¿ëµÉ ¸¶¿îÆ®Æ÷ÀÎÆ®¸¦ ¼³Á¤Çϱâ À§ÇØ ¹Ýµå½Ã ÀÖ¾î¾ß ÇÕ´Ï´Ù. LFS º¯¼ö°¡ ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÏ·Á¸é ´ÙÀ½ÀÇ ¸í·ÉÀ» »ç¿ëÇϽʽÿÀ:
echo $LFS

À§ÀÇ ¸í·ÉÀÌ LFS ÆÄÅß¼ÇÀÇ ¸¶¿îÆ® Æ÷ÀÎÆ®(ÀÌ Ã¥ÀÇ ¿¹Á¦¿¡¼­´Â /mnt/lfs·Î ¼³Á¤µÇ¾î ÀÖ½À´Ï´Ù)¸¦ °¡¸®Å°°í ÀÖ´ÂÁö È®½ÇÇÏ°Ô ÇØ¾ß ÇÕ´Ï´Ù. ¸¸¾à Ãâ·Â°á°ú°¡ ¿Ã¹Ù¸£Áö ¾Ê´Ù¸é ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ¼³Á¤ÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
export LFS=/mnt/lfs

ÀÌ·¯ÇÑ È¯°æº¯¼ö¸¦ °®´Â °ÍÀº mkdir $LFS/tools¿Í °°Àº ¸í·Éó·³ ¹®ÀÚ ±×´ë·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡ À־ À¯¿ëÇÕ´Ï´Ù. ¼ÐÀº ¸í·É¹®¿¡ »ç¿ëµÇ´Â ±¸¹®¿¡¼­ ÀÚµ¿ÀûÀ¸·Î $LFSÀ» "/mnt/lfs"·Î ¹Ù²Ù¾î¼­ »ç¿ëÇÒ °Ì´Ï´Ù.

¿©·¯ºÐÀÌ ÇöÀçÀÇ ¼³Ä¡ ȯ°æ¿¡¼­ ¹þ¾î³ª°Å³ª ´Ù½Ã ÇöÀçÀÇ ¼³Ä¡ ȯ°æÀ¸·Î µÇµ¹¾Æ¿Ã ¶§µµ ȯ°æº¯¼­ $LFS°¡ Á¦´ë·Î ¼³Á¤µÇ¾î ÀÖ´ÂÁö ¹Ýµå½Ã È®ÀÎÇϽʽÿÀ.(su·Î ·çÆ®³ª ´Ù¸¥ »ç¿ëÀÚ·Î Å͹̳Πȯ°æÀÌ ¹Ù²î¾úÀ» ¶§)

3.2. $LFS/tools µð·ºÅ丮 ¸¸µé±â


[http]Chapter 5(ÀӽýýºÅÛ ¸¸µé±â)¿¡¼­ ÄÄÆÄÀÏµÈ ¸ðµç ÇÁ·Î±×·¥Àº [http]Chapter 6(ºôµåÇϱâ)¿¡¼­ ¼³Ä¡µÉ ÇÁ·Î±×·¥°ú ±¸ºÐµÇ°Ô Çϱâ À§ÇØ $LFS/tools µð·ºÅ丮 ³»¿¡ ¼³Ä¡µÉ °ÍÀÔ´Ï´Ù. ÀÌ °÷¿¡ ÄÄÆÄÀϵǴ ÇÁ·Î±×·¥µéÀº ¸ðµÎ Àӽà ÅøµéÀ̸ç ÃÖÁ¾ÀûÀÎ LFS½Ã½ºÅÛ¿¡´Â Æ÷ÇÔµÇÁö ¾Ê½À´Ï´Ù. ÀÌ·¸°Ô ÇϹǷνá Àӽà ÅøµéÀÌ »ç¿ëÇÏ¿© ÃÖÁ¾ÀûÀÎ ½Ã½ºÅÛÀÌ ¿Ï¼ºµÈ µÚ¿¡ ½±°Ô ÀÌ ÅøµéÀ» ½Ã½ºÅÛ¿¡¼­ Á¦°ÅÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ À̵é ÇÁ·Î±×·¥µéÀÌ È£½ºÆ® ½Ã½ºÅÛÀÇ µð·ºÅ丮¿¡ À§Ä¡ÇÏ´Â °ÍÀ» ¹Ì¸® »çÀü¿¡ ¹æÁöÇÒ ¼ö ÀÖ½À´Ï´Ù.

root·Î ½ÇÇàÇÏ¿© ÇÊ¿äÇÑ µð·ºÅ丮¸¦ »ý¼ºÇÕ´Ï´Ù:
mkdir -v $LFS/tools

´ÙÀ½Àº /tools¿¡ ´ëÇÑ ½Éº¼¸µ ¸µÅ©¸¦ '/' ·çÆ® µð·ºÅ丮¿¡ ¸¸µå´Â °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº »õ·Î ¸¸µé¾îÁø µð·ºÅ丮¸¦ °¡¸®Å°´Â °ÍÀÔ´Ï´Ù. root±ÇÇÑÀ¸·Î ´ÙÀ½°ú °°ÀÌ ½ÇÇàÇÕ´Ï´Ù.
ln -sv $LFS/tools /

Note

À§ÀÇ ¸í·ÉÀº ¿Ã¹Ù¸¥ ¸í·ÉÀÔ´Ï´Ù. ln Ä¿¸Çµå´Â ¸î°¡ÁöÀÇ ¹®¹ýµéÀÌ ÀÖ½À´Ï´Ù. ¿©±â¿¡ ´ëÇؼ­ ¿À·ù°¡ ÀÖ´Ù°í »ý°¢Çϼż­ ¾Ë·Á¾ß°Ú´Ù´Â ºÐÀº ±×Àü¿¡ info coreutils ln¿Í ln(1)À» È®ÀÎÇϽʽÿÀ.

3.3. LFS »ç¿ëÀÚ Ãß°¡Çϱâ


¿©·¯ºÐµéÀÌ root °èÁ¤À¸·Î ·Î±×ÀÎÀ» ÇÒ °æ¿ì, ´Ü ÇѹøÀÇ ½Ç¼ö·Î ½Ã½ºÅÛ¿¡ ¼Õ»óÀ» ÀÔÈ÷°Å³ª ¾Æ¿¹ Æı«Çعö¸± ¼öµµ ÀÖ½À´Ï´Ù. ±×·¸°Ô ¶§¹®¿¡ ÀÌ Àý¿¡¼­ ÆÐÅ°Áö¸¦ ºôµåÇÒ ¶§´Â ±×·¯ÇÑ ±ÇÇÑÀÌ ¾ø´Â »ç¿ëÀÚ·Î ÇÏ´Â °ÍÀ» ±ÇÀåÇÕ´Ï´Ù. ¿©·¯ºÐµéÀº ¿©·¯ºÐ¸¸ÀÇ À̸§À» »ç¿ëÇÒ ¼ö ÀÖÁö¸¸ Á» ´õ °£ÆíÇÏ°Ô Çϱâ À§ÇØ ¿©±â¿¡¼­´Â °£´ÜÈ÷ lfs¶ó°í À̸§Áþ°í lfs¶ó´Â ±×·ì¿¡ Æ÷ÇÔ½ÃÅ°µµ·Ï ÇÏ°Ú½À´Ï´Ù. root±ÇÇÑÀ¸·Î ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇàÇÏ¿© »õ·Î¿î »ç¿ëÀÚ¸¦ ¸¸µì´Ï´Ù:
groupadd lfs
useradd -s /bin/bash -g lfs -m -k /dev/null lfs
Ä¿¸Çµå¶óÀÎ ¿É¼Ç ¼³¸í
-s /bin/bash
lfs »ç¿ëÀÚÀÇ ±âº» ¼ÐÀ» bash·Î ÁöÁ¤ÇÕ´Ï´Ù.
-g lfs

lfs »ç¿ëÀÚ¸¦ lfs ±×·ì¿¡ Æ÷ÇÔ½Ãŵ´Ï´Ù.

-m

lfs¸¦ À§ÇÑ È¨ µð·ºÅ丮¸¦ »ý¼ºÇÕ´Ï´Ù.

-k /dev/null

ÀÌ ÆĶó¹ÌÅʹ ƯÁ¤ null device(/dev/null)·ÎÀÇ ÀÔ·Â À§Ä¡°¡ skeleton µð·ºÅ丮(/etc/skel)ÀÇ ÆÄÀÏÀ» º¹»çÇϸ鼭 ¹Ù²ð ¼ö ÀÖ´Â °æ¿ì¸¦ ¹æÁöÇϱâ À§ÇÑ °ÍÀÔ´Ï´Ù.

/dev/null¿¡ ´ëÇØ ´õ ÀÚ¼¼È÷ ¾Ë°í ½ÍÀ¸½Å ºÐÀº ´ÙÀ½À» Âü°íÇϼ¼¿ä:[http]/dev/null ¿¹Á¦

lfs ½ÇÁ¦·Î »ç¿ëµÉ »ç¿ëÀÚÀÇ À̸§ÀÔ´Ï´Ù.

lfs·Î ·Î±×ÀÎÇϱâ À§Çؼ­´Â Æнº¿öµå°¡ ÇÊ¿äÇÕ´Ï´Ù. ´ÙÀ½ ¸í·ÉÀ» ÅëÇØ ¼³Á¤ÇØ ÁÝ´Ï´Ù.
passwd lfs

lfs¿¡°Ô $LFS/tools µð·ºÅ丮¿¡ ´ëÇÑ ¸ðµç ±ÇÇÑÀ» ÁÝ´Ï´Ù.
chown -v lfs $LFS/tools

¸¸¾à ÀÛ¾÷ µð·ºÅ丮°¡ ¼³¸íÇÑ ´ë·Î ¸¸µé¾îÁ³´Ù¸é ÀÌ µð·ºÅ丮¿¡ ´ëÇؼ­µµ ±ÇÇÑÀ» ÁÝ´Ï´Ù.
chown -v lfs $LFS/sources

ÀÌÁ¦, lfs·Î ·Î±×ÀÎÀ» ÇÕ´Ï´Ù. ÀÌ°ÍÀº virtual console, display manager, ȤÀº ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î °¡´ÉÇÕ´Ï´Ù.
su - lfs
"-" ¶ó´Â °ÍÀº non-login ¼Ð°ú´Â ¹Ý´ë·Î su°¡ login ¼ÐÀ» ½ÃÀÛÇÏ´Â °ÍÀ» °¡¸®Åµ´Ï´Ù. ÀÌ µÎÁ¾·ùÀÇ ¼ÐÀÇ Â÷ÀÌÁ¡Àº bash(1), info bash¿¡¼­ ÀÚ¼¼ÇÏ°Ô Ã£¾Æº¼ ¼ö ÀÖ½À´Ï´Ù.

¿¹) su¸¸ »ç¿ëÇؼ­ root·Î ·Î±×ÀÎÇÒ °æ¿ì ȯ°æº¯¼ö´Â °¡Á®¿ÀÁö ¾Ê½À´Ï´Ù. ´ÜÁö ·Î±×ÀΰèÁ¤¸¸ ¹Ù²ò´Ï´Ù. ÇÏÁö¸¸ su - ¸¦ ÀÌ¿ëÇϸé ÇöÀçÀÇ È¯°æº¯¼ö±îÁö °¡Á®¿À±â ¶§¹®¿¡ ·Î±×ÀÎ ÈÄÀÇ À§Ä¡µµ ±×´ë·ÎÀ̸ç ÀÌ´Â su lfs¿Í su - lfs¿ÍÀÇ Â÷ÀÌÁ¡¿¡¼­µµ ¶È°°½À´Ï´Ù. ÀÌÁ¡ ²À~! ±â¾ïÇϽñ⠹ٶø´Ï´Ù.

3.4. ȯ°æ ¼³Á¤Çϱâ


bash ¼ÐÀ» À§ÇÑ »õ·Î¿î ½ÃÀÛ ÆÄÀÏ(startup file)À» ¸¸µé¾î¼­ ¼³Ä¡ ȯ°æÀ» ¸¸µå´Â °Íµµ ÁÁÀº ¹æ¹ýÀÔ´Ï´Ù. ¿©·¯ºÐÀÌ lfs¶ó´Â »ç¿ëÀÚ·Î ·Î±×ÀÎÇÑ µÚ .bash_profileÀ» »õ·Î ¸¸µå·Á¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇϽʽÿÀ:
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

lfs »ç¿ëÀÚ¿¡ ·Î±×ÀÎÀ» Çϸé, ÀϹÝÀûÀ¸·Î initial ¼ÐÀ» login ¼ÐÀ̶ó Çϴµ¥- ÀÌ ¼ÐÀº È£½ºÆ®ÀÇ /etc/profile(¿©·¯ ¼³Á¤ÆÄÀϵéÀ̳ª ȯ°æ º¯¼öµé)À» ÀÐÀº µÚ .bash_profileÆÄÀÏÀ» ÀнÀ´Ï´Ù. .bash_profile ÆÄÀÏ ¾È¿¡ exec env -i.../bin/bash ¿Í °°Àº Ä¿¸Çµå´Â ÇöÀç ½ÇÇàµÇ°í ÀÖ´Â ¼ÐÀ» »õ·Î¿î °ÍÀ¸·Î ´ëüÇϴµ¥ À̶§ HOME, TERM, PS1 ÀÌ ¼¼°¡ÁöÀÇ È¯°æº¯¼ö¸¦ Á¦¿ÜÇÏ°í ¿Ïº®ÇÏ°Ô »õ·Î¿î(empty) ȯ°æÀ¸·Î ´ëüµË´Ï´Ù. ÀÌ·¯ÇÑ ¹æ¹ýÀº »ç¿ëÀÚ°¡ ¿øÇÏÁö ¾Ê°Å³ª ÀáÀçÀûÀ¸·Î È£½ºÆ® ½Ã½ºÅÛ¿¡ Çطοî ȯ°æº¯¼ö°¡ ¼³Á¤µÇ´Â °ÍÀ» ¹æÁöÇÕ´Ï´Ù.

non-login¼ÐÀÇ »õ·Î¿î ÀνºÅϽºÀÎ ¼ÐÀº /etc/profileÀ̳ª .bash_profileÀ» ÀÐÁö ¾Ê½À´Ï´Ù. ´ë½Å .bashrc¶ó´Â ÆÄÀÏÀ» ÀнÀ´Ï´Ù. µû¶ó¼­ »õ·Î¿î .bashrcÆÄÀÏÀ» ¸¸µé¾î ÁÝ´Ï´Ù.

chaoxifer- .bashrc´Â bash°¡ ½ÇÇàµÉ ¶§¸¶´Ù Àд ÆÄÀÏÀÌ°í .bash_profileÀº bash°¡ login shell·Î½á »ç¿ëÀÚ°¡ óÀ½ ·Î±×À뵃 ¶§ Àд ÆÄÀÏÀÔ´Ï´Ù.
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
LFS_TGT=$(uname -m)-lfs-linux-gnu
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL LFS_TGT PATH
EOF

set +h Ä¿¸Çµå´Â bashÀÇ Çؽà ±â´ÉÀ» ²ô´Â °ÍÀÔ´Ï´Ù. Çؽà ±â´ÉÀº bash¿¡¼­ Çؽà Å×À̺íÀ» ÀÌ¿ëÇØ ½ÇÇàÆÄÀÏÀÇ ¿ÏÀüÇÑ °æ·Î(full path)¸¦ ±â¾ïÇϱâ À§ÇØ »ç¿ëµË´Ï´Ù. ±×·¡¼­ ¶È°°Àº ÆÄÀÏ¿¡ ´ëÇؼ­ °æ·Î¸¦ ´Ù½Ã ãÀ» ÇÊ¿ä ¾øÀÌ ¹Ù·Î ½ÇÇàÇÒ ¼ö ÀÖµµ·Ï ÇÏ´Â ±â´ÉÀε¥, Áö±ÝÀÇ °æ¿ì°°Àº °æ¿ì´Â È£½ºÆ® ½Ã½ºÅÛ°ú ºÐ¸®µÇ¾î $LFS/tools¿¡ ÄÄÆÄÀÏµÈ ÇÁ·Î±×·¥¸¸ »ç¿ëµÇµµ·Ï ¼ÐÀÌ ÀÛµ¿µÇ¾î¾ß Çϱ⠶§¹®¿¡ ±âÁ¸¿¡ È£½ºÆ® ½Ã½ºÅÛ¿¡¼­ »ç¿ëµÇ¾ú´ø ÇÁ·Î±×·¥ÀÇ path¿¡ ´ëÇÑ Çؽ̱â´ÉÀ» ²¨³õÀº °ÍÀÔ´Ï´Ù.

umask 022´Â »õ·Ó°Ô ÆÄÀÏÀ̳ª µð·ºÅ丮¸¦ ¸¸µé ¶§ÀÇ µðÆúÆ® ±ÇÇÑÀ» »ý¼ºÇϱâ À§ÇÑ maskÀÔ´Ï´Ù.

¿¹)777( 111 111 111 )- 022( 000 001 001 )= 755( 111 110 110 )

LFS º¯¼ö´Â ¸¶¿îÆ® Æ÷ÀÎÆ®·Î ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù.

LC_ALL º¯¼ö´Â ƯÁ¤ ±¹°¡¿¡ ¸Â°Ô ÇÁ·Î±×·¥ÀÇ ¾ð¾î¸¦ ¼³Á¤Çϱâ À§ÇÑ °ÍÀÔ´Ï´Ù. ¸¸¾à¿¡ È£½ºÆ® ½Ã½ºÅÛÀÌ GlibcÀÇ ¹öÀüÀÌ 2.2.4º¸´Ù ³·´Ù¸é LC_ALLÀ» "POSIX"³ª "C"¿Í´Â ´Ù¸¥ °ÍÀ¸·Î ¼³Á¤ÇÒ °æ¿ì ³ªÁß¿¡ chroot ȯ°æ¿¡¼­ ¹®Á¦°¡ ¹ß»ýÇÒ ¼ö ÀÖÀ¸´Ï "POSIX"³ª "C"·Î(ÀÌ µÑÀº ¼­·Î °°Àº °ÍÀÔ´Ï´Ù) ¼³Á¤ÇÏ±æ ±ÇÀåÇÕ´Ï´Ù.

LFS_TGT´Â ±âº»À¸·Î ¼³Á¤µÇ´Â º¯¼ö´Â ¾Æ´ÏÁö¸¸ ¾ÕÀ¸·Î ¿ì¸®°¡ Å©·Î½º ÄÄÆÄÀÏ·¯, ¸µÄ¿¸¦ ºôµåÇÒ ¶§³ª Àӽà ÅøüÀÎÀ» À§Çؼ­ Å©·Î½º ÄÄÆÄÀÏÀ» ÇÒ ¶§ ÇÊ¿äÇÑ º¯¼öÀÔ´Ï´Ù. ¿©±â¿¡ ´ëÇØ ´õ ÀÚ¼¼È÷ ¾Ë°í ½ÍÀ¸½Ã¸é [http://wiki.kldp.org/wiki.php/LFS/Preparation#s-4.2 4.2.Toolchain Technical Notes"¸¦ Âü°íÇϽʽÿÀ.

PATH¿¡ /tools/binÀ» ¾Õ¿¡ µÒÀ¸·Î½á Àӽà ½Ã½ºÅÛÀ» ¸¸µé±â À§ÇØ ¾ÕÀ¸·Î ¼³Ä¡µÉ ¸ðµç ÇÁ·Î±×·¥µéÀº ÀÌ °æ·Î¿¡ Àֱ⠶§¹®¿¡ shell¿¡ ÀÇÇØ Áï½Ã ¼±ÅÃµÇ¾î ½ÇÇàµÉ °Ì´Ï´Ù. ÀÌ´Â ¾Õ¿¡¼­ ÇØ½Ì ±â´ÉÀ» ²ô°í ¼ÐÀÌ Ä¿¸Çµå¸¦ ½ÇÇàÇÒ ¶§ ã´Â °æ·Î(PATH)¸¦ º¯°æÇÏ¿´±â ¶§¹®¿¡ °¡´ÉÇÕ´Ï´Ù.

¸¶Áö¸·À¸·Î Àӽà ÅøµéÀ» ºôµåÇÒ ½Ã½ºÅÛȯ°æÀ» À§ÇØ ´ÙÀ½ÀÇ ¸í·ÉÀ» ½ÇÇàÇÏ¿© »ç¿ëÀÚ ÇÁ·ÎÆÄÀÏÀ» ÀоîµéÀÔ´Ï´Ù.
source ~/.bash_profile

3.5. SBUs¶õ?


¸¹Àº »ç¶÷µéÀÌ °¢°¢ ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏÇÏ°í ¼³Ä¡Çϴµ¥ ¾ó¸¶³ª ¿À·¡ °É¸®´ÂÁö ´ë·«ÀûÀ¸·Î ¹Ì¸® ¾Ë±â¸¦ ¿øÇÕ´Ï´Ù. ÇÏÁö¸¸ Linux From Scratch´Â ¼­·Î ´Ù¸¥ ¸¹Àº ½Ã½ºÅÛ¿¡¼­ ¼³Ä¡µÉ ¼ö Àֱ⠶§¹®¿¡ Á¤È®ÇÑ ¼Ò¿ä½Ã°£À» Á¦°øÇϱⰡ ¾î·Æ½À´Ï´Ù. °¡Àå Å« ÆÐÅ°Áö(Glibc)°¡ ´ë·«ÀûÀ¸·Î °¡Àå ºü¸¥ ½Ã½ºÅÛ¿¡¼­ 20ºÐÀüµµ °É¸®´Âµ¥, ´À¸° ½Ã½ºÅÛÀÇ °æ¿ì¿¡´Â 3ÀÏÀ̳ª °É¸± ¼öµµ ÀÖ½À´Ï´Ù. ÀÌ¿Í °°Àº ÀÌÀ¯·Î ½ÇÁ¦ÀûÀÎ ½Ã°£À» Á¦°øÇϱ⺸´Ù Standard Build Unit(SBU) ÃøÁ¤¹æ½ÄÀ» »ç¿ëÇϱâ·Î Çß½À´Ï´Ù.

SBU ÃøÁ¤¹æ½ÄÀº ´ÙÀ½°ú °°ÀÌ ÃøÁ¤µË´Ï´Ù. Ã¥¿¡ ¼Ò°³µÈ ÄÄÆÄÀÏµÉ Ã¹¹ø° ÆÐÅ°Áö´Â BinutilsÀÔ´Ï´Ù. ÀÌ ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏ Çϴµ¥ °É¸®´Â ½Ã°£Àº SBU·Î½á ¾ð±ÞµÉ °ÍÀÔ´Ï´Ù. ´Ù¸¥ ¸ðµç ÆÐÅ°Áöµéµµ ÀÌ·¯ÇÑ Ç¥ÁØÀ¸·Î ³ªÅ¸³¾ ¼ö ÀÖ½À´Ï´Ù.

¿¹¸¦µé¾î, ¾î¶² ÆÐÅ°ÁöÀÇ ÄÄÆÄÀÏ ½Ã°£ÀÌ 4.5SBUs¶ó°í ÇÑ´Ù¸é, ÀÌ´Â Binutils¸¦ ÄÄÆÄÀÏÇÏ°í ¼³Ä¡Çϴµ¥ 10ºÐÀÌ °É·È´Ù°í ÇßÀ» ¶§, ´ë·«ÀûÀ¸·Î 45ºÐÀÌ °É¸°´Ù´Â ¶æÀÔ´Ï´Ù. ÇÏÁö¸¸ ½ÇÁ¦·Î´Â ¿îÁÁ°Ôµµ ´ëºÎºÐÀÇ ÆÐÅ°ÁöµéÀÇ ºôµå½Ã°£Àº Binutilsº¸´Ù ª½À´Ï´Ù.

ÀϹÝÀûÀ¸·Î SBUs´Â È£½ºÆ® ½Ã½ºÅÛÀÇ GCC¹öÀüÀ» Æ÷ÇÔÇؼ­ ºôµå½Ã°£¿¡ ¿µÇâÀ» ³¢Ä¡´Â °ÍµéÀÌ ¸¹±â ¶§¹®¿¡ Á¤È®ÇÏ´Ù°í´Â º¼ ¼ö ¾ø½À´Ï´Ù. ´ÜÁö ÇØ´ç ÆÐÅ°Áö¸¦ ¼³Ä¡Çϴµ¥ µå´Â ´ë·«ÀûÀÎ ½Ã°£À» Á¦°øÇÒ »ÓÀÔ´Ï´Ù.

¸¸¾à ƯÁ¤ machine¿¡ µå´Â ½ÇÁúÀûÀÎ ½Ã°£À» »ìÆ캸°íÀÚ ÇÑ´Ù¸é LinuxFromScratch SBU ȨÆäÀÌÁö¸¦ Âü°íÇϽʽÿÀ. [http]http://www.linuxfromscratch.org/~sbu/

Note
¿äÁòÀÇ ¸¹Àº ½Ã½ºÅÛµéÀÌ µÎ °³ ÀÌ»óÀÇ ÇÁ·Î¼¼¼­(ȤÀº ÄÚ¾î)¸¦ °¡Áö°í À־ ÀÌ·¯ÇÑ °æ¿ì ȯ°æº¯¼ö¸¦ ¼³Á¤ÇÏ¿© "parallel make"¸¦ ÀÌ¿ëÇϸé ÄÄÆÄÀÏÇÏ´Â µ¥ °É¸®´Â ½Ã°£À» ÁÙÀÏ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î, Core2Duo´Â µ¿½Ã¿¡ µÎ°³ÀÇ ÇÁ·Î¼¼¼­¸¦ ´ÙÀ½ÀÇ È¯°æº¯¼ö ¼³Á¤À¸·Î »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù:
export MAKEFLAGS='-j 2'

¶Ç´Â ºôµå ½Ã¿¡ ´ÙÀ½°ú °°ÀÌ ÇÒ ¼ö ÀÖ½À´Ï´Ù:
make -j2

ÀÌ·¯ÇÑ µÎ °³ ÀÌ»óÀÇ ÇÁ·Î¼¼¼­°¡ ÀÌ·¯ÇÑ ¹æ¹ýÀ¸·Î »ç¿ëµÉ °æ¿ì Ã¥¿¡ ³ª¿ÍÀÖ´Â SBU´Â ¸¹ÀÌ º¯ÇÒ ¼ö ÀÖÀ¸¸ç ½ÉÁö¾î Á¤»óÀûÀ¸·Î ½ÇÇàÇßÀ» ¶§º¸´Ù ´õ Å©°Ô ³ª¿Ã ¼ö ÀÖ½À´Ï´Ù. Ãâ·Â°á°ú¸¦ ºÐ¼®ÇÒ ¶§¿¡µµ ¼­·Î ´Ù¸¥ ÇÁ·Î¼¼¼­°¡ µ¿½Ã¿¡ ¾×¼¼½ºµÇ±â ¶§¹®¿¡ ºÐ¼®ÀÌ ´õ ¾î·ÁÀ§Áú¼öµµ ÀÖ½À´Ï´Ù. ¸¸¾à ¿©·¯ºÐÀÌ À§ÀÇ ¿É¼ÇÀ¸·Î ºôµå¸¦ ÇÏ´Ù°¡ ¹®Á¦°¡ »ý°åÀ» °æ¿ì ¿¡·¯ ¸Þ¼¼Áö¸¦ ºÐ¼®Çϱâ À§Çؼ­´Â ¿É¼ÇÀ» ÇØÁ¦ÇÏ°í single processor·Î ºôµåÇغ¸½Ã±â ¹Ù¶ø´Ï´Ù.

3.6. Test Suites¶õ?


´ëºÎºÐÀÇ ÆÐÅ°ÁöµéÀÌ test suites¸¦ Á¦°øÇÕ´Ï´Ù. »õ·Ó°Ô ºôµåµÈ ÆÐÅ°Áö¿¡ ´ëÇØ test suites¸¦ ½ÇÇàÇÏ´Â °ÍÀº ÄÄÆÄÀÏÀÌ Á¦´ë·Î µÇ¾ú´ÂÁö È®ÀÎÇÒ ¼ö ÀÖ´Â "sanity check"¸¦ Á¦°øÇϱ⠶§¹®¿¡ °³¹ßÀÚ°¡ ÀǵµÇÑ ÆÐÅ°ÁöÀÇ ±â´ÉµéÀÌ ¿Ã¹Ù¸£°Ô ¼³Ä¡µÇ¾ú´ÂÁö È®ÀÎÇÏ¿© bug free¸¦ ¿Ïº®ÇÏ°Ô º¸ÀåÇÒ ¼ö ÀÖ½À´Ï´Ù.

´Ù¸¥ °Íµéº¸´Ù ´õ Áß¿äÇÑ test suitesµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¾î core toolchain ÆÐÅ°Áö¿¡ ´ëÇÑtest suitesµé(GCC, Binutils, Glibc)´Â ½Ã½ºÅÛÀÇ Áß¿äÇÑ ÇٽɺκÐÀ̱⠶§¹®¿¡ test suites°¡ ½Ã°£ÀÌ ¿À·¡°É¸®´õ¶óµµ ¹Ýµå½Ã Å×½ºÆ®¸¦ ÇغÁ¾ßÇÕ´Ï´Ù.

Binutils°ú GCC¿¡ ´ëÇÑ test suites¿¡ ´ëÇØ ÀÚÁÖ µîÀåÇÏ´Â À̽´´Â 'running out of pseudo terminals'ÀÔ´Ï´Ù. ÀÌ°ÍÀº ¸î°¡Áö ¿øÀÎÀ¸·Î ÀÎÇØ ÀϾ ¼ö ÀÖÁö¸¸ ´ëºÎºÐÀÇ °æ¿ì È£½ºÆ®½Ã½ºÅÛ¿¡¼­ devpts ÆÄÀÏ ½Ã½ºÅÛÀ» ¿Ã¹Ù¸£°Ô °¡Áö°í ÀÖÁö ¾Ê¾Æ »ý±ä ¹®Á¦ÀÔ´Ï´Ù. ÀÌ ¹®Á¦¿¡ ´ëÇÑ ±ÛÀ» º¸·Á¸é ´ÙÀ½À» Âü°íÇϽʽÿÀ: [http]http://www.linuxfromscratch.org//lfs/faq.html#no-ptys

°¡²û¾¿ °³¹ßÀÚ°¡ test suites¿¡ ½ÇÆÐÇصµ ½É°¢ÇÏ´Ù°í ¿©±âÁö ¾Ê´Â °æ¿ì ¶§¹®¿¡ Á¾Á¾ test suites¿¡ ½ÇÆÐÇÏ´Â ÆÐÅ°Áöµµ ´õ·¯ ÀÖ½À´Ï´Ù. ÀÌ·± °æ¿ì¿¡ ÇØ´çÇÏ´Â ÆÐÅ°Áö¸¦ È®ÀÎÇÏ·Á¸é[http]http://www.linuxfromscratch.org/lfs/build-logs/7.2/¿¡ ÀÖ´Â ·Î±×ÆÄÀÏÀ» È®ÀÎÇϽʽÿÀ. ÀÌ »çÀÌÆ®´Â ÀÌ Ã¥¿¡ ÀÖ´Â ¸ðµç ÆÐÅ°Áö¿¡ ÇØ´çÇÕ´Ï´Ù.

4. Àӽà ½Ã½ºÅÛ ±¸ÃàÇϱâ

4.1. ¼Ò °³


ÀÌ Àå¿¡¼­ ¿ì¸®´Â ¸®´ª½º ½Ã½ºÅÛ ÃÖ¼Ò»ç¾çÀ» ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ ÇÒ °ÍÀÔ´Ï´Ù. ÀÌ ½Ã½ºÅÛÀº ´ÙÀ½ Àå¿¡¼­ ÃÖÁ¾ LFS ½Ã½ºÅÛ ¼³Ä¡¸¦ ½ÃÀÛÇÒ ¼ö ÀÖµµ·Ï Çϱâ À§ÇÑ ÃæºÐÇÑ µµ±¸µéÀ» Æ÷ÇÔ ÇÒ °ÍÀÔ´Ï´Ù

ÀÌ·± ÃÖ¼Ò»ç¾çÀÇ ¼³Ä¡´Â µÎ ´Ü°è¸¦ °ÉĨ´Ï´Ù. ÃֽŠÆÑÅ°Áöµé°ú µ¶¸³ÀûÀ¸·Î ÀÛµ¿µÇ´Â Toolchain(compiler,assembler, linker and libraries)À» ¼³Ä¡ÇÏ°í, ±× ´ÙÀ½ ´Ù¸¥ ÇʼöÀûÀÎ ¸ðµç µµ±¸µéÀ» ¼³Ä¡Çϱâ À§ÇØ À̰͵éÀ» »ç¿ëÇÕ´Ï´Ù.

ÀÌ Àå¿¡¼­ ÄÄÆÄÀÏµÈ ÆÄÀϵéÀº $LFS/tools µð·ºÅ丮 ¹Ø¿¡ ¼³Ä¡ µÉ °ÍÀÔ´Ï´Ù. ¿©±â¿¡¼­ ÄÄÆÄÀÏµÈ ÆÐÅ°ÁöµéÀº À̹ø Àå¿¡¼­¸¸ ¾²À̱⠶§¹®¿¡, ¿ì¸®´Â ±×°ÍµéÀÌ ÃÖÁ¾ LFS½Ã½ºÅÛ°ú ¼¯ÀÌ´Â °ÍÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù.

¼³Ä¡¸í·ÉµéÀº bash shellÀ» »ç¿ëÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù ¶ÇÇÑ ÀÌ¹Ì ¼Ò½ºÆÑÅ°ÁöÀÇ ¾ÐÃàÀ» Ç®¾ú´Ù°í °¡Á¤ÇÏ°í,(lfs»ç¿ëÀڷμ­ ·Î±×ÀÎµÈ µ¿¾È - ¾Õ¿¡¼­ °£´ÜÈ÷ ¼³¸íÇßÀ½ .) ¼³Ä¡¸í·ÉÀ» »ç¿ëÇϱâ Àü¿¡ ÆÑÅ°ÁöÀÇ ¼Ò½º µð·ºÅ丮·Î µé¾î°¡±âÀ§ÇØ cd ¸í·ÉÀ» »ç¿ëÇÕ´Ï´Ù.

±× ÆÑÅ°ÁöµéÀÇ ÀϺδ ÄÄÆÄÀÏÀü¿¡ ÆÐÄ¡µË´Ï´Ù. ±× ÆÐÄ¡´Â ¹ö±×¸¦ ÇÇÇϱâ À§ÇØ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ÆÐÄ¡´Â Á¾Á¾ ÀÌ Àå°ú ´ÙÀ½ Àå µÑ´Ù¿¡¼­ ÇÊ¿äÇÏÁö¸¸ ±×¸® Å« ¹®Á¦´Â ¾Æ´Õ´Ï´Ù.±×·¯¹Ç·Î ÆÐÄ¡¸¦ ´Ù¿î·Îµå Çϱâ À§ÇÑ ¼³¸íÀ» º¼ ¶§ Çò°¥¸®´õ¶óµµ ³Ê¹« °ÆÁ¤ÇÏÁö ¸¶¼¼¿ä. ÆÐÄ¡¸¦ Àû¿ëÇÒ ¶§ °æ¿ì¿¡ µû¶ó offset À̳ª fuzz.¿¡ °üÇÑ °æ°í ¸Þ¼¼Áö¸¦ º¸°Ô µÉ°ÍÀÔ´Ï´Ù. ÀÌ·± °æ°íµéÀº ÆÐÄ¡¸¦ ¼º°øÀûÀ¸·Î Àû¿ë Çϴµ¥ À־ ÀüÇô °ÆÁ¤ÇÒ °ÍÀÌ ¾ø½À´Ï´Ù.

´ëºÎºÐÀÇ ÆÑÅ°Áö ¼³Ä¡°úÁ¤µ¿¾È È­¸é¿¡¼­ ¸ðµç Á¾·ùÀÇ ÄÄÆÄÀÏ °æ°í¸¦ º¼ °ÍÀÔ´Ï´Ù. ÀÌ °æ°íµéÀº Á¤»óÀûÀ̹ǷΠ½Å°æ¾²Áö ¾Ê¾Æµµ ÁÁ½À´Ï´Ù. C ¾ð¾îÀÇ Ç¥ÁØÀº ¸¹ÀÌ ¹Ù²î¾ú´Âµ¥, ÀϺΠÆÑÅ°ÁöµéÀº ¿¾ ¹öÀüÀÇ C¿¡ ¸ÂÃß¾îÁ® Àֱ⠶§¹®¿¡ ³ª¿À´Â ¸Þ¼¼ÁöÀÔ´Ï´Ù. ½Å°æ¾µ ºÎºÐÀº ¾Æ´Õ´Ï´Ù.

ÀØÁö ¸»¾Æ ÁÖ¼¼¿ä. ºÒÇÊ¿äÇÑ °Í ¾øÀÌ °ø°£À» Àý¾àÇϱâ À§ÇØ, °¢ ÆÑÅ°Áö¸¦ ¼³Ä¡ÇÑ ÈÄ¿¡ ¼Ò½º¿Í ¼³Ä¡ µð·º¼Ò¸®¸¦ »èÁ¦ÇÏ´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

ÀÛ¾÷À» ÁøÇàÇϱâÀü¿¡ ¾Æ·¡Ã³·³ ½ÇÇàÇÔÀ¸·Î½á LFS ȯ°æº¯¼ö¸¦ Àû¿ë µÇ¾úÀ½À» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.
echo $LFS

LFS ÆÄƼ¼ÇÀÇ ¸¶¿îÆ®µÈ °÷ÀÇ °æ·Î¸¦ Ãâ·Â°á°ú·Î È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù. Ã¥ÀÇ ³»¿ëÀ» µû¶ú´Ù¸é "/mnt/lfs"À» º¼ ¼ö ÀÖÀ» °Ì´Ï´Ù.

4.2. Toolchain technical notes


ÀÌ Àå¿¡¼­´Â ¼¼ºÎÀûÀÎ ±â¼ú°ú ¿ø¸®ÀÇ ÀϺθ¦, µÚ¿¡¼­´Â ÀüüÀûÀÎ ¼³Ä¡¹æ¹ýÀ» ¼³¸í ÇÒ °ÍÀÔ´Ï´Ù. ¿©±âÀÇ ³»¿ëÀ» ¹Ù·Î ÀÌÇØÇÏÁö ¸øÇصµ »ó°ü¾ø½À´Ï´Ù. ÀÏ´Ü Çѹø ½ÇÁ¦·Î ¼³Ä¡Çغ¸¸é ´ëºÎºÐ °¨ÀÌ ¿Ã °ÍÀÔ´Ï´Ù. ³ªÁß¿¡¶óµµ ¾ðÁ¦µçÁö ÀÌ°÷À» ÂüÁ¶Çϼ¼¿ä.

5ÀåÀº '/'¸¦ Àӽ÷Π¹Ù²ÞÀ¸·Î½á 6Àå¿¡ ¼­ LSF ½Ã½ºÅÛÀ» ±ò²ûÇÏ°í ¹®Á¦¾øÀÌ ¼³Ä¡ÇÒ ¼ö Àִ ȯ°æÀ» Á¦°øÇÏ´Â °ÍÀ» ¸ñÇ¥·Î ÇÕ´Ï´Ù. ÀÌ·±½ÄÀ¸·Î µÇµµ·Ï È£½ºÆ® ½Ã½ºÅÛÀ¸·Î ºÎÅÍ ¿ì¸®ÀÇ ½Ã½ºÅÛÀ» ºÐ¸®Çϱ⸦ ½ÃµµÇÏ°í, µ¶¸³ÀûÀ¸·Î ÀÛµ¿ ÇÒ ¼ö ÀÖ´Â ToolchainÀ» ¼³Ä¡ÇÕ´Ï´Ù. óÀ½ Á¢ÇÏ´Â »ç¶÷µé¿¡°Ô À§ÇèºÎ´ãÀ» ÃÖ¼ÒÈ­ÇÏ°í ±³À°È¿°ú´Â ÃÖ´ëÈ­ µÇµµ·Ï ¼³Ä¡°úÁ¤ÀÌ °í¾ÈµÇ¾ú½À´Ï´Ù. ´Ù½Ã¸»ÇØ, ÀÌ ½Ã½ºÅÛÀ» ¼³Ä¡Çغ½À¸·Î½á ´õ ³ªÀº ±â¼úÀ» ¾òÀ» ¼ö ÀÖ´Ù´Â ¸»ÀÔ´Ï´Ù.

ÁÖÀÇ»çÇ× : ÀÛ¾÷À» °è¼ÓÇϱ⿡ ¾Õ¼­, ÀÚ½ÅÀÇ Ç÷§Æû¿¹¸¦µé¸é i386ÀÌ ¹«¾ùÀÎÁö ¾Ë¾ÆµÎ¾î¾ß ÇÕ´Ï´Ù.´ëºÎºÐÀÇ °æ¿ì´Â i686±â¹Ý ¸®´ª½º¿¡ ÀûÀýÇÒ °ÍÀÔ´Ï´Ù. °£´ÜÇÑ ¹æ¹ýÀ¸·Î ¼Ò½ºÆÑÅ°Áö ¼Ó¿¡ ÀÖ´Â config.guess ¸¦ ½ÇÇàÇÔÀ¸·Î½á ÀÚ½ÅÀÇ Ç÷§Æû¿¡ ¸Â´Â °ÍÀ» ¼±ÅÃÇÒ ¼ö ÀÖ½À´Ï´Ù. Binutils ¼Ò½ºÀÇ ¾ÐÃàÀ» Ç®°í ./config.guess¸¦ ½ÇÇàÇؼ­ ±× Ãâ·Â¹®À» ¸Þ¸ðÇϼ¼¿ä.

¼³Ä¡¸¦ ÇÒ ¶§ ÀÚ½ÅÀÇ Ç÷§Æû¿¡ ¸Â´Â dynamic linker ÀÇ À̸§À» ¾Ë¾ÆµÎ¾î¾ß ÇÏ°í, Á¾Á¾ dynamic loader ¸¦ ÂüÁ¶ ÇÒ ¶§ Binutils ¾È¿¡ µé¾îÀִ ǥÁظµÄ¿ÀÎ ld ¿Í È¥µ¿ÇÏÁö ¸»¾Æ¾ß ÇÕ´Ï´Ù. The dynamic linker is provided by Glibc and has the job of finding and loading the shared libraries needed by a program, preparing the program to run and then running it. ÀüÅëÀûÀ¸·Î dynamic linker ÀÇ À̸§Àº ld-linux.so.2¸¦ »ç¿ëÇÕ´Ï´Ù. ld.so.1À̶ó´Â À̸§Àº Àß »ç¿ëÇÏÁö ¾Ê¾Ò°í, »õ·Î¿î 64ºñÆ® ±â¹Ý Ç÷§Æû¿¡¼­´Â ÀüÇô ´Ù¸¥ À̸§À» »ç¿ëÇÕ´Ï´Ù. ´ç½Å ½Ã½ºÅÛÀÇ /lib µð·ºÅ丮¿¡¼­ dynamic linkerÀÇ À̸§À» È®ÀÎ ÇÒ ¼ö ÀÖ½À´Ï´Ù. °¡Àå È®½ÇÇÑ ¹æ¹ýÀº È£½ºÆ®ÀÇ ºÒƯÁ¤ÇÑ ÇÁ·Î±×·¥À» ´ë»óÀ¸·Î readelf -l <name of binary> | grep interpreter À» ½ÇÇàÇÔÀ¸·Î½á È®ÀÎÀ» Çغ¸´Â °ÍÀÔ´Ï´Ù. Glibc ¼Ò½º Æ®¸®ÀÇ root¿¡ ÀÖ´Â shlib-versionsÀÇ ÆÄÀÏ¿¡ ¸ðµç Ç÷§Æû¿¡ ´ëÇÑ Á¤º¸°¡ µé¾îÀÖ½À´Ï´Ù.

5 Àå¿¡¼­ ¼³Ä¡ÀÛ¾÷À» ÇÒ ¶§ ¾Æ·¡ ³»¿ëµµ ÂüÁ¶Çϼ¼¿ä.

  • ¿øÄ¢ÀûÀ¸·Î Å©·Î½º ÄÄÆÄÀÏÀº °°Àº ÇÁ¸®ÇȽº¾È¿¡ ¼³Ä¡µÈ ÅøÀÌ Çù·Â¿¡¼­ ÀÛµ¿ÇÏ°í ÀÛÀº GNU "magic"À» ÀÌ¿ëÇÑ´Ù.
  • ÇÁ·Î±×·¥ÀÌ ¿¬°áµÇ´Â °ÍÀ» º¸ÁõÇϴ ǥÁØÀÌ µÇ´Â ¸µÄ¿ÀÇ ¶óÀ̺귯¸® Ž»öÆнºÀÇ Á¶ÀÛÀº ´ÜÁö ¿ì¸®°¡ ¼±ÅÃÇÑ ¶óÀ̺귯¸®¿¡ ¹Ý´ëÇÑ´Ù.
  • µ¿ÀûÀÎ ¸µÄ¿¸¦ Ÿ°ÙÀ¸·Î ÇÏ´Â gcc ½ºÆåÆÄÀÏÀÇ ÁÖÀDZí°Ô »ç¿ëÇØ¾ß ÇÑ´Ù.

Binutils´Â GCC¿Í GlibcÀÌ ±×µéÀÇ °¢°¢ÀÇ ¼öÇà µ¿¾È ¾î¼Àºí·¯¿Í linker¿¡ ´ëÇÑ ´Ù¾çÇÑ Æ¯Â¡ ½ÃÇèÀ» ¼öÇàÇϱ⠶§¹®¿¡ ù¹ø° ¼³Ä¡µË´Ï´Ù. Binutils´Â GCC¿Í GlibcÀÌ °¡´ÉÇÏ°Ô Çϰųª ¹«´ÉÇÏ°Ô ¸¸µå´Â ¾î¶² ¼ÒÇÁÆ®¿þ¾î Ư¡À» °áÁ¤ÇÏ´Â ./configureÀÇ °¢°¢ÀÇ ±¸µ¿µ¿¾È ¾î¼Àºí·¯¿Í linker¿¡ ´ëÇØ ´Ù¾çÇÑ ±â´É ½ÃÇèÀ» ¼öÇàÇϱ⠶§¹®¿¡ ù¹ø° ¼³Ä¡µË´Ï´Ù. ÀÌ°ÍÀº ù¹ø° ÀνÄÇѰͺ¸´Ù ´õ Áß¿äÇÏ´Ù. ºÎÁ¤È®ÇÏ°Ô ±¸¼ºµÈ GCC¿Í Glibc´Â °á°úÀûÀ¸·Î ¹Ì¼¼ÇÏ°Ô ºÎ½¤Áø ±×·± ÆļÕÀÇ Ãæ°ÝÀÌ ¸ðµç ºÐ¹èÀÇ ºôµåÀÇ ³¡±îÁö º¸ÀÌ¸é ¾ÈµÇ´Â ToolchainÀÌ µÉ ¼ö ÀÖ½À´Ï´Ù. °í¸¿°Ôµµ, test suite ½ÇÆд ³Ê¹« ¸¹Àº ½Ã°£À» ³¶ºñÇϱâ Àü¿¡ º¸Åë ¿ì¸®¿¡°Ô °æ°í ÇÒ °ÍÀÌ´Ù.

Binutils´Â /tools/bin ¿Í /tools/$TARGET_TRIPLET/binÀÇ ¾È¿¡ ±×°ÍÀÇ ¾î¼Àºí·¯¿Í ¸µÄ¿¸¦ ÀνºÅçÇÕ´Ï´Ù. Çö½Ç¿¡¼­ ÇÑ À§Ã¼¿¡ ÀÖ´Â µµ±¸´Â ´Ù¸¥ ¸î¸î¿¡°Ô ¿¬°áµË´Ï´Ù. ¸µÄ¿ÀÇ Áß¿äÇÑ ¸éÀº ±×°ÍÀÇ ¶óÀ̺귯¸® Ž»ö ¼ø¼­ÀÔ´Ï´Ù. »ó¼¼ÇÑ Á¤º¸´Â verbose flag¸¦ Áö³ª°¡´Â °Í¿¡ ÀÇÇØ ld ·ÎºÎÅÍ ¾ò¾î Áú ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, ld verbose | grep SEARCHÀº ´ç½Å¿¡°Ô ±× ÇöÀçÀÇ Å½»ö Æнº¿Í ±×µéÀÇ ¼ø¼­¸¦ º¸¿©ÁÙ °ÍÀÔ´Ï´Ù. ´ç½ÅÀº ½ÇÁ¦·Î ÆÄÀÏÀÌ ¹«¾ùÀÎÁö dummy ÇÁ·Î±×·¥À» ÄÄÆÄÀÏÇÏ°í verbose ±³È¯À» ¸µÄ¿¿¡°Ô °Ç³ÛÀ¸·Î½á ld¿¡ ÀÇÇØ ¿¬°áµÇ´Â °ÍÀ» º¼ ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, gcc dummy.c -Wl,verbose 2>&1 | grepÀº ´ç½Å¿¡°Ô ¼º°øÀûÀ¸·Î ±× ¿¬°áµ¿¾È ¿­¸° ¸ðµç ÆÄÀÏÀ» º¸¿©ÁÙ °ÍÀÔ´Ï´Ù.

¼³Ä¡µÈ ´ÙÀ½ÀÇ ÆÐÅ°Áö´Â GCCÀÔ´Ï´Ù. GCCÀÇ ./configure¼öÇൿ¾È¿¡ ´ç½ÅÀº ¾Æ·¡ ¿¹¸¦ º¼ °ÍÀÔ´Ï´Ù.
checking what assembler to use... /tools/i686-pc-linux-gnu/bin/as
checking what linker to use... /tools/i686-pc-linux-gnu/bin/ld

ÀÌ°ÍÀº À§¿¡ ¾ð±ÞµÈ ÀÌÀ¯¶§¹®¿¡ Áß¿äÇÕ´Ï´Ù. ±×°ÍÀº GCCÀÇ ¼³Á¤ ½ºÅ©¸³Æ®´Â »ç¿ëÇÏ´Â toolÀ» ¹ß°ßÇϱâ À§ÇØ $PATH µð·ºÅ丮¸¦ ¸¦ Ž»öÇÏÁö ¾Ê´Â°ÍÀ» º¸¿©ÁÝ´Ï´Ù. ±×·¯³ª gccÀÇ ½ÇÁ¦ ÀÛµ¿¾È °°Àº Ž»ö Æнº´Â ÇÊ¿¬ÀûÀ¸·Î »ç¿ëµÇÁö ¾Ê½À´Ï´Ù. ´ç½ÅÀº gcc -print-prog-name=ldÀÇ ±¸µ¿¿¡ ÀÇÇØ Ç¥ÁØ ¸µÄ¿ gcc¸¦ ã¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù. »ó¼¼ÇÑ Á¤º¸´Â ÄÄÆÄÀÏÇÏ´Â ´õ¹Ì ÇÁ·Î±×·¥µ¿¾ÈÀÇ -v flag¸¦ ÆнÌÇÏ´Â °Í¿¡ ÀÇÇØ gcc·ÎºÎÅÍ ¾ò¾îÁú ¼ö ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, gcc -v dummy.cÀÇ Å½»ö Æнº¿Í ±×µéÀÇ ¼ø¼­¸¦ Æ÷ÇÔÇÔÀ¸·Î½á ÇÁ¸®ÇÁ·Î¼¼¼­, ÄÄÆÄÀÏ, ¾î¼Àºê¸®ÇÑ ½ºÅ×ÀÌÁö¿¡ ´ëÇÑ »ó¼¼ÇÑ Á¤º¸¸¦ º¸¿©ÁÙ °ÍÀÔ´Ï´Ù.

¼³Ä¡µÈ ´ÙÀ½ÀÇ ÆÐÅ°Áö´Â GlibcÀÔ´Ï´Ù.

GlibcÀ» ºôµåÇÏ´Â °Í¿¡ ´ëÇÑ °¡Àå Áß¿äÇÑ °í·Á»çÇ×Àº ±× ÄÄÆÄÀÏ·¯, ¹ÙÀ̳ʸ® Åø°ú Ä¿³Î Çì´õÀÔ´Ï´Ù. ÄÄÆÄÀÏ·¯´Â GlibcÀÌ Ç×»ó $PATH µð·ºÅ丮¿¡¼­ gcc¸¦ ¹ß°ßÇϴµ¥ Ç×»ó »ç¿ë°ÍÀ̹ǷΠÀϹÝÀûÀ¸·Î ¾Æ¹«·± ¹®Á¦°¡ ¾ø½À´Ï´Ù. ¹ÙÀÌ·¯¸® Åø°ú Ä¿³Î Çì´õ´Â ÀÛ°í ´õ ±î´Ù·Î¿ï ¼ö ÀÖ½À´Ï´Ù.±×·¯¹Ç·Î ¿ì¸®´Â À§ÇèÀÌ ¾ø°í ¿Ã¹Ù¸¥ ¼±ÅÃÀ» °­È­ÇϱâÀ§ÇØ ½ºÀ§Ä¡ ¼³Á¤À» »ç¿ëÇÕ´Ï´Ù. ./configure ÈÄ¿¡ ´ç½ÅÀº ¸ðµç Áß¿äÇÑ ¼¼ºÎ»çÇ×À» À§ÇØ glibc-build µð·ºÅ丮¿¡¼­ config.make ÆÄÀÏÀÇ ³»¿äÀ» °Ë»ç ÇÒ ¼ö ÀÖ½À´Ï´Ù. ´ç½ÅÀº ¹ÙÀ̳ʸ® ÅøÀÌ »ç¿ëµÇ´Â Á¦¾î¿¡ CC="gcc -B/tools/bin/"ÀÇ »ç¿ë°ú °°Àº Àç¹ÌÀÖ´Â ¾ÆÀÌÅÛÀ» ÁÖ¸ñÇÒ °ÍÀÌ°í, ¶ÇÇÑ Å½»ö ÆнºÀ» Æ÷ÇÔÇÑ ÄÄÆÄÀÏ·¯ÀÇ Á¦¾î¿¡ -nostdinc and -isystem flagsÀÇ »ç¿ë°ú °°Àº Àç¹ÌÀÖ´Â ¾ÆÀÌÅÛÀ» ÁÖ¸ñÇÒ °ÍÀÔ´Ï´Ù. ÀÌ ¾ÆÀÌÅÛÀº Glibc ÆÐÅ°ÁöÀÇ Áß¿äÇÑ °üÁ¡¿¡ °­Á¶ÇÏ´Â °ÍÀ» µ½½À´Ï´Ù. ÀÌ°ÍÀº ±×°ÍÀÇ ºôµå ÀåÄ¡¿¡¼­ ¸Å¿ì µ¶¸³ÀûÀÌ°í ÀϹÝÀûÀ¸·Î toolcahin default¸¦ ¹ÏÁö ¾Ê½À´Ï´Ù.

Glibc ÀνºÅçÈÄ ¿ì¸®´Â ¿ì¸®ÀÇ /tools frefix¿¡¼­ Ž»öÇÏ´Â °Í°ú ¿¬°ÍÇÏ´Â °ÍÀÌ ¹ß»ýÇÏ´Â °ÍÀ» º¸ÁõÇÏ´Â Á¶Á¤À» ¸¸µì´Ï´Ù. ¿ì¸®´Â Á¶Á¤µÈ ld¸¦ ¼³Ä¡Çϴµ¥ ±×°ÍÀº ÄÄÇ»Å;ÈÀÇ Å½»ö±æÀº /tools/lib±îÁö ÇÑÁ¤µÇ°Ô ÇÕ´Ï´Ù. ±×¸®°í ¿ì¸®´Â /tools/lib¿¡ ¿ì¸®ÀÇ »õ·Î¿î µ¿ÀûÀÎ ¸µÄ¿¸¦ °¡¸®Å°±â À§ÇØ gccÀÇ ½ºÆåÆÄÀÏÀ» °íĨ´Ï´Ù. ÀÌ ¸¶Áö¸· ´Ü°è´Â ¸ðµç °úÁ¤¿¡ Áß¿äÇÕ´Ï´Ù. À§¿¡ ¸»ÇÑ´ë·Î, µ¿ÀûÀÎ ¸µÄ¿·ÎÀÇ ÄÄÇ»Åͳ»ÀÇ Æнº´Â ¸ðµç °øÀ¯µÈ ½ÇÇà°¡´ÉÇÑ ELF·Î ³»ÀåµË´Ï´Ù. ´ç½ÅÀº readelf -l <name of binary> | grep interpreterÀ» ¼öÇàÇÔÀ¸·Î½á ÀÌ°ÍÀ» Á¡°ËÇÒ ¼ö ÀÖ½À´Ï´Ù. ¼öÁ¤µÈ gccÀÇ ½ºÆå ÆÄÀÏ¿¡ ÀÇÇØ ¿ì¸®´Â ÀÌ ÀåÀÇ ³¡À» ÅëÇØ ¿©±â·ÎºÎÅÍ ÄÄÆÄµÈ ¸ðµç ÇÁ·Î±×·¥ÀÌ /tools/lib¿¡ ¿ì¸®µéÀÇ »õ·Î¿î µ¿ÀûÀÎ ¸µÄ¿¸¦ »ç¿ëÇÒ °ÍÀ» º¸ÁõÇÏ°í ÀÖ½À´Ï´Ù.

»õ·Î¿î µ¿ÀûÀÎ ¸µÄ¿¸¦ »ç¿ëÇÒ Çʿ伺Àº GCCÀÇ µÎ¹ø° Æнº¸¦ À§ÇØ ½ºÆå ÆÐÄ¡¸¦ Àû¿ëÇÏ´Â °ÍÀÌ ÀÌÀ¯ÀÔ´Ï´Ù. ±×·¸°Ô ÇÏ´Â µ¥ À־ÀÇ ½ÇÆд °á°úÀûÀ¸·Î ±×µé¾ÈÀ¸·Î ³»ÀåµÈ È£½ºÆ® ½Ã½ºÅÛ /lib µð·ºÅ丮·ÎºÎÅÍ ±×µé ½º½º·Î µ¿ÀûÀÎ ¸µÄ¿ÀÇ À̸§À» °¡Áö°í ÀÖ´Â GCC ÇÁ·Î±×·¥ÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×·±µ¥ ±×°ÍÀº È£½ºÆ®·ÎºÎÅÍ ¹°·¯°¡´Â ¿ì¸®µéÀÇ ¸ñÀûÀ» ÁÂÀý ½Ãų °ÍÀÔ´Ï´Ù.

BinutilÀÇ µÎ¹ø° Æнºµ¿¾È¿¡ ¿ì¸®´Â --with-lib-path Æнº¸¦ ÀÌ¿ëÇÒ ¼öÀÖ½À´Ï´Ù. ldÀÇ ¶óÀ̺귯¸® Ž»ö Æнº¸¦ °ü¸®Çϱâ À§ÇØ ½ºÀ§Ä¡¸¦ ±¸¼ºÇÕ´Ï´Ù. Àü¹æÀ¸·Î ÀÌ Æ÷ÀÎÆ®·ÎºÎÅÍ ÄÚ¾î toolchainÀº µ¶¸³½ÄÀÌ°í È£½ºÆ®ÀÔ´Ï´Ù. 5ÀåÀÇ ³ª¸ÓÁö´Â /toos¿¡ »õ·Î¿î Glibc¿¡ ¹Ý´ëÇÏ´Â ¸ðµç ºôµð¸¦ ÆÐÅ°ÁöÇÕ´Ï´Ù. ¸ðµÎ Àß ÀÖ½À´Ï´Ù. 6Àå¿¡¼­ chrootȯ°æ¿¡ µé¾î°¡ÀÚ¸¶ÀÚ, ¿ì¸®°¡ ¾ð±ÞÇÑ ±×°ÍÀÇ µ¶¸³½Ä ¶§¹®¿¡ ¿ì¸®°¡ ù¹ø° Áß¿äÇÑ ÆÑÅ°Áö¿¡¼­ ÀνºÅçÇÑ°ÍÀº GlibcÀÌ´Ù.

4.3. Á¤Àû¿¬°á¿¡ ´ëÇÑ ÁÖÀÇ


¸ðµç ÇÁ·Î±×·¥Àº ±×µéÀÇ Æ¯Á¤ÇÑ Å×½ºÅ©¿·¿¡¼­, ¿ÀÈ÷·Á º¸ÅëÀûÀÌ°í ¶§¶§·Î ÇÏÂúÀº ¸¹Àº µ¿ÀÛÀ» ¼öÇàÇÕ´Ï´Ù. ÇÒ´çÇÏ´Â ¸Þ¸ð¸®, µð·ºÅ丮¿Í ÆÄÀÏ ¾²±â, ÆÄÀÏ Àбâ string Á¶ÀÛ, ÆÐÅÍ ¸ÅĪ, ¼öÇаú ´Ù¸¥ ¸¹Àº Á÷¹«¸¦ Æ÷ÇÕ´Ï´Ù. WheelÀ» Àç¹ß¸íÇϱâ À§ÇØ °¢°¢ÀÇ ÇÁ·Î±×·¥À» ¾î¿¼ö ¾øÀÌ ÇÏ°Ô ÇÏ´Â ´ë½Å¿¡, GNU ½Ã½ºÅÛÀº ÀÌ¹Ì ¸¸µé¾îÁø ¶óÀ̺귯¸®¿¡ ÀÖ´Â ±âº»ÀûÀÎ ÀÌ ±â´ÉÀ» Á¦°øÇÕ´Ï´Ù.

±× µéÀ» »ç¿ëÇÏ´Â ÇÁ·Î±×·¥¿¡ ´ëÇÑ ¶óÀ̺귯¸®·ÎºÎÅÍÀÇ ±â´ÉÀ» ¿¬°áÇÏ´Â µÎ ÁÖ¿äÇÑ ¹æ¹ý(Á¤Àû, µ¿Àû :statically ¶Ç´Â dynamically)ÀÌ ÀÖ½À´Ï´Ù. ÇÁ·Î±×·¥ÀÌ Á¤ÀûÀ¸·Î ¸µÅ©µÇ¾úÀ»¶§, °á°úÀûÀ¸·Î ´õ ºÎÇÇ°¡ Å« ÇÁ·Î±×·¥ÀÌ µÇ¸é¼­ ½ÇÇà°¡´ÉÇÑ ±× »ç¿ëµÈ functionÀÇ ÄÚµå´Â Æ÷ÇԵ˴ϴÙ. ÇÁ·Î±×·¥ÀÌ µ¿ÀûÀ¸·Î ¸µÅ©µÇ¾úÀ»¶§, Æ÷ÇԵǴ °ÍÀº µ¿ÀûÀÎ ¸µÄ¿, ¶óÀ̺귯¸®ÀÇ À̸§, ±×¸®°í ±× functionÀÇ À̸§¿¡ ´ëÇÑ ÂüÁ¶ÀÔ´Ï´Ù. ±×·±µ¥ ±×°ÍÀº ´õ ÀÛÀº ¸¹Àº°Í¿¡¼­ÀÇ ½ÇÇà°¡´ÉÇÑ °á°úÀÔ´Ï´Ù. ¼¼¹ø° ¹æ¹ýÀº µ¿ÀûÀÎ ¸µÄ¿ÀÇ ÇÁ·Î±×·¡¹Ö ÀÎÅÍÆäÀ̽º¸¦ »ç¿ëÇÏ´Â °ÍÀÔ´Ï´Ù. ´õ ¸¹Àº Á¤º¸´Â dlopen manpage¸¦ º¸¼¼¿ä.

Dµ¿ÀûÀÎ ¿¬°áÀº Linux¿¡ defaultÇÏ°í Á¤ÀûÀÎ ¿¬°á¿¡ ´ëÇÑ Áß¿äÇÑ ¼¼°¡Áö Áß¿äÇÑ ÀåÁ¡À» °¡Áö°í ÀÖ½À´Ï´Ù.

ù ¹ø°, ±× °°Àº ÄÚµåÀÇ ¸¹Àº º¹»ç¸¦ ÇÁ·Î±×·¥ÀÇ ¸ðµç °¡Áö(bunch)¾ÈÀ¸·Î Æ÷ÇÔµÇ°Ô ÇÏ´Â ´ë½Å¿¡ Çϵåµð½ºÅ©¿¡¼­ ½ÇÇà°¡´ÉÇÑ ¶óÀ̺귯¸® ÄÚµåÀÇ ´ÜÁö ÇϳªÀÇ º¹»ç¸¦ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ±×·¡¼­ µð½ºÅ©°ø°£ Àý¾àµË´Ï´Ù.µÎ¹ø°, ¿©·¯°³ÀÇ ÇÁ·Î±×·¥ÀÌ °°Àº ¶óÀ̺귯½º Æã¼ÇÀ» µ¿½Ã¿¡ »ç¿ëÇÒ ¶§, Æã¼Ç ÄÚµåÀÇ ´ÜÁö ÇÑ º¹»ç´Â core¿¡ ¿ä±¸µË´Ï´Ù. ±×·¡¼­ ¸Þ¸ð¸®°ø°£ÀÌ Àý¾àµË´Ï´Ù.¼¼¹ø°, ¶óÀ̺귯¸® Æã¼ÇÀÌ ¹ö±×¸¦ °íÁ¤µÇ°Ô Çϰųª ±×·¸Áö ¾ÊÀ¸¸é °³¼±µÉ ¶§, ±× °³¼±µÈ Æã¼ÇÀ» ÀÌ¿ëÇÏ´Â ¸ðµç ÇÁ·Î±×·¥À» ´Ù½Ã ÄÄÆÄÀÏÇØ¾ß ÇÏ´Â ´ë½Å¿¡ ´ÜÁö ÀÌ ÇÑ ¶óÀ̺귯¸®¸¦ ´Ù½Ã ÄÄÆÄÀÏ ÇÊ¿ä°¡ ÀÖ½À´Ï´Ù.

µ¿ÀûÀÎ ¿¬°áÀÌ ¿©·¯ ÀåÁ¡À» °¡Áö°í ÀÖ´Ù¸é ¿Ö? ¿ì¸®´Â ÀÌ Àå¿¡¼­ ù¹ø° µÎ ÆÑÅ°Áö¸¦ Á¤ÀûÀ¸·Î ¿¬°áÇÒ±î¿ä? ±× ÀÌÀ¯´Â 3ºÎºÐÀÔ´Ï´Ù.- ¿ª»çÀûÀÌ°í, ±³À°ÀûÀÌ°í, ±â¼úÀûÀÔ´Ï´Ù(historical, educational, and technical). ¿ª»çÀûÀ¸·Î´Â, ´õ ÀÏÂïÀÌ LFSÀÇ ¹öÁ¯ ÀÌ ÀåÀÇ ¸ðµç ÇÁ·Î±×·¥¿¡¼­ Á¤ÀûÀ¸·Î ¿¬°áµÇ¾ú±â ¶§¹®ÀÔ´Ï´Ù. ±³À°ÀûÀ¸·Î´Â, Â÷ÀÌÁ¡À» ¾Æ´Â°ÍÀÌ À¯¿ëÇϱ⠶§¹®ÀÔ´Ù. ±â¼úÀûÀ¸·Î´Â, ¿ì¸®°¡ ±×·¸°Ô Çϴµ¥ À־ È£½ºÆ®·ÎºÎÅÍ µ¶¸³ÀûÀÎ ºÎºÐÀ» ¾ò±â ¶§¹®ÀÔ´Ï´Ù. Àǹ̴ ÇÁ·Î±×·¥ÀÌ È£½ºÆ® ½Ã½ºÅÛÀ¸·ÎºÎÅÍ µ¶¸³ÀûÀ¸·Î »ç¿ëµÇ´Â °ÍÀÔ´Ï´Ù. ±×·¯³ª óÀ½ µÎ ÆÐÅ°Áö°¡ µ¿ÀûÀ¸·Î ºôµåµÉ ¶§, ÀüüÀÇ ¼º°øÀûÀÎ LFS ºôµå´Â ¿©ÀüÈ÷ ¼ºÃëÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» À¯ÀÇÇÒ °¡Ä¡°¡ ÀÖ½À´Ï´Ù.


4.4. ÀϹÝÀûÀÎ ÄÄÆÄÀÏ ¼³¸íµé

chaoxifer - 7.2·Î ¾÷µ¥ÀÌÆ®Çϸ鼭 »õ·Î Ãß°¡ÇÑ ºÎºÐÀÔ´Ï´Ù.

ÆÐÅ°ÁöµéÀ» ºôµåÇϱâ Àü¿¡ ±âº»ÀûÀ¸·Î ¾Ë¾ÆµÎ¾î¾ßÇÒ °ÍµéÀÌ ¸î°¡Áö ÀÖ½À´Ï´Ù.

* ¸î¸îÀÇ ÆÐÅ°ÁöµéÀº ºôµå Áß ¹®Á¦µéÀ» ÇÇÇϱâ À§ÇØ ÄÄÆÄÀÏÀü¿¡ ÆÐÄ¡°¡ Àû¿ëµÇ¾î¾ßÇÕ´Ï´Ù. ¾î¶² ÆÐÄ¡´Â À̹ø Àå¿¡¼­³ª ´ÙÀ½ Àå¿¡¼­ µÎ¹ø ´Ù ÆÐÄ¡µÇ¾î¾ßÇÏ´Â °æ¿ìµµ ÀÖÁö¸¸ ¶Ç ´Ù¸¥ °æ¿ì¿¡´Â Çѹø¸¸ ÆÐÄ¡µÇ¾îµµ µÇ´Â °ÍÀÌ ÀÖ½À´Ï´Ù. À̶§¹®¿¡ ¿©·¯ºÐµéÀº ÆÐÅ°Áö¸¦ ¼³Ä¡Çϸ鼭 ÆÐÄ¡°¡ ÀÌ·ç¾îÁöÁö ¾Ê¾Æ ¼³¸í¼­¿¡¼­ ½Ç¼ö·Î ºüÁø°ÍÀÌ ¾Æ´Ò±î °ÆÁ¤ÇÒ ÇÊ¿ä°¡ ¾ø½À´Ï´Ù. ÆÐÄ¡¸¦ Àû¿ëÇÏ°í¼­ ºôµå½Ã¿¡ ³ªÅ¸³ª´Â offsetÀ̳ª fuzz¿¡ ´ëÇÑ °æ°í¸Þ¼¼ÁöµéÀº ÀÌ¹Ì ÆÐÄ¡¾È¿¡¼­ ÃæºÐÈ÷ °è»êµÈ °á°úÀÔ´Ï´Ù. À̺κп¡ ´ëÇؼ­´Â °ÆÁ¤ÇÏ½Ç ÇÊ¿ä´Â ¾ø½À´Ï´Ù.

* ´ëºÎºÐÀÇ ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏÇÏ´Â µ¿¾È È­¸é¿¡ ¸î¸î °æ°í¸Þ¼¼ÁöµéÀÌ ³ªÅ¸³¯ °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀº ¹«½ÃÇصµ µÇ´Â °æ°íÀÔ´Ï´Ù. ÀÌ·¯ÇÑ °æ°í¸Þ¼¼ÁöµéÀº ȤÀº C, C++ ±¸¹®¿¡¼­ »ç¿ëµÇ´Â deprecated(¿¹Àü¿¡´Â »ç¿ëµÇ¾úÁö¸¸ ÀÌÁ¦´Â »ç¿ëµÇÁö ¾Ê´Â °Íµé)¿¡ ´ëÇÑ °ÍµéÀÔ´Ï´Ù. C Ç¥ÁØÀº ÀÚÁÖ ¹Ù²î±â ¶§¹®¿¡ ÆÐÅ°ÁöµéÁß ¾î¶² °ÍµéÀº ¿À·¡µÈ Ç¥ÁØÀ» »ç¿ëÇÏ´Â °Íµéµµ ÀÖ½À´Ï´Ù.

* ¸¶Áö¸·À¸·Î LFS ȯ°æ º¯¼ö°¡ Á¦´ë·Î ¼³Á¤µÇ¾îÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ:
echo $LFS

2°¡Áö Áß¿äÇÑ »ç½Çµé
  1. ÀÌ Ã¥¿¡¼­ ÀÌ·ç¾îÁö´Â ºôµå´Â bash¼ÐÀ» »ç¿ëÇÑ´Ù°í °¡Á¤ÇÕ´Ï´Ù.

  2. ºôµå °úÁ¤¿¡ ´ëÇØ ´Ù½Ã °­Á¶ÇÕ´Ï´Ù:
  1. ¸ðµç ¼Ò½º¿Í ÆÐÄ¡µéÀÌ µé¾îÀÖ´Â µð·ºÅ丮´Â chrootȯ°æ¿¡¼­ Á¢±Ù°¡´ÉÇÑ /mnt/lfs/sources°°Àº µð·ºÅ丮À̾î¾ß ÇÕ´Ï´Ù. Àý´ë·Î /mnt/lfs/tools/ µð·ºÅ丮 ¾È¿¡ ¼Ò½º¸¦ ³õÁö ¸¶½Ê½Ã¿À.

  2. ¼Ò½º µð·ºÅ丮·Î ÇöÀç µð·ºÅ丮¸¦ ¹Ù²Ù½Ê½Ã¿À.

  3. °¢ ÆÐÅ°Áöµé¿¡ ´ëÇÏ¿©
    3-1. tar ÇÁ·Î±×·¥À» ÀÌ¿ëÇؼ­ ºôµåÇÒ ÆÐÅ°Áö¸¦ Ǫ½Ê½Ã¿À. ÀÌ Àå¿¡¼­´Â ¿©·¯ºÐÀÌ lfs ·Î ÆÐÅ°Áö¸¦ Ç®¾ú´ÂÁö ´Ù½ÃÇѹø È®ÀÎÇϽʽÿÀ.
    3-2. ¿©·¯ºÐÀÌ ÆÐÅ°Áö¸¦ Ç®¾î¼­ »ý¼ºµÈ µð·ºÅ丮·Î À̵¿ÇϽʽÿÀ.

    3-3. Ã¥ÀÇ ¼³¸í¿¡ µû¶ó ÆÐÅ°Áö¸¦ ºôµåÇϽʽÿÀ.

    3-4. ´Ù½Ã ¼Ò½º µð·ºÅ丮(cd ../)·Î À̵¿ÇÕ´Ï´Ù.

    3-5. ¹æ±Ý ÀÛ¾÷Çß´ø µð·ºÅ丮¸¦ »èÁ¦ÇÏ°í <package>-build¿Í °°Àº µð·ºÅ丮µéÀº Ã¥ÀÇ ¼³¸í¿¡ µû¶ó ´õÀÌ»ó °ü·Ã ÆÐÅ°Áö¸¦ ºôµåÇÒ ÇÊ¿ä°¡ ¾øÀ¸¸é ±× ¶§ »èÁ¦ÇϽñ⠹ٶø´Ï´Ù.

4.5. Binutils-2.22 - Pass 1 ¼³Ä¡


Approximate build time: 1.0 SBU Required disk space: 194 MB

Bintutils(2.14) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/binutils/

Binutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

4.5.1. BinutilsÀÇ ÀνºÅç


binutils´Â °¡Àå ¸ÕÀú ÄÄÆÄÀÏ ÇØ¾ß ÇÕ´Ï´Ù.

±âº» ÃÖÀûÈ­ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ ´ç½ÅÀÌ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ­ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä.

ÄÄÆÄÀÏ ÃÖÀûÈ­ »ç¿ëÀ¸·Î ºôµå ½ÇÆа¡ ÀϾÁö ¾Êµµ·Ï ÆÐÄ¡¸¦ Àû¿ëÇÕ´Ï´Ù.
patch -Np1 -i ../binutils-2.22-build_fix-1.patch

binutils ¹®¼­¿¡¼­´Â binutils¸¦ ¼³Ä¡ÇÒ¶§ /tools ¹Û¿¡¼­ ¼³Ä¡Çϴ°ÍÀ» ±ÇÀåÇÕ´Ï´Ù:
mkdir -v ../binutils-build
cd ../binutils-build
Note: SBU¸¦ Á¦´ë·Î ÃøÁ¤Çϱâ À§Çؼ­´Â ÇÑ ÆÑÅ°Áö¸¦ ¼³Ä¡ÇÒ ¶§ ÇÊ¿äÇÑ ÃÑ ½Ã°£À» °è»êÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ Çϸé SBU¸¦ Á¦´ë·Î ±¸ÇÒ ¼ö ÀÖ½À´Ï´Ù. time { ./configure ... && ... && ... && make install; }.

Binutils ÄÄÆÄÀÏ ÁغñÇϱâ:
../binutils-2.22/configure     \
    --prefix=/tools            \
    --with-sysroot=$LFS        \
    --with-lib-path=/tools/lib \
    --target=$LFS_TGT          \
    --disable-nls              \
    --disable-werror

The meaning of the configure options:
  • --prefix=/tools: binutilsÇÁ·Î±×·¥µéÀ» /tools·Î ¼³Ä¡Ç϶ó´Â ¿É¼Ç.
  • --disable-nls: ´Ù±¹¾î Áö¿ø¿É¼ÇÀ» ²ö´Ù. ¿ì¸®´Â ¾ÕÀ¸·Î ÇÁ·Î±×·¥À» Á¤ÀûÀ¸·Î ÄÄÆÄÀÏÇؼ­ »ç¿ëÇÒ °Çµ¥ ÀÌ¿Í°°Àº ¿É¼ÇÀ» ÄÑµÎ¸é ³ªÁß¿¡ ¹®Á¦°¡ »ý±æ¼ö À־ »ç¿ëÇÏÁö ¾Ê´Â´Ù.
  • --with-sysroot=$LFS: ÀÌ°ÍÀº ºôµå ½Ã½ºÅÛÀÌ $LFS(/mnt/lfs)¾È¿¡¼­ ÇÊ¿äÇÑ Å¸°Ù ½Ã½ºÅÛ ¶óÀ̺귯¸®¸¦ ¤Ô¤º¤¿¤ºÀ¸¶ó°í ¼³Á¤ÇÏ´Â ¿É¼ÇÀÔ´Ï´Ù.
  • --with-lib-path=/tools/lib: ÀÌ°ÍÀº ¸µÄ¿°¡ ¼³Á¤µÉ ¶§ »ç¿ëµÇ´Â ¶óÀ̺귯¸® °æ·ÎÀÔ´Ï´Ù.
  • --target=$LFS_TGT: ÄÄÇ»ÅÍ¿¡ ´ëÇÑ µð½ºÅ©¸³¼ÇÀÌ ÀúÀåµÈ $LFS_TGT ȯ°æº¯¼ö´Â config.guess½ºÅ©¸³Æ®¿¡¼­ ¸®ÅϵǴ °ª°ú ¾à°£ ´Ù¸¨´Ï´Ù. À̶§¹®¿¡ configure ½ºÅ©¸³Æ®·Î Å©·Î½º ¸µÄ¿¸¦ ¸¸µé±â À§ÇØ $LFS_TGT°ªÀ» BinutilsÀÇ ºôµå ½Ã½ºÅÛ¿¡ Àû¿ëÇ϶ó°í ¸»ÇØÁÖ´Â ¿É¼ÇÀÔ´Ï´Ù.
  • --disable-werror: ÀÌ°ÍÀº È£½ºÆ® ÄÄÆÄÀÏ·¯ºÎÅÍ ³ª¿À´Â °æ°íµé¿¡ ÀÇÇØ ºôµå°¡ ¸ØÃß´Â °ÍÀ» ¸·¾ÆÁÖ´Â ¿É¼ÇÀÔ´Ï´Ù.

À̾ ÄÄÆÄÀÏÀ» °è¼Ó ÇսôÙ.:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀº ³¡³µ½À´Ï´Ù. test suite¸¦ ¾îµð¿¡¼­ ½ÇÇàÇÒ °ÍÀÎÁö°¡ Áß¿äÇÕ´Ï´Ù. ¾ÆÁ÷ ¾ð±ÞÀÌ Á¶±Ý À̸¥ °ÍÀ̱⿡, ÀÌ Àå¿¡¼­´Â test suites ¸¦ ½ÇÇàÇϴ°ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù.(for the temporary) GCC test suite¸¦ ½ÇÇàÇϱ⸦ ¿øÇÒÁö¶óµµ ¾ÆÁ÷ ¾ø±â¶§¹®¿¡ ÀÌ Àå¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. °Ô´Ù°¡ À̹øÀå¿¡¼­ ¼³Ä¡ÇÑ ÇÁ·Î±×·¥Àº ´ÙÀ½ ¼³Ä¡°úÁ¤¿¡¼­ µ¤¾î¾²±â µË´Ï´Ù.

¸¸¾à x86_64¿¡¼­ ºôµåÇß´Ù¸é ÅøüÀÎÀ» Á¤»óÀûÀ¸·Î Çϱ⠿öÇØ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾îÁÝ´Ï´Ù
case $(uname -m) in
  x86_64) mkdir -v /tools/lib && ln -sv lib /tools/lib64 ;;
esac

ÆÐÅ°Áö ÀνºÅçÇϱâ:
make install

Glibc¸¦ ¼³Ä¡ÇÑ ÈÄ¿¡ º¸°Ô µÉ "locking in"ºÎºÐÀ» À§ÇÑ ¼±ÇàÀÛ¾÷:
make -C ld clean
make -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib

make ÆĶó¹ÌÅÍÀÇ ÀǹÌ:
  • -C ld clean: ld µð·ºÅ丮¾ÈÀÇ ¸ðµç ÄÄÆÄÀÏµÈ ½ÇÇàÈ­ÀϵéÀ» Áö¿î´Ù.
  • -C ld LDFLAGS="-all-static" LIB_PATH=/tools/lib: À̿ɼÇÀº ld ¼­ºê µð·ºÅ丮 ¾ÈÀÇ ¸ðµç ÇÁ·Î±×·¥µéÀ» ¸®ºôµåÇÑ´Ù. LIB_PATH º¯¼ö¿¡ "/tools/lib"¸¦ ÁöÁ¤ÇÏ¸é ±âº» ¼ÂÆõǾî ÀÖ´Â µð·ºÅ丮¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¶óÀ̺귯¸® Æнº·Î /tools/lib¸¦ ÂüÁ¶ÇÏ°Ô µÈ´Ù. ÀÌ º¯¼ö´Â ¸µÄ¿ÀÇ °æ·Î¸¦ ÁöÁ¤ÇÏ´Â ¿ªÇÒÀ» ÇÑ´Ù.
ÁÖÀÇ

Binutils ¿Í ¼Ò½º µð·ºÅ丮¸¦ Áö¿ìÁö ¸¶¼¼¿ä. ÀÌ ÀåÀÇ µÞÂÊ¿¡¼­ ´Ù½Ã »ç¿ëÇÏ°Ô µË´Ï´Ù.

ÀÚ¼¼ÇÑ ³»¿ëÀº the Section called Contents of Binutils in Chapter 6À» ÂüÁ¶Çϼ¼¿ä.

4.6. GCC-4.7.4 - Pass 1 ¼³Ä¡


Approximate build time: 5.5 SBU Required disk space: 1.G GB

GCC (4.7.1) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/pub/gnu/gcc/

GCC¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Findutils, Gawk, Gettext, Glibc, Grep, Make, Perl, Sed, Texinfo.

¼³¸í: GCC ÆÐÅ°Áö´Â C¿Í C++ ÄÄÆÄÀÏ·¯µéÀ» Æ÷ÇÔÇÑ GNU ÄÄÆÄÀÏ·¯ Ä÷º¼ÇÀ» Æ÷ÇÔÇÕ´Ï´Ù. ''' ±âº» ÃÖÀûÈ­ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ ´ç½ÅÀÌ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ­ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä. '''

4.6.1. Cross GCC ¼³Ä¡


GCC´Â GMP, MPFR, MPC ÆÐÅ°ÁöµéÀ» ÇÊ¿ä·Î ÇÕ´Ï´Ù. ¸¸¾à ¿©·¯ºÐµéÀÇ È£½ºÆ® ½Ã½ºÅÛ¿¡ ¾ð±ÞÇÑ °ÍµéÀÌ ÆÐÅ°Áö ÇüÅ·Πµû·Î ÀÖÁö ¾Ê´Ù¸é GCCÆÐÅ°Áö ¾È¿¡ ÀüºÎ Æ÷ÇԵǾî ÀÖÀ» °ÍÀÔ´Ï´Ù.

¸ÕÀú GCC ¼Ò½º µð·ºÅ丮 ¾È¿¡ °¢°¢ÀÇ ÆÐÅ°ÁöµéÀ» Ç®°í GCC ºôµå°úÁ¤¿¡¼­ À̵é ÆÐÅ°ÁöµéÀÌ ÀÚµ¿ÀûÀ¸·Î »ç¿ëµÇµµ·Ï À̸§À» ¹Ù²ãÁÝ´Ï´Ù.
tar -Jxf ../mpfr-3.1.1.tar.xz
mv -v mpfr-3.1.1 mpfr
tar -Jxf ../gmp-5.0.5.tar.xz
mv -v gmp-5.0.5 gmp
tar -zxf ../mpc-1.0.tar.gz
mv -v mpc-1.0 mpc

´ÙÀ½ÀÇ ¸í·É¹®Àº GCCÀÇ default dynamic linker¸¦ /tools¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â ÇÁ·Î±×·¥À» »ç¿ëÇϵµ·Ï ¹Ù²Ü°ÍÀÔ´Ï´Ù. ¶ÇÇÑ GCCÀÇ include °Ë»ö °æ·Î¶ÇÇÑ »èÁ¦ÇÕ´Ï´Ù.(/usr/include)
for file in \
 $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
do
  cp -uv $file{,.orig}
  sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
      -e 's@/usr@/tools@g' $file.orig > $file
  echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
  touch $file.orig
done

óÀ½ º¸¸é ¹«½¼¸»ÀÎÁö ÀÌÇØÇϱâ Èûµé °Ì´Ï´Ù. ÇϳªÇϳª »ìÆ캸µµ·Ï ÇսôÙ. ¸ÕÀú ¿ì¸®´Â gcc/config µð·ºÅ丮¾È¿¡¼­ linux.h, linux64.h, sysv4.h¶ó´Â À̸§À» °¡Áö´Â ÆÄÀÏÀ» ã¾Æ³À´Ï´Ù. ÆÄÀÏÀÌ °Ë»öµÇ¸é ÇØ´ç ÆÄÀÏÀ» .orig¸¦ ÆÄÀÏ¸í µÚ¿¡ µ¡ºÙ¿©¼­ º¹»çÇÕ´Ï´Ù. ±× µÚ¿¡ sed ¸í·ÉÀ¸·Î »ç¿ëµÈ Á¤±ÔÇ¥Çö½ÄÀÌ "/lib/ld", "/lib64/ld", "lib32/ld"¿¡ "/tools"¸¦ µ¡ºÙÀÌ°í µÎ¹ø° Ç¥Çö¿¡¼­´Â "/usr"°¡ "/tools"·Î ´ëüµË´Ï´Ù. ´ÙÀ½¹®Àå¿î ±âÁ¸ startfileÀÇ °æ·Î¸¦ ÆÄÀÏÀÇ ³¡ºÎºÐÀ¸·Î ¼³Á¤ÇÏ´Â °ÍÀÔ´Ï´Ù. STANDARD_STARTFILE_PREFIX_1¿¡¼­ »õ·Î Á¤ÀÇÇÑ ºÎºÐÀÇ "/tools/lib/" À̺κÐÀ» ÀÚ¼¼È÷ º¸½Ê½Ã¿À. µÞºÎºÐ¿¡ "/"°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. ¸¶Áö¸·À¸·Î touch¸¦ ÀÌ¿ëÇØ ¿øº» ÆÄÀÏÀÇ ºñÁ¤»óÀûÀÎ º¯°æÀ» ¹Ì¸® ¸·À» ¼ö ÀÖ½À´Ï´Ù. ÀÌ´Â ÆÄÀÏÀÇ º¯°æ³¯Â¥¸¦ ¼³Á¤Çؼ­ cp -u¸¦ »ç¿ëÇÏ¿´À» ¶§ ¿øº»ÆÄÀÏÀÇ À߸øµÈ º¯°æÀ» ¸·À» ¼ö ÀÖ½À´Ï´Ù. (cp -u ´Â º¹»çÇÒ ÆÄÀÏÀÌ ÀÖÀ» ¶§ ÀÌ ÆÄÀÏÀÇ º¯°æ ³¯Â¥°¡ °°°Å³ª ´õ ÃÖ±ÙÀÇ °ÍÀÌ¸é º¹»çÇÏÁö ¾Ê½À´Ï´Ù.)

GCC´Â ½ºÅú¸È£¸¦ Á¦´ë·Î °¨ÁöÇÏÁö ¸øÇϱ⠶§¹®¿¡ Glibc-2.16.0À» ºôµåÇÒ ¶§ ¹®Á¦°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ´ÙÀ½ÀÇ ¸í·ÉÀ¸·Î ÇØ´ç ¹®Á¦¸¦ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù:
sed -i '/k prot/agcc_cv_libc_provides_ssp=yes' gcc/configure

GCC ¹®¼­¿¡¼­´Â GCC¸¦ ¼³Ä¡ÇÒ¶§ /tools ¹Û¿¡¼­ ¼³Ä¡Çϴ°ÍÀ» ±ÇÀåÇÏ°í ÀÖ½À´Ï´Ù.
mkdir -p $LFS/build/gcc-build
cd $LFS/build/gcc-build

GCCÄÄÆÄÀÏÀ»À» ¿öÇØ configure:
../gcc-4.7.1/configure         \
    --target=$LFS_TGT          \
    --prefix=/tools            \
    --with-sysroot=$LFS        \
    --with-newlib              \
    --without-headers          \
    --with-local-prefix=/tools \
    --with-native-system-header-dir=/tools/include \
    --disable-nls              \
    --disable-shared           \
    --disable-multilib         \
    --disable-decimal-float    \
    --disable-threads          \
    --disable-libmudflap       \
    --disable-libssp           \
    --disable-libgomp          \
    --disable-libquadmath      \
    --enable-languages=c       \
    --with-mpfr-include=$(pwd)/../gcc-4.7.1/mpfr/src \
    --with-mpfr-lib=$(pwd)/mpfr/src/.libs

configure ¿É¼ÇÀÇ ÀǹÌ
  • --with-newlib: ¾ÆÁ÷ C library°¡ »ç¿ë°¡´ÉÇÏÁö ¾ÊÀº »óÅ¿¡¼­ libgcc°¡ ºôµåµÇ¸é ¹®Á¦°¡ ½ÇÆÐÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ¶§¹®¿¡ inhibit_libc »ó¼ö°¡ Á¤ÀǵǾîÀÖ´Ù´Â °ÍÀ» ¹Ì¸® ¾Ë·ÁÁ༭ libc¸¦ ÇÊ¿ä·ÎÇÏ´Â Äڵ尡 ÄÄÆÄÀϵÇÁö ¾Êµµ·Ï ÇÕ´Ï´Ù.
  • --without-headers: cross-compiler¸¦ ¿Ïº®ÇÏ°Ô ¸¸µå·Á¸é GCC´Â target½Ã½ºÅÛ°ú ȣȯÀ̵Ǵ ǥÁØ Çì´õÆÄÀϵéÀÌ ÇÊ¿äÇÕ´Ï´Ù. ÇÏÁö¸¸ ¿ì¸®ÀÇ ¸ñÇ¥¿¡´Â ÀÌ·¯ÇÑ Çì´õÆÄÀϵéÀº ÇÊ¿äÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ Ç÷¡±×´Â GCC°¡ ÇØ´ç Çì´õÆÄÀϵéÀ» ãÁö ¾Êµµ·Ï ÇØÁÝ´Ï´Ù.
  • --with-local-prefix=/tools: gcc include path°¡ /usr/local/include·Î µÇ¾î ÀÖ´Â °ÍÀ» /tools/·Î ¹Ù²Ù¾î ÁÖ±â À§¼­ÀÔ´Ï´Ù. ÀÌ ¿É¼ÇÀÌ ²À ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ ¿ì¸®´Â È£½ºÆ® ½Ã½ºÅÛ¿¡ ¿µÇâÀ» ÃÖ¼ÒÈ­ Çϱ⸦ ¿øÇϱ⠶§¹®¿¡ ÀÌ ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù.
  • --with-native-system-header-dir=/tools/include: GCC´Â ±âº»ÀûÀ¸·Î /usr/include¿¡¼­ ½Ã½ºÅÛ Çì´õÆÄÀϵéÀ» ã½À´Ï´Ù. sysroot ½ºÀ§Ä¡( GCC ¿É¼ÇÀ¸·Î, Ç¥ÁØ C ¶óÀ̺귯¸® Çì´õ ÆÄÀÏ°ú ¸®À̺귯¸® À§Ä¡¸¦ º¯°æÇÒ ¶§ »ç¿ëÇÕ´Ï´Ù. º¸Åë Å©·Î½º ÄÄÆÄÀÏÀ» ÇÒ ¶§ »ç¿ëµË´Ï´Ù. ¿¹:gcc --sysroot=/example Çϸé /example/usr/include¿¡¼­ Çì´õÆÄÀÏÀ» ã°Ô µË´Ï´Ù )¿Í ÇÔ²² ÀÌ¿ëÇÏ¸é º¸Åë $LFS/usr/include·Î ¹Ù²ð °ÍÀÔ´Ï´Ù.
  • --disable-shared: GCC°¡ Á¤Àû ³»ºÎ ¶óÀ̺귯¸®¸¦ ¸µÅ©Çϵµ·Ï ¸¸µì´Ï´Ù. ÀÌ·¸°Ô ÇÏ¿© È£½ºÆ® ½Ã½ºÅÛ¿¡¼­ ¹ß»ýµÉ ¼ö ÀÖ´Â ¹®Á¦¸¦ ÇÇÇÒ ¼ö ÀÖ½À´Ï´Ù.
  • --disable-decimal-float, --disable-threads, --disable-libmudflap, --disable-libssp, --disable-libgomp, --disable-libquadmath: Å©·Î½º ÄÄÆÄÀÏ·¯¸¦ ºôµåÇÒ¶§ À§ÀÇ decimal-float, threads, libmudflap, libsspµéÀº ºôµå½Ã¿¡ ½ÇÆÐÇÒ »Ó´õ·¯ Àӽà libc¸¦ ¸¸µå´Â µ¥¿¡ ÇÊ¿ä°¡ ¾ø±â ¶§¹®¿¡ »ç¿ëÇÏÁö ¾Êµµ·Ï ÇÕ´Ï´Ù.
  • --disable-multilib: x86_64¿¡¼­ LFS´Â ¾ÆÁ÷ multilib ¼³Á¤À» Áö¿øÇÏÁö ¾Ê½À´Ï´Ù. ÀÌ ½ºÀ§Ä¡´Â x86 ½Ã½ºÅÛ¿¡¼­´Â ¾Æ¹«·± ¿µÇâÀÌ ¾ø½À´Ï´Ù.
  • --enable-languages=c: ÀÌ ¿É¼ÇÀº ¼³Ä¡½Ã¿¡ C ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀº GCC Ÿ¸£º¼À» ´Ù¿î·Îµå ¹Þ¾Æ¼­ ¼³Ä¡ÇÒ¶§¸¸ »ç¿ëÇÕ´Ï´Ù.

ÆÐÅ°Áö ÄÄÆÄÀÏÇϱâ.
make 

makeÆĶó¹ÌÅÍÀÇ ÀǹÌ

ÄÄÆÄÀÏÀº ³¡³µ½À´Ï´Ù. test suite¸¦ ¾îµð¿¡¼­ ½ÇÇàÇÒ °ÍÀÎÁö°¡ Áß¿äÇÕ´Ï´Ù. ¾ÆÁ÷Àº ±×·±°É ¸»Çϱ⿣ Á¶±Ý À̸£±â ¶§¹®¿¡, ÀÌ Àå¿¡¼­´Â test suites ¸¦ ½ÇÇàÇϴ°ÍÀº ÃßõÇÏÁö ¾Ê½À´Ï´Ù. GCC test suite¸¦ ½ÇÇàÇϱ⸦ ¿øÇÒÁö¶óµµ ¾ÆÁ÷ ¾ø±â ¶§¹®¿¡ ÀÌ Àå¿¡¼­ »ç¿ëÇÒ ¼ö ¾ø½À´Ï´Ù. °Ô´Ù°¡ À̹øÀå¿¡¼­ ¼³Ä¡ÇÑ ÇÁ·Î±×·¥Àº ´ÙÀ½ ¼³Ä¡ °úÁ¤¿¡¼­ µ¤¾î ¾²°Ô µË´Ï´Ù.

ÆÐÅ°Áö ¼³Ä¡Çϱâ:
make install
Áö±Ý±îÁöÀÇ °úÁ¤ÀÌ ³¡³ª¸é /tools/bin/ccÀÇ symlink¸¦ ¸¸µé°ÍÀÔ´Ï´Ù. ¸¹Àº ÇÁ·Î±×·¥µé°ú ½ºÅ©¸³Æ®µéÀº gcc ´ë½Å¿¡ cc¸¦ ÀÌ¿ëÇÕ´Ï´Ù. ÀÌ°ÍÀº ÇÁ·Î±×·¥ÀÇ ¼Ó¼ºÀ» À¯ÁöÇÏ°Ô ÇÏ°í, ¸ðµç Á¾·ùÀÇ À¯´Ð½º ½Ã½ºÅÛ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇØÁÝ´Ï´Ù. ¸ðµç Á¾·ùÀÇ À¯´Ð½º ½Ã½ºÅÛ¿¡ GNU C ÄÄÆÄÀÏ·¯°¡ ¼³Ä¡µÇ¾î ÀÖ´Â°Ç ¾Æ´Õ´Ï´Ù. ÀÌ·¸°Ô Çϸé, ½Ã½ºÅÛ¿¡ ¾î¶² Á¾·ùÀÇ C ÄÄÆÄÀÏ·¯°¡ ¼³Ä¡µÇ¾î ÀÖ´ø°£¿¡ ÀÏÀÏÈ÷ °ü¸®ÀÚ ½Å°æ½áÁÙ ÇÊ¿ä°¡ ¾ø±â ¶§¹®¿¡ ÆíÇÕ´Ï´Ù. ½Éº¼¸¯ ¸µÅ©ÀÇ ÀåÁ¡ÀÌ ¹Ù·Î ÀÌ·± °ÍÀÔ´Ï´Ù.
cd /tools/bin
ln -s gcc /tools/bin/cc 

ln -vs libgcc.a `$LFS_TGT-gcc -print-libgcc-file-name | sed 's/libgcc/&_eh/'`

--disable-shared¸¦ »ç¿ëÇϴ°ÍÀº libgcc_eh.a ÆÄÀÏÀ» »ý¼º, ¼³Ä¡ÇÏÁö ¾Ê´Â´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. Glibc ÆÐÅ°Áö´Â -lgcc_eh¸¦ ºôµå½Ã¿¡ »ç¿ëÇÏ°Ô µÇ¸é libgcc_eh.a¿¡ ÀÇÁ¸ÇÏ°Ô µË´Ï´Ù. ÀÌ ÀÇÁ¸¼ºÀº À§¿Í °°ÀÌ ½Éº¼¸¯¸µÅ©·Ñ ¸¸µé¾î ÁÜÀ¸·Î½á ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù.

4.7. Linux-3.5.2 API Çì´õµé ¼³Ä¡


Approximate build time: 0.1 SBU Required disk space: 511 MB

¼³¸í: Linux API Headers(ÆÄÀÏ linux-3.5.2.tar.xz)µéÀº Glibc¿¡ ÀÇÇØ »ç¿ëµË´Ï´Ù.

4.8. Linux API Headers ¼³Ä¡


¸®´ª½º Ä¿³ÎÀº ½Ã½ºÅÛÀÇ C ¶óÀ̺귯¸® »ç¿ëÀ» À§ÇØ Application Programming Interface(API)¸¦ Á¦°øÇÕ´Ï´Ù. ÀÌ°ÍÀº Linux kernel tarball ³»¿¡ ÀÖ´Â C Çì´õÆÄÀϵéÀ» »ç¿ë°¡´ÉÇϵµ·Ï ¸¸µé¾î¼­ ¼³Ä¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀÚ, ÀÌÁ¦ ¿ì¸° Ä¿³ÎÀÇ ¾ÐÃàÀ» Ç®°í, ¼³Ä¡ÇÏ°í, ÇÊ¿äÇÑ ÆÄÀϵéÀ» gcc°¡ ÂüÁ¶ÇÒ À§Ä¡¿¡ º¹»çÇÒ°Ì´Ï´Ù.

Çì´õÆÄÀÏ ¼³Ä¡ ÁغñÇϱâ
make mrproper
make mrproper¸¦ ½ÇÇàÇÔÀ¸·Î½á Ä¿³ÎÆ®¸®¿¡ ÀÖ´Â ºÒÇÊ¿äÇÑ °ÍµéÀÌ Á¦°ÅµÇ¾ú½À´Ï´Ù. ¸®´ª½º Ä¿³ÎÆÀ¿¡¼­´Â ´Ù¸¥ ¿©·¯ Á¾·ùÀÇ Ä¿³Î ÄÄÆÄÀÏÀü¿¡ make mrproperÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

ÀÌÁ¦ »ç¿ëÀÚ°¡ º¼ ¼ö ÀÖ´Â Ä¿³ÎÇì´õÆÄÀÏÀÌ ÃßÃâÇÕ´Ï´Ù.
make headers_check
make INSTALL_HDR_PATH=dest headers_install
cp -rv dest/include/* /tools/include

4.9. Glibc-2.16.0 ¼³Ä¡


Approximate build time: 5.4 SBU Required disk space: 554 MB


Glibc¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Gettext, Grep, Make, Perl, Sed, Texinfo.

¼³¸í: Glibc ÆÐÅ°Áö´Â ÁÖ¿ä C ¶óÀ̺귯¸®¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. ÀÌ ¶óÀ̺귯¸®µéÀº ¸Þ¸ð¸®ÇÒ´çÀ̳ª µð·ºÅ丮 °Ë»ö, ÆÄÀÏ¿¡ ´ëÇÑ ¿­±â¿Í ´Ý±â, Àбâ/¾²±â, ¹®ÀÚ¿­ Çڵ鸵, ÆÐÅÏ ¸ÅĪ, »ê¼ú¿¬»ê µî¿¡ ´ëÇÑ ±âº»ÀûÀÎ ¹æ¹ýµéÀ» Á¦°øÇÕ´Ï´Ù.

4.9.1. Glibc ¼³Ä¡

-- ±âº» ÃÖÀûÈ­ Ç÷¡±×(including the -march and -mcpu options)µéÀ» º¯°æÇϴ°ÍÀº ±×¸® ÁÁÁö ½À°üÀÌ ¾Æ´Õ´Ï´Ù. ±×·¯¹Ç·Î ¸¸¾à¿¡ CFLAGS³ª CXXFLAG °°Àº ÀÌ¹Ì ÃÖÀûÈ­ µÇ¾îÀִ ȯ°æº¯¼öµéÀ» º¯°æÇßÀ» °æ¿ì¿¡´Â Glibc¸¦ ¼³Ä¡ÇÒ ¶§ ¿ø»óº¹±Í ½ÃÄÑÁÖ¼¼¿ä.

±âº»ÀûÀ¸·Î, Glibc¸¦ Ã¥¿¡¼­ Á¦½ÃÇϴ°ÍÀÌ ¾Æ´Ñ ´Ù¸¥ ¹æ¹ýÀ¸·Î ÄÄÆÄÀÏÇϴ°ÍÀº »ç¿ëÀÚÀÇ ½Ã½ºÅÛÀÇ ¾ÈÁ¤¼ºÀ» ÇØÄ¥ ¼ö ÀÖ½À´Ï´Ù. --

LFS 7.1¿¡¼­ rpc Çì´õÆÄÀÏÀÌ Á¤»óÀûÀ¸·Î ¼³Ä¡µÇÁö ¾Ê´Â °æ¿ì°¡ ÀÖ¾ú½À´Ï´Ù. ¿©·¯ºÐÀÇ È£½ºÆ® ½Ã½ºÅÛ¿¡ Á¦´ë·Î ¼³Ä¡µÇ¾î ÀÖ´ÂÁö È®ÀÎÇÏ°í ¸¸¾à ¼³Ä¡µÇ¾î ÀÖÁö ¾Ê´Ù¸é ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇϽʽÿÀ:
if [ ! -r /usr/include/rpc/types.h ]; then
  su -c 'mkdir -p /usr/include/rpc'
  su -c 'cp -v sunrpc/rpc/*.h /usr/include/rpc'
fi

GCC-4.7.1·Î Glibc-2.16.0À» ºôµåÇÒ ¶§ »ý±â´Â ¹ö±×¸¦ ÇȽºÇÕ´Ï´Ù:
sed -i 's/ -lgcc_s//' Makeconfig

Glibc¹®¼­´Â Àü¿ëµð·ºÅ丮¾È¿¡ ¼Ò½ºµð·ºÅ丮 ¹Û¿¡¼­ Glibc¸¦ ºôµåÇϴ°ÍÀ» ÃßõÇÕ´Ï´Ù:
mkdir -v ../glibc-build
cd  ../glibc-build

Glibc ÄÄÆÄÀÏ Áغñ:
../glibc-2.16.0/configure                             \
      --prefix=/tools                                 \
      --host=$LFS_TGT                                 \
      --build=$(../glibc-2.16.0/scripts/config.guess) \
      --disable-profile                               \
      --enable-add-ons                                \
      --enable-kernel=2.6.25                          \
      --with-headers=/tools/include                   \
      libc_cv_forced_unwind=yes                       \
      libc_cv_ctors_header=yes                        \
      libc_cv_c_cleanup=yes

¿©±â¼­ Àá±ñ. Glibc¸¦ ÄÄÆÄÀÏ ÇÒ ¶§´Â Àý´ë! GlibcÀÇ ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮¿¡¼­ ÇÏ¸é ¾È µË´Ï´Ù. À§¿¡¼­µµ º¸¸é ¾Ë°ÚÁö¸¸, ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮°¡ ¾Æ´Ï¶ó »óÀ§ µð·ºÅ丮¿¡¼­ ÀÛ¾÷À» ÇÏ°í ÀÖÀ½À» ¾Ë ¼ö ÀÖ½À´Ï´Ù. ¸¸¾à ¾ÐÃàÀ» Ç®¾î ³õÀº µð·ºÅ丮¿¡¼­ ÀÛ¾÷À» ÇÏ°Ô µÇ¸é ÀÏ´Ü, Configure¿¡¼­ ¿¡·¯°¡ ¹ß»ýÇÏ°í ¾ïÁö·Î ÄÄÆÄÀÏÀ» ÇÑ´Ù°í Çصµ ÄÄÆÄÀÏ µµÁß ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.

¼³Á¤ ¿É¼ÇÀÇ ÀǹÌ:
  • --host=LFS_TGT, --build=$(../glibc-2.16.0/scripts/config.guess): ÀÌ µÎ°¡Áö ½ºÀ§Ä¡¸¦ ÇÔ²² »ç¿ëÇϸé GlibcÀÇ ºôµå ½Ã½ºÅÛÀº /tools ¾È¿¡ ÀÖ´Â Å©·Î½º ÄÄÆÄÀÏ·¯¿Í Å©·Î½º ¸µÄ¿¸¦ »ç¿ëÇÏ¿© Å©·Î½º ÄÄÆÄÀÏÀ» ÇÏ°Ô µË´Ï´Ù.
  • --disable-profile: ÇÁ·ÎÆÄÀÏ Á¤º¸ ¶óÀ̺귯¸®µéÀÇ ºôµùÀ» ºñÈ°¼ºÈ­ÇÕ´Ï´Ù. ´ç½ÅÀÌ ÇÁ·ÎÆÄÀÏÀ» ¸¸µé °èȹÀ̶ó¸é ÀÌ ¿É¼ÇÀ» »©¼¼¿ä.
  • --enable-add-ons=linuxthreads: threading¶óÀ̺귯¸®Ã³·³ Linuxthreads add-onÀ» »ç¿ëÀ» ÇÑ´Ù°í Glibc¿¡°Ô ¾Ë·ÁÁÝ´Ï´Ù.
  • --enable-kernel=2.6.25: Glibc¿¡ ÄÄÆÄÀÏÇÏ´Â ¶óÀ̺귯¸®´Â Ä¿³Î 2.6.25À̰ųª À̺¸´Ù ÃֽŠ¹öÀüÀ» Áö¿øÇÕ´Ï´Ù. ¸¸¾à À̺¸´Ù ¿À·¡µÈ Ä¿³Î¹öÀüÀΰæ¿ì´Â ÄÄÆÄÀÏÀÌ ºÒ°¡´ÉÇÕ´Ï´Ù.
  • --with-headers=/tools/include: Glibc¿¡°Ô Ä¿³Î Çì´õÆÄÀÏÀ» ¼³Ä¡ÇÑ µð·ºÅ丮 °æ·Î¸¦ ¸»ÇØÁÝ´Ï´Ù.
  • libc_cv_forced_unwind=yes: Binutils-2.22¿¡¼­ Å©·Î½ºÄÄÆÄÀϵǾú´ø ¸µÄ¿´Â Glibc°¡ ¼³Ä¡µÇ±â Àü±îÁö´Â »ç¿ëÇÒ ¼ö°¡ ¾ø½À´Ï´Ù. À̶§¹®¿¡ configure Å×½ºÆ®¿¡¼­ force-unwind support Å×½ºÆ®°úÁ¤¿¡¼­ configure failÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù. ÀÌ ¿É¼ÇÀº fore-unwind support¸¦ Å×½ºÆ® ÇÏÁö ¾Ê°í ³Ñ¾î°¡µµ·Ï ÇØÁÝ´Ï´Ù.
  • libc_cv_c_cleanup=yes: À§¿Í °°Àº ÀÌÀ¯·Î configure script°¡ C cleanup handling support¸¦ Å×½ºÆ®ÇÏÁö ¾Ê°í ³Ñ¾î°¡µµ·Ï ÇØÁÝ´Ï´Ù.
  • libc_cv_ctors_header=yes: À§¿Í °°Àº ÀÌÀ¯·Î configure script°¡ gcc constructor support¸¦ Å×½ºÆ®ÇÏÁö ¾Ê°í ³Ñ¾î°¡µµ·Ï ÇØÁÝ´Ï´Ù.
  • --with-binutils=/tools/bin and --with-headers=/tools/include: ÀÌ ºÎºÐÀº Àý´ë °Çµå¸®Áö ¸»°í ±×´ë·Î Çϼ¼¿ä. ÀÌ ºÎºÐÀ» °Çµå¸®¸é ÄÄÆÄÀÏ ÀÚü°¡ ¾È µÇ°Å³ª µÈ´Ù ÇÏ´õ¶óµµ ³ªÁß¿¡ 100% ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù.

configure µµÁß ´ÙÀ½°ú °°Àº °æ°í ¸Þ¼¼Áö°¡ ¹ß»ýÇÒ ¼öµµ ÀÖ½À´Ï´Ù:
configure: WARNING:
*** These auxiliary programs are missing or incompatible versions: msgfmt
*** some features will be disabled.
*** Check the INSTALL file for required versions.
ÀÒ¾î¹ö¸®°Å³ª ȣȯ¼ºÀÌ ¾ø´Â msgfmtÇÁ·Î±×·¥Àº ÀϹÝÀûÀ¸·Î ÇÊ¿ä ¾ø½À´Ï´Ù, ÇÏÁö¸¸ °¡²û test suite¸¦ ½ÇÇàÇÒ¶§ ¹®Á¦¸¦ ÀÏÀ¸Åµ´Ï´Ù.

ÆÐÅ°Áö ÄÄÆÄÀÏ:
make

ÀÌ ÆÐÅ°Áö´Â test suite¿Í °°ÀÌ Á¦°øµÇÁö¸¸ ¾ÆÁ÷ C++ ÄÄÆÄÀÏ·¯¸¦ °¡Áö°í ÀÖÁö ¾Ê±â ¶§¹®¿¡ ½ÇÇàÇÒ ¼ö ¾ø½À´Ï´Ù.

Note
test suite¸¦ ¼º°øÀûÀ¸·Î ½ÇÇàÇϱâ À§Çؼ­´Â locale µ¥ÀÌÅÍ°¡ ÀÖ¾î¾ß ÇÕ´Ï´Ù. Locale data´Â ³¯Â¥, ½Ã°£, ÇöÀç ½Ã½ºÅÛ À¯Æ¿¸®Æ¼¿¡ ÀÇÇØ Ãâ·ÂµÇ°Å³ª ¼ö¿ëµÇ´Â µ¥ÀÌÅÍ Æ÷¸Ëµé¿¡ ´ëÇÑ Á¤º¸¸¦ °®°í ÀÖ½À´Ï´Ù. ÇöÀç test suite¸¦ ½ÇÇàÇÒ ¼ö ¾ø´Â ÀÌÀ¯´Â ¾ÆÁ÷ ÇÊ¿äÇÑ ·ÎÄÉÀÏÀ» ¼³Ä¡ÇÏÁö ¾Ê¾Ò±â ¶§¹®ÀÔ´Ï´Ù. Àû´çÇÑ ·ÎÄÉÀÏ ¼³Ä¡´Â ´ÙÀ½ Àå¿¡¼­ ÇÒ °Ì´Ï´Ù. ±×·¡µµ Glibc ·ÎÄÉÀÏÀ» ¼³Ä¡ÇÏ°í ½ÍÀ¸½Ã¸é ´ÙÀ½Àå¿¡ ÀÖ´Â Glibc-2.16.0 ºÎºÐÀ» »ìÆ캸¼¼¿ä

make install

°æ°í

»õ·Î¿î toolchainÀÇ ±âº»±â´É(compiling and linking)À» ¼³Ä¡ÇÏ°í Áö¿ì´Â °ÍÀÌ Áß¿äÇÑ ÀÏÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ ÇÁ·Î±×·¥À» Â¥¼­ Á¦´ë·Î ¼³Ä¡µÇ¾ú´ÂÁö¸¦ È®ÀÎÇØ º¾½Ã´Ù.

echo 'main(){}' > dummy.c
cc dummy.c
readelf -l a.out | grep ': /tools'

Áö±Ý±îÁö ¸ðµç ÀÛ¾÷À» Àß µû¶ó Çß´Ù¸é ¿¡·¯´Â ¾øÀ» °ÍÀÌ°í, ´ÙÀ½°ú ¸Þ¼¼Áö¸¦ º¼ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

Requesting program interpreter: /tools/lib/ld-linux.so.2

(´ÙÀ̳ª¹Í ¸µÄ¿ À̸§¿¡ Ç÷§ÆûÀÇ Æ¯Â¡ÀÌ ³ªÅ¸³ª ÀÖ½À´Ï´Ù.) ´ÙÀ̳ª¹Í ¸µÄ¿¸¦ ¼³Ä¡ÇÒ ¶§ ¼³Ä¡°æ·Î·Î½á /tools/lib ¸¦ ¼³Á¤ÇØ Áà¾ß ÇÕ´Ï´Ù.(prefix = /tools/lib) À§¿Í °°Àº ¸Þ¼¼Áö°¡ Ãâ·ÂµÇÁö ¾Ê°Å³ª, ¾Æ¹«·± ¸Þ¼¼Áö°¡ ¾ø´Ù¸é ¾î¶² °ÍÀÌ ½É°¢ÇÏ°Ô À߸øµÈ °ÍÀÔ´Ï´Ù. ¼³Ä¡°úÁ¤Áß¿¡ ¾îµð¿¡¼­ ¹®Á¦°¡ ¹ß»ýÇß´ÂÁö ¾Ë¾Æº¸°í Á¶»çÇϴ°ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¼³Ä¡°úÁ¤ÀÌ ¿ÏÀüÈ÷ Á¾·áµÇ±â Àü±îÁö´Â À§¿Í °°Àº »óȲÀÌ ¹ß»ýÇصµ ÀÏÀÏÀÌ ¹ÝÀÀÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ù°, cc ´ë½Å¿¡ gcc¸¦ »ç¿ëÇؼ­ sanity check¸¦ ¹Ýº¹Çؼ­ ÇÑ´Ù. À§¿Í °°Àº ÀÛ¾÷Àº /tools/bin/ccÀÇ symlink°¡ À߸ø µÇ¾îÀÖ´Ù´Â °ÍÀ» ÀǹÌÇÕ´Ï´Ù. GCC-3.3.2 - Pass 1 ÀνºÅç ¿¡ ´Ù½Ã °¡¼­(ÂüÁ¶Çؼ­) symlink¸¦ ¼öÁ¤ÇØ ÁÖ¼¼¿ä. µÎ¹ø°, $PATH ȯ°æº¯¼ö°¡ Á¦´ë·Î ÁöÁ¤µÇ¾ú´ÂÁö È®ÀÎÇÏÀÚ. $PATH ȯ°æº¯¼ö°¡ Á¦´ë·Î ÁöÁ¤µÇ¾ú´ÂÁö È®ÀÎÇϱâ À§Çؼ­ echo $PATH ¸¦ ÀÔ·ÂÇغ¸ÀÚ. echo $PATH¸¦ ÀÔ·ÂÇßÀ»¶§ ³ª¿À´Â ¸®½ºÆ®¿¡ /tools/bin°¡ ÀÖÀ¸¸é Á¦´ë·Î ÁöÁ¤µÇ¾ú´Ù°í º¼ ¼ö ÀÖ´Ù. ¸¸¾à $PATHȯ°æº¯¼ö°¡ À߸øµÇ¾ú´Ù¸é lfs»ç¿ëÀÚ·Î ·Î±×ÀÎÀ» ÇÏÁö ¾Ê¾Ò°Å³ª ȯ°æ¼³Á¤Çϱâ Àå¿¡¼­ ¹«¾ð°¡ ½Ç¼ö¸¦ Çß´Ù´Â ÀǹÌÀÌ´Ù. ¼¼¹ø°, ¼³Á¤ÆÄÀÏÀ» º¯°æÇÏ°í ³ª¼­ ¹«¾ù°¡ ¹®Á¦°¡ »ý±æ ¶§µµ ÀÖ´Ù. ±×·±°æ¿ì¿¡´Â Áö³­¹ø¿¡ ÃßõÇÑ°Íó·³ cut-and-paste(¿øº»¿¡¼­ °®´ÙºÙÀ̱â)¸¦ ÀÌ¿ëÇؼ­ ¼³Á¤ÆÄÀÏÀ» ´Ù½Ã ¸¸µé¾î¶ó.

¸ðµç ÀÛ¾÷ÀÌ ¸¸Á·½º·´°Ô ³¡³µ´Ù¸é, test filesÀ» Áö¿ì¼¼¿ä.
rm dummy.c a.out

ÀÚ, self-contained toolchainÀÇ ¼³Ä¡°¡ ¿Ïº®ÇÏ°Ô ³¡³µ°í, À̰͵éÀº ³ª¸ÓÁö Àӽõµ±¸µéÀ» build Çϴµ¥ »ç¿ëµÉ °ÍÀÔ´Ï´Ù.

4.10. Binutils-2.22 - Pass 2

ºôµå ½Ã°£: 1.1 SBU ÇÊ¿ä ¿ë·®: 407 MB

4.10.1. Bintuils ¼³Ä¡Çϱâ

ÄÄÆÄÀÏ·¯ ÃÖÀûÈ­½Ã¿¡ ºôµå ½ÇÆи¦ ¸·±â À§ÇØ ´ÙÀ½°ú °°ÀÌ ÆÐÄ¡¸¦ Àû¿ëÇÕ´Ï´Ù.
patch -Np1 -i ../binutils-2.22-build_fix-1.patch

¼Ò½º µð·ºÅ丮 ¹Û¿¡¼­ »õ·Î¿î ºôµå µð·ºÅ丮¸¦ ¸¸µì´Ï´Ù.
mkdir -v ../binutils-build
cd ../binutils-build

Bintuils ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù:
CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar  \
RANLIB=$LFS_TGT-ranlib \
../binutils-2.22/configure \
   --prefix=/tools \
   --disable-nls   \
   --with-lib-path=/tools/lib

»õ·Î¿î configure ¿É¼Çµé:
  • CC=$LFS_TGT-gcc AR=$LFS_TGT-ar RANLIB=$LFS_TGT-ranlib: È£½ºÆ® ½Ã½ºÅÛ¿¡ ÀÖ´Â ÄÄÆÄÀÏ·¯ ´ë½Å Å©·Î½º ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇϵµ·Ï ÀÌ·± º¯¼öµéÀ» È®½ÇÇÏ°Ô Á¤ÇØÁÖ¾î¾ß ÇÕ´Ï´Ù.
  • --with-lib-path=/tools/lib: ÀÌ°ÍÀº configure ½ºÅ©¸³Æ®°¡ ¶óÀ̺귯¸® °Ë»ö °æ·Î·Î host½Ã½ºÅÛÀ» »ç¿ëÇÏÁö ¾Ê°í /tools/libÀ» Ž»öÇϵµ·Ï ÇÕ´Ï´Ù.

ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏÇÕ´Ï´Ù:
make

ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù:
make install

ÀÌÁ¦ ´ÙÀ½ÀåÀÇ "Re-adjusting" ºÎºÐÀ» À§ÇÑ ¸µÄ¿¸¦ ¹Ì¸® ÁغñÇصӴϴÙ.
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib
cp -v ld/ld-new /tools/bin

ÆĶó¹ÌÅÍ ¼³¸í:
  • -C ld clean: make ÇÁ·Î±×·¥¿¡°Ô "ld"¶ó´Â ÇÏÀ§ µð·ºÅ丮³»¿¡ ÄÄÆÄÀÏµÈ ¸ðµç ÆÄÀÏÀ» Áö¿ì¶ó°í ¸»ÇÕ´Ï´Ù.
  • -C ld LIB_PATH=/usr/lib:/lib: ÀÌ ¿É¼ÇÀº ld ÇÏÀ§ µð·ºÅ丮 ³»¿¡ ÀÖ´Â ¸ðµç °ÍµéÀ» ´Ù½Ã ºôµåÇ϶ó´Â °ÍÀÔ´Ï´Ù. LIB_PATH¶ó´Â Makefile º¯¼ö¸¦ ÁöÁ¤Çؼ­ Àӽà ÅøÀ» ¼³Ä¡Çϱâ À§ÇØ º¯°æÇß´ø ¶óÀ̺귯¸® °æ·Î¸¦ ´Ù½Ã ¿ø·¡ÀÇ µðÆúÆ®°ªÀ¸·Î µÇµ¹·Á³õ½À´Ï´Ù. ÀÌ·¯ÇÑ Áغñ´Â ´ÙÀ½ ÀåÀ» À§ÇØ ÇÊ¿äÇÑ °úÁ¤ÀÔ´Ï´Ù.

4.11. GCC-4.7.1 - Pass 2

¿¹»ó ½Ã°£: 7.1 SBU ÇÊ¿ä ¿ë·®: 1.8 GB

4.11.1. GCC ¼³Ä¡Çϱâ

¿ì¸®°¡ óÀ½ ºôµåÇß´ø GCC¿¡´Â ³»ºÎ ½Ã½ºÅÛ Çì´õµéÀÌ ¸î°³¹Û¿¡ ¾ø¾ú½À´Ï´Ù. ±×µé Áß ÇϳªÀÎ limits.h´Â ½Ã½ºÅÛ limits.h(/tools/include/limits.h) Çì´õ ¾È¿¡ ¸í½ÃµÇ¾î ÀÖ´Â °ÍµéÀ» ¼ø¼­´ë·Î include ÇÕ´Ï´Ù. ÇÏÁö¸¸ gcc°¡ óÀ½ ºôµåµÉ ´ç½Ã¿¡´Â /tools/include/limits.h¶ó´Â ÆÄÀÏÀÌ Á¸ÀçÇÏÁö ¾Ê¾Ò°í µû¶ó¼­ GCC°¡ ¼³Ä¡µÇ¾ú´Ù°í Çصµ ÇØ´ç Çì´õÆÄÀϵéÀº includeµÇÁö ¸øÇÏ°í ºÎºÐÀûÀ¸·Î¸¸ ¼³Ä¡µÉ ¼ö¹Û¿¡ ¾ø¾ú½À´Ï´Ù. ÀÌ°ÍÀº ÀÓ½ÃÀûÀÎ libc¸¦ ºôµåÇϴµ¥´Â ÀûÇÕÇÏÁö¸¸ GCC¸¦ ºôµåÇϱ⿡´Â Çì´õÆÄÀÏÀÌ ºÎÁ·ÇÒ ¼ö ¹Û¿¡ ¾ø½À´Ï´Ù. ¿ÏÀüÇÑ ¹öÀüÀÇ ³»ºÎ Çì´õÆÄÀϵéÀ» °®±â À§Çؼ­´Â ´ÙÀ½°ú °°ÀÌ ÇØ°áÇÒ ¼ö ÀÖ½À´Ï´Ù:

cat gcc/limitx.h gcc/glimits.h gcc/limity.h > \
  `dirname $($LFS_TGT-gcc -print-libgcc-file-name)`/include-fixed/limits.h


x86 ½Ã½ºÅÛ¿¡¼­´Â GCCÀÇ bootstrap ºôµå´Â -fomit-frame-pointer¶ó´Â ÄÄÆÄÀÏ·¯ Ç÷¡±×¸¦ »ç¿ëÇÕ´Ï´Ù. bootstrapÀÌ ¾ø´Â ºôµå¿¡¼­´Â »ý·«µÇ´Â°Ô ±âº»ÀÌÁö¸¸ bootstrapÀÌ ÀÖ´Ù´Â °¡Á¤ÇÏ¿¡ ÄÄÆÄÀÏ·¯¸¦ ¸¸µé¾î³»´Â°Ô ¸ñÇ¥À̱⠶§¹®¿¡ ´ÙÀ½°ú °°ÀÌ sed¸í·ÉÀ¸·Î Ç÷¡±×¸¦ »ç¿ëÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù:

cp -v gcc/Makefile.in{,.tmp}
sed 's/^T_CFLAGS =$/& -fomit-frame-pointer/' gcc/Makefile.in.tmp \
  > gcc/Makefile.in

´Ù½ÃÇѹø /tools¿¡ ¼³Ä¡µÈ ¸µÄ¿¸¦ »ç¿ëÇϵµ·Ï GCCÀÇ ±âº» µ¿Àû ¸µÄ¿ÀÇ À§Ä¡¸¦ º¯°æÇØÁÝ´Ï´Ù:

for file in \
 $(find gcc/config -name linux64.h -o -name linux.h -o -name sysv4.h)
do
  cp -uv $file{,.orig}
  sed -e 's@/lib\(64\)\?\(32\)\?/ld@/tools&@g' \
  -e 's@/usr@/tools@g' $file.orig > $file
  echo '
#undef STANDARD_STARTFILE_PREFIX_1
#undef STANDARD_STARTFILE_PREFIX_2
#define STANDARD_STARTFILE_PREFIX_1 "/tools/lib/"
#define STANDARD_STARTFILE_PREFIX_2 ""' >> $file
  touch $file.orig
done

óÀ½ GCC¸¦ ºôµåÇßÀ»¶§¿Í ¸¶Âù°¡Áö·Î GMP, MPFR, MPC ÆÐÅ°Áö°¡ ÇÊ¿äÇÕ´Ï´Ù. °¢°¢ÀÇ tarballÀ» Ç®°í ºôµå¿¡ ÇÊ¿äÇÑ À̸§À¸·Î ¹Ù²ß´Ï´Ù:

tar -Jxf ../mpfr-3.1.1.tar.xz
mv -v mpfr-3.1.1 mpfr
tar -Jxf ../gmp-5.0.5.tar.xz
mv -v gmp-5.0.5 gmp
tar -zxf ../mpc-1.0.tar.gz
mv -v mpc-1.0 mpc

¼Ò½º µð·ºÅ丮¿Í ºÐ¸®µÈ ºôµå µð·ºÅ丮¸¦ ¸¸µé¾îÁÝ´Ï´Ù:
mkdir -v ../gcc-build
cd ../gcc-build

¹Ýµå½Ã GCC¸¦ ºôµåÇϱâ Àü¿¡ ÃÖÀûÈ­¿¡ °ü·ÃµÈ Ç÷¡±× ¼³Á¤Çß´ø °ÍÀ» È®ÀÎÇÏ°í ¼³Á¤µÇ¾î ÀÖ´Ù¸é ´Ù½Ã unsetÇØÁֽʽÿÀ.

ÀÌÁ¦ GCC ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù:
CC=$LFS_TGT-gcc \
AR=$LFS_TGT-ar                  \
RANLIB=$LFS_TGT-ranlib          \
../gcc-4.7.1/configure          \
    --prefix=/tools             \
    --with-local-prefix=/tools  \
    --with-native-system-header-dir=/tools/include \
    --enable-clocale=gnu        \
    --enable-shared             \
    --enable-threads=posix      \
    --enable-__cxa_atexit       \
    --enable-languages=c,c++    \
    --disable-libstdcxx-pch     \
    --disable-multilib          \
    --disable-bootstrap         \
    --disable-libgomp           \
    --with-mpfr-include=$(pwd)/../gcc-4.7.1/mpfr/src \
    --with-mpfr-lib=$(pwd)/mpfr/src/.libs

°¢°¢ÀÇ ÄÄÆÄÀÏ ¿É¼Ç¿¡ ´ëÇÑ ¼³¸íÀÔ´Ï´Ù:
--enable-clocale=gnu

ÀÌ ¿É¼ÇÀº ¸ðµç ½Ã½ºÅÛȯ°æ¿¡¼­ C++ ¶óÀ̺귯¸®¸¦ À§ÇØ ¿Ã¹Ù¸¥ locale ¸ðµ¨ÀÌ ¼±Åõǵµ·Ï ÇØÁÝ´Ï´Ù. ¸¸¾à configure ½ºÅ©¸³Æ®°¡ de_DE ·ÎÄÉÀÏÀÌ ¼³Ä¡µÈ °ÍÀ» ¹ß°ßÇß´Ù¸é ¿Ã¹Ù¸¥ GNU ·ÎÄÉÀÏ ¸ðµ¨À» ¼±ÅÃÇÒ °ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ ¸¸¾à de_DE ·ÎÄÉÀÏÀÌ ¼³Ä¡µÇÁö ¾ÊÀº »óŶó¸é ÀÏ¹Ý ·ÎÄÉÀÏ ¸ðµ¨ÀÌ ¼±ÅõǾî ȣȯÀÌ ¾ÈµÇ´Â C++ ¶óÀ̺귯¸®·Î Application Binary Interface(ABI)°¡ ¼³Ä¡µÉ À§ÇèÀÌ ÀÖ½À´Ï´Ù.

--enable-threads=posix

¸ÖƼ¾²·¹µå Äڵ忡 ´ëÇÑ C++ ¿¹¿Ü 󸮸¦ °¡´ÉÇÏ°Ô ÇÕ´Ï´Ù.

--enable-__cxa_atexit

ÀÌ ¿É¼ÇÀº C++ µð½ºÆ®·°ÅÍ(Æı«ÀÚ)¸¦ Áö¿ª staticÀ̳ª Àü¿ª ¿ÀºêÁ§Æ®·Î µî·ÏÇÒ ¶§¿¡ atexitº¸´Ù __cxa_atexit¸¦ »ç¿ëÇϵµ·Ï ¸¸µé¾îÁÝ´Ï´Ù. µð½ºÆ®·°ÅÍ¿¡ ´ëÇØ Ç¥ÁØ-ȣȯ°¡´ÉÇÑ Çڵ鷯¸¦ À§Çؼ­ ¹Ýµå½Ã ÇÊ¿äÇÑ ¿É¼ÇÀÔ´Ï´Ù. ¶ÇÇÑ ÀÌ°ÍÀº C++ ABI, C++ °øÀ¯ ¶óÀ̺귯¸®, C++ ÇÁ·Î±×·¥ µî¿¡ ¿µÇâÀ» ³¢Ä¨´Ï´Ù.

enable-languages=c,c++

ÀÌ ¿É¼ÇÀº C¿Í C++ ÄÄÆÄÀÏ·¯°¡ ºôµåµÇµµ·Ï ÇÕ´Ï´Ù.

disable-libstdcxx-pch

Àý´ë·Î libstdc++¸¦ ºôµåÇϴµ¥ pre-compiled header(PCH)¸¦ ºôµåÇÏÁö ¸¶½Ê½Ã¿À. ¿ë·®µµ Ŭ »Ó´õ·¯ ¿ì¸®´Â ÀÌ°ÍÀ» »ç¿ëÇÏÁö ¾ÊÀ» °ÍÀÔ´Ï´Ù.

--disable-bootstrap

¿ø·¡ GCC ºôµå´Â "bootstrap" ºôµå¸¦ ±âº»À¸·Î ÇÕ´Ï´Ù. ÀÌ°ÍÀº Çѹø GCC¸¦ ºôµåÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¿©·¯¹ø ºôµå¸¦ ÇÕ´Ï´Ù. ÀÌ´Â °áÇÔ¾øÀÌ ÄÄÆÄÀÏÇϱâ À§ÇÔÀε¥ LFS ºôµå¹ã¹ý´Â ¸Å¹ø bootstrapÀÌ ÇÊ¿äÇÏÁö ¾Ê´Â solid ÄÄÆÄÀÏ·¯¸¦ Á¦°øÇؾßÇϱ⠶§¹®¿¡ ÀÌ ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù.

ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏÇÕ´Ï´Ù:
make

ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù.
make install

¸¶Áö¸·À¸·Î symlink¸¦ »ý¼ºÇÕ´Ï´Ù. ¸¹Àº ÇÁ·Î±×·¥ÀÌ gcc´ë½Å cc¸¦ »ç¿ëÇÕ´Ï´Ù. ¸ðµç UNIX ½Ã½ºÅÛ¿¡¼­ GCC°¡ ¼³Ä¡µÈ °ÍÀÌ ¾Æ´Ï±â ¶§¹®¿¡ º¸Åë ½ºÅ©¸³Æ®³ª ÇÁ·Î±×·¥¿¡¼­´Â cc¸¦ ÀϹÝÀûÀ¸·Î »ç¿ëÇÕ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ gcc¸¦ cc·Î »ç¿ëÇϵµ·Ï ¸µÅ©¸¦ °É¾îÁÝ´Ï´Ù.
ln -sv gcc /tools/bin/cc

4.12. Tcl-8.5.12

Tcl ÆÐÅ°Áö´Â Tool Command Language¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

ºôµå ½Ã°£: 0.4 SBU ÇÊ¿ä ¿ë·®: 33 MB

4.12.1. Tcl ¼³Ä¡Çϱâ

ÀÌ ÆÐÅ°Áö´Â ÀÌ ´ÙÀ½¿¡ ¼³Ä¡µÉ Expect, DejaGNU, Check°ú ÇÔ²² test suite¸¦ ½ÇÇàÇϴµ¥ ÇÊ¿äÇÕ´Ï´Ù.

Tcl ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù
cd unix
./configure --prefix=/tools

ÆÐÅ°Áö¸¦ ºôµåÇÕ´Ï´Ù
make

ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù. test suite´Â Àӽà ÅøµéÀ» ºôµåÇÏ´Â ÀÌ Àå¿¡¼­´Â ¹Ýµå½Ã ½ÇÇàÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. ÇÏÁö¸¸ ±×·¡µµ test suite¸¦ ½ÇÇàÇØ¾ß°Ú´Ù¸é ´ÙÀ½°ú °°ÀÌ ÇϽʽÿÀ:
TZ=UTC make test

Tcl test suite´Â ¾Æ¸¶µµ È£½ºÆ® Á¶°ÇÀÌ ÃæºÐÇÏÁö ¾Ê¾Æ ½ÇÆÐÇÒ °ÍÀÔ´Ï´Ù. ¿©±â¼­ test suite¸¦ ½ÇÆÐÇصµ ³î¶ö ÇÊ¿ä´Â ¾ø½À´Ï´Ù. TZ=UTC¶ó´Â ÆĶó¹ÌÅʹ ŸÀÓÁ¸À» test suite°¡ ½ÇÇàµÇ´Â µ¿¾È¿¡¸¸ Coordinated Universal Time(UTC) ¶Ç´Â Greenwich Mean Time(GMT)·Î ¼³Á¤ÇØÁÝ´Ï´Ù.

ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù:
make install

¼³Ä¡µÈ ¶óÀ̺귯¸®°¡ ¾²±â°¡ °¡´ÉÇϵµ·Ï ±ÇÇÑÀ» ¼³Á¤ÇØÁÖ¾î µð¹ö±ë ½Éº¼ÀÌ ³ªÁß¿¡ Áö¿öÁú ¼ö ÀÖµµ·Ï ÇÕ´Ï´Ù.
chmod -v u+w /tools/lib/libtcl8.5.so
TclÀÇ Çì´õ¸¦ ¼³Ä¡ÇÕ´Ï´Ù.
make install-private-headers
ÀÌÁ¦ ÇÊ¿äÇÑ ½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾îÁÝ´Ï´Ù.
ln -sv tclsh8.5 /tools/bin/tclsh

4.12.2. Contents of Tcl

¼³Ä¡µÇ´Â ÇÁ·Î±×·¥: tclsh(link to tclsh8.5), tclsh8.5 ¼³Ä¡µÇ´Â ¶óÀ̺귯¸®: libtcl8.5.so, libtclstub8.5a

4.13. Expect-5.45


ExpectÆÐÅ°Áö´Â ´Ù¸¥ ´ëÈ­½Ä ÇÁ·Î±×·¥¿¡¼­ ´ëÈ­¸¦ ½ºÅ©¸³Æ®ÇϱâÀ§ÇÑ ÇÁ·Î±×·¥µéÀ» Æ÷ÇÔÇÕ´Ï´Ù.

Approximate build time: 0.1 SBU Required disk space: 4.4 MB

Expect¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed, Tcl.

4.13.1. Expect ¼³Ä¡


¸ÕÀú ExpectÀÇ configure ½ºÅ©¸³Æ®°¡ /usr/local/bin/stty´ë½Å¿¡ /bin/stty¸¦ »ç¿ëÇϵµ·Ï ¼³Á¤ÇØÁÝ´Ï´Ù.
cp -v configure{,.orig}
sed 's:/usr/local/bin:/bin:' configure.orig > configure

Expect ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools --with-tcl=/tools/lib \
  --with-tclinclude=/tools/include

configure optionsÀÇ ÀǹÌ:
  • --with-tcl=/tools/lib: configure script°¡ TclÀÌ ¼³Ä¡µÈ Àӽõð·ºÅ丮ÀÇ À§Ä¡¸¦ ãÀ» ¼ö ÀÖ°Ô ÁöÁ¤ÇØ ÁÝ´Ï´Ù.¿ì¸®´Â LFS½Ã½ºÅÛÀ» »õ·Î ±¸ÃàÇÏ°í Àֱ⶧¹®¿¡ ÀÌ¹Ì È£½ºÆ®½ÃÅÛ¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â (¹èÆ÷ÆÇÀ¸·Î ¼³Ä¡ÇصÐ) TclÀ» ã´Â°ÍÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù.
  • --with-tclinclude=/tools/include: TclÀÇ internal Çì´õÀÇ À§Ä¡¸¦ ¸»ÇØÁÝ´Ï´Ù. configure½Ã¿¡ ÀÚµ¿ÀûÀ¸·Î TclÀÇ Çì´õÀ§Ä¡¸¦ ¹ß°ßÇÏÁö ¸øÇÒ°æ¿ì ½ÇÆÐÇÒ °æ¿ì¸¦ ´ëºñÇØ ¼³Á¤ÇØÁÝ´Ï´Ù.

package ÄÄÆÄÀÏÇϱâ:
make

ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, Tcl test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä. ±×·¯³ª È£½ºÆ®ÀÇ »óÅÂ(¼³Á¤)¿¡ µû¶ó¼­(that are not fully understood)Tcl test suits°¡ ½ÇÆÐÇÏ´Â °æ¿ìµµ ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¿©±â¼­ test suits½ÇÆÐÇصµ ³î¶óÁø ¸¶¼¼¿ä( ½ÅÁßÇÏ°Ô °í·ÁÇÒ ÇÊ¿ä´Â ¾ø´Ù.)
make test

¼³Ä¡Çϱâ:
make SCRIPTS="" install
make parameterÀÇ ÀǹÌ:
  • SCRIPTS="": À̿ɼÇÀº expect scriptsÁß¿¡¼­ ºÒÇÊ¿äÇÑ °ÍµéÀ» ¼³Ä¡ÇÏ´Â °ÍÀ» ¹æÁöÇØ ÁÝ´Ï´Ù.

ÀÚ, ÀÌÁ¦ Tcl°ú Expect ¼Ò½º µð·ºÅ丮¸¦ »èÁ¦Çصµ µË´Ï´Ù.

4.13.2. Expect ³»¿ë


¼³Ä¡µÈ ÇÁ·Î±×·¥: expect

¼³Ä¡µÈ ¶óÀ̺귯¸®: libexpect-5.45.a

4.13.3. ¿ä¾à


expect "talks" to other interactive programs according to a script.

4.14. DejaGnu-1.5 ¼³Ä¡


DejaGnuÆÐÅ°Áö´Â ´Ù¸¥ ÇÁ·Î±×·¥µéÀ» °ËÁõÇϱâÀ§ÇÑ framework¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

Approximate build time: <=0.1 SBU Required disk space: 4.1 MB

DejaGnu (1.5) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/dejagnu/

DejaGnu(1.5)¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.

4.14.1. DejaGnu ¼³Ä¡


DejaGnu ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools

ÆÑÅ°Áö ºôµåÇÏ°í ¼³Ä¡Çϱâ:
make install

4.14.2. DejaGnu ³»¿ë


¼³Ä¡µÈ ÇÁ·Î±×·¥: runtest

4.14.3. ¿ä¾à


runtest is the wrapper script that finds the proper expect shell and then runs DejaGnu.

4.15. Check-0.9.8

ºôµå ½Ã°£: 0.1 SBU ÇÊ¿ä ¿ë·®: 6.9 MB

4.15.1. Check ¼³Ä¡Çϱâ

Check ÄÄÆÄÀÏÀ» À§ÇØ ÁغñÇÕ´Ï´Ù:
./configure --prefix=/tools

ÆÐÅ°Áö¸¦ ºôµåÇÕ´Ï´Ù:
make

ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ¿Ï·áµÇ¾ú½À´Ï´Ù. ¿¹Àü¿¡ ¾ê±âÇß´ø°Íó·³ ¿©±â¼­ test suite¸¦ ½ÇÇàÇÏ´Â °ÍÀº Àǹ«´Â ¾Æ´Õ´Ï´Ù¸¸ È®ÀÎÇÏ°í ½Í´Ù¸é ´ÙÀ½°ú °°ÀÌ ¸í·ÉÀ» ½ÇÇàÇϽʽÿÀ:
make check
test suite¸¦ È®ÀÎÇÏ´Â °ÍÀº ´ë·« 4 SBU Á¤µµ °É¸³´Ï´Ù.

ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù
make install

4.15.2. Contents of Check

¼³Ä¡µÇ´Â ¶óÀ̺귯¸®: libcheck.a, libcheck.so

4.16. Ncurses-5.9 ¼³Ä¡


Approximate build time: 0.7 SBU Required disk space: 26 MB

Ncurses (5.9) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/ncurses/

Ncurses¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

4.16.1. Ncurses-5.9 ¼³Ä¡


¾ÐÃà Ç®±â:
mkdir -p $LFS/build/ncurses_build
cd $LFS/build/ncurses_build
tar zxvf /mnt/source/ncurses-5.4.tar.gz -C ./
Ncurses ÄÄÆÄÀÏ ÁغñÇϱâ
cd $LFS/build/ncurses_build/ncurses-5.4
./configure --prefix=/tools --with-shared \
    --without-debug --without-ada --enable-overwrite      
Configure optionÀÇ ÀǹÌ:
  • --without-ada: ÀÌ·¸°Ô Çϸé, HOST ½Ã½ºÅÛ¿¡ Ada compiler°¡ ÀÌ¹Ì ¼³Ä¡µÇ¾î ÀÖ´õ¶óµµ Ncurses¸¦ ÄÄÆÄÀÏ ÇÒ ¶§, Ada bindingsÀ» ÇÏÁö ¾Ê°Ô ÇÑ´Ù. ÀÏ´Ü ¿ì¸®°¡ chrootȯ°æº¯¼ö·Î µé¾î °¬À» ¶§ HOST½Ã½ºÅÛ¿¡ ¼³Ä¡µÈ Ada¸¦ »ç¿ëÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ÀÌ ¿É¼ÇÀº ²À ÁÖ¾î¾ß ÇÑ´Ù.
  • --enable-overwrite: ´Ù¸¥ ÆÑÅ°ÁöµéÀÌ NcursesÇì´õ ÆÄÀϵéÀ» ÂüÁ¶ÇÒ ¼ö ÀÖµµ·Ï /toos/include/ncurses ´ë½Å /tools/include·Î ¼³Ä¡Çϵµ·Ï ÁöÁ¤ÇØ ÁÖ´Â ¿ªÈ°À» ÇÑ´Ù.

ÇÁ·Î±×·¥°ú ¶óÀ̺귯¸®µéÀ» ÄÄÆÄÀÏÇϱâ:
make

Ncurses¹®¼­µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ±the Section called Contents of Ncurses in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.17. Bash-4.2 ¼³Ä¡


Approximate build time: 0.4 SBU Required disk space: 48 MB

Bash (2.05b)) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/bash/


Bash¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Ncurses, Sed.

4.17.1. Bash ¼³Ä¡


Bash ´Â ¸î°¡Áö ¹ö±×µéÀÌ Á¸ÀçÇÕ´Ï´Ù. ÀÌ ¹ö±×µéÀ» °íÄ¡±â À§Çؼ­ ´ÙÀ½°ú °°Àº ÆÐÄ¡¸¦ Çϼ¼¿ä:
patch -Np1 -i ../bash-4.2-fixes-8.patch      

Bash ÄÄÆÄÀÏ ÁغñÇϱâ:
cd $LFS/build/bash_build/bash-4.2
./configure --prefix=/tools --without-bash-malloc

configure ¿É¼Ç ¼³¸í
--without-bash-malloc

ÀÌ ¿É¼ÇÀº ¼¼±×¸ÕÆ® ÆúÆ®¸¦ ÀÏÀ¸Å°´Â BashÀÇ ¸Þ¸ð¸®ÇÒ´çÀÇ »ç¿ëÀ» ²ô´Â ¿É¼ÇÀÔ´Ï´Ù. ¾ÕÀ¸·Î bash¿¡¼­´Â ¾ÈÁ¤¼ºÀ» À§ÇØ Glibc¿¡¼­ Á¦°øÇÏ´Â malloc ÇÔ¼ö¸¦ »ç¿ëÇÒ °ÍÀÔ´Ï´Ù.

ÄÄÆÄÀÏ Çϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Bash test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make tests

BashÀÇ ¹®¼­µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ:
make install

½Éº¼¸¯ ¸µÅ©¸¦ ¸¸µé¾î ÁØ´Ù:
ln -sv bash /tools/bin/sh

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Bash in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.18. Bzip2-1.0.6 ¼³Ä¡


Approximate build time: <=0.1 SBU Required disk space: 5.7 MB

GCC¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé : Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Make.

4.18.1. Bzip2 ¼³Ä¡


´Ù¿î·Îµå °ø½Ä »çÀÌÆ®: [ftp]ftp://sources.redhat.com/pub/bzip2/

Bzip2ÆÑÅ°Áö´Â configure script°¡ ¾ø½À´Ï´Ù. optionÀ» ÇÑÁÙ·Î ½á¼­ ÄÄÆÄÀÏ ÇÏ°í ¼³Ä¡ÇÕ´Ï´Ù.
make
make PREFIX=/tools install      
ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Bzip2 in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.19. Coreutils-8.19 ¼³Ä¡


Approximate build time: 0.7 SBU Required disk space: 126 MB

Coreutils-8.19 °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/coreutils/

Coreutils ÆÐÄ¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®: ftp://ftp.gnu.org/gnu/coreutils/

Coreutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Perl, Sed.

4.19.1. Coreutils ¼³Ä¡


Coreutils has an issue when compiled against Glibc-2.3.3. ÆÐÄ¡¸¦ ¾ÈÇßÀ»¶§, Coreutils utilities(head, tail, sort etc)Áß ÀϺΠÇÁ·Î±×·¥Àº Áö³­ 30³âµ¿¾È »ç¿ëµÇ¾î¿Ô´ø ÀüÅëÀûÀÎ ¹®¹ý°ú Ãæµ¹ÀÌ »ý±æ°ÍÀÔ´Ï´Ù. ¿À·¡µÈ syntaxµéÀº Coreutils°¡ ¿©·¯Àå¼Ò¿¡¼­ updateµÉ¶§ ¾ø¾îÁöÁö ¾Ê°í, »õ·Î¿î ¹öÀü¿¡¼­µµ Áö¿øÀÌ µÇ¾î¿Ô½À´Ï´Ù. ¼¼ºÎ»çÇ×µéÀº ÆÐÄ¡¸í·ÉÀ» º¸¸é ¾Ë ¼ö ÀÖ½À´Ï´Ù. Use of this patch is by no means compulsory but opting not to use it means you'll have deal with the consequences yourself, i.e. patch the many software packages that use the old syntax.

Coreutils ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools --enable-install-program=hostname

--enable-install-program=hostname
±âº»°ªÀº »ç¿ëÇÏÁö ¾Ê´Â °ÍÀÌÁö¸¸ Perl test suite¸¦ ½ÇÇàÇÒ ¶§ ÇÊ¿äÇϱ⠶§¹®¿¡ ¼³Á¤ÇØ ÁÝ´Ï´Ù. ºôµåÇÏ°í ¼³Ä¡µÉ ¹ÙÀ̳ʸ®¸¦ À§ÇÑ hostnameÀ» ¼³Á¤ÇÕ´Ï´Ù.

package ÄÄÆÄÀÏÇϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤ Coreutils test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make RUN_EXPENSIVE_TESTS=yes check

make parameterÀÇ ÀǹÌ:
  • RUN_EXPENSIVE_TESTS=yes: This tells the test suite to run several additional tests that are considered relatively expensive on some platforms, ±×·¸Áö¸¸ ¸®´ª½º¿¡¼­´Â ¹®Á¦°¡ µÇÁö ¾Ê´Â´Ù.

ÆÑÅ°Áö ¼³Ä¡Çϱâ:
make install
ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Coreutils in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.20. Diffutils-3.2 ¼³Ä¡


Approximate build time: 0.2 SBU Required disk space: 8.5 MB

Diffutils (3.2)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/diffutils/

Diffutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

4.20.1. Diffutils ¼³Ä¡

Glibc-2.16.0°úÀÇ È£È¯¼º °³¼±À» À§ÇØ ´ÙÀ½À» ½ÇÇàÇÕ´Ï´Ù:
sed -i -e '/gets is a/d' lib/stdio.in.h

Diffutils ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools      

package ÄÄÆÄÀÏÇϱâ:
make

¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Diffutils in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.21. File-5.11

ÆÄÀÏ¿¡ ´ëÇÑ Å¸ÀÔÀ» °áÁ¤ÇØÁÖ´Â À¯Æ¿¸®Æ¼ÀÔ´Ï´Ù.

ºôµå ½Ã°£: 0.1 SBU ÇÊ¿ä ¿ë·®: 12.4 MB

4.21.1. File ¼³Ä¡Çϱâ

ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù:
./configure --prefix=/tools

ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏÇÕ´Ï´Ù
make

ÄÄÆÄÀÏÀÌ ÀÌÁ¦ ³¡³µ½À´Ï´Ù. test suite´Â Àǹ«´Â ¾Æ´ÏÁö¸¸ Å×½ºÆ®ÇØ¾ß°Ú´Ù¸é ´ÙÀ½À» ½ÇÇàÇϽʽÿÀ:
make check

ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù.
make install

4.22. Findutils-4.4.2 ¼³Ä¡


Approximate build time: 0.2 SBU Required disk space: 27 MB

Findutils (4.4.2) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://alpha.gnu.org/gnu/findutils/

Findutils¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

4.22.1. Findutils ¼³Ä¡


Findutils ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/findutils_build
cd $LFS/build/findutils_build
tar zxvf /mnt/source/findutils-4.1.20.tar.gz -C ./
cd findutils-4.4.2
./configure --prefix=/tools      

package ÄÄÆÄÀÏÇϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ Á¤¸» Findutils test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check

¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Findutils in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.23. Gawk-4.0.1 ¼³Ä¡


Approximate build time: 0.2 SBU Required disk space: 30 MB

Gawk-3.1.3 °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/pub/gnu/gawk/

Gawk-3.1.3°ú ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

4.23.1. Gawk ¼³Ä¡


Gawk ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools

package ÄÄÆÄÀÏÇϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ÇÏÁö¸¸, Gawk test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check

¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± 6Àå GawkÀÇ ³»¿ë ¸¦ ÂüÁ¶Çϼ¼¿ä. .

4.24. Gettext-0.18.1.1 ¼³Ä¡


Approximate build time: 0.6 SBU Required disk space: 101 MB

Gettext (0.14.1) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/gettext/

Gettext¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Bison, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

4.24.1. Gettext ¼³Ä¡

Àӽà Åø¸¸ÀÌ ÇÊ¿äÇϱ⠶§¹®¿¡ ¿ì¸®´Â ´ÜÁö Gettext ÆÐÅ°Áö·ÎºÎÅÍ ÇϳªÀÇ ¹ÙÀ̳ʸ® ÆÄÀϸ¸ ºôµåÇÏ¿© ¼³Ä¡Çϱ⸸ ÇÏ¸é µË´Ï´Ù.

¸ÕÀú Glibc-2.16.0°úÀÇ È£È¯¼º ¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù:
sed -i -e '/gets is a/d' gettext-*/*/stdio.in.h

Gettext ÄÄÆÄÀÏ ÁغñÇϱâ:
cd gettext-tools
EMACS="no" ./configure --prefix=/tools --disable-shared  

configure ¿É¼Ç ¼³¸í:
EMACS="no"

ÀÌ°ÍÀº configure script°¡ Emacs Lisp ÆÄÀÏÀ» ¼³Ä¡Çß´ÂÁö È®ÀÎÇÏ´Â °ÍÀ» ¸·½À´Ï´Ù.
--disable-shared

¿ì¸®´Â shared Gettext ¶óÀ̺귯¸®¸¦ Áö±ÝÀº ÇÊ¿ä·Î ÇÏÁö ¾Ê½À´Ï´Ù. ºôµå´ë»ó¿¡¼­ ÇØ´ç ¶óÀ̺귯¸®´Â Á¦¿ÜÇÕ´Ï´Ù.

ÄÄÆÄÀÏ Çϱâ:
make -C gnulib-lib
make -C src msgfmt

¿ÀÁ÷ ÇϳªÀÇ ¹ÙÀ̳ʸ® ÆÄÀϸ¸ ÄÄÆÄÀϵDZ⠶§¹®¿¡ test suite¸¦ ½ÇÇàÇÏ´Â °ÍÀº ºÒ°¡´ÉÇÕ´Ï´Ù. ±×·¡¼­ ¿©±â¿¡¼­ test suite¸¦ ½ÇÇàÇÏ´Â °ÍÀº ±ÇÀåÇÏÁö ¾Ê½À´Ï´Ù.

¸¶Áö¸·À¸·Î msgfmt ¹ÙÀ̳ʸ®¸¦ ¼³Ä¡ÇÕ´Ï´Ù:
cp -v src/msgfmt /tools/bin

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Gettext in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.25. Grep-2.14 ¼³Ä¡


Approximate build time: 0.2 SBU Required disk space: 21 MB

Grep (2.14) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/grep/

Grep¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Make, Sed, Texinfo.

4.25.1. Grep ¼³Ä¡


Grep ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools
ÇÁ·Î±×·¥ ÄÄÆÄÀÏÇϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» grep test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check

ÀÌ ÆÑÅ°ÁöÀÇ ¹®¼­µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Grep in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.26. Gzip-1.5


Approximate build time: 0.2 SBU Required disk space: 10 MB

Gzip (1.5)°ø½Ä ´Ù¿î·Îµå »çÀÌÆ®:
ftp://alpha.gnu.org/gnu/gzip/

Gzip°ú ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.

4.26.1. Gzip ¼³Ä¡


Gzip ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools      
package ÄÄÆÄÀÏÇϱâ:
make

¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Gzip in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.27. M4-1.4.16

¼³¸í: M4 ÆÐÅ°Áö´Â macro ÇÁ·Î¼¼¼­¸¦ Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù.

ºôµå ½Ã°£: 0.2 SBU ÇÊ¿ä °ø°£: 16.6 MB === M4 ¼³Ä¡Çϱâ=== Glibc-2.16.0°úÀÇ ¹®Á¦¸¦ ÆÐÄ¡ÇÕ´Ï´Ù:
sed -i -e '/gets is a/d' lib/stdio.in.h

M4 ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù:
sed -i -e '/gets is a/d' lib/stdio.in.h

ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏÇÕ´Ï´Ù
make

test suite¸¦ ½ÇÇàÇÏ°í ½ÍÀ¸½Ã¸é more check¸¦ ½ÇÇàÇϽʽÿÀ.

»ý·«ÇÏ°í ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÏ·Á¸é ´ÙÀ½À» ½ÇÇàÇϽʽÿÀ:
make install

4.28. Make-3.82 ¼³Ä¡


Approximate build time: 0.1 SBU Required disk space: 11.2 MB

Make (3.82) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/make/

Make¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Sed.

4.28.1. Make ¼³Ä¡


Make ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools      
ÄÄÆÄÀÏ Çϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» make test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check

ÀÌ ÆÑÅ°ÁöÀÇ ¹®¼­µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Make in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.29. Patch-2.6.1 ¼³Ä¡


Approximate build time: 0.1 SBU Required disk space: 3.4 MB

Patch (2.6.1) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/patch/

Patch¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Glibc, Grep, Make, Sed.

4.29.1. Patch ¼³Ä¡


Patch ÄÄÆÄÀÏ ÁغñÇϱâ:
CPPFLAGS=-D_GNU_SOURCE ./configure --prefix=/tools      

Àü󸮱â flag -D_GNU_SOURCE ´Â Power PC ¿¡¼­¸¸ ÇÊ¿ä·Î ÇÕ´Ï´Ù. ´Ù¸¥ ½Ã½ºÅÛ¿¡¼­´Â ÇÊ¿ä¾ø½À´Ï´Ù.

ÄÄÆÄÀÏÇϱâ:
make

Patch ¹®¼­µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Patch in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.30. Perl-5.16.1 ¼³Ä¡


Approximate build time: 1.8 SBU Required disk space: 237 MB

Perl (5.16.1) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: http://www.cpan.org/src/


Perl°ú ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, Gawk, GCC, Glibc, Grep, Make, Sed.

4.30.1. Perl ¼³Ä¡


hard-wired paths¸¦ C ¶óÀ̺귯¸®¿¡ ¸Âµµ·Ï º¯°æ½ÃÅ°¼¼¿ä:
cd perl-5.8.3
patch -Np1 -i /mnt/source/perl-5.16.1-libc-2.patch

Perl ÄÄÆÄÀÏ ÁغñÇϱâ:
sh Configure -des -Dprefix=/tools


ÁÖÀÇ : ÀÌ ¶§ sh °¡ ÂüÁ¶ÇÏ´Â libtermcap.so.2°¡ ¾ø´Ù¸é¼­ ¿¡·¯°¡ ³¯ °æ¿ì°¡ ÀÖ½À´Ï´Ù. Áö±Ý±îÁö ¼³Ä¡ °úÁ¤Áß¿¡ ¹«¾ð°¡ À߸øÀÌ ÀÖ¾ú´Ù´Â ¶æÀÔ´Ï´Ù. ¾Æ·¡¿Í °°ÀÌ ¾ïÁö·Î ÇÒ ¼ö´Â ÀÖÁö¸¸ ÃßõÀº ¾ÈÇÕ´Ï´Ù.

--
RPATH=$PATH
PATH=/bin:/tools/bin:/usr/bin
export PATH
¸¦ Çؼ­ °æ·Î¸¦ ¹Ù²Ù¾î ÁÖ°í configure¸¦ ½ÇÇàÇØ º¸¼¼¿ä.

¼³Ä¡±îÁö ´Ù ³¡³ª¸é
PATH=$RPATH
export PATH
·Î ¿ø»ó º¹±¸ ÇØ ÁÖ¼¼¿ä. --


ÆÐÅ°Áö¸¦ ºôµåÇÕ´Ï´Ù:
make 

ÄÄÆÄÀÏÀÌ ³¡³ª¸é ¶óÀ̺귯¸®¿Í ÇÁ·Î±×·¥µéÀ» º¹»çÇÏÀÚ:
cp -v perl cpan/podlators/pod2man /tools/bin
mkdir -pv /tools/lib/perl5/5.16.1
cp -Rv lib/* /tools/lib/perl5/5.16.1

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Perl in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.31. Sed-4.2.1 ¼³Ä¡


Approximate build time: 0.1 SBU Required disk space: 10.5 MB

Sed (4.2.1) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/sed/

Sed¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Texinfo.

4.31.1. Sed ¼³Ä¡


Sed ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools

ÆÐÅ°Áö ÄÄÆÄÀÏÇϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Sed test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check

ÀÌ ÆÑÅ°ÁöÀÇ ¹®¼­µé°ú ÇÁ·Î±×·¥ ¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Sed in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

4.32. Tar-1.26 ¼³Ä¡


Approximate build time: 0.4 SBU Required disk space: 20.6 MB

Tar (1.26) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://alpha.gnu.org/gnu/tar/

Tar¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Sed.

4.32.1. Tar ¼³Ä¡

Glibc-2.16.0°úÀÇ È£È¯¹®Á¦¸¦ ÇØ°áÇÕ´Ï´Ù:
sed -i -e '/gets is a/d' gnu/stdio.in.h

Tar ÄÄÆÄÀÏ ÁغñÇϱâ:
./configure --prefix=/tools      
ÄÄÆÄÀÏÇϱâ:
make
ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Texinfo test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check

Tar ¹®¼­µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Tar in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä

4.33. Texinfo-4.13a ¼³Ä¡


Approximate build time: 0.2 SBU Required disk space: 24 MB

Texinfo (4.13a) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: ftp://ftp.gnu.org/gnu/texinfo/

Texinfo¿Í ÀÇÁ¸¼º °ü°è¿¡ ÀÖ´Â ÇÁ·Î±×·¥µé: Bash, Binutils, Coreutils, Diffutils, GCC, Gettext, Glibc, Grep, Make, Ncurses, Sed.

4.33.1. Texinfo ¼³Ä¡


Texinfo ÄÄÆÄÀÏ ÁغñÇϱâ :
./configure --prefix=/tools      
ÄÄÆÄÀÏ Çϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Texinfo test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä:
make check

Texinfo ¹®¼­µé°ú ÇÁ·Î±×·¥µéÀ» ¼³Ä¡Çϱâ:
make install

ÆÐÅ°Áö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇؼ± the Section called Contents of Texinfo in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä

4.34. Xz-5.0.4

ºôµå ½Ã°£: 0.2 SBU ÇÊ¿ä °ø°£: 16.3 MB

4.34.1. Xz-Utils ¼³Ä¡Çϱâ

Xz ÄÄÆÄÀÏÀ» ÁغñÇÕ´Ï´Ù:
./configure --prefix=/tools

ÆÐÅ°Áö¸¦ ÄÄÆÄÀÏ ÇÕ´Ï´Ù
make

ÆÐÅ°Áö¸¦ ¼³Ä¡ÇÕ´Ï´Ù
make install

4.35. Stripping


À̹ø ´Ü°è´Â ¹Ýµå½Ã ÇØÁÙ ÇÊ¿ä´Â ¾ø°í ÇÊ¿äÇÑ °æ¿ì¿¡¸¸ Çϼ¼¿ä. ¸¸¾à LFSÆÄƼ¼ÇÀÇ Å©±â°¡ ³Ê¹« ÀÛÀ» ¶§, ºÒÇÊ¿äÇÑ °ÍµéÀ» Á¦°ÅÇÒ ¼ö ÀÖ´Ù¸é Á»´õ ÆíÇÏ°Ô ¼³Ä¡ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù. ½ÇÇàÆÄÀÏ°ú ¶óÀ̺귯¸®µéÀº ¾à 70MBÁ¤µµÀÇ ºÒÇÊ¿äÇÑ debugging symbolsÀ» Æ÷ÇÔÇÏ°í ÀÖ½À´Ï´Ù. À̰͵éÀ» Áö¿ì·Á¸é ´ÙÀ½°ú °°/ÀÌ Çϼ¼¿ä:
strip --strip-debug /tools/lib/*
strip --strip-unneeded /tools/{,s}bin/*

The first of the above commands will skip some twenty files, reporting that it doesn't recognize their file format. Most of them are scripts instead of binaries.

Áö±Ý ¼³Ä¡µÇ¾î ÀÖ´Â ¶óÀ̺귯¸®µé¿¡ ´ëÇØ --strip-unneeded¿É¼ÇÀ» »ç¿ëÇÒ¶§ ³Ê¹« Á¶½É½º·¹ÇÒ ÇÊ¿ä´Â ¾ø½À´Ï´Ù. À̰͵éÀº ¾îÂ÷ÇÇ »èÁ¦ÇØ¾ß ÇÏ°í Glibc´Â ³ªÁß¿¡ ´Ù½Ã ¼³Ä¡ÇÏ°Ô µË´Ï´Ù.

°ü·ÃµÈ ¸ðµç ¹®¼­µéÀ» Áö¿ì¸é ¾à 2MBÁ¤µµ¸¦ ¾Æ³¥¼ö ÀÖ´Ù:
rm -rf /tools/{,share}/{info,man,doc}

LFS½Ã½ºÅÛÀ» ¼³Ä¡Çϱâ À§Çؼ­´Â ¾à 850MBÁ¤µµÀÇ °ø°£ÀÌ ÇÊ¿äÇÕ´Ï´Ù. ¸¸¾à ´ç½ÅÀÌ Glibc¸¦ buildÇÏ°í ¼³Ä¡ÇÒ ¼ö ÀÖ´Ù¸é ³ª¸ÓÁö ´Ù¸¥ ¸ðµç ÇÁ·Î±×·¥µµ BuildÇÏ°í ¼³Ä¡ÇÒ ¼ö ÀÖÀ» °ÍÀÔ´Ï´Ù.

4.36. ¼ÒÀ¯±Ç ¹Ù²Ù±â

Note
ÀÌ Ã¥ÀÇ ³ª¸ÓÁö ¸í·É¾îµéÀº ÀüºÎ root »ç¿ëÀÚ·Î ·Î±×ÀÎ µÇ¾îÀÖ´Â µ¿¾È¿¡ ½ÇÇàµÇ¾î¾ß ÇÕ´Ï´Ù. ¶ÇÇÑ root ȯ°æÀÏ ¶§ $LFS ȯ°æ º¯¼ö°¡ Àß ¼³Á¤µÇ¾î ÀÖ´ÂÁö È®ÀÎÇϽʽÿÀ.

ÇöÀç $LFS/tools µð·ºÅ丮´Â È£½ºÆ® ½Ã½ºÅÛ¿¡ Á¸ÀçÇÏ´Â »ç¿ëÀÚÀÎ lfs°¡ ¼ÒÀ¯ÇÏ°í ÀÖ½À´Ï´Ù. ¸¸¾à $LFS/tools µð·ºÅ丮°¡ ÀÌ´ë·Î À¯ÁöµÈ´Ù¸é ÆÄÀϵéÀº user ID¿¡ ¸Â´Â °èÁ¤ÀÌ ¾ø´Â »ç¿ëÀÚ°¡ ¼ÒÀ¯ÇÏ´Â °ÍÀ¸·Î µÇ°Ô µË´Ï´Ù. ³ªÁß¿¡ »ç¿ëÀÚ¸¦ ¸¸µé¾î¼­ user ID°¡ °°Àº »ç¿ëÀÚ°¡ µÉ °æ¿ì Ä¡¸íÀûÀÎ Á¶ÀÛÀ» ÇÒ ¼ö Àֱ⠶§¹®¿¡ ÀÌ°°Àº ȯ°æÀº À§ÇèÇÕ´Ï´Ù. ¶§¹®¿¡ ÀÌ·¯ÇÑ °ÍÀ» ¹æÁöÇÏ·Á¸é »õ·Î¿î LFS ½Ã½ºÅÛ¿¡ /etc/passwd ÆÄÀÏÀ» »ý¼ºÇÑ µÚ lfs »ç¿ëÀÚ¸¦ Ãß°¡ÇÏ°í Áö±ÝÀº ¸ÕÀú µð·ºÅ丮¸¦ root »ç¿ëÀÚÀÇ ¼ÒÀ¯·Î ¹Ù²Ù´Â °ÍÀÌ ÁÁ½À´Ï´Ù.

chown -R root:root $LFS/tools

ºñ·Ï LFS ½Ã½ºÅÛÀÌ ¿Ï¼ºµÇ¾î¼­ $LFS/tools µð·ºÅ丮°¡ Áö¿öÁø´Ù°í Çصµ Ãß°¡ÀûÀÎ LFS ½Ã½ºÅÛÀ» ºôµåÇϱâ À§ÇØ ÇÊ¿äÇÑ °æ¿ìµµ ÀÖ½À´Ï´Ù. ¹é¾÷ÇÒÁö ¸»Áö´Â º»ÀεéÀÇ ¼±ÅÃÀÔ´Ï´Ù.

ID
Password
Join
Make a wish, it might come true.


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2013-01-26 00:00:53
Processing time 0.0030 sec