· 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
Put your trust in those who are worthy.


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.0574 sec