· 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 ½Ã½ºÅÛÀÇ Áغñ´Ü°è¿¡ ÇØ´çÇÏ´Â ÆÐŰÁö¿Í ÆÐÄ¡¸¦ ±¸ÇÏ´Â ºÎºÐÀ» ¼³¸íÇÕ´Ï´Ù.

¸ñÂ÷

1 »õÆÄƼ¼Ç ¸¸µé±â
1.1 ¼Ò °³
1.2 »õ ÆÄƼ¼Ç ¸¸µé±â
1.3 »õ ÆÄƼ¼Ç¿¡ ÆÄÀÏ ½Ã½ºÅÛ ¸¸µé±â
1.4 »õ ÆÄƼ¼ÇÀ» ¸¶¿îÆ®Çϱâ
2 ÇÊ¿äÇÑ ÆÐŰÁö¿Í ÆÐÄ¡µé
2.1 ¼Ò °³
2.2 ¸ðµç ÆÐŰÁöµé
2.3 ÇÊ¿äÇÑ ÆÐÄ¡µé
3 Àӽà ½Ã½ºÅÛ ±¸ÃàÇϱâ
3.1 ¼Ò °³
3.2 Toolchain technical notes
3.3 Á¤Àû¿¬°á¿¡ ´ëÇÑ ÁÖÀÇ
3.4 $LFS/tools µð·ºÅ丮 ¸¸µé±â
3.5 "LFS" °èÁ¤ ¸¸µé±â
3.6 ±âº» ȯ°æ º¯¼ö ¼³Á¤Çϱâ
3.7 Binutils-2.14 - Pass 1 ¼³Ä¡
3.7.1 BinutilsÀÇ ÀνºÅç
3.8 GCC-3.3.2 - Pass 1 ¼³Ä¡
3.8.1 GCC ¼³Ä¡
3.9 Linux-2.4.24 Çì´õµé ¼³Ä¡
3.10 kernel Çì´õ ¼³Ä¡
3.11 Glibc-2.3.3 ¼³Ä¡
3.11.1 Glibc ¼³Ä¡
3.12 "Locking in" Glibc
3.13 Expect-5.40.0 ¼³Ä¡
3.13.1 Expect ¼³Ä¡
3.13.2 Expect ³»¿ë
3.13.3 ¿ä¾à
3.14 DejaGnu-1.4.4 ¼³Ä¡
3.14.1 DejaGnu ¼³Ä¡
3.14.2 DejaGnu ³»¿ë
3.14.3 ¿ä¾à
3.15 GCC-3.3.2 - Pass 2 ¼³Ä¡
3.15.1 GCCÀÇ Àç ÀνºÅç
3.16 Binutils-2.14 - Pass 2 ¼³Ä¡
3.16.1 Binutils À缳ġÇϱâ
3.17 Gawk-3.1.3 ¼³Ä¡
3.17.1 Gawk ¼³Ä¡
3.18 Coreutils-5.0 ¼³Ä¡
3.18.1 Coreutils ¼³Ä¡
3.19 Bzip2-1.0.2 ¼³Ä¡
3.19.1 Bzip2 ¼³Ä¡
3.20 Gzip-1.3.5 ¼³Ä¡
3.20.1 Gzip ¼³Ä¡
3.21 Diffutils-2.8.1 ¼³Ä¡
3.21.1 Diffutils ¼³Ä¡
3.22 Findutils-4.1.20 ¼³Ä¡
3.22.1 Findutils ¼³Ä¡
3.23 Make-3.80 ¼³Ä¡
3.23.1 Make ¼³Ä¡
3.24 Grep-2.5.1 ¼³Ä¡
3.24.1 Grep ¼³Ä¡
3.25 Sed-4.0.9 ¼³Ä¡
3.25.1 Sed ¼³Ä¡
3.26 Gettext-0.14.1 ¼³Ä¡
3.26.1 Gettext ¼³Ä¡
3.27 Ncurses-5.4 ¼³Ä¡
3.27.1 Ncurses-5.4 ¼³Ä¡
3.28 Patch-2.5.4 ¼³Ä¡
3.28.1 Patch ¼³Ä¡
3.29 Tar-1.13.25 ¼³Ä¡
3.29.1 Tar ¼³Ä¡
3.30 Texinfo-4.6 ¼³Ä¡
3.30.1 Texinfo ¼³Ä¡
3.31 Bash-2.05b ¼³Ä¡
3.31.1 Bash ¼³Ä¡
3.32 Util-linux-2.12 ¼³Ä¡
3.32.1 Util-linux ¼³Ä¡
3.33 Perl-5.8.3 ¼³Ä¡
3.33.1 Perl ¼³Ä¡
3.34 Stripping

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

2.2 ¸ðµç ÆÐŰÁöµé


´ÙÀ½ »çÀÌÆ®µéÀ» ÂüÁ¶ÇÏ¿© ´Ù¿î·Îµå ¹ÞÀ¸¼¼¿ä: (¸µÅ©°¡ ±úÁø »çÀÌÆ®µµ ÀÖ½À´Ï´Ù)



Automake (1.8.2) - 623 KB: http://freshmeat.net/projects/automake/


Binutils (2.14) - 10,666 KB: http://freshmeat.net/projects/binutils/



Coreutils (5.0) - 3,860 KB: http://freshmeat.net/projects/coreutils/

DejaGnu (1.4.4) - 1,055 KB: http://freshmeat.net/projects/dejagnu/

Diffutils (2.8.1) - 762 KB: http://freshmeat.net/projects/diffutils/

E2fsprogs (1.34) - 3,003 KB: http://freshmeat.net/projects/e2fsprogs/


Expect (5.40.0) - 509 KB: http://freshmeat.net/projects/expect/

File (4.07) - 347 KB: -- (see Note 1 below) http://freshmeat.net/projects/file/

Findutils (4.1.20) - 760 KB: http://freshmeat.net/projects/findutils/

Flex (2.5.4a) - 372 KB: ftp://ftp.gnu.org/gnu/non-gnu/flex/


GCC (2.95.3) - 9,618 KB: http://freshmeat.net/projects/gcc/

GCC-core (3.3.2) - 10,994 KB: http://freshmeat.net/projects/gcc/

GCC-g++ (3.3.2) - 2,019 KB: http://freshmeat.net/projects/gcc/

GCC-testsuite (3.3.2) - 1,042 KB: http://freshmeat.net/projects/gcc/

Gettext (0.14.1) - 6,397 KB: http://freshmeat.net/projects/gettext/

Glibc (2.3.3) - 13,101 KB: -- (see Note 2 below) http://freshmeat.net/projects/glibc/


Groff (1.19) - 2,360 KB: http://freshmeat.net/projects/groff/


Gzip (1.3.5) - 324 KB: ftp://alpha.gnu.org/gnu/gzip/

Inetutils (1.4.2) - 1,019 KB: http://freshmeat.net/projects/inetutils/





Libtool (1.5.2) - 2,591 KB: http://freshmeat.net/projects/libtool/

Linux (2.4.24) - 29,138 KB: http://freshmeat.net/projects/linux/





Man-pages (1.65) - 1,752 KB: http://freshmeat.net/projects/man-pages/

Modutils (2.4.26) - 229 KB: http://freshmeat.net/projects/modutils/

Ncurses (5.4) - 2,019 KB: http://freshmeat.net/projects/ncurses/



Perl (5.8.3) - 11,721 KB: http://freshmeat.net/projects/perl/


Procps (3.1.15) - 260 KB: http://freshmeat.net/projects/procps/



Shadow (4.0.4.1) - 795 KB: http://freshmeat.net/projects/shadow/



Tar (1.13.25) - 1,281 KB: ftp://alpha.gnu.org/gnu/tar/


Texinfo (4.6) - 1,317 KB: http://freshmeat.net/projects/texinfo/

Util-linux (2.12) - 1,814 KB: http://freshmeat.net/projects/util-linux/



Total size of these packages: 134 MB

ÁÖ¼®:1) ÇöÀç File(4.07)ÆÑŰÁö´Â »ç¿ëÇÒ ¼ö ¾ø´Â »óÅÂÀÔ´Ï´Ù. ÀÌ ´Ù¿î·Îµå »çÀÌÆ®ÀÇ ÁÖ°ü¸®ÀÚ´Â »õ ¹öÀüÀÌ ³ª¿À¸é ±¸ ¹öÀüÀº »èÁ¦ÇÏ´Â °ÍÀ¸·Î ¾Ë·ÁÁ® ÀÖ½À´Ï´Ù. File¼½¼ÇÀ» Âü°íÇÏ¿© ´Ù¸¥ ´Ù¿î·Îµå »çÀÌÆ®¸¦ ÀÌ¿ëÇϼ¼¿ä.

ÁÖ¼®:2) ÇöÀç, Glibc ¸ÞÀÎÅ×À̳ʵéÀº »õ·Î¿î ¸±¸®Áî Ÿ¸£º¼À» ´Ù¿î·Îµå ¿ëÀ¸·Î ¸¸µéÁö ¾Ê±â·Î °áÁ¤Çß½À´Ï´Ù. µû¶ó¼­, ¸ÇóÀ½ÀÇ ¿ø½Ã ¼Ò½º(¿ªÀÚÁÖ:ù¹öÀü)ºÎÅÍ ÇöÀç glibc ¸±¸®Á ¾òÀ» ¼ö ÀÖ´Â À¯ÀÏÇÑ ¹æ¹ýÀº Glibc CVS ÀúÀå¼Ò·ÎºÎÅÍ °¡Á®¿À´Â °Í »ÓÀÔ´Ï´Ù. ¾Æ·¡ÀÇ ¸í·É¾îµéÀ» ½ÇÇàÇÏ¸é »õ ¹öÀüÀ» ´Ù¿î·ÎµåÇϰí Ÿ¸£º¼À» ¸¸µé°ÍÀÔ´Ï´Ù. ( - sunyzero ¹ø¿ª)
cvs -z 9 -d :pserver:anoncvs@sources.redhat.com:/cvs/glibc \
    export -d glibc-2.3.3-20031202 -D "2003-12-02 UTC" libc
tar jcvf glibc-2.3.3-20031202.tar.bz2 glibc-2.3.3-20031202

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

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


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




















ÇöÀç À§ ÆÐÄ¡ ¸®½ºÆ®ÀÇ ¸µÅ©´Â ¸ðµÎ ±úÁø »óÅÂÀÔ´Ï´Ù. http://www.linuxfromscratch.org/patches/lfs/5.1 À» ÀÌ¿ëÇØ ÁÖ¼¼¿ä.

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

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

3.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"À» º¼ ¼ö ÀÖÀ» °Ì´Ï´Ù.

3.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ÀÌ´Ù.

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


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

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

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

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

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

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


ÀÌ Àå¿¡¼­ ÄÄÆÄÀÏµÈ ¸ðµç ÇÁ·Î±×·¥µéÀº ´ÙÀ½ Àå¿¡¼­ ÄÄÆÄÀ쵃 ÇÁ·Î±×·¥µé°ú ºÐ¸®Çϱâ À§ÇØ $LFS/tools ¾Æ·¡ ¼³Ä¡µÉ °ÍÀÔ´Ï´Ù. $LFS/Tools ¿¡¼­ ÄÄÆÄÀÏµÈ ÇÁ·Î±×·¥µéÀº Àӽ÷Π»ç¿ëµÉ µµ±¸µéÀ̰í, ÃÖÁ¾ LFS½Ã½ºÅÛ¿¡¼­´Â Áö¿ï °ÍÀÔ´Ï´Ù.

Àӽõµ±¸µéÀÌ ÀúÀåµÈ µð·ºÅ丮¸¦ ½±°Ô ã±âÀ§ÇØ °íÀ¯ÇÑ À̸§À» »ç¿ëÇϱ⸦ ¿øÇÒ °ÍÀÔ´Ï´Ù. "Tools"À̶ó´Â À̸§ ´ë½Å¿¡ "tools-for-lfs"¶ó´Â À̸§À» »ç¿ëÇÒ ¼öµµ ÀÖ½À´Ï´Ù. ÀÌÃ¥À» º¸´Âµ¿¾È "tools"¶ó´Â À̸§À» ´ë½Å ´Ù¸¥ À̸§À» »ç¿ëÇÏ´Â °ÍÀº Á¶½ÉÇϱ⠹ٶø´Ï´Ù.

´ÙÀ½°ú °°Àº µð·ºÅ丮¸¦ ¸¸µå¼¼¿ä.
mkdir $LFS/tools
´ÙÀ½ ´Ü°è´Â ´ç½Å ½Ã½ºÅÛ¿¡ /tools¶õ ½Éº¼¸¯¸µÅ©¸¦ ¸¸µå´Â °ÍÀÔ´Ï´Ù. À̰ÍÀº LFSÆÄƼ¼Ç¿¡¼­ ¸¸µé¾îÁø µð·ºÅ丮¸¦ °¡¸®Åµ´Ï´Ù.
ln -s $LFS/tools /
ÂüÁ¶: À§ÀÇ ¸í·ÉÀº Á¤È®ÇÑ ¿¹ÀÔ´Ï´Ù. ÇÏÁö¸¸, ln¸í·ÉÀº ¾à°£ÀÇ ¹®¹ýÀû º¯È­¸¦ °¡Áú¼ö ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ¿¡·¯°¡ ¹ß»ýÇϸé Áú¹®ÇϱâÀü¿¡ info ÆäÀÌÁö¸¦ Âü°íÇϱ⠹ٶø´Ï´Ù.

¸¸µé¾îÁø ½Éº¼¸¯¸µÅ©´Â ¿ì¸®°¡ ÄÄÆÄÀÏÇÒ ¶§ Ç×»ó /tools¸¦ ÂüÁ¶ÇÒ ¼ö ÀÖ°Ô ÇØÁÖ°í, compiler, assembler, linker ¸¦ »ç¿ëÇÒ ¼ö ÀÖµµ·Ï ÇØ ÁÝ´Ï´Ù. ´ÙÀ½Àå¿¡¼­µµ »ç¿ëÇÏ°Ô µË´Ï´Ù.

3.5 "LFS" °èÁ¤ ¸¸µé±â


"ROOT"·Î ·Î±×ÀÎÇÑ »óÅ¿¡¼­´Â ÀÛÀº ½Ç¼ö·Îµµ µ¥¹ÌÁö¸¦ À԰ųª ½Ã½ºÅÛÀÌ ¸Á°¡Áú ¼ö°¡ ÀÖ½À´Ï´Ù. ±×·¯¹Ç·Î ÀÌ Àå¿¡¼­ ÆÑŰÁö ¼³Ä¡ ÀÛ¾÷À» ÇÒ ¶§¿¡´Â ÀÏ¹Ý °èÁ¤À¸·Î ÇÒ °ÍÀ» ±ÇÇÕ´Ï´Ù. ¹°·Ð ÀڽŸ¸ÀÇ »ç¿ëÀÚ À̸§À» ¾µ¼öµµ ÀÖÁö¸¸ ½±°í ±ò²ûÇÑ ÀÛ¾÷ ȯ°æÀ» À§ÇØ "LFS" ¶ó´Â »õ·Î¿î »ç¿ëÀÚ¸¦ ¸¸µé°í ¼³Ä¡ °úÁ¤µ¿¾È »ç¿ëÇÒ °Ì´Ï´Ù.ROOT »óÅ¿¡¼­ ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ½ÇÇàÇÏ¿© »õ·Î¿î »ç¿ëÀÚ¸¦ Ãß°¡ÇսôÙ.
useradd -s /bin/bash -m -k /dev/null lfs
¿É¼Ç ¼³¸í:
  • -s /bin/bash: bash ¸¦ lfs °èÁ¤ÀÇ ±âº» ½©·Î »ç¿ëÇÕ´Ï´Ù.
  • -m -k /dev/null: ÀÌ·¸°Ô Çϸé /etc/skel ¾ÈÀÇ È­ÀϵéÀÌ lfs °èÁ¤ÀÇ È¨ µð·ºÅ丮·Î º¹»çµÇ´Â°É ¹æÁöÇÕ´Ï´Ù.(Áï ¾î¶² ȯ°æ ¼³Á¤ È­Àϵµ ÀÚµ¿À¸·Î ¸¸µé¾îÁö´Â °É ¹æÁöÇÑ´Ù´Â ¸»)

lfs ·Î ·Î±×ÀÎ Çϱâ À§Çؼ± Password ¸¦ ¸¸µé¾î¾ß ÇÕ´Ï´Ù.
passwd lfs
$LFS/tools µð·ºÅ丮ÀÇ ¼ÒÀ¯±ÇÀ» lfs »ç¿ëÀÚ¿¡°Ô ÁÜÀ¸·Î½á $LFS/tools¸¦ »ç¿ëÇÒ ¼ö ÀÖ°Ô ÇÕ´Ï´Ù.
chown lfs $LFS/tools
¸¸¾à ÀÛ¾÷ µð·ºÅ丮¸¦ µû·Î ¸¸µé¾î ÁÖ¾ú´Ù¸é ±× µð·ºÅ丮ÀÇ ¼ÒÀ¯±Çµµ lfsÀ¯Àú·Î ¹Ù²Ù¾î ÁÖ¼¼¿ä.
chown lfs $LFS/sources
lfs °èÁ¤À¸·Î ·Î±×ÀÎ Çϼ¼¿ä. ´ÙÀ½°ú °°ÀÌ ÀÔ·ÂÇϼ¼¿ä:
su - lfs
"-" ¿É¼ÇÀº ·Î±×ÀÎ ½©·Î ½ÃÀÛÇ϶ó´Â ¶æÀÔ´Ï´Ù.

3.6 ±âº» ȯ°æ º¯¼ö ¼³Á¤Çϱâ


¿ì¸®´Â Á» ´õ ÆíÇÑ ÀÛ¾÷ ȯ°æÀ» À§ÇØ bash shell¿¡¼­ »ç¿ëÇÏ´Â 2°³ÀÇ È¯°æ ¼³Á¤ È­ÀÏÀ» ¸¸µé °Ì´Ï´Ù.lfs °èÁ¤À¸·Î ·Î±×ÀÎ ÇÑ ÈÄ, ´ÙÀ½ ¸í·ÉÀ» ¼öÇàÇÏ¿© .bash_profile È­ÀÏÀ» ¸¸µå¼¼¿ä.
cat > ~/.bash_profile << "EOF"
exec env -i HOME=$HOME TERM=$TERM PS1='\u:\w\$ ' /bin/bash
EOF

ÁÖÀÇ : adduser ¸í·ÉÀ¸·Î lfs°èÁ¤À» »ý¼ºÇϸé .bash_profile È­ÀÏÀÌ ÀÚµ¿À¸·Î »ý¼ºµÉ °Ì´Ï´Ù. À§¿Í °°ÀÌ ÇØµµ º° ¹«¸®´Â ¾øÁö¸¸ ¸¸¾àÀ» À§Çؼ­ vi·Î ÆíÁýÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

ÀϹÝÀûÀ¸·Î, lfs °èÁ¤À¸·Î ·Î±×ÀÎÇϸé, /etc/profile È­ÀÏÀ» Àоî shellÀ» ÃʱâÈ­ÇÕ´Ï´Ù.( °¢Á¾ ¼ÂÆÃ ³»¿ë°ú ȯ°æ º¯¼öµéÀÌ µé¾î ÀÖ´Â) "exec env -i ... /bin/bash" ¸í·ÉÀ» ÀÌ¿ëÇϸé "HOME,TERM,PS1" ȯ°æ º¯¼ö¸¦ Á¦¿ÜÇÑ ³ª¸ÓÁö º¯¼öµéÀº ¸ðµÎ ±ú²ýÈ÷ ºñ¿î »óÅ·Π·Î±×ÀÎ ÇÏ°Ô µË´Ï´Ù. À̰ÍÀº LFS ½Ã½ºÅÛÀ» ¼³Ä¡ÇÏ´Â µ¿¾È ¸¸µé¾îÁø °¢Á¾ ȯ°æ º¯¼öµéÀÌ ÇöÀç ȯ°æ¿¡ ¸¶À½´ë·Î ¿µÇâÀ» ³¢Ä¡°Å³ª ³ªÁß¿¡¶óµµ ¾î¶² ¿µÇâÀ» ³¢Ä¡Áö ¾Ê°Ô ÇØ ÁÝ´Ï´Ù.

non-login shellÀº /etc/profile À̳ª .bash_profile ÆÄÀÏ ´ë½Å .bashrc ÆÄÀÏÀ» ÀнÀ´Ï´Ù. ÀÚ ±×·³. class="filename">.bashrcÆÄÀÏÀ» ¸¸µé¾î º¾½Ã´Ù.
cat > ~/.bashrc << "EOF"
set +h
umask 022
LFS=/mnt/lfs
LC_ALL=POSIX
PATH=/tools/bin:/bin:/usr/bin
export LFS LC_ALL PATH
EOF

ÁÖÀÇ : adduser ¸í·ÉÀ¸·Î lfs°èÁ¤À» »ý¼ºÇϸé .bashrc È­ÀÏÀÌ ÀÚµ¿À¸·Î »ý¼ºµÉ °Ì´Ï´Ù. À§¿Í °°ÀÌ ÇØµµ º° ¹«¸®´Â ¾øÁö¸¸ ¸¸¾àÀ» À§Çؼ­ vi·Î ÆíÁýÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

set +h ¸í·ÉÀº bashÀÇ hash function ±â´ÉÀ» ²¨ ÁÝ´Ï´Ù.ÀϹÝÀûÀ¸·Î hashing ±â´ÉÀº ¾ÆÁÖ À¯¿ëÇÕ´Ï´Ù. bash´Â ½ÇÇàÈ­ÀÏÀ» ã°í ½ÇÇàÇÏ´Â ½Ã°£À» ÁÙÀ̱â À§ÇØ ½ÇÇàÈ­ÀÏÀÇ full pathnameÀÌ ÀúÀåµÈ hash table ¸¦ »ç¿ëÇÕ´Ï´Ù. ±×·¯³ª ¿ì¸° LFS ½Ã½ºÅÛ ¼³Ä¡¸¦ ÇÒ ¶§, ±âÁ¸ÀÇ toolÀ» »ç¿ëÇÏ´Â ¾Æ´Ï¶ó, »õ·Î ¼³Ä¡ÇÑ(Àӽà toolµé)À» »ç¿ëÇϱ⠶§¹®¿¡ ÀÌ ±â´ÉÀº ÇÊ¿ä ¾ø½À´Ï´Ù. hashing ±â´ÉÀ» ²ô¸é, LFS ½Ã½ºÅÛÀ» ¼³Ä¡ÇÏ´Â µ¿¾È ¿ì¸®°¡ »õ·Î ¼³Ä¡ÇÑ µµ±¸µéÀ» »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù.

Umask¸¦ 022·Î ¼³Á¤ÇØ ³õÀ¸¸é »õ·Î ¸¸µé¾î Áö´Â ÆÄÀÏÀ̳ª µð·ºÅ丮´Â ±×°ÍµéÀÇ ¼ÒÀ¯ÀÚ¸¸ ¾µ ¼ö ÀÖ°í, ´Ù¸¥ »ç¿ëÀÚµéÀº Àаųª ½ÇÇุ ÇÒ ¼ö ÀÖ½À´Ï´Ù.

LFS º¯¼ö´Â ¼±ÅÃÇÑ ¸¶¿îÆ® Æ÷ÀÎÆ®·Î ÇÏ¸é µË´Ï´Ù.

LC_ALL ȯ°æ º¯¼ö´Â Áö¿ªÈ­¸¦ ¼³Á¤ÇØ ÁÖ´Â ¿ªÈ°À» ÇÕ´Ï´Ù. ÀÌ º¯¼ö¸¦ ÁöÁ¤ÇØ ÁÖ¸é, °¢Á¾ ´ÜÀ§µîÀÌ °¢ ±¹°¡¿¡ ¸Â°Ô Á¶ÀýµË´Ï´Ù. ¸¸¾à ÇöÀç »ç¿ëÇϰí ÀÖ´Â Glibc°¡ 2.2.4 ¹öÀüº¸´Ù ³·°í LC_ALL ȯ°æ º¯¼ö°¡ "POSIX"³ª "C"°¡ ¾Æ´Ï¶ó¸é ¹®Á¦°¡ »ý±æ °¡´É¼ºÀÌ Å®´Ï´Ù.(¾Æ¸¶ ±×·²ÀÏÀº ¾øÀ» °Ì´Ï´Ù. ¿äÁòÀº Glibc ¹öÀüÀÌ 2.2.4º¸´Ù ³ô½À´Ï´Ù.) LC_ALL ȯ°æ º¯¼ö¸¦ "POSIX"·Î ¼³Á¤ÇսôÙ.

/tools/binÀ» PATH¿¡ Ãß°¡ÇսôÙ.

¸¶Áö¸·À¸·Î, ´ÙÀ½ ¸í·ÉÀ» ½ÇÇàÇϸé Àӽà µµ±¸µéÀ» ¸¸µé±â À§ÇÑ È¯°æÀÌ ¿Ïº®ÇÏ°Ô ÁغñµË´Ï´Ù.
source ~/.bash_profile

3.7 Binutils-2.14 - 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.

3.7.1 BinutilsÀÇ ÀνºÅç


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

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

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

Binutils ÄÄÆÄÀÏ ÁغñÇϱâ:
cd $LFS/build/binutils-build/binutils-2.14
./configure --prefix=/tools --disable-nls

The meaning of the configure options:
  • --prefix=/tools: binutilsÇÁ·Î±×·¥µéÀ» /tools·Î ¼³Ä¡Ç϶ó´Â ¿É¼Ç.
  • --disable-nls: ´Ù±¹¾î Áö¿ø¿É¼ÇÀ» ²ö´Ù. ¿ì¸®´Â ¾ÕÀ¸·Î ÇÁ·Î±×·¥À» Á¤ÀûÀ¸·Î ÄÄÆÄÀÏÇØ¼­ »ç¿ëÇÒ °Çµ¥ À̿Ͱ°Àº ¿É¼ÇÀ» ÄÑµÎ¸é ³ªÁß¿¡ ¹®Á¦°¡ »ý±æ¼ö À־ »ç¿ëÇÏÁö ¾Ê´Â´Ù.

À̾ ÄÄÆÄÀÏÀ» °è¼Ó ÇսôÙ.:
make configure-host
make LDFLAGS="-all-static"

Make ÆÄ¶ó¸ÞÅÍÀÇ ÀǹÌ:
  • configure-host: Á¤ÀûÀ¸·Î ÄÄÆÄÀÏÇÒ ¶§ ÀÌ ¿É¼Ç¾øÀÌ´Â ½ÇÆÐÇÒ °ÍÀÔ´Ï´Ù. ±×·¯¹Ç·Î ¿ì¸®´Â ¹®Á¦¸¦ ÇØ°áÇϱâ À§ÇØ ÀÌ ¿É¼ÇÀ» »ç¿ëÇØ¾ß ÇÕ´Ï´Ù.
  • LDFLAGS="-all-static": ¸ðµç binutils ÇÁ·Î±×·¥µéÀº Á¤ÀûÀ¸·Î ÄÄÆÄÀÏÇ϶ó´Â ¿É¼ÇÀÔ´Ï´Ù.

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

ÆÐŰÁö ÀνºÅçÇϱâ:
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À» ÂüÁ¶Çϼ¼¿ä.

3.8 GCC-3.3.2 - Pass 1 ¼³Ä¡


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

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

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

3.8.1 GCC ¼³Ä¡


C++ Àº ÇÊ¿äÇÏÁö ¾ÊÀ¸¹Ç·Î GCC-core tarballÀÇ ¾ÐÃàÀ» Ç®¾î ÁÖ¼¼¿ä.

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

GCC ¹®¼­¿¡¼­´Â GCC¸¦ ¼³Ä¡ÇÒ¶§ /tools ¹Û¿¡¼­ ¼³Ä¡Çϴ°ÍÀ» ±ÇÀåÇϰí ÀÖ½À´Ï´Ù.
mkdir -p $LFS/build/gcc-build
cd $LFS/build/gcc-build
tar xvf /mnt/source/gcc-3.3.2.tar.gz -C ./ 
GCC¸¦ ÄÄÆÄÀÏ Çϱâ À§ÇØ ¸ÕÀú ÇØ¾ß ÇÏ´Â ÀÛ¾÷
cd $LFS/build/gcc-build/gcc-3.3.2
./configure --prefix=/tools \
    --with-local-prefix=/tools \
    --disable-nls --enable-shared \
    --enable-languages=c

configure ¿É¼ÇÀÇ ÀǹÌ
  • --with-local-prefix=/tools: gcc include path°¡ /usr/local/include·Î µÇ¾î ÀÖ´Â °ÍÀ» /tools/·Î ¹Ù²Ù¾î ÁÖ±â À§¼­ÀÔ´Ï´Ù. ÀÌ ¿É¼ÇÀÌ ²À ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸ ¿ì¸®´Â È£½ºÆ® ½Ã½ºÅÛ¿¡ ¿µÇâÀ» ÃÖ¼ÒÈ­ Çϱ⸦ ¿øÇϱ⠶§¹®¿¡ ÀÌ ¿É¼ÇÀ» »ç¿ëÇÕ´Ï´Ù.
  • --enable-shared: óÀ½¿¡ º¸¸é ÀÌ ¿É¼Ç¿¡ ¹«¾ùÀ» ÇÏ´ÂÁö È®½ÇÈ÷ ¸ð¸¦ °ÍÀÌ´Ù. ±×·¯³ª À̰ÍÀ» »ç¿ëÇϸé libgcc_s.so.1, libgcc_eh.a ¿Í ¿¬°áÀÌ µÉ °ÍÀÔ´Ï´Ù. ±×¸®°í, ÀÌÈÄ¿¡ ÄÄÆÄÀÏÇÒ Glibc °¡ ¿Ã¹Ù¸£°Ô ÄÄÆÄÀÏ µÇ¹Ç·Î ÇÊ¿äÇÕ´Ï´Ù. Gcc ¹ÙÀ̳ʸ®µéÀº ÄÄÆÄÀÏÇÒ ¶§ BOOT_LDFLAGS Ç÷¡±×¿¡ -static °ªÀ» ÁֹǷνá Á¤ÀûÀ¸·Î ¸µÅ©µÉ °Ì´Ï´Ù.
  • --enable-languages=c: ÀÌ ¿É¼ÇÀº ¼³Ä¡½Ã¿¡ C ÄÄÆÄÀÏ·¯¸¦ »ç¿ëÇϵµ·Ï ÁöÁ¤ÇÕ´Ï´Ù. ÀÌ ¿É¼ÇÀº GCC Ÿ¸£º¼À» ´Ù¿î·Îµå ¹Þ¾Æ¼­ ¼³Ä¡ÇÒ¶§¸¸ »ç¿ëÇÕ´Ï´Ù.

ÆÐŰÁö ÄÄÆÄÀÏÇϱâ.
make BOOT_LDFLAGS="-static" bootstrap

makeÆÄ¶ó¹ÌÅÍÀÇ ÀǹÌ
  • BOOT_LDFLAGS="-static": GCC¸¦ Á¤ÀûÀ¸·Î ÄÄÆÄÀÏ ÇØÁØ´Ù.
  • bootstrap: This target doesn't just compile GCC, but compiles it several times. It uses the programs compiled in a first round to compile itself a second time, and then again a third time. It then compares these second and third compiles to make sure it can reproduce itself flawlessly, which most probably means that it was compiled correctly.

ÄÄÆÄÀÏÀº ³¡³µ½À´Ï´Ù. 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 
ÀÌ ÆÐŰÁö¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ ³»¿ëµéÀº the Section called Contents of GCC in Chapter 6¿¡¼­ ãÀ»¼ö ÀÖ½À´Ï´Ù.

3.9 Linux-2.4.24 Çì´õµé ¼³Ä¡


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

3.10 kernel Çì´õ ¼³Ä¡


ÀϺΠÆÑŰÁö´Â Ä¿³Î Çì´õ ÆÄÀÏÀ» ÂüÁ¶ÇÕ´Ï´Ù. ÀÚ, ÀÌÁ¦ ¿ì¸° Ä¿³ÎÀÇ ¾ÐÃàÀ» Ç®°í, ¼³Ä¡Çϰí, ÇÊ¿äÇÑ ÆÄÀϵéÀ» gcc°¡ ÂüÁ¶ÇÒ À§Ä¡¿¡ º¹»çÇÒ°Ì´Ï´Ù.

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

version.h ÆÄÀÏ »ý¼ºÇϱâ
make include/linux/version.h

include/asmÀÇ ½Éº¼¸¯¸µÅ© ¸¸µé±â(LFS¸¦ ¼³Ä¡ÇÒ pcÀÇ Á¾·ù¿¡ ¸Â´Â - ¿¹¸¦ µé¾î intelÀº i386, power pc´Â power pc·Î..)
make symlinks

½Ã½ºÅÛ Á¾·ù¿¡ ¸Â´Â Çì´õÆÄÀÏ ¼³Ä¡Çϱâ.
mkdir /tools/include/asm
cp include/asm/* /tools/include/asm
cp -R include/asm-generic /tools/include

cross-platform Çì´õÆÄÀÏ ¼³Ä¡Çϱâ.
cp -R include/linux /tools/include
ÀϺΠĿ³Î Çì´õÆÄÀÏÀº autoconf.h Çì´õÆÄÀÏÀ» »ç¿ëÇÕ´Ï´Ù. ¾ÆÁ÷ Ä¿³ÎÀ» ±¸¼ºÇÏÁö ¾Ê¾Ò±â ¶§¹®¿¡, ÄÄÆÄÀÏÀÇ ½ÇÆÐ¸¦ ÇÇÇϱâ À§ÇÑ ÆÄÀÏÀ» ¸¸µé Çʿ䰡 ÀÖ½À´Ï´Ù. ºñ¾îÀÖ´Â autoconf.h ÆÄÀÏÀ» ¸¸µé¾î ÁÖ¼¼¿ä.
touch /tools/include/linux/autoconf.h

3.11 Glibc-2.3.3 ¼³Ä¡

3.11.1 Glibc ¼³Ä¡

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

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

Glibc¹®¼­´Â Àü¿ëµð·ºÅ丮¾È¿¡ ¼Ò½ºµð·ºÅ丮 ¹Û¿¡¼­ Glibc¸¦ ºôµåÇϴ°ÍÀ» ÃßõÇÕ´Ï´Ù:
mkdir -p $LFS/build/glibc_build
cd $LFS/build/glibc_build
tar jxvf /mnt/source/glibc-2.3.3-20031202.tar.bz2 -C ./
Glibc ÄÄÆÄÀÏ Áغñ:
cd $LFS/build/glibc_build
./glibc-2.3.3-20031202/configure --prefix=/tools \
    --disable-profile --enable-add-ons=linuxthreads \
    --with-binutils=/tools/bin --with-headers=/tools/include \
    --without-gd --without-cvs

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

¼³Á¤ ¿É¼ÇÀÇ ÀǹÌ:
  • --disable-profile: ÇÁ·ÎÆÄÀÏ Á¤º¸ ¶óÀ̺귯¸®µéÀÇ ºôµùÀ» ºñȰ¼ºÈ­ÇÕ´Ï´Ù. ´ç½ÅÀÌ ÇÁ·ÎÆÄÀÏÀ» ¸¸µé °èȹÀ̶ó¸é ÀÌ ¿É¼ÇÀ» »©¼¼¿ä.
  • --enable-add-ons=linuxthreads: threading¶óÀ̺귯¸®Ã³·³ Linuxthreads add-onÀ» »ç¿ëÀ» ÇÑ´Ù°í Glibc¿¡°Ô ¾Ë·ÁÁÝ´Ï´Ù.
  • --with-binutils=/tools/bin and --with-headers=/tools/include: ÀÌ ºÎºÐÀº Àý´ë °Çµå¸®Áö ¸»°í ±×´ë·Î Çϼ¼¿ä. ÀÌ ºÎºÐÀ» °Çµå¸®¸é ÄÄÆÄÀÏ ÀÚü°¡ ¾È µÇ°Å³ª µÈ´Ù ÇÏ´õ¶óµµ ³ªÁß¿¡ 100% ¹®Á¦°¡ ¹ß»ýÇÕ´Ï´Ù.
  • --without-gd: ÀÌ ½ºÀ§Ä¡´Â È£½ºÆ® ¶óÀ̺귯¸®µé(libgd, libpng, libz, µîµî)À» ÇâÇØ ¸µÅ©µÇ´Â ÀÌ»óÇÑ °ÍµéÀÇ memusagestatÇÁ ·Î±×·¥ÀÌ ºôµåµÇÁö ¾Êµµ·Ï ÇÕ´Ï´Ù.
  • --without-cvs: À̰ÍÀº CVS snapshotÀ» »ç¿ëÇÒ¶§ ÀÚµ¿À¸·Î CVSÀ§ÇèÀ» ½ÃµµÇϴ°ÍÀ¸·ÎºÎÅÍ MakefileµéÀ» ¸·´Â°ÍÀ» ÀǹÌÇÕ´Ï´Ù.(±×¸® ½Å°æ¾µ ÇÊ¿ä´Â ¾ø¾î¿ä)

ÀÌ ÀåÀ» Çϸ鼭 º¸°ÔµÇ´Â warningµé:
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µéÀ» ½ÇÇàÇÒ°ÍÀ» ±ÇÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à ´ç½ÅÀÌ Glibc test suite¸¦ ¾î¶² ´Ù¸¥ ¹æ¹ýÀ¸·Î ¾ÆÁ÷±îÁö ½ÇÇàÇÏ°í ½Í´Ù¸é, ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇϼ¼¿ä.
make check

Glibc test suite´Â ƯÀ¯ÇÑ Ä¿³ÎÀΠȣ½ºÆ® ½Ã½ºÅÛÀÇ ¾î¶² ÇÔ¼öµé°ú ³ôÀº ÀÇÁ¸¼ºÀ» °¡Áý´Ï´Ù. ºÎ°¡ÀûÀ¸·Î, ÀÌ ÀåÀÇ ¾î¶² Å×½ºÆ®µéÀº È£½ºÆ® ½Ã½ºÅÛ¿¡ ÀϾ´Â ȯ°æµé ¶Ç´Â ÇöÁ¸ÇÏ´Â Åøµé¿¡ ¾Ç¿µÇâÀ» ¹ÌÄ¥ ¼ö ÀÖ½À´Ï´Ù. ¹°·Ð, 6ÀåÀÇ chrootȯ°æ¾È¿¡¼­ Glibc test suite¸¦ ½ÇÇàÇÒ¶§´Â ¹®Á¦°¡ µÇÁö ¾Ê½À´Ï´Ù. º¸Åë, Glibc test suite´Â Ç×»ó ¹®Á¦¾øÀÌ ³Ñ¾î°©´Ï´Ù. ÇÏÁö¸¸, À§¿¡ ¾ð±ÞÇÑ´ë·Î ¾î¶² ¹®Á¦µéÀº ¾î¶² »óȲ¿¡¼­ ¹®Á¦¸¦ ÀÏÀ¸Å°´Â °ÍÀ» ÇÇÇÒ¼ö ¾ø½À´Ï´Ù. ´ÙÀ½Àº ÀÌ¹Ì ¾Ë·ÁÁ® ÀÖ´Â ´ëÇ¥ÀûÀÎ ¹®Á¦Á¡µéÀÔ´Ï´Ù.:
  • mathÅ×½ºÆ®´Â »õ Á¤Ç° IntelÀ̳ª ¹ÏÀ»¸¸ÇÑ AMD¿¡ °üÇÑ CPU°¡ ¾Æ´Ñ ½Ã½ºÅÛ¿¡¼­ ½ÇÇàµÉ¶§ ¿¡·¯ ¹ß»ýÇÔ.
  • gettext´Â °¡²û È£½ºÆ® ½Ã½ºÅÛ¹®Á¦·Î ÀÎÇØ ¿¡·¯°¡ ¹ß»ýÇÔ.. ¾ÆÁ÷±îÁö ¿Ö ±×·±Áö ¸ð¸¨´Ï´Ù.
  • atimeÅ×½ºÆ®´Â noatimeÀ¸·Î ¸¶¿îÆ®µÈ LFSÆÄƼ¼ÇÀ̳ª ´Ù¸¥ ÆÄÀÏ ½Ã½ºÅÛ ¶§¹®¿¡ ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. .
  • shmÅ×½ºÆ®´Â È£½ºÆ® ½Ã½ºÅÛÀÌ devfsÆÄÀÏ ½Ã½ºÅÛ¿¡¼­ ½ÇÇàÇÒ¶§ ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù. ÇÏÁö¸¸ Ä¿³Î¿¡¼­ tmpfs¸¦ Áö¿øÇؼ­ /dev/shm¿¡ ¸¶¿îÆ®µÈ tmpfsÆÄÀÏ ½Ã½ºÅÛÀº ±¦Âú½À´Ï´Ù.
  • ¿¾³¯ ´À¸° Çϵå¿þ¾î¿¡¼­ ½ÇÇàÇÒ¶§, ¾î¶² Å×½ºÆ®µéÀº Å×½ºÆ® ŸÀӾƿôÀ¸·Î ¿¡·¯°¡ ¹ß»ýÇÕ´Ï´Ù.

À̹ø¿¡, ÀÌ Àå¿¡¼­ Glibc test suiteÀÇ ½ÇÆÐµéÀ» ¸¹ÀÌ º¸°Ô µÉ°ÍÀ» µÎ·Á¿ö ÇÏÁö ¸¶¼¼¿ä. 6Àå Glibc´Â ±×³É ³Ñ±â´Â ¼öÁØÀ¸·Î ÇÒ°ÍÀÔ´Ï´Ù. ÇÏÁö¸¸ 6Àå¿¡¼­µµ ¾î¶² ½ÇÆÐµéÀº ¹ß»ýÇÒ¼ö ÀÖ´Ù´Â °ÍÀº Ç×»ó ¿°µÎ¿¡ µÎ¼¼¿ä. -- ¿¹¸¦µé¾î mathÅ×½ºÆ®µé. ½ÇÆÐ¸¦ °æÇèÇÑ´Ù¸é make check¸¦ Çϴ°ÍÀ» ÀØÁö¸¶¼¼¿ä. ´ç½ÅÀº make -k checkÀÇ ÀÌÇàÀ¸·Î½á stop-startÂ÷·Ê¸¦ ¸í·ÉÇÒ¼ö ÀÖ½À´Ï´Ù. ±×·¸°Ô ÇÑ´Ù¸é ³ªÁß¿¡ ¸ðµç ½ÇÆÐ Ƚ¼ö¿Í ¼³¸íµé, ·Î±× ÆÄÀÏÀ» »ìÆì º¼ ¼ö ÀÖ½À´Ï´Ù.

Glibc¸¦ ¼³Ä¡ÇÒ ¶§, /tools/etc/ld.so.confÀÌ ¾ø´Ù°í Çϼҿ¬ ÇÒ°ÍÀÔ´Ï´Ù. À̰ÍÀº ¾µµ¥¾ø´Â ¸Þ¼¼ÁöÀÔ´Ï´Ù. ¼º°¡½Å ÀÛÀº warningÀÌ ¹ß»ýÇÏÁö ¾Êµµ·Ï ¾Æ·¡¿Í °°ÀÌ ÇսôÙ:
mkdir /tools/etc
touch /tools/etc/ld.so.conf

ÀÌÁ¦ ÆÐŰÁö ¼³Ä¡:
make install

´Ù¸¥ ³ª¶óµé°ú ¹®È­µéÀº ±×µéÀÌ ´ëÈ­ÇϱâÀ§ÇÑ ¿©·¯°¡Áö dz½ÀÀ» °¡Áý´Ï´Ù. ³¯Â¥¿Í ½Ã°£ÀÇ Ç¥Çö Çü½Ä ó·³, ¸Å¿ì °£´ÜÇÑ °Íµé·ÎºÎÅÍ ÀÌ Ç³½ÀµéÀÇ ¹üÀ§´Â ¸»ÇÏ´Â ¾ð¾îó·³ ¸Å¿ì º¹ÀâÇÑ °Íµé±îÁö ÀÖ½À´Ï´Ù. GNUÇÁ·Î±×·¥ÀÇ "internationalization"´Â localesÀÇ Àǹ̷μ­ ÀÛ¾÷ÇÕ´Ï´Ù.

¾Æ·¡¿Í °°ÀÌ ÇÏ¸é ¸ðµç ·ÎÄÉÀϵéÀÌ ¼³Ä¡°¡ µË´Ï´Ù.(´ë½Å ½Ã°£ÀÌ ¿À·¡ °É¸³´Ï´Ù.)
make localedata/install-locales

´ç½ÅÀÌ ÇÊ¿ä·Î ÇÏ´Â ·ÎÄÉÀϵ鸸À» ¼³Ä¡ÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ Çϼ¼¿ä. À̰ÍÀº localedef¸í ·ÉÀ» »ç¿ëÇÏ¸é µË´Ï´Ù. À̰Ϳ¡ ´ëÇÑ Á¤º¸´Â Glibc¼Ò½º¿¡ INSTALLÆÄ ÀÏ¿¡¼­ ãÀ»¼ö ÀÖ´Ù. ÇÏÁö¸¸, GCC·ÎºÎÅÍ ±×³É Áö³ªÄ¡´Â libstdc++Å×½ºÆ®µéÀº ¹Ì·¡ ÆÐŰÁöµéÀÇ Å×½ºÆ®µéÀ» À§ÇÑ Æ¯º°ÇÑ ¸¹Àº localeµéÀÌ ÀÖ´Ù. À§¿¡ install-locales¸¦ Á¦¿ÜÇϰí, ¼º°øÇϱâÀ§ÇÑ ÃÖ¼ÒÇÑÀÇ ÇÊ¿äÇÑ localeµéÀ» ¼³Ä¡ÇÒ°ÍÀÌ´Ù, ¾Æ·¡ ³»¿ëÀ» µû¶óÇ϶ó:
mkdir -p /tools/lib/locale
localedef -i de_DE -f ISO-8859-1 de_DE
localedef -i de_DE@euro -f ISO-8859-15 de_DE@euro
localedef -i en_HK -f ISO-8859-1 en_HK
localedef -i en_PH -f ISO-8859-1 en_PH
localedef -i en_US -f ISO-8859-1 en_US
localedef -i es_MX -f ISO-8859-1 es_MX
localedef -i fr_FR -f ISO-8859-1 fr_FR
localedef -i fr_FR@euro -f ISO-8859-15 fr_FR@euro
localedef -i it_IT -f ISO-8859-1 it_IT
localedef -i ja_JP -f EUC-JP ja_JP

´õ ÀÚ¼¼ÇÑ ³»¿ëÀº the Section called Contents of Glibc in Chapter 6¿¡¼­ ãÀ» ¼ö ÀÖ½À´Ï´Ù.

3.12 "Locking in" Glibc


Áö±Ý±îÁö Àӽà C ¶óÀ̺귯¸®µéÀ» ¼³Ä¡Çß°í, ÀÌ ÀåÀÇ ³ª¸ÓÁö ºÎºÐ¿¡¼­ ¼³Ä¡ÇÒ ¸ðµç µµ±¸µéÀº ÀÌ C ¶óÀ̺귯¸®¿Í »ó°ü¾øÀÌ ÄÄÆÄÀÏÇÒ °ÍÀÔ´Ï´Ù. ±×·¯±âÀ§Çؼ­, ¿ì¸®´Â ¸µÄ¿¿Í ÄÄÆÄÀÏ·¯ ¼³Á¤ÆÄÀÏÀ» º¯°æ½ÃÄÑ¾ß ÇÕ´Ï´Ù.

¿ì¼± binutils-build µð·ºÅ丮 ¾È¿¡¼­ ´ÙÀ½°ú °°Àº ¸í·ÉÀ» ¼öÇàÇØ¼­ ¶óÀ̺귯¸® µ¶¸³ÀûÀÎ ¸µÄ¿¸¦ ¼³Ä¡Çϼ¼¿ä.
make -C ld install

¸µÄ¿´Â binutils ¼³Ä¡ÀÇ first pass°¡ ³¡³¯¶§ ¿ø»óº¹±Í µË´Ï´Ù. ¿©±â¼­ ¿äÁ¡Àº ¾ÕÀ¸·Î ¾î¶²°Íµµ /tools/lib¿¡ ÀÖ´Â ¶óÀ̺귯¸®¿Í ¸µÅ©°¡ µÇÁö ¾Ê´Â´Ù´Â °ÍÀÔ´Ï´Ù

¾Ë¸²: ù ´Ü°è(first pass)¿¡¼­ Binutils ¼Ò½º¿Í build µð·ºÅ丮¸¦ À¯ÁöÇϱâÀ§ÇÑ »ç¼ÒÇÑ °æ°íµéÀ» ³õÃÆ°Å³ª ¶Ç´Â ¿ì¿¬È÷ ±×°ÍµéÀÌ »èÁ¦µÇ¾ú´Ù°Å³ª ÀÐÀ» ¼ö ¾ø´Ù°í ÇØµµ °áÄÚ °ÆÁ¤ÇÏÁö ¸¶¼¼¿ä ±×°ÍÀº »ç¶óÁø °ÍÀÌ ¾Æ´Õ´Ï´Ù. À̰ÍÀº ÀÌ»óÀûÀÎ(ÁÁÀº Çö»ó) °ÍÀº ¾Æ´ÏÁö¸¸, ±×·¸´Ù°í Áß¿äÇÑ ¹®Á¦µµ ¾Æ´Õ´Ï´Ù. Binutils ¼³Ä¡ÀÇ ´ÙÀ½ ´Ü°è(second pass)¿¡¼­ ¶È°°Àº Çö»óÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù.

ÀÚ, ÀÌÁ¦ ¸µÄ¿(adjusted linker)°¡ ¼³Ä¡µÇ¾úÀ¸´Ï±î, buildµÈ binutils°ú ¼Ò½º µð·ºÅ丮¸¦ Áö¿ì¼¼¿ä.

´ÙÀ½´Ü°è´Â GCC°¡ ´ÙÀ̳ª¹Í ¸µÄ¿¸¦ °¡¸®Å°°Ô Çϱâ À§ÇØ GCC ¼³Á¤ÆÄÀÏÀ» °íÄ¡´Â °ÍÀÔ´Ï´Ù. ´ÙÀ½°ú °°ÀÌ °£´ÜÇÑ sed ¸í·ÉÀ» ½ÇÇàÇϸé GCC ¼³Á¤ÆÄÀÏÀÌ °íÃÄÁú °ÍÀÔ´Ï´Ù.
SPECFILE=/tools/lib/gcc-lib/*/*/specs &
sed -e 's@ /lib/ld-linux.so.2@ /tools/lib/ld-linux.so.2@g' \
    $SPECFILE > tempspecfile &
mv -f tempspecfile $SPECFILE &
unset SPECFILE

¿ì¸®´Â ¸ðµç°ÍÀ» ÀÏÀÏÀÌ ¼ÕÀ¸·Î ÀÔ·ÂÇÏ´Â °Í(try-and-type) º¸´Ù´Â ºÙ¿© ³Ö±â(cut-and-paste) ÇÏ´Â °ÍÀ» ÃßõÇÕ´Ï´Ù.

Important: ´ÙÀ̳ª¹Í ¸µÄ¿ÀÇ À̸§ÀÌ ld-linux.so.2¿Í´Â ´Ù¸¥ Ç÷§Æû¿¡¼­ ÀÛ¾÷¾÷ÁßÀ̶ó¸é, ld-linux.so.2¶ó´Â À̸§ ´ë½Å¿¡ Ç÷§ÆûÀÇ ´ÙÀ̳ª¹Í ¸µÄ¿ À̸§À¸·Î ¹Ù²Ù¾î Áà¾ß ÇÑ´Ù.´õ ¸¹Àº Á¤º¸°¡ ÇÊ¿äÇÏ´Ù¸é Toolchain technical notes¸¦ ÂüÁ¶Çϱ⠹ٶõ´Ù.

¸¶Áö¸·À¸·Î, È£½ºÆ® ½Ã½ºÅÛÀÇ GCC's private include dir¿¡ °¢Á¾ include file µéÀÌ µé¾î ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù. GCC build °úÁ¤ Áß¿¡ GCC "fixinclude" process ºÎºÐÀÌ Àִµ¥, ±× ºÎºÐÀÌ ½ÇÇàµÉ¶§ À§¿Í °°Àº ÀÏÀÌ ÀϾ ¼ö ÀÖ½À´Ï´Ù. ¾ÕÀ¸·Î ¿ì¸®´Â ÀÌ Àå¿¡¼­ ´õ ÀÚ¼¼È÷ ¼³¸íÇÒ °ÍÀÔ´Ï´Ù. ÀÌÁ¦, ¾Æ·¡¿Í °°ÀÌ ½ÇÇàÇÔÀ¸·Î½á GCC's private include dir¿¡ include file µéÀÌ µé¾î°¡´Â °æ¿ì¸¦ ¹æÁöÇÒ ¼ö ÀÖ½À´Ï´Ù.
rm -f /tools/lib/gcc-lib/*/*/include/{pthread.h,bits/sigthread.h}

°æ°í

»õ·Î¿î 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 Çϴµ¥ »ç¿ëµÉ °ÍÀÌ´Ù.


3.13 Expect-5.40.0 ¼³Ä¡


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

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

Expect (5.40.0) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: http://expect.nist.gov/src/

the Expect Spawn Patch¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®: http://www.linuxfromscratch.org/patches/lfs/cvs/expect-5.40.0-spawn.patch

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

3.13.1 Expect ¼³Ä¡


patch Àû¿ëÇϱâ:

patch -Np1 -i ../expect-5.40.0-spawn.patch


ÀÌ ÆÐÄ¡´Â GCC test suite¸¦ ½ÇÇàÇÏ´Â µµÁß¿¡ bogus failures°¡ ¹ß»ýÇÏ´Â ¹®Á¦¸¦ ÇØ°á ÇØ ÁÝ´Ï´Ù.

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

configure optionsÀÇ ÀǹÌ:
  • --with-tcl=/tools/lib: configure script°¡ TclÀÌ ¼³Ä¡µÈ Àӽõð·ºÅ丮ÀÇ À§Ä¡¸¦ ãÀ» ¼ö ÀÖ°Ô ÁöÁ¤ÇØ ÁÝ´Ï´Ù.¿ì¸®´Â LFS½Ã½ºÅÛÀ» »õ·Î ±¸ÃàÇϰí Àֱ⶧¹®¿¡ ÀÌ¹Ì È£½ºÆ®½ÃÅÛ¿¡ ¼³Ä¡µÇ¾î ÀÖ´Â (¹èÆ÷ÆÇÀ¸·Î ¼³Ä¡ÇصÐ) TclÀ» ã´Â°ÍÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù.
  • --with-x=no: configure script°¡ TK(the Tcl GUI component)³ª X Window System library¸¦ È£½ºÆ®½Ã½ºÅÛ(¹èÆ÷ÆÇÀ¸·Î ¼³Ä¡µÈ)¿¡¼­ ãÁö ¾Êµµ·Ï ÇØÁÖ´Â ¿ªÈ°À» ÇÕ´Ï´Ù.

ÁÖÀÇ : ƯÀÌÇÑ °æ¿ìÀ̱ä ÇÏÁö¸¸, Expect°¡ Tcl Çì´õ ÆÄÀÏÀ» ã¾Æ ³»Áö ¸øÇÏ´Â °æ¿ì°¡ ÀÖ½À´Ï´Ù. ±×·² °æ¿ì¿¡´Â ./configure....ÁÙ ¸¶Áö¸·¿¡ --with-tclinclude=/mnt/lfs/build/tcl_build/tcl8.4.5/generic(ÀÌ°Ç Á¦°¡ tclÀÇ ¼Ò½º¸¦ Ç®¾î ³õÀº °æ·ÎÀÔ´Ï´Ù.) °°Àº ½ÄÀ¸·Î ÇØ¼­ 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 ¼Ò½º µð·ºÅ丮¸¦ »èÁ¦Çصµ µË´Ï´Ù.

3.13.2 Expect ³»¿ë


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

¼³Ä¡µÈ ¶óÀ̺귯¸®: libexpect5.39.a

3.13.3 ¿ä¾à


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

3.14 DejaGnu-1.4.4 ¼³Ä¡


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

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

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

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

3.14.1 DejaGnu ¼³Ä¡


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

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

3.14.2 DejaGnu ³»¿ë


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

3.14.3 ¿ä¾à


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

3.15 GCC-3.3.2 - Pass 2 ¼³Ä¡


Approximate build time: 11.0 SBU Required disk space: 274 MB

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



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

3.15.1 GCCÀÇ Àç ÀνºÅç


GCC ¿Í Binutils À» Å×½ºÆ® Çϱâ À§ÇÑ tool Àº ÀÌ¹Ì ÀνºÅç µÇ¾î ÀÖ½À´Ï´Ù. (Tcl, Expect ±×¸®°í DejaGnu). ¿ì¸®´Â °è¼ÓÇØ¼­ GCC ¿Í Binutils ¸¦ rebuild ÇÒ ¼ö ÀÖ°í, »õ·Î¿î Glibc ¿¡ ´ëºñÇÏ¿© ±×µéÀ» ¸µÅ©ÇÒ ¼ö ÀÖ°í, ±×µéÀ» ÀûÀýÈ÷ Å×½ºÆ® ÇÒ ¼ö ÀÖ½À´Ï´Ù (¸¸¾à ÀÌ Àå¿¡¼­ À̵éÀÇ Å×½ºÆ®¸¦ ½ÇÇàÇÑ´Ù¸é). ±×·¯³ª ÇѰ¡Áö ÁÖÀÇÇØ¾ß ÇÒ Á¡Àº À̵éÀÇ Å×½ºÆ®´Â ¾Æ¸¶µµ ´ç½ÅÀÇ È£½ºÆ®ÀÇ ¹èÆ÷ÆÇÀÌ Á¦°øÇÏ´Â °¡»ó Å͹̳Î(PTYs)ÀÇ ½ÇÇà¿¡ ÀÇÁ¸ÀûÀÏ °ÍÀ̶ó´Â Á¡ÀÌ´Ù. ¿äÁòÀº, PTYs ´Âdevpts ÆÄÀÏ ½Ã½ºÅÛÀ» »ç¿ëÇÏ´Â °ÍÀÌ °¡Àå ÀϹÝÀûÀÎ °æ¿ìÀÔ´Ï´Ù. ¸¸¾à ´ç½ÅÀÇ È£½ºÆ® ½Ã½ºÅÛÀÌ °£´ÜÇÑ Å×½ºÆ®¸¦ ½ÇÇàÇÒ ¼ö ÀÖ´Â »óÅ·Π¼Â¾÷µÇ¾î ÀÖ´Ù¸é ´ç½ÅÀº ½Å¼ÓÈ÷ È®ÀÎÇÒ¼ö ÀÖÀ» °ÍÀÌ´Ù:
expect -c "spawn ls"

¸¸¾à ´ç½ÅÀÌ ¾Æ·¡ ¸Þ¼¼Áö¸¦ ¹Þ¾Ò´Ù¸é:
The system has no more ptys.  Ask your system administrator to create more.
´ç½ÅÀÇ host distribution Àº ÀûÀýÇÑ PTY ÀÇ µ¿ÀÛÀ» À§ÇÑ ¼Â¾÷ÀÌ µÇ¾î ÀÖÁö ¾Ê´Ù´Â ¶æÀÔ´Ï´Ù. ÀÌ °æ¿ì¿¡ ´ç½ÅÀÌ ÇØ°áÃ¥À» ãÀ» ¶§ ±îÁö GCC ¿Í Binutils ¸¦ Å×½ºÆ® Çϱâ À§ÇØ ÇÒ ¼ö ÀÖ´Â °ÍÀº ¾ø½À´Ï´Ù. ´ç½ÅÀº PTYs µ¿ÀÛ¿¡ °üÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Â LFS Wiki »çÀÌÆ® http://wiki.linuxfromscratch.org/¿¡ ¼­ Âü°íÇÒ ¼ö ÀÖ´Ù.

À̹ø¿¡ ¿ì¸®´Â C ¿Í C++ ÄÄÆÄÀÏ·¯µéÀ» build ÇÒ °ÍÀ̸ç, µû¶ó¼­ ´ç½ÅÀº ¼¼°¡Áö(-core, -g++, °ú -testsuite)°¡ Æ÷ÇÔµÈ GCC tarball À» °°Àº ÀÛ¾÷ µð·ºÅ丮¿¡ unpack ÇØ¾ß ÇÒ °ÍÀÌ´Ù. ±×µéÀº gcc-3.3.2/ ÀÇ subdirectory ¾È¿¡ µé¾î°¡ ÀÖÀ» °ÍÀÌ´Ù.(gcc-3.3.2.tar.gz¸¦ Ç® °æ¿ì ±× ¾È¿¡ ÇÊ¿äÇÑ ¸ðµç ³»¿ëÀÌ ´Ù µé¾î ÀÖ½À´Ï´Ù.)

ÆÐÄ¡ Çϱâ:
patch -Np1 -i ../gcc-3.3.3-no_fixincludes-1.patch
patch -Np1 -i ../gcc-3.3.3-specs-1.patch

ù¹øÂ° ÆÐÄ¡´Â GCC "fixincludes" ½ºÅ©¸³Æ®¸¦ ¹«·ÂÇÏ°Ô ÇÕ´Ï´Ù. ¿ì¸®´Â À̰ÍÀ» Àü¿¡ °£´ÜÈ÷ ¾ð±Þ Çß½À´Ï´Ù, ±×·¯³ª fixinclude process ÀÇ ´õ »ó¼¼ÇÑ ¼³¸íÀº ¿©±â¿¡ Àß ³ª¿Í ÀÖ½À´Ï´Ù. ¾Æ·¡ÀÇ ÀϹÝÀûÀÎ »óȲ¿¡¼­, GCC fixincludes ½ºÅ©¸³Æ®´Â °íÁ¤µÉ Çʿ䰡 ÀÖ´Â Çì´õ ÆÄÀϵéÀ» ´ç½ÅÀÇ ½Ã½ºÅÛ¿¡¼­ °Ë»çÇÑ´Ù. ±×°ÍÀº ´ç½ÅÀÇ host ½Ã½ºÅÛ¿¡¼­ °íÁ¤µÈ Çʿ䰡 ÀÖ´Â ¾à°£ÀÇ Glibc Çì´õ ÆÄÀÏÀ» ãÀ» °ÍÀ̰í, ±×µéÀ» °íÁ¤½Ã۰í, private ¸¦ Æ÷ÇÔÇÑ GCC µð·ºÅ丮 ¾È¿¡ ±×µéÀ» µÑ °ÍÀÌ´Ù. ±×¸®°í, 6Àå ÈĹݺο¡¼­, ¿ì¸®°¡ »õ·Î¿î Glibc ¸¦ ÀνºÅçÇÑ ÈÄ¿¡, ÀÌ private include directory ´Â system include directory Àü¿¡ ã¾ÆÁú °ÍÀ̸ç, host ½Ã½ºÅÛÀ¸·ÎºÎÅÍ °íÁ¤µÈ Çì´õµéÀ» ã¾Æ GCC¿¡¼­ °áresulting in GCC finding the fixed headers from the host system, which would most likely not match the Glibc version actually used for the LFS system.

¸¶Áö¸· ÆÐÄ¡´Â µ¿Àû ¸µÄ¿ÀÇ GCC ÀÇ ±âº» À§Ä¡¸¦ ¹Ù²Û´Ù (ÀϹÝÀûÀ¸·Î ld-linux.so.2). ±×°ÍÀº ¶ÇÇÑ GCC ÀÇ include search path ·ÎºÎÅÍ /usr/include ¸¦ Á¦°ÅÇÑ´Ù. Patching now rather than adjusting the specs file after installation ensures that our new dynamic linker gets used during the actual build of GCC. That is, all the final (and temporary) binaries created during the build will link against the new Glibc.

Áß¿äÁ¡: The above patches are critical in ensuring a successful overall build. ±×µéÀ» Àû¿ë½ÃŰ´Â °ÍÀ» ÀØÁö¸¶¶ó.

¼Ò½º¸¦ Ç® µð·ºÅ丮¸¦ ¸¸µå¼¼¿ä.
mkdir -p $LFS/build/gcc-build
cd $LFS/build/gcc-build
tar zxvf /mnt/source/gcc-3.3.2.tar.gz -C ./
GCC ¸¦ build ÇϱâÀü¿¡, ±âº»ÀûÀÎ optimization flag ¸¦ override ÇÏ´Â ¾î¶°ÇÑ È¯°æº¯¼öµµ unset ÇÏ´Â °ÍÀ» ±â¾ïÇ϶ó.

ÄÄÆÄÀÏ ÁغñÇϱâ :
../gcc-3.3.2/configure --prefix=/tools \
    --with-local-prefix=/tools \
    --enable-clocale=gnu --enable-shared \
    --enable-threads=posix --enable-__cxa_atexit \
    --enable-languages=c,c++

»õ·Î¿î ¼³Á¤ ¿É¼ÇÀÇ ÀǹÌ:
  • --enable-threads=posix: multi-threaded codeÀ§ÇÑ handingÀ» Á¦¿ÜÇÑ C++À» °¡´ÉÇÏ°Ô ÇÑ´Ù.
  • --enable-__cxa_atexit: ÀÌ ¿É¼ÇÀº atexitº¸´Ù´Â __cxa_atexitÀÇ »ç¿ëÀ» Çã¶ôÇÑ´Ù, to register C++ destructors for local statics and global objects and is essential for fully standards-compliant handling of destructors. It also affects the C++ ABI and therefore results in C++ shared libraries and C++ programs that are interoperable with other Linux distributions.
  • --enable-clocale=gnu: ÀÌ ¿É¼ÇÀº Á¤È®ÇÑ local modelÀÌ ¸ðµç »óȲ¿¡¼­ C++ ¶óÀ̺귯¸®¸¦ À§ÇØ ¼±ÅõǾîÁöµµ·Ï ÇÑ´Ù. ¸¸¾à ¼³Á¤ ½ºÅ©¸³Æ®°¡ de_DE locale·Î ÀνºÅç µÈ °ÍÀ» ¹ß°ßÇß´Ù¸é, ±×°ÍÀº gnuÀÇ Á¤È®ÇÑ ¸ðµ¨À» ¼±ÅÃÇÒ °ÍÀÌ´Ù. ±×·¯³ª, de_DE locale·Î ÀνºÅçÇÏÁö ¾Ê¾Ò´Ù¸é, run the risk of building ABI incompatible C++ libraries due to the wrong locale model of generic being selected.
  • --enable-languages=c,c++: ÀÌ ¿É¼ÇÀº C¿Í C++ÄÄÆÄÀÏ·¯ µÑ´Ù buildµÇµµ·Ï ÇÒ ¶§ ÇÊ¿äÇÏ´Ù.

package ÄÄÆÄÀÏ:
make

ÀÌÁ¦ bootstrap targetÀ» »ç¿ëÇÒ Çʿ䰡 ¾ø´Ù , as the compiler we're using to compile this GCC was built from the exact same version of the GCC sources we used earlier.

ÀÌÁ¦ ÆíÁýÀÌ ¿ÏÀüÈ÷ ³¡³µ½À´Ï´Ù´Ù. Àü¿¡ ¸»Çß´ø °Í ó·³, ¿ì¸®´Â ÀÌ Àå¿¡¼­ Àӽà toolÀ» ÀÌ¿ëÇÏ¿© Å×½ºÆ®ÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ¸¸¾à ´ç½ÅÀÌ ¿©ÀüÈ÷ GCC Å×½ºÆ® Çϱ⸦ ¿øÇÑ´Ù¸é, ´ÙÀ½ ¸í·É°ú °°ÀÌ Ç϶ó. (°ÅÀÇ ÇÑ ½Ã°£ °¡±îÀÌ ¼Òºñ µÇ¹Ç·Î ¾È ÇÏ´Â°Ô ³ªÀ» µí ÇÕ´Ï´Ù.)
make -k check

-k Ç÷¡±×´Â ù¹øÂ° ½ÇÆÐ¿¡¼­ ¿Ï·áµÇ°Å³ª ¸ØÃßÁö ¾Ê´õ¶óµµ Å×½ºÆ®µÇµµ·Ï ÇÑ´Ù. GCC ŽºÆ® suite´Â ¸Å¿ì Æ÷°ýÀûÀ̰í ÀϹÝÀûÀ¸·Î ½Ç¼ö°¡ °ÅÀÇ ¾øµµ·Ï ÇÑ´Ù. ŽºÆ® suite °á°ú¿¡ ´ëÇÑ ¿ä¾àÀ» ¾ò±âÀ§ÇØ, ´ÙÀ½°ú °°ÀÌ ÇÏ¿©¶ó:
../gcc-3.3.2/contrib/test_summary | more

´ç½ÅÀº gcc-testresults mailing list¿¡¼­ À¯»çÇÑ ¼³Á¤À» ´ç½ÅÀÇ °á°ú¿Í ºñ±³ÇÒ ¼ö ÀÖ´Ù. For an example of howGCC-3.3.2°¡ ¾î¶»°Ô µÇ¾î ÀÖ´ÂÁöÀÇ ¿¹¸¦ i686-pc-linux-gnu¿¡¼­ º¼ ¼ö ÀÖ´Ù, http://gcc.gnu.org/ml/gcc-testresults/2004-01/msg00826.html.

°á°ú¿¡ ÁÖÀǸ¦ ±â¿ï¿©¶ó:

  • 1 XPASS (unexpected pass) for g++
  • 1 FAIL (unexpected failure) for gcc
  • 24 XPASS's for libstdc++

g++ÀÇ pass°¡ ¿¹»óµÇÁö ¾ÊÀº °á°ú¸¦ º¸ÀÌ´Â ±î´ßÀº --enable-cxa_atexit¸¦ »ç¿ëÇ߱⠶§¹®ÀÌ´Ù. °ÑÀ¸·Î º¸±â¿¡ ¸ðµç platformÀÌ ±×µéÀÇ C ¶óÀ̺귯¸®¾ÈÀÇ "cxa_atexit"¸¦ Á¦°øÇÏ´Â GCC¸¦ Áö¿øÇÏÁö ¾Ê°í, ±×·¡¼­ ÀÌ Å×½ºÆ®´Â Ç×»ó ¿¹»óÇß´ø pass´Â ¾Æ´Ï´Ù.

The 24 unexpected passes for libstdc++ are due to the use of --enable-clocale=gnu, which is the correct choice on Glibc-based systems of versions 2.2.5 and above. The underlying locale support in the GNU C library is superior to that of the otherwise selected "generic" model (which may be applicable if for instance you were using Newlibc, Sun-libc or whatever libc). The libstdc++ test suite is apparently expecting the "generic" model, hence those tests are not always expected to pass.

Á¾Á¾ ¿¹»óµÇÁö ¾ÊÀº failure¸¦ ÇÇÇÒ ¼ö ¾ø´Ù. GCC °³¹ßÀÚµéÀº º¸Åë ±×°ÍÀ» ¾Ë°í ÀÖÁö¸¸, ¾ÆÁ÷ ±×µéÀ» °íÄ¥ ¹æµµ¸¦ ãÁö´Â ¸øÇß´Ù. ÇѸ¶µð·Î ¸»ÇØ, unless your results are vastly different from those at the above URL, ±×°ÍÀº °è¼ÓÇØ¼­ ¾ÈÀüÇÒ °Í ÀÌ´Ù..

±×¸®°í ¸¶Áö¸·À¸·Î ÆÐŰÁö¸¦ ÀνºÅç ÇÑ´Ù:
make install

Note: À̶§ ÀÌ Àå Àü¿¡ ¿ì¸®°¡ ½ÇÇàÇß´ø sanity check¸¦ ¹Ýº¹ÇÏ´Â °ÍÀÌ ÁÁ´Ù. Refer back to "Locking in" Glibc and repeat the check. ¸¸¾à °á°ú°¡ À߸øµÈ °ÍÀ̶ó¸é, then most likely you forgot to apply the above mentioned GCC Specs patch.

The details on this package are found in the Section called Contents of GCC in Chapter 6.

3.16 Binutils-2.14 - Pass 2 ¼³Ä¡


Approximate build time: 1.5 SBU Required disk space: 108 MB

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

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

3.16.1 Binutils À缳ġÇϱâ


build µð·ºÅ丮 ¸¸µé±â:
mkdir -p $LFS/build/binutils-build
cd $LFS/build/binutils-build
tar zxvf /mnt/source/binutils-2.14.tar.gz -C ./
Binutils ÄÄÆÄÀÏ ÁغñÇϱâ:
../binutils-2.14/configure --prefix=/tools \
    --enable-shared --with-lib-path=/tools/lib

configure optionÀÇ ÀǹÌ:
  • --with-lib-path=/tools/lib: ÀÌ ¿É¼ÇÀº default ¶óÀ̺귯¸®¸¦ ã´Â °æ·Î¸¦ ÁöÁ¤ÇØ ÁÝ´Ï´Ù. ¿ì¸®´Â Binutils¸¦ ¼³Ä¡ÇÒ ¶§ È£½ºÆ® ½Ã½ºÅÛ¿¡ ÀÌ¹Ì ¼³Ä¡µÇ¾îÀÖ´Â ¶óÀ̺귯¸® µð·ºÅ丮¸¦ ã´Â°ÍÀ» ¿øÇÏÁö ¾Ê½À´Ï´Ù.

Binutils build¸¦ ½ÃÀÛÇϱâÀü¿¡ ÀÌ¹Ì ±âº»À¸·Î ÃÖÀûÈ­µÇ¾îÀִ ȯ°æº¯¼ö¸¦ º¯°æÇßÀ» °æ¿ì ¿ø»óº¹±Í ½ÃÄÑ¾ß ÇÕ´Ï´Ù.

ÆÑŰÁö ÄÄÆÄÀÏ Çϱâ:
make

Âü°í·Î ¸»ÇÏÀÚ¸é, configure¸¦ ½ÇÇàÇϰųª ÄÄÆÄÀÏÀ» ÇÒ ¶§¿¡´Â ¼Ò½º¸¦ Ç®¾î ³õÀº µð·ºÅ丮¿¡¼­ ÇÏ´Â °Íº¸´Ù ¼Ò½º¸¦ Ç®¾î ³õÀº µð·ºÅ丮º¸´Ù ÇÑ ´Ü°è »óÀ§ µð·ºÅ丮¿¡¼­ ÇÏ´Â °ÍÀÌ ¿À·ù¸¦ ÁÙÀϼö ÀÖ´Â ÇÑ ¹æ¹ýÀÔ´Ï´Ù. Àú °°Àº °æ¿ì¿£ binutils¸¦ /mnt/lfs/build/binutils-2.14/¿¡ Ç®¾ú°í ±× µð·ºÅ丮¿¡¼­ ÄÄÆÄÀÏÀ» ½ÇÇàÇßÀ» ¶§´Â ¿¡·¯°¡ ¹ß»ýÇßÁö¸¸, »óÀ§ µð·ºÅ丮ÀÎ /mnt/lfs/build¿¡¼­ binutils-2.14/configure ÀÌ·±½ÄÀ¸·Î ÇßÀ» °æ¿ì¿¡´Â º° ¹«¸® ¾øÀÌ ¼º°øÇß½À´Ï´Ù.(Glibc¶§µµ ±×·¨½À´Ï´Ù.)

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

¿¹»óÄ¡ ¸øÇÑ ¿À·ù°¡ ¾ø¾ú´Ù¸é, ÀßµÈ °ÍÀÔ´Ï´Ù. ºÒÇàÇϰԵµ, BinutilsÀÇ °æ¿ì´Â GCCÆÑŰÁö¸¦ ¼³Ä¡ÇÒ ¶§Ã³·³ °á°ú¸¦ Çѹø¿¡ º¸¿©ÁÖ´Â ½¬¿î ¹æ¹ýÀÌ ¾ø½À´Ï´Ù. ±×·¯³ª, ¿©±â¼­ ¿À·ù°¡ ¹ß»ýÇØµµ ¿À·ù´Â ½±°Ô ã¾Æ³¾ ¼ö ÀÖ½À´Ï´Ù. ¿À·ù¸Þ½ÃÁö´Â ¾Æ·¡Ã³·³ ¿¡·¯³»¿ëÀ» Æ÷ÇÔÇØ¼­ º¸¿©ÁÝ´Ï´Ù.:
make[1]: *** [check-binutils] Error 2
ÀÚ, ±×¸®°í ÆÑŰÁö¸¦ ¼³Ä¡ÇսôÙ:
make install

´ÙÀ½Àå¿¡¼­ ToolchainÀÇ ÀçÀû¿ëÀ» À§ÇØ Binutils¸¦ ÁغñÇÕ´Ï´Ù.
make -C ld clean
make -C ld LIB_PATH=/usr/lib:/lib

ÁÖÀÇ

´ÙÀ½ ÆÑŰÁö¿¡¼­ Binutils source¸¦ »ç¿ëÇϹǷΠBinutilsÀÇ ¼Ò½ºµð·ºÅ丮¸¦ ¾ÆÁ÷ Áö¿ìÁö ¸¶¼¼¿ä.

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

3.17 Gawk-3.1.3 ¼³Ä¡


Approximate build time: 0.2 SBU Required disk space: 17 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.

3.17.1 Gawk ¼³Ä¡


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

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

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

¼³Ä¡Çϱâ:
make install

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

3.18 Coreutils-5.0 ¼³Ä¡


Approximate build time: 0.9 SBU Required disk space: 69 MB

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

Coreutils ÆÐÄ¡¸¦ ¹ÞÀ» ¼ö ÀÖ´Â »çÀÌÆ®: http://lfs.osuosl.org/patches/lfs/5.0/

Âü°í. Coreutils-5.0 ÆÑŰÁö¿¡ °üÇÑ ¸¹Àº ¸µÅ©°¡ ²÷±ä »óÅÂÀÔ´Ï´Ù. 5.2¸¦ ¹Þ¾Æ¼­ ÇÏ´Â °Íµµ ÁÁÀº ¹æ¹ýÀÌ µÉ °ÍÀÔ´Ï´Ù.

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

3.18.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.

ÆÐÄ¡ Àû¿ëÇϱâ:
mkdir -p $LFS/build/coreutils_build
cd $LFS/build/coreutils_build
tar zxvf /mnt/source/coreutils-5.2.1.tar.gz -C ./
cd coreutils-5.2.1
patch -Np1 -i /mnt/source/coreutils-5.2.1-hostname-1.patch
patch -Np2 -i /mnt/source/coreutils-5.2.1-uname-1.patch
(Àü 5.2.1¹öÀüÀ» ±âÁØÀ¸·Î ÁغñÇß½À´Ï´Ù.)

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

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 ¸¦ ÂüÁ¶Çϼ¼¿ä.

3.19 Bzip2-1.0.2 ¼³Ä¡


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

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

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

3.19.1 Bzip2 ¼³Ä¡


Bzip2ÆÑŰÁö´Â configure script°¡ ¾ø½À´Ï´Ù. optionÀ» ÇÑÁÙ·Î ½á¼­ ÄÄÆÄÀÏ ÇÏ°í ¼³Ä¡ÇÕ´Ï´Ù.
mkdir -p $LFS/build/bzip_build
cd $LFS/build/bzip_build
tar zxvf /mnt/source/bzip2-1.0.2.tar.gz -C ./
cd bzip2-1.0.2
make PREFIX=/tools install      
ÆÐŰÁö¿¡ Æ÷ÇÔµÈ ÇÁ·Î±×·¥¿¡ ´ëÇØ¼± the Section called Contents of Bzip2 in Chapter 6 ¸¦ ÂüÁ¶Çϼ¼¿ä.

3.20 Gzip-1.3.5 ¼³Ä¡


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

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

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

3.20.1 Gzip ¼³Ä¡


Gzip ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/gzip_build
cd $LFS/build/gzip_build
tar zxvf /mnt/source/gzip-1.3.5.tar.gz -C ./
cd gzip-1.3.5
./configure --prefix=/tools      
package ÄÄÆÄÀÏÇϱâ:
make

¼³Ä¡Çϱâ:
make install

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

3.21 Diffutils-2.8.1 ¼³Ä¡


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

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

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

3.21.1 Diffutils ¼³Ä¡


Diffutils ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/diffutils_build
cd $LFS/build/diffutils_build
tar zxvf /mnt/source/diffutils-2.8.1.tar.gz -C ./
cd diffutils-2.8.1
./configure --prefix=/tools      
package ÄÄÆÄÀÏÇϱâ:
make

¼³Ä¡Çϱâ:
make install

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

3.22 Findutils-4.1.20 ¼³Ä¡


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

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

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

3.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.1.20
./configure --prefix=/tools      

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

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

¼³Ä¡Çϱâ:
make install

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

3.23 Make-3.80 ¼³Ä¡


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

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

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

3.23.1 Make ¼³Ä¡


Make ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/make_build
cd $LFS/build/make_build
tar zxvf /mnt/source/make-3.80.tar.gz -C ./
cd make-3.80
./configure --prefix=/tools      
ÄÄÆÄÀÏ Çϱâ:
make

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

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

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

3.24 Grep-2.5.1 ¼³Ä¡


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

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

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

3.24.1 Grep ¼³Ä¡


Grep ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/grep_build
cd $LFS/build/grep_build
tar zxvf /mnt/source/grep-2.5.tar.gz -C ./
cd grep-2.5
./configure --prefix=/tools \
    --disable-perl-regexp --with-included-regex      
configure optionÀÇ ÀǹÌ:
  • --disable-perl-regexp: ÀÌ ¿É¼ÇÀº grepÀÌ ±âÁ¸ È£½ºÆ®(¹èÆ÷ÆÇÀÌ ¼³Ä¡µÇ¾îÀÖ´Â)¿¡ ¼³Ä¡µÇ¾îÀÖ´Â PCRE¶óÀ̺귯¸®¿Í ¸µÅ©ÇÏÁö ¾Êµµ·Ï ÁöÁ¤ÇØÁÝ´Ï´Ù.
  • --with-included-regex: ÀÌ ¿É¼ÇÀº grepÀÌ grep¿¡ ³»ÀåµÈ Ç¥ÁØÇü½Ä Äڵ带 »ç¿ëÇÏ´Â °ÍÀ» º¸ÀåÇØÁÝ´Ï´Ù. ÀÌ ¿É¼ÇÀ» »ç¿ëÇÏÁö ¾ÊÀ¸¸é GlibcÀÇ Äڵ带 »ç¿ëÇÏ°Ô µÇ´Âµ¥ ÀÌ ÄÚµå´Â ¾à°£ÀÇ ¿¡·¯°¡ ÀÖ½À´Ï´Ù. ±×·¡¼­ ÀÌ ¿É¼ÇÀ» Áà¾ß ÇÕ´Ï´Ù.

ÇÁ·Î±×·¥ ÄÄÆÄÀÏÇϱâ:
make

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

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

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

3.25 Sed-4.0.9 ¼³Ä¡


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

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

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

3.25.1 Sed ¼³Ä¡


Sed ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/sed_build
cd $LFS/build/sed_build
tar zxvf /mnt/source/sed-4.0.9.tar.gz -C ./
cd sed-4.0.9
./configure --prefix=/tools

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

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

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

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

3.26 Gettext-0.14.1 ¼³Ä¡


Approximate build time: 7.2 SBU Required disk space: 55 MB

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

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

3.26.1 Gettext ¼³Ä¡


Gettext ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/gettext_build
cd $LFS/build/gettext_build
tar zxvf /mnt/source/gettext-0.14.1.tar.gz -C ./
cd gettext-0.14.1
./configure --prefix=/tools      
ÄÄÆÄÀÏ Çϱâ:
make

ÀÚ, ÀÌÁ¦ ÄÄÆÄÀÏÀÌ ³¡³µ½À´Ï´Ù. ÀÌÀü¿¡ ¸»ÇÑ °Íó·³ ÀÌ Àå¿¡¼­ ¿ì¸®´Â Àӽõµ±¸µéÀ» À§ÇÑ test suitsµéÀ» ½ÇÇàÇÏ´Â °ÍÀ» ÃßõÇÏÁö ¾Ê½À´Ï´Ù. ¸¸¾à¿¡ ´ç½ÅÀÌ Á¤¸» Gettext test suits¸¦ ½ÇÇàÇϱ⸦ ¿øÇÑ´Ù¸é, ¾Æ·¡¿Í °°Àº ¸í·ÉÀ» ½ÇÇàÇϼ¼¿ä. ±×·¯³ª, HOST ½Ã½ºÅÛÀÇ »óÅ¿¡ µû¶ó Gettext test suite°¡ ½ÇÆÐÇÒ ¼ö ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Æ¾ß ÇÕ´Ï´Ù. ¿¹¸¦ µé¾î, Gettext °¡ HOST ½Ã½ºÅÛ¿¡¼­ JAVA ÄÄÆÄÀÏ·¯¸¦ ãÀ» °æ¿ì°¡ ÇØ´çµË´Ï´Ù.(Note : an experimental patch to disable Jave is avillable from the patches project). Test¸¦ ÇÒ ¶§ ½Ã°£ÀÌ ¿À·¡ °É¸®´õ¶óµµ ³Ê¹« ³ª»Ú°Ô »ý°¢ÇÏÁö ¸»°í ÇÏ±æ ¹Ù¶ø´Ï´Ù:
make check

¼³Ä¡Çϱâ:
make install

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

3.27 Ncurses-5.4 ¼³Ä¡


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

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

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

3.27.1 Ncurses-5.4 ¼³Ä¡


¾ÐÃà Ç®±â:
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 ¸¦ ÂüÁ¶Çϼ¼¿ä.

3.28 Patch-2.5.4 ¼³Ä¡


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

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

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

3.28.1 Patch ¼³Ä¡


Patch ÄÄÆÄÀÏ ÁغñÇϱâ:
mkdir -p $LFS/build/patch_build
cd $LFS/build/patch_build
tar zxvf /mnt/source/patch-2.5.4.tar.gz -C ./
cd patch-2.5.4
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 ¸¦ ÂüÁ¶Çϼ¼¿ä.

3.29 Tar-1.13.25 ¼³Ä¡


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

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

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

3.29.1 Tar ¼³Ä¡


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

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

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

3.30 Texinfo-4.6 ¼³Ä¡


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

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

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

3.30.1 Texinfo ¼³Ä¡


Texinfo ÄÄÆÄÀÏ ÁغñÇϱâ :
mkdir -p $LFS/build/texinfo_build
cd $LFS/build/texinfo_build
tar zxvf /mnt/soruce/texinfo-4.6.tar.gz -C ./
cd texinfo-4.6
./configure --prefix=/tools      
ÄÄÆÄÀÏ Çϱâ:
make

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

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

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

3.31 Bash-2.05b ¼³Ä¡


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

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


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

3.31.1 Bash ¼³Ä¡


¾ÐÃàÇ®±â
mkdir -p $LFS/build/bash_build
cd $LFS/build/bash_build
tar zxvf /mnt/source/bash-2.05b.tar.gz -C ./

Bash ´Â ¸î°¡Áö ¹ö±×µéÀÌ Á¸ÀçÇÕ´Ï´Ù. ÀÌ ¹ö±×µéÀ» °íÄ¡±â À§Çؼ­ ´ÙÀ½°ú °°Àº ÆÐÄ¡¸¦ Çϼ¼¿ä:
cd bash-2.05b
patch -Np1 -i ../bash-2.05b-2.patch      
Bash ÄÄÆÄÀÏ ÁغñÇϱâ:
cd $LFS/build/bash_build/bash-2.05b
./configure --prefix=/tools      
ÄÄÆÄÀÏ Çϱâ:
make

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

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

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

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

3.32 Util-linux-2.12 ¼³Ä¡


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

Util-linux (2.12) °ø½Ä ´Ù¿î·Îµå »çÀÌÆ®: http://ftp.cwi.nl/aeb/util-linux/

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

[